@rubytech/create-maxy-code 0.1.74 → 0.1.75

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 (94) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/admin/mcp/dist/index.js +111 -7
  3. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  4. package/payload/platform/plugins/contacts/mcp/dist/index.js +36 -5
  5. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  6. package/payload/platform/plugins/email/mcp/dist/index.js +34 -3
  7. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -1
  8. package/payload/platform/plugins/memory/mcp/dist/index.js +78 -3
  9. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  10. package/payload/platform/plugins/outlook/mcp/dist/index.js +37 -5
  11. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  12. package/payload/platform/plugins/replicate/mcp/dist/index.js +27 -6
  13. package/payload/platform/plugins/replicate/mcp/dist/index.js.map +1 -1
  14. package/payload/platform/plugins/scheduling/mcp/dist/index.js +32 -3
  15. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  16. package/payload/platform/plugins/tasks/mcp/dist/index.js +44 -3
  17. package/payload/platform/plugins/tasks/mcp/dist/index.js.map +1 -1
  18. package/payload/platform/plugins/waitlist/mcp/dist/index.js +30 -3
  19. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +1 -1
  20. package/payload/platform/plugins/workflows/mcp/dist/index.js +32 -3
  21. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -1
  22. package/payload/platform/templates/agents/admin/IDENTITY.md +2 -2
  23. package/payload/platform/templates/agents/admin/SOUL.md +0 -38
  24. package/payload/server/public/assets/{admin-DcqVybWZ.js → admin-Bn3SKHdv.js} +1 -1
  25. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-C6vU0NST.js → architectureDiagram-Q4EWVU46-VMeuB5OP.js} +1 -1
  26. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-CVaR8-w2.js → blockDiagram-DXYQGD6D-B7mq0Me0.js} +1 -1
  27. package/payload/server/public/assets/{brand-1AQwHifp.css → brand-CZQNuuLo.css} +1 -1
  28. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-DnFHlz0P.js → c4Diagram-AHTNJAMY-Btu6ejD1.js} +1 -1
  29. package/payload/server/public/assets/channel-C_bSLH4h.js +1 -0
  30. package/payload/server/public/assets/{chunk-336JU56O-B6a2-iht.js → chunk-336JU56O-DAL_d_Xa.js} +2 -2
  31. package/payload/server/public/assets/{chunk-426QAEUC-DxIW6EIp.js → chunk-426QAEUC-DPD9ot_N.js} +1 -1
  32. package/payload/server/public/assets/{chunk-4TB4RGXK-Bd_K_Vm8.js → chunk-4TB4RGXK-BexM9T-f.js} +1 -1
  33. package/payload/server/public/assets/{chunk-5FUZZQ4R-BrcNLOWO.js → chunk-5FUZZQ4R-EwDdji3T.js} +1 -1
  34. package/payload/server/public/assets/{chunk-5PVQY5BW-VlQyk4ta.js → chunk-5PVQY5BW-BP9uoVws.js} +1 -1
  35. package/payload/server/public/assets/{chunk-EDXVE4YY-BR-zR5uE.js → chunk-EDXVE4YY-DSFmUMEW.js} +1 -1
  36. package/payload/server/public/assets/{chunk-ENJZ2VHE-SZeptTG4.js → chunk-ENJZ2VHE-IVAy2Qk9.js} +1 -1
  37. package/payload/server/public/assets/{chunk-ICPOFSXX-CtefGo4C.js → chunk-ICPOFSXX-DkUupPox.js} +1 -1
  38. package/payload/server/public/assets/{chunk-OYMX7WX6-BozNOEbo.js → chunk-OYMX7WX6-BPnzam8G.js} +1 -1
  39. package/payload/server/public/assets/{chunk-U2HBQHQK-D96MbvO_.js → chunk-U2HBQHQK-xYNchOVT.js} +1 -1
  40. package/payload/server/public/assets/{chunk-X2U36JSP-gwEYUG8y.js → chunk-X2U36JSP-C1V_V8v8.js} +1 -1
  41. package/payload/server/public/assets/{chunk-YZCP3GAM-DDIFkTtt.js → chunk-YZCP3GAM-CUibW87w.js} +1 -1
  42. package/payload/server/public/assets/{chunk-ZZ45TVLE-C75vepuo.js → chunk-ZZ45TVLE-HkKx4xBt.js} +1 -1
  43. package/payload/server/public/assets/classDiagram-6PBFFD2Q-B6oW43xg.js +1 -0
  44. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D0237d4h.js +1 -0
  45. package/payload/server/public/assets/clone-AMRCmnen.js +1 -0
  46. package/payload/server/public/assets/{dagre-DwC2Bsrq.js → dagre-DIaJ9oMM.js} +1 -1
  47. package/payload/server/public/assets/{dagre-KV5264BT-DuukLv5C.js → dagre-KV5264BT-Oyox5ACd.js} +1 -1
  48. package/payload/server/public/assets/data-Mm3pTL1b.js +1 -0
  49. package/payload/server/public/assets/{device-url-actions-DDsULUXs.js → device-url-actions-BjDrEVoY.js} +1 -1
  50. package/payload/server/public/assets/{diagram-5BDNPKRD-DQWQd3WX.js → diagram-5BDNPKRD-DoGhkzBd.js} +1 -1
  51. package/payload/server/public/assets/{diagram-G4DWMVQ6-DbS_Ih5q.js → diagram-G4DWMVQ6-Dc3Ix-Dh.js} +1 -1
  52. package/payload/server/public/assets/{diagram-MMDJMWI5-BFDfdYgV.js → diagram-MMDJMWI5-CFM9_Ggj.js} +1 -1
  53. package/payload/server/public/assets/{diagram-TYMM5635-Dp48BsHY.js → diagram-TYMM5635-nMWgzxC3.js} +1 -1
  54. package/payload/server/public/assets/{erDiagram-SMLLAGMA-CKA6q8Cy.js → erDiagram-SMLLAGMA-DcQWiGgF.js} +1 -1
  55. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BVva2cwM.js → flowDiagram-DWJPFMVM-CcX5waal.js} +1 -1
  56. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-BuzV7Yj-.js → ganttDiagram-T4ZO3ILL-BTQWoD8W.js} +1 -1
  57. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-B188dI5e.js → gitGraphDiagram-UUTBAWPF-BHZcRznS.js} +1 -1
  58. package/payload/server/public/assets/graph-Cd4jsDi3.js +1 -0
  59. package/payload/server/public/assets/{graph-labels-Cp9MdDRy.js → graph-labels-CqsRzbp0.js} +1 -1
  60. package/payload/server/public/assets/{graphlib-D-7uYmP9.js → graphlib-BpUb9z9y.js} +1 -1
  61. package/payload/server/public/assets/{infoDiagram-42DDH7IO-CLvYxjeZ.js → infoDiagram-42DDH7IO-CBoiO8yF.js} +1 -1
  62. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-B9F97qbc.js → ishikawaDiagram-UXIWVN3A-mTDI_0As.js} +1 -1
  63. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CWg6xF0d.js → journeyDiagram-VCZTEJTY-CcuU_0rp.js} +1 -1
  64. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-CUM2Zro1.js → kanban-definition-6JOO6SKY-BWA7Do5Y.js} +1 -1
  65. package/payload/server/public/assets/{line-B_dtxHKd.js → line-BlGptbDR.js} +1 -1
  66. package/payload/server/public/assets/{mermaid-parser.core-q8nXkWvq.js → mermaid-parser.core-hslUiqJ-.js} +1 -1
  67. package/payload/server/public/assets/{mermaid.core-BIZvK8d3.js → mermaid.core-DWU_5Faf.js} +3 -3
  68. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-DOl7v8YY.js → mindmap-definition-QFDTVHPH-B3_sQr-2.js} +1 -1
  69. package/payload/server/public/assets/{page-HcHeXd21.js → page-eQPbgLXP.js} +1 -1
  70. package/payload/server/public/assets/{page-Ybq9fvmk.js → page-lPEIoiHs.js} +1 -1
  71. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CVFDHS9S.js → pieDiagram-DEJITSTG-02u2dI6Z.js} +1 -1
  72. package/payload/server/public/assets/{public-B_FEURBo.js → public-j7U67c6E.js} +3 -3
  73. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DIx-sbIM.js → quadrantDiagram-34T5L4WZ-BfgiMQiy.js} +1 -1
  74. package/payload/server/public/assets/{requirementDiagram-MS252O5E-C9yrlgJP.js → requirementDiagram-MS252O5E-JKZoibIp.js} +1 -1
  75. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-Dn2R2x6-.js → sankeyDiagram-XADWPNL6-N1iaY19u.js} +1 -1
  76. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-C9QMqZZw.js → sequenceDiagram-FGHM5R23-DjU3oQ0_.js} +1 -1
  77. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-DPzHXWge.js → stateDiagram-FHFEXIEX-BuFcldiV.js} +1 -1
  78. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-rZLYem3J.js +1 -0
  79. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-gRq4Cvlk.js → timeline-definition-GMOUNBTQ-3vztYjFm.js} +1 -1
  80. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-CJGA-zAB.js → vennDiagram-DHZGUBPP-Zdv9WVqJ.js} +1 -1
  81. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-BFS9eK0s.js → wardleyDiagram-NUSXRM2D-CkTAZI7f.js} +1 -1
  82. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-D5Kqs-jt.js → xychartDiagram-5P7HB3ND-CgMCxpms.js} +1 -1
  83. package/payload/server/public/data.html +5 -5
  84. package/payload/server/public/graph.html +5 -5
  85. package/payload/server/public/index.html +7 -7
  86. package/payload/server/public/public.html +4 -4
  87. package/payload/server/public/assets/channel-Ccfjb07z.js +0 -1
  88. package/payload/server/public/assets/classDiagram-6PBFFD2Q-Ci-ABevb.js +0 -1
  89. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BDQ3yWGx.js +0 -1
  90. package/payload/server/public/assets/clone-CuYGwTRT.js +0 -1
  91. package/payload/server/public/assets/data-DbNK3_l-.js +0 -1
  92. package/payload/server/public/assets/graph-yTqw4J01.js +0 -1
  93. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CcDXqSsh.js +0 -1
  94. /package/payload/server/public/assets/{brand-lfvUn_r6.js → brand-BnMilSyt.js} +0 -0
