@cleocode/cleo 2026.9.4 → 2026.9.5

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 (78) hide show
  1. package/dist/cli/index.js +94 -22
  2. package/dist/cli/index.js.map +1 -1
  3. package/package.json +13 -13
  4. package/studio-dist/client/_app/immutable/chunks/9yrFrmKZ.js +1 -0
  5. package/studio-dist/client/_app/immutable/chunks/{CfaaCiec.js → C7UP-KLT.js} +1 -1
  6. package/studio-dist/client/_app/immutable/chunks/{wIquQ8oS.js → CKXdW4mW.js} +1 -1
  7. package/studio-dist/client/_app/immutable/chunks/DrfFUIvQ.js +3 -0
  8. package/studio-dist/client/_app/immutable/entry/{app.DmCNBm9N.js → app.BwkUGH1B.js} +2 -2
  9. package/studio-dist/client/_app/immutable/entry/start.BcsID0Sf.js +1 -0
  10. package/studio-dist/client/_app/immutable/nodes/{0.CgZmurcA.js → 0.DcUJW-xi.js} +1 -1
  11. package/studio-dist/client/_app/immutable/nodes/{1.1dbkrilf.js → 1.DyTt_cQs.js} +1 -1
  12. package/studio-dist/client/_app/immutable/nodes/{15.Bz_Nz80F.js → 15.LRqqoueS.js} +1 -1
  13. package/studio-dist/client/_app/immutable/nodes/{16.D6pij0yb.js → 16.-hGPNXOI.js} +1 -1
  14. package/studio-dist/client/_app/immutable/nodes/{17.DJb8ywg2.js → 17.ChMxgTIY.js} +1 -1
  15. package/studio-dist/client/_app/immutable/nodes/{18.D3v2MpXF.js → 18.B9zeITVb.js} +1 -1
  16. package/studio-dist/client/_app/immutable/nodes/{20.KY914NXe.js → 20.BHg5roNq.js} +1 -1
  17. package/studio-dist/client/_app/immutable/nodes/{24.CZxqm68e.js → 24.B_s9aY5m.js} +1 -1
  18. package/studio-dist/client/_app/immutable/nodes/{25.olJPvxdc.js → 25.DZXkDxw_.js} +1 -1
  19. package/studio-dist/client/_app/immutable/nodes/{26.e4ryC6oN.js → 26.BBRbdwIG.js} +1 -1
  20. package/studio-dist/client/_app/immutable/nodes/{3.DywBpwr0.js → 3.DMYcrZeG.js} +1 -1
  21. package/studio-dist/client/_app/version.json +1 -1
  22. package/studio-dist/server/chunks/{0-DwFPJnkU.js → 0-CM4iQVYP.js} +3 -3
  23. package/studio-dist/server/chunks/{0-DwFPJnkU.js.map → 0-CM4iQVYP.js.map} +1 -1
  24. package/studio-dist/server/chunks/{1-CG5_Q8zX.js → 1-BQFD-dx6.js} +3 -3
  25. package/studio-dist/server/chunks/{1-CG5_Q8zX.js.map → 1-BQFD-dx6.js.map} +1 -1
  26. package/studio-dist/server/chunks/{15-CZZGY2wS.js → 15-Cng10n82.js} +3 -3
  27. package/studio-dist/server/chunks/{15-CZZGY2wS.js.map → 15-Cng10n82.js.map} +1 -1
  28. package/studio-dist/server/chunks/{16-i0yNeXoO.js → 16-u3KwU3N4.js} +3 -3
  29. package/studio-dist/server/chunks/{16-i0yNeXoO.js.map → 16-u3KwU3N4.js.map} +1 -1
  30. package/studio-dist/server/chunks/{17-DpnTEz3y.js → 17-BDtxQX9n.js} +3 -3
  31. package/studio-dist/server/chunks/{17-DpnTEz3y.js.map → 17-BDtxQX9n.js.map} +1 -1
  32. package/studio-dist/server/chunks/{18-BlVCh80I.js → 18-wwUoSO4F.js} +3 -3
  33. package/studio-dist/server/chunks/{18-BlVCh80I.js.map → 18-wwUoSO4F.js.map} +1 -1
  34. package/studio-dist/server/chunks/{20-DuPsaTgc.js → 20-B-0CBvqY.js} +3 -3
  35. package/studio-dist/server/chunks/{20-DuPsaTgc.js.map → 20-B-0CBvqY.js.map} +1 -1
  36. package/studio-dist/server/chunks/{24-NxmS9Pgy.js → 24-BeVcofpU.js} +3 -3
  37. package/studio-dist/server/chunks/{24-NxmS9Pgy.js.map → 24-BeVcofpU.js.map} +1 -1
  38. package/studio-dist/server/chunks/{25-mYlhGw4v.js → 25-DIuzTPOu.js} +3 -3
  39. package/studio-dist/server/chunks/{25-mYlhGw4v.js.map → 25-DIuzTPOu.js.map} +1 -1
  40. package/studio-dist/server/chunks/{26-HWQ-Ern5.js → 26-CY8x0KNI.js} +3 -3
  41. package/studio-dist/server/chunks/{26-HWQ-Ern5.js.map → 26-CY8x0KNI.js.map} +1 -1
  42. package/studio-dist/server/chunks/{3-ByOeP3Gf.js → 3-p3RwD-FY.js} +3 -3
  43. package/studio-dist/server/chunks/{3-ByOeP3Gf.js.map → 3-p3RwD-FY.js.map} +1 -1
  44. package/studio-dist/server/chunks/{_layout.svelte-DHjtdIgc.js → _layout.svelte-rswfOTDe.js} +4 -4
  45. package/studio-dist/server/chunks/{_layout.svelte-DHjtdIgc.js.map → _layout.svelte-rswfOTDe.js.map} +1 -1
  46. package/studio-dist/server/chunks/{_page.svelte-94NcV7tl.js → _page.svelte-BT1YF8j2.js} +4 -4
  47. package/studio-dist/server/chunks/{_page.svelte-94NcV7tl.js.map → _page.svelte-BT1YF8j2.js.map} +1 -1
  48. package/studio-dist/server/chunks/{_page.svelte-Bts_IhOg.js → _page.svelte-C9twD2l1.js} +3 -3
  49. package/studio-dist/server/chunks/{_page.svelte-Bts_IhOg.js.map → _page.svelte-C9twD2l1.js.map} +1 -1
  50. package/studio-dist/server/chunks/{_page.svelte-JjbfOpHp.js → _page.svelte-CHH1vmfg.js} +3 -3
  51. package/studio-dist/server/chunks/{_page.svelte-JjbfOpHp.js.map → _page.svelte-CHH1vmfg.js.map} +1 -1
  52. package/studio-dist/server/chunks/{_page.svelte-veJzLVtt.js → _page.svelte-CiIYIPG9.js} +3 -3
  53. package/studio-dist/server/chunks/{_page.svelte-veJzLVtt.js.map → _page.svelte-CiIYIPG9.js.map} +1 -1
  54. package/studio-dist/server/chunks/{_page.svelte-BDSxuyHW.js → _page.svelte-D8NhlkPD.js} +3 -3
  55. package/studio-dist/server/chunks/{_page.svelte-BDSxuyHW.js.map → _page.svelte-D8NhlkPD.js.map} +1 -1
  56. package/studio-dist/server/chunks/{_page.svelte-CvTF_ebH.js → _page.svelte-DKVwBmIp.js} +4 -4
  57. package/studio-dist/server/chunks/{_page.svelte-CvTF_ebH.js.map → _page.svelte-DKVwBmIp.js.map} +1 -1
  58. package/studio-dist/server/chunks/{_page.svelte-huH3MwZ_.js → _page.svelte-DZEnHo1L.js} +3 -3
  59. package/studio-dist/server/chunks/{_page.svelte-huH3MwZ_.js.map → _page.svelte-DZEnHo1L.js.map} +1 -1
  60. package/studio-dist/server/chunks/{_page.svelte-CGOmwPIU.js → _page.svelte-DaYxqOUS.js} +3 -3
  61. package/studio-dist/server/chunks/{_page.svelte-CGOmwPIU.js.map → _page.svelte-DaYxqOUS.js.map} +1 -1
  62. package/studio-dist/server/chunks/{_page.svelte-CBAVKefr.js → _page.svelte-DmTXiXKT.js} +3 -3
  63. package/studio-dist/server/chunks/{_page.svelte-CBAVKefr.js.map → _page.svelte-DmTXiXKT.js.map} +1 -1
  64. package/studio-dist/server/chunks/{client-CnSSIJRB.js → client-ym-URLFs.js} +2 -2
  65. package/studio-dist/server/chunks/{client-CnSSIJRB.js.map → client-ym-URLFs.js.map} +1 -1
  66. package/studio-dist/server/chunks/{error.svelte-BLSLV0aG.js → error.svelte-Bt1EbBZe.js} +3 -3
  67. package/studio-dist/server/chunks/{error.svelte-BLSLV0aG.js.map → error.svelte-Bt1EbBZe.js.map} +1 -1
  68. package/studio-dist/server/chunks/{internal-Cs1b0-2z.js → internal-D3i_4gCl.js} +2 -2
  69. package/studio-dist/server/chunks/{internal-Cs1b0-2z.js.map → internal-D3i_4gCl.js.map} +1 -1
  70. package/studio-dist/server/chunks/{stores-ye7Cop_n.js → stores-ByevKXL9.js} +2 -2
  71. package/studio-dist/server/chunks/{stores-ye7Cop_n.js.map → stores-ByevKXL9.js.map} +1 -1
  72. package/studio-dist/server/index.js +1 -1
  73. package/studio-dist/server/index.js.map +1 -1
  74. package/studio-dist/server/manifest.js +12 -12
  75. package/studio-dist/server/manifest.js.map +1 -1
  76. package/studio-dist/client/_app/immutable/chunks/BKR-sjxJ.js +0 -3
  77. package/studio-dist/client/_app/immutable/chunks/CifRJkIA.js +0 -1
  78. package/studio-dist/client/_app/immutable/entry/start.znBlkFx8.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"3-ByOeP3Gf.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/brain/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { a as getNexusDb, i as getConduitDb, n as getAgentRegistryDb, o as getTasksDb, r as getBrainDb, t as getAllSubstrates } from \"../../../chunks/src.js\";\nimport { a as setCachedGraph, i as getCachedGraph, n as buildCacheKey, r as getBrainCacheMetrics, t as recordBrainLoadDuration } from \"../../../chunks/brain.js\";\n//#region src/lib/graph/adapters/cross-substrate.ts\n/**\n* Execute a prepared statement and cast to `T[]`.\n* Identical to `allTyped` in `@cleocode/brain/db-connections` —\n* duplicated here so the studio package stays independent.\n*/\nfunction allTyped(stmt, ...params) {\n\treturn stmt.all(...params);\n}\n/** Default weight for all bridge edges — 0.7, higher than intra-substrate defaults. */\nvar BRIDGE_WEIGHT = .7;\n/**\n* Translate a `brain_memory_links.link_type` value to the canonical\n* `EdgeKind` vocabulary.\n*\n* Known values per `BRAIN_LINK_TYPES` in memory-schema.ts:\n* `produced_by | applies_to | informed_by | contradicts`\n*\n* @param linkType - Raw link_type from brain_memory_links.\n* @returns Canonical EdgeKind.\n*/\nfunction memLinkToEdgeKind(linkType) {\n\tif (linkType === \"produced_by\") return \"produced_by\";\n\tif (linkType === \"informed_by\") return \"informed_by\";\n\tif (linkType === \"applies_to\") return \"derived_from\";\n\tif (linkType === \"contradicts\") return \"relates_to\";\n\treturn \"relates_to\";\n}\n/**\n* Returns true when a `brain_page_edges.to_id` value looks like a nexus\n* node path (contains `::` separator for file::Symbol, or is a relative\n* file path with a `/`).\n*\n* Mirrors `isNexusStyleId` from `packages/brain/src/adapters/brain.ts`.\n*\n* @param toId - Candidate ID string from brain_page_edges.\n*/\nfunction isNexusStyleId(toId) {\n\tif (toId.includes(\"::\")) return true;\n\tif (!toId.includes(\":\") && toId.includes(\"/\")) return true;\n\treturn false;\n}\n/**\n* Returns true when a `brain_page_edges.from_id` / `to_id` value represents\n* a task reference (e.g. `\"task:T532\"`).\n*\n* @param id - Candidate ID string from brain_page_edges.\n*/\nfunction isTaskRef(id) {\n\treturn id.startsWith(\"task:\");\n}\n/**\n* Returns true when a `brain_page_edges.from_id` value represents\n* a CONDUIT message reference (e.g. `\"msg:msg_abc123\"`).\n*\n* @param id - Candidate ID string from brain_page_edges.\n*/\nfunction isMsgRef(id) {\n\treturn id.startsWith(\"msg:\");\n}\n/**\n* Compute all cross-substrate bridges between the given node set.\n*\n* This is the primary integration point for Agent C's server load. It\n* is called for tier-0, tier-1, and tier-2 paints. Bridges involving\n* hub nodes are always included — even in tier-0 — because bridges are\n* what makes the first paint look \"alive\".\n*\n* The function:\n* 1. Enumerates each bridge category using SQL queries against the provided DBs.\n* 2. Filters to bridges where both endpoints exist in `nodes`.\n* 3. Deduplicates by (source, target, kind).\n* 4. Applies a 2 × |nodes| cap, sorted by weight descending.\n* 5. Logs per-category counts to `console.info`.\n*\n* @param nodes - Current node set (substrate-prefixed IDs). Only bridges\n* where both endpoints appear here are emitted.\n* @param dbRefs - Optional DB connections. Missing DBs produce zero bridges\n* for that category — no errors are thrown.\n* @returns Array of {@link GraphEdge} objects with `meta.isBridge: true`.\n*\n* @example\n* ```ts\n* import { computeBridges } from '$lib/graph/adapters/cross-substrate.js';\n*\n* const bridges = computeBridges(nodes, { brainDb, tasksDb, nexusDb });\n* const allEdges = [...intraEdges, ...bridges];\n* ```\n*/\nfunction computeBridges(nodes, dbRefs) {\n\tconst nodeIdSet = new Set(nodes.map((n) => n.id));\n\tconst raw = [];\n\tif (dbRefs.brainDb) {\n\t\traw.push(...bridgeTaskBrainViaMemLinks(dbRefs.brainDb, nodeIdSet));\n\t\traw.push(...bridgeTaskBrainViaDecisions(dbRefs.brainDb, nodeIdSet));\n\t}\n\tif (dbRefs.brainDb) {\n\t\traw.push(...bridgeBrainNexusViaPageEdges(dbRefs.brainDb, nodeIdSet));\n\t\traw.push(...bridgeBrainNexusViaObsFiles(dbRefs.brainDb, nodeIdSet));\n\t}\n\tif (dbRefs.brainDb) raw.push(...bridgeConduitTasksViaPageEdges(dbRefs.brainDb, nodeIdSet));\n\tif (dbRefs.tasksDb) raw.push(...bridgeAgentRegistryTasksViaAssignee(dbRefs.tasksDb, nodeIdSet));\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst unique = [];\n\tfor (const b of raw) {\n\t\tconst key = `${b.source}|${b.target}|${b.kind}`;\n\t\tif (!seen.has(key)) {\n\t\t\tseen.add(key);\n\t\t\tunique.push(b);\n\t\t}\n\t}\n\tconst cap = nodes.length * 2;\n\tunique.sort((a, b) => b.weight - a.weight);\n\tconst capped = unique.length > cap;\n\tconst result = capped ? unique.slice(0, cap) : unique;\n\tconst stats = buildStats(result, capped);\n\tconsole.info(`[cross-substrate] bridges emitted: ${stats.total} (capped=${stats.capped}) — ` + Object.entries(stats.byType).filter(([, v]) => v > 0).map(([k, v]) => `${k}:${v}`).join(\", \"));\n\treturn result.map((b, i) => ({\n\t\tid: `bridge-${i}:${b.source}>${b.target}:${b.kind}`,\n\t\tsource: b.source,\n\t\ttarget: b.target,\n\t\tkind: b.kind,\n\t\tweight: b.weight,\n\t\tdirectional: true,\n\t\tmeta: b.meta\n\t}));\n}\n/**\n* Bridge: TASK ↔ BRAIN via `brain_memory_links`.\n*\n* The `brain_memory_links` table stores explicit cross-DB links between\n* typed memory entries and tasks. Each row maps (memory_type, memory_id) →\n* task_id with a semantic link_type.\n*\n* Verified present in `memory-schema.ts` as `brainMemoryLinks`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeTaskBrainViaMemLinks(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT memory_type, memory_id, task_id, link_type\n FROM brain_memory_links\n LIMIT 2000`));\n\t\tfor (const row of rows) {\n\t\t\tconst brainNodeId = `brain:${row.memory_id}`;\n\t\t\tconst tasksNodeId = `tasks:${row.task_id}`;\n\t\t\tif (!nodeIds.has(brainNodeId) || !nodeIds.has(tasksNodeId)) continue;\n\t\t\tconst kind = memLinkToEdgeKind(row.link_type);\n\t\t\tbridges.push({\n\t\t\t\tsource: brainNodeId,\n\t\t\t\ttarget: tasksNodeId,\n\t\t\t\tkind,\n\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"task->brain\",\n\t\t\t\t\tdescription: `Memory entry ${row.memory_type}:${row.memory_id} ${kind.replace(\"_\", \" \")} task ${row.task_id}`,\n\t\t\t\t\tlink_type: row.link_type,\n\t\t\t\t\tmemory_type: row.memory_type\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: TASK ↔ BRAIN via `brain_decisions.context_task_id` and\n* `brain_decisions.context_epic_id`.\n*\n* Both columns are present in the schema as soft FKs into tasks.db.\n* Each decision that cites a task gets an `informed_by` bridge pointing\n* to the task that provided the architectural context.\n*\n* Verified present in `memory-schema.ts` as `brainDecisions.contextTaskId`\n* and `brainDecisions.contextEpicId`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeTaskBrainViaDecisions(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT id, context_task_id, context_epic_id\n FROM brain_decisions\n WHERE context_task_id IS NOT NULL OR context_epic_id IS NOT NULL\n LIMIT 1000`));\n\t\tfor (const row of rows) {\n\t\t\tconst brainNodeId = `brain:${row.id}`;\n\t\t\tif (!nodeIds.has(brainNodeId)) continue;\n\t\t\tif (row.context_task_id) {\n\t\t\t\tconst tasksNodeId = `tasks:${row.context_task_id}`;\n\t\t\t\tif (nodeIds.has(tasksNodeId)) bridges.push({\n\t\t\t\t\tsource: brainNodeId,\n\t\t\t\t\ttarget: tasksNodeId,\n\t\t\t\t\tkind: \"informed_by\",\n\t\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisBridge: true,\n\t\t\t\t\t\tbridgeType: \"task->brain\",\n\t\t\t\t\t\tdescription: `Decision informed by task ${row.context_task_id}`,\n\t\t\t\t\t\tcontext_column: \"context_task_id\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (row.context_epic_id) {\n\t\t\t\tconst tasksNodeId = `tasks:${row.context_epic_id}`;\n\t\t\t\tif (nodeIds.has(tasksNodeId)) bridges.push({\n\t\t\t\t\tsource: brainNodeId,\n\t\t\t\t\ttarget: tasksNodeId,\n\t\t\t\t\tkind: \"informed_by\",\n\t\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisBridge: true,\n\t\t\t\t\t\tbridgeType: \"task->brain\",\n\t\t\t\t\t\tdescription: `Decision informed by epic ${row.context_epic_id}`,\n\t\t\t\t\t\tcontext_column: \"context_epic_id\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: BRAIN ↔ NEXUS via `brain_page_edges` where `to_id` is a nexus path.\n*\n* `brain_page_edges.to_id` may store nexus-style IDs:\n* - `\"some/path/file.ts::SymbolName\"` — a file::Symbol reference\n* - `\"some/relative/path.ts\"` — a file path (no `:` prefix)\n*\n* These map to `nexus:<to_id>` in the graph. The existing brain.ts adapter\n* already emits some of these in its `BrainEdge` output; this function\n* surfaces the same bridges at the Studio adapter layer so they flow through\n* the `computeBridges` path and carry `meta.isBridge: true`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeBrainNexusViaPageEdges(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT from_id, to_id, edge_type, weight\n FROM brain_page_edges\n LIMIT 5000`));\n\t\tfor (const row of rows) {\n\t\t\tif (!isNexusStyleId(row.to_id)) continue;\n\t\t\tconst sep = row.from_id.indexOf(\":\");\n\t\t\tif (sep === -1) continue;\n\t\t\tconst prefix = row.from_id.slice(0, sep);\n\t\t\tconst rawId = row.from_id.slice(sep + 1);\n\t\t\tif (!new Set([\n\t\t\t\t\"observation\",\n\t\t\t\t\"decision\",\n\t\t\t\t\"pattern\",\n\t\t\t\t\"learning\"\n\t\t\t]).has(prefix)) continue;\n\t\t\tconst brainNodeId = `brain:${rawId}`;\n\t\t\tconst nexusNodeId = `nexus:${row.to_id}`;\n\t\t\tif (!nodeIds.has(brainNodeId) || !nodeIds.has(nexusNodeId)) continue;\n\t\t\tbridges.push({\n\t\t\t\tsource: brainNodeId,\n\t\t\t\ttarget: nexusNodeId,\n\t\t\t\tkind: \"references\",\n\t\t\t\tweight: Math.min(1, Math.max(.1, row.weight ?? BRIDGE_WEIGHT)),\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"brain->nexus\",\n\t\t\t\t\tdescription: `Brain node ${prefix}:${rawId} references code ${row.to_id}`,\n\t\t\t\t\tedge_type: row.edge_type,\n\t\t\t\t\tlink_kind: \"code\"\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: BRAIN ↔ NEXUS via `brain_observations.files_modified_json`.\n*\n* Each observation can carry a JSON array of relative file paths it\n* modified during the session. Each path maps to `nexus:<path>`.\n*\n* Cap: first 5 links per observation to prevent hairballing on\n* large session observations.\n*\n* Verified present in `memory-schema.ts` as `brainObservations.filesModifiedJson`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeBrainNexusViaObsFiles(db, nodeIds) {\n\tconst bridges = [];\n\tconst MAX_LINKS_PER_OBS = 5;\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT id, files_modified_json\n FROM brain_observations\n WHERE files_modified_json IS NOT NULL\n AND files_modified_json != '[]'\n LIMIT 500`));\n\t\tfor (const row of rows) {\n\t\t\tif (!row.files_modified_json) continue;\n\t\t\tconst brainNodeId = `brain:${row.id}`;\n\t\t\tif (!nodeIds.has(brainNodeId)) continue;\n\t\t\tlet filePaths;\n\t\t\ttry {\n\t\t\t\tfilePaths = JSON.parse(row.files_modified_json);\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!Array.isArray(filePaths)) continue;\n\t\t\tconst limited = filePaths.slice(0, MAX_LINKS_PER_OBS);\n\t\t\tfor (const rawPath of limited) {\n\t\t\t\tif (typeof rawPath !== \"string\" || rawPath.length === 0) continue;\n\t\t\t\tconst nexusNodeId = `nexus:${rawPath}`;\n\t\t\t\tif (!nodeIds.has(nexusNodeId)) continue;\n\t\t\t\tbridges.push({\n\t\t\t\t\tsource: brainNodeId,\n\t\t\t\t\ttarget: nexusNodeId,\n\t\t\t\t\tkind: \"documents\",\n\t\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisBridge: true,\n\t\t\t\t\t\tbridgeType: \"brain->nexus\",\n\t\t\t\t\t\tdescription: `Observation documents file ${rawPath}`,\n\t\t\t\t\t\tfile_path: rawPath\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: CONDUIT ↔ TASKS via `brain_page_edges` where `from_id` is a\n* `msg:` reference and `to_id` is a `task:` reference.\n*\n* `brain_page_edges` stores cross-substrate links at the page-graph level.\n* The `discusses` edge type (defined in `BRAIN_EDGE_TYPES`) connects\n* CONDUIT message nodes to task nodes.\n*\n* The `conduit:` node prefix is used in the graph even though the\n* page-edge stores `msg:` as the type prefix. Conversion:\n* - `msg:<messageId>` → `conduit:<messageId>`\n* - `task:<taskId>` → `tasks:<taskId>`\n*\n* @param db - brain.db connection (page edges cross-reference conduit).\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeConduitTasksViaPageEdges(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT from_id, to_id, edge_type, weight\n FROM brain_page_edges\n WHERE from_id LIKE 'msg:%'\n AND to_id LIKE 'task:%'\n LIMIT 1000`));\n\t\tfor (const row of rows) {\n\t\t\tif (!isMsgRef(row.from_id) || !isTaskRef(row.to_id)) continue;\n\t\t\tconst msgId = row.from_id.slice(4);\n\t\t\tconst taskId = row.to_id.slice(5);\n\t\t\tconst conduitNodeId = `conduit:${msgId}`;\n\t\t\tconst tasksNodeId = `tasks:${taskId}`;\n\t\t\tif (!nodeIds.has(conduitNodeId) || !nodeIds.has(tasksNodeId)) continue;\n\t\t\tbridges.push({\n\t\t\t\tsource: conduitNodeId,\n\t\t\t\ttarget: tasksNodeId,\n\t\t\t\tkind: \"messages\",\n\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"conduit->tasks\",\n\t\t\t\t\tdescription: `Conduit message discusses task ${taskId}`,\n\t\t\t\t\tedge_type: row.edge_type\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: SIGNALDOCK ↔ TASKS via `tasks.assignee` matching a loaded\n* signaldock agent node.\n*\n* When a task has an `assignee` field and a signaldock node with that\n* agent ID exists in the loaded node set, emit a `messages` bridge\n* from the agent to the task.\n*\n* The `tasks.assignee` column is verified present in `tasks-schema.ts`.\n* The signaldock node ID format is `agent-registry:<agent_id>`.\n*\n* @param db - tasks.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeAgentRegistryTasksViaAssignee(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT id, assignee\n FROM tasks\n WHERE assignee IS NOT NULL\n AND status NOT IN ('archived', 'cancelled')\n LIMIT 1000`));\n\t\tfor (const row of rows) {\n\t\t\tif (!row.assignee) continue;\n\t\t\tconst tasksNodeId = `tasks:${row.id}`;\n\t\t\tconst signaldockNodeId = `agent-registry:${row.assignee}`;\n\t\t\tif (!nodeIds.has(tasksNodeId) || !nodeIds.has(signaldockNodeId)) continue;\n\t\t\tbridges.push({\n\t\t\t\tsource: signaldockNodeId,\n\t\t\t\ttarget: tasksNodeId,\n\t\t\t\tkind: \"messages\",\n\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"signaldock->tasks\",\n\t\t\t\t\tdescription: `Agent ${row.assignee} is assigned to task ${row.id}`,\n\t\t\t\t\tassignee: row.assignee\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Build {@link BridgeStats} from an array of bridge edges.\n*\n* @param bridges - The final emitted bridge set.\n* @param capped - Whether the 2 × node-count cap was applied.\n* @returns Statistics summary.\n*/\nfunction buildStats(bridges, capped) {\n\tconst byType = {\n\t\t\"task->brain\": 0,\n\t\t\"task->nexus\": 0,\n\t\t\"brain->nexus\": 0,\n\t\t\"conduit->tasks\": 0,\n\t\t\"conduit->brain\": 0,\n\t\t\"signaldock->tasks\": 0,\n\t\t\"signaldock->brain\": 0\n\t};\n\tfor (const b of bridges) {\n\t\tconst bt = b.meta.bridgeType;\n\t\tbyType[bt] = (byType[bt] ?? 0) + 1;\n\t}\n\treturn {\n\t\ttotal: bridges.length,\n\t\tbyType,\n\t\tcapped\n\t};\n}\n//#endregion\n//#region src/routes/brain/+page.server.ts\n/**\n* Brain canvas page server load (`/brain`) — progressive-disclosure edition.\n*\n* ## Performance strategy (T990)\n*\n* The prior implementation called `getAllSubstrates({ limit: 5000 })` on every\n* request, serialising all 2000-5000 nodes into the SvelteKit payload before\n* the browser received the first byte. This produced a 3-8 second blank\n* screen.\n*\n* The new strategy ships a **tier-0 payload** (top-200 hub nodes, < 200 ms)\n* so the renderer can mount and paint a meaningful brain shape immediately.\n* The client then fetches tier-1 (up to 1000 nodes) and tier-2 (remaining,\n* up to 5000) from `/api/brain?tier=N` in the background.\n*\n* ### Tier sizes\n*\n* | Tier | Nodes | Target latency |\n* |------|-------|----------------|\n* | 0 | 200 | < 200 ms p95 |\n* | 1 | 1000 | < 1000 ms |\n* | 2 | 5000 | < 3000 ms |\n*\n* Tier 0 is served from an in-memory LRU cache (30-second TTL, 5 entries)\n* so repeated navigations are < 30 ms.\n*\n* ### Client streaming helper\n*\n* The page exports {@link streamRemainingNodes} — an async function that Agent\n* E's page shell calls from `onMount` to fetch tier-1 and tier-2 progressively.\n* The function is exported from this module so the page only needs to import\n* it once; it does NOT run on the server.\n*\n* @module\n* @task T990\n*/\n/**\n* Node cap for tier-0 first paint.\n*\n* Tuned (2026-04-19) after observing that `limit: 5000` produced a 30-45s\n* freeze on first load — five sequential SQLite queries + the stub loader\n* + cross-substrate bridge queries + 5000-node JSON serialisation blew\n* past the time-to-interactive budget.\n*\n* `1500` balances three constraints:\n*\n* - **Complete-enough visual**: with Agent D's cross-substrate bridges\n* wired, 1500 nodes already look like a full brain — the operator's\n* \"missing data\" complaint was about bridges being dead code, not\n* node counts.\n* - **First paint < 3s** on a cold cache even with bridges in-line.\n* - **Cached repeats < 30ms** via the LRU — same as before.\n*\n* Client-side streaming (`streamRemainingNodes()`) can pull tier-1 and\n* tier-2 later if the operator wants the long tail; it stays opt-in.\n*/\nvar TIER0_LIMIT = 1500;\n/**\n* Disable SSR for the brain canvas route.\n*\n* The Three.js / WebGL renderer imports browser-only APIs at module load\n* time, making SSR impossible without significant shim complexity. The\n* route has no meaningful static content, so disabling SSR costs nothing\n* and keeps the server clean.\n*/\nvar ssr = false;\n/**\n* Compute cross-substrate bridge edges for the given graph.\n*\n* Wraps Agent D's {@link computeBridges} with the DB handles obtained\n* from `@cleocode/brain`. Returns an empty array if the project context\n* is missing or the DBs can't be opened.\n*/\nfunction computeBridgesForGraph(graph, ctx) {\n\tif (!ctx) return [];\n\tconst kitNodes = graph.nodes.map((n) => ({\n\t\tid: n.id,\n\t\tsubstrate: n.substrate,\n\t\tkind: n.kind,\n\t\tlabel: n.label\n\t}));\n\ttry {\n\t\treturn computeBridges(kitNodes, {\n\t\t\tbrainDb: getBrainDb(ctx) ?? void 0,\n\t\t\ttasksDb: getTasksDb(ctx) ?? void 0,\n\t\t\tconduitDb: getConduitDb(ctx) ?? void 0,\n\t\t\tnexusDb: getNexusDb() ?? void 0,\n\t\t\tsignaldockDb: getAgentRegistryDb() ?? void 0\n\t\t});\n\t} catch (err) {\n\t\tconsole.warn(\"[brain/load] bridge computation failed:\", err);\n\t\treturn [];\n\t}\n}\nvar load = ({ locals }) => {\n\tconst t0 = performance.now();\n\tconst cacheKey = buildCacheKey({\n\t\tprojectId: locals.projectCtx?.projectId ?? \"\",\n\t\tlimit: TIER0_LIMIT\n\t});\n\tconst cached = getCachedGraph(cacheKey);\n\tif (cached) {\n\t\tconst elapsed = performance.now() - t0;\n\t\trecordBrainLoadDuration(0, elapsed);\n\t\tconst bridges = computeBridgesForGraph(cached, locals.projectCtx);\n\t\tconst metrics = getBrainCacheMetrics();\n\t\tconsole.info(`[brain/load] tier=0 source=cache elapsed=${elapsed.toFixed(1)}ms bridges=${bridges.length} hits=${metrics.hits} misses=${metrics.misses} size=${metrics.size}`);\n\t\treturn {\n\t\t\tgraph: cached,\n\t\t\tbridges,\n\t\t\tfromCache: true,\n\t\t\ttotalNodeCount: cached.truncated ? 5e3 : cached.nodes.length\n\t\t};\n\t}\n\tconst graph = getAllSubstrates({\n\t\tlimit: TIER0_LIMIT,\n\t\tprojectCtx: locals.projectCtx\n\t});\n\tsetCachedGraph(cacheKey, graph);\n\tconst bridges = computeBridgesForGraph(graph, locals.projectCtx);\n\tconst elapsed = performance.now() - t0;\n\trecordBrainLoadDuration(0, elapsed);\n\tconst metrics = getBrainCacheMetrics();\n\tconsole.info(`[brain/load] tier=0 source=db elapsed=${elapsed.toFixed(1)}ms nodes=${graph.nodes.length} bridges=${bridges.length} hits=${metrics.hits} misses=${metrics.misses}`);\n\treturn {\n\t\tgraph,\n\t\tbridges,\n\t\tfromCache: false,\n\t\ttotalNodeCount: graph.truncated ? 5e3 : graph.nodes.length\n\t};\n};\n//#endregion\nexport { load, ssr };\n","import * as server from '../entries/pages/brain/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/brain/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/brain/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.DywBpwr0.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/wIquQ8oS.js\",\"_app/immutable/chunks/BKR-sjxJ.js\",\"_app/immutable/chunks/Bxz2A0ZC.js\",\"_app/immutable/chunks/djL6V-tr.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/ThreeBrainRenderer.BSwu9fuL.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/3.DqDkvXKx.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3-p3RwD-FY.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/brain/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { a as getNexusDb, i as getConduitDb, n as getAgentRegistryDb, o as getTasksDb, r as getBrainDb, t as getAllSubstrates } from \"../../../chunks/src.js\";\nimport { a as setCachedGraph, i as getCachedGraph, n as buildCacheKey, r as getBrainCacheMetrics, t as recordBrainLoadDuration } from \"../../../chunks/brain.js\";\n//#region src/lib/graph/adapters/cross-substrate.ts\n/**\n* Execute a prepared statement and cast to `T[]`.\n* Identical to `allTyped` in `@cleocode/brain/db-connections` —\n* duplicated here so the studio package stays independent.\n*/\nfunction allTyped(stmt, ...params) {\n\treturn stmt.all(...params);\n}\n/** Default weight for all bridge edges — 0.7, higher than intra-substrate defaults. */\nvar BRIDGE_WEIGHT = .7;\n/**\n* Translate a `brain_memory_links.link_type` value to the canonical\n* `EdgeKind` vocabulary.\n*\n* Known values per `BRAIN_LINK_TYPES` in memory-schema.ts:\n* `produced_by | applies_to | informed_by | contradicts`\n*\n* @param linkType - Raw link_type from brain_memory_links.\n* @returns Canonical EdgeKind.\n*/\nfunction memLinkToEdgeKind(linkType) {\n\tif (linkType === \"produced_by\") return \"produced_by\";\n\tif (linkType === \"informed_by\") return \"informed_by\";\n\tif (linkType === \"applies_to\") return \"derived_from\";\n\tif (linkType === \"contradicts\") return \"relates_to\";\n\treturn \"relates_to\";\n}\n/**\n* Returns true when a `brain_page_edges.to_id` value looks like a nexus\n* node path (contains `::` separator for file::Symbol, or is a relative\n* file path with a `/`).\n*\n* Mirrors `isNexusStyleId` from `packages/brain/src/adapters/brain.ts`.\n*\n* @param toId - Candidate ID string from brain_page_edges.\n*/\nfunction isNexusStyleId(toId) {\n\tif (toId.includes(\"::\")) return true;\n\tif (!toId.includes(\":\") && toId.includes(\"/\")) return true;\n\treturn false;\n}\n/**\n* Returns true when a `brain_page_edges.from_id` / `to_id` value represents\n* a task reference (e.g. `\"task:T532\"`).\n*\n* @param id - Candidate ID string from brain_page_edges.\n*/\nfunction isTaskRef(id) {\n\treturn id.startsWith(\"task:\");\n}\n/**\n* Returns true when a `brain_page_edges.from_id` value represents\n* a CONDUIT message reference (e.g. `\"msg:msg_abc123\"`).\n*\n* @param id - Candidate ID string from brain_page_edges.\n*/\nfunction isMsgRef(id) {\n\treturn id.startsWith(\"msg:\");\n}\n/**\n* Compute all cross-substrate bridges between the given node set.\n*\n* This is the primary integration point for Agent C's server load. It\n* is called for tier-0, tier-1, and tier-2 paints. Bridges involving\n* hub nodes are always included — even in tier-0 — because bridges are\n* what makes the first paint look \"alive\".\n*\n* The function:\n* 1. Enumerates each bridge category using SQL queries against the provided DBs.\n* 2. Filters to bridges where both endpoints exist in `nodes`.\n* 3. Deduplicates by (source, target, kind).\n* 4. Applies a 2 × |nodes| cap, sorted by weight descending.\n* 5. Logs per-category counts to `console.info`.\n*\n* @param nodes - Current node set (substrate-prefixed IDs). Only bridges\n* where both endpoints appear here are emitted.\n* @param dbRefs - Optional DB connections. Missing DBs produce zero bridges\n* for that category — no errors are thrown.\n* @returns Array of {@link GraphEdge} objects with `meta.isBridge: true`.\n*\n* @example\n* ```ts\n* import { computeBridges } from '$lib/graph/adapters/cross-substrate.js';\n*\n* const bridges = computeBridges(nodes, { brainDb, tasksDb, nexusDb });\n* const allEdges = [...intraEdges, ...bridges];\n* ```\n*/\nfunction computeBridges(nodes, dbRefs) {\n\tconst nodeIdSet = new Set(nodes.map((n) => n.id));\n\tconst raw = [];\n\tif (dbRefs.brainDb) {\n\t\traw.push(...bridgeTaskBrainViaMemLinks(dbRefs.brainDb, nodeIdSet));\n\t\traw.push(...bridgeTaskBrainViaDecisions(dbRefs.brainDb, nodeIdSet));\n\t}\n\tif (dbRefs.brainDb) {\n\t\traw.push(...bridgeBrainNexusViaPageEdges(dbRefs.brainDb, nodeIdSet));\n\t\traw.push(...bridgeBrainNexusViaObsFiles(dbRefs.brainDb, nodeIdSet));\n\t}\n\tif (dbRefs.brainDb) raw.push(...bridgeConduitTasksViaPageEdges(dbRefs.brainDb, nodeIdSet));\n\tif (dbRefs.tasksDb) raw.push(...bridgeAgentRegistryTasksViaAssignee(dbRefs.tasksDb, nodeIdSet));\n\tconst seen = /* @__PURE__ */ new Set();\n\tconst unique = [];\n\tfor (const b of raw) {\n\t\tconst key = `${b.source}|${b.target}|${b.kind}`;\n\t\tif (!seen.has(key)) {\n\t\t\tseen.add(key);\n\t\t\tunique.push(b);\n\t\t}\n\t}\n\tconst cap = nodes.length * 2;\n\tunique.sort((a, b) => b.weight - a.weight);\n\tconst capped = unique.length > cap;\n\tconst result = capped ? unique.slice(0, cap) : unique;\n\tconst stats = buildStats(result, capped);\n\tconsole.info(`[cross-substrate] bridges emitted: ${stats.total} (capped=${stats.capped}) — ` + Object.entries(stats.byType).filter(([, v]) => v > 0).map(([k, v]) => `${k}:${v}`).join(\", \"));\n\treturn result.map((b, i) => ({\n\t\tid: `bridge-${i}:${b.source}>${b.target}:${b.kind}`,\n\t\tsource: b.source,\n\t\ttarget: b.target,\n\t\tkind: b.kind,\n\t\tweight: b.weight,\n\t\tdirectional: true,\n\t\tmeta: b.meta\n\t}));\n}\n/**\n* Bridge: TASK ↔ BRAIN via `brain_memory_links`.\n*\n* The `brain_memory_links` table stores explicit cross-DB links between\n* typed memory entries and tasks. Each row maps (memory_type, memory_id) →\n* task_id with a semantic link_type.\n*\n* Verified present in `memory-schema.ts` as `brainMemoryLinks`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeTaskBrainViaMemLinks(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT memory_type, memory_id, task_id, link_type\n FROM brain_memory_links\n LIMIT 2000`));\n\t\tfor (const row of rows) {\n\t\t\tconst brainNodeId = `brain:${row.memory_id}`;\n\t\t\tconst tasksNodeId = `tasks:${row.task_id}`;\n\t\t\tif (!nodeIds.has(brainNodeId) || !nodeIds.has(tasksNodeId)) continue;\n\t\t\tconst kind = memLinkToEdgeKind(row.link_type);\n\t\t\tbridges.push({\n\t\t\t\tsource: brainNodeId,\n\t\t\t\ttarget: tasksNodeId,\n\t\t\t\tkind,\n\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"task->brain\",\n\t\t\t\t\tdescription: `Memory entry ${row.memory_type}:${row.memory_id} ${kind.replace(\"_\", \" \")} task ${row.task_id}`,\n\t\t\t\t\tlink_type: row.link_type,\n\t\t\t\t\tmemory_type: row.memory_type\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: TASK ↔ BRAIN via `brain_decisions.context_task_id` and\n* `brain_decisions.context_epic_id`.\n*\n* Both columns are present in the schema as soft FKs into tasks.db.\n* Each decision that cites a task gets an `informed_by` bridge pointing\n* to the task that provided the architectural context.\n*\n* Verified present in `memory-schema.ts` as `brainDecisions.contextTaskId`\n* and `brainDecisions.contextEpicId`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeTaskBrainViaDecisions(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT id, context_task_id, context_epic_id\n FROM brain_decisions\n WHERE context_task_id IS NOT NULL OR context_epic_id IS NOT NULL\n LIMIT 1000`));\n\t\tfor (const row of rows) {\n\t\t\tconst brainNodeId = `brain:${row.id}`;\n\t\t\tif (!nodeIds.has(brainNodeId)) continue;\n\t\t\tif (row.context_task_id) {\n\t\t\t\tconst tasksNodeId = `tasks:${row.context_task_id}`;\n\t\t\t\tif (nodeIds.has(tasksNodeId)) bridges.push({\n\t\t\t\t\tsource: brainNodeId,\n\t\t\t\t\ttarget: tasksNodeId,\n\t\t\t\t\tkind: \"informed_by\",\n\t\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisBridge: true,\n\t\t\t\t\t\tbridgeType: \"task->brain\",\n\t\t\t\t\t\tdescription: `Decision informed by task ${row.context_task_id}`,\n\t\t\t\t\t\tcontext_column: \"context_task_id\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (row.context_epic_id) {\n\t\t\t\tconst tasksNodeId = `tasks:${row.context_epic_id}`;\n\t\t\t\tif (nodeIds.has(tasksNodeId)) bridges.push({\n\t\t\t\t\tsource: brainNodeId,\n\t\t\t\t\ttarget: tasksNodeId,\n\t\t\t\t\tkind: \"informed_by\",\n\t\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisBridge: true,\n\t\t\t\t\t\tbridgeType: \"task->brain\",\n\t\t\t\t\t\tdescription: `Decision informed by epic ${row.context_epic_id}`,\n\t\t\t\t\t\tcontext_column: \"context_epic_id\"\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: BRAIN ↔ NEXUS via `brain_page_edges` where `to_id` is a nexus path.\n*\n* `brain_page_edges.to_id` may store nexus-style IDs:\n* - `\"some/path/file.ts::SymbolName\"` — a file::Symbol reference\n* - `\"some/relative/path.ts\"` — a file path (no `:` prefix)\n*\n* These map to `nexus:<to_id>` in the graph. The existing brain.ts adapter\n* already emits some of these in its `BrainEdge` output; this function\n* surfaces the same bridges at the Studio adapter layer so they flow through\n* the `computeBridges` path and carry `meta.isBridge: true`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeBrainNexusViaPageEdges(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT from_id, to_id, edge_type, weight\n FROM brain_page_edges\n LIMIT 5000`));\n\t\tfor (const row of rows) {\n\t\t\tif (!isNexusStyleId(row.to_id)) continue;\n\t\t\tconst sep = row.from_id.indexOf(\":\");\n\t\t\tif (sep === -1) continue;\n\t\t\tconst prefix = row.from_id.slice(0, sep);\n\t\t\tconst rawId = row.from_id.slice(sep + 1);\n\t\t\tif (!new Set([\n\t\t\t\t\"observation\",\n\t\t\t\t\"decision\",\n\t\t\t\t\"pattern\",\n\t\t\t\t\"learning\"\n\t\t\t]).has(prefix)) continue;\n\t\t\tconst brainNodeId = `brain:${rawId}`;\n\t\t\tconst nexusNodeId = `nexus:${row.to_id}`;\n\t\t\tif (!nodeIds.has(brainNodeId) || !nodeIds.has(nexusNodeId)) continue;\n\t\t\tbridges.push({\n\t\t\t\tsource: brainNodeId,\n\t\t\t\ttarget: nexusNodeId,\n\t\t\t\tkind: \"references\",\n\t\t\t\tweight: Math.min(1, Math.max(.1, row.weight ?? BRIDGE_WEIGHT)),\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"brain->nexus\",\n\t\t\t\t\tdescription: `Brain node ${prefix}:${rawId} references code ${row.to_id}`,\n\t\t\t\t\tedge_type: row.edge_type,\n\t\t\t\t\tlink_kind: \"code\"\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: BRAIN ↔ NEXUS via `brain_observations.files_modified_json`.\n*\n* Each observation can carry a JSON array of relative file paths it\n* modified during the session. Each path maps to `nexus:<path>`.\n*\n* Cap: first 5 links per observation to prevent hairballing on\n* large session observations.\n*\n* Verified present in `memory-schema.ts` as `brainObservations.filesModifiedJson`.\n*\n* @param db - brain.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeBrainNexusViaObsFiles(db, nodeIds) {\n\tconst bridges = [];\n\tconst MAX_LINKS_PER_OBS = 5;\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT id, files_modified_json\n FROM brain_observations\n WHERE files_modified_json IS NOT NULL\n AND files_modified_json != '[]'\n LIMIT 500`));\n\t\tfor (const row of rows) {\n\t\t\tif (!row.files_modified_json) continue;\n\t\t\tconst brainNodeId = `brain:${row.id}`;\n\t\t\tif (!nodeIds.has(brainNodeId)) continue;\n\t\t\tlet filePaths;\n\t\t\ttry {\n\t\t\t\tfilePaths = JSON.parse(row.files_modified_json);\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!Array.isArray(filePaths)) continue;\n\t\t\tconst limited = filePaths.slice(0, MAX_LINKS_PER_OBS);\n\t\t\tfor (const rawPath of limited) {\n\t\t\t\tif (typeof rawPath !== \"string\" || rawPath.length === 0) continue;\n\t\t\t\tconst nexusNodeId = `nexus:${rawPath}`;\n\t\t\t\tif (!nodeIds.has(nexusNodeId)) continue;\n\t\t\t\tbridges.push({\n\t\t\t\t\tsource: brainNodeId,\n\t\t\t\t\ttarget: nexusNodeId,\n\t\t\t\t\tkind: \"documents\",\n\t\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisBridge: true,\n\t\t\t\t\t\tbridgeType: \"brain->nexus\",\n\t\t\t\t\t\tdescription: `Observation documents file ${rawPath}`,\n\t\t\t\t\t\tfile_path: rawPath\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: CONDUIT ↔ TASKS via `brain_page_edges` where `from_id` is a\n* `msg:` reference and `to_id` is a `task:` reference.\n*\n* `brain_page_edges` stores cross-substrate links at the page-graph level.\n* The `discusses` edge type (defined in `BRAIN_EDGE_TYPES`) connects\n* CONDUIT message nodes to task nodes.\n*\n* The `conduit:` node prefix is used in the graph even though the\n* page-edge stores `msg:` as the type prefix. Conversion:\n* - `msg:<messageId>` → `conduit:<messageId>`\n* - `task:<taskId>` → `tasks:<taskId>`\n*\n* @param db - brain.db connection (page edges cross-reference conduit).\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeConduitTasksViaPageEdges(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT from_id, to_id, edge_type, weight\n FROM brain_page_edges\n WHERE from_id LIKE 'msg:%'\n AND to_id LIKE 'task:%'\n LIMIT 1000`));\n\t\tfor (const row of rows) {\n\t\t\tif (!isMsgRef(row.from_id) || !isTaskRef(row.to_id)) continue;\n\t\t\tconst msgId = row.from_id.slice(4);\n\t\t\tconst taskId = row.to_id.slice(5);\n\t\t\tconst conduitNodeId = `conduit:${msgId}`;\n\t\t\tconst tasksNodeId = `tasks:${taskId}`;\n\t\t\tif (!nodeIds.has(conduitNodeId) || !nodeIds.has(tasksNodeId)) continue;\n\t\t\tbridges.push({\n\t\t\t\tsource: conduitNodeId,\n\t\t\t\ttarget: tasksNodeId,\n\t\t\t\tkind: \"messages\",\n\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"conduit->tasks\",\n\t\t\t\t\tdescription: `Conduit message discusses task ${taskId}`,\n\t\t\t\t\tedge_type: row.edge_type\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Bridge: SIGNALDOCK ↔ TASKS via `tasks.assignee` matching a loaded\n* signaldock agent node.\n*\n* When a task has an `assignee` field and a signaldock node with that\n* agent ID exists in the loaded node set, emit a `messages` bridge\n* from the agent to the task.\n*\n* The `tasks.assignee` column is verified present in `tasks-schema.ts`.\n* The signaldock node ID format is `agent-registry:<agent_id>`.\n*\n* @param db - tasks.db connection.\n* @param nodeIds - Set of loaded node IDs.\n* @returns Bridge edges.\n*/\nfunction bridgeAgentRegistryTasksViaAssignee(db, nodeIds) {\n\tconst bridges = [];\n\ttry {\n\t\tconst rows = allTyped(db.prepare(`SELECT id, assignee\n FROM tasks\n WHERE assignee IS NOT NULL\n AND status NOT IN ('archived', 'cancelled')\n LIMIT 1000`));\n\t\tfor (const row of rows) {\n\t\t\tif (!row.assignee) continue;\n\t\t\tconst tasksNodeId = `tasks:${row.id}`;\n\t\t\tconst signaldockNodeId = `agent-registry:${row.assignee}`;\n\t\t\tif (!nodeIds.has(tasksNodeId) || !nodeIds.has(signaldockNodeId)) continue;\n\t\t\tbridges.push({\n\t\t\t\tsource: signaldockNodeId,\n\t\t\t\ttarget: tasksNodeId,\n\t\t\t\tkind: \"messages\",\n\t\t\t\tweight: BRIDGE_WEIGHT,\n\t\t\t\tmeta: {\n\t\t\t\t\tisBridge: true,\n\t\t\t\t\tbridgeType: \"signaldock->tasks\",\n\t\t\t\t\tdescription: `Agent ${row.assignee} is assigned to task ${row.id}`,\n\t\t\t\t\tassignee: row.assignee\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} catch {}\n\treturn bridges;\n}\n/**\n* Build {@link BridgeStats} from an array of bridge edges.\n*\n* @param bridges - The final emitted bridge set.\n* @param capped - Whether the 2 × node-count cap was applied.\n* @returns Statistics summary.\n*/\nfunction buildStats(bridges, capped) {\n\tconst byType = {\n\t\t\"task->brain\": 0,\n\t\t\"task->nexus\": 0,\n\t\t\"brain->nexus\": 0,\n\t\t\"conduit->tasks\": 0,\n\t\t\"conduit->brain\": 0,\n\t\t\"signaldock->tasks\": 0,\n\t\t\"signaldock->brain\": 0\n\t};\n\tfor (const b of bridges) {\n\t\tconst bt = b.meta.bridgeType;\n\t\tbyType[bt] = (byType[bt] ?? 0) + 1;\n\t}\n\treturn {\n\t\ttotal: bridges.length,\n\t\tbyType,\n\t\tcapped\n\t};\n}\n//#endregion\n//#region src/routes/brain/+page.server.ts\n/**\n* Brain canvas page server load (`/brain`) — progressive-disclosure edition.\n*\n* ## Performance strategy (T990)\n*\n* The prior implementation called `getAllSubstrates({ limit: 5000 })` on every\n* request, serialising all 2000-5000 nodes into the SvelteKit payload before\n* the browser received the first byte. This produced a 3-8 second blank\n* screen.\n*\n* The new strategy ships a **tier-0 payload** (top-200 hub nodes, < 200 ms)\n* so the renderer can mount and paint a meaningful brain shape immediately.\n* The client then fetches tier-1 (up to 1000 nodes) and tier-2 (remaining,\n* up to 5000) from `/api/brain?tier=N` in the background.\n*\n* ### Tier sizes\n*\n* | Tier | Nodes | Target latency |\n* |------|-------|----------------|\n* | 0 | 200 | < 200 ms p95 |\n* | 1 | 1000 | < 1000 ms |\n* | 2 | 5000 | < 3000 ms |\n*\n* Tier 0 is served from an in-memory LRU cache (30-second TTL, 5 entries)\n* so repeated navigations are < 30 ms.\n*\n* ### Client streaming helper\n*\n* The page exports {@link streamRemainingNodes} — an async function that Agent\n* E's page shell calls from `onMount` to fetch tier-1 and tier-2 progressively.\n* The function is exported from this module so the page only needs to import\n* it once; it does NOT run on the server.\n*\n* @module\n* @task T990\n*/\n/**\n* Node cap for tier-0 first paint.\n*\n* Tuned (2026-04-19) after observing that `limit: 5000` produced a 30-45s\n* freeze on first load — five sequential SQLite queries + the stub loader\n* + cross-substrate bridge queries + 5000-node JSON serialisation blew\n* past the time-to-interactive budget.\n*\n* `1500` balances three constraints:\n*\n* - **Complete-enough visual**: with Agent D's cross-substrate bridges\n* wired, 1500 nodes already look like a full brain — the operator's\n* \"missing data\" complaint was about bridges being dead code, not\n* node counts.\n* - **First paint < 3s** on a cold cache even with bridges in-line.\n* - **Cached repeats < 30ms** via the LRU — same as before.\n*\n* Client-side streaming (`streamRemainingNodes()`) can pull tier-1 and\n* tier-2 later if the operator wants the long tail; it stays opt-in.\n*/\nvar TIER0_LIMIT = 1500;\n/**\n* Disable SSR for the brain canvas route.\n*\n* The Three.js / WebGL renderer imports browser-only APIs at module load\n* time, making SSR impossible without significant shim complexity. The\n* route has no meaningful static content, so disabling SSR costs nothing\n* and keeps the server clean.\n*/\nvar ssr = false;\n/**\n* Compute cross-substrate bridge edges for the given graph.\n*\n* Wraps Agent D's {@link computeBridges} with the DB handles obtained\n* from `@cleocode/brain`. Returns an empty array if the project context\n* is missing or the DBs can't be opened.\n*/\nfunction computeBridgesForGraph(graph, ctx) {\n\tif (!ctx) return [];\n\tconst kitNodes = graph.nodes.map((n) => ({\n\t\tid: n.id,\n\t\tsubstrate: n.substrate,\n\t\tkind: n.kind,\n\t\tlabel: n.label\n\t}));\n\ttry {\n\t\treturn computeBridges(kitNodes, {\n\t\t\tbrainDb: getBrainDb(ctx) ?? void 0,\n\t\t\ttasksDb: getTasksDb(ctx) ?? void 0,\n\t\t\tconduitDb: getConduitDb(ctx) ?? void 0,\n\t\t\tnexusDb: getNexusDb() ?? void 0,\n\t\t\tsignaldockDb: getAgentRegistryDb() ?? void 0\n\t\t});\n\t} catch (err) {\n\t\tconsole.warn(\"[brain/load] bridge computation failed:\", err);\n\t\treturn [];\n\t}\n}\nvar load = ({ locals }) => {\n\tconst t0 = performance.now();\n\tconst cacheKey = buildCacheKey({\n\t\tprojectId: locals.projectCtx?.projectId ?? \"\",\n\t\tlimit: TIER0_LIMIT\n\t});\n\tconst cached = getCachedGraph(cacheKey);\n\tif (cached) {\n\t\tconst elapsed = performance.now() - t0;\n\t\trecordBrainLoadDuration(0, elapsed);\n\t\tconst bridges = computeBridgesForGraph(cached, locals.projectCtx);\n\t\tconst metrics = getBrainCacheMetrics();\n\t\tconsole.info(`[brain/load] tier=0 source=cache elapsed=${elapsed.toFixed(1)}ms bridges=${bridges.length} hits=${metrics.hits} misses=${metrics.misses} size=${metrics.size}`);\n\t\treturn {\n\t\t\tgraph: cached,\n\t\t\tbridges,\n\t\t\tfromCache: true,\n\t\t\ttotalNodeCount: cached.truncated ? 5e3 : cached.nodes.length\n\t\t};\n\t}\n\tconst graph = getAllSubstrates({\n\t\tlimit: TIER0_LIMIT,\n\t\tprojectCtx: locals.projectCtx\n\t});\n\tsetCachedGraph(cacheKey, graph);\n\tconst bridges = computeBridgesForGraph(graph, locals.projectCtx);\n\tconst elapsed = performance.now() - t0;\n\trecordBrainLoadDuration(0, elapsed);\n\tconst metrics = getBrainCacheMetrics();\n\tconsole.info(`[brain/load] tier=0 source=db elapsed=${elapsed.toFixed(1)}ms nodes=${graph.nodes.length} bridges=${bridges.length} hits=${metrics.hits} misses=${metrics.misses}`);\n\treturn {\n\t\tgraph,\n\t\tbridges,\n\t\tfromCache: false,\n\t\ttotalNodeCount: graph.truncated ? 5e3 : graph.nodes.length\n\t};\n};\n//#endregion\nexport { load, ssr };\n","import * as server from '../entries/pages/brain/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/brain/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/brain/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.DMYcrZeG.js\",\"_app/immutable/chunks/o1PZ6Kzq.js\",\"_app/immutable/chunks/DyGQ_VXC.js\",\"_app/immutable/chunks/DrKWWDpL.js\",\"_app/immutable/chunks/CQCxd1p9.js\",\"_app/immutable/chunks/CKXdW4mW.js\",\"_app/immutable/chunks/DrfFUIvQ.js\",\"_app/immutable/chunks/Bxz2A0ZC.js\",\"_app/immutable/chunks/djL6V-tr.js\",\"_app/immutable/chunks/RptFUp2P.js\",\"_app/immutable/chunks/CEqOYim7.js\"];\nexport const stylesheets = [\"_app/immutable/assets/cluster-label-layer.aRgASjnn.css\",\"_app/immutable/assets/no-face-up.BlswZ73M.css\",\"_app/immutable/assets/ThreeBrainRenderer.BSwu9fuL.css\",\"_app/immutable/assets/Tabs.CU9_rsWl.css\",\"_app/immutable/assets/3.DqDkvXKx.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { e as ensure_array_like, a as attr, b as attr_class, s as store_get, c as escape_html, u as unsubscribe_stores, d as attr_style, f as stringify, g as derived } from './dev-BNpEUZI3.js';
