@axiom-lattice/gateway 4.2.0 → 4.2.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 (103) hide show
  1. package/dist/{A2AAuthService-DK5X6VIL.mjs → A2AAuthService-7UGQ7GMW.mjs} +3 -2
  2. package/dist/{WechatChannelAdapter-WSDKR4OA.mjs → WechatChannelAdapter-7WHE5UGY.mjs} +2 -1
  3. package/dist/{WechatChannelAdapter-WSDKR4OA.mjs.map → WechatChannelAdapter-7WHE5UGY.mjs.map} +1 -1
  4. package/dist/{a2a-7N3WDAOP.mjs → a2a-FGYX2HH3.mjs} +71 -32
  5. package/dist/a2a-FGYX2HH3.mjs.map +1 -0
  6. package/dist/{a2a-standard-WC2BSOFV.mjs → a2a-standard-VEQBXBMM.mjs} +93 -115
  7. package/dist/a2a-standard-VEQBXBMM.mjs.map +1 -0
  8. package/dist/agentProvider-X4FVQPKW.mjs +88 -0
  9. package/dist/agentProvider-X4FVQPKW.mjs.map +1 -0
  10. package/dist/chunk-2POW27EI.mjs +27 -0
  11. package/dist/chunk-2POW27EI.mjs.map +1 -0
  12. package/dist/chunk-52SUWMOX.mjs +121 -0
  13. package/dist/chunk-52SUWMOX.mjs.map +1 -0
  14. package/dist/chunk-GF4GGTWJ.mjs +164 -0
  15. package/dist/chunk-GF4GGTWJ.mjs.map +1 -0
  16. package/dist/{chunk-2HOCF46L.mjs → chunk-GPHOYR3X.mjs} +33 -11
  17. package/dist/chunk-GPHOYR3X.mjs.map +1 -0
  18. package/dist/chunk-NFEGQTCC.mjs +27 -0
  19. package/dist/chunk-PWHUWFXL.mjs +173 -0
  20. package/dist/chunk-PWHUWFXL.mjs.map +1 -0
  21. package/dist/chunk-QUT2DS4R.mjs +50 -0
  22. package/dist/chunk-QUT2DS4R.mjs.map +1 -0
  23. package/dist/chunk-TJAUXMYJ.mjs +109 -0
  24. package/dist/chunk-TJAUXMYJ.mjs.map +1 -0
  25. package/dist/chunk-WKNZ7GBC.mjs +56 -0
  26. package/dist/chunk-WKNZ7GBC.mjs.map +1 -0
  27. package/dist/collection_service-RTRJEQFL.mjs +8 -0
  28. package/dist/embed/agent-chat-loader.js +1 -1
  29. package/dist/embed/{embed-page-AgentDetailSideApp-6CVXM3P3.js → embed-page-AgentDetailSideApp-KGYKTMZR.js} +1 -1
  30. package/dist/embed/{embed-page-AgentDetailSideApp-DRGKJ6C5.css → embed-page-AgentDetailSideApp-O6G4NJ7I.css} +1 -1
  31. package/dist/embed/{embed-page-AgentGovernanceWorkbench-4B3NJPCY.js → embed-page-AgentGovernanceWorkbench-F42AJH77.js} +1 -1
  32. package/dist/embed/embed-page-AgentGovernanceWorkbench-SFZNVMUH.css +1 -0
  33. package/dist/embed/embed-page-MessageGraph-ACHQORG7.js +6 -0
  34. package/dist/embed/{embed-page-ReactChart-OG5Z43H7.js → embed-page-ReactChart-FGUHXBED.js} +1 -1
  35. package/dist/embed/{embed-page-SkillFlow-GS4OUCJJ.js → embed-page-SkillFlow-SFZ5HLMK.js} +1 -1
  36. package/dist/embed/{embed-page-TasksSideApp-I6Z7BOT2.js → embed-page-TasksSideApp-4GY5YBTN.js} +1 -1
  37. package/dist/embed/{embed-page-TeamWorkspace-LSCUIJDA.js → embed-page-TeamWorkspace-YWE6ZTLB.js} +4 -4
  38. package/dist/embed/{embed-page-TopologyRuntimeView-RY7NOUB7.js → embed-page-TopologyRuntimeView-MKFPCHT3.js} +1 -1
  39. package/dist/embed/{embed-page-WorkflowAutomationView-RNKIKDUX.js → embed-page-WorkflowAutomationView-WT6VH5HD.js} +1 -1
  40. package/dist/embed/{embed-page-chunk-7CFGO35V.js → embed-page-chunk-3PY2YGBU.js} +1 -1
  41. package/dist/embed/embed-page-chunk-3WXEO6CG.js +245 -0
  42. package/dist/embed/embed-page-chunk-42S7N5Y5.js +4084 -0
  43. package/dist/embed/{embed-page-chunk-SU5GXLKX.js → embed-page-chunk-67U2KZFL.js} +4 -4
  44. package/dist/embed/{embed-page-chunk-4X5XHAMX.js → embed-page-chunk-74BPRLSV.js} +4 -4
  45. package/dist/embed/{embed-page-chunk-DVHOG6AY.js → embed-page-chunk-AC6X2XRH.js} +1 -1
  46. package/dist/embed/{embed-page-chunk-4BIOW547.js → embed-page-chunk-FDID7LZP.js} +1 -1
  47. package/dist/embed/{embed-page-chunk-JLWIJ4BP.js → embed-page-chunk-FU2KMTSK.js} +1 -1
  48. package/dist/embed/{embed-page-chunk-EPEKIAZP.js → embed-page-chunk-HS5VQFWH.js} +1 -1
  49. package/dist/embed/{embed-page-chunk-Q32Y7CP2.js → embed-page-chunk-IV5C4DYL.js} +1 -1
  50. package/dist/embed/{embed-page-chunk-KGX7G7XQ.js → embed-page-chunk-KEL6XU6R.js} +1 -1
  51. package/dist/embed/{embed-page-chunk-AYOVLRHX.js → embed-page-chunk-MGZK7ELC.js} +94 -69
  52. package/dist/embed/{embed-page-chunk-BZI3YCE7.js → embed-page-chunk-N46WJ2FS.js} +1 -1
  53. package/dist/embed/{embed-page-chunk-KG5A66WX.js → embed-page-chunk-O4QK5LWZ.js} +83 -83
  54. package/dist/embed/{embed-page-chunk-ESLOGPBN.js → embed-page-chunk-Z7USDLHI.js} +1 -1
  55. package/dist/embed/{embed-page-code-highlighter-TBT4ICNZ.js → embed-page-code-highlighter-Y6CQA4CN.js} +1 -1
  56. package/dist/embed/{embed-page-mermaid-TBO3M7GX.js → embed-page-mermaid-CW4QCAH3.js} +1 -1
  57. package/dist/embed/embed-page.css +1 -1
  58. package/dist/embed/embed-page.js +1 -1
  59. package/dist/index.js +2074 -619
  60. package/dist/index.js.map +1 -1
  61. package/dist/index.mjs +345 -346
  62. package/dist/index.mjs.map +1 -1
  63. package/dist/kbProvider-2D6DZ34N.mjs +50 -0
  64. package/dist/kbProvider-2D6DZ34N.mjs.map +1 -0
  65. package/dist/{mcp-configs-IIKQM5GM.mjs → mcp-configs-WCY5EXCW.mjs} +2 -1
  66. package/dist/mcp-configs-WCY5EXCW.mjs.map +1 -0
  67. package/dist/{mcpTransportRegistry-XMJ5Y2RG.mjs → mcpTransportRegistry-VXUVJKBC.mjs} +2 -1
  68. package/dist/mcpTransportRegistry-VXUVJKBC.mjs.map +1 -0
  69. package/dist/open-HH7RKGML.mjs +260 -0
  70. package/dist/open-HH7RKGML.mjs.map +1 -0
  71. package/dist/open-audit-UJ3NXCGW.mjs +32 -0
  72. package/dist/open-audit-UJ3NXCGW.mjs.map +1 -0
  73. package/dist/open-catalog-WYS2AENM.mjs +59 -0
  74. package/dist/open-catalog-WYS2AENM.mjs.map +1 -0
  75. package/dist/open-exposure-FK4G6O6L.mjs +67 -0
  76. package/dist/open-exposure-FK4G6O6L.mjs.map +1 -0
  77. package/dist/open-files-GVRMK5PL.mjs +146 -0
  78. package/dist/open-files-GVRMK5PL.mjs.map +1 -0
  79. package/dist/open-session-3VN65PRR.mjs +53 -0
  80. package/dist/open-session-3VN65PRR.mjs.map +1 -0
  81. package/dist/openLattice-GAAGQJST.mjs +16 -0
  82. package/dist/openLattice-GAAGQJST.mjs.map +1 -0
  83. package/dist/registerExposedPlugins-63EUF4VS.mjs +99 -0
  84. package/dist/registerExposedPlugins-63EUF4VS.mjs.map +1 -0
  85. package/dist/{resources-VA7LSDKN.mjs → resources-SRQRKW5G.mjs} +47 -4
  86. package/dist/resources-SRQRKW5G.mjs.map +1 -0
  87. package/dist/sandboxProvider-I3P66VXT.mjs +10 -0
  88. package/dist/sandboxProvider-I3P66VXT.mjs.map +1 -0
  89. package/dist/{sender-PX32VSHB.mjs → sender-PLDU5EZ3.mjs} +3 -1
  90. package/dist/{sender-PX32VSHB.mjs.map → sender-PLDU5EZ3.mjs.map} +1 -1
  91. package/package.json +7 -7
  92. package/dist/a2a-7N3WDAOP.mjs.map +0 -1
  93. package/dist/a2a-standard-WC2BSOFV.mjs.map +0 -1
  94. package/dist/chunk-2HOCF46L.mjs.map +0 -1
  95. package/dist/embed/embed-page-chunk-A2LQIHX4.js +0 -261
  96. package/dist/embed/embed-page-chunk-OWGBADV6.js +0 -3880
  97. package/dist/open-DCAOL5CG.mjs +0 -176
  98. package/dist/open-DCAOL5CG.mjs.map +0 -1
  99. package/dist/resources-VA7LSDKN.mjs.map +0 -1
  100. /package/dist/{A2AAuthService-DK5X6VIL.mjs.map → A2AAuthService-7UGQ7GMW.mjs.map} +0 -0
  101. /package/dist/{mcp-configs-IIKQM5GM.mjs.map → chunk-NFEGQTCC.mjs.map} +0 -0
  102. /package/dist/{mcpTransportRegistry-XMJ5Y2RG.mjs.map → collection_service-RTRJEQFL.mjs.map} +0 -0
  103. /package/dist/embed/{embed-page-AgentGovernanceWorkbench-SDS3GBCC.css → embed-page-MessageGraph-TYOOATYV.css} +0 -0