@@ -22,9 +22,22 @@ const server = new McpServer({
22
22
  name: "maxy-workflows",
23
23
  version: "0.3.0",
24
24
  });
25
- const accountId = process.env.ACCOUNT_ID;
26
- if (!accountId) {
27
- throw new Error("ACCOUNT_ID environment variable is required");
25
+ // Plugin-system boot tolerance — see Task 202.
26
+ // Module-init must never throw; plugin-system spawn enumerates tools/list
27
+ // before ACCOUNT_ID is set. Per-call refusal preserves account isolation.
28
+ const accountId = process.env.ACCOUNT_ID ?? null;
29
+ process.stderr.write(`[workflows] boot accountId=${accountId ?? "null"}\n`);
30
+ function refuseNoAccount(toolName) {
31
+ process.stderr.write(`[workflows] tool=${toolName} refuse reason=no-account-context\n`);
32
+ return {
33
+ content: [
34
+ {
35
+ type: "text",
36
+ text: `${toolName} cannot execute: this MCP instance was launched without ACCOUNT_ID (plugin-system metadata-only mode). Per-account workflow writes require ACCOUNT_ID at spawn.`,
37
+ },
38
+ ],
39
+ isError: true,
40
+ };
28
41
  }
29
42
  const agentSlug = process.env.AGENT_SLUG || undefined;
30
43
  const sessionId = process.env.SESSION_ID || undefined;
@@ -55,6 +68,8 @@ eagerTool(server, "workflow-create", "Create a persistent workflow as an ordered
55
68
  .describe("What this workflow does — used for discovery via semantic search"),
56
69
  steps: z.array(stepSchema).min(1).max(50).describe("Ordered list of tool-call steps."),
57
70
  }, async (params) => {
71
+ if (!accountId)
72
+ return refuseNoAccount("workflow-create");
58
73
  try {
59
74
  const result = await workflowCreate({
60
75
  ...params,
@@ -96,6 +111,8 @@ eagerTool(server, "workflow-list", "List workflows for this account, optionally
96
111
  .describe("Filter by workflow status"),
97
112
  limit: z.number().int().min(1).max(100).optional().describe("Max results (default 50)"),
98
113
  }, async (params) => {
114
+ if (!accountId)
115
+ return refuseNoAccount("workflow-list");
99
116
  try {
100
117
  const workflows = await workflowList({ ...params, accountId });
101
118
  if (workflows.length === 0) {
@@ -131,6 +148,8 @@ eagerTool(server, "workflow-list", "List workflows for this account, optionally
131
148
  eagerTool(server, "workflow-get", "Fetch a single workflow by ID. Returns all fields including each step's tool reference and parameters.", {
132
149
  workflowId: workflowIdSchema,
133
150
  }, async ({ workflowId: wfId }) => {
151
+ if (!accountId)
152
+ return refuseNoAccount("workflow-get");
134
153
  try {
135
154
  const workflow = await workflowGet(wfId, accountId);
136
155
  if (!workflow) {
@@ -194,6 +213,8 @@ eagerTool(server, "workflow-update", "Update a workflow's name, description, ste
194
213
  .optional()
195
214
  .describe("New status (use 'paused' to deactivate without deleting)"),
196
215
  }, async (params) => {
216
+ if (!accountId)
217
+ return refuseNoAccount("workflow-update");
197
218
  const { workflowId: wfId, ...updates } = params;
198
219
  const hasUpdate = Object.values(updates).some((v) => v !== undefined);
199
220
  if (!hasUpdate) {
@@ -233,6 +254,8 @@ eagerTool(server, "workflow-update", "Update a workflow's name, description, ste
233
254
  eagerTool(server, "workflow-delete", "Soft-delete a workflow and cascade to its steps, runs, and step results. Nodes are marked :Trashed (restorable via memory-restore within the grace period) and permanently removed later by memory-empty-trash. Confirm with the user first.", {
234
255
  workflowId: workflowIdSchema,
235
256
  }, async ({ workflowId: wfId }) => {
257
+ if (!accountId)
258
+ return refuseNoAccount("workflow-delete");
236
259
  try {
237
260
  const result = await workflowDelete(wfId, accountId);
238
261
  const summary = result.alreadyTrashed
@@ -262,6 +285,8 @@ eagerTool(server, "workflow-delete", "Soft-delete a workflow and cascade to its
262
285
  eagerTool(server, "workflow-validate", "Validate a workflow's step capabilities. Checks that every referenced plugin directory and MCP server exist. Updates status to 'active' if all valid, 'draft' if any are missing.", {
263
286
  workflowId: workflowIdSchema,
264
287
  }, async ({ workflowId: wfId }) => {
288
+ if (!accountId)
289
+ return refuseNoAccount("workflow-validate");
265
290
  try {
266
291
  const result = await workflowValidate(wfId, accountId);
267
292
  if (result.valid) {
@@ -309,6 +334,8 @@ eagerTool(server, "workflow-execute", "Execute a workflow. Runs each step in dep
309
334
  .optional()
310
335
  .describe("What triggered this execution (default: conversational)"),
311
336
  }, async (params) => {
337
+ if (!accountId)
338
+ return refuseNoAccount("workflow-execute");
312
339
  try {
313
340
  const result = await workflowExecute({ ...params, accountId });
314
341
  const parts = [
@@ -345,6 +372,8 @@ eagerTool(server, "workflow-runs", "Query workflow execution history. Returns re
345
372
  .describe("Filter by run status"),
346
373
  limit: z.number().int().min(1).max(100).optional().describe("Max results (default 20)"),
347
374
  }, async (params) => {
375
+ if (!accountId)
376
+ return refuseNoAccount("workflow-runs");
348
377
  try {
349
378
  const runs = await workflowRuns({ ...params, accountId });
350
379
  if (runs.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## Your role
10
10
 
11
- You are the head of operations, chief of staff, and private secretary for the operator. Everything you do must have a productive outcome. You must always seek information that can be turned into knowledge, especially about the operator.
11
+ You are the head of operations, chief of staff, and private secretary for the operator. Everything you do must have a productive outcome. You must always seek information that can be turned into knowledge, especially about the operator. Always check what you know about your operator, greet them appropriately, according to the time of day, and ask for information that you need to perform your duties.
12
12
 
13
13
  ## Before you act
14
14
 
@@ -24,7 +24,7 @@ Information gathering is continuous; it interleaves with execution rather than g
24
24
 
25
25
  ## How you sound
26
26
 
27
- Always greet the operator appropriately, according to the time of day. You are an AI. Say so if asked. Never pretend to be a human. Speak British English. Plain hyphens, straight quotes, three periods, no emoji. Every link in a reply is a markdown link in the form `[label](url)`, never a raw URL. Tool names, MCP prefixes, task numbers, doctrine names, and error codes belong in your reasoning, not in user-facing replies. Translate them into plain English.
27
+ You are an AI. Say so if asked. Never pretend to be a human. Speak British English. Plain hyphens, straight quotes, three periods, no emoji. Every link in a reply is a markdown link in the form `[label](url)`, never a raw URL. Tool names, MCP prefixes, task numbers, doctrine names, and error codes belong in your reasoning, not in user-facing replies. Translate them into plain English.
28
28
 
29
29
  ## Two files to read at session start
30
30
 
@@ -1,39 +1 @@
1
1
  # Soul
2
-
3
- You are ${PRODUCT_NAME}, an AI operations manager. You free the operator from low-value desk work so their time goes to the customer chain.
4
-
5
- ## Phase 1 standing offer
6
-
7
- Five things you do end-to-end. Each is bounded by operator-profile fields on `Person` and `Organisation` (see `IDENTITY.md` § Information gathering for the field list per pillar). When the profile is complete enough to act on a pillar, offer the relevant one in plain language, then run it.
8
-
9
- - **Brochure production.** A listing URL plus an agent URL becomes a print-ready A4 brochure (HTML and PDF) without manual layout.
10
- - **Property socials.** A produced brochure folder becomes a set of share-ready JPGs (landscape OG, square Instagram, portrait story) with captions, ready to post.
11
- - **Preval production.** A full UK address becomes a 4-page A4 pre-valuation PDF (cover · valuation · area · demand and trend) the operator sends to a vendor before the appraisal visit. Subject-property floor area is read from the gov.uk EPC register.
12
- - **Local market report.** An area or postcode, the operator's agency DESIGN tokens, and market data become a branded 4-page A4 PDF the operator sends to a vendor or prospect.
13
- - **Loop CRM management.** Read and write across all 8 Loop resource groups (properties, people, viewings, feedback, team, marketing, customer preferences, supplier operations) on the operator's behalf.
14
-
15
- ## Loop value pillars
16
-
17
- When the operator's words touch a Loop-shaped signal (a portal enquiry, a viewing, a buyer or vendor, a property address, a postcode, a contractor, a maintenance job), name the pillar in plain language and offer the specific Loop tool that will run. Order pillars by impact — pillar 1 carries Loop's own 40% efficiency claim.
18
-
19
- 1. **Auto-respond to portal enquiries.** A Rightmove / Zoopla / OnTheMarket enquiry maps to `loop-auto-responder` — read the questions, draft the reply, refer or update as needed.
20
- 2. **Viewing lifecycle.** Booking, buyer feedback, seller feedback, viewing notes — `loop-viewing-create`, `loop-viewing-update`, `loop-feedback-submit`.
21
- 3. **Pipeline mining.** Unconverted enquiries, stale matches, buyers looking in a named area — `loop-people-search`, `loop-marketing-match-batch`.
22
- 4. **Listings prospecting.** Canvassing from recent sales, competing listings on a channel — `loop-property-sold`, `loop-property-listed`, `loop-property-search`, plus `loop-property-viewing` / `loop-property-callback` / `loop-property-information` to lodge intent on a found property.
23
- 5. **Maintenance closeout and customer preferences.** Open jobs, outstanding quotes, preference capture — `loop-supplier`, `loop-customer-preferences`.
24
-
25
- ### Information to collect
26
-
27
- Every Loop tool routes through one or more team keys. Before any other Loop call, confirm at least one team key is registered for the account via `loop-key-list`. If none, surface the registration prompt — every downstream tool will fail silently with `Team "X" does not have <group> permission` otherwise. Re-register with the full permissions array (`["properties","people","viewings","feedback","team","marketing","customer","supplier"]`) when a permission-scoped key blocks a pillar.
28
-
29
- ### Posture
30
-
31
- Offer the relevant pillar in plain language, then run it. A bare acknowledgement when the operator names a Loop-shaped signal is a wasted turn — surface the pillar offer and the specific tool that will run, then proceed. Do not narrate the Loop API or the team-key flow; the operator wants the outcome, not the integration.
32
-
33
- ### Loop features without API surface (do not promise)
34
-
35
- Loop markets several features its public V2 API does not expose: Tasks/Reminders, full Diary beyond `team/availability`, Market Data (distressed properties, instructed sellers), Inspections & Certificates, and Client Accounts. Surfacing these is blocked by the vendor — do not list them as Real Agent capabilities.
36
-
37
- ## Personality
38
-
39
- Precise. No filler, no narration of internal process. Direct without being curt. State what is true, caveat what is uncertain, never confident-wrong over honestly-checked.
@@ -1,4 +1,4 @@
1
- import{o as e,t}from"./chunk-DD-I1_y5.js";import{a as n,c as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,p as d,s as f,t as p,u as m}from"./brand-lfvUn_r6.js";import{a as h,c as g,d as _,f as v,g as y,h as b,l as x,s as S,u as C,v as w,y as T}from"./graph-labels-Cp9MdDRy.js";import{a as ee,i as te,r as ne,t as E}from"./page-Ybq9fvmk.js";import{i as D,n as O,r as k}from"./page-HcHeXd21.js";import{i as A,n as re,o as j,r as ie,s as ae}from"./device-url-actions-DDsULUXs.js";var oe=l(),M=e(a(),1);new Set(`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv,text/html,text/calendar,application/zip,application/x-zip-compressed,audio/ogg,audio/opus,audio/mp4,audio/mpeg,audio/webm,audio/wav,.opus,.ogg,.m4a,.mp3,.wav,.webm`.split(`,`).filter(e=>!e.startsWith(`.`)));function se(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}var ce=`admin-landing-redirected`,le=`/graph`;function ue(e){return e.appState===`chat`&&!e.alreadyRedirected}function de(){let[e,t]=(0,M.useState)(`loading`),[n,r]=(0,M.useState)(``),[i,a]=(0,M.useState)(``),[o,s]=(0,M.useState)(``),[c,l]=(0,M.useState)(!1),[u,d]=(0,M.useState)(!1),[f,p]=(0,M.useState)(!1),[m,h]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),[v,y]=(0,M.useState)(null),[b,x]=(0,M.useState)(null),[S,C]=(0,M.useState)(void 0),[w,T]=(0,M.useState)(null),[ee,te]=(0,M.useState)(void 0),[ne,E]=(0,M.useState)(null),[D,O]=(0,M.useState)(null),[k,A]=(0,M.useState)([]),[re,j]=(0,M.useState)(!1),[ie,ae]=(0,M.useState)(void 0),oe=(0,M.useRef)(void 0),[de,fe]=(0,M.useState)(!1);(0,M.useEffect)(()=>{typeof window>`u`||window.location.hostname.startsWith(`admin.`)&&fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&fe(!0)}).catch(()=>{})},[]);let pe=(0,M.useRef)(null),me=(0,M.useRef)(null);(0,M.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let n=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(n.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!n.ok)return!1;let r=await n.json();y(r.session_key),O(r.conversationId??null),C(r.businessName),T(r.role??null),te(r.userName===void 0?null:r.userName),E(r.avatar??null);let i=se(r.thinkingView);return oe.current=i,ae(i),t(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function n(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check returned ${i.status} after retries`),t(`set-pin`);return}let a=await i.json();if(!a.pin_configured){t(`set-pin`);return}if(!a.claude_authenticated){t(`connect-claude`);return}if(await e())return;t(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check failed:`,e),t(`set-pin`)}}n()},[]),(0,M.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,M.useEffect)(()=>{if(typeof window>`u`)return;let t=!1;try{t=sessionStorage.getItem(ce)===`1`}catch{}if(ue({appState:e,alreadyRedirected:t})){try{sessionStorage.setItem(ce,`1`)}catch{}console.info(`[admin-ui] landing-redirect target=${le}`),window.location.replace(le)}},[e]),(0,M.useEffect)(()=>{if(e!==`chat`)return;let n=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(!e.ok)return;let n=await e.json();(n.auth_status===`dead`||n.auth_status===`missing`)&&t(`connect-claude`)}catch{}},300*1e3);return()=>clearInterval(n)},[e]),(0,M.useEffect)(()=>{e===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&t(`enter-pin`)}).catch(()=>{})},[e]);async function he(e,n){d(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...n?{accountId:n}:{}})});if(!i.ok){s((await i.json().catch(()=>({}))).error||`Invalid PIN`);return}let a=await i.json();if(a.accounts&&!a.session_key){console.log(`[admin] account picker shown: userId=${a.userId} accountCount=${a.accounts.length}`),A(a.accounts),t(`account-picker`);return}y(a.session_key),O(a.conversationId??null),C(a.businessName),T(a.role??null),te(a.userName===void 0?null:a.userName),E(a.avatar??null);let o=se(a.thinkingView);if(oe.current=o,ae(o),n)try{sessionStorage.setItem(`maxy-account-id`,n)}catch{}try{sessionStorage.setItem(`maxy-admin-session-key`,a.session_key)}catch{}r(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1),j(!1)}}let ge=(0,M.useCallback)(async e=>{if(e.preventDefault(),u)return;s(``);let a=i.trim();if(!a){s(`Please enter your name.`);return}if(n.length<4){s(`PIN must be at least 4 characters.`);return}let o=n;d(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:o,name:a})});if(!e.ok){let n=await e.json().catch(()=>({}));if(e.status===409){console.log(`[admin] PIN already configured — re-checking health`);try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?t(`enter-pin`):r.pin_configured?t(`connect-claude`):s(n.error||`Failed to set PIN.`)}else t(`enter-pin`)}catch{t(`enter-pin`)}return}s(n.error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`);if((n.ok?await n.json():null)?.claude_authenticated){await he(o);return}r(``),t(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,u,i]),_e=(0,M.useCallback)(async e=>{e.preventDefault(),s(``),await he(n)},[n]),ve=(0,M.useCallback)(async()=>{_(!0);try{await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null),T(null),te(void 0),E(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}t(`connect-claude`)}finally{_(!1)}},[]),ye=(0,M.useCallback)(()=>{y(null),T(null),te(void 0),E(null);try{sessionStorage.removeItem(`maxy-admin-session-key`),sessionStorage.removeItem(ce)}catch{}r(``),s(``),t(`enter-pin`)},[]);return{appState:e,setAppState:t,pin:n,setPin:r,operatorName:i,setOperatorName:a,pinError:o,setPinError:s,showPin:c,setShowPin:l,pinLoading:u,authPolling:f,setAuthPolling:p,authLoading:m,setAuthLoading:h,disconnecting:g,cacheKey:v,setCacheKey:y,claudeInfo:b,setClaudeInfo:x,businessName:S,role:w,userName:ee,userAvatar:ne,conversationId:D,setConversationId:O,accounts:k,accountPickerLoading:re,expandAll:ie,setExpandAll:ae,expandAllDefaultRef:oe,remoteAuthEnabled:de,pinInputRef:pe,setPinFormRef:me,handleSetPin:ge,handleLogin:_e,handleAccountSelect:(0,M.useCallback)(async e=>{j(!0),s(``),await he(n,e)},[n]),handleDisconnect:ve,handleLogout:ye,handleChangePin:(0,M.useCallback)(async()=>{if(!n){s(`Enter your current PIN first.`);return}d(!0),s(``);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPin:n})});if(!e.ok){s((await e.json().catch(()=>({error:`Incorrect PIN.`}))).error||`Incorrect PIN.`);return}r(``),s(``),t(`set-pin`)}catch(e){console.error(`[admin-auth] change pin failed:`,e),s(e instanceof Error?e.message:String(e))}finally{d(!1)}},[n])}}var fe=d(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),pe=d(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),me=d(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),he=d(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),ge=d(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),_e=d(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),ve=d(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),ye=d(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),be=d(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),xe=d(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Se=d(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),Ce=d(`square-arrow-down-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`m16 8-8 8`,key:`166keh`}],[`path`,{d:`M16 16H8V8`,key:`1w2ppm`}]]),N=u();function we({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,M.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,N.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,N.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function Te(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,setPinFormRef:u,onSubmit:d,operatorName:f,setOperatorName:m}=e;return(0,N.jsx)(`div`,{className:`connect-page`,children:(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,p.productName]}),(0,N.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,p.productName,` who you are, then choose a PIN.`]}),(0,N.jsxs)(`form`,{ref:u,onSubmit:d,className:`connect-pin-form`,children:[(0,N.jsxs)(`div`,{className:`pin-input-row`,children:[(0,N.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:f,onChange:e=>m(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,N.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,N.jsxs)(`div`,{className:`pin-input-row`,children:[(0,N.jsx)(we,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i}),(0,N.jsx)(j,{variant:`send`,type:`submit`,disabled:!t||!f.trim(),loading:o,"aria-label":`Set PIN`,children:(0,N.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,N.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,N.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,N.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`})]}),c&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function Ee(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,onSubmit:u,onChangePin:d,remoteAuthEnabled:f,onSignOutRemote:m}=e;return(0,N.jsxs)(`div`,{className:`connect-page`,children:[f&&m&&(0,N.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:m,children:`Sign out`}),(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,N.jsxs)(`form`,{onSubmit:u,className:`connect-pin-form`,children:[(0,N.jsxs)(`div`,{className:`pin-input-row`,children:[(0,N.jsx)(we,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i,autoFocus:!0}),(0,N.jsx)(j,{variant:`send`,type:`submit`,disabled:!t,loading:o,children:(0,N.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,N.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,N.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,N.jsxs)(`div`,{className:`pin-options`,children:[(0,N.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`}),(0,N.jsx)(j,{type:`button`,variant:`ghost`,onClick:d,children:`Change PIN`})]})]}),c&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:c})]})]})}function De(e){let{accounts:t,loading:n,error:r,onSelect:i}=e;return(0,N.jsx)(`div`,{className:`connect-page`,children:(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,N.jsx)(`p`,{className:`connect-subtitle`,children:`Select an account`}),(0,N.jsx)(`div`,{className:`account-picker-list`,children:t.map(e=>(0,N.jsxs)(`button`,{className:`account-picker-card`,onClick:()=>i(e.accountId),disabled:n,type:`button`,children:[(0,N.jsx)(`span`,{className:`account-picker-name`,children:e.businessName||e.accountId}),(0,N.jsx)(`span`,{className:`account-picker-role`,children:e.role}),n&&(0,N.jsx)(y,{className:`account-picker-spinner`,size:16})]},e.accountId))}),r&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:r})]})})}function Oe(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:c}=e,[l,u]=(0,M.useState)(!1),[d,f]=(0,M.useState)(!1);async function m(){f(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?u(!0):e.error&&o(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),o(`Could not launch browser.`)}f(!1)}async function h(){i(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){n(!0),u(!0),i(!1);for(let e=0;e<120;e++)if(await new Promise(e=>setTimeout(e,2e3)),(await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json()).authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),c(`enter-pin`);return}o(`Timed out waiting for sign-in. Try again.`),n(!1)}else e.error&&o(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),o(`Could not start auth flow.`)}i(!1)}async function g(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),n(!1),o(``)}return t||l?(0,N.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,N.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,N.jsx)(`button`,{onClick:g,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,N.jsx)(`button`,{onClick:()=>u(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,N.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,N.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,N.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,N.jsx)(`div`,{style:{marginTop:`12px`},children:(0,N.jsx)(j,{variant:`primary`,onClick:h,disabled:r,children:r?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,N.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,N.jsx)(`iframe`,{src:`/vnc-viewer.html`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,N.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,N.jsx)(`div`,{className:`connect-page`,children:(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsxs)(`div`,{className:`connect-logos`,children:[(0,N.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,N.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,N.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,N.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,N.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsx)(`span`,{className:`connect-logo-label`,children:p.productName})]})]}),(0,N.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,p.productName]}),(0,N.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,N.jsx)(j,{variant:`primary`,onClick:h,disabled:r,children:r?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,N.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,N.jsx)(`button`,{onClick:m,disabled:d,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:d?`Launching…`:`Open browser first`}),a&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}var ke=`maxy-shell-artefact-px`;function Ae(){if(typeof window>`u`)return 320;let e=window.innerWidth,t=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),n=t?t.right:Math.round(e*.3);return Me(Math.round((e-n)*(2/3)))}function je(){if(typeof window>`u`)return 320;try{let e=window.localStorage.getItem(ke);if(!e)return Ae();let t=parseInt(e,10);if(Number.isFinite(t)&&t>=320)return t}catch{}return Ae()}function Me(e){if(typeof window>`u`)return e;let t=window.innerWidth,n=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),r=n?n.right:Math.round(t*.3),i=Math.max(320,t-r-480);return Math.min(Math.max(e,320),i)}function Ne({targetSelector:e=`.platform`}){let t=(0,M.useRef)(null),[n,r]=(0,M.useState)(()=>je()),i=(0,M.useRef)(n);(0,M.useEffect)(()=>{let t=document.querySelector(e);!t||!(t instanceof HTMLElement)||(t.style.setProperty(`--artefact-px`,`${n}px`),i.current=n)},[n,e]);let a=(0,M.useCallback)(()=>{r(e=>{let t=Me(e);return t===e?e:t})},[]);(0,M.useEffect)(()=>(a(),window.addEventListener(`resize`,a),()=>window.removeEventListener(`resize`,a)),[a]);let o=e=>{e.preventDefault();let n=t.current;if(!n)return;n.setPointerCapture(e.pointerId),n.classList.add(`dragging`);let a=!1,o=e=>{a=!0,r(Me(Math.round(window.innerWidth-e.clientX)))},s=()=>{if(n.releasePointerCapture(e.pointerId),n.classList.remove(`dragging`),window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),!a)return;let t=i.current;try{window.localStorage.setItem(ke,String(t))}catch{}console.info(`[admin-ui] artefact-resize px=${t}`)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s)},s=()=>{let e=Ae();r(e);try{window.localStorage.removeItem(ke)}catch{}console.info(`[admin-ui] artefact-resize px=${e}`)};return(0,N.jsx)(`div`,{ref:t,className:`art-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize artefact pane`,onPointerDown:o,onDoubleClick:s})}async function*Pe(e,t){let n=await fetch(e,{signal:t});if(n.status===202)throw Error(`transcript not yet on disk; reopen after first turn`);if(!n.ok)throw Error(`stream-failed status=${n.status}`);let r=n.body;if(!r)throw Error(`stream-failed no-body`);let i=r.getReader(),a=new TextDecoder(`utf-8`),o=``,s=0,c=new Promise(e=>{let n={value:void 0,done:!0};if(t.aborted){e(n);return}t.addEventListener(`abort`,()=>e(n),{once:!0})});try{for(;;){if(t.aborted)return;let{value:e,done:n}=await Promise.race([i.read(),c]);if(t.aborted)return;if(n)break;o+=a.decode(e,{stream:!0});let r=o.split(`
1
+ import{o as e,t}from"./chunk-DD-I1_y5.js";import{a as n,c as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,p as d,s as f,t as p,u as m}from"./brand-BnMilSyt.js";import{a as h,c as g,d as _,f as v,g as y,h as b,l as x,s as S,u as C,v as w,y as T}from"./graph-labels-CqsRzbp0.js";import{a as ee,i as te,r as ne,t as E}from"./page-lPEIoiHs.js";import{i as D,n as O,r as k}from"./page-eQPbgLXP.js";import{i as A,n as re,o as j,r as ie,s as ae}from"./device-url-actions-BjDrEVoY.js";var oe=l(),M=e(a(),1);new Set(`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv,text/html,text/calendar,application/zip,application/x-zip-compressed,audio/ogg,audio/opus,audio/mp4,audio/mpeg,audio/webm,audio/wav,.opus,.ogg,.m4a,.mp3,.wav,.webm`.split(`,`).filter(e=>!e.startsWith(`.`)));function se(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}var ce=`admin-landing-redirected`,le=`/graph`;function ue(e){return e.appState===`chat`&&!e.alreadyRedirected}function de(){let[e,t]=(0,M.useState)(`loading`),[n,r]=(0,M.useState)(``),[i,a]=(0,M.useState)(``),[o,s]=(0,M.useState)(``),[c,l]=(0,M.useState)(!1),[u,d]=(0,M.useState)(!1),[f,p]=(0,M.useState)(!1),[m,h]=(0,M.useState)(!1),[g,_]=(0,M.useState)(!1),[v,y]=(0,M.useState)(null),[b,x]=(0,M.useState)(null),[S,C]=(0,M.useState)(void 0),[w,T]=(0,M.useState)(null),[ee,te]=(0,M.useState)(void 0),[ne,E]=(0,M.useState)(null),[D,O]=(0,M.useState)(null),[k,A]=(0,M.useState)([]),[re,j]=(0,M.useState)(!1),[ie,ae]=(0,M.useState)(void 0),oe=(0,M.useRef)(void 0),[de,fe]=(0,M.useState)(!1);(0,M.useEffect)(()=>{typeof window>`u`||window.location.hostname.startsWith(`admin.`)&&fetch(`/api/remote-auth/status`).then(e=>e.ok?e.json():null).then(e=>{e?.configured&&fe(!0)}).catch(()=>{})},[]);let pe=(0,M.useRef)(null),me=(0,M.useRef)(null);(0,M.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let n=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(n.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!n.ok)return!1;let r=await n.json();y(r.session_key),O(r.conversationId??null),C(r.businessName),T(r.role??null),te(r.userName===void 0?null:r.userName),E(r.avatar??null);let i=se(r.thinkingView);return oe.current=i,ae(i),t(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function n(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check returned ${i.status} after retries`),t(`set-pin`);return}let a=await i.json();if(!a.pin_configured){t(`set-pin`);return}if(!a.claude_authenticated){t(`connect-claude`);return}if(await e())return;t(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check failed:`,e),t(`set-pin`)}}n()},[]),(0,M.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,M.useEffect)(()=>{if(typeof window>`u`)return;let t=!1;try{t=sessionStorage.getItem(ce)===`1`}catch{}if(ue({appState:e,alreadyRedirected:t})){try{sessionStorage.setItem(ce,`1`)}catch{}console.info(`[admin-ui] landing-redirect target=${le}`),window.location.replace(le)}},[e]),(0,M.useEffect)(()=>{if(e!==`chat`)return;let n=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(!e.ok)return;let n=await e.json();(n.auth_status===`dead`||n.auth_status===`missing`)&&t(`connect-claude`)}catch{}},300*1e3);return()=>clearInterval(n)},[e]),(0,M.useEffect)(()=>{e===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&t(`enter-pin`)}).catch(()=>{})},[e]);async function he(e,n){d(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...n?{accountId:n}:{}})});if(!i.ok){s((await i.json().catch(()=>({}))).error||`Invalid PIN`);return}let a=await i.json();if(a.accounts&&!a.session_key){console.log(`[admin] account picker shown: userId=${a.userId} accountCount=${a.accounts.length}`),A(a.accounts),t(`account-picker`);return}y(a.session_key),O(a.conversationId??null),C(a.businessName),T(a.role??null),te(a.userName===void 0?null:a.userName),E(a.avatar??null);let o=se(a.thinkingView);if(oe.current=o,ae(o),n)try{sessionStorage.setItem(`maxy-account-id`,n)}catch{}try{sessionStorage.setItem(`maxy-admin-session-key`,a.session_key)}catch{}r(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1),j(!1)}}let ge=(0,M.useCallback)(async e=>{if(e.preventDefault(),u)return;s(``);let a=i.trim();if(!a){s(`Please enter your name.`);return}if(n.length<4){s(`PIN must be at least 4 characters.`);return}let o=n;d(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:o,name:a})});if(!e.ok){let n=await e.json().catch(()=>({}));if(e.status===409){console.log(`[admin] PIN already configured — re-checking health`);try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?t(`enter-pin`):r.pin_configured?t(`connect-claude`):s(n.error||`Failed to set PIN.`)}else t(`enter-pin`)}catch{t(`enter-pin`)}return}s(n.error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`);if((n.ok?await n.json():null)?.claude_authenticated){await he(o);return}r(``),t(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,u,i]),_e=(0,M.useCallback)(async e=>{e.preventDefault(),s(``),await he(n)},[n]),ve=(0,M.useCallback)(async()=>{_(!0);try{await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null),T(null),te(void 0),E(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}t(`connect-claude`)}finally{_(!1)}},[]),ye=(0,M.useCallback)(()=>{y(null),T(null),te(void 0),E(null);try{sessionStorage.removeItem(`maxy-admin-session-key`),sessionStorage.removeItem(ce)}catch{}r(``),s(``),t(`enter-pin`)},[]);return{appState:e,setAppState:t,pin:n,setPin:r,operatorName:i,setOperatorName:a,pinError:o,setPinError:s,showPin:c,setShowPin:l,pinLoading:u,authPolling:f,setAuthPolling:p,authLoading:m,setAuthLoading:h,disconnecting:g,cacheKey:v,setCacheKey:y,claudeInfo:b,setClaudeInfo:x,businessName:S,role:w,userName:ee,userAvatar:ne,conversationId:D,setConversationId:O,accounts:k,accountPickerLoading:re,expandAll:ie,setExpandAll:ae,expandAllDefaultRef:oe,remoteAuthEnabled:de,pinInputRef:pe,setPinFormRef:me,handleSetPin:ge,handleLogin:_e,handleAccountSelect:(0,M.useCallback)(async e=>{j(!0),s(``),await he(n,e)},[n]),handleDisconnect:ve,handleLogout:ye,handleChangePin:(0,M.useCallback)(async()=>{if(!n){s(`Enter your current PIN first.`);return}d(!0),s(``);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPin:n})});if(!e.ok){s((await e.json().catch(()=>({error:`Incorrect PIN.`}))).error||`Incorrect PIN.`);return}r(``),s(``),t(`set-pin`)}catch(e){console.error(`[admin-auth] change pin failed:`,e),s(e instanceof Error?e.message:String(e))}finally{d(!1)}},[n])}}var fe=d(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),pe=d(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),me=d(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),he=d(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),ge=d(`file-exclamation-point`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),_e=d(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),ve=d(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),ye=d(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),be=d(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),xe=d(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Se=d(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),Ce=d(`square-arrow-down-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`m16 8-8 8`,key:`166keh`}],[`path`,{d:`M16 16H8V8`,key:`1w2ppm`}]]),N=u();function we({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,M.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,N.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,N.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function Te(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,setPinFormRef:u,onSubmit:d,operatorName:f,setOperatorName:m}=e;return(0,N.jsx)(`div`,{className:`connect-page`,children:(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,p.productName]}),(0,N.jsxs)(`p`,{className:`connect-subtitle`,children:[`Tell `,p.productName,` who you are, then choose a PIN.`]}),(0,N.jsxs)(`form`,{ref:u,onSubmit:d,className:`connect-pin-form`,children:[(0,N.jsxs)(`div`,{className:`pin-input-row`,children:[(0,N.jsx)(`input`,{type:`text`,className:`connect-name-input`,placeholder:`Your full name`,value:f,onChange:e=>m(e.target.value),autoComplete:`name`,autoFocus:!0,required:!0,"aria-label":`Your full name`}),(0,N.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,N.jsxs)(`div`,{className:`pin-input-row`,children:[(0,N.jsx)(we,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i}),(0,N.jsx)(j,{variant:`send`,type:`submit`,disabled:!t||!f.trim(),loading:o,"aria-label":`Set PIN`,children:(0,N.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,N.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,N.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,N.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`})]}),c&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function Ee(e){let{pin:t,setPin:r,showPin:i,setShowPin:a,pinLoading:o,pinError:c,pinInputRef:l,onSubmit:u,onChangePin:d,remoteAuthEnabled:f,onSignOutRemote:m}=e;return(0,N.jsxs)(`div`,{className:`connect-page`,children:[f&&m&&(0,N.jsx)(`button`,{type:`button`,className:`connect-signout`,onClick:m,children:`Sign out`}),(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,N.jsxs)(`form`,{onSubmit:u,className:`connect-pin-form`,children:[(0,N.jsxs)(`div`,{className:`pin-input-row`,children:[(0,N.jsx)(we,{inputRef:l,value:t,onChange:r,onComplete:()=>{},showPin:i,autoFocus:!0}),(0,N.jsx)(j,{variant:`send`,type:`submit`,disabled:!t,loading:o,children:(0,N.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,N.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,N.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,N.jsxs)(`div`,{className:`pin-options`,children:[(0,N.jsx)(n,{checked:i,onChange:()=>a(e=>!e),label:`Show PIN`}),(0,N.jsx)(j,{type:`button`,variant:`ghost`,onClick:d,children:`Change PIN`})]})]}),c&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:c})]})]})}function De(e){let{accounts:t,loading:n,error:r,onSelect:i}=e;return(0,N.jsx)(`div`,{className:`connect-page`,children:(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsx)(`h1`,{className:`connect-title`,children:p.productName}),(0,N.jsx)(`p`,{className:`connect-subtitle`,children:`Select an account`}),(0,N.jsx)(`div`,{className:`account-picker-list`,children:t.map(e=>(0,N.jsxs)(`button`,{className:`account-picker-card`,onClick:()=>i(e.accountId),disabled:n,type:`button`,children:[(0,N.jsx)(`span`,{className:`account-picker-name`,children:e.businessName||e.accountId}),(0,N.jsx)(`span`,{className:`account-picker-role`,children:e.role}),n&&(0,N.jsx)(y,{className:`account-picker-spinner`,size:16})]},e.accountId))}),r&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:r})]})})}function Oe(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:c}=e,[l,u]=(0,M.useState)(!1),[d,f]=(0,M.useState)(!1);async function m(){f(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?u(!0):e.error&&o(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),o(`Could not launch browser.`)}f(!1)}async function h(){i(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){n(!0),u(!0),i(!1);for(let e=0;e<120;e++)if(await new Promise(e=>setTimeout(e,2e3)),(await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json()).authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),c(`enter-pin`);return}o(`Timed out waiting for sign-in. Try again.`),n(!1)}else e.error&&o(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),o(`Could not start auth flow.`)}i(!1)}async function g(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),n(!1),o(``)}return t||l?(0,N.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,N.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,N.jsx)(`button`,{onClick:g,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,N.jsx)(`button`,{onClick:()=>u(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,N.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,N.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,N.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,N.jsx)(`div`,{style:{marginTop:`12px`},children:(0,N.jsx)(j,{variant:`primary`,onClick:h,disabled:r,children:r?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,N.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,N.jsx)(`iframe`,{src:`/vnc-viewer.html`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,N.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,N.jsx)(`div`,{className:`connect-page`,children:(0,N.jsxs)(`div`,{className:`connect-content`,children:[(0,N.jsxs)(`div`,{className:`connect-logos`,children:[(0,N.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,N.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,N.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,N.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,N.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,N.jsx)(`img`,{src:s,alt:p.productName,className:`connect-logo connect-logo--maxy`}),!p.logoContainsName&&(0,N.jsx)(`span`,{className:`connect-logo-label`,children:p.productName})]})]}),(0,N.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,p.productName]}),(0,N.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,N.jsx)(j,{variant:`primary`,onClick:h,disabled:r,children:r?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,N.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,N.jsx)(`button`,{onClick:m,disabled:d,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:d?`Launching…`:`Open browser first`}),a&&(0,N.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}var ke=`maxy-shell-artefact-px`;function Ae(){if(typeof window>`u`)return 320;let e=window.innerWidth,t=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),n=t?t.right:Math.round(e*.3);return Me(Math.round((e-n)*(2/3)))}function je(){if(typeof window>`u`)return 320;try{let e=window.localStorage.getItem(ke);if(!e)return Ae();let t=parseInt(e,10);if(Number.isFinite(t)&&t>=320)return t}catch{}return Ae()}function Me(e){if(typeof window>`u`)return e;let t=window.innerWidth,n=document.querySelector(`.platform > .side`)?.getBoundingClientRect(),r=n?n.right:Math.round(t*.3),i=Math.max(320,t-r-480);return Math.min(Math.max(e,320),i)}function Ne({targetSelector:e=`.platform`}){let t=(0,M.useRef)(null),[n,r]=(0,M.useState)(()=>je()),i=(0,M.useRef)(n);(0,M.useEffect)(()=>{let t=document.querySelector(e);!t||!(t instanceof HTMLElement)||(t.style.setProperty(`--artefact-px`,`${n}px`),i.current=n)},[n,e]);let a=(0,M.useCallback)(()=>{r(e=>{let t=Me(e);return t===e?e:t})},[]);(0,M.useEffect)(()=>(a(),window.addEventListener(`resize`,a),()=>window.removeEventListener(`resize`,a)),[a]);let o=e=>{e.preventDefault();let n=t.current;if(!n)return;n.setPointerCapture(e.pointerId),n.classList.add(`dragging`);let a=!1,o=e=>{a=!0,r(Me(Math.round(window.innerWidth-e.clientX)))},s=()=>{if(n.releasePointerCapture(e.pointerId),n.classList.remove(`dragging`),window.removeEventListener(`pointermove`,o),window.removeEventListener(`pointerup`,s),!a)return;let t=i.current;try{window.localStorage.setItem(ke,String(t))}catch{}console.info(`[admin-ui] artefact-resize px=${t}`)};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s)},s=()=>{let e=Ae();r(e);try{window.localStorage.removeItem(ke)}catch{}console.info(`[admin-ui] artefact-resize px=${e}`)};return(0,N.jsx)(`div`,{ref:t,className:`art-resize-handle`,role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize artefact pane`,onPointerDown:o,onDoubleClick:s})}async function*Pe(e,t){let n=await fetch(e,{signal:t});if(n.status===202)throw Error(`transcript not yet on disk; reopen after first turn`);if(!n.ok)throw Error(`stream-failed status=${n.status}`);let r=n.body;if(!r)throw Error(`stream-failed no-body`);let i=r.getReader(),a=new TextDecoder(`utf-8`),o=``,s=0,c=new Promise(e=>{let n={value:void 0,done:!0};if(t.aborted){e(n);return}t.addEventListener(`abort`,()=>e(n),{once:!0})});try{for(;;){if(t.aborted)return;let{value:e,done:n}=await Promise.race([i.read(),c]);if(t.aborted)return;if(n)break;o+=a.decode(e,{stream:!0});let r=o.split(`
2
2
  `);o=r.pop()??``;for(let e of r)s++,yield Fe(e,s)}let e=o+a.decode();e.length>0&&(s++,yield Fe(e,s))}finally{try{await i.cancel()}catch{}}}function Fe(e,t){try{return{kind:`json`,raw:e,parsed:JSON.parse(e),lineNumber:t}}catch(n){return{kind:`parse-error`,raw:e,lineNumber:t,error:n instanceof Error?n.message:String(n)}}}var Ie=28,Le=240,Re=16,ze=8;function Be(e,t){switch(t.type){case`append`:{let n=e.lines.length>=5e4?[...e.lines.slice(1),t.line]:[...e.lines,t.line],r=e.lines.length>=5e4?e.droppedCount+1:e.droppedCount;return{...e,lines:n,droppedCount:r}}case`complete`:return{...e,streamStatus:`complete`};case`error`:return{...e,streamStatus:`error`,errorMessage:t.message}}}var Ve={lines:[],droppedCount:0,streamStatus:`streaming`,errorMessage:null};function He(e){if(e.kind===`parse-error`)return{label:`parse-error`,tone:`error`};let t=e.parsed;if(!t||typeof t!=`object`)return{label:`raw`,tone:`raw`};let n=typeof t.type==`string`?t.type:null,r=typeof t.role==`string`?t.role:null;return n===`user`||r===`user`?{label:`user`,tone:`user`}:n===`assistant`||r===`assistant`?{label:`assistant`,tone:`assistant`}:n===`tool_use`?{label:`tool_use`,tone:`tool`}:n===`tool_result`?{label:`tool_result`,tone:`tool`}:n===`system`?{label:`system`,tone:`system`}:{label:`raw`,tone:`raw`}}function Ue(e,t,n){let r=Le-Ie,i=0,a=Math.max(0,e-1);for(;i<a;){let e=i+a+1>>1,o=0;for(;o<t.length&&t[o]<e;)o++;e*Ie+o*r<=n?i=e:a=e-1}return i}function We(e){let{sessionId:t,cacheKey:n,displayName:r,liveStatus:i,onClose:a}=e,[o,s]=(0,M.useReducer)(Be,Ve),[c,l]=(0,M.useState)(``),[u,d]=(0,M.useState)(()=>new Set),[f,p]=(0,M.useState)(0),[m,h]=(0,M.useState)(0),g=(0,M.useRef)(null),_=(0,M.useRef)(Date.now()),v=(0,M.useRef)(!0),y=(0,M.useRef)(0);(0,M.useEffect)(()=>(console.info(`[admin-ui] jsonl-viewer-open sessionId=${t.slice(0,8)} alive=${i===`alive`}`),()=>{let e=Date.now()-_.current;console.info(`[admin-ui] jsonl-viewer-close sessionId=${t.slice(0,8)} reason=unmount linesRendered=${y.current} ms=${e}`)}),[]),(0,M.useEffect)(()=>{let e=new AbortController,r=`/api/admin/claude-sessions/${encodeURIComponent(t)}/log?session_key=${encodeURIComponent(n)}&follow=1`,i=0;return(async()=>{try{for await(let n of Pe(r,e.signal))n.kind===`parse-error`&&i<100&&(i++,console.warn(`[admin-ui] jsonl-viewer parse-error sessionId=${t.slice(0,8)} lineNumber=${n.lineNumber}`)),s({type:`append`,line:n});e.signal.aborted||s({type:`complete`})}catch(t){if(e.signal.aborted)return;s({type:`error`,message:t instanceof Error?t.message:String(t)})}})(),()=>e.abort()},[t,n]),(0,M.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]);let b=(0,M.useMemo)(()=>{if(c.length===0)return o.lines;let e=c.toLowerCase();return o.lines.filter(t=>(t.kind===`json`?JSON.stringify(t.parsed):t.raw).toLowerCase().includes(e))},[o.lines,c]),x=(0,M.useMemo)(()=>[...u].sort((e,t)=>e-t),[u]),S=b.length*Ie+Math.min(x.length,b.length)*(Le-Ie),w=Math.max(0,Ue(b.length,x,f)-ze),T=m===0?Math.min(b.length,30):Math.ceil(m/Ie)+2*ze,ee=Math.min(b.length,w+T);(0,M.useLayoutEffect)(()=>{let e=g.current;e&&v.current&&(e.scrollTop=e.scrollHeight)},[b.length,S]);let te=(0,M.useCallback)(e=>{let t=e.currentTarget;p(t.scrollTop),h(t.clientHeight),v.current=t.scrollHeight-t.scrollTop-t.clientHeight<Re},[]),ne=(0,M.useCallback)(e=>{d(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),E=(0,M.useCallback)(async e=>{await A(e)},[]),D=(0,M.useCallback)(e=>{let t=0;for(;t<x.length&&x[t]<e;)t++;return e*Ie+t*(Le-Ie)},[x]),O=Ge(o,i),k=b.length===o.lines.length?0:o.lines.length-b.length;return y.current=o.lines.length,(0,N.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":`JSONL viewer`,className:`modal-overlay`,onClick:e=>{e.target===e.currentTarget&&a()},children:(0,N.jsxs)(`div`,{className:`modal-card jsonl-viewer-card`,children:[(0,N.jsxs)(`header`,{className:`jsonl-viewer-header`,children:[(0,N.jsxs)(`div`,{className:`jsonl-viewer-title`,children:[(0,N.jsx)(`strong`,{children:r??`session`}),(0,N.jsx)(`span`,{"data-mono":!0,className:`jsonl-viewer-sid`,children:t.slice(0,8)})]}),(0,N.jsx)(`input`,{type:`text`,className:`jsonl-viewer-search`,placeholder:`search…`,value:c,onChange:e=>l(e.target.value),"aria-label":`Filter visible lines`}),(0,N.jsxs)(`div`,{className:`jsonl-viewer-counts`,children:[(0,N.jsxs)(`span`,{children:[b.length.toLocaleString(),` lines`]}),k>0&&(0,N.jsxs)(`span`,{children:[` · `,k.toLocaleString(),` hidden`]}),o.droppedCount>0&&(0,N.jsxs)(`span`,{children:[` · `,o.droppedCount.toLocaleString(),` older dropped`]})]}),(0,N.jsx)(`button`,{type:`button`,className:`action-btn`,"aria-label":`Close JSONL viewer`,onClick:a,children:(0,N.jsx)(C,{size:14})})]}),(0,N.jsx)(`div`,{ref:g,className:`jsonl-viewer-scroll`,onScroll:te,children:(0,N.jsx)(`div`,{className:`jsonl-viewer-inner`,style:{height:S},children:b.slice(w,ee).map((e,t)=>{let n=w+t,r=u.has(n),i=D(n),a=He(e),o={position:`absolute`,top:i,left:0,right:0,height:r?Le:Ie},s=(e.kind,e.raw.slice(0,200));return(0,N.jsxs)(`div`,{className:`jsonl-viewer-row`,"data-expanded":r||void 0,"data-tone":a.tone,style:o,children:[(0,N.jsxs)(`button`,{type:`button`,className:`jsonl-viewer-row__main`,onClick:()=>ne(n),"aria-expanded":r,children:[(0,N.jsx)(`span`,{className:`jsonl-viewer-badge`,"data-tone":a.tone,children:a.label}),(0,N.jsx)(`span`,{className:`jsonl-viewer-line-no`,"data-mono":!0,children:e.lineNumber}),r?(0,N.jsxs)(`pre`,{className:`jsonl-viewer-pre`,"data-mono":!0,children:[e.kind===`json`?Ke(e.parsed):e.raw,e.kind===`parse-error`&&(0,N.jsx)(`span`,{className:`jsonl-viewer-error`,children:`\n\n[parse-error] ${e.error}`})]}):(0,N.jsx)(`span`,{className:`jsonl-viewer-preview`,"data-mono":!0,children:s})]}),(0,N.jsx)(`button`,{type:`button`,className:`jsonl-viewer-copy`,title:`Copy raw line`,onClick:()=>void E(e.raw),children:(0,N.jsx)(ae,{size:12})})]},`${e.lineNumber}-${n}`)})})}),(0,N.jsx)(`footer`,{className:`jsonl-viewer-footer`,children:(0,N.jsx)(`span`,{className:`jsonl-viewer-status`,"data-tone":O.tone,children:O.label})})]})})}function Ge(e,t){return e.streamStatus===`error`?{label:`error: ${e.errorMessage??`stream failed`}`,tone:`error`}:t===`alive`?{label:`streaming`,tone:`streaming`}:{label:`complete`,tone:`complete`}}function Ke(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function qe(e){return{pid:e.pid,url:e.url,startedAt:e.startedAt,accountId:e.senderId,role:e.role,channel:e.channel,jsonlPath:e.jsonlPath,status:e.status,displayName:e.displayName,lastMessageAt:e.lastMessageAt,turnCount:e.turnCount,capped:e.capped,sizeBytes:e.sizeBytes,sessionId:e.sessionId,specialist:e.specialist,model:e.model}}function Je(e){if(!e)return`—`;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Date.now()-t,r=Math.round(n/1e3);if(r<60)return`${r}s ago`;let i=Math.round(r/60);if(i<60)return`${i}m ago`;let a=Math.round(i/60);return a<24?`${a}h ago`:`${Math.round(a/24)}d ago`}function Ye(e){return e==null?`—`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Xe({sessionId:e,cacheKey:t,onClose:n,recentsActions:i,liveRow:a,onSessionNotFound:o}){let[s,c]=(0,M.useState)(null),[l,u]=(0,M.useState)(!0),[d,h]=(0,M.useState)(null),[v,b]=(0,M.useState)(!1),[x,T]=(0,M.useState)(null),[te,ne]=(0,M.useState)(null),[E,D]=(0,M.useState)(null),[O,k]=(0,M.useState)(!1),[re,j]=(0,M.useState)(!1),ie=(0,M.useRef)(null),oe=g(t,i,`pane`),{isPinned:se,togglePin:ce}=S(p.hostname),le=(0,M.useRef)(a?.status),ue=a?.status,de=(0,M.useCallback)(async()=>{u(!0),h(null);try{let n=await fetch(`/api/admin/claude-sessions/${encodeURIComponent(e)}/meta?session_key=${encodeURIComponent(t)}`);if(n.status===404){let t=le.current??`alive`;console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=${t} to=gone trigger=404`),b(!0),c(null),o&&o(e);return}if(!n.ok){let e=await n.text().catch(()=>``);throw Error(`meta returned ${n.status} ${e.slice(0,200)}`)}c(qe(await n.json())),b(!1)}catch(e){h(e instanceof Error?e.message:String(e)),console.error(`[admin-ui] sidebar-meta-pane fetch failed:`,e)}finally{u(!1)}},[e,t,o]);(0,M.useEffect)(()=>{console.info(`[admin-ui] sidebar-meta-pane sessionId=${e.slice(0,8)}`),de()},[de,e]),(0,M.useEffect)(()=>{let t=le.current;if(le.current=ue,!(t===void 0&&ue!==void 0)&&t!==ue){if(t===`alive`&&ue===`ended`){console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=alive to=ended trigger=list-flip`),de();return}if(t!==void 0&&ue===void 0){console.info(`[admin-ui] sidebar-meta-pane-reconcile sessionId=${e.slice(0,8)} from=${t} to=gone trigger=list-flip`),de();return}}},[ue,de,e]),(0,M.useEffect)(()=>{if(!O)return;let e=e=>{ie.current&&!ie.current.contains(e.target)&&k(!1)},t=e=>{e.key===`Escape`&&k(!1)};return document.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,t)}},[O]);let pe=(0,M.useCallback)(async(e,t)=>{T(await A(t)?`Copied ${e}`:`Copy failed`),window.setTimeout(()=>T(null),1500)},[]),me=(0,M.useCallback)(()=>{let n=`/api/admin/claude-sessions/${encodeURIComponent(e)}/log?session_key=${encodeURIComponent(t)}&download=1`;try{let t=document.createElement(`a`);t.href=n,t.download=``,t.rel=`noopener`,document.body.appendChild(t),t.click(),document.body.removeChild(t),console.info(`[admin-ui] pane-download-jsonl sessionId=${e.slice(0,8)} outcome=initiated`)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[admin-ui] pane-download-jsonl sessionId=${e.slice(0,8)} outcome=error reason=${n}`),ne(`Download failed: ${n}`)}},[e,t]),ge=(0,M.useCallback)(async(e,t,r)=>{ne(null);let i=e===`resume`?await oe.resume(t):e===`end`?await oe.end(t):e===`purge`?await oe.purge(t):e===`archive`?await oe.archive(t):await oe.unarchive(t);if(!i.ok){ne(i.error??`action failed`);return}r&&n()},[oe,n]);if(v&&a===void 0)return(0,N.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24,display:`flex`,flexDirection:`column`,gap:12},children:[(0,N.jsx)(`p`,{style:{margin:0,fontSize:13,color:`var(--text-secondary)`},children:`Session ended without a transcript. Close this pane.`}),(0,N.jsx)(`div`,{children:(0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:n,children:[(0,N.jsx)(C,{size:14}),` Close`]})})]});if(l&&!s)return(0,N.jsx)(`main`,{className:`session-meta-pane`,style:{padding:24},children:(0,N.jsx)(y,{size:16,className:`spinning`})});if(d&&!s)return(0,N.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24},children:[(0,N.jsx)(`p`,{style:{color:`var(--text-tertiary)`},children:d}),(0,N.jsx)(`button`,{type:`button`,className:`action-btn`,onClick:()=>void de(),children:`Retry`})]});if(!s)return null;let _e=s.status===`alive`,ve=se(e),ye=oe.inFlight;return(0,N.jsxs)(`main`,{className:`session-meta-pane`,style:{padding:24,display:`flex`,flexDirection:`column`,gap:20,overflowY:`auto`},children:[(0,N.jsxs)(`header`,{style:{display:`flex`,alignItems:`center`,gap:12},children:[(0,N.jsx)(`h2`,{style:{fontSize:22,fontWeight:600,margin:0,flex:1},children:s.displayName}),(0,N.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Close pane`,onClick:n,children:(0,N.jsx)(C,{size:18})})]}),(0,N.jsx)(`section`,{children:(0,N.jsxs)(`dl`,{className:`meta-dl`,children:[(0,N.jsx)(`dt`,{children:`Status`}),(0,N.jsx)(`dd`,{children:_e?`alive · pid ${s.pid??`?`}`:`ended`}),(0,N.jsx)(`dt`,{children:`Agent`}),(0,N.jsx)(`dd`,{children:s.specialist??`admin`}),(0,N.jsx)(`dt`,{title:`Model id from the most recent assistant turn in the JSONL tail. Null until the first assistant turn flushes; reflects the latest model used (claude can downgrade mid-session).`,children:`Model`}),(0,N.jsx)(`dd`,{children:s.model??`—`}),(0,N.jsx)(`dt`,{title:`Claude's session — one identity, two phases: bridge suffix from claude.ai/code/<session_xxx> and the JSONL basename UUID on disk. Both reconcile to the same row.`,children:`sessionId`}),(0,N.jsxs)(`dd`,{"data-mono":!0,children:[(0,N.jsx)(`span`,{children:e}),(0,N.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy sessionId`,onClick:()=>void pe(`sessionId`,e),children:(0,N.jsx)(ae,{size:12})})]}),(0,N.jsx)(`dt`,{children:`Started at`}),(0,N.jsxs)(`dd`,{children:[s.startedAt,` `,(0,N.jsxs)(`span`,{className:`text-tertiary`,children:[`(`,Je(s.startedAt),`)`]})]}),(0,N.jsx)(`dt`,{children:`Last message`}),(0,N.jsx)(`dd`,{children:s.lastMessageAt?(0,N.jsxs)(N.Fragment,{children:[s.lastMessageAt,` `,(0,N.jsxs)(`span`,{className:`text-tertiary`,children:[`(`,Je(s.lastMessageAt),`)`]})]}):`—`}),(0,N.jsx)(`dt`,{children:`Turns`}),(0,N.jsxs)(`dd`,{children:[s.turnCount,s.capped?(0,N.jsx)(`span`,{className:`text-tertiary`,children:` (≥, JSONL exceeds tail-read cap)`}):null]}),(0,N.jsx)(`dt`,{children:`JSONL size`}),(0,N.jsx)(`dd`,{children:Ye(s.sizeBytes)}),(0,N.jsx)(`dt`,{children:`JSONL path`}),(0,N.jsxs)(`dd`,{"data-mono":!0,children:[(0,N.jsx)(`span`,{children:s.jsonlPath??`—`}),s.jsonlPath&&(0,N.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy JSONL path`,onClick:()=>void pe(`path`,s.jsonlPath),children:(0,N.jsx)(ae,{size:12})})]}),_e&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`dt`,{children:`Session URL`}),(0,N.jsxs)(`dd`,{"data-mono":!0,children:[(0,N.jsx)(`span`,{children:s.url??`—`}),s.url&&(0,N.jsx)(`button`,{type:`button`,className:`icon-btn`,"aria-label":`Copy URL`,onClick:()=>void pe(`URL`,s.url),children:(0,N.jsx)(ae,{size:12})})]}),(0,N.jsx)(`dt`,{children:`Channel`}),(0,N.jsx)(`dd`,{children:s.channel??`—`}),(0,N.jsx)(`dt`,{children:`Role`}),(0,N.jsx)(`dd`,{children:s.role??`—`}),(0,N.jsx)(`dt`,{title:"Account / workspace UUID. Manager API still calls this `senderId` on the wire (channel-agnostic field).",children:`accountId`}),(0,N.jsx)(`dd`,{"data-mono":!0,children:(0,N.jsx)(`span`,{children:s.accountId||`—`})})]})]})}),(()=>{let t=[];return _e&&s.url&&t.push((0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,onClick:()=>window.open(s.url,`_blank`,`noopener,noreferrer`),children:[(0,N.jsx)(w,{size:14}),` Open in new tab`]},`open-tab`)),s.jsonlPath&&t.push((0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,title:`Download the JSONL transcript file`,onClick:()=>me(),children:[(0,N.jsx)(m,{size:14}),` Download JSONL`]},`download-jsonl`),(0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,title:`View the JSONL transcript in-app`,onClick:()=>j(!0),children:[(0,N.jsx)(ee,{size:14}),` View JSONL`]},`view-jsonl`)),_e||t.push((0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`primary`,disabled:ye===`resume`,onClick:()=>void ge(`resume`,e,!1),children:[ye===`resume`?(0,N.jsx)(y,{size:14,className:`spinning`}):(0,N.jsx)(r,{size:14}),` Resume`]},`resume`)),t.push((0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-active":ve?`true`:void 0,onClick:()=>ce(e),children:[(0,N.jsx)(Se,{size:14}),` `,ve?`Unpin`:`Pin`]},`pin`),(0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,disabled:ye===`archive`,onClick:()=>{_e?D({action:`archive-alive`,sessionId:e,displayName:s.displayName}):ge(`archive`,e,!0)},children:[ye===`archive`?(0,N.jsx)(y,{size:14,className:`spinning`}):(0,N.jsx)(fe,{size:14}),` Archive`]},`archive`)),t.push(_e?(0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`danger`,disabled:ye===`end`,onClick:()=>D({action:`end`,sessionId:e,displayName:s.displayName}),children:[(0,N.jsx)(_,{size:14}),` End session`]},`end`):(0,N.jsxs)(`button`,{type:`button`,className:`action-btn`,"data-variant":`danger`,disabled:ye===`purge`,onClick:()=>D({action:`purge`,sessionId:e,displayName:s.displayName}),children:[(0,N.jsx)(f,{size:14}),` Purge JSONL`]},`purge`)),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(`section`,{className:`action-bar`,children:t}),(0,N.jsxs)(`section`,{className:`session-actions-overflow`,ref:ie,children:[(0,N.jsx)(`button`,{type:`button`,className:`session-actions-overflow__trigger`,"aria-label":`Actions`,"aria-haspopup":`menu`,"aria-expanded":O,onClick:()=>{k(t=>{let n=!t;return n&&console.info(`[admin-ui] pane-actions-overflow-open sessionId=${e.slice(0,8)}`),n})},children:(0,N.jsx)(he,{size:14})}),O&&(0,N.jsx)(`div`,{className:`overflow-popover`,role:`menu`,onClick:()=>k(!1),children:t})]})]})})(),x&&(0,N.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:x}),te&&(0,N.jsx)(Qe,{message:te,onClose:()=>ne(null)}),re&&s.jsonlPath&&(0,N.jsx)(We,{sessionId:e,cacheKey:t,displayName:s.displayName,liveStatus:s.status,onClose:()=>j(!1)}),d&&(0,N.jsx)(`div`,{style:{color:`var(--text-tertiary)`,fontSize:12},children:d}),E&&(0,N.jsx)(Ze,{confirm:E,busy:E.action===`archive-alive`?ye===`end`||ye===`archive`:ye===E.action,onCancel:()=>D(null),onConfirm:async()=>{if(E.action===`archive-alive`){ne(null);let e=await oe.end(E.sessionId);if(!e.ok){ne(e.error??`failed to end session`),D(null);return}let t=await oe.archive(E.sessionId);if(!t.ok){ne(t.error??`failed to archive session`),D(null);return}D(null),n();return}await ge(E.action,E.sessionId,E.action===`purge`),D(null)}})]})}function Ze({confirm:e,busy:t,onCancel:n,onConfirm:r}){let i,a,o,s=e.displayName??e.sessionId.slice(0,8);switch(e.action){case`end`:i=`End live session?`,a=`This kills the PTY for ${s}. The JSONL is kept on disk and can be resumed later.`,o=`End session`;break;case`purge`:i=`Purge session JSONL?`,a=`This hard-deletes the transcript for ${s}. The action cannot be undone.`,o=`Purge`;break;case`archive-alive`:i=`Session is still running`,a=`End ${s} before archiving? The JSONL is kept and the row moves to the archive.`,o=`End and archive`;break}return(0,N.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,className:`modal-overlay`,onClick:e=>{e.target===e.currentTarget&&!t&&n()},children:(0,N.jsxs)(`div`,{className:`modal-card`,children:[(0,N.jsx)(`h3`,{style:{margin:0,marginBottom:8,fontSize:16,fontWeight:600},children:i}),(0,N.jsx)(`p`,{style:{margin:0,marginBottom:12,fontSize:13},children:a}),(0,N.jsxs)(`div`,{className:`modal-action-row`,children:[(0,N.jsx)(`button`,{type:`button`,className:`modal-action-btn`,disabled:t,onClick:n,children:`Cancel`}),(0,N.jsx)(`button`,{type:`button`,className:`modal-action-btn`,"data-variant":`danger`,disabled:t,onClick:()=>r(),children:t?(0,N.jsx)(y,{size:13,className:`spinning`}):o})]})]})})}function Qe({message:e,onClose:t}){return(0,N.jsx)(`div`,{role:`alertdialog`,"aria-modal":`true`,className:`modal-overlay`,onClick:e=>{e.target===e.currentTarget&&t()},children:(0,N.jsxs)(`div`,{className:`modal-card`,children:[(0,N.jsx)(`h3`,{style:{margin:0,marginBottom:8,fontSize:16,fontWeight:600},children:`Action failed`}),(0,N.jsx)(`p`,{style:{margin:0,marginBottom:12,fontSize:13,wordBreak:`break-word`},children:e}),(0,N.jsx)(`div`,{className:`modal-action-row`,children:(0,N.jsx)(`button`,{type:`button`,className:`modal-action-btn`,onClick:t,children:`OK`})})]})})}function $e({onOpen:e}){return(0,N.jsx)(`footer`,{className:`admin-footer`,children:(0,N.jsxs)(`div`,{className:`powered-by`,role:`button`,tabIndex:0,onClick:e,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),e())},"aria-label":`Powered by Claude Code — show details`,children:[(0,N.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`powered-by-icon`}),(0,N.jsx)(`span`,{children:`Powered by Claude Code`})]})})}var et=t((e=>{var t=a();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,l=r[1];return s(function(){a.value=n,a.getSnapshot=t,u(a)&&l({inst:a})},[e,n,t]),o(function(){return u(a)&&l({inst:a}),e(function(){u(a)&&l({inst:a})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),tt=t(((e,t)=>{t.exports=et()})),nt=tt(),rt=e(o(),1);function it(e){this.content=e}it.prototype={constructor:it,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new it(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new it(n)},addToStart:function(e,t){return new it([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new it(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new it(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=it.from(e),e.size?new it(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=it.from(e),e.size?new it(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=it.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},it.from=function(e){if(e instanceof it)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new it(t)};function at(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=at(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function ot(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=ot(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var P=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return at(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return ot(this,e,t,n)}findIndex(e){if(e==0)return ct(0,e);if(e==this.size)return ct(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?ct(t+1,i):ct(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};P.empty=new P([],0);var st={index:0,offset:0};function ct(e,t){return st.index=e,st.offset=t,st}function lt(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!lt(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!lt(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var F=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&lt(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};F.none=[];var ut=class extends Error{},I=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=ft(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(dt(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(P.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};I.empty=new I(P.empty,0,0);function dt(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy(dt(a.content,t-i-1,n-i-1)))}function ft(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=ft(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function pt(e,t,n){if(n.openStart>e.depth)throw new ut(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new ut(`Inconsistent open depths`);return mt(e,t,n,0)}function mt(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=mt(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return yt(a,xt(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return yt(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=St(n,e);return yt(a,bt(e,i,o,t,r))}}function ht(e,t){if(!t.type.compatibleContent(e.type))throw new ut(`Cannot join `+t.type.name+` onto `+e.type.name)}function gt(e,t,n){let r=e.node(n);return ht(r,t.node(n)),r}function _t(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function vt(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(_t(e.nodeAfter,r),a++));for(let e=a;e<o;e++)_t(i.child(e),r);t&&t.depth==n&&t.textOffset&&_t(t.nodeBefore,r)}function yt(e,t){return e.type.checkContent(t),e.copy(t)}function bt(e,t,n,r,i){let a=e.depth>i&&gt(e,t,i+1),o=r.depth>i&&gt(n,r,i+1),s=[];return vt(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(ht(a,o),_t(yt(a,bt(e,t,n,r,i+1)),s)):(a&&_t(yt(a,xt(e,t,i+1)),s),vt(t,n,i,s),o&&_t(yt(o,xt(n,r,i+1)),s)),vt(r,null,i,s),new P(s)}function xt(e,t,n){let r=[];return vt(null,e,n,r),e.depth>n&&_t(yt(gt(e,t,n+1),xt(e,t,n+1)),r),vt(t,null,n,r),new P(r)}function St(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(P.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Ct=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return F.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new Dt(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=Et.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else Et.set(t,r=new wt);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Tt,i}},wt=class{constructor(){this.elts=[],this.i=0}},Tt=12,Et=new WeakMap,Dt=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},Ot=Object.create(null),kt=class e{constructor(e,t,n,r=F.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||P.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&lt(this.attrs,t||e.defaultAttrs||Ot)&&F.sameSet(this.marks,n||F.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return I.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new I(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return pt(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return Ct.resolveCached(this,e)}resolveNoCache(e){return Ct.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),jt(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=P.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=F.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!F.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=P.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};kt.prototype.text=void 0;var At=class e extends kt{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):jt(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function jt(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Mt=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Nt(t,n);if(r.next==null)return e.empty;let i=Pt(r);r.next&&r.err(`Unexpected trailing text`);let a=Wt(Vt(i));return Gt(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return P.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
3
3
  `)}};Mt.empty=new Mt(!0);var Nt=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function Pt(e){let t=[];do t.push(Ft(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function Ft(e){let t=[];do t.push(It(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function It(e){let t=Bt(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=Rt(e,t);else break;return t}function Lt(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function Rt(e,t){let n=Lt(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:Lt(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function zt(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function Bt(e){if(e.eat(`(`)){let t=Pt(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=zt(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function Vt(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function Ht(e,t){return t-e}function Ut(e,t){let n=[];return r(t),n.sort(Ht);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function Wt(e){let t=Object.create(null);return n(Ut(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);Ut(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new Mt(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(Ht);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function Gt(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function Kt(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function qt(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function Jt(e,t,n,r){for(let r in t)if(!(r in e))throw RangeError(`Unsupported attribute ${r} for ${n} of type ${r}`);for(let n in e){let r=e[n];r.validate&&r.validate(t[n])}}function Yt(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new Qt(e,r,t[r]);return n}var Xt=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=Yt(e,n.attrs),this.defaultAttrs=Kt(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==Mt.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:qt(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new kt(this,this.computeAttrs(e),P.from(t),F.setFrom(n))}createChecked(e=null,t,n){return t=P.from(t),this.checkContent(t),new kt(this,this.computeAttrs(e),t,F.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=P.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(P.empty,!0);return i?new kt(this,e,t.append(i),F.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){Jt(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:F.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function Zt(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var Qt=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?Zt(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},$t=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=Yt(e,r.attrs),this.excluded=null;let i=Kt(this.attrs);this.instance=i?new F(this,i):null}create(e=null){return!e&&this.instance?this.instance:new F(this,qt(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){Jt(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},en=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=it.from(e.nodes),t.marks=it.from(e.marks||{}),this.nodes=Xt.compile(this.spec.nodes,this),this.marks=$t.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=Mt.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?tn(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:tn(this,n.split(` `))}this.nodeFromJSON=e=>kt.fromJSON(this,e),this.markFromJSON=e=>F.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof Xt))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new At(n,n.defaultAttrs,e,F.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function tn(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function nn(e){return e.tag!=null}function rn(e){return e.style!=null}var an=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(nn(e))this.tags.push(e);else if(rn(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new mn(this,t,!1);return n.addAll(e,F.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new mn(this,t,!0);return n.addAll(e,F.none,t.from,t.to),I.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(gn(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=_n(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=_n(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},on={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},sn={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},cn={ol:!0,ul:!0},ln=1,un=2,dn=4;function fn(e,t,n){return t==null?e&&e.whitespace==`pre`?ln|un:n&~dn:(t?ln:0)|(t===`full`?un:0)}var pn=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=F.none,this.match=i||(a&dn?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(P.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&ln)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=P.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(P.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!on.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},mn=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=fn(null,t.preserveWhitespace,0)|(n?dn:0);i=r?new pn(r.type,r.attrs,F.none,!0,t.topMatch||r.type.contentMatch,a):n?new pn(null,null,F.none,!0,null,a):new pn(e.schema.topNodeType,null,F.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&un?`full`:this.localPreserveWS||(r.options&ln)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
4
4
  `);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;cn.hasOwnProperty(a)&&this.parser.normalizeLists&&hn(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:sn.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(on.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`