2
2
  import 'node:module';
3
- import { p as page } from './stores-ye7Cop_n.js';
4
- import './client-CnSSIJRB.js';
5
- import './internal-Cs1b0-2z.js';
3
+ import { p as page } from './stores-ByevKXL9.js';
4
+ import './client-ym-URLFs.js';
5
+ import './internal-D3i_4gCl.js';
6
6
  import '@sveltejs/kit/internal';
7
7
  import './index-server-DocJvixA.js';
8
8
  import './chunk-DDP5xfzh.js';
@@ -139,4 +139,4 @@ function _layout($$renderer, $$props) {
139
139
  }
140
140
 
141
141
  export { _layout as default };
142
- //# sourceMappingURL=_layout.svelte-DHjtdIgc.js.map
142
+ //# sourceMappingURL=_layout.svelte-rswfOTDe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_layout.svelte-DHjtdIgc.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, d as unsubscribe_stores, l as store_get, n as attr_class, o as ensure_array_like, r as attr_style, u as stringify } from \"../../chunks/dev.js\";\nimport \"../../chunks/index-server.js\";\nimport { t as page } from \"../../chunks/stores.js\";\n//#region src/lib/components/ProjectSelector.svelte\nfunction ProjectSelector($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/**\n\t\t* ProjectSelector — header dropdown for switching the active CLEO project.\n\t\t*\n\t\t* Displays the current project name with a colored chip and chevron.\n\t\t* Opens a searchable, filterable dropdown panel. Switching POSTs to\n\t\t* /api/project/switch and reloads the page on success.\n\t\t*\n\t\t* @task T646\n\t\t*/\n\t\t/** Shape returned by listRegisteredProjects(). */\n\t\tlet { projects, activeProjectId } = $$props;\n\t\tlet isOpen = false;\n\t\tlet searchQuery = \"\";\n\t\tlet highlightedIndex = 0;\n\t\tconst TEST_PATH_RE = /\\/(tmp|test|fixture|scratch|sandbox)\\b/i;\n\t\tconst activeProject = derived(() => projects.find((p) => p.projectId === activeProjectId) ?? null);\n\t\t/**\n\t\t* Chip colour tokens, resolved via `getComputedStyle` from\n\t\t* `tokens.css`. Using tokens (not raw hex) keeps the hash-to-colour\n\t\t* projection stable under dark / light theme swaps without leaking\n\t\t* literals into the component source. `--chip-1..8` fall back to\n\t\t* semantic tokens for the common rainbow progression.\n\t\t*\n\t\t* Order mirrors the historical raw-hex table so the name → chip\n\t\t* hash stays deterministic across the T990 tokenisation pass.\n\t\t*/\n\t\tconst CHIP_COLOR_VARS = [\n\t\t\t\"var(--info)\",\n\t\t\t\"var(--success)\",\n\t\t\t\"var(--warning)\",\n\t\t\t\"var(--accent)\",\n\t\t\t\"var(--priority-critical)\",\n\t\t\t\"var(--edge-definition)\",\n\t\t\t\"var(--edge-structural)\",\n\t\t\t\"var(--edge-extends)\"\n\t\t];\n\t\tfunction chipColor(name) {\n\t\t\treturn CHIP_COLOR_VARS[(name.charCodeAt(0) || 0) % CHIP_COLOR_VARS.length] ?? \"var(--accent)\";\n\t\t}\n\t\tfunction chipLetter(name) {\n\t\t\treturn (name[0] ?? \"?\").toUpperCase();\n\t\t}\n\t\t/** Projects after search + test-project filter. */\n\t\tconst filteredProjects = derived(() => {\n\t\t\tlet list = projects;\n\t\t\tlist = list.filter((p) => !TEST_PATH_RE.test(p.projectPath));\n\t\t\tif (searchQuery.trim());\n\t\t\treturn list;\n\t\t});\n\t\tderived(() => filteredProjects()[highlightedIndex] ?? null);\n\t\t$$renderer.push(`<div class=\"project-selector svelte-t4k058\"><button type=\"button\"${attr_class(\"trigger svelte-t4k058\", void 0, { \"open\": isOpen })} aria-haspopup=\"listbox\"${attr(\"aria-expanded\", isOpen)}${attr(\"title\", activeProject() ? activeProject().projectPath : \"Select project\")}>`);\n\t\tif (activeProject()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"chip svelte-t4k058\"${attr_style(`background: ${stringify(chipColor(activeProject().name))}`)} aria-hidden=\"true\">${escape_html(chipLetter(activeProject().name))}</span> <span class=\"trigger-name svelte-t4k058\">${escape_html(activeProject().name)}</span>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<span class=\"chip placeholder svelte-t4k058\" aria-hidden=\"true\">?</span> <span class=\"trigger-name muted svelte-t4k058\">Select project</span>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--> <svg${attr_class(\"chevron svelte-t4k058\", void 0, { \"rotated\": isOpen })} width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden=\"true\"><path d=\"M2 3.5L5 6.5L8 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg></button> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div>`);\n\t});\n}\n//#endregion\n//#region src/routes/+layout.svelte\nfunction _layout($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data, children } = $$props;\n\t\tconst consoleHref = derived(() => data.activeProjectId ? `/studio/${data.activeProjectId}` : \"/projects\");\n\t\tconst navItems = derived(() => [\n\t\t\t{\n\t\t\t\thref: \"/brain\",\n\t\t\t\tlabel: \"Brain\",\n\t\t\t\tdescription: \"5-substrate living canvas\",\n\t\t\t\texact: true\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/brain/overview\",\n\t\t\t\tlabel: \"Memory\",\n\t\t\t\tdescription: \"BRAIN dashboard (decisions, observations, quality)\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/code\",\n\t\t\t\tlabel: \"Code\",\n\t\t\t\tdescription: \"Code intelligence\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/tasks\",\n\t\t\t\tlabel: \"Tasks\",\n\t\t\t\tdescription: \"Task management\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/tasks/kanban\",\n\t\t\t\tlabel: \"Board\",\n\t\t\t\tdescription: \"Agent-lifecycle dispatcher board (read-only)\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: consoleHref(),\n\t\t\t\tlabel: \"Console\",\n\t\t\t\tdescription: \"Saga operator console — workgraph + live dispatcher board\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/settings/vault\",\n\t\t\t\tlabel: \"Vault\",\n\t\t\t\tdescription: \"Service vault — connected services + agent grants (read-only)\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/projects\",\n\t\t\t\tlabel: \"Admin\",\n\t\t\t\tdescription: \"Project registry — scan, index, and manage projects\",\n\t\t\t\texact: false\n\t\t\t}\n\t\t]);\n\t\t$$renderer.push(`<a class=\"skip-link\" href=\"#main\">Skip to content</a> <div class=\"studio-shell svelte-12qhfyh\"><header class=\"studio-header svelte-12qhfyh\"><a href=\"/\" class=\"studio-logo svelte-12qhfyh\"><span class=\"logo-mark svelte-12qhfyh\">C</span> <span class=\"logo-text svelte-12qhfyh\">CLEO Studio</span></a> `);\n\t\tProjectSelector($$renderer, {\n\t\t\tprojects: data.projects,\n\t\t\tactiveProjectId: data.activeProjectId\n\t\t});\n\t\t$$renderer.push(`<!----> <nav class=\"studio-nav svelte-12qhfyh\" aria-label=\"Primary\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(navItems());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet item = each_array[$$index];\n\t\t\t$$renderer.push(`<a${attr(\"href\", item.href)}${attr_class(\"nav-link svelte-12qhfyh\", void 0, { \"active\": item.exact ? store_get($$store_subs ??= {}, \"$page\", page).url.pathname === item.href : store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(item.href) })}${attr(\"title\", item.description)}${attr(\"aria-current\", item.exact ? store_get($$store_subs ??= {}, \"$page\", page).url.pathname === item.href ? \"page\" : void 0 : store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(item.href) ? \"page\" : void 0)}>${escape_html(item.label)}</a>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></nav></header> <main id=\"main\" class=\"studio-main svelte-12qhfyh\" tabindex=\"-1\">`);\n\t\tchildren($$renderer);\n\t\t$$renderer.push(`<!----></main></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _layout as default };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_layout.svelte-rswfOTDe.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, d as unsubscribe_stores, l as store_get, n as attr_class, o as ensure_array_like, r as attr_style, u as stringify } from \"../../chunks/dev.js\";\nimport \"../../chunks/index-server.js\";\nimport { t as page } from \"../../chunks/stores.js\";\n//#region src/lib/components/ProjectSelector.svelte\nfunction ProjectSelector($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/**\n\t\t* ProjectSelector — header dropdown for switching the active CLEO project.\n\t\t*\n\t\t* Displays the current project name with a colored chip and chevron.\n\t\t* Opens a searchable, filterable dropdown panel. Switching POSTs to\n\t\t* /api/project/switch and reloads the page on success.\n\t\t*\n\t\t* @task T646\n\t\t*/\n\t\t/** Shape returned by listRegisteredProjects(). */\n\t\tlet { projects, activeProjectId } = $$props;\n\t\tlet isOpen = false;\n\t\tlet searchQuery = \"\";\n\t\tlet highlightedIndex = 0;\n\t\tconst TEST_PATH_RE = /\\/(tmp|test|fixture|scratch|sandbox)\\b/i;\n\t\tconst activeProject = derived(() => projects.find((p) => p.projectId === activeProjectId) ?? null);\n\t\t/**\n\t\t* Chip colour tokens, resolved via `getComputedStyle` from\n\t\t* `tokens.css`. Using tokens (not raw hex) keeps the hash-to-colour\n\t\t* projection stable under dark / light theme swaps without leaking\n\t\t* literals into the component source. `--chip-1..8` fall back to\n\t\t* semantic tokens for the common rainbow progression.\n\t\t*\n\t\t* Order mirrors the historical raw-hex table so the name → chip\n\t\t* hash stays deterministic across the T990 tokenisation pass.\n\t\t*/\n\t\tconst CHIP_COLOR_VARS = [\n\t\t\t\"var(--info)\",\n\t\t\t\"var(--success)\",\n\t\t\t\"var(--warning)\",\n\t\t\t\"var(--accent)\",\n\t\t\t\"var(--priority-critical)\",\n\t\t\t\"var(--edge-definition)\",\n\t\t\t\"var(--edge-structural)\",\n\t\t\t\"var(--edge-extends)\"\n\t\t];\n\t\tfunction chipColor(name) {\n\t\t\treturn CHIP_COLOR_VARS[(name.charCodeAt(0) || 0) % CHIP_COLOR_VARS.length] ?? \"var(--accent)\";\n\t\t}\n\t\tfunction chipLetter(name) {\n\t\t\treturn (name[0] ?? \"?\").toUpperCase();\n\t\t}\n\t\t/** Projects after search + test-project filter. */\n\t\tconst filteredProjects = derived(() => {\n\t\t\tlet list = projects;\n\t\t\tlist = list.filter((p) => !TEST_PATH_RE.test(p.projectPath));\n\t\t\tif (searchQuery.trim());\n\t\t\treturn list;\n\t\t});\n\t\tderived(() => filteredProjects()[highlightedIndex] ?? null);\n\t\t$$renderer.push(`<div class=\"project-selector svelte-t4k058\"><button type=\"button\"${attr_class(\"trigger svelte-t4k058\", void 0, { \"open\": isOpen })} aria-haspopup=\"listbox\"${attr(\"aria-expanded\", isOpen)}${attr(\"title\", activeProject() ? activeProject().projectPath : \"Select project\")}>`);\n\t\tif (activeProject()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"chip svelte-t4k058\"${attr_style(`background: ${stringify(chipColor(activeProject().name))}`)} aria-hidden=\"true\">${escape_html(chipLetter(activeProject().name))}</span> <span class=\"trigger-name svelte-t4k058\">${escape_html(activeProject().name)}</span>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<span class=\"chip placeholder svelte-t4k058\" aria-hidden=\"true\">?</span> <span class=\"trigger-name muted svelte-t4k058\">Select project</span>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--> <svg${attr_class(\"chevron svelte-t4k058\", void 0, { \"rotated\": isOpen })} width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden=\"true\"><path d=\"M2 3.5L5 6.5L8 3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg></button> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div>`);\n\t});\n}\n//#endregion\n//#region src/routes/+layout.svelte\nfunction _layout($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data, children } = $$props;\n\t\tconst consoleHref = derived(() => data.activeProjectId ? `/studio/${data.activeProjectId}` : \"/projects\");\n\t\tconst navItems = derived(() => [\n\t\t\t{\n\t\t\t\thref: \"/brain\",\n\t\t\t\tlabel: \"Brain\",\n\t\t\t\tdescription: \"5-substrate living canvas\",\n\t\t\t\texact: true\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/brain/overview\",\n\t\t\t\tlabel: \"Memory\",\n\t\t\t\tdescription: \"BRAIN dashboard (decisions, observations, quality)\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/code\",\n\t\t\t\tlabel: \"Code\",\n\t\t\t\tdescription: \"Code intelligence\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/tasks\",\n\t\t\t\tlabel: \"Tasks\",\n\t\t\t\tdescription: \"Task management\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/tasks/kanban\",\n\t\t\t\tlabel: \"Board\",\n\t\t\t\tdescription: \"Agent-lifecycle dispatcher board (read-only)\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: consoleHref(),\n\t\t\t\tlabel: \"Console\",\n\t\t\t\tdescription: \"Saga operator console — workgraph + live dispatcher board\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/settings/vault\",\n\t\t\t\tlabel: \"Vault\",\n\t\t\t\tdescription: \"Service vault — connected services + agent grants (read-only)\",\n\t\t\t\texact: false\n\t\t\t},\n\t\t\t{\n\t\t\t\thref: \"/projects\",\n\t\t\t\tlabel: \"Admin\",\n\t\t\t\tdescription: \"Project registry — scan, index, and manage projects\",\n\t\t\t\texact: false\n\t\t\t}\n\t\t]);\n\t\t$$renderer.push(`<a class=\"skip-link\" href=\"#main\">Skip to content</a> <div class=\"studio-shell svelte-12qhfyh\"><header class=\"studio-header svelte-12qhfyh\"><a href=\"/\" class=\"studio-logo svelte-12qhfyh\"><span class=\"logo-mark svelte-12qhfyh\">C</span> <span class=\"logo-text svelte-12qhfyh\">CLEO Studio</span></a> `);\n\t\tProjectSelector($$renderer, {\n\t\t\tprojects: data.projects,\n\t\t\tactiveProjectId: data.activeProjectId\n\t\t});\n\t\t$$renderer.push(`<!----> <nav class=\"studio-nav svelte-12qhfyh\" aria-label=\"Primary\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(navItems());\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet item = each_array[$$index];\n\t\t\t$$renderer.push(`<a${attr(\"href\", item.href)}${attr_class(\"nav-link svelte-12qhfyh\", void 0, { \"active\": item.exact ? store_get($$store_subs ??= {}, \"$page\", page).url.pathname === item.href : store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(item.href) })}${attr(\"title\", item.description)}${attr(\"aria-current\", item.exact ? store_get($$store_subs ??= {}, \"$page\", page).url.pathname === item.href ? \"page\" : void 0 : store_get($$store_subs ??= {}, \"$page\", page).url.pathname.startsWith(item.href) ? \"page\" : void 0)}>${escape_html(item.label)}</a>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></nav></header> <main id=\"main\" class=\"studio-main svelte-12qhfyh\" tabindex=\"-1\">`);\n\t\tchildren($$renderer);\n\t\t$$renderer.push(`<!----></main></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _layout as default };\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { s as store_get, x as head, b as attr_class, c as escape_html, a as attr, e as ensure_array_like, d as attr_style, u as unsubscribe_stores, g as derived, f as stringify } from './dev-BNpEUZI3.js';
2
2
  import 'node:module';