@@ -0,0 +1,109 @@
1
+ // src/services/open/providers/sandboxProvider.ts
2
+ import { z } from "zod";
3
+ import { sandboxLatticeManager } from "@axiom-lattice/core";
4
+ var MAX_OUTPUT_BYTES = 64e3;
5
+ async function resolveContextSandbox(ctx) {
6
+ return sandboxLatticeManager.getSandboxFromConfig({
7
+ assistant_id: "",
8
+ thread_id: "",
9
+ tenantId: ctx.tenantId,
10
+ workspaceId: ctx.workspaceId ?? "",
11
+ projectId: ctx.projectId
12
+ });
13
+ }
14
+ function createOpenSandboxProvider() {
15
+ return {
16
+ domain: "sandbox",
17
+ label: "Sandbox",
18
+ source: "builtin",
19
+ scopeKind: "project",
20
+ actions: [
21
+ {
22
+ name: "files_read",
23
+ label: "Read files",
24
+ description: "Read a file from the project sandbox.",
25
+ schema: { path: z.string().min(1) },
26
+ annotations: { readOnlyHint: true, destructiveHint: false }
27
+ },
28
+ {
29
+ name: "files_list",
30
+ label: "List files",
31
+ description: "List files under a directory in the project sandbox.",
32
+ schema: { path: z.string(), recursive: z.boolean().optional() },
33
+ annotations: { readOnlyHint: true, destructiveHint: false }
34
+ },
35
+ {
36
+ name: "files_write",
37
+ label: "Write files",
38
+ description: "Write content to a file in the project sandbox.",
39
+ schema: { path: z.string().min(1), content: z.string() },
40
+ annotations: { readOnlyHint: false, destructiveHint: true }
41
+ },
42
+ {
43
+ name: "shell_exec",
44
+ label: "Run shell commands",
45
+ description: "Execute a shell command in the project sandbox. Returns stdout (up to 64KB) and exit code.",
46
+ schema: {
47
+ command: z.string().min(1),
48
+ exec_dir: z.string().optional(),
49
+ timeout: z.number().int().min(1e3).optional()
50
+ },
51
+ annotations: { readOnlyHint: false, destructiveHint: true }
52
+ }
53
+ ],
54
+ execute: async (actionName, args, ctx) => {
55
+ const sandbox = await resolveContextSandbox(ctx);
56
+ switch (actionName) {
57
+ case "files_read": {
58
+ const { path } = args;
59
+ const file = await sandbox.file.readFile(path);
60
+ return { content: [{ type: "text", text: file.content }] };
61
+ }
62
+ case "files_list": {
63
+ const { path, recursive } = args;
64
+ const listing = await sandbox.file.listPath(path, { recursive });
65
+ return {
66
+ content: [{ type: "text", text: JSON.stringify(listing.files) }]
67
+ };
68
+ }
69
+ case "files_write": {
70
+ const { path, content } = args;
71
+ await sandbox.file.writeFile(path, content);
72
+ return { content: [{ type: "text", text: `wrote ${path}` }] };
73
+ }
74
+ case "shell_exec": {
75
+ const { command, exec_dir, timeout } = args;
76
+ const result = await sandbox.shell.execCommand({
77
+ command,
78
+ exec_dir,
79
+ timeout: timeout ?? 12e4
80
+ });
81
+ const truncated = result.output.length > MAX_OUTPUT_BYTES ? result.output.slice(0, MAX_OUTPUT_BYTES) + `
82
+ ...[truncated ${result.output.length - MAX_OUTPUT_BYTES} bytes]` : result.output;
83
+ return {
84
+ content: [
85
+ {
86
+ type: "text",
87
+ text: `exit_code: ${result.exit_code}
88
+ ${truncated}`
89
+ }
90
+ ]
91
+ };
92
+ }
93
+ default:
94
+ return {
95
+ content: [
96
+ { type: "text", text: `Unknown sandbox action: ${actionName}` }
97
+ ],
98
+ isError: true
99
+ };
100
+ }
101
+ }
102
+ };
103
+ }
104
+
105
+ export {
106
+ resolveContextSandbox,
107
+ createOpenSandboxProvider
108
+ };
109
+ //# sourceMappingURL=chunk-TJAUXMYJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/open/providers/sandboxProvider.ts"],"sourcesContent":["/**\n * Built-in sandbox provider for the Open surface: project-scoped file\n * read/list and shell execution with self-binding for sandbox tokens.\n *\n * API keys that hold sandbox-domain grants resolve the sandbox by the\n * credential's tenant + project (their project's sandbox). Sandbox tokens\n * with self-binding are resolved by the token's sandboxName field.\n */\n\nimport { z } from \"zod\";\nimport type { OpenExecutionContext, OpenExecutionResult } from \"@axiom-lattice/protocols\";\nimport { sandboxLatticeManager } from \"@axiom-lattice/core\";\nimport type { OpenProviderDeclaration } from \"../openLattice\";\n\nconst MAX_OUTPUT_BYTES = 64000;\n\n/** Resolve the credential-addressed project sandbox (self-binding). */\nexport async function resolveContextSandbox(ctx: OpenExecutionContext) {\n return sandboxLatticeManager.getSandboxFromConfig({\n assistant_id: \"\",\n thread_id: \"\",\n tenantId: ctx.tenantId,\n workspaceId: ctx.workspaceId ?? \"\",\n projectId: ctx.projectId,\n });\n}\n\nexport function createOpenSandboxProvider(): OpenProviderDeclaration {\n return {\n domain: \"sandbox\",\n label: \"Sandbox\",\n source: \"builtin\",\n scopeKind: \"project\",\n actions: [\n {\n name: \"files_read\",\n label: \"Read files\",\n description: \"Read a file from the project sandbox.\",\n schema: { path: z.string().min(1) },\n annotations: { readOnlyHint: true, destructiveHint: false },\n },\n {\n name: \"files_list\",\n label: \"List files\",\n description: \"List files under a directory in the project sandbox.\",\n schema: { path: z.string(), recursive: z.boolean().optional() },\n annotations: { readOnlyHint: true, destructiveHint: false },\n },\n {\n name: \"files_write\",\n label: \"Write files\",\n description: \"Write content to a file in the project sandbox.\",\n schema: { path: z.string().min(1), content: z.string() },\n annotations: { readOnlyHint: false, destructiveHint: true },\n },\n {\n name: \"shell_exec\",\n label: \"Run shell commands\",\n description:\n \"Execute a shell command in the project sandbox. Returns stdout (up to 64KB) and exit code.\",\n schema: {\n command: z.string().min(1),\n exec_dir: z.string().optional(),\n timeout: z.number().int().min(1000).optional(),\n },\n annotations: { readOnlyHint: false, destructiveHint: true },\n },\n ],\n execute: async (\n actionName: string,\n args: unknown,\n ctx: OpenExecutionContext,\n ): Promise<OpenExecutionResult> => {\n // Self-binding is inherent: the sandbox is resolved from the credential's\n // tenant/workspace/project triple (minted server-side, unforgeable), so a\n // sandbox token can only ever reach the sandbox it was issued for.\n const sandbox = await resolveContextSandbox(ctx);\n\n switch (actionName) {\n case \"files_read\": {\n const { path } = args as { path: string };\n const file = await sandbox.file.readFile(path);\n return { content: [{ type: \"text\", text: file.content }] };\n }\n case \"files_list\": {\n const { path, recursive } = args as { path: string; recursive?: boolean };\n const listing = await sandbox.file.listPath(path, { recursive });\n return {\n content: [{ type: \"text\", text: JSON.stringify(listing.files) }],\n };\n }\n case \"files_write\": {\n const { path, content } = args as { path: string; content: string };\n await sandbox.file.writeFile(path, content);\n return { content: [{ type: \"text\", text: `wrote ${path}` }] };\n }\n case \"shell_exec\": {\n const { command, exec_dir, timeout } = args as {\n command: string;\n exec_dir?: string;\n timeout?: number;\n };\n const result = await sandbox.shell.execCommand({\n command,\n exec_dir,\n timeout: timeout ?? 120_000,\n });\n const truncated =\n result.output.length > MAX_OUTPUT_BYTES\n ? result.output.slice(0, MAX_OUTPUT_BYTES) +\n `\\n...[truncated ${result.output.length - MAX_OUTPUT_BYTES} bytes]`\n : result.output;\n return {\n content: [\n {\n type: \"text\",\n text: `exit_code: ${result.exit_code}\\n${truncated}`,\n },\n ],\n };\n }\n default:\n return {\n content: [\n { type: \"text\", text: `Unknown sandbox action: ${actionName}` },\n ],\n isError: true,\n };\n }\n },\n };\n}"],"mappings":";AASA,SAAS,SAAS;AAElB,SAAS,6BAA6B;AAGtC,IAAM,mBAAmB;AAGzB,eAAsB,sBAAsB,KAA2B;AACrE,SAAO,sBAAsB,qBAAqB;AAAA,IAChD,cAAc;AAAA,IACd,WAAW;AAAA,IACX,UAAU,IAAI;AAAA,IACd,aAAa,IAAI,eAAe;AAAA,IAChC,WAAW,IAAI;AAAA,EACjB,CAAC;AACH;AAEO,SAAS,4BAAqD;AACnE,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;AAAA,QAClC,aAAa,EAAE,cAAc,MAAM,iBAAiB,MAAM;AAAA,MAC5D;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE;AAAA,QAC9D,aAAa,EAAE,cAAc,MAAM,iBAAiB,MAAM;AAAA,MAC5D;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE;AAAA,QACvD,aAAa,EAAE,cAAc,OAAO,iBAAiB,KAAK;AAAA,MAC5D;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aACE;AAAA,QACF,QAAQ;AAAA,UACN,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,UACzB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,UAC9B,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,QAC/C;AAAA,QACA,aAAa,EAAE,cAAc,OAAO,iBAAiB,KAAK;AAAA,MAC5D;AAAA,IACF;AAAA,IACA,SAAS,OACP,YACA,MACA,QACiC;AAIjC,YAAM,UAAU,MAAM,sBAAsB,GAAG;AAE/C,cAAQ,YAAY;AAAA,QAClB,KAAK,cAAc;AACjB,gBAAM,EAAE,KAAK,IAAI;AACjB,gBAAM,OAAO,MAAM,QAAQ,KAAK,SAAS,IAAI;AAC7C,iBAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,QAAQ,CAAC,EAAE;AAAA,QAC3D;AAAA,QACA,KAAK,cAAc;AACjB,gBAAM,EAAE,MAAM,UAAU,IAAI;AAC5B,gBAAM,UAAU,MAAM,QAAQ,KAAK,SAAS,MAAM,EAAE,UAAU,CAAC;AAC/D,iBAAO;AAAA,YACL,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,KAAK,EAAE,CAAC;AAAA,UACjE;AAAA,QACF;AAAA,QACA,KAAK,eAAe;AAClB,gBAAM,EAAE,MAAM,QAAQ,IAAI;AAC1B,gBAAM,QAAQ,KAAK,UAAU,MAAM,OAAO;AAC1C,iBAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,SAAS,IAAI,GAAG,CAAC,EAAE;AAAA,QAC9D;AAAA,QACA,KAAK,cAAc;AACjB,gBAAM,EAAE,SAAS,UAAU,QAAQ,IAAI;AAKvC,gBAAM,SAAS,MAAM,QAAQ,MAAM,YAAY;AAAA,YAC7C;AAAA,YACA;AAAA,YACA,SAAS,WAAW;AAAA,UACtB,CAAC;AACD,gBAAM,YACJ,OAAO,OAAO,SAAS,mBACnB,OAAO,OAAO,MAAM,GAAG,gBAAgB,IACvC;AAAA,gBAAmB,OAAO,OAAO,SAAS,gBAAgB,YAC1D,OAAO;AACb,iBAAO;AAAA,YACL,SAAS;AAAA,cACP;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM,cAAc,OAAO,SAAS;AAAA,EAAK,SAAS;AAAA,cACpD;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AACE,iBAAO;AAAA,YACL,SAAS;AAAA,cACP,EAAE,MAAM,QAAQ,MAAM,2BAA2B,UAAU,GAAG;AAAA,YAChE;AAAA,YACA,SAAS;AAAA,UACX;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,56 @@
1
+ import {
2
+ __esm,
3
+ __export
4
+ } from "./chunk-NFEGQTCC.mjs";
5
+
6
+ // src/services/open/openToken.ts
7
+ var openToken_exports = {};
8
+ __export(openToken_exports, {
9
+ signOpenToken: () => signOpenToken,
10
+ verifyOpenToken: () => verifyOpenToken
11
+ });
12
+ import { createHmac, timingSafeEqual } from "crypto";
13
+ function secret() {
14
+ return process.env.OPEN_TOKEN_SECRET || process.env.AUTH_TOKEN_SECRET || "open-token-dev-secret-fallback";
15
+ }
16
+ function signOpenToken(payload) {
17
+ const data = { ...payload, exp: payload.exp ?? Date.now() + 15 * 60 * 1e3 };
18
+ const encoded = Buffer.from(JSON.stringify(data)).toString("base64url");
19
+ const sig = createHmac("sha256", secret()).update(encoded).digest("base64url");
20
+ return `${encoded}.${sig}`;
21
+ }
22
+ function verifyOpenToken(bearer) {
23
+ if (!bearer) return null;
24
+ const parts = bearer.split(".");
25
+ if (parts.length !== 2) return null;
26
+ const [encoded, sigStr] = parts;
27
+ if (!/^[A-Za-z0-9_-]{43}$/.test(sigStr)) return null;
28
+ try {
29
+ const actual = Buffer.from(sigStr, "base64url");
30
+ if (actual.toString("base64url") !== sigStr) return null;
31
+ const expected = createHmac("sha256", secret()).update(encoded).digest();
32
+ if (actual.length !== expected.length || !timingSafeEqual(actual, expected)) return null;
33
+ const payload = JSON.parse(Buffer.from(encoded, "base64url").toString("utf8"));
34
+ if (typeof payload !== "object" || payload === null) return null;
35
+ const p = payload;
36
+ if (typeof p.exp !== "number" || p.exp < Date.now() || p.kind !== "sandbox_token" && p.kind !== "browser_token" || typeof p.tenantId !== "string" || typeof p.projectId !== "string" || typeof p.grants !== "object") {
37
+ return null;
38
+ }
39
+ return p;
40
+ } catch {
41
+ return null;
42
+ }
43
+ }
44
+ var init_openToken = __esm({
45
+ "src/services/open/openToken.ts"() {
46
+ "use strict";
47
+ }
48
+ });
49
+
50
+ export {
51
+ signOpenToken,
52
+ verifyOpenToken,
53
+ openToken_exports,
54
+ init_openToken
55
+ };
56
+ //# sourceMappingURL=chunk-WKNZ7GBC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/services/open/openToken.ts"],"sourcesContent":["/**\n * Open-surface stateless bearer tokens (sandbox / browser tokens).\n *\n * Reuses the HMAC-SHA256 scheme from createConsoleSessionToken\n * (base64url payload + signature), with a dedicated secret so a leaked\n * console session does not yield open tokens.\n */\n\nimport { randomBytes, createHmac, timingSafeEqual } from \"crypto\";\n\nexport interface SandboxTokenPayload {\n kind: \"sandbox_token\";\n tenantId: string;\n workspaceId: string;\n projectId: string;\n sandboxName: string;\n grants: unknown;\n exp: number;\n}\n\nexport interface BrowserTokenPayload {\n kind: \"browser_token\";\n tenantId: string;\n projectId: string;\n workspaceId?: string;\n shareId?: string;\n /** Internal-preview variant (viewfile-injected, no share). */\n preview?: boolean;\n grants: unknown;\n exp: number;\n}\n\nexport type OpenTokenPayload = SandboxTokenPayload | BrowserTokenPayload;\n\nfunction secret(): string {\n return (\n process.env.OPEN_TOKEN_SECRET ||\n process.env.AUTH_TOKEN_SECRET ||\n \"open-token-dev-secret-fallback\"\n );\n}\n\n/** Sign an open-token payload (15-min TTL default). */\nexport function signOpenToken(\n payload:\n | (Omit<SandboxTokenPayload, \"exp\"> & { exp?: number })\n | (Omit<BrowserTokenPayload, \"exp\"> & { exp?: number }),\n): string {\n const data = { ...payload, exp: payload.exp ?? Date.now() + 15 * 60 * 1000 };\n const encoded = Buffer.from(JSON.stringify(data)).toString(\"base64url\");\n const sig = createHmac(\"sha256\", secret()).update(encoded).digest(\"base64url\");\n return `${encoded}.${sig}`;\n}\n\n/** Verify a signed open bearer token; null if missing, expired, or tampered. */\nexport function verifyOpenToken(bearer: string | undefined): OpenTokenPayload | null {\n if (!bearer) return null;\n const parts = bearer.split(\".\");\n if (parts.length !== 2) return null;\n const [encoded, sigStr] = parts;\n if (!/^[A-Za-z0-9_-]{43}$/.test(sigStr)) return null;\n try {\n const actual = Buffer.from(sigStr, \"base64url\");\n if (actual.toString(\"base64url\") !== sigStr) return null;\n const expected = createHmac(\"sha256\", secret()).update(encoded).digest();\n if (actual.length !== expected.length || !timingSafeEqual(actual, expected)) return null;\n const payload: unknown = JSON.parse(Buffer.from(encoded, \"base64url\").toString(\"utf8\"));\n if (typeof payload !== \"object\" || payload === null) return null;\n const p = payload as Record<string, unknown>;\n if (\n typeof p.exp !== \"number\" ||\n p.exp < Date.now() ||\n (p.kind !== \"sandbox_token\" && p.kind !== \"browser_token\") ||\n typeof p.tenantId !== \"string\" ||\n typeof p.projectId !== \"string\" ||\n typeof p.grants !== \"object\"\n ) {\n return null;\n }\n return p as unknown as OpenTokenPayload;\n } catch {\n return null;\n }\n}"],"mappings":";;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAsB,YAAY,uBAAuB;AA0BzD,SAAS,SAAiB;AACxB,SACE,QAAQ,IAAI,qBACZ,QAAQ,IAAI,qBACZ;AAEJ;AAGO,SAAS,cACd,SAGQ;AACR,QAAM,OAAO,EAAE,GAAG,SAAS,KAAK,QAAQ,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK,IAAK;AAC3E,QAAM,UAAU,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,EAAE,SAAS,WAAW;AACtE,QAAM,MAAM,WAAW,UAAU,OAAO,CAAC,EAAE,OAAO,OAAO,EAAE,OAAO,WAAW;AAC7E,SAAO,GAAG,OAAO,IAAI,GAAG;AAC1B;AAGO,SAAS,gBAAgB,QAAqD;AACnF,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAM,CAAC,SAAS,MAAM,IAAI;AAC1B,MAAI,CAAC,sBAAsB,KAAK,MAAM,EAAG,QAAO;AAChD,MAAI;AACF,UAAM,SAAS,OAAO,KAAK,QAAQ,WAAW;AAC9C,QAAI,OAAO,SAAS,WAAW,MAAM,OAAQ,QAAO;AACpD,UAAM,WAAW,WAAW,UAAU,OAAO,CAAC,EAAE,OAAO,OAAO,EAAE,OAAO;AACvE,QAAI,OAAO,WAAW,SAAS,UAAU,CAAC,gBAAgB,QAAQ,QAAQ,EAAG,QAAO;AACpF,UAAM,UAAmB,KAAK,MAAM,OAAO,KAAK,SAAS,WAAW,EAAE,SAAS,MAAM,CAAC;AACtF,QAAI,OAAO,YAAY,YAAY,YAAY,KAAM,QAAO;AAC5D,UAAM,IAAI;AACV,QACE,OAAO,EAAE,QAAQ,YACjB,EAAE,MAAM,KAAK,IAAI,KAChB,EAAE,SAAS,mBAAmB,EAAE,SAAS,mBAC1C,OAAO,EAAE,aAAa,YACtB,OAAO,EAAE,cAAc,YACvB,OAAO,EAAE,WAAW,UACpB;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAnFA;AAAA;AAAA;AAAA;AAAA;","names":[]}
@@ -0,0 +1,8 @@
1
+ import {
2
+ CollectionService
3
+ } from "./chunk-PWHUWFXL.mjs";
4
+ import "./chunk-NFEGQTCC.mjs";
5
+ export {
6
+ CollectionService
7
+ };
8
+ //# sourceMappingURL=collection_service-RTRJEQFL.mjs.map
@@ -1 +1 @@
1
- "use strict";var __axiomEmbedInternal=(()=>{var S="axiom-web-app-embed";var A=["axiom:ready","axiom:unread","axiom:error","axiom:message"];function M(t,e){return{source:S,version:1,type:t,payload:e}}function _(t,e){if(typeof t!="object"||t===null)return null;let n=t;return n.source!==S||n.version!==1||typeof n.type!="string"||!e.includes(n.type)?null:{type:n.type,payload:n.payload}}var G=/^[A-Za-z0-9._:@-]{1,128}$/,U=640,k=[],I=[],v=[],r=null,a=null,b=null,c=!1,O=!1;function d(t,e,n){let o=t[e];return typeof o=="number"&&Number.isFinite(o)?o:n}function f(t,e){let n=t[e];return typeof n=="string"&&n.length>0?n:null}function T(t,e,n){let o=t.offset;return typeof o!="object"||o===null?n:d(o,e,n)}function Y(){let t=document.currentScript,e=H=>{let g=t?.getAttribute(`data-${H}`);return typeof g=="string"&&g.length>0?g:null},n=window.AxiomChatSettings??{},o=f(n,"webAppId")??e("web-app-id");if(o===null)return console.warn("[AxiomChat] Missing webAppId (set window.AxiomChatSettings.webAppId or data-web-app-id)."),null;let u=t?.src||null,i=u!==null?new URL(u).origin:window.location.origin,s=f(n,"gatewayUrl")??e("gateway-url");return{base:(s!==null?s:i).replace(/\/+$/,""),webAppId:o,mode:n.mode==="inline"||e("mode")==="inline"?"inline":"bubble",containerSelector:f(n,"containerSelector")??e("container-selector"),bubble:!(n.bubble===!1||e("bubble")==="false"),width:d(n,"width",380),height:d(n,"height",640),position:n.position==="bottom-left"||e("position")==="bottom-left"?"bottom-left":"bottom-right",offsetX:d(n,"offsetX",T(n,"x",20)),offsetY:d(n,"offsetY",T(n,"y",20)),zIndex:d(n,"zIndex",9999),userId:f(n,"userId")??e("user-id")}}function E(t,e){let n=a;if(n===null)return;let o=n.contentWindow;o!==null&&o.postMessage(M(t,e),new URL(n.src).origin)}function $(){return window.innerWidth<=U}function y(t,e){let n=r;if(n===null)return;let o=Math.min(n.width,Math.max(window.innerWidth-n.offsetX*2,240)),u=Math.min(n.height,Math.max(window.innerHeight-n.offsetY*2,240));Object.assign(t.style,$()?{position:"fixed",inset:"0px",width:"100%",height:"100%",border:"none",display:e?"block":"none",zIndex:String(n.zIndex)}:{position:"fixed",bottom:`${n.offsetY}px`,left:n.position==="bottom-left"?`${n.offsetX}px`:"auto",right:n.position==="bottom-right"?`${n.offsetX}px`:"auto",width:`${o}px`,height:`${u}px`,border:"none",borderRadius:"16px",boxShadow:"0 12px 40px rgba(23, 32, 51, 0.24)",background:"#ffffff",display:e?"block":"none",zIndex:String(n.zIndex)})}function p(){if(a!==null)return a;let t=r;if(t===null)throw new Error("[AxiomChat] not configured");let e=document.createElement("iframe");if(e.src=`${t.base}/api/web-apps/${encodeURIComponent(t.webAppId)}/chat?mode=embed`,e.title="Agent chat",e.setAttribute("aria-label","Agent chat"),t.mode==="inline"){let n=t.containerSelector!==null?document.querySelector(t.containerSelector):null;n===null&&console.warn(`[AxiomChat] inline container not found: ${t.containerSelector??"(none)"}`),Object.assign(e.style,{width:"100%",height:"100%",border:"none",display:"block"}),(n??document.body).appendChild(e)}else y(e,c),document.body.appendChild(e);return e.addEventListener("load",()=>{E("axiom:hello",{webAppId:t.webAppId})}),a=e,e}function m(t){for(let e of I)e(t)}function R(){b!==null&&b.setAttribute("aria-expanded",c?"true":"false")}function h(){if(r!==null){if(r.mode==="bubble"){let t=p();c=!0,y(t,!0)}else p();R()}}function x(){r===null||r.mode!=="bubble"||a===null||(c=!1,y(a,!1),R())}function w(){c?x():h()}function N(t){if(typeof t!="object"||t===null)return!1;let e=t;return(e.role==="human"||e.role==="ai")&&typeof e.content=="string"}function L(t){if(typeof t!="string")return;let e=t.trim();if(e.length===0){m({code:"INVALID_REQUEST",message:"AxiomChat.sendMessage requires non-empty text."});return}r!==null&&a===null&&p(),E("axiom:send",{text:e})}function C(t){if(Array.isArray(t)===!1)return;let[e,n]=t;if(e==="onReady"&&typeof n=="function"){let o=n;O?o():k.push(o);return}if(e==="onError"&&typeof n=="function"){I.push(n);return}if(e==="onMessage"&&typeof n=="function"){v.push(n);return}if(e==="sendMessage"&&typeof n=="string"){L(n);return}e==="open"?h():e==="hide"?x():e==="toggle"&&w()}function z(){let t=r;if(t===null||t.bubble===!1||t.mode!=="bubble")return;let e=document.createElement("button");e.type="button",e.setAttribute("aria-label","Agent chat"),e.setAttribute("aria-expanded","false"),Object.assign(e.style,{position:"fixed",bottom:`${t.offsetY}px`,left:t.position==="bottom-left"?`${t.offsetX}px`:"auto",right:t.position==="bottom-right"?`${t.offsetX}px`:"auto",width:"56px",height:"56px",border:"none",borderRadius:"9999px",background:"#4f46e5",color:"#ffffff",cursor:"pointer",boxShadow:"0 8px 24px rgba(23, 32, 51, 0.28)",zIndex:String(t.zIndex+1),display:"flex",alignItems:"center",justifyContent:"center"}),e.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H9l-4.05 3.24A1 1 0 0 1 3.2 18.4V5.5Z" fill="currentColor"/></svg>',e.addEventListener("click",()=>{w()}),b=e,document.body.appendChild(e)}var P="__axiomChatMessageListener";function B(){if(r=Y(),r===null)return;let t=i=>{if(r===null||a===null||i.origin!==new URL(a.src).origin||i.source===null||i.source!==a.contentWindow)return;let s=_(i.data,A);if(s!==null){if(s.type==="axiom:ready"){if(r.userId!==null&&G.test(r.userId)){E("axiom:identity",{userId:r.userId}),O=!0;for(let l of k)l()}else m({code:"USER_ID_REQUIRED",message:"A stable userId must be configured for the embed."});return}if(s.type==="axiom:error"){let l=s.payload;m({code:typeof l.code=="string"?l.code:"UNKNOWN",message:typeof l.message=="string"?l.message:"Unknown error"});return}if(s.type==="axiom:message"){if(!N(s.payload))return;for(let l of v)l(s.payload)}}},e=window,n=e[P];typeof n=="function"&&window.removeEventListener("message",n),e[P]=t,window.addEventListener("message",t);let o=(i=>{i!==void 0&&C(i)});o.open=h,o.hide=x,o.toggle=w,o.sendMessage=L;let u=window.AxiomChat;if(Array.isArray(u))for(let i of u)C(i);window.AxiomChat=o,z(),r.mode==="inline"&&p()}B();})();
1
+ "use strict";var __axiomEmbedInternal=(()=>{var k="axiom-web-app-embed";var T=["axiom:ready","axiom:unread","axiom:error","axiom:message"];function P(e,n){return{source:k,version:1,type:e,payload:n}}function R(e,n){if(typeof e!="object"||e===null)return null;let o=e;return o.source!==k||o.version!==1||typeof o.type!="string"||!n.includes(o.type)?null:{type:o.type,payload:o.payload}}var W=/^[A-Za-z0-9._:@-]{1,128}$/,F=640,m="default";function g(e,n,o){let t=e[n];return typeof t=="number"&&Number.isFinite(t)?t:o}function f(e,n){let o=e[n];return typeof o=="string"&&o.length>0?o:null}function O(e,n,o){let t=e.offset;return typeof t!="object"||t===null?o:g(t,n,o)}function D(e,n,o,t){let l=f(e,"webAppId")??n("web-app-id");if(l===null)return null;let d=f(e,"gatewayUrl")??n("gateway-url"),c=(d!==null?d:o).replace(/\/+$/,"");return{id:t,base:c,webAppId:l,mode:e.mode==="inline"||n("mode")==="inline"?"inline":"bubble",containerSelector:f(e,"containerSelector")??n("container-selector"),bubble:!(e.bubble===!1||n("bubble")==="false"),width:g(e,"width",380),height:g(e,"height",640),position:e.position==="bottom-left"||n("position")==="bottom-left"?"bottom-left":"bottom-right",offsetX:g(e,"offsetX",O(e,"x",20)),offsetY:g(e,"offsetY",O(e,"y",20)),zIndex:g(e,"zIndex",9999),userId:f(e,"userId")??n("user-id")}}function K(){return window.innerWidth<=F}function U(e){let n=null,o=null,t=!1,l=!1,d=[],c=[],S=[];function h(i,r){let a=n;if(a===null)return;let b=a.contentWindow;b!==null&&b.postMessage(P(i,r),new URL(a.src).origin)}function E(i,r){let a=Math.min(e.width,Math.max(window.innerWidth-e.offsetX*2,240)),b=Math.min(e.height,Math.max(window.innerHeight-e.offsetY*2,240));Object.assign(i.style,K()?{position:"fixed",inset:"0px",width:"100%",height:"100%",border:"none",display:r?"block":"none",zIndex:String(e.zIndex)}:{position:"fixed",bottom:`${e.offsetY}px`,left:e.position==="bottom-left"?`${e.offsetX}px`:"auto",right:e.position==="bottom-right"?`${e.offsetX}px`:"auto",width:`${a}px`,height:`${b}px`,border:"none",borderRadius:"16px",boxShadow:"0 12px 40px rgba(23, 32, 51, 0.24)",background:"#ffffff",display:r?"block":"none",zIndex:String(e.zIndex)})}function p(){if(n!==null)return n;let i=document.createElement("iframe");if(i.src=`${e.base}/api/web-apps/${encodeURIComponent(e.webAppId)}/chat?mode=embed`,i.title="Agent chat",i.setAttribute("aria-label","Agent chat"),e.mode==="inline"){let r=e.containerSelector!==null?document.querySelector(e.containerSelector):null;r===null&&console.warn(`[AxiomChat] inline container not found: ${e.containerSelector??"(none)"}`),Object.assign(i.style,{width:"100%",height:"100%",border:"none",display:"block"}),(r??document.body).appendChild(i)}else E(i,t),document.body.appendChild(i);return i.addEventListener("load",()=>{h("axiom:hello",{webAppId:e.webAppId})}),n=i,i}function y(i){for(let r of c)r(i)}function v(){o!==null&&o.setAttribute("aria-expanded",t?"true":"false")}function x(){if(e.mode==="bubble"){let i=p();t=!0,E(i,!0)}else p();v()}function w(){e.mode!=="bubble"||n===null||(t=!1,E(n,!1),v())}function A(){t?w():x()}function B(i){if(typeof i!="object"||i===null)return!1;let r=i;return(r.role==="human"||r.role==="ai")&&typeof r.content=="string"}function M(i){if(typeof i!="string")return;let r=i.trim();if(r.length===0){y({code:"INVALID_REQUEST",message:"AxiomChat.sendMessage requires non-empty text."});return}n===null&&p(),h("axiom:send",{text:r})}function I(i){l?i():d.push(i)}function C(i){c.push(i)}function _(i){S.push(i)}function X(){if(e.bubble===!1||e.mode!=="bubble")return;let i=document.createElement("button");i.type="button",i.setAttribute("aria-label","Agent chat"),i.setAttribute("aria-expanded","false"),Object.assign(i.style,{position:"fixed",bottom:`${e.offsetY}px`,left:e.position==="bottom-left"?`${e.offsetX}px`:"auto",right:e.position==="bottom-right"?`${e.offsetX}px`:"auto",width:"56px",height:"56px",border:"none",borderRadius:"9999px",background:"#4f46e5",color:"#ffffff",cursor:"pointer",boxShadow:"0 8px 24px rgba(23, 32, 51, 0.28)",zIndex:String(e.zIndex+1),display:"flex",alignItems:"center",justifyContent:"center"}),i.innerHTML='<svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H9l-4.05 3.24A1 1 0 0 1 3.2 18.4V5.5Z" fill="currentColor"/></svg>',i.addEventListener("click",()=>{A()}),o=i,document.body.appendChild(i)}function j(i){let r=R(i,T);if(r!==null){if(r.type==="axiom:ready"){if(e.userId!==null&&W.test(e.userId)){h("axiom:identity",{userId:e.userId}),l=!0;for(let a of d)a()}else y({code:"USER_ID_REQUIRED",message:"A stable userId must be configured for the embed."});return}if(r.type==="axiom:error"){let a=r.payload;y({code:typeof a.code=="string"?a.code:"UNKNOWN",message:typeof a.message=="string"?a.message:"Unknown error"});return}if(r.type==="axiom:message"){if(!B(r.payload))return;for(let a of S)a(r.payload)}}}function V(){X(),e.mode==="inline"&&p()}let q={id:e.id,open:x,hide:w,toggle:A,sendMessage:M,onReady:I,onMessage:_,onError:C};return{settings:e,handle:q,getPanel:()=>n,activate:V,open:x,hide:w,toggle:A,sendMessage:M,registerReady:I,registerError:C,registerMessage:_,handleIncoming:j}}var u=new Map;function Q(e){let n=e,o=2;for(;u.has(n);)n=`${e}-${o}`,o+=1;return n}function Y(e){if(typeof e!="object"||e===null)throw new Error("[AxiomChat] mount(settings) requires a settings object with a webAppId.");let n=e;if(f(n,"webAppId")===null)throw new Error("[AxiomChat] mount(settings) requires a webAppId.");let o=f(n,"id");if(o!==null){let c=u.get(o);if(c!==void 0)return console.warn(`[AxiomChat] mount: instance id "${o}" is already in use; returning the existing instance.`),c.handle}let t=o??Q(f(n,"webAppId")??""),l=D(n,()=>null,z,t);if(l===null)throw new Error("[AxiomChat] mount(settings) requires a webAppId.");let d=U(l);return u.set(t,d),d.activate(),d.handle}function Z(e){return u.get(e)?.handle}function s(e){let n=u.get(m);if(n===void 0){console.warn("[AxiomChat] not configured");return}e(n)}function L(e){if(Array.isArray(e)===!1)return;let[n,o]=e;if(n==="mount"){try{Y(o)}catch(t){console.warn("[AxiomChat] mount failed:",t)}return}if(n==="onReady"&&typeof o=="function"){s(t=>t.registerReady(o));return}if(n==="onError"&&typeof o=="function"){s(t=>t.registerError(o));return}if(n==="onMessage"&&typeof o=="function"){s(t=>t.registerMessage(o));return}if(n==="sendMessage"&&typeof o=="string"){s(t=>t.sendMessage(o));return}n==="open"?s(t=>t.open()):n==="hide"?s(t=>t.hide()):n==="toggle"&&s(t=>t.toggle())}function H(e){for(let n of u.values()){let o=n.getPanel();if(o!==null&&e.origin===new URL(o.src).origin&&!(e.source===null||e.source!==o.contentWindow)){n.handleIncoming(e.data);return}}}var G="__axiomChatMessageListener";function J(){let e=window,n=e[G];typeof n=="function"&&window.removeEventListener("message",n),e[G]=H,window.addEventListener("message",H)}var N=document.currentScript,$=N?.src||null,z=$!==null?new URL($).origin:window.location.origin;function ee(){let e=o=>{let t=N?.getAttribute(`data-${o}`);return typeof t=="string"&&t.length>0?t:null},n=window.AxiomChatSettings??{};return D(n,e,z,m)}function ne(){let e=ee();e!==null?u.set(m,U(e)):console.warn("[AxiomChat] Missing webAppId (set window.AxiomChatSettings.webAppId or data-web-app-id)."),J();let n=(t=>{t!==void 0&&L(t)});n.open=()=>s(t=>t.open()),n.hide=()=>s(t=>t.hide()),n.toggle=()=>s(t=>t.toggle()),n.sendMessage=t=>s(l=>l.sendMessage(t)),n.mount=Y,n.get=Z;let o=window.AxiomChat;if(Array.isArray(o))for(let t of o)L(t);window.AxiomChat=n,u.get(m)?.activate()}ne();})();
@@ -1 +1 @@
1
- import{l as C}from"./embed-page-chunk-A2LQIHX4.js";import"./embed-page-chunk-4BIOW547.js";import"./embed-page-chunk-EPEKIAZP.js";import"./embed-page-chunk-7CFGO35V.js";import"./embed-page-chunk-KGX7G7XQ.js";import"./embed-page-chunk-DVHOG6AY.js";import"./embed-page-chunk-S4XZPBRM.js";import"./embed-page-chunk-AYOVLRHX.js";import"./embed-page-chunk-BZI3YCE7.js";import{b as B}from"./embed-page-chunk-JLWIJ4BP.js";import"./embed-page-chunk-SU5GXLKX.js";import{Ua as T}from"./embed-page-chunk-OWGBADV6.js";import{q as P}from"./embed-page-chunk-4X5XHAMX.js";import{a as I}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-ESLOGPBN.js";import{U as c,W as p,oa as D,va as b,xa as l}from"./embed-page-chunk-KG5A66WX.js";import{a as U}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as u}from"./embed-page-chunk-6Y3UYJ6Z.js";var e=u(U());var t=u(I()),G={component_key:"workspace_assistants",data:{},message:"Assistants"},N=r=>{let i=r;if(typeof r=="string")try{i=JSON.parse(r)}catch{return{}}return i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{}},H=({data:r})=>{let{assistantId:i,initialTab:F}=r??{},{get:m,put:f,del:A}=P(),y=T(),[g,w]=(0,e.useState)(null),[R,h]=(0,e.useState)([]),[E,v]=(0,e.useState)(!1),[L,S]=(0,e.useState)(null),d=(0,e.useCallback)(()=>{y(G)},[y]),a=(0,e.useCallback)(async()=>{v(!0),S(null);try{let s=(await m("/api/assistants")).data?.records??[];h(s),w(s.find(o=>o.id===i)??null)}catch{S("Failed to load agent")}finally{v(!1)}},[m,i]);(0,e.useEffect)(()=>{i&&a()},[a,i]);let _=(0,e.useCallback)(async(n,s)=>{let o=N(n.graphDefinition),k;try{k=await f(`/api/assistants/${n.id}`,{name:s.name!==void 0?s.name:n.name,description:s.description!==void 0?s.description:n.description,graphDefinition:{...o,...s}})}catch(z){throw l.error("Failed to save agent"),z}if(!k.success)throw l.error("Failed to save agent"),new Error("Failed to save agent");l.success("Saved"),await a()},[f,a]),j=(0,e.useCallback)(n=>{w(s=>s&&s.id===n.id?n:s),h(s=>s.map(o=>o.id===n.id?n:o))},[]),x=(0,e.useCallback)(async n=>{if(!(await A(`/api/assistants/${n}`)).success)throw new Error("Failed to delete agent");l.success("Agent deleted"),d()},[A,d]);return i?g?(0,t.jsx)("div",{style:{height:"100%",overflow:"auto"},children:(0,t.jsx)(B,{children:(0,t.jsx)(C,{assistant:g,allAssistants:R,onBack:d,onDeleted:x,onSave:_,onAssistantUpdated:j,onAgentListInvalidated:()=>void a(),initialTab:F})},g.id)}):E?(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(b,{})}):L?(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"error",showIcon:!0,message:"Failed to load agent","data-testid":"detail-error",action:(0,t.jsxs)(D,{children:[(0,t.jsx)(p,{size:"small",onClick:()=>void a(),children:"Retry"}),(0,t.jsx)(p,{size:"small",type:"primary",onClick:d,children:"Back to list"})]})})}):(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"warning",showIcon:!0,message:"Agent not found","data-testid":"detail-not-found",action:(0,t.jsx)(p,{size:"small",type:"primary",onClick:d,children:"Back to list"})})}):(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"warning",showIcon:!0,message:"Missing agent id","data-testid":"detail-missing-id"})})};export{H as AgentDetailSideApp};
1
+ import{l as C}from"./embed-page-chunk-3WXEO6CG.js";import"./embed-page-chunk-3PY2YGBU.js";import"./embed-page-chunk-FDID7LZP.js";import"./embed-page-chunk-HS5VQFWH.js";import"./embed-page-chunk-KEL6XU6R.js";import"./embed-page-chunk-AC6X2XRH.js";import"./embed-page-chunk-S4XZPBRM.js";import"./embed-page-chunk-MGZK7ELC.js";import"./embed-page-chunk-67U2KZFL.js";import"./embed-page-chunk-N46WJ2FS.js";import{b as B}from"./embed-page-chunk-FU2KMTSK.js";import{Ta as T}from"./embed-page-chunk-42S7N5Y5.js";import{q as P}from"./embed-page-chunk-74BPRLSV.js";import{a as I}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-Z7USDLHI.js";import{U as c,W as p,oa as D,va as b,xa as l}from"./embed-page-chunk-O4QK5LWZ.js";import{a as U}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as u}from"./embed-page-chunk-6Y3UYJ6Z.js";var e=u(U());var t=u(I()),G={component_key:"workspace_assistants",data:{},message:"Assistants"},N=r=>{let i=r;if(typeof r=="string")try{i=JSON.parse(r)}catch{return{}}return i!==null&&typeof i=="object"&&!Array.isArray(i)?i:{}},H=({data:r})=>{let{assistantId:i,initialTab:F}=r??{},{get:m,put:f,del:A}=P(),y=T(),[g,w]=(0,e.useState)(null),[R,h]=(0,e.useState)([]),[E,v]=(0,e.useState)(!1),[L,S]=(0,e.useState)(null),d=(0,e.useCallback)(()=>{y(G)},[y]),a=(0,e.useCallback)(async()=>{v(!0),S(null);try{let s=(await m("/api/assistants")).data?.records??[];h(s),w(s.find(o=>o.id===i)??null)}catch{S("Failed to load agent")}finally{v(!1)}},[m,i]);(0,e.useEffect)(()=>{i&&a()},[a,i]);let _=(0,e.useCallback)(async(n,s)=>{let o=N(n.graphDefinition),k;try{k=await f(`/api/assistants/${n.id}`,{name:s.name!==void 0?s.name:n.name,description:s.description!==void 0?s.description:n.description,graphDefinition:{...o,...s}})}catch(z){throw l.error("Failed to save agent"),z}if(!k.success)throw l.error("Failed to save agent"),new Error("Failed to save agent");l.success("Saved"),await a()},[f,a]),j=(0,e.useCallback)(n=>{w(s=>s&&s.id===n.id?n:s),h(s=>s.map(o=>o.id===n.id?n:o))},[]),x=(0,e.useCallback)(async n=>{if(!(await A(`/api/assistants/${n}`)).success)throw new Error("Failed to delete agent");l.success("Agent deleted"),d()},[A,d]);return i?g?(0,t.jsx)("div",{style:{height:"100%",overflow:"auto"},children:(0,t.jsx)(B,{children:(0,t.jsx)(C,{assistant:g,allAssistants:R,onBack:d,onDeleted:x,onSave:_,onAssistantUpdated:j,onAgentListInvalidated:()=>void a(),initialTab:F})},g.id)}):E?(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"},children:(0,t.jsx)(b,{})}):L?(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"error",showIcon:!0,message:"Failed to load agent","data-testid":"detail-error",action:(0,t.jsxs)(D,{children:[(0,t.jsx)(p,{size:"small",onClick:()=>void a(),children:"Retry"}),(0,t.jsx)(p,{size:"small",type:"primary",onClick:d,children:"Back to list"})]})})}):(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"warning",showIcon:!0,message:"Agent not found","data-testid":"detail-not-found",action:(0,t.jsx)(p,{size:"small",type:"primary",onClick:d,children:"Back to list"})})}):(0,t.jsx)("div",{style:{padding:24},children:(0,t.jsx)(c,{type:"warning",showIcon:!0,message:"Missing agent id","data-testid":"detail-missing-id"})})};export{H as AgentDetailSideApp};
@@ -1 +1 @@
1
- .x-markdown-debug-panel{position:fixed;z-index:9999;right:0;background:#000000d9;border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:12px;color:#fff;width:180px;box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);user-select:none;transition:box-shadow .2s}.x-markdown-debug-panel:hover{box-shadow:0 4px 12px #00000040}.x-markdown-debug-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-markdown-debug-row:last-child{margin-bottom:0}.x-markdown-debug-label{color:#ffffffa6;font-weight:500;min-width:60px}.x-markdown-debug-value{font-weight:600;min-width:50px;text-align:right}.x-markdown-debug-chart{margin-left:auto}.x-markdown-debug-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-markdown-debug-action{flex:1;padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;font-family:inherit;cursor:pointer;transition:all .2s;font-weight:500}.x-markdown-debug-action:hover{background:#ffffff26;border-color:#ffffff4d}.x-markdown-debug-action:active{transform:scale(.98)}.x-markdown-debug-record-btn.recording{background:#ff4d4f33;border-color:#ff4d4f;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ff4d4f66}50%{box-shadow:0 0 0 8px #ff4d4f00}}.x-markdown-debug-modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.x-markdown-debug-modal{background:#1e1e1ef2;border-radius:12px;box-shadow:0 8px 32px #0006;max-width:90vw;max-height:90vh;overflow:auto;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.x-markdown-debug-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.x-markdown-debug-close-btn{width:32px;height:32px;border-radius:6px;background:#ffffff1a;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.x-markdown-debug-close-btn:hover{background:#ff4d4f4d}.x-markdown-debug-modal-content{padding:24px}.x-markdown-debug-stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.x-markdown-debug-stat-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-stat-label{font-size:11px;color:#fff9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.x-markdown-debug-stat-value{font-size:20px;font-weight:700;color:#fff}.x-markdown-debug-chart-full{background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-chart-full .fps-line,.x-markdown-debug-chart-full .memory-line{filter:drop-shadow(0 0 4px currentColor)}.x-markdown-debug-legend{display:flex;gap:24px;justify-content:center;margin-top:16px}.x-markdown-debug-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#fffc}.x-markdown-debug-legend-color{width:12px;height:12px;border-radius:2px}@media (max-width: 768px){.x-markdown-debug-stats-summary{grid-template-columns:repeat(2,1fr)}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}.diff-container{border-collapse:collapse;background:var(--diffViewerBackground);color:var(--diffViewerColor);width:100%}.diff-container pre{white-space:pre-wrap;margin:0;line-height:25px}.diff-container.light-theme{--diffViewerBackground: #fff;--diffViewerColor: #212529;--addedBackground: #e6ffed;--addedColor: #24292e;--removedBackground: #ffeef0;--removedColor: #24292e;--wordAddedBackground: #acf2bd;--wordRemovedBackground: #fdb8c0;--addedGutterBackground: #cdffd8;--removedGutterBackground: #ffdce0;--gutterBackground: #f7f7f7;--gutterBackgroundDark: #f3f1f1;--highlightBackground: #fffbdd;--highlightGutterBackground: #fff5b1;--codeFoldGutterBackground: #dbedff;--codeFoldBackground: #f1f8ff;--emptyLineBackground: #fafbfc;--gutterColor: #212529;--addedGutterColor: #212529;--removedGutterColor: #212529;--codeFoldContentColor: #212529;--diffViewerTitleBackground: #fafbfc;--diffViewerTitleColor: #212529;--diffViewerTitleBorderColor: #eee}.diff-container.dark-theme{--diffViewerBackground: #2e303c;--diffViewerColor: #fff;--addedBackground: #044b53;--addedColor: white;--removedBackground: #632f34;--removedColor: white;--wordAddedBackground: #055d67;--wordRemovedBackground: #7d383f;--addedGutterBackground: #034148;--removedGutterBackground: #632b30;--gutterBackground: #2c2f3a;--gutterBackgroundDark: #262933;--highlightBackground: #2a3967;--highlightGutterBackground: #2d4077;--codeFoldGutterBackground: #21232b;--codeFoldBackground: #262831;--emptyLineBackground: #363946;--gutterColor: #464c67;--addedGutterColor: #8c8c8c;--removedGutterColor: #8c8c8c;--codeFoldContentColor: #555a7b;--diffViewerTitleBackground: #2f323e;--diffViewerTitleColor: #555a7b;--diffViewerTitleBorderColor: #353846}.diff-container .gutter{background-color:var(--gutterBackground)}.diff-container .gutter:hover{background-color:var(--gutterBackgroundDark)}.diff-container .diff-added{background-color:var(--addedBackground);color:var(--addedColor)}.diff-container .diff-added pre{color:var(--addedColor)}.diff-container .diff-removed{background-color:var(--removedBackground);color:var(--removedColor)}.diff-container .diff-removed pre{color:var(--removedColor)}.diff-container .gutter.diff-added{background-color:var(--addedGutterBackground)}.diff-container .gutter.diff-added .line-number{color:var(--addedGutterColor)}.diff-container .gutter.diff-removed{background-color:var(--removedGutterBackground)}.diff-container .gutter.diff-removed .line-number{color:var(--removedGutterColor)}.diff-container .line-number{color:var(--gutterColor)}.diff-container .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.diff-container .highlighted-line{background-color:var(--highlightBackground)}.diff-container .highlighted-gutter{background-color:var(--highlightGutterBackground)!important}.diff-container .code-fold-gutter{background-color:var(--codeFoldGutterBackground)}.diff-container .code-fold{background-color:var(--codeFoldBackground)}.diff-container .code-fold .code-fold-content{color:var(--codeFoldContentColor)}.diff-container .empty-line{background-color:var(--emptyLineBackground)}.diff-container .title-block{background-color:var(--diffViewerTitleBackground);border-bottom-color:var(--diffViewerTitleBorderColor)}.diff-container .title-block .content-text{color:var(--diffViewerTitleColor)}.diff-container .title-block:last-child{border-left-color:var(--diffViewerTitleBorderColor)}.diff-container .line{vertical-align:baseline}.diff-container .content{width:100%}.diff-container .split-view .content{width:50%}.diff-container .gutter{user-select:none;text-align:right;min-width:50px;padding:0 10px}.diff-container .gutter:hover{cursor:pointer}.diff-container .gutter:hover pre{opacity:1}.diff-container .gutter pre{opacity:.5}.diff-container .empty-gutter .gutter:hover{background:inherit;cursor:initial}.diff-container .marker{user-select:none;width:25px;padding-left:10px;padding-right:10px}.diff-container .word-diff{display:inline-flex;border-radius:1px;padding:2px}.diff-container .code-fold{height:40px;font-size:14px;font-weight:700}.diff-container .code-fold a{cursor:pointer;text-decoration:underline!important}.diff-container .code-fold a pre{display:inline}.diff-container .title-block{border-bottom:1px solid;padding:10px}.diff-container .title-block:last-child{border-left:1px solid}.diff-container .highlighted-line .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .highlighted-line .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
1
+ .x-markdown-debug-panel{position:fixed;z-index:9999;right:0;background:#000000d9;border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:12px;color:#fff;width:180px;box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);user-select:none;transition:box-shadow .2s}.x-markdown-debug-panel:hover{box-shadow:0 4px 12px #00000040}.x-markdown-debug-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-markdown-debug-row:last-child{margin-bottom:0}.x-markdown-debug-label{color:#ffffffa6;font-weight:500;min-width:60px}.x-markdown-debug-value{font-weight:600;min-width:50px;text-align:right}.x-markdown-debug-chart{margin-left:auto}.x-markdown-debug-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-markdown-debug-action{flex:1;padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;font-family:inherit;cursor:pointer;transition:all .2s;font-weight:500}.x-markdown-debug-action:hover{background:#ffffff26;border-color:#ffffff4d}.x-markdown-debug-action:active{transform:scale(.98)}.x-markdown-debug-record-btn.recording{background:#ff4d4f33;border-color:#ff4d4f;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ff4d4f66}50%{box-shadow:0 0 0 8px #ff4d4f00}}.x-markdown-debug-modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.x-markdown-debug-modal{background:#1e1e1ef2;border-radius:12px;box-shadow:0 8px 32px #0006;max-width:90vw;max-height:90vh;overflow:auto;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.x-markdown-debug-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.x-markdown-debug-close-btn{width:32px;height:32px;border-radius:6px;background:#ffffff1a;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.x-markdown-debug-close-btn:hover{background:#ff4d4f4d}.x-markdown-debug-modal-content{padding:24px}.x-markdown-debug-stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.x-markdown-debug-stat-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-stat-label{font-size:11px;color:#fff9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.x-markdown-debug-stat-value{font-size:20px;font-weight:700;color:#fff}.x-markdown-debug-chart-full{background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-chart-full .fps-line,.x-markdown-debug-chart-full .memory-line{filter:drop-shadow(0 0 4px currentColor)}.x-markdown-debug-legend{display:flex;gap:24px;justify-content:center;margin-top:16px}.x-markdown-debug-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#fffc}.x-markdown-debug-legend-color{width:12px;height:12px;border-radius:2px}@media (max-width: 768px){.x-markdown-debug-stats-summary{grid-template-columns:repeat(2,1fr)}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}.diff-container{border-collapse:collapse;background:var(--diffViewerBackground);color:var(--diffViewerColor);width:100%}.diff-container pre{white-space:pre-wrap;margin:0;line-height:25px}.diff-container.light-theme{--diffViewerBackground: #fff;--diffViewerColor: #212529;--addedBackground: #e6ffed;--addedColor: #24292e;--removedBackground: #ffeef0;--removedColor: #24292e;--wordAddedBackground: #acf2bd;--wordRemovedBackground: #fdb8c0;--addedGutterBackground: #cdffd8;--removedGutterBackground: #ffdce0;--gutterBackground: #f7f7f7;--gutterBackgroundDark: #f3f1f1;--highlightBackground: #fffbdd;--highlightGutterBackground: #fff5b1;--codeFoldGutterBackground: #dbedff;--codeFoldBackground: #f1f8ff;--emptyLineBackground: #fafbfc;--gutterColor: #212529;--addedGutterColor: #212529;--removedGutterColor: #212529;--codeFoldContentColor: #212529;--diffViewerTitleBackground: #fafbfc;--diffViewerTitleColor: #212529;--diffViewerTitleBorderColor: #eee}.diff-container.dark-theme{--diffViewerBackground: #2e303c;--diffViewerColor: #fff;--addedBackground: #044b53;--addedColor: white;--removedBackground: #632f34;--removedColor: white;--wordAddedBackground: #055d67;--wordRemovedBackground: #7d383f;--addedGutterBackground: #034148;--removedGutterBackground: #632b30;--gutterBackground: #2c2f3a;--gutterBackgroundDark: #262933;--highlightBackground: #2a3967;--highlightGutterBackground: #2d4077;--codeFoldGutterBackground: #21232b;--codeFoldBackground: #262831;--emptyLineBackground: #363946;--gutterColor: #464c67;--addedGutterColor: #8c8c8c;--removedGutterColor: #8c8c8c;--codeFoldContentColor: #555a7b;--diffViewerTitleBackground: #2f323e;--diffViewerTitleColor: #555a7b;--diffViewerTitleBorderColor: #353846}.diff-container .gutter{background-color:var(--gutterBackground)}.diff-container .gutter:hover{background-color:var(--gutterBackgroundDark)}.diff-container .diff-added{background-color:var(--addedBackground);color:var(--addedColor)}.diff-container .diff-added pre{color:var(--addedColor)}.diff-container .diff-removed{background-color:var(--removedBackground);color:var(--removedColor)}.diff-container .diff-removed pre{color:var(--removedColor)}.diff-container .gutter.diff-added{background-color:var(--addedGutterBackground)}.diff-container .gutter.diff-added .line-number{color:var(--addedGutterColor)}.diff-container .gutter.diff-removed{background-color:var(--removedGutterBackground)}.diff-container .gutter.diff-removed .line-number{color:var(--removedGutterColor)}.diff-container .line-number{color:var(--gutterColor)}.diff-container .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.diff-container .highlighted-line{background-color:var(--highlightBackground)}.diff-container .highlighted-gutter{background-color:var(--highlightGutterBackground)!important}.diff-container .code-fold-gutter{background-color:var(--codeFoldGutterBackground)}.diff-container .code-fold{background-color:var(--codeFoldBackground)}.diff-container .code-fold .code-fold-content{color:var(--codeFoldContentColor)}.diff-container .empty-line{background-color:var(--emptyLineBackground)}.diff-container .title-block{background-color:var(--diffViewerTitleBackground);border-bottom-color:var(--diffViewerTitleBorderColor)}.diff-container .title-block .content-text{color:var(--diffViewerTitleColor)}.diff-container .title-block:last-child{border-left-color:var(--diffViewerTitleBorderColor)}.diff-container .line{vertical-align:baseline}.diff-container .content{width:100%}.diff-container .split-view .content{width:50%}.diff-container .gutter{user-select:none;text-align:right;min-width:50px;padding:0 10px}.diff-container .gutter:hover{cursor:pointer}.diff-container .gutter:hover pre{opacity:1}.diff-container .gutter pre{opacity:.5}.diff-container .empty-gutter .gutter:hover{background:inherit;cursor:initial}.diff-container .marker{user-select:none;width:25px;padding-left:10px;padding-right:10px}.diff-container .word-diff{display:inline-flex;border-radius:1px;padding:2px}.diff-container .code-fold{height:40px;font-size:14px;font-weight:700}.diff-container .code-fold a{cursor:pointer;text-decoration:underline!important}.diff-container .code-fold a pre{display:inline}.diff-container .title-block{border-bottom:1px solid;padding:10px}.diff-container .title-block:last-child{border-left:1px solid}.diff-container .highlighted-line .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .highlighted-line .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.open-grants-picker{display:flex;border:1px solid var(--axiom-border-color, #f0f0f0);border-radius:10px;overflow:hidden}.open-grants-picker__loading{display:flex;align-items:center;padding:16px 0}.open-grants-picker__nav{width:190px;flex-shrink:0;border-right:1px solid var(--axiom-border-color, #f0f0f0);background:var(--axiom-fill-tertiary, #fafafa);padding:8px;overflow-y:auto}.open-grants-picker__nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;cursor:pointer;text-align:left;font-size:13px;color:var(--axiom-text-color, rgba(0, 0, 0, .88));transition:background .15s ease}.open-grants-picker__nav-item:hover{background:var(--axiom-fill-secondary, #f5f5f5)}.open-grants-picker__nav-item--active{background:var(--axiom-primary-bg, #eef2ff);color:#6366f1;font-weight:600}.open-grants-picker__nav-label{display:inline-flex;align-items:center;gap:8px;min-width:0}.open-grants-picker__content{flex:1;min-width:0;padding:12px;overflow-y:auto}.open-grants-picker__content-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.open-grants-picker__content-meta{display:inline-flex;align-items:center}.open-grants-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.open-grants-picker__card--selected{border-color:#6366f1!important;background:var(--axiom-primary-bg, #eef2ff)}.open-grants-picker__desc{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45))}.open-grants-picker__hint{display:flex;align-items:center;gap:8px;margin-top:10px}.key-exposure{display:flex;flex-direction:column;gap:16px;max-height:70vh;overflow-y:auto}.key-exposure__loading{display:flex;justify-content:center;padding:24px 0}.key-exposure__endpoint{padding:10px 12px;background:var(--axiom-fill-tertiary, #fafafa);border-radius:10px}.key-exposure__endpoint-line{display:flex;align-items:center;gap:8px;margin-top:6px;overflow-wrap:anywhere}.key-exposure__section-title{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.key-exposure__domain+.key-exposure__domain{margin-top:12px}.key-exposure__domain-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.key-exposure__tool{padding:6px 0 6px 21px;border-bottom:1px solid var(--axiom-border-color, #f5f5f5)}.key-exposure__tool-desc{font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45));margin-top:2px}.key-exposure__agent{padding:10px 12px;border:1px solid var(--axiom-border-color, #f0f0f0);border-radius:10px;margin-bottom:8px}.key-exposure__agent-header{display:flex;align-items:center;gap:6px}.key-exposure__agent-desc{font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45));margin:4px 0}.key-exposure__agent-lines{display:flex;flex-direction:column;gap:2px;margin:4px 0;overflow-wrap:anywhere}.key-exposure__skills{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.key-exposure__tab{display:flex;flex-direction:column;gap:16px}.key-exposure__scroll{max-height:calc(82vh - 130px);overflow-y:auto;padding-right:4px}.agent-card{border-radius:14px!important;margin-bottom:12px}.agent-card__header{display:flex;gap:12px;align-items:flex-start}.agent-card__avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:10px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.agent-card__name{font-size:15px;font-weight:600;line-height:1.3}.agent-card__desc{font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45));margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.agent-card__block{margin-top:12px}.agent-card__skills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.agent-card__endpoints{display:flex;flex-direction:column;gap:4px;margin-top:6px}.agent-card__endpoint{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}.agent-card__modes{margin-top:12px}
@@ -1,4 +1,4 @@
1
- import{a as Re,b as Me,c as Tt,d as It,e as Dt,f as Rt,g as Pt,h as Ft,i as Et,j as Mt,k as Nt,l as Lt}from"./embed-page-chunk-A2LQIHX4.js";import{a as Ge}from"./embed-page-chunk-4BIOW547.js";import"./embed-page-chunk-EPEKIAZP.js";import"./embed-page-chunk-7CFGO35V.js";import"./embed-page-chunk-KGX7G7XQ.js";import{b as _e,e as Ve,f as At,g as Ct,h as xt,i as wt,l as vt,m as kt}from"./embed-page-chunk-DVHOG6AY.js";import{a as mt,b as gt,c as ut,d as ft,e as yt}from"./embed-page-chunk-SV2BM3WO.js";import"./embed-page-chunk-S4XZPBRM.js";import"./embed-page-chunk-AYOVLRHX.js";import"./embed-page-chunk-BZI3YCE7.js";import{b as St}from"./embed-page-chunk-JLWIJ4BP.js";import"./embed-page-chunk-SU5GXLKX.js";import{I as ot,Ia as ct,Ka as pt,L as rt,T as st,Ua as ht,ab as bt,bb as Ke,fa as it,j as De,la as lt,x as at,za as dt}from"./embed-page-chunk-OWGBADV6.js";import{l as Qe,q as fe}from"./embed-page-chunk-4X5XHAMX.js";import{a as E}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-ESLOGPBN.js";import{Db as et,Fa as Je,Ia as Ie,Ja as Ye,La as Y,Ua as Xe,W as Z,_ as Se,aa as Te,ac as Ee,ea as Fe,ka as Oe,la as We,ma as qe,mc as tt,oa as Ze,ra as P,ta as V,wa as $e,wc as nt,xa as v,ya as ue}from"./embed-page-chunk-KG5A66WX.js";import{a as ge}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as x}from"./embed-page-chunk-6Y3UYJ6Z.js";var u=x(ge());var X=x(ge());var J=x(ge());var Bt=x(ge());var se=x(E()),Ot=60,$t=72,ze=(0,Bt.memo)(({data:n})=>{let r=Re(n.type),p=Math.min(12+Math.sqrt(n.subAgentCount)*10,48);return(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,se.jsx)(Ve,{type:"target",position:_e.Top,style:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",background:"transparent",border:"none",width:0,height:0},isConnectable:!1}),(0,se.jsx)("div",{title:n.label,style:{width:p,height:p,borderRadius:"50%",background:Me(r.color),display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:Math.max(10,p*.4),fontWeight:600,cursor:"pointer",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:n.label.charAt(0).toUpperCase()}),(0,se.jsx)("div",{style:{fontSize:11,maxWidth:120,textAlign:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:4},children:n.label}),(0,se.jsx)(Ve,{type:"source",position:_e.Top,style:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",background:"transparent",border:"none",width:0,height:0},isConnectable:!1})]})});ze.displayName="AgentGraphNode";var Q=x(E()),sn=({assistants:n,onNodeClick:r})=>{let[p,d,g]=xt([]),[o,f,k]=wt([]),[c,S]=(0,J.useState)(null),H=(0,J.useMemo)(()=>({agent:ze}),[]),m=(0,J.useMemo)(()=>Dt(n),[n]);(0,J.useEffect)(()=>{let w=m.nodes.map(i=>({id:i.id})),F=m.edges.map(i=>({source:i.source,target:i.target})),N=new Map(m.nodes.map(i=>[i.id,i])),_=ft(w).force("link",ut(F).id(i=>i.id).distance(80)).force("charge",yt().strength(-220)).force("center",mt(0,0)).force("collide",gt(45)).stop();for(let i=0;i<300;i++)_.tick();let R=w.map(i=>({id:i.id,type:"agent",data:N.get(i.id),position:{x:i.x-Ot/2,y:i.y-$t/2}})),s=m.edges.map(i=>({id:`e${i.source}-${i.target}`,source:i.source,target:i.target,style:{stroke:"#1677ff",strokeWidth:2},type:"straight"}));d(R),f(s)},[m,d,f]);let I=(0,J.useMemo)(()=>c===null?p:p.map(w=>{let F=w.id===c||o.some(N=>N.source===c&&N.target===w.id||N.target===c&&N.source===w.id);return{...w,style:{opacity:F?1:.2,transition:"opacity 0.2s ease"}}}),[p,o,c]),K=(0,J.useMemo)(()=>c===null?o.map(w=>({...w,style:{stroke:"#1677ff",strokeWidth:1.5,opacity:.25,transition:"opacity 0.2s ease"}})):o.map(w=>{let F=w.source===c||w.target===c;return{...w,style:{stroke:"#1677ff",strokeWidth:F?2.5:1,opacity:F?1:.04,transition:"opacity 0.2s ease"}}}),[o,c]);return(0,Q.jsx)("div",{style:{width:"100%",height:"100%",background:"#fafafa",position:"relative"},children:(0,Q.jsxs)(Ct,{nodes:I,edges:K,onNodesChange:g,onEdgesChange:k,onNodeMouseEnter:(w,F)=>S(F.id),onNodeMouseLeave:()=>S(null),onNodeClick:(w,F)=>r?.(String(F.id)),nodeTypes:H,fitView:!0,fitViewOptions:{padding:.25},children:[(0,Q.jsx)(vt,{color:"#eee",gap:20}),(0,Q.jsx)(kt,{})]})})},Kt=n=>(0,Q.jsx)(At,{children:(0,Q.jsx)(sn,{...n})});var M=x(E()),ln=n=>{if(!n)return"\u2014";let r=Date.now()-new Date(n).getTime(),p=Math.floor(r/6e4);if(p<1)return"just now";if(p<60)return`${p}m ago`;let d=Math.floor(p/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`},dn=n=>n===null?"#d9d9d9":n>=80?"#22c55e":n>=50?"#f59e0b":"#ef4444",cn=ct(({css:n})=>({row:n`
1
+ import{a as Re,b as Me,c as Tt,d as It,e as Dt,f as Rt,g as Pt,h as Ft,i as Et,j as Mt,k as Nt,l as Lt}from"./embed-page-chunk-3WXEO6CG.js";import"./embed-page-chunk-3PY2YGBU.js";import{a as Ge}from"./embed-page-chunk-FDID7LZP.js";import"./embed-page-chunk-HS5VQFWH.js";import"./embed-page-chunk-KEL6XU6R.js";import{b as _e,e as Ve,f as At,g as Ct,h as xt,i as wt,l as vt,m as kt}from"./embed-page-chunk-AC6X2XRH.js";import{a as mt,b as gt,c as ut,d as ft,e as yt}from"./embed-page-chunk-SV2BM3WO.js";import"./embed-page-chunk-S4XZPBRM.js";import"./embed-page-chunk-MGZK7ELC.js";import"./embed-page-chunk-67U2KZFL.js";import"./embed-page-chunk-N46WJ2FS.js";import{b as St}from"./embed-page-chunk-FU2KMTSK.js";import{H as ot,Ha as ct,Ja as pt,K as rt,S as st,Ta as ht,bb as bt,cb as Ke,ea as it,j as De,ka as lt,x as at,ya as dt}from"./embed-page-chunk-42S7N5Y5.js";import{l as Qe,q as fe}from"./embed-page-chunk-74BPRLSV.js";import{a as E}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-Z7USDLHI.js";import{Db as et,Fa as Je,Ia as Ie,Ja as Ye,La as Y,Ua as Xe,W as Z,_ as Se,aa as Te,ac as Ee,ea as Fe,ka as Oe,la as We,ma as qe,mc as tt,oa as Ze,ra as P,ta as V,wa as $e,xa as v,ya as ue,yc as nt}from"./embed-page-chunk-O4QK5LWZ.js";import{a as ge}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as x}from"./embed-page-chunk-6Y3UYJ6Z.js";var u=x(ge());var X=x(ge());var J=x(ge());var Bt=x(ge());var se=x(E()),Ot=60,$t=72,ze=(0,Bt.memo)(({data:n})=>{let r=Re(n.type),p=Math.min(12+Math.sqrt(n.subAgentCount)*10,48);return(0,se.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center"},children:[(0,se.jsx)(Ve,{type:"target",position:_e.Top,style:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",background:"transparent",border:"none",width:0,height:0},isConnectable:!1}),(0,se.jsx)("div",{title:n.label,style:{width:p,height:p,borderRadius:"50%",background:Me(r.color),display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:Math.max(10,p*.4),fontWeight:600,cursor:"pointer",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:n.label.charAt(0).toUpperCase()}),(0,se.jsx)("div",{style:{fontSize:11,maxWidth:120,textAlign:"center",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:4},children:n.label}),(0,se.jsx)(Ve,{type:"source",position:_e.Top,style:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",background:"transparent",border:"none",width:0,height:0},isConnectable:!1})]})});ze.displayName="AgentGraphNode";var Q=x(E()),sn=({assistants:n,onNodeClick:r})=>{let[p,d,g]=xt([]),[o,f,k]=wt([]),[c,S]=(0,J.useState)(null),H=(0,J.useMemo)(()=>({agent:ze}),[]),m=(0,J.useMemo)(()=>Dt(n),[n]);(0,J.useEffect)(()=>{let w=m.nodes.map(i=>({id:i.id})),F=m.edges.map(i=>({source:i.source,target:i.target})),N=new Map(m.nodes.map(i=>[i.id,i])),_=ft(w).force("link",ut(F).id(i=>i.id).distance(80)).force("charge",yt().strength(-220)).force("center",mt(0,0)).force("collide",gt(45)).stop();for(let i=0;i<300;i++)_.tick();let R=w.map(i=>({id:i.id,type:"agent",data:N.get(i.id),position:{x:i.x-Ot/2,y:i.y-$t/2}})),s=m.edges.map(i=>({id:`e${i.source}-${i.target}`,source:i.source,target:i.target,style:{stroke:"#1677ff",strokeWidth:2},type:"straight"}));d(R),f(s)},[m,d,f]);let I=(0,J.useMemo)(()=>c===null?p:p.map(w=>{let F=w.id===c||o.some(N=>N.source===c&&N.target===w.id||N.target===c&&N.source===w.id);return{...w,style:{opacity:F?1:.2,transition:"opacity 0.2s ease"}}}),[p,o,c]),K=(0,J.useMemo)(()=>c===null?o.map(w=>({...w,style:{stroke:"#1677ff",strokeWidth:1.5,opacity:.25,transition:"opacity 0.2s ease"}})):o.map(w=>{let F=w.source===c||w.target===c;return{...w,style:{stroke:"#1677ff",strokeWidth:F?2.5:1,opacity:F?1:.04,transition:"opacity 0.2s ease"}}}),[o,c]);return(0,Q.jsx)("div",{style:{width:"100%",height:"100%",background:"#fafafa",position:"relative"},children:(0,Q.jsxs)(Ct,{nodes:I,edges:K,onNodesChange:g,onEdgesChange:k,onNodeMouseEnter:(w,F)=>S(F.id),onNodeMouseLeave:()=>S(null),onNodeClick:(w,F)=>r?.(String(F.id)),nodeTypes:H,fitView:!0,fitViewOptions:{padding:.25},children:[(0,Q.jsx)(vt,{color:"#eee",gap:20}),(0,Q.jsx)(kt,{})]})})},Kt=n=>(0,Q.jsx)(At,{children:(0,Q.jsx)(sn,{...n})});var M=x(E()),ln=n=>{if(!n)return"\u2014";let r=Date.now()-new Date(n).getTime(),p=Math.floor(r/6e4);if(p<1)return"just now";if(p<60)return`${p}m ago`;let d=Math.floor(p/60);return d<24?`${d}h ago`:`${Math.floor(d/24)}d ago`},dn=n=>n===null?"#d9d9d9":n>=80?"#22c55e":n>=50?"#f59e0b":"#ef4444",cn=ct(({css:n})=>({row:n`
2
2
  display: flex;
3
3
  justify-content: space-between;
4
4
  align-items: flex-end;
@@ -0,0 +1 @@
1
+ .react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.x-markdown-debug-panel{position:fixed;z-index:9999;right:0;background:#000000d9;border-radius:8px;padding:12px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,Source Code Pro,monospace;font-size:12px;color:#fff;width:180px;box-shadow:0 2px 8px #00000026;backdrop-filter:blur(8px);user-select:none;transition:box-shadow .2s}.x-markdown-debug-panel:hover{box-shadow:0 4px 12px #00000040}.x-markdown-debug-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.x-markdown-debug-row:last-child{margin-bottom:0}.x-markdown-debug-label{color:#ffffffa6;font-weight:500;min-width:60px}.x-markdown-debug-value{font-weight:600;min-width:50px;text-align:right}.x-markdown-debug-chart{margin-left:auto}.x-markdown-debug-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.x-markdown-debug-action{flex:1;padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:11px;font-family:inherit;cursor:pointer;transition:all .2s;font-weight:500}.x-markdown-debug-action:hover{background:#ffffff26;border-color:#ffffff4d}.x-markdown-debug-action:active{transform:scale(.98)}.x-markdown-debug-record-btn.recording{background:#ff4d4f33;border-color:#ff4d4f;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{box-shadow:0 0 #ff4d4f66}50%{box-shadow:0 0 0 8px #ff4d4f00}}.x-markdown-debug-modal-overlay{position:fixed;inset:0;background:#000000bf;backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.x-markdown-debug-modal{background:#1e1e1ef2;border-radius:12px;box-shadow:0 8px 32px #0006;max-width:90vw;max-height:90vh;overflow:auto;animation:slideIn .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.x-markdown-debug-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.x-markdown-debug-close-btn{width:32px;height:32px;border-radius:6px;background:#ffffff1a;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.x-markdown-debug-close-btn:hover{background:#ff4d4f4d}.x-markdown-debug-modal-content{padding:24px}.x-markdown-debug-stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.x-markdown-debug-stat-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-stat-label{font-size:11px;color:#fff9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.x-markdown-debug-stat-value{font-size:20px;font-weight:700;color:#fff}.x-markdown-debug-chart-full{background:#ffffff05;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.x-markdown-debug-chart-full .fps-line,.x-markdown-debug-chart-full .memory-line{filter:drop-shadow(0 0 4px currentColor)}.x-markdown-debug-legend{display:flex;gap:24px;justify-content:center;margin-top:16px}.x-markdown-debug-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#fffc}.x-markdown-debug-legend-color{width:12px;height:12px;border-radius:2px}@media (max-width: 768px){.x-markdown-debug-stats-summary{grid-template-columns:repeat(2,1fr)}}@keyframes x-markdown-fade-in{0%{opacity:0}to{opacity:1}}.x-markdown{--text-color: inherit;--font-size: inherit;--margin-block: 0 0 1em 0;--td-th-padding: .85em 1em;--pre-th-td-padding: 2px 0;--border-font-weight: 600;--padding-ul-ol: 0 0 0 1em;--margin-ul-ol: 0 0 1em 1.8em;--margin-li: .25em 0;--margin-pre: 1em 0;--padding-code-inline: .2em .4em;--margin-code-inline: 0 .2em;--code-inline-text: .85em;--small-border-radius: 2px;--image-margin: .5em 0;--hr-margin: 1.5em 0;--table-margin: 1em 0;font-size:var(--font-size);line-height:1.5714285714285714;width:100%;color:var(--text-color)}.x-markdown p,.x-markdown div,.x-markdown span,.x-markdown li{word-break:break-word;overflow-wrap:break-word}.x-markdown pre,.x-markdown code{word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}.x-markdown th,.x-markdown td{padding:var(--td-th-padding)}.x-markdown th{font-weight:var(--border-font-weight)}.x-markdown pre table{box-shadow:none}.x-markdown pre td,.x-markdown pre th{padding:var(--pre-th-td-padding);border:none;text-align:left}.x-markdown p{margin:var(--margin-block)}.x-markdown p:first-child{margin-top:0}.x-markdown p:last-child{margin-bottom:0}.x-markdown ul,.x-markdown ol{margin:var(--margin-ul-ol);padding:var(--padding-ul-ol)}.x-markdown ul:first-child,.x-markdown ol:first-child{margin-top:0}.x-markdown ul:last-child,.x-markdown ol:last-child{margin-bottom:0}.x-markdown ol>li{list-style:decimal}.x-markdown ul>li{list-style:disc}.x-markdown li{margin:var(--margin-li)}.x-markdown li:first-child{margin-top:0}.x-markdown li:last-child{margin-bottom:0}.x-markdown pre{margin:var(--margin-pre);overflow-x:auto}.x-markdown pre:first-child{margin-top:0}.x-markdown pre:last-child{margin-bottom:0}.x-markdown code{padding:var(--padding-code-inline);margin:var(--margin-code-inline);font-size:var(--code-inline-text);border-radius:var(--small-border-radius)}.x-markdown pre code{padding:0;margin:0;font-size:inherit;border-radius:0;line-height:2}.x-markdown img{max-width:100%;height:auto;margin:var(--image-margin)}.x-markdown hr{margin:var(--hr-margin)}.x-markdown table:not(pre){margin:var(--table-margin);border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.x-markdown table:not(pre):first-child{margin-top:0}.x-markdown table:not(pre):last-child{margin-bottom:0}.x-markdown .inline-katex .katex-display{display:inline-block;margin:0;text-align:initial;vertical-align:middle}.x-markdown .inline-katex .katex-display>.katex{display:inline-block;text-align:initial;white-space:normal}.x-markdown .inline-katex .katex-display>.katex>.katex-html{display:inline-block;position:static}.x-markdown .inline-katex .katex-display>.katex>.katex-html>.tag{position:static}.diff-container{border-collapse:collapse;background:var(--diffViewerBackground);color:var(--diffViewerColor);width:100%}.diff-container pre{white-space:pre-wrap;margin:0;line-height:25px}.diff-container.light-theme{--diffViewerBackground: #fff;--diffViewerColor: #212529;--addedBackground: #e6ffed;--addedColor: #24292e;--removedBackground: #ffeef0;--removedColor: #24292e;--wordAddedBackground: #acf2bd;--wordRemovedBackground: #fdb8c0;--addedGutterBackground: #cdffd8;--removedGutterBackground: #ffdce0;--gutterBackground: #f7f7f7;--gutterBackgroundDark: #f3f1f1;--highlightBackground: #fffbdd;--highlightGutterBackground: #fff5b1;--codeFoldGutterBackground: #dbedff;--codeFoldBackground: #f1f8ff;--emptyLineBackground: #fafbfc;--gutterColor: #212529;--addedGutterColor: #212529;--removedGutterColor: #212529;--codeFoldContentColor: #212529;--diffViewerTitleBackground: #fafbfc;--diffViewerTitleColor: #212529;--diffViewerTitleBorderColor: #eee}.diff-container.dark-theme{--diffViewerBackground: #2e303c;--diffViewerColor: #fff;--addedBackground: #044b53;--addedColor: white;--removedBackground: #632f34;--removedColor: white;--wordAddedBackground: #055d67;--wordRemovedBackground: #7d383f;--addedGutterBackground: #034148;--removedGutterBackground: #632b30;--gutterBackground: #2c2f3a;--gutterBackgroundDark: #262933;--highlightBackground: #2a3967;--highlightGutterBackground: #2d4077;--codeFoldGutterBackground: #21232b;--codeFoldBackground: #262831;--emptyLineBackground: #363946;--gutterColor: #464c67;--addedGutterColor: #8c8c8c;--removedGutterColor: #8c8c8c;--codeFoldContentColor: #555a7b;--diffViewerTitleBackground: #2f323e;--diffViewerTitleColor: #555a7b;--diffViewerTitleBorderColor: #353846}.diff-container .gutter{background-color:var(--gutterBackground)}.diff-container .gutter:hover{background-color:var(--gutterBackgroundDark)}.diff-container .diff-added{background-color:var(--addedBackground);color:var(--addedColor)}.diff-container .diff-added pre{color:var(--addedColor)}.diff-container .diff-removed{background-color:var(--removedBackground);color:var(--removedColor)}.diff-container .diff-removed pre{color:var(--removedColor)}.diff-container .gutter.diff-added{background-color:var(--addedGutterBackground)}.diff-container .gutter.diff-added .line-number{color:var(--addedGutterColor)}.diff-container .gutter.diff-removed{background-color:var(--removedGutterBackground)}.diff-container .gutter.diff-removed .line-number{color:var(--removedGutterColor)}.diff-container .line-number{color:var(--gutterColor)}.diff-container .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.diff-container .highlighted-line{background-color:var(--highlightBackground)}.diff-container .highlighted-gutter{background-color:var(--highlightGutterBackground)!important}.diff-container .code-fold-gutter{background-color:var(--codeFoldGutterBackground)}.diff-container .code-fold{background-color:var(--codeFoldBackground)}.diff-container .code-fold .code-fold-content{color:var(--codeFoldContentColor)}.diff-container .empty-line{background-color:var(--emptyLineBackground)}.diff-container .title-block{background-color:var(--diffViewerTitleBackground);border-bottom-color:var(--diffViewerTitleBorderColor)}.diff-container .title-block .content-text{color:var(--diffViewerTitleColor)}.diff-container .title-block:last-child{border-left-color:var(--diffViewerTitleBorderColor)}.diff-container .line{vertical-align:baseline}.diff-container .content{width:100%}.diff-container .split-view .content{width:50%}.diff-container .gutter{user-select:none;text-align:right;min-width:50px;padding:0 10px}.diff-container .gutter:hover{cursor:pointer}.diff-container .gutter:hover pre{opacity:1}.diff-container .gutter pre{opacity:.5}.diff-container .empty-gutter .gutter:hover{background:inherit;cursor:initial}.diff-container .marker{user-select:none;width:25px;padding-left:10px;padding-right:10px}.diff-container .word-diff{display:inline-flex;border-radius:1px;padding:2px}.diff-container .code-fold{height:40px;font-size:14px;font-weight:700}.diff-container .code-fold a{cursor:pointer;text-decoration:underline!important}.diff-container .code-fold a pre{display:inline}.diff-container .title-block{border-bottom:1px solid;padding:10px}.diff-container .title-block:last-child{border-left:1px solid}.diff-container .highlighted-line .word-diff.word-added{background-color:var(--wordAddedBackground)}.diff-container .highlighted-line .word-diff.word-removed{background-color:var(--wordRemovedBackground)}.open-grants-picker{display:flex;border:1px solid var(--axiom-border-color, #f0f0f0);border-radius:10px;overflow:hidden}.open-grants-picker__loading{display:flex;align-items:center;padding:16px 0}.open-grants-picker__nav{width:190px;flex-shrink:0;border-right:1px solid var(--axiom-border-color, #f0f0f0);background:var(--axiom-fill-tertiary, #fafafa);padding:8px;overflow-y:auto}.open-grants-picker__nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;cursor:pointer;text-align:left;font-size:13px;color:var(--axiom-text-color, rgba(0, 0, 0, .88));transition:background .15s ease}.open-grants-picker__nav-item:hover{background:var(--axiom-fill-secondary, #f5f5f5)}.open-grants-picker__nav-item--active{background:var(--axiom-primary-bg, #eef2ff);color:#6366f1;font-weight:600}.open-grants-picker__nav-label{display:inline-flex;align-items:center;gap:8px;min-width:0}.open-grants-picker__content{flex:1;min-width:0;padding:12px;overflow-y:auto}.open-grants-picker__content-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.open-grants-picker__content-meta{display:inline-flex;align-items:center}.open-grants-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.open-grants-picker__card--selected{border-color:#6366f1!important;background:var(--axiom-primary-bg, #eef2ff)}.open-grants-picker__desc{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45))}.open-grants-picker__hint{display:flex;align-items:center;gap:8px;margin-top:10px}.key-exposure{display:flex;flex-direction:column;gap:16px;max-height:70vh;overflow-y:auto}.key-exposure__loading{display:flex;justify-content:center;padding:24px 0}.key-exposure__endpoint{padding:10px 12px;background:var(--axiom-fill-tertiary, #fafafa);border-radius:10px}.key-exposure__endpoint-line{display:flex;align-items:center;gap:8px;margin-top:6px;overflow-wrap:anywhere}.key-exposure__section-title{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.key-exposure__domain+.key-exposure__domain{margin-top:12px}.key-exposure__domain-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.key-exposure__tool{padding:6px 0 6px 21px;border-bottom:1px solid var(--axiom-border-color, #f5f5f5)}.key-exposure__tool-desc{font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45));margin-top:2px}.key-exposure__agent{padding:10px 12px;border:1px solid var(--axiom-border-color, #f0f0f0);border-radius:10px;margin-bottom:8px}.key-exposure__agent-header{display:flex;align-items:center;gap:6px}.key-exposure__agent-desc{font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45));margin:4px 0}.key-exposure__agent-lines{display:flex;flex-direction:column;gap:2px;margin:4px 0;overflow-wrap:anywhere}.key-exposure__skills{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.key-exposure__tab{display:flex;flex-direction:column;gap:16px}.key-exposure__scroll{max-height:calc(82vh - 130px);overflow-y:auto;padding-right:4px}.agent-card{border-radius:14px!important;margin-bottom:12px}.agent-card__header{display:flex;gap:12px;align-items:flex-start}.agent-card__avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;border-radius:10px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.agent-card__name{font-size:15px;font-weight:600;line-height:1.3}.agent-card__desc{font-size:12px;color:var(--axiom-text-color-secondary, rgba(0, 0, 0, .45));margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.agent-card__block{margin-top:12px}.agent-card__skills{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.agent-card__endpoints{display:flex;flex-direction:column;gap:4px;margin-top:6px}.agent-card__endpoint{display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}.agent-card__modes{margin-top:12px}
@@ -0,0 +1,6 @@
1
+ import{c as L,d as U}from"./embed-page-chunk-KEL6XU6R.js";import{b,d as H,e as N}from"./embed-page-chunk-AC6X2XRH.js";import"./embed-page-chunk-S4XZPBRM.js";import{Va as w,Xa as z,Ya as F,jb as k,kb as W,lb as V}from"./embed-page-chunk-42S7N5Y5.js";import"./embed-page-chunk-74BPRLSV.js";import{a as g}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-Z7USDLHI.js";import{Dc as D,Ia as O,Rc as G,Sc as C,Vc as _,W as h,aa as M,gb as P,lb as B,nc as E}from"./embed-page-chunk-O4QK5LWZ.js";import{a as x}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as p}from"./embed-page-chunk-6Y3UYJ6Z.js";var s=p(x());var R=p(x());var o=p(g());var ne="tracePulse 1.4s ease-in-out infinite",re={running:(0,o.jsx)(E,{style:{color:"#1890ff"}}),success:(0,o.jsx)(P,{style:{color:"#52c41a"}}),error:(0,o.jsx)(B,{style:{color:"#ff4d4f"}})};function se({kind:e}){switch(e){case"human":return(0,o.jsx)(_,{});case"agent":return(0,o.jsx)(G,{});case"tool":return(0,o.jsx)(C,{});case"ai":return(0,o.jsx)(D,{});default:return(0,o.jsx)(C,{})}}var S=R.default.createContext({}),ie=()=>R.default.useContext(S),ae=({data:e,selected:i})=>{let{onJumpToMessage:a}=ie(),t=e.isAnswer===!0,r=e.status==="running",d=(e.parallelCount??1)>1,m=!!(a&&e.messageId&&!e.messageId.startsWith("summary:")),f=e.toolCall?F(e.toolCall.name):e.label,y=()=>(e.kind==="tool"||e.kind==="agent")&&e.toolCall?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(z,{data:{name:e.toolCall.name,parameters:e.toolCall.args,type:"tool_call"},component_key:`${e.toolCall.id}-params`,interactive:!1}),e.toolCall.response&&(0,o.jsx)("div",{style:{marginTop:8},children:(0,o.jsx)(w,{content:e.toolCall.response})})]}):e.content?(0,o.jsx)(w,{content:e.content}):(0,o.jsx)("span",{style:{color:"#8c8c8c"},children:e.label});return(0,o.jsxs)("div",{"data-testid":"trace-card",style:{height:"100%",display:"flex",flexDirection:"column",border:`1px solid ${t||i?"#6366f1":r?"#91caff":"#e5e7eb"}`,borderRadius:12,background:t?"#eef2ff":"#fff",boxShadow:r?"0 0 0 2px rgba(24,144,255,0.18)":i?"0 0 0 2px rgba(99,102,241,0.2)":"none",animation:r?ne:void 0,overflow:"hidden",fontSize:13},children:[(0,o.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:"1px solid #f0f0f0",background:"rgba(0,0,0,0.02)"},children:[(0,o.jsx)(se,{kind:e.kind}),(0,o.jsx)("span",{style:{fontWeight:t?700:600,flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:f}),d&&(0,o.jsxs)(O,{color:"purple",style:{marginInlineEnd:0,fontSize:10},children:["\u5E76\u53D1 \xD7",e.parallelCount]}),re[e.status],m&&(0,o.jsx)(h,{type:"text",size:"small",onClick:()=>a?.(e.messageId),children:"\u5BF9\u8BDD"})]}),(0,o.jsx)("div",{style:{flex:1,minHeight:0,overflow:"auto",padding:12},children:y()})]})},le=({data:e,selected:i})=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(N,{type:"target",position:b.Top}),(0,o.jsx)(ae,{data:e,selected:i}),(0,o.jsx)(N,{type:"source",position:b.Bottom})]}),$={trace:le};var J=p(x());var u=p(g()),de={running:"#1890ff",success:"#52c41a",error:"#ff4d4f"},K=({graph:e,activeNodeId:i,onSelectNode:a})=>{let t=J.default.useMemo(()=>new Map(e.nodes.map(r=>[r.id,r])),[e.nodes]);return(0,u.jsx)("div",{"data-testid":"trace-overview-rail",style:{display:"flex",flexDirection:"column",gap:10,width:160,padding:8,overflowY:"auto",borderRight:"1px solid #f0f0f0"},children:e.phases.map(r=>(0,u.jsxs)("div",{"data-testid":"trace-rail-phase",children:[(0,u.jsx)("div",{style:{fontSize:12,color:"#8c8c8c",marginBottom:4},children:r.title}),(0,u.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:4},children:r.nodeIds.map(d=>{let m=t.get(d);if(!m)return null;let f=d===i;return(0,u.jsx)(M,{title:m.data.label,children:(0,u.jsx)("button",{type:"button","data-testid":"trace-rail-tick",onClick:()=>a?.(d),style:{width:f?12:8,height:f?12:8,borderRadius:"50%",border:"none",padding:0,cursor:"pointer",background:de[m.data.status],outline:f?"2px solid #6366f1":"none"}})},d)})})]},r.id))})};var l=p(g()),Y=3,Z=()=>{},ce=`
2
+ @keyframes tracePulse {
3
+ 0%, 100% { box-shadow: 0 0 0 2px rgba(24,144,255,0.18); }
4
+ 50% { box-shadow: 0 0 0 6px rgba(24,144,255,0.05); }
5
+ }
6
+ `;function pe(e){let i=e.nodes.map(t=>({id:t.id,...k[t.data.kind]})),a=e.edges.map(t=>({from:t.from,to:t.to}));return L(i,a,{nodesep:48,ranksep:80,rankdir:"TB"})}function fe({focusNodeId:e,follow:i}){let a=H();return(0,s.useEffect)(()=>{if(!i||!e)return;let t=a.getNode(e);if(!t)return;let r=t.style?.width??0,d=t.style?.height??0;a.setCenter(t.position.x+r/2,t.position.y+d/2,{zoom:1,duration:300})},[e,i,a]),null}var Ae=({messages:e,isLoading:i,onJumpToMessage:a})=>{let[t,r]=(0,s.useState)(),[d,m]=(0,s.useState)(!1),[f,y]=(0,s.useState)(!0),I=(0,s.useDeferredValue)(e),v=(0,s.useMemo)(()=>W(I,{isLoading:i}),[I,i]),c=(0,s.useMemo)(()=>d?v:V(v,Y),[v,d]),j=(0,s.useMemo)(()=>`${c.nodes.map(n=>n.id).join(",")}|${c.edges.map(n=>n.id).join(",")}`,[c]),A=(0,s.useMemo)(()=>pe(c),[j]),q=(0,s.useMemo)(()=>c.nodes.map(n=>{let T=k[n.data.kind];return{id:n.id,type:"trace",position:A.get(n.id)??{x:0,y:0},data:n.data,draggable:!1,style:{width:T.width,height:T.height}}}),[c,A]),Q=(0,s.useMemo)(()=>c.edges.map(n=>({id:n.id,source:n.from,target:n.to,animated:n.kind==="invoke",style:{stroke:n.kind==="invoke"?"#6366f1":n.kind==="result"?"#a5b4fc":"#d9d9d9"}})),[c]),X=c.nodes[c.nodes.length-1]?.id,ee=t??X,oe=v.phases.length>Y,te=(0,s.useMemo)(()=>({onJumpToMessage:a}),[a]);return(0,l.jsxs)(S.Provider,{value:te,children:[(0,l.jsx)("style",{children:ce}),(0,l.jsxs)("div",{style:{display:"flex",height:"100%",minHeight:0,width:"100%"},children:[(0,l.jsx)(K,{graph:c,activeNodeId:t,onSelectNode:r}),(0,l.jsxs)("div",{style:{flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},children:[(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",alignItems:"center",gap:4,padding:"4px 8px"},children:[!f&&(0,l.jsx)(h,{size:"small",type:"text",onClick:()=>{r(void 0),y(!0)},children:"\u56DE\u5230\u5F53\u524D"}),oe&&(0,l.jsx)(h,{size:"small",type:"text",onClick:()=>m(n=>!n),children:d?"\u6536\u8D77\u66F4\u65E9":"\u5C55\u5F00\u5168\u90E8"})]}),(0,l.jsx)("div",{style:{flex:1,minHeight:0},children:(0,l.jsx)(U,{nodes:q,edges:Q,nodeTypes:$,onNodesChange:Z,onEdgesChange:Z,nodesDraggable:!1,nodesConnectable:!1,fitView:!0,miniMap:{pannable:!0,zoomable:!0},onMoveStart:()=>y(!1),onNodeClick:(n,T)=>{r(T.id),y(!0)},children:(0,l.jsx)(fe,{focusNodeId:ee,follow:f})})})]})]})]})};export{Ae as MessageGraph};
@@ -1 +1 @@
1
- import{s as C}from"./embed-page-chunk-OOZDPBUK.js";import{Va as v}from"./embed-page-chunk-OWGBADV6.js";import{a as w}from"./embed-page-chunk-4X5XHAMX.js";import{a as x}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-ESLOGPBN.js";import{ga as b}from"./embed-page-chunk-KG5A66WX.js";import{a as D}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as d}from"./embed-page-chunk-6Y3UYJ6Z.js";var c=d(D());var E=d(w());var f=d(x());function p(s){if(!s||s.length===0)return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical"},xAxis:{type:"category",data:[]},yAxis:{type:"value"},series:[{type:"line",name:"Series 1",data:[]}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}};let i=s[0],t=Object.keys(i);if(t.length===0)return p([]);let r=t.filter(e=>{let n=i[e];return typeof n=="number"||!isNaN(Number(n))});if(r.length>0){let e=r[0],n=t.find(a=>!r.includes(a))||t[0],o=s.map((a,l)=>a[n]!==void 0?String(a[n]):`Item ${l+1}`),u=s.map(a=>{let l=a[e];return typeof l=="number"?l:Number(l)||0});return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical",data:[e]},xAxis:{type:"category",data:o},yAxis:{type:"value"},series:[{type:"line",name:e,data:u}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}}}return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical"},xAxis:{type:"category",data:s.map((e,n)=>`Item ${n+1}`)},yAxis:{type:"value"},series:[{type:"bar",name:"Count",data:s.map(()=>1)}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}}}function S(s){if(!s||typeof s!="object"||!s.series||!Array.isArray(s.series)||s.series.length===0)return null;let i=s.series.map((e,n)=>{if(!e||typeof e!="object"||!e.type||!e.data||!Array.isArray(e.data)||e.data.length===0)return null;let o={...e,name:e.name||`Series ${n+1}`};if(e.type==="pie"){let u=e.data.map((a,l)=>typeof a=="object"&&a!==null&&"value"in a?{value:a.value,name:a.name||`Item ${l+1}`}:typeof a=="number"?{value:a,name:`Item ${l+1}`}:null).filter(a=>a!==null);return u.length===0?null:{...o,data:u}}return o}).filter(e=>e!==null);if(i.length===0)return null;let t={...s,series:i},r=i[0].type;if(r!=="pie"){if(!t.xAxis)t.xAxis={type:"category",data:[]};else if(typeof t.xAxis=="object"&&!Array.isArray(t.xAxis)){let e=t.xAxis;if(e.type||(e.type="category"),e.type==="category"&&!e.data){let n=i[0].data;Array.isArray(n)&&n.length>0?Array.isArray(n[0])?e.data=n.map(o=>o[0]):e.data=n.map((o,u)=>`Item ${u+1}`):e.data=[]}t.xAxis=e}t.yAxis?typeof t.yAxis=="object"&&!Array.isArray(t.yAxis)&&(t.yAxis.type||(t.yAxis.type="value")):t.yAxis={type:"value"}}if(!t.title)t.title={text:"Chart",left:"left"};else if(typeof t.title=="object"){let e=t.title;e.left||(e.left="left"),e.text||(e.text="Chart"),t.title=e}if(t.tooltip||(t.tooltip={trigger:r==="pie"?"item":"axis"}),!t.legend)i.length>1&&(t.legend={right:0,orient:"vertical"});else if(typeof t.legend=="object"){let e=t.legend;t.legend=e}return r!=="pie"&&!t.grid&&(t.grid={left:"3%",right:"4%",bottom:"3%",containLabel:!0}),t}function j(s){let i=null;try{let n=typeof s=="string"?s:s.join("");i=(0,E.parse)(n)}catch(n){return{data:null,error:`Failed to parse JSON: ${n instanceof Error?n.message:String(n)}`}}if(!i||typeof i!="object")return{data:null,error:"Parsed data is not an object"};let t=i.series&&Array.isArray(i.series)&&i.series.length>0,r={table:Array.isArray(i.table)?i.table:void 0},e=null;if(i.echarts?e=i.echarts:t&&(e=i),e){let n=S(e);if(n)r.echarts=n;else if(r.table&&r.table.length>0)r.echarts=p(r.table);else return{data:null,error:"ECharts configuration is invalid or incomplete. Required: series array with at least one series containing type and data."}}else r.table&&r.table.length>0?r.echarts=p(r.table):r.echarts=p([]);return{data:r,error:null}}var T=s=>{let{children:i}=s,t=(0,c.useRef)(null),r=(0,c.useRef)(null),e=(0,c.useRef)(null),[n,o]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!t.current)return;r.current||(r.current=C(t.current));let a=null;if((typeof i=="string"||Array.isArray(i))&&(a=i),!a){r.current&&r.current.clear(),o(null);return}let{data:l,error:g}=j(a);if(g||!l){console.warn("ReactChart failed to parse chart data:",g||"Unknown parse error"),r.current&&r.current.clear(),o(null);return}if(l.table&&Array.isArray(l.table)&&o(l.table),l.echarts)try{r.current.setOption(l.echarts,!0)}catch(h){let m=h instanceof Error?h.message:"Failed to render chart";console.error("Failed to set ECharts option:",h),r.current&&r.current.clear(),o(null)}let y=()=>{r.current&&r.current.resize()};return e.current&&(e.current.disconnect(),e.current=null),t.current&&typeof ResizeObserver<"u"&&(e.current=new ResizeObserver(h=>{requestAnimationFrame(()=>{y()})}),e.current.observe(t.current)),window.addEventListener("resize",y),()=>{e.current&&(e.current.disconnect(),e.current=null),window.removeEventListener("resize",y)}},[i]),(0,c.useEffect)(()=>()=>{e.current&&(e.current.disconnect(),e.current=null),r.current&&(r.current.dispose(),r.current=null)},[]);let u=a=>{if(!a||a.length===0)return[];if(Array.isArray(a[0])){let l=a[0];return a.slice(1).map((y,h)=>{let m={};return y.forEach((R,A)=>{m[l[A]||`col_${A}`]=R}),m})}return a};return(0,f.jsxs)(b,{children:[(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"400px",minHeight:"300px"}}),n&&n.length>0&&(0,f.jsx)("div",{style:{marginTop:16},children:(0,f.jsx)(v,{component_key:"chart_table_data",data:{dataSource:u(n),message:"Data Details"},interactive:!0,default_open_in_side_app:!0})})]})};export{T as ReactChart};
1
+ import{s as C}from"./embed-page-chunk-OOZDPBUK.js";import{Ua as v}from"./embed-page-chunk-42S7N5Y5.js";import{a as w}from"./embed-page-chunk-74BPRLSV.js";import{a as x}from"./embed-page-chunk-MB65DZAX.js";import"./embed-page-chunk-VW3NF5NT.js";import"./embed-page-chunk-5JDQ456X.js";import"./embed-page-chunk-Z7USDLHI.js";import{ga as b}from"./embed-page-chunk-O4QK5LWZ.js";import{a as D}from"./embed-page-chunk-4BKXE5ON.js";import"./embed-page-chunk-IX4WLWCY.js";import"./embed-page-chunk-EUOOO2LS.js";import{e as d}from"./embed-page-chunk-6Y3UYJ6Z.js";var c=d(D());var E=d(w());var f=d(x());function p(s){if(!s||s.length===0)return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical"},xAxis:{type:"category",data:[]},yAxis:{type:"value"},series:[{type:"line",name:"Series 1",data:[]}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}};let i=s[0],t=Object.keys(i);if(t.length===0)return p([]);let r=t.filter(e=>{let n=i[e];return typeof n=="number"||!isNaN(Number(n))});if(r.length>0){let e=r[0],n=t.find(a=>!r.includes(a))||t[0],o=s.map((a,l)=>a[n]!==void 0?String(a[n]):`Item ${l+1}`),u=s.map(a=>{let l=a[e];return typeof l=="number"?l:Number(l)||0});return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical",data:[e]},xAxis:{type:"category",data:o},yAxis:{type:"value"},series:[{type:"line",name:e,data:u}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}}}return{title:{text:"Chart",left:"left"},tooltip:{trigger:"axis"},legend:{right:0,orient:"vertical"},xAxis:{type:"category",data:s.map((e,n)=>`Item ${n+1}`)},yAxis:{type:"value"},series:[{type:"bar",name:"Count",data:s.map(()=>1)}],grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0}}}function S(s){if(!s||typeof s!="object"||!s.series||!Array.isArray(s.series)||s.series.length===0)return null;let i=s.series.map((e,n)=>{if(!e||typeof e!="object"||!e.type||!e.data||!Array.isArray(e.data)||e.data.length===0)return null;let o={...e,name:e.name||`Series ${n+1}`};if(e.type==="pie"){let u=e.data.map((a,l)=>typeof a=="object"&&a!==null&&"value"in a?{value:a.value,name:a.name||`Item ${l+1}`}:typeof a=="number"?{value:a,name:`Item ${l+1}`}:null).filter(a=>a!==null);return u.length===0?null:{...o,data:u}}return o}).filter(e=>e!==null);if(i.length===0)return null;let t={...s,series:i},r=i[0].type;if(r!=="pie"){if(!t.xAxis)t.xAxis={type:"category",data:[]};else if(typeof t.xAxis=="object"&&!Array.isArray(t.xAxis)){let e=t.xAxis;if(e.type||(e.type="category"),e.type==="category"&&!e.data){let n=i[0].data;Array.isArray(n)&&n.length>0?Array.isArray(n[0])?e.data=n.map(o=>o[0]):e.data=n.map((o,u)=>`Item ${u+1}`):e.data=[]}t.xAxis=e}t.yAxis?typeof t.yAxis=="object"&&!Array.isArray(t.yAxis)&&(t.yAxis.type||(t.yAxis.type="value")):t.yAxis={type:"value"}}if(!t.title)t.title={text:"Chart",left:"left"};else if(typeof t.title=="object"){let e=t.title;e.left||(e.left="left"),e.text||(e.text="Chart"),t.title=e}if(t.tooltip||(t.tooltip={trigger:r==="pie"?"item":"axis"}),!t.legend)i.length>1&&(t.legend={right:0,orient:"vertical"});else if(typeof t.legend=="object"){let e=t.legend;t.legend=e}return r!=="pie"&&!t.grid&&(t.grid={left:"3%",right:"4%",bottom:"3%",containLabel:!0}),t}function j(s){let i=null;try{let n=typeof s=="string"?s:s.join("");i=(0,E.parse)(n)}catch(n){return{data:null,error:`Failed to parse JSON: ${n instanceof Error?n.message:String(n)}`}}if(!i||typeof i!="object")return{data:null,error:"Parsed data is not an object"};let t=i.series&&Array.isArray(i.series)&&i.series.length>0,r={table:Array.isArray(i.table)?i.table:void 0},e=null;if(i.echarts?e=i.echarts:t&&(e=i),e){let n=S(e);if(n)r.echarts=n;else if(r.table&&r.table.length>0)r.echarts=p(r.table);else return{data:null,error:"ECharts configuration is invalid or incomplete. Required: series array with at least one series containing type and data."}}else r.table&&r.table.length>0?r.echarts=p(r.table):r.echarts=p([]);return{data:r,error:null}}var T=s=>{let{children:i}=s,t=(0,c.useRef)(null),r=(0,c.useRef)(null),e=(0,c.useRef)(null),[n,o]=(0,c.useState)(null);(0,c.useEffect)(()=>{if(!t.current)return;r.current||(r.current=C(t.current));let a=null;if((typeof i=="string"||Array.isArray(i))&&(a=i),!a){r.current&&r.current.clear(),o(null);return}let{data:l,error:g}=j(a);if(g||!l){console.warn("ReactChart failed to parse chart data:",g||"Unknown parse error"),r.current&&r.current.clear(),o(null);return}if(l.table&&Array.isArray(l.table)&&o(l.table),l.echarts)try{r.current.setOption(l.echarts,!0)}catch(h){let m=h instanceof Error?h.message:"Failed to render chart";console.error("Failed to set ECharts option:",h),r.current&&r.current.clear(),o(null)}let y=()=>{r.current&&r.current.resize()};return e.current&&(e.current.disconnect(),e.current=null),t.current&&typeof ResizeObserver<"u"&&(e.current=new ResizeObserver(h=>{requestAnimationFrame(()=>{y()})}),e.current.observe(t.current)),window.addEventListener("resize",y),()=>{e.current&&(e.current.disconnect(),e.current=null),window.removeEventListener("resize",y)}},[i]),(0,c.useEffect)(()=>()=>{e.current&&(e.current.disconnect(),e.current=null),r.current&&(r.current.dispose(),r.current=null)},[]);let u=a=>{if(!a||a.length===0)return[];if(Array.isArray(a[0])){let l=a[0];return a.slice(1).map((y,h)=>{let m={};return y.forEach((R,A)=>{m[l[A]||`col_${A}`]=R}),m})}return a};return(0,f.jsxs)(b,{children:[(0,f.jsx)("div",{ref:t,style:{width:"100%",height:"400px",minHeight:"300px"}}),n&&n.length>0&&(0,f.jsx)("div",{style:{marginTop:16},children:(0,f.jsx)(v,{component_key:"chart_table_data",data:{dataSource:u(n),message:"Data Details"},interactive:!0,default_open_in_side_app:!0})})]})};export{T as ReactChart};