3
3
  import { x as TASK_STATUSES } from './paths-CV7S5-Zm.js';
4
- import { p as page } from './stores-ye7Cop_n.js';
5
- import './client-CnSSIJRB.js';
4
+ import { p as page } from './stores-ByevKXL9.js';
5
+ import './client-ym-URLFs.js';
6
6
  import { T as TaskSearchBox, F as FilterChipGroup, L as LabelsFilter, H as HierarchyTab, G as GraphTab, K as KanbanTab, E as EpicProgressCard, R as RecentActivityFeed, D as DetailDrawer } from './tasks2-Bf9VHrv-.js';
7
7
  import 'node:fs';
8
8
  import 'node:path';
@@ -23,7 +23,7 @@ import 'node:child_process';
23
23
  import 'node:crypto';
24
24
  import 'node:process';
25
25
  import 'node:async_hooks';
26
- import './internal-Cs1b0-2z.js';
26
+ import './internal-D3i_4gCl.js';
27
27
  import '@sveltejs/kit/internal';
28
28
  import './index-server-DocJvixA.js';
29
29
  import './chunk-DDP5xfzh.js';
@@ -529,4 +529,4 @@ function _page($$renderer, $$props) {
529
529
  }
530
530
 
531
531
  export { _page as default };
532
- //# sourceMappingURL=_page.svelte-94NcV7tl.js.map
532
+ //# sourceMappingURL=_page.svelte-BT1YF8j2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-94NcV7tl.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tasks/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, d as unsubscribe_stores, l as store_get, n as attr_class, o as ensure_array_like, r as attr_style, s as head, u as stringify } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { Dt as TASK_STATUSES } from \"../../../chunks/dist2.js\";\nimport { t as page } from \"../../../chunks/stores.js\";\nimport \"../../../chunks/navigation.js\";\nimport { a as KanbanTab, c as GraphTab, d as DetailDrawer, i as LabelsFilter, l as FilterChipGroup, n as TaskSearchBox, r as RecentActivityFeed, s as HierarchyTab, u as EpicProgressCard } from \"../../../chunks/tasks2.js\";\n//#region src/lib/stores/task-filters.svelte.ts\nvar DEFAULT_VIEW = \"hierarchy\";\nvar VALID_VIEWS = new Set([\n\t\"hierarchy\",\n\t\"graph\",\n\t\"kanban\"\n]);\nvar VALID_PRIORITIES = new Set([\n\t\"critical\",\n\t\"high\",\n\t\"medium\",\n\t\"low\"\n]);\nvar QUERY_DEBOUNCE_MS = 150;\nvar deferredWarningEmitted = false;\nfunction parseCsv(raw, validate) {\n\tif (!raw) return [];\n\tconst tokens = raw.split(\",\").map((t) => t.trim()).filter((t) => t.length > 0);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const t of tokens) if (validate(t) && !seen.has(t)) {\n\t\tout.push(t);\n\t\tseen.add(t);\n\t}\n\treturn out;\n}\n/** Type-guard for {@link TaskStatus}. */\nfunction isTaskStatus(v) {\n\treturn TASK_STATUSES.includes(v);\n}\n/** Type-guard for {@link TaskPriority}. */\nfunction isTaskPriority(v) {\n\treturn VALID_PRIORITIES.has(v);\n}\n/** Type-guard for {@link TaskView}. */\nfunction isTaskView(v) {\n\treturn VALID_VIEWS.has(v);\n}\n/** Pass-through validator for free-form label names (non-empty tokens). */\nfunction isNonEmptyLabel(v) {\n\treturn v.length > 0;\n}\n/**\n* Read a {@link TaskFilterState} from a {@link URL}.\n*\n* Honours the legacy `?deferred=1` alias for `?cancelled=1` and emits a\n* one-time `console.warn` the first time the alias is encountered.\n*\n* @param url - The URL to parse.\n* @returns A fresh {@link TaskFilterState}.\n*/\nfunction readFromUrl(url) {\n\tconst p = url.searchParams;\n\tconst cancelledFlag = p.get(\"cancelled\") === \"1\";\n\tconst deferredFlag = p.get(\"deferred\") === \"1\";\n\tif (deferredFlag && !deferredWarningEmitted) {\n\t\tdeferredWarningEmitted = true;\n\t\tconsole.warn(\"[task-filters] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked by T958.\");\n\t}\n\tconst viewRaw = p.get(\"view\");\n\tconst view = viewRaw && isTaskView(viewRaw) ? viewRaw : DEFAULT_VIEW;\n\treturn {\n\t\tquery: p.get(\"q\") ?? \"\",\n\t\tstatus: parseCsv(p.get(\"status\"), isTaskStatus),\n\t\tpriority: parseCsv(p.get(\"priority\"), isTaskPriority),\n\t\tlabels: parseCsv(p.get(\"labels\"), isNonEmptyLabel),\n\t\tepic: p.get(\"epic\"),\n\t\tselected: p.get(\"selected\"),\n\t\tcancelled: cancelledFlag || deferredFlag,\n\t\tview\n\t};\n}\n/**\n* Apply a {@link TaskFilterState} onto a fresh {@link URL} and return it.\n*\n* - Empty values, empty arrays, default view, and `cancelled:false` all\n* result in the corresponding param being deleted (minimal URL).\n* - CSV arrays are serialized in source order — callers should ensure\n* stable ordering if they want idempotent round-trips (setters do).\n*\n* @param base - The URL to clone and mutate (typically `window.location`).\n* @param state - The filter state to serialize.\n* @returns A new {@link URL} instance with only the relevant params set.\n*/\nfunction writeToUrl(base, state) {\n\tconst next = new URL(base.toString());\n\tconst p = next.searchParams;\n\tp.delete(\"deferred\");\n\tsetOrDelete(p, \"q\", state.query || null);\n\tsetOrDelete(p, \"status\", state.status.length ? state.status.join(\",\") : null);\n\tsetOrDelete(p, \"priority\", state.priority.length ? state.priority.join(\",\") : null);\n\tsetOrDelete(p, \"labels\", state.labels.length ? state.labels.join(\",\") : null);\n\tsetOrDelete(p, \"epic\", state.epic);\n\tsetOrDelete(p, \"selected\", state.selected);\n\tsetOrDelete(p, \"cancelled\", state.cancelled ? \"1\" : null);\n\tsetOrDelete(p, \"view\", state.view === DEFAULT_VIEW ? null : state.view);\n\treturn next;\n}\n/** Write `value` to `params[key]` if non-null/non-empty, otherwise delete. */\nfunction setOrDelete(params, key, value) {\n\tif (value === null || value === \"\") params.delete(key);\n\telse params.set(key, value);\n}\n/**\n* Create a Task Explorer filter store bound to a URL.\n*\n* The initial state is parsed from `url`. Subsequent mutations both update\n* the reactive state and write the new query string to `window.history` via\n* `replaceState`. On `popstate` (browser back/forward), state is re-read from\n* `window.location` so filters stay in sync with navigation.\n*\n* Server-side / test environments without `window` skip the browser-specific\n* hookup but remain fully reactive in memory.\n*\n* @param url - The initial URL whose query string seeds the state.\n* @returns A {@link TaskFilters} handle exposing reactive state plus setters.\n*\n* @example\n* ```ts\n* const filters = createTaskFilters($page.url);\n* filters.setQuery('pomodoro');\n* filters.toggleStatus('active');\n* // URL is now /tasks?q=pomodoro&status=active\n* ```\n*/\nfunction createTaskFilters(url) {\n\tconst state = readFromUrl(url);\n\tlet queryDebounceTimer = null;\n\tlet popstateHandler = null;\n\t/**\n\t* Write the current state to `window.history`. Called after every mutation\n\t* (debounced for `setQuery`).\n\t*/\n\tfunction syncUrl() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst next = writeToUrl(new URL(window.location.href), state);\n\t\tif (next.search !== window.location.search) window.history.replaceState(window.history.state, \"\", next.toString());\n\t}\n\t/** Schedule or coalesce a debounced `syncUrl` call for query updates. */\n\tfunction scheduleQuerySync() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tif (queryDebounceTimer !== null) clearTimeout(queryDebounceTimer);\n\t\tqueryDebounceTimer = setTimeout(() => {\n\t\t\tqueryDebounceTimer = null;\n\t\t\tsyncUrl();\n\t\t}, QUERY_DEBOUNCE_MS);\n\t}\n\t/** Re-read state from `window.location` (popstate handler). */\n\tfunction readFromWindow() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst fresh = readFromUrl(new URL(window.location.href));\n\t\tstate.query = fresh.query;\n\t\tstate.status = fresh.status;\n\t\tstate.priority = fresh.priority;\n\t\tstate.labels = fresh.labels;\n\t\tstate.epic = fresh.epic;\n\t\tstate.selected = fresh.selected;\n\t\tstate.cancelled = fresh.cancelled;\n\t\tstate.view = fresh.view;\n\t}\n\tif (typeof window !== \"undefined\") {\n\t\tpopstateHandler = readFromWindow;\n\t\twindow.addEventListener(\"popstate\", popstateHandler);\n\t}\n\t/** Toggle membership of `value` in `arr` (mutates in place; stable order). */\n\tfunction toggleIn(arr, value) {\n\t\tconst idx = arr.indexOf(value);\n\t\tif (idx === -1) return [...arr, value];\n\t\treturn [...arr.slice(0, idx), ...arr.slice(idx + 1)];\n\t}\n\treturn {\n\t\tget state() {\n\t\t\treturn state;\n\t\t},\n\t\tsetQuery(q) {\n\t\t\tstate.query = q;\n\t\t\tscheduleQuerySync();\n\t\t},\n\t\ttoggleStatus(s) {\n\t\t\tstate.status = toggleIn(state.status, s);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttogglePriority(p) {\n\t\t\tstate.priority = toggleIn(state.priority, p);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttoggleLabel(l) {\n\t\t\tstate.labels = toggleIn(state.labels, l);\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetEpic(id) {\n\t\t\tstate.epic = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetSelected(id) {\n\t\t\tstate.selected = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetCancelled(v) {\n\t\t\tstate.cancelled = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetView(v) {\n\t\t\tstate.view = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tclear() {\n\t\t\tstate.query = \"\";\n\t\t\tstate.status = [];\n\t\t\tstate.priority = [];\n\t\t\tstate.labels = [];\n\t\t\tstate.epic = null;\n\t\t\tstate.selected = null;\n\t\t\tstate.cancelled = false;\n\t\t\tstate.view = DEFAULT_VIEW;\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tsyncUrl();\n\t\t},\n\t\tdispose() {\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tif (popstateHandler !== null && typeof window !== \"undefined\") {\n\t\t\t\twindow.removeEventListener(\"popstate\", popstateHandler);\n\t\t\t\tpopstateHandler = null;\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/routes/tasks/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst stats = derived(() => data.stats);\n\t\tconst recentTasks = derived(() => data.recentTasks ?? []);\n\t\tconst epicProgress = derived(() => data.epicProgress ?? []);\n\t\tconst dashboardFilters = derived(() => data.filters ?? {\n\t\t\tshowCancelled: false,\n\t\t\tshowArchived: false\n\t\t});\n\t\t/**\n\t\t* Build a toggle URL that flips one dashboard filter flag while preserving\n\t\t* the other.\n\t\t*/\n\t\tfunction toggleUrl(flag) {\n\t\t\tconst next = new URL(store_get($$store_subs ??= {}, \"$page\", page).url);\n\t\t\tif (next.searchParams.get(flag) === \"1\") next.searchParams.delete(flag);\n\t\t\telse next.searchParams.set(flag, \"1\");\n\t\t\tif (flag === \"cancelled\") next.searchParams.delete(\"deferred\");\n\t\t\treturn next.pathname + (next.search ? next.search : \"\");\n\t\t}\n\t\tlet filters = createTaskFilters(new URL(store_get($$store_subs ??= {}, \"$page\", page).url));\n\t\tconst explorerTasks = derived(() => data.explorer?.tasks ?? []);\n\t\tconst explorerDeps = derived(() => data.explorer?.deps ?? []);\n\t\tconst explorerLabels = derived(() => data.explorer?.labels ?? []);\n\t\tconst explorerEpicProgressMap = derived(() => data.explorer?.epicProgress ?? {});\n\t\tconst selectedTask = derived(() => (() => {\n\t\t\tif (!filters) return null;\n\t\t\tconst id = filters.state.selected;\n\t\t\tif (!id) return null;\n\t\t\treturn explorerTasks().find((t) => t.id === id) ?? null;\n\t\t})());\n\t\tconst statusOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"pending\",\n\t\t\t\tlabel: \"Pending\",\n\t\t\t\ttint: \"var(--status-pending)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"active\",\n\t\t\t\tlabel: \"Active\",\n\t\t\t\ttint: \"var(--status-active)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"blocked\",\n\t\t\t\tlabel: \"Blocked\",\n\t\t\t\ttint: \"var(--status-blocked)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"done\",\n\t\t\t\tlabel: \"Done\",\n\t\t\t\ttint: \"var(--status-done)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"cancelled\",\n\t\t\t\tlabel: \"Cancelled\",\n\t\t\t\ttint: \"var(--status-cancelled)\"\n\t\t\t}\n\t\t];\n\t\tconst priorityOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"critical\",\n\t\t\t\tlabel: \"Critical\",\n\t\t\t\ttint: \"var(--priority-critical)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"high\",\n\t\t\t\tlabel: \"High\",\n\t\t\t\ttint: \"var(--priority-high)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"medium\",\n\t\t\t\tlabel: \"Medium\",\n\t\t\t\ttint: \"var(--priority-medium)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"low\",\n\t\t\t\tlabel: \"Low\",\n\t\t\t\ttint: \"var(--priority-low)\"\n\t\t\t}\n\t\t];\n\t\tconst labelOptions = derived(() => explorerLabels().map((label) => ({\n\t\t\tvalue: label,\n\t\t\tlabel\n\t\t})));\n\t\tfunction diffAndToggle(before, after, toggle) {\n\t\t\tconst beforeSet = new Set(before);\n\t\t\tconst afterSet = new Set(after);\n\t\t\tfor (const v of beforeSet) if (!afterSet.has(v)) toggle(v);\n\t\t\tfor (const v of afterSet) if (!beforeSet.has(v)) toggle(v);\n\t\t}\n\t\tlet searchRaw = \"\";\n\t\tlet searchLoading = false;\n\t\tfunction priorityClassLocal(p) {\n\t\t\tif (p === \"critical\") return \"priority-critical\";\n\t\t\tif (p === \"high\") return \"priority-high\";\n\t\t\tif (p === \"medium\") return \"priority-medium\";\n\t\t\treturn \"priority-low\";\n\t\t}\n\t\tlet liveConnected = false;\n\t\thead(\"1pluywh\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Tasks — CLEO Studio</title>`);\n\t\t\t});\n\t\t});\n\t\t$$renderer.push(`<div class=\"tasks-page svelte-1pluywh\"><div class=\"page-header svelte-1pluywh\"><div class=\"header-left svelte-1pluywh\"><h1 class=\"page-title svelte-1pluywh\">Tasks</h1> <nav class=\"tasks-nav svelte-1pluywh\"><a href=\"/tasks\" class=\"nav-tab active svelte-1pluywh\">Dashboard</a> <a href=\"/tasks/pipeline\" class=\"nav-tab svelte-1pluywh\">Pipeline</a> <a href=\"/tasks/sessions\" class=\"nav-tab svelte-1pluywh\">Sessions</a></nav></div> <div${attr_class(\"live-indicator svelte-1pluywh\", void 0, { \"connected\": liveConnected })}><span class=\"live-dot svelte-1pluywh\"></span> <span class=\"live-label svelte-1pluywh\">${escape_html(\"Connecting...\")}</span> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></div> <div class=\"search-section svelte-1pluywh\"><div${attr_class(\"search-box svelte-1pluywh\", void 0, { \"loading\": searchLoading })}><span class=\"search-icon svelte-1pluywh\" aria-hidden=\"true\">⌕</span> <input class=\"search-input svelte-1pluywh\" type=\"text\" placeholder=\"Search by ID (T663, t663, 663) or title...\"${attr(\"value\", searchRaw)} autocomplete=\"off\" spellcheck=\"false\"/> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (filters) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"command-surface svelte-1pluywh\"><section class=\"task-explorer svelte-1pluywh\" aria-label=\"Task Explorer\"><header class=\"explorer-header svelte-1pluywh\"><div class=\"tabs svelte-1pluywh\" role=\"tablist\" aria-label=\"Task Explorer views\"><button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"hierarchy\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"hierarchy\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">1</span> Hierarchy</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"graph\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"graph\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">2</span> Graph</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"kanban\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"kanban\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">3</span> Kanban</button></div> <div class=\"toolbar svelte-1pluywh\">`);\n\t\t\tTaskSearchBox($$renderer, {\n\t\t\t\tvalue: filters.state.query,\n\t\t\t\tonChange: (q) => filters?.setQuery(q),\n\t\t\t\tplaceholder: \"Filter explorer by id or title...\",\n\t\t\t\tregisterSlashShortcut: true\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Status\",\n\t\t\t\toptions: statusOptions,\n\t\t\t\tselected: filters.state.status,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.status, next, (v) => filters?.toggleStatus(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Priority\",\n\t\t\t\toptions: priorityOptions,\n\t\t\t\tselected: filters.state.priority,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.priority, next, (v) => filters?.togglePriority(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tif (labelOptions().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tLabelsFilter($$renderer, {\n\t\t\t\t\toptions: labelOptions(),\n\t\t\t\t\tselected: filters.state.labels,\n\t\t\t\t\tonChange: (next) => {\n\t\t\t\t\t\tif (!filters) return;\n\t\t\t\t\t\tdiffAndToggle(filters.state.labels, next, (v) => filters?.toggleLabel(v));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></header> <div class=\"explorer-body svelte-1pluywh\">`);\n\t\t\tif (filters.state.view === \"hierarchy\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tHierarchyTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tepicProgress: explorerEpicProgressMap(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t} else if (filters.state.view === \"graph\") {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\tGraphTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters,\n\t\t\t\t\tlabels: explorerLabels(),\n\t\t\t\t\tactiveProjectId: store_get($$store_subs ??= {}, \"$page\", page).data.activeProjectId ?? null\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\tKanbanTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div></section> <aside class=\"side-rail svelte-1pluywh\" aria-label=\"Dashboard summary\">`);\n\t\t\tif (stats()) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<section class=\"rail-card svelte-1pluywh\" aria-label=\"Task counts\"><header class=\"rail-head svelte-1pluywh\"><span class=\"rail-eyebrow svelte-1pluywh\">Overview</span> <span class=\"rail-total svelte-1pluywh\">${escape_html(stats().total)} <span class=\"rail-total-lbl svelte-1pluywh\">tasks</span></span></header> <div class=\"stat-grid svelte-1pluywh\"><span class=\"stat-card status-active-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().active)}</span> <span class=\"stat-lbl svelte-1pluywh\">Active</span></span> <span class=\"stat-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().pending)}</span> <span class=\"stat-lbl svelte-1pluywh\">Pending</span></span> <span class=\"stat-card status-done-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().done)}</span> <span class=\"stat-lbl svelte-1pluywh\">Done</span></span> <span class=\"stat-card status-cancelled-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().cancelled)}</span> <span class=\"stat-lbl svelte-1pluywh\">Cancelled</span></span> <span class=\"stat-card muted svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().archived)}</span> <span class=\"stat-lbl svelte-1pluywh\">Archived</span></span></div> <div class=\"priority-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Priority</div> <div class=\"priority-bars svelte-1pluywh\"><!--[-->`);\n\t\t\t\tconst each_array_1 = ensure_array_like([\n\t\t\t\t\t[\"critical\", stats().critical],\n\t\t\t\t\t[\"high\", stats().high],\n\t\t\t\t\t[\"medium\", stats().medium],\n\t\t\t\t\t[\"low\", stats().low]\n\t\t\t\t]);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet [label, count] = each_array_1[$$index_1];\n\t\t\t\t\tconst total = stats().critical + stats().high + stats().medium + stats().low;\n\t\t\t\t\tconst pct = total > 0 ? Math.round(Number(count) / total * 100) : 0;\n\t\t\t\t\t$$renderer.push(`<div class=\"priority-row svelte-1pluywh\"><span${attr_class(`priority-label ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}>${escape_html(label)}</span> <div class=\"priority-bar-track svelte-1pluywh\"><div${attr_class(`priority-bar-fill ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}${attr_style(`width:${stringify(pct)}%`)}></div></div> <span class=\"priority-count svelte-1pluywh\">${escape_html(count)}</span></div>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></div></div> <div class=\"type-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Type</div> <div class=\"type-chips svelte-1pluywh\"><span class=\"type-chip svelte-1pluywh\">Epics <strong class=\"svelte-1pluywh\">${escape_html(stats().epics)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Tasks <strong class=\"svelte-1pluywh\">${escape_html(stats().tasks)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Subtasks <strong class=\"svelte-1pluywh\">${escape_html(stats().subtasks)}</strong></span></div></div> <div class=\"filter-bar svelte-1pluywh\" aria-label=\"Dashboard filters\"><a${attr(\"href\", toggleUrl(\"cancelled\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showCancelled })} data-sveltekit-noscroll=\"\" title=\"Include cancelled epics in the Epic Progress panel\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showCancelled ? \"✓\" : \" \")}</span> Cancelled epics</a> <a${attr(\"href\", toggleUrl(\"archived\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showArchived })} data-sveltekit-noscroll=\"\" title=\"Include archived tasks in Recent Activity\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showArchived ? \"✓\" : \" \")}</span> Archived</a></div></section>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<div class=\"no-db svelte-1pluywh\">tasks.db not found — start CLEO in the project directory</div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (epicProgress().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tEpicProgressCard($$renderer, {\n\t\t\t\t\tepics: epicProgress(),\n\t\t\t\t\tincludingDeferred: dashboardFilters().showCancelled\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (recentTasks().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tRecentActivityFeed($$renderer, { tasks: recentTasks() });\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></aside></div> `);\n\t\t\tDetailDrawer($$renderer, {\n\t\t\t\ttask: selectedTask(),\n\t\t\t\tonClose: () => filters?.setSelected(null)\n\t\t\t});\n\t\t\t$$renderer.push(`<!---->`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_page.svelte-BT1YF8j2.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tasks/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, d as unsubscribe_stores, l as store_get, n as attr_class, o as ensure_array_like, r as attr_style, s as head, u as stringify } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { Dt as TASK_STATUSES } from \"../../../chunks/dist2.js\";\nimport { t as page } from \"../../../chunks/stores.js\";\nimport \"../../../chunks/navigation.js\";\nimport { a as KanbanTab, c as GraphTab, d as DetailDrawer, i as LabelsFilter, l as FilterChipGroup, n as TaskSearchBox, r as RecentActivityFeed, s as HierarchyTab, u as EpicProgressCard } from \"../../../chunks/tasks2.js\";\n//#region src/lib/stores/task-filters.svelte.ts\nvar DEFAULT_VIEW = \"hierarchy\";\nvar VALID_VIEWS = new Set([\n\t\"hierarchy\",\n\t\"graph\",\n\t\"kanban\"\n]);\nvar VALID_PRIORITIES = new Set([\n\t\"critical\",\n\t\"high\",\n\t\"medium\",\n\t\"low\"\n]);\nvar QUERY_DEBOUNCE_MS = 150;\nvar deferredWarningEmitted = false;\nfunction parseCsv(raw, validate) {\n\tif (!raw) return [];\n\tconst tokens = raw.split(\",\").map((t) => t.trim()).filter((t) => t.length > 0);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const t of tokens) if (validate(t) && !seen.has(t)) {\n\t\tout.push(t);\n\t\tseen.add(t);\n\t}\n\treturn out;\n}\n/** Type-guard for {@link TaskStatus}. */\nfunction isTaskStatus(v) {\n\treturn TASK_STATUSES.includes(v);\n}\n/** Type-guard for {@link TaskPriority}. */\nfunction isTaskPriority(v) {\n\treturn VALID_PRIORITIES.has(v);\n}\n/** Type-guard for {@link TaskView}. */\nfunction isTaskView(v) {\n\treturn VALID_VIEWS.has(v);\n}\n/** Pass-through validator for free-form label names (non-empty tokens). */\nfunction isNonEmptyLabel(v) {\n\treturn v.length > 0;\n}\n/**\n* Read a {@link TaskFilterState} from a {@link URL}.\n*\n* Honours the legacy `?deferred=1` alias for `?cancelled=1` and emits a\n* one-time `console.warn` the first time the alias is encountered.\n*\n* @param url - The URL to parse.\n* @returns A fresh {@link TaskFilterState}.\n*/\nfunction readFromUrl(url) {\n\tconst p = url.searchParams;\n\tconst cancelledFlag = p.get(\"cancelled\") === \"1\";\n\tconst deferredFlag = p.get(\"deferred\") === \"1\";\n\tif (deferredFlag && !deferredWarningEmitted) {\n\t\tdeferredWarningEmitted = true;\n\t\tconsole.warn(\"[task-filters] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked by T958.\");\n\t}\n\tconst viewRaw = p.get(\"view\");\n\tconst view = viewRaw && isTaskView(viewRaw) ? viewRaw : DEFAULT_VIEW;\n\treturn {\n\t\tquery: p.get(\"q\") ?? \"\",\n\t\tstatus: parseCsv(p.get(\"status\"), isTaskStatus),\n\t\tpriority: parseCsv(p.get(\"priority\"), isTaskPriority),\n\t\tlabels: parseCsv(p.get(\"labels\"), isNonEmptyLabel),\n\t\tepic: p.get(\"epic\"),\n\t\tselected: p.get(\"selected\"),\n\t\tcancelled: cancelledFlag || deferredFlag,\n\t\tview\n\t};\n}\n/**\n* Apply a {@link TaskFilterState} onto a fresh {@link URL} and return it.\n*\n* - Empty values, empty arrays, default view, and `cancelled:false` all\n* result in the corresponding param being deleted (minimal URL).\n* - CSV arrays are serialized in source order — callers should ensure\n* stable ordering if they want idempotent round-trips (setters do).\n*\n* @param base - The URL to clone and mutate (typically `window.location`).\n* @param state - The filter state to serialize.\n* @returns A new {@link URL} instance with only the relevant params set.\n*/\nfunction writeToUrl(base, state) {\n\tconst next = new URL(base.toString());\n\tconst p = next.searchParams;\n\tp.delete(\"deferred\");\n\tsetOrDelete(p, \"q\", state.query || null);\n\tsetOrDelete(p, \"status\", state.status.length ? state.status.join(\",\") : null);\n\tsetOrDelete(p, \"priority\", state.priority.length ? state.priority.join(\",\") : null);\n\tsetOrDelete(p, \"labels\", state.labels.length ? state.labels.join(\",\") : null);\n\tsetOrDelete(p, \"epic\", state.epic);\n\tsetOrDelete(p, \"selected\", state.selected);\n\tsetOrDelete(p, \"cancelled\", state.cancelled ? \"1\" : null);\n\tsetOrDelete(p, \"view\", state.view === DEFAULT_VIEW ? null : state.view);\n\treturn next;\n}\n/** Write `value` to `params[key]` if non-null/non-empty, otherwise delete. */\nfunction setOrDelete(params, key, value) {\n\tif (value === null || value === \"\") params.delete(key);\n\telse params.set(key, value);\n}\n/**\n* Create a Task Explorer filter store bound to a URL.\n*\n* The initial state is parsed from `url`. Subsequent mutations both update\n* the reactive state and write the new query string to `window.history` via\n* `replaceState`. On `popstate` (browser back/forward), state is re-read from\n* `window.location` so filters stay in sync with navigation.\n*\n* Server-side / test environments without `window` skip the browser-specific\n* hookup but remain fully reactive in memory.\n*\n* @param url - The initial URL whose query string seeds the state.\n* @returns A {@link TaskFilters} handle exposing reactive state plus setters.\n*\n* @example\n* ```ts\n* const filters = createTaskFilters($page.url);\n* filters.setQuery('pomodoro');\n* filters.toggleStatus('active');\n* // URL is now /tasks?q=pomodoro&status=active\n* ```\n*/\nfunction createTaskFilters(url) {\n\tconst state = readFromUrl(url);\n\tlet queryDebounceTimer = null;\n\tlet popstateHandler = null;\n\t/**\n\t* Write the current state to `window.history`. Called after every mutation\n\t* (debounced for `setQuery`).\n\t*/\n\tfunction syncUrl() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst next = writeToUrl(new URL(window.location.href), state);\n\t\tif (next.search !== window.location.search) window.history.replaceState(window.history.state, \"\", next.toString());\n\t}\n\t/** Schedule or coalesce a debounced `syncUrl` call for query updates. */\n\tfunction scheduleQuerySync() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tif (queryDebounceTimer !== null) clearTimeout(queryDebounceTimer);\n\t\tqueryDebounceTimer = setTimeout(() => {\n\t\t\tqueryDebounceTimer = null;\n\t\t\tsyncUrl();\n\t\t}, QUERY_DEBOUNCE_MS);\n\t}\n\t/** Re-read state from `window.location` (popstate handler). */\n\tfunction readFromWindow() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst fresh = readFromUrl(new URL(window.location.href));\n\t\tstate.query = fresh.query;\n\t\tstate.status = fresh.status;\n\t\tstate.priority = fresh.priority;\n\t\tstate.labels = fresh.labels;\n\t\tstate.epic = fresh.epic;\n\t\tstate.selected = fresh.selected;\n\t\tstate.cancelled = fresh.cancelled;\n\t\tstate.view = fresh.view;\n\t}\n\tif (typeof window !== \"undefined\") {\n\t\tpopstateHandler = readFromWindow;\n\t\twindow.addEventListener(\"popstate\", popstateHandler);\n\t}\n\t/** Toggle membership of `value` in `arr` (mutates in place; stable order). */\n\tfunction toggleIn(arr, value) {\n\t\tconst idx = arr.indexOf(value);\n\t\tif (idx === -1) return [...arr, value];\n\t\treturn [...arr.slice(0, idx), ...arr.slice(idx + 1)];\n\t}\n\treturn {\n\t\tget state() {\n\t\t\treturn state;\n\t\t},\n\t\tsetQuery(q) {\n\t\t\tstate.query = q;\n\t\t\tscheduleQuerySync();\n\t\t},\n\t\ttoggleStatus(s) {\n\t\t\tstate.status = toggleIn(state.status, s);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttogglePriority(p) {\n\t\t\tstate.priority = toggleIn(state.priority, p);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttoggleLabel(l) {\n\t\t\tstate.labels = toggleIn(state.labels, l);\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetEpic(id) {\n\t\t\tstate.epic = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetSelected(id) {\n\t\t\tstate.selected = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetCancelled(v) {\n\t\t\tstate.cancelled = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetView(v) {\n\t\t\tstate.view = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tclear() {\n\t\t\tstate.query = \"\";\n\t\t\tstate.status = [];\n\t\t\tstate.priority = [];\n\t\t\tstate.labels = [];\n\t\t\tstate.epic = null;\n\t\t\tstate.selected = null;\n\t\t\tstate.cancelled = false;\n\t\t\tstate.view = DEFAULT_VIEW;\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tsyncUrl();\n\t\t},\n\t\tdispose() {\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tif (popstateHandler !== null && typeof window !== \"undefined\") {\n\t\t\t\twindow.removeEventListener(\"popstate\", popstateHandler);\n\t\t\t\tpopstateHandler = null;\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/routes/tasks/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst stats = derived(() => data.stats);\n\t\tconst recentTasks = derived(() => data.recentTasks ?? []);\n\t\tconst epicProgress = derived(() => data.epicProgress ?? []);\n\t\tconst dashboardFilters = derived(() => data.filters ?? {\n\t\t\tshowCancelled: false,\n\t\t\tshowArchived: false\n\t\t});\n\t\t/**\n\t\t* Build a toggle URL that flips one dashboard filter flag while preserving\n\t\t* the other.\n\t\t*/\n\t\tfunction toggleUrl(flag) {\n\t\t\tconst next = new URL(store_get($$store_subs ??= {}, \"$page\", page).url);\n\t\t\tif (next.searchParams.get(flag) === \"1\") next.searchParams.delete(flag);\n\t\t\telse next.searchParams.set(flag, \"1\");\n\t\t\tif (flag === \"cancelled\") next.searchParams.delete(\"deferred\");\n\t\t\treturn next.pathname + (next.search ? next.search : \"\");\n\t\t}\n\t\tlet filters = createTaskFilters(new URL(store_get($$store_subs ??= {}, \"$page\", page).url));\n\t\tconst explorerTasks = derived(() => data.explorer?.tasks ?? []);\n\t\tconst explorerDeps = derived(() => data.explorer?.deps ?? []);\n\t\tconst explorerLabels = derived(() => data.explorer?.labels ?? []);\n\t\tconst explorerEpicProgressMap = derived(() => data.explorer?.epicProgress ?? {});\n\t\tconst selectedTask = derived(() => (() => {\n\t\t\tif (!filters) return null;\n\t\t\tconst id = filters.state.selected;\n\t\t\tif (!id) return null;\n\t\t\treturn explorerTasks().find((t) => t.id === id) ?? null;\n\t\t})());\n\t\tconst statusOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"pending\",\n\t\t\t\tlabel: \"Pending\",\n\t\t\t\ttint: \"var(--status-pending)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"active\",\n\t\t\t\tlabel: \"Active\",\n\t\t\t\ttint: \"var(--status-active)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"blocked\",\n\t\t\t\tlabel: \"Blocked\",\n\t\t\t\ttint: \"var(--status-blocked)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"done\",\n\t\t\t\tlabel: \"Done\",\n\t\t\t\ttint: \"var(--status-done)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"cancelled\",\n\t\t\t\tlabel: \"Cancelled\",\n\t\t\t\ttint: \"var(--status-cancelled)\"\n\t\t\t}\n\t\t];\n\t\tconst priorityOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"critical\",\n\t\t\t\tlabel: \"Critical\",\n\t\t\t\ttint: \"var(--priority-critical)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"high\",\n\t\t\t\tlabel: \"High\",\n\t\t\t\ttint: \"var(--priority-high)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"medium\",\n\t\t\t\tlabel: \"Medium\",\n\t\t\t\ttint: \"var(--priority-medium)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"low\",\n\t\t\t\tlabel: \"Low\",\n\t\t\t\ttint: \"var(--priority-low)\"\n\t\t\t}\n\t\t];\n\t\tconst labelOptions = derived(() => explorerLabels().map((label) => ({\n\t\t\tvalue: label,\n\t\t\tlabel\n\t\t})));\n\t\tfunction diffAndToggle(before, after, toggle) {\n\t\t\tconst beforeSet = new Set(before);\n\t\t\tconst afterSet = new Set(after);\n\t\t\tfor (const v of beforeSet) if (!afterSet.has(v)) toggle(v);\n\t\t\tfor (const v of afterSet) if (!beforeSet.has(v)) toggle(v);\n\t\t}\n\t\tlet searchRaw = \"\";\n\t\tlet searchLoading = false;\n\t\tfunction priorityClassLocal(p) {\n\t\t\tif (p === \"critical\") return \"priority-critical\";\n\t\t\tif (p === \"high\") return \"priority-high\";\n\t\t\tif (p === \"medium\") return \"priority-medium\";\n\t\t\treturn \"priority-low\";\n\t\t}\n\t\tlet liveConnected = false;\n\t\thead(\"1pluywh\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Tasks — CLEO Studio</title>`);\n\t\t\t});\n\t\t});\n\t\t$$renderer.push(`<div class=\"tasks-page svelte-1pluywh\"><div class=\"page-header svelte-1pluywh\"><div class=\"header-left svelte-1pluywh\"><h1 class=\"page-title svelte-1pluywh\">Tasks</h1> <nav class=\"tasks-nav svelte-1pluywh\"><a href=\"/tasks\" class=\"nav-tab active svelte-1pluywh\">Dashboard</a> <a href=\"/tasks/pipeline\" class=\"nav-tab svelte-1pluywh\">Pipeline</a> <a href=\"/tasks/sessions\" class=\"nav-tab svelte-1pluywh\">Sessions</a></nav></div> <div${attr_class(\"live-indicator svelte-1pluywh\", void 0, { \"connected\": liveConnected })}><span class=\"live-dot svelte-1pluywh\"></span> <span class=\"live-label svelte-1pluywh\">${escape_html(\"Connecting...\")}</span> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></div> <div class=\"search-section svelte-1pluywh\"><div${attr_class(\"search-box svelte-1pluywh\", void 0, { \"loading\": searchLoading })}><span class=\"search-icon svelte-1pluywh\" aria-hidden=\"true\">⌕</span> <input class=\"search-input svelte-1pluywh\" type=\"text\" placeholder=\"Search by ID (T663, t663, 663) or title...\"${attr(\"value\", searchRaw)} autocomplete=\"off\" spellcheck=\"false\"/> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (filters) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"command-surface svelte-1pluywh\"><section class=\"task-explorer svelte-1pluywh\" aria-label=\"Task Explorer\"><header class=\"explorer-header svelte-1pluywh\"><div class=\"tabs svelte-1pluywh\" role=\"tablist\" aria-label=\"Task Explorer views\"><button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"hierarchy\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"hierarchy\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">1</span> Hierarchy</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"graph\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"graph\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">2</span> Graph</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"kanban\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"kanban\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">3</span> Kanban</button></div> <div class=\"toolbar svelte-1pluywh\">`);\n\t\t\tTaskSearchBox($$renderer, {\n\t\t\t\tvalue: filters.state.query,\n\t\t\t\tonChange: (q) => filters?.setQuery(q),\n\t\t\t\tplaceholder: \"Filter explorer by id or title...\",\n\t\t\t\tregisterSlashShortcut: true\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Status\",\n\t\t\t\toptions: statusOptions,\n\t\t\t\tselected: filters.state.status,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.status, next, (v) => filters?.toggleStatus(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Priority\",\n\t\t\t\toptions: priorityOptions,\n\t\t\t\tselected: filters.state.priority,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.priority, next, (v) => filters?.togglePriority(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tif (labelOptions().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tLabelsFilter($$renderer, {\n\t\t\t\t\toptions: labelOptions(),\n\t\t\t\t\tselected: filters.state.labels,\n\t\t\t\t\tonChange: (next) => {\n\t\t\t\t\t\tif (!filters) return;\n\t\t\t\t\t\tdiffAndToggle(filters.state.labels, next, (v) => filters?.toggleLabel(v));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></header> <div class=\"explorer-body svelte-1pluywh\">`);\n\t\t\tif (filters.state.view === \"hierarchy\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tHierarchyTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tepicProgress: explorerEpicProgressMap(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t} else if (filters.state.view === \"graph\") {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\tGraphTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters,\n\t\t\t\t\tlabels: explorerLabels(),\n\t\t\t\t\tactiveProjectId: store_get($$store_subs ??= {}, \"$page\", page).data.activeProjectId ?? null\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\tKanbanTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div></section> <aside class=\"side-rail svelte-1pluywh\" aria-label=\"Dashboard summary\">`);\n\t\t\tif (stats()) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<section class=\"rail-card svelte-1pluywh\" aria-label=\"Task counts\"><header class=\"rail-head svelte-1pluywh\"><span class=\"rail-eyebrow svelte-1pluywh\">Overview</span> <span class=\"rail-total svelte-1pluywh\">${escape_html(stats().total)} <span class=\"rail-total-lbl svelte-1pluywh\">tasks</span></span></header> <div class=\"stat-grid svelte-1pluywh\"><span class=\"stat-card status-active-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().active)}</span> <span class=\"stat-lbl svelte-1pluywh\">Active</span></span> <span class=\"stat-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().pending)}</span> <span class=\"stat-lbl svelte-1pluywh\">Pending</span></span> <span class=\"stat-card status-done-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().done)}</span> <span class=\"stat-lbl svelte-1pluywh\">Done</span></span> <span class=\"stat-card status-cancelled-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().cancelled)}</span> <span class=\"stat-lbl svelte-1pluywh\">Cancelled</span></span> <span class=\"stat-card muted svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().archived)}</span> <span class=\"stat-lbl svelte-1pluywh\">Archived</span></span></div> <div class=\"priority-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Priority</div> <div class=\"priority-bars svelte-1pluywh\"><!--[-->`);\n\t\t\t\tconst each_array_1 = ensure_array_like([\n\t\t\t\t\t[\"critical\", stats().critical],\n\t\t\t\t\t[\"high\", stats().high],\n\t\t\t\t\t[\"medium\", stats().medium],\n\t\t\t\t\t[\"low\", stats().low]\n\t\t\t\t]);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet [label, count] = each_array_1[$$index_1];\n\t\t\t\t\tconst total = stats().critical + stats().high + stats().medium + stats().low;\n\t\t\t\t\tconst pct = total > 0 ? Math.round(Number(count) / total * 100) : 0;\n\t\t\t\t\t$$renderer.push(`<div class=\"priority-row svelte-1pluywh\"><span${attr_class(`priority-label ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}>${escape_html(label)}</span> <div class=\"priority-bar-track svelte-1pluywh\"><div${attr_class(`priority-bar-fill ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}${attr_style(`width:${stringify(pct)}%`)}></div></div> <span class=\"priority-count svelte-1pluywh\">${escape_html(count)}</span></div>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></div></div> <div class=\"type-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Type</div> <div class=\"type-chips svelte-1pluywh\"><span class=\"type-chip svelte-1pluywh\">Epics <strong class=\"svelte-1pluywh\">${escape_html(stats().epics)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Tasks <strong class=\"svelte-1pluywh\">${escape_html(stats().tasks)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Subtasks <strong class=\"svelte-1pluywh\">${escape_html(stats().subtasks)}</strong></span></div></div> <div class=\"filter-bar svelte-1pluywh\" aria-label=\"Dashboard filters\"><a${attr(\"href\", toggleUrl(\"cancelled\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showCancelled })} data-sveltekit-noscroll=\"\" title=\"Include cancelled epics in the Epic Progress panel\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showCancelled ? \"✓\" : \" \")}</span> Cancelled epics</a> <a${attr(\"href\", toggleUrl(\"archived\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showArchived })} data-sveltekit-noscroll=\"\" title=\"Include archived tasks in Recent Activity\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showArchived ? \"✓\" : \" \")}</span> Archived</a></div></section>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<div class=\"no-db svelte-1pluywh\">tasks.db not found — start CLEO in the project directory</div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (epicProgress().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tEpicProgressCard($$renderer, {\n\t\t\t\t\tepics: epicProgress(),\n\t\t\t\t\tincludingDeferred: dashboardFilters().showCancelled\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (recentTasks().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tRecentActivityFeed($$renderer, { tasks: recentTasks() });\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></aside></div> `);\n\t\t\tDetailDrawer($$renderer, {\n\t\t\t\ttask: selectedTask(),\n\t\t\t\tonClose: () => filters?.setSelected(null)\n\t\t\t});\n\t\t\t$$renderer.push(`<!---->`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;AACA,IAAI,YAAY,GAAG,WAAW;AAC9B,IAAI,WAAW,GAAG,IAAI,GAAG,CAAC;AAC1B,CAAC,WAAW;AACZ,CAAC,OAAO;AACR,CAAC;AACD,CAAC,CAAC;AACF,IAAI,gBAAgB,GAAG,IAAI,GAAG,CAAC;AAC/B,CAAC,UAAU;AACX,CAAC,MAAM;AACP,CAAC,QAAQ;AACT,CAAC;AACD,CAAC,CAAC;AACF,IAAI,iBAAiB,GAAG,GAAG;AAC3B,IAAI,sBAAsB,GAAG,KAAK;AAClC,SAAS,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE;AACjC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE;AACpB,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/E,CAAC,MAAM,GAAG,GAAG,EAAE;AACf,CAAC,MAAM,IAAI,mBAAmB,IAAI,GAAG,EAAE;AACvC,CAAC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAC1D,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,CAAC;AACD,CAAC,OAAO,GAAG;AACX;AACA;AACA,SAAS,YAAY,CAAC,CAAC,EAAE;AACzB,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjC;AACA;AACA,SAAS,cAAc,CAAC,CAAC,EAAE;AAC3B,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B;AACA;AACA,SAAS,UAAU,CAAC,CAAC,EAAE;AACvB,CAAC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B;AACA;AACA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY;AAC3B,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG;AACjD,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG;AAC/C,CAAC,IAAI,YAAY,IAAI,CAAC,sBAAsB,EAAE;AAC9C,EAAE,sBAAsB,GAAG,IAAI;AAC/B,EAAE,OAAO,CAAC,IAAI,CAAC,4FAA4F,CAAC;AAC5G,CAAC;AACD,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,CAAC,MAAM,IAAI,GAAG,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,YAAY;AACrE,CAAC,OAAO;AACR,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;AACzB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;AACjD,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;AACvD,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;AACpD,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AACrB,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;AAC7B,EAAE,SAAS,EAAE,aAAa,IAAI,YAAY;AAC1C,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY;AAC5B,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;AACrB,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;AACzC,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9E,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACpF,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAC9E,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;AACnC,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC3C,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AAC1D,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxE,CAAC,OAAO,IAAI;AACZ;AACA;AACA,SAAS,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AACzC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AACvD,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE;AAChC,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC;AAC/B,CAAC,IAAI,kBAAkB,GAAG,IAAI;AAC9B,CAAC,IAAI,eAAe,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA,CAAC,SAAS,OAAO,GAAG;AACpB,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACrC,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;AAC/D,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpH,CAAC;AACD;AACA,CAAC,SAAS,iBAAiB,GAAG;AAC9B,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACrC,EAAE,IAAI,kBAAkB,KAAK,IAAI,EAAE,YAAY,CAAC,kBAAkB,CAAC;AACnE,EAAE,kBAAkB,GAAG,UAAU,CAAC,MAAM;AACxC,GAAG,kBAAkB,GAAG,IAAI;AAC5B,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC,EAAE,iBAAiB,CAAC;AACvB,CAAC;AACD;AACA,CAAC,SAAS,cAAc,GAAG;AAC3B,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACrC,EAAE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC1D,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AAC3B,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC7B,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACjC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC7B,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACzB,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACjC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AACnC,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACzB,CAAC;AACD,CAAC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACpC,EAAE,eAAe,GAAG,cAAc;AAClC,EAAE,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC;AACtD,CAAC;AACD;AACA,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;AAC/B,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC;AAChC,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC;AACxC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC;AACD,CAAC,OAAO;AACR,EAAE,IAAI,KAAK,GAAG;AACd,GAAG,OAAO,KAAK;AACf,EAAE,CAAC;AACH,EAAE,QAAQ,CAAC,CAAC,EAAE;AACd,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AAClB,GAAG,iBAAiB,EAAE;AACtB,EAAE,CAAC;AACH,EAAE,YAAY,CAAC,CAAC,EAAE;AAClB,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,cAAc,CAAC,CAAC,EAAE;AACpB,GAAG,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,WAAW,CAAC,CAAC,EAAE;AACjB,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,OAAO,CAAC,EAAE,EAAE;AACd,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE;AAClB,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,WAAW,CAAC,EAAE,EAAE;AAClB,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE;AACtB,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,YAAY,CAAC,CAAC,EAAE;AAClB,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC;AACtB,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,OAAO,CAAC,CAAC,EAAE;AACb,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;AACjB,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,KAAK,GAAG;AACV,GAAG,KAAK,CAAC,KAAK,GAAG,EAAE;AACnB,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE;AACpB,GAAG,KAAK,CAAC,QAAQ,GAAG,EAAE;AACtB,GAAG,KAAK,CAAC,MAAM,GAAG,EAAE;AACpB,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI;AACpB,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI;AACxB,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK;AAC1B,GAAG,KAAK,CAAC,IAAI,GAAG,YAAY;AAC5B,GAAG,IAAI,kBAAkB,KAAK,IAAI,EAAE;AACpC,IAAI,YAAY,CAAC,kBAAkB,CAAC;AACpC,IAAI,kBAAkB,GAAG,IAAI;AAC7B,GAAG;AACH,GAAG,OAAO,EAAE;AACZ,EAAE,CAAC;AACH,EAAE,OAAO,GAAG;AACZ,GAAG,IAAI,kBAAkB,KAAK,IAAI,EAAE;AACpC,IAAI,YAAY,CAAC,kBAAkB,CAAC;AACpC,IAAI,kBAAkB,GAAG,IAAI;AAC7B,GAAG;AACH,GAAG,IAAI,eAAe,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClE,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC;AAC3D,IAAI,eAAe,GAAG,IAAI;AAC1B,GAAG;AACH,EAAE;AACF,EAAE;AACF;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,YAAY;AAClB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AACxB,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC;AACzC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;AAC3D,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AAC7D,EAAE,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI;AACzD,GAAG,aAAa,EAAE,KAAK;AACvB,GAAG,YAAY,EAAE;AACjB,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE;AAC3B,GAAG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AAC1E,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1E,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AACxC,GAAG,IAAI,IAAI,KAAK,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;AACjE,GAAG,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AAC1D,EAAE;AACF,EAAE,IAAI,OAAO,GAAG,iBAAiB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7F,EAAE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;AACjE,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;AAC/D,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AACnE,EAAE,MAAM,uBAAuB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,YAAY,IAAI,EAAE,CAAC;AAClF,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM;AAC5C,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI;AAC5B,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ;AACpC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,IAAI;AACvB,GAAG,OAAO,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI;AAC1D,EAAE,CAAC,GAAG,CAAC;AACP,EAAE,MAAM,aAAa,GAAG;AACxB,GAAG;AACH,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,WAAW;AACtB,IAAI,KAAK,EAAE,WAAW;AACtB,IAAI,IAAI,EAAE;AACV;AACA,GAAG;AACH,EAAE,MAAM,eAAe,GAAG;AAC1B,GAAG;AACH,IAAI,KAAK,EAAE,UAAU;AACrB,IAAI,KAAK,EAAE,UAAU;AACrB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,IAAI,EAAE;AACV,IAAI;AACJ,GAAG;AACH,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,IAAI,EAAE;AACV;AACA,GAAG;AACH,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AACtE,GAAG,KAAK,EAAE,KAAK;AACf,GAAG;AACH,GAAG,CAAC,CAAC,CAAC;AACN,EAAE,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;AAChD,GAAG,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AACpC,GAAG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;AAClC,GAAG,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7D,GAAG,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7D,EAAE;AACF,EAAE,IAAI,SAAS,GAAG,EAAE;AACpB,EAAE,IAAI,aAAa,GAAG,KAAK;AAC3B,EAAE,SAAS,kBAAkB,CAAC,CAAC,EAAE;AACjC,GAAG,IAAI,CAAC,KAAK,UAAU,EAAE,OAAO,mBAAmB;AACnD,GAAG,IAAI,CAAC,KAAK,MAAM,EAAE,OAAO,eAAe;AAC3C,GAAG,IAAI,CAAC,KAAK,QAAQ,EAAE,OAAO,iBAAiB;AAC/C,GAAG,OAAO,cAAc;AACxB,EAAE;AACF,EAAE,IAAI,aAAa,GAAG,KAAK;AAC3B,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC;AACzD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,+aAA+a,EAAE,UAAU,CAAC,+BAA+B,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,uFAAuF,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxpB,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oEAAoE,EAAE,UAAU,CAAC,2BAA2B,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,qLAAqL,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,yCAAyC,CAAC,CAAC;AACla,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC;AACpC,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9B,EAAE,IAAI,OAAO,EAAE;AACf,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,0QAA0Q,EAAE,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,0GAA0G,EAAE,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,sGAAsG,EAAE,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,4HAA4H,CAAC,CAAC;AAC1kC,GAAG,aAAa,CAAC,UAAU,EAAE;AAC7B,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;AAC9B,IAAI,QAAQ,EAAE,CAAC,CAAC,KAAK,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzC,IAAI,WAAW,EAAE,mCAAmC;AACpD,IAAI,qBAAqB,EAAE;AAC3B,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9B,GAAG,eAAe,CAAC,UAAU,EAAE;AAC/B,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,OAAO,EAAE,aAAa;AAC1B,IAAI,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;AAClC,IAAI,QAAQ,EAAE,CAAC,IAAI,KAAK;AACxB,KAAK,IAAI,CAAC,OAAO,EAAE;AACnB,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/E,IAAI;AACJ,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9B,GAAG,eAAe,CAAC,UAAU,EAAE;AAC/B,IAAI,KAAK,EAAE,UAAU;AACrB,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;AACpC,IAAI,QAAQ,EAAE,CAAC,IAAI,KAAK;AACxB,KAAK,IAAI,CAAC,OAAO,EAAE;AACnB,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;AACnF,IAAI;AACJ,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9B,GAAG,IAAI,YAAY,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,YAAY,CAAC,UAAU,EAAE;AAC7B,KAAK,OAAO,EAAE,YAAY,EAAE;AAC5B,KAAK,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,MAKzB,CAAC,CAAC;AACN,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,kEAAkE,CAAC,CAAC;AACxF,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,YAAY,CAAC,UAAU,EAAE;AAC7B,KAAK,KAAK,EAAE,aAAa,EAAE;AAC3B,KAAK,IAAI,EAAE,YAAY,EAAE;AACzB,KAAK,YAAY,EAAE,uBAAuB,EAAE;AAC5C,KAAK;AACL,KAAK,CAAC;AACN,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,QAAQ,CAAC,UAAU,EAAE;AACzB,KAAK,KAAK,EAAE,aAAa,EAAE;AAC3B,KAAK,IAAI,EAAE,YAAY,EAAE;AACzB,KAAK,OAAO;AACZ,KAAK,MAAM,EAAE,cAAc,EAAE;AAC7B,KAAK,eAAe,EAAE,SAAS,CAAC,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,IAAI;AAC5F,KAAK,CAAC;AACN,GAAG,CAAC,MAAM;AACV,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,KAAK,KAAK,EAAE,aAAa,EAAE;AAC3B,KAAK,IAAI,EAAE,YAAY,EAAE;AACzB,KAAK;AACL,KAAK,CAAC;AACN,GAAG;AACH,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,gGAAgG,CAAC,CAAC;AACtH,GAAG,IAAI,KAAK,EAAE,EAAE;AAChB,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,8MAA8M,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,gNAAgN,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,gJAAgJ,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,kKAAkK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,oKAAoK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,yJAAyJ,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,iOAAiO,CAAC,CAAC;AAC57C,IAAI,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAC3C,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC;AACnC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;AAC3B,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC;AAC/B,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG;AACxB,KAAK,CAAC;AACN,IAAI,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE;AAC/F,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC;AACjD,KAAK,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,QAAQ,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG;AACjF,KAAK,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;AACxE,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,8CAA8C,EAAE,UAAU,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,2DAA2D,EAAE,UAAU,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0DAA0D,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;AACje,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,oOAAoO,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,6FAA6F,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,gGAAgG,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,qGAAqG,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,+HAA+H,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,8BAA8B,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,sHAAsH,EAAE,WAAW,CAAC,gBAAgB,EAAE,CAAC,YAAY,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,oCAAoC,CAAC,CAAC;AACvzC,GAAG,CAAC,MAAM;AACV,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,gGAAgG,CAAC,CAAC;AACvH,GAAG;AACH,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/B,GAAG,IAAI,YAAY,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,gBAAgB,CAAC,UAAU,EAAE;AACjC,KAAK,KAAK,EAAE,YAAY,EAAE;AAC1B,KAAK,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;AAC3C,KAAK,CAAC;AACN,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/B,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;AAC5D,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC7C,GAAG,YAAY,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,EAAE,YAAY,EAAE;AACxB,IAAI,OAAO,EAAE,MAAM,OAAO,EAAE,WAAW,CAAC,IAAI;AAC5C,IAAI,CAAC;AACL,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAC7B,EAAE,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACnC,EAAE,IAAI,YAAY,EAAE,kBAAkB,CAAC,YAAY,CAAC;AACpD,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { x as head, c as escape_html, b as attr_class, e as ensure_array_like, a as attr, d as attr_style, g as derived } from './dev-BNpEUZI3.js';
2
- import { g as goto } from './client-CnSSIJRB.js';
2
+ import { g as goto } from './client-ym-URLFs.js';
3
3
  import { a as Breadcrumb, C as Card, T as Tabs } from './Tabs-DzG6Bn9a.js';
4
4
  import { c as TabPanel } from './ui-DR8zOSpC.js';
5
5
  import { d as describeEdgeKind, E as EDGE_STYLE } from './no-face-up-DcejJLy-.js';
6
6
  import { C as CosmosRenderer, m as mapNexusRelationToEdgeKind } from './nexus-adapter-9EL_VlGI.js';
7
- import './internal-Cs1b0-2z.js';
7
+ import './internal-D3i_4gCl.js';
8
8
  import 'node:module';
9
9
  import '@sveltejs/kit/internal';
10
10
  import './index-server-DocJvixA.js';
@@ -231,4 +231,4 @@ function _page($$renderer, $$props) {
231
231
  }
232
232
 
233
233
  export { _page as default };
234
- //# sourceMappingURL=_page.svelte-Bts_IhOg.js.map
234
+ //# sourceMappingURL=_page.svelte-C9twD2l1.js.map