@mindflight/mindbrain-personal-studio 0.6.4 → 0.6.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 (61) hide show
  1. package/README.md +2 -2
  2. package/build/client/_app/immutable/chunks/BsHs7Gcd.js +1 -0
  3. package/build/client/_app/immutable/chunks/BsHs7Gcd.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BsHs7Gcd.js.gz +0 -0
  5. package/build/client/_app/immutable/entry/{app.XgS1PoV0.js → app.CpAvcJQF.js} +2 -2
  6. package/build/client/_app/immutable/entry/app.CpAvcJQF.js.br +0 -0
  7. package/build/client/_app/immutable/entry/app.CpAvcJQF.js.gz +0 -0
  8. package/build/client/_app/immutable/entry/start.CI2IWrEW.js +1 -0
  9. package/build/client/_app/immutable/entry/start.CI2IWrEW.js.br +2 -0
  10. package/build/client/_app/immutable/entry/start.CI2IWrEW.js.gz +0 -0
  11. package/build/client/_app/immutable/nodes/{1.Cs3BmvHO.js → 1.D6NCzfyp.js} +1 -1
  12. package/build/client/_app/immutable/nodes/1.D6NCzfyp.js.br +1 -0
  13. package/build/client/_app/immutable/nodes/1.D6NCzfyp.js.gz +0 -0
  14. package/build/client/_app/immutable/nodes/2.EDmnjbqo.js +9 -0
  15. package/build/client/_app/immutable/nodes/2.EDmnjbqo.js.br +0 -0
  16. package/build/client/_app/immutable/nodes/2.EDmnjbqo.js.gz +0 -0
  17. package/build/client/_app/version.json +1 -1
  18. package/build/client/_app/version.json.br +0 -0
  19. package/build/client/_app/version.json.gz +0 -0
  20. package/build/handler.js +4 -4
  21. package/build/index.js +4 -4
  22. package/build/server/chunks/chunks/{graphRepository.js-D2DARfVY.js → graphRepository.js-CmIA6rqA.js} +4 -1
  23. package/build/server/chunks/chunks/graphRepository.js-CmIA6rqA.js.map +1 -0
  24. package/build/server/chunks/chunks/{internal.js-BnebQ91H.js → internal.js-Bx4qge33.js} +2 -2
  25. package/build/server/chunks/chunks/{internal.js-BnebQ91H.js.map → internal.js-Bx4qge33.js.map} +1 -1
  26. package/build/server/chunks/entries/endpoints/api/graph/{_server.ts.js-Bxo7qHVz.js → _server.ts.js-BDrhYCoq.js} +2 -2
  27. package/build/server/chunks/entries/endpoints/api/graph/{_server.ts.js-Bxo7qHVz.js.map → _server.ts.js-BDrhYCoq.js.map} +1 -1
  28. package/build/server/chunks/entries/endpoints/api/graph/count/{_server.ts.js-BajaLnqp.js → _server.ts.js-BeCjTntz.js} +2 -2
  29. package/build/server/chunks/entries/endpoints/api/graph/count/{_server.ts.js-BajaLnqp.js.map → _server.ts.js-BeCjTntz.js.map} +1 -1
  30. package/build/server/chunks/entries/endpoints/api/graph/gap-rules/_server.ts.js-DduzA_uh.js +68 -0
  31. package/build/server/chunks/entries/endpoints/api/graph/gap-rules/_server.ts.js-DduzA_uh.js.map +1 -0
  32. package/build/server/chunks/entries/endpoints/api/graph/ontologies/{_server.ts.js-BFq2mbbX.js → _server.ts.js-K5EkSYpR.js} +2 -2
  33. package/build/server/chunks/entries/endpoints/api/graph/ontologies/{_server.ts.js-BFq2mbbX.js.map → _server.ts.js-K5EkSYpR.js.map} +1 -1
  34. package/build/server/chunks/entries/endpoints/api/graph/schema-registry/{_server.ts.js-CAsXxBRq.js → _server.ts.js-B5OTti3s.js} +2 -2
  35. package/build/server/chunks/entries/endpoints/api/graph/schema-registry/{_server.ts.js-CAsXxBRq.js.map → _server.ts.js-B5OTti3s.js.map} +1 -1
  36. package/build/server/chunks/{handler-B8M0DnFi.js → handler-Cc3Mp_Ob.js} +3 -3
  37. package/build/server/chunks/{handler-B8M0DnFi.js.map → handler-Cc3Mp_Ob.js.map} +1 -1
  38. package/build/server/chunks/{index.js-qz9YZN7m.js → index.js-BRvQVgSe.js} +2 -2
  39. package/build/server/chunks/{index.js-qz9YZN7m.js.map → index.js-BRvQVgSe.js.map} +1 -1
  40. package/build/server/chunks/{manifest.js-BxEwHoCX.js → manifest.js-Bv1A6wIB.js} +15 -8
  41. package/build/server/chunks/manifest.js-Bv1A6wIB.js.map +1 -0
  42. package/build/server/chunks/nodes/{1.js-D3KAPgsF.js → 1.js-C8oWVl8C.js} +2 -2
  43. package/build/server/chunks/nodes/{1.js-D3KAPgsF.js.map → 1.js-C8oWVl8C.js.map} +1 -1
  44. package/build/server/chunks/nodes/{2.js-D9-B_qyX.js → 2.js-D2JlHjgb.js} +2 -2
  45. package/build/server/chunks/nodes/{2.js-D9-B_qyX.js.map → 2.js-D2JlHjgb.js.map} +1 -1
  46. package/package.json +1 -1
  47. package/build/client/_app/immutable/chunks/BjfgiHck.js +0 -1
  48. package/build/client/_app/immutable/chunks/BjfgiHck.js.br +0 -0
  49. package/build/client/_app/immutable/chunks/BjfgiHck.js.gz +0 -0
  50. package/build/client/_app/immutable/entry/app.XgS1PoV0.js.br +0 -0
  51. package/build/client/_app/immutable/entry/app.XgS1PoV0.js.gz +0 -0
  52. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js +0 -1
  53. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.br +0 -2
  54. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.br +0 -3
  56. package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.gz +0 -0
  57. package/build/client/_app/immutable/nodes/2.D0pSa9ko.js +0 -9
  58. package/build/client/_app/immutable/nodes/2.D0pSa9ko.js.br +0 -0
  59. package/build/client/_app/immutable/nodes/2.D0pSa9ko.js.gz +0 -0
  60. package/build/server/chunks/chunks/graphRepository.js-D2DARfVY.js.map +0 -1
  61. package/build/server/chunks/manifest.js-BxEwHoCX.js.map +0 -1
@@ -1 +1 @@
1
- {"version":"1783070983244"}
1
+ {"version":"1783071801451"}
Binary file
Binary file
package/build/handler.js CHANGED
@@ -2,9 +2,9 @@ import './shims.js';
2
2
  import 'node:fs';
3
3
  import 'node:path';
4
4
  import 'node:process';
5
- export { h as handler } from './server/chunks/handler-B8M0DnFi.js';
6
- import './server/chunks/index.js-qz9YZN7m.js';
7
- import './server/chunks/manifest.js-BxEwHoCX.js';
5
+ export { h as handler } from './server/chunks/handler-Cc3Mp_Ob.js';
6
+ import './server/chunks/index.js-BRvQVgSe.js';
7
+ import './server/chunks/manifest.js-Bv1A6wIB.js';
8
8
  import './env.js';
9
9
  import 'node:buffer';
10
10
  import 'node:crypto';
@@ -22,5 +22,5 @@ import './server/chunks/chunks/exports.js-DFR3riS9.js';
22
22
  import './server/chunks/chunks/renderer.js-DsOhU1UZ.js';
23
23
  import './server/chunks/chunks/root.js-DCnlE3XY.js';
24
24
  import './server/chunks/chunks/shared-server.js-DaWdgxVh.js';
25
- import './server/chunks/chunks/internal.js-BnebQ91H.js';
25
+ import './server/chunks/chunks/internal.js-Bx4qge33.js';
26
26
  //# sourceMappingURL=handler.js.map
package/build/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import http from 'node:http';
2
2
  import fs__default from 'node:fs';
3
3
  import process from 'node:process';
4
- import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-B8M0DnFi.js';
4
+ import { p as polka, h as handler, f as format_listening_address } from './server/chunks/handler-Cc3Mp_Ob.js';
5
5
  import { env, timeout_env } from './env.js';
6
6
  import { rm } from 'node:fs/promises';
7
7
  import './shims.js';
@@ -14,15 +14,15 @@ import 'node:stream';
14
14
  import './server/chunks/chunks/shared.js-DuDDTJVi.js';
15
15
  import './server/chunks/chunks/utils.js-DGYJFmnf.js';
16
16
  import './server/chunks/chunks/render-context.js-CTu5Wkzp.js';
17
- import './server/chunks/index.js-qz9YZN7m.js';
17
+ import './server/chunks/index.js-BRvQVgSe.js';
18
18
  import './server/chunks/chunks/false.js-CRHihH2U.js';
19
19
  import './server/chunks/chunks/environment.js-Bf8x1V_n.js';
20
20
  import './server/chunks/chunks/exports.js-DFR3riS9.js';
21
21
  import './server/chunks/chunks/renderer.js-DsOhU1UZ.js';
22
22
  import './server/chunks/chunks/root.js-DCnlE3XY.js';
23
23
  import './server/chunks/chunks/shared-server.js-DaWdgxVh.js';
24
- import './server/chunks/chunks/internal.js-BnebQ91H.js';
25
- import './server/chunks/manifest.js-BxEwHoCX.js';
24
+ import './server/chunks/chunks/internal.js-Bx4qge33.js';
25
+ import './server/chunks/manifest.js-Bv1A6wIB.js';
26
26
  import 'node:url';
27
27
 
28
28
  const path = env('SOCKET_PATH', false);
@@ -137,6 +137,9 @@ class SQLiteGraphRepository {
137
137
  label: r.label
138
138
  }));
139
139
  }
140
+ async queryRows(sql) {
141
+ return queryJsonRows(this.path, sql);
142
+ }
140
143
  async listOntologyRows(workspace) {
141
144
  const rows = await queryJsonRows(
142
145
  this.path,
@@ -277,4 +280,4 @@ class SQLiteGraphRepository {
277
280
  }
278
281
 
279
282
  export { sanitizeTopKParam as a, sanitizeWorkspaceParam as b, sqlitePath as c, getGraphRepository as g, sanitizeOntologyParam as s };
280
- //# sourceMappingURL=graphRepository.js-D2DARfVY.js.map
283
+ //# sourceMappingURL=graphRepository.js-CmIA6rqA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphRepository.js-CmIA6rqA.js","sources":["../../../../.svelte-kit/output/server/chunks/graphRepository.js"],"sourcesContent":["import { execFile } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { resolve } from \"node:path\";\nimport { promisify } from \"node:util\";\nimport { b as private_env } from \"./shared-server.js\";\nconst ONTOLOGY_TOKEN_RE = /^[a-z0-9_.:-]+$/i;\nfunction sanitizeOntologyParam(raw) {\n if (raw == null || raw === \"\" || raw === \"all\") return \"all\";\n if (raw === \"_none\") return \"_none\";\n if (ONTOLOGY_TOKEN_RE.test(raw)) return raw;\n return \"all\";\n}\nconst GRAPH_TYPE_PREFIX = \"type:\";\nfunction graphEntityTypeFromOntology(ontology) {\n const t = ontology.trim();\n if (!t.toLowerCase().startsWith(GRAPH_TYPE_PREFIX)) return null;\n const rest = t.slice(GRAPH_TYPE_PREFIX.length).trim();\n if (rest === \"\" || rest.includes(\":\")) return null;\n if (!/^[A-Za-z][A-Za-z0-9_]*$/.test(rest)) return null;\n return rest;\n}\nconst execFileAsync = promisify(execFile);\nconst TOP_K_MAX = 500;\nfunction sanitizeWorkspaceParam(raw) {\n const s = raw?.trim();\n if (!s) return null;\n if (/^[a-z0-9_.-]+$/i.test(s)) return s;\n return null;\n}\nfunction sanitizeTopKParam(raw) {\n if (raw === null || raw === \"\") return 30;\n if (raw === \"none\" || raw === \"0\") return null;\n const n = Number.parseInt(raw, 10);\n if (!Number.isFinite(n) || n < 1) return 30;\n return Math.min(Math.floor(n), TOP_K_MAX);\n}\nfunction expandHome(path) {\n if (path === \"~\") return homedir();\n if (path.startsWith(\"~/\")) return resolve(homedir(), path.slice(2));\n return path;\n}\nfunction candidateSqlitePaths() {\n return [\n private_env.GHOSTCRAB_PERSO_SQLITE_PATH,\n private_env.MCP_GHOSTCRAB_SQLITE_PATH,\n \"~/.ghostcrab/databases/ghostcrab.sqlite\",\n \"~/data/ghostcrab.sqlite\",\n \"~/.ghostcrab/ghostcrab.sqlite\",\n \"~/Library/Application Support/GhostCrab/ghostcrab.sqlite\",\n \"data/ghostcrab.sqlite\"\n ].map((p) => p?.trim()).filter((p) => Boolean(p)).map((p) => resolve(expandHome(p)));\n}\nfunction sqlitePath() {\n const configured = private_env.GHOSTCRAB_SQLITE_PATH?.trim();\n if (configured && configured !== \"auto\") return resolve(expandHome(configured));\n const candidates = candidateSqlitePaths();\n return candidates.find((p) => existsSync(p)) ?? candidates[candidates.length - 1];\n}\nlet repository = null;\nfunction getGraphRepository() {\n const path = sqlitePath();\n if (!repository || repository.path !== path) {\n repository?.close();\n repository = new SQLiteGraphRepository(path);\n }\n return repository;\n}\nfunction parseJsonObject(raw) {\n if (!raw) return {};\n try {\n const value = JSON.parse(raw);\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n } catch {\n }\n return {};\n}\nfunction placeholders(values) {\n return values.map((value) => sqlString(String(value))).join(\", \");\n}\nfunction sqlString(value) {\n return `'${value.replaceAll(\"'\", \"''\")}'`;\n}\nfunction sqlNullableEquals(column, value) {\n return value == null ? \"1=1\" : `${column} = ${sqlString(value)}`;\n}\nasync function queryJsonRows(dbPath, sql) {\n const { stdout } = await execFileAsync(\"sqlite3\", [\"-readonly\", \"-json\", dbPath, sql], {\n maxBuffer: 64 * 1024 * 1024\n });\n const trimmed = stdout.trim();\n if (!trimmed) return [];\n const parsed = JSON.parse(trimmed);\n return Array.isArray(parsed) ? parsed : [];\n}\nclass SQLiteGraphRepository {\n constructor(path) {\n this.path = path;\n }\n path;\n close() {\n return;\n }\n async listWorkspaces() {\n const rows = await queryJsonRows(\n this.path,\n `\n\t\t\t\tWITH entity_counts AS (\n\t\t\t\t\tSELECT workspace_id, COUNT(*) AS entity_count\n\t\t\t\t\tFROM graph_entity\n\t\t\t\t\tWHERE deprecated_at IS NULL\n\t\t\t\t\tGROUP BY workspace_id\n\t\t\t\t)\n\t\t\t\tSELECT\n\t\t\t\t\tCOALESCE(w.workspace_id, w.id, e.workspace_id) AS id,\n\t\t\t\t\tCOALESCE(e.entity_count, 0) AS entityCount,\n\t\t\t\t\tw.label AS label\n\t\t\t\tFROM workspaces w\n\t\t\t\tLEFT JOIN entity_counts e\n\t\t\t\t\tON e.workspace_id = COALESCE(w.workspace_id, w.id)\n\t\t\t\tUNION\n\t\t\t\tSELECT e.workspace_id AS id, e.entity_count AS entityCount, NULL AS label\n\t\t\t\tFROM entity_counts e\n\t\t\t\tWHERE NOT EXISTS (\n\t\t\t\t\tSELECT 1 FROM workspaces w\n\t\t\t\t\tWHERE COALESCE(w.workspace_id, w.id) = e.workspace_id\n\t\t\t\t)\n\t\t\t\tORDER BY entityCount DESC, id\n\t\t\t\t`\n );\n return rows.map((r) => ({\n id: r.id,\n entityCount: Number(r.entityCount ?? 0),\n label: r.label\n }));\n }\n async queryRows(sql) {\n return queryJsonRows(this.path, sql);\n }\n async listOntologyRows(workspace) {\n const rows = await queryJsonRows(\n this.path,\n `\n\t\t\t\tSELECT ('type:' || entity_type) AS id, COUNT(*) AS nodeCount\n\t\t\t\tFROM graph_entity\n\t\t\t\tWHERE deprecated_at IS NULL\n\t\t\t\t\tAND ${sqlNullableEquals(\"workspace_id\", workspace)}\n\t\t\t\tGROUP BY entity_type\n\t\t\t\tORDER BY nodeCount DESC, entity_type\n\t\t\t\t`\n );\n return rows.map((r) => ({ id: r.id, nodeCount: Number(r.nodeCount ?? 0) }));\n }\n async fetchGraph(args) {\n const entityType = graphEntityTypeFromOntology(args.ontology);\n const entityRows = await queryJsonRows(\n this.path,\n `\n\t\t\t\tSELECT\n\t\t\t\t\tCAST(e.entity_id AS TEXT) AS id,\n\t\t\t\t\te.name,\n\t\t\t\t\te.entity_type,\n\t\t\t\t\te.workspace_id,\n\t\t\t\t\te.metadata_json,\n\t\t\t\t\tNULL AS facet_json\n\t\t\t\tFROM graph_entity e\n\t\t\t\tWHERE e.deprecated_at IS NULL\n\t\t\t\t\tAND ${sqlNullableEquals(\"e.workspace_id\", args.workspace)}\n\t\t\t\t\tAND ${sqlNullableEquals(\"e.entity_type\", entityType)}\n\t\t\t\tORDER BY e.entity_type, e.name, e.entity_id\n\t\t\t\t`\n );\n const nodes = entityRows.map((r) => {\n const metadata = parseJsonObject(r.metadata_json);\n const facetJson = parseJsonObject(r.facet_json);\n return {\n id: String(r.id),\n label: r.name,\n node_type: r.entity_type,\n schema_id: r.entity_type,\n facets: {\n ...metadata,\n ...facetJson,\n workspace_id: r.workspace_id,\n record_id: String(facetJson.record_id ?? metadata.record_id ?? r.name),\n entity_type: r.entity_type\n }\n };\n });\n const edgeRows = await this.fetchEdgeRows(args);\n const liveNodeIds = new Set(nodes.map((n) => n.id));\n const edges = edgeRows.filter((e) => liveNodeIds.has(String(e.source)) && liveNodeIds.has(String(e.target))).map((e) => ({\n id: String(e.id),\n source: String(e.source),\n target: String(e.target),\n label: e.label,\n weight: e.weight == null ? null : Number(e.weight)\n }));\n return { nodes, edges, sourceUsed: \"graph\" };\n }\n async countGraph(args) {\n const entityType = graphEntityTypeFromOntology(args.ontology);\n const [nodeRow = { nodeCount: 0 }] = await queryJsonRows(\n this.path,\n `\n\t\t\t\tSELECT COUNT(*) AS nodeCount\n\t\t\t\tFROM graph_entity\n\t\t\t\tWHERE deprecated_at IS NULL\n\t\t\t\t\tAND ${sqlNullableEquals(\"workspace_id\", args.workspace)}\n\t\t\t\t\tAND ${sqlNullableEquals(\"entity_type\", entityType)}\n\t\t\t\t`\n );\n const edgeRows = await this.fetchEdgeRows(args);\n const topEdgeLabels = await this.topEdgeLabels(args);\n return {\n nodeCount: Number(nodeRow.nodeCount ?? 0),\n edgeCount: edgeRows.length,\n edgeCountCapped: false,\n topEdgeLabels,\n sourceUsed: \"graph\"\n };\n }\n async fetchEdgeRows(args) {\n const entityType = graphEntityTypeFromOntology(args.ontology);\n const labelFilter = args.edgeLabelAllowlist?.length ? `AND r.relation_type IN (${placeholders(args.edgeLabelAllowlist)})` : \"\";\n return queryJsonRows(\n this.path,\n `\n\t\t\t\tWITH ent AS (\n\t\t\t\t\tSELECT entity_id\n\t\t\t\t\tFROM graph_entity\n\t\t\t\t\tWHERE deprecated_at IS NULL\n\t\t\t\t\t\tAND ${sqlNullableEquals(\"workspace_id\", args.workspace)}\n\t\t\t\t\t\tAND ${sqlNullableEquals(\"entity_type\", entityType)}\n\t\t\t\t)\n\t\t\t\tSELECT id, source, target, label, weight\n\t\t\t\tFROM (\n\t\t\t\t\tSELECT\n\t\t\t\t\t\tCAST(r.relation_id AS TEXT) AS id,\n\t\t\t\t\t\tCAST(r.source_id AS TEXT) AS source,\n\t\t\t\t\t\tCAST(r.target_id AS TEXT) AS target,\n\t\t\t\t\t\tr.relation_type AS label,\n\t\t\t\t\t\tr.confidence AS weight,\n\t\t\t\t\t\tROW_NUMBER() OVER (\n\t\t\t\t\t\t\tPARTITION BY r.source_id\n\t\t\t\t\t\t\tORDER BY r.confidence DESC, r.relation_id\n\t\t\t\t\t\t) AS rn\n\t\t\t\t\tFROM graph_relation r\n\t\t\t\t\tINNER JOIN ent s ON s.entity_id = r.source_id\n\t\t\t\t\tINNER JOIN ent t ON t.entity_id = r.target_id\n\t\t\t\t\tWHERE r.deprecated_at IS NULL\n\t\t\t\t\t\tAND ${sqlNullableEquals(\"r.workspace_id\", args.workspace)}\n\t\t\t\t\t\t${labelFilter}\n\t\t\t\t)\n\t\t\t\t${args.topKEdgesPerNode == null ? \"\" : `WHERE rn <= ${args.topKEdgesPerNode}`}\n\t\t\t\tORDER BY source, target, id\n\t\t\t\t`\n );\n }\n async topEdgeLabels(args) {\n const labelFilter = args.edgeLabelAllowlist?.length ? `AND relation_type IN (${placeholders(args.edgeLabelAllowlist)})` : \"\";\n const rows = await queryJsonRows(\n this.path,\n `\n\t\t\t\tSELECT relation_type AS label, COUNT(*) AS count\n\t\t\t\tFROM graph_relation\n\t\t\t\tWHERE deprecated_at IS NULL\n\t\t\t\t\tAND ${sqlNullableEquals(\"workspace_id\", args.workspace)}\n\t\t\t\t\t${labelFilter}\n\t\t\t\tGROUP BY relation_type\n\t\t\t\tORDER BY count DESC, relation_type\n\t\t\t\tLIMIT 10\n\t\t\t\t`\n );\n return rows.map((r) => ({ label: r.label, count: Number(r.count ?? 0) }));\n }\n}\nexport {\n sanitizeTopKParam as a,\n sanitizeWorkspaceParam as b,\n sqlitePath as c,\n getGraphRepository as g,\n sanitizeOntologyParam as s\n};\n"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ const options = {
94
94
  <div class="error">
95
95
  <span class="status">` + status + '</span>\n <div class="message">\n <h1>' + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
96
96
  },
97
- version_hash: "can1hb"
97
+ version_hash: "1q0sx9z"
98
98
  };
99
99
  async function get_hooks() {
100
100
  let handle;
@@ -116,4 +116,4 @@ async function get_hooks() {
116
116
  }
117
117
 
118
118
  export { get_hooks as g, options as o, read_implementation as r, set_read_implementation as s };
119
- //# sourceMappingURL=internal.js-BnebQ91H.js.map
119
+ //# sourceMappingURL=internal.js-Bx4qge33.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js-BnebQ91H.js","sources":["../../../../.svelte-kit/output/server/chunks/internal.js"],"sourcesContent":["import { r as root } from \"./root.js\";\nimport \"./environment.js\";\nimport \"./shared-server.js\";\nlet read_implementation = null;\nfunction set_read_implementation(fn) {\n read_implementation = fn;\n}\nfunction set_manifest(_) {\n}\nconst options = {\n app_template_contains_nonce: false,\n async: false,\n csp: { \"mode\": \"auto\", \"directives\": { \"upgrade-insecure-requests\": false, \"block-all-mixed-content\": false }, \"reportOnly\": { \"upgrade-insecure-requests\": false, \"block-all-mixed-content\": false } },\n csrf_check_origin: true,\n csrf_trusted_origins: [],\n embedded: false,\n env_public_prefix: \"PUBLIC_\",\n env_private_prefix: \"\",\n hash_routing: false,\n hooks: null,\n // added lazily, via `get_hooks`\n preload_strategy: \"modulepreload\",\n root,\n service_worker: false,\n service_worker_options: void 0,\n server_error_boundaries: false,\n templates: {\n app: ({ head, body, assets, nonce, env }) => '<!doctype html>\\n<html lang=\"en\">\\n\t<head>\\n\t\t<meta charset=\"utf-8\" />\\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\\n\t\t<meta name=\"text-scale\" content=\"scale\" />\\n\t\t' + head + '\\n\t</head>\\n\t<body data-sveltekit-preload-data=\"hover\">\\n\t\t<div style=\"display: contents\">' + body + \"</div>\\n\t</body>\\n</html>\\n\",\n error: ({ status, message }) => '<!doctype html>\\n<html lang=\"en\">\\n\t<head>\\n\t\t<meta charset=\"utf-8\" />\\n\t\t<title>' + message + `</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">` + status + '</span>\\n\t\t\t<div class=\"message\">\\n\t\t\t\t<h1>' + message + \"</h1>\\n\t\t\t</div>\\n\t\t</div>\\n\t</body>\\n</html>\\n\"\n },\n version_hash: \"can1hb\"\n};\nasync function get_hooks() {\n let handle;\n let handleFetch;\n let handleError;\n let handleValidationError;\n let init;\n let reroute;\n let transport;\n return {\n handle,\n handleFetch,\n handleError,\n handleValidationError,\n init,\n reroute,\n transport\n };\n}\nexport {\n set_manifest as a,\n get_hooks as g,\n options as o,\n read_implementation as r,\n set_read_implementation as s\n};\n"],"names":[],"mappings":";;AAGG,IAAC,mBAAmB,GAAG;AAC1B,SAAS,uBAAuB,CAAC,EAAE,EAAE;AACrC,EAAE,mBAAmB,GAAG,EAAE;AAC1B;AAGK,MAAC,OAAO,GAAG;AAChB,EAAE,2BAA2B,EAAE,KAAK;AACpC,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE;AACzM,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,oBAAoB,EAAE,EAAE;AAC1B,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,iBAAiB,EAAE,SAAS;AAC9B,EAAE,kBAAkB,EAAE,EAAE;AACxB,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,KAAK,EAAE,IAAI;AACb;AACA,EAAE,gBAAgB,EAAE,eAAe;AACnC,EAAE,IAAI;AACN,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,sBAAsB,EAAE,MAAM;AAChC,EAAE,uBAAuB,EAAE,KAAK;AAChC,EAAE,SAAS,EAAE;AACb,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,oMAAoM,GAAG,IAAI,GAAG,4FAA4F,GAAG,IAAI,GAAG,6BAA6B;AAClY,IAAI,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,mFAAmF,GAAG,OAAO,GAAG,CAAC;;AAErI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,CAAC,GAAG,MAAM,GAAG,6CAA6C,GAAG,OAAO,GAAG;AAC/F,GAAG;AACH,EAAE,YAAY,EAAE;AAChB;AACA,eAAe,SAAS,GAAG;AAC3B,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,qBAAqB;AAC3B,EAAE,IAAI,IAAI;AACV,EAAE,IAAI,OAAO;AACb,EAAE,IAAI,SAAS;AACf,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,qBAAqB;AACzB,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI;AACJ,GAAG;AACH;;;;"}
1
+ {"version":3,"file":"internal.js-Bx4qge33.js","sources":["../../../../.svelte-kit/output/server/chunks/internal.js"],"sourcesContent":["import { r as root } from \"./root.js\";\nimport \"./environment.js\";\nimport \"./shared-server.js\";\nlet read_implementation = null;\nfunction set_read_implementation(fn) {\n read_implementation = fn;\n}\nfunction set_manifest(_) {\n}\nconst options = {\n app_template_contains_nonce: false,\n async: false,\n csp: { \"mode\": \"auto\", \"directives\": { \"upgrade-insecure-requests\": false, \"block-all-mixed-content\": false }, \"reportOnly\": { \"upgrade-insecure-requests\": false, \"block-all-mixed-content\": false } },\n csrf_check_origin: true,\n csrf_trusted_origins: [],\n embedded: false,\n env_public_prefix: \"PUBLIC_\",\n env_private_prefix: \"\",\n hash_routing: false,\n hooks: null,\n // added lazily, via `get_hooks`\n preload_strategy: \"modulepreload\",\n root,\n service_worker: false,\n service_worker_options: void 0,\n server_error_boundaries: false,\n templates: {\n app: ({ head, body, assets, nonce, env }) => '<!doctype html>\\n<html lang=\"en\">\\n\t<head>\\n\t\t<meta charset=\"utf-8\" />\\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\\n\t\t<meta name=\"text-scale\" content=\"scale\" />\\n\t\t' + head + '\\n\t</head>\\n\t<body data-sveltekit-preload-data=\"hover\">\\n\t\t<div style=\"display: contents\">' + body + \"</div>\\n\t</body>\\n</html>\\n\",\n error: ({ status, message }) => '<!doctype html>\\n<html lang=\"en\">\\n\t<head>\\n\t\t<meta charset=\"utf-8\" />\\n\t\t<title>' + message + `</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">` + status + '</span>\\n\t\t\t<div class=\"message\">\\n\t\t\t\t<h1>' + message + \"</h1>\\n\t\t\t</div>\\n\t\t</div>\\n\t</body>\\n</html>\\n\"\n },\n version_hash: \"1q0sx9z\"\n};\nasync function get_hooks() {\n let handle;\n let handleFetch;\n let handleError;\n let handleValidationError;\n let init;\n let reroute;\n let transport;\n return {\n handle,\n handleFetch,\n handleError,\n handleValidationError,\n init,\n reroute,\n transport\n };\n}\nexport {\n set_manifest as a,\n get_hooks as g,\n options as o,\n read_implementation as r,\n set_read_implementation as s\n};\n"],"names":[],"mappings":";;AAGG,IAAC,mBAAmB,GAAG;AAC1B,SAAS,uBAAuB,CAAC,EAAE,EAAE;AACrC,EAAE,mBAAmB,GAAG,EAAE;AAC1B;AAGK,MAAC,OAAO,GAAG;AAChB,EAAE,2BAA2B,EAAE,KAAK;AACpC,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,EAAE;AACzM,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,oBAAoB,EAAE,EAAE;AAC1B,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,iBAAiB,EAAE,SAAS;AAC9B,EAAE,kBAAkB,EAAE,EAAE;AACxB,EAAE,YAAY,EAAE,KAAK;AACrB,EAAE,KAAK,EAAE,IAAI;AACb;AACA,EAAE,gBAAgB,EAAE,eAAe;AACnC,EAAE,IAAI;AACN,EAAE,cAAc,EAAE,KAAK;AACvB,EAAE,sBAAsB,EAAE,MAAM;AAChC,EAAE,uBAAuB,EAAE,KAAK;AAChC,EAAE,SAAS,EAAE;AACb,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,oMAAoM,GAAG,IAAI,GAAG,4FAA4F,GAAG,IAAI,GAAG,6BAA6B;AAClY,IAAI,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,mFAAmF,GAAG,OAAO,GAAG,CAAC;;AAErI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,CAAC,GAAG,MAAM,GAAG,6CAA6C,GAAG,OAAO,GAAG;AAC/F,GAAG;AACH,EAAE,YAAY,EAAE;AAChB;AACA,eAAe,SAAS,GAAG;AAC3B,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI,qBAAqB;AAC3B,EAAE,IAAI,IAAI;AACV,EAAE,IAAI,OAAO;AACb,EAAE,IAAI,SAAS;AACf,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,qBAAqB;AACzB,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI;AACJ,GAAG;AACH;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as json, p as error } from '../../../../chunks/shared.js-DuDDTJVi.js';
2
- import { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../chunks/graphRepository.js-D2DARfVY.js';
2
+ import { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../chunks/graphRepository.js-CmIA6rqA.js';
3
3
  import { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from '../../../../chunks/edgeLinkModes.js-CfRqrZtd.js';
4
4
  import '../../../../chunks/utils.js-DGYJFmnf.js';
5
5
  import '../../../../chunks/render-context.js-CTu5Wkzp.js';
@@ -34,4 +34,4 @@ const GET = async ({ url }) => {
34
34
  };
35
35
 
36
36
  export { GET };
37
- //# sourceMappingURL=_server.ts.js-Bxo7qHVz.js.map
37
+ //# sourceMappingURL=_server.ts.js-BDrhYCoq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts.js-Bxo7qHVz.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../chunks/graphRepository.js\";\nimport { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from \"../../../../chunks/edgeLinkModes.js\";\nconst GET = async ({ url }) => {\n try {\n const ontology = sanitizeOntologyParam(url.searchParams.get(\"ontology\"));\n const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get(\"linkMode\"));\n const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);\n const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get(\"topK\"));\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n const body = await getGraphRepository().fetchGraph({\n workspace,\n ontology,\n edgeLabelAllowlist,\n topKEdgesPerNode\n });\n return json(body, {\n headers: { \"Cache-Control\": \"public, max-age=30, stale-while-revalidate=300\" }\n });\n } catch (e) {\n const message = e instanceof Error ? e.message || e.code || e.name : \"Unknown database error\";\n console.error(\"[api/graph]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC;AACvD,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE;AACtB,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD;AAClF,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,wBAAwB;AACjG,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC;AACzC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts.js-BDrhYCoq.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../chunks/graphRepository.js\";\nimport { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from \"../../../../chunks/edgeLinkModes.js\";\nconst GET = async ({ url }) => {\n try {\n const ontology = sanitizeOntologyParam(url.searchParams.get(\"ontology\"));\n const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get(\"linkMode\"));\n const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);\n const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get(\"topK\"));\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n const body = await getGraphRepository().fetchGraph({\n workspace,\n ontology,\n edgeLabelAllowlist,\n topKEdgesPerNode\n });\n return json(body, {\n headers: { \"Cache-Control\": \"public, max-age=30, stale-while-revalidate=300\" }\n });\n } catch (e) {\n const message = e instanceof Error ? e.message || e.code || e.name : \"Unknown database error\";\n console.error(\"[api/graph]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC;AACvD,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE;AACtB,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD;AAClF,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,wBAAwB;AACjG,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC;AACzC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as json, p as error } from '../../../../../chunks/shared.js-DuDDTJVi.js';
2
- import { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../../chunks/graphRepository.js-D2DARfVY.js';
2
+ import { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../../chunks/graphRepository.js-CmIA6rqA.js';
3
3
  import { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from '../../../../../chunks/edgeLinkModes.js-CfRqrZtd.js';
4
4
  import '../../../../../chunks/utils.js-DGYJFmnf.js';
5
5
  import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
@@ -34,4 +34,4 @@ const GET = async ({ url }) => {
34
34
  };
35
35
 
36
36
  export { GET };
37
- //# sourceMappingURL=_server.ts.js-BajaLnqp.js.map
37
+ //# sourceMappingURL=_server.ts.js-BeCjTntz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts.js-BajaLnqp.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/count/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../../chunks/graphRepository.js\";\nimport { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from \"../../../../../chunks/edgeLinkModes.js\";\nconst GET = async ({ url }) => {\n try {\n const ontology = sanitizeOntologyParam(url.searchParams.get(\"ontology\"));\n const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get(\"linkMode\"));\n const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);\n const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get(\"topK\"));\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n const counts = await getGraphRepository().countGraph({\n workspace,\n ontology,\n edgeLabelAllowlist,\n topKEdgesPerNode\n });\n return json(counts, {\n headers: { \"Cache-Control\": \"public, max-age=30, stale-while-revalidate=120\" }\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Unknown error\";\n console.error(\"[api/graph/count]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC;AACzD,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE;AACxB,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD;AAClF,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,eAAe;AACpE,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAC/C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts.js-BeCjTntz.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/count/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../../chunks/graphRepository.js\";\nimport { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from \"../../../../../chunks/edgeLinkModes.js\";\nconst GET = async ({ url }) => {\n try {\n const ontology = sanitizeOntologyParam(url.searchParams.get(\"ontology\"));\n const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get(\"linkMode\"));\n const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);\n const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get(\"topK\"));\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n const counts = await getGraphRepository().countGraph({\n workspace,\n ontology,\n edgeLabelAllowlist,\n topKEdgesPerNode\n });\n return json(counts, {\n headers: { \"Cache-Control\": \"public, max-age=30, stale-while-revalidate=120\" }\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Unknown error\";\n console.error(\"[api/graph/count]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC;AACzD,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE;AACxB,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD;AAClF,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,eAAe;AACpE,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAC/C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}
@@ -0,0 +1,68 @@
1
+ import { p as error, j as json } from '../../../../../chunks/shared.js-DuDDTJVi.js';
2
+ import { b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../../chunks/graphRepository.js-CmIA6rqA.js';
3
+ import '../../../../../chunks/utils.js-DGYJFmnf.js';
4
+ import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
5
+ import 'node:child_process';
6
+ import 'node:fs';
7
+ import 'node:os';
8
+ import 'node:path';
9
+ import 'node:util';
10
+ import '../../../../../chunks/shared-server.js-DaWdgxVh.js';
11
+
12
+ function sqlString(value) {
13
+ return `'${value.replace(/'/g, "''")}'`;
14
+ }
15
+ function parseMetadata(raw) {
16
+ if (!raw || typeof raw !== "string") return {};
17
+ try {
18
+ const parsed = JSON.parse(raw);
19
+ return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
20
+ } catch {
21
+ return {};
22
+ }
23
+ }
24
+ const GET = async ({ url }) => {
25
+ const workspace = sanitizeWorkspaceParam(url.searchParams.get("workspace_id"));
26
+ const ontology = url.searchParams.get("ontology_id")?.trim();
27
+ if (!workspace) throw error(400, "Invalid workspace_id");
28
+ try {
29
+ const repository = getGraphRepository();
30
+ const rows = await repository.queryRows(
31
+ `
32
+ SELECT
33
+ rule_id, ontology_id, workspace_id, entity_type, relation_type, direction,
34
+ target_entity_type, min_count, max_count, severity, label, enabled, metadata_json
35
+ FROM graph_gap_rules
36
+ WHERE workspace_id = ${sqlString(workspace)}
37
+ ${ontology ? `AND ontology_id = ${sqlString(ontology)}` : ""}
38
+ ORDER BY severity, rule_id
39
+ `
40
+ );
41
+ return json({
42
+ workspace_id: workspace,
43
+ ontology_id: ontology ?? null,
44
+ rules: rows.map((row) => ({
45
+ rule_id: row.rule_id,
46
+ ontology_id: row.ontology_id,
47
+ workspace_id: row.workspace_id,
48
+ entity_type: row.entity_type,
49
+ relation_type: row.relation_type,
50
+ direction: row.direction,
51
+ target_entity_type: row.target_entity_type,
52
+ min_count: row.min_count,
53
+ max_count: row.max_count,
54
+ severity: row.severity ?? "warning",
55
+ label: row.label ?? row.rule_id,
56
+ enabled: row.enabled !== 0,
57
+ metadata: parseMetadata(row.metadata_json)
58
+ }))
59
+ });
60
+ } catch (e) {
61
+ const message = e instanceof Error ? e.message : "Unknown database error";
62
+ console.error("[api/graph/gap-rules]", message);
63
+ throw error(500, message);
64
+ }
65
+ };
66
+
67
+ export { GET };
68
+ //# sourceMappingURL=_server.ts.js-DduzA_uh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts.js-DduzA_uh.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/gap-rules/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../../chunks/graphRepository.js\";\nfunction sqlString(value) {\n return `'${value.replace(/'/g, \"''\")}'`;\n}\nfunction parseMetadata(raw) {\n if (!raw || typeof raw !== \"string\") return {};\n try {\n const parsed = JSON.parse(raw);\n return parsed && typeof parsed === \"object\" && !Array.isArray(parsed) ? parsed : {};\n } catch {\n return {};\n }\n}\nconst GET = async ({ url }) => {\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace_id\"));\n const ontology = url.searchParams.get(\"ontology_id\")?.trim();\n if (!workspace) throw error(400, \"Invalid workspace_id\");\n try {\n const repository = getGraphRepository();\n const rows = await repository.queryRows(\n `\n\t\t\t\tSELECT\n\t\t\t\t\trule_id, ontology_id, workspace_id, entity_type, relation_type, direction,\n\t\t\t\t\ttarget_entity_type, min_count, max_count, severity, label, enabled, metadata_json\n\t\t\t\tFROM graph_gap_rules\n\t\t\t\tWHERE workspace_id = ${sqlString(workspace)}\n\t\t\t\t\t${ontology ? `AND ontology_id = ${sqlString(ontology)}` : \"\"}\n\t\t\t\tORDER BY severity, rule_id\n\t\t\t`\n );\n return json({\n workspace_id: workspace,\n ontology_id: ontology ?? null,\n rules: rows.map((row) => ({\n rule_id: row.rule_id,\n ontology_id: row.ontology_id,\n workspace_id: row.workspace_id,\n entity_type: row.entity_type,\n relation_type: row.relation_type,\n direction: row.direction,\n target_entity_type: row.target_entity_type,\n min_count: row.min_count,\n max_count: row.max_count,\n severity: row.severity ?? \"warning\",\n label: row.label ?? row.rule_id,\n enabled: row.enabled !== 0,\n metadata: parseMetadata(row.metadata_json)\n }))\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Unknown database error\";\n console.error(\"[api/graph/gap-rules]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAEA,SAAS,SAAS,CAAC,KAAK,EAAE;AAC1B,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC;AACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,OAAO,EAAE;AAChD,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,IAAI,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,EAAE;AACvF,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,EAAE;AACb,EAAE;AACF;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAChF,EAAE,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE;AAC9D,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,sBAAsB,CAAC;AAC1D,EAAE,IAAI;AACN,IAAI,MAAM,UAAU,GAAG,kBAAkB,EAAE;AAC3C,IAAI,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS;AAC3C,MAAM;AACN;AACA;AACA;AACA;AACA,yBAAyB,EAAE,SAAS,CAAC,SAAS,CAAC;AAC/C,KAAK,EAAE,QAAQ,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AACjE;AACA,GAAG;AACH,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,YAAY,EAAE,SAAS;AAC7B,MAAM,WAAW,EAAE,QAAQ,IAAI,IAAI;AACnC,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAChC,QAAQ,OAAO,EAAE,GAAG,CAAC,OAAO;AAC5B,QAAQ,WAAW,EAAE,GAAG,CAAC,WAAW;AACpC,QAAQ,YAAY,EAAE,GAAG,CAAC,YAAY;AACtC,QAAQ,WAAW,EAAE,GAAG,CAAC,WAAW;AACpC,QAAQ,aAAa,EAAE,GAAG,CAAC,aAAa;AACxC,QAAQ,SAAS,EAAE,GAAG,CAAC,SAAS;AAChC,QAAQ,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;AAClD,QAAQ,SAAS,EAAE,GAAG,CAAC,SAAS;AAChC,QAAQ,SAAS,EAAE,GAAG,CAAC,SAAS;AAChC,QAAQ,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;AAC3C,QAAQ,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO;AACvC,QAAQ,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;AAClC,QAAQ,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,aAAa;AACjD,OAAO,CAAC;AACR,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,wBAAwB;AAC7E,IAAI,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC;AACnD,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as json, p as error } from '../../../../../chunks/shared.js-DuDDTJVi.js';
2
- import { b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../../chunks/graphRepository.js-D2DARfVY.js';
2
+ import { b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../../chunks/graphRepository.js-CmIA6rqA.js';
3
3
  import { r as resolveDataSource, c as brainJson } from '../../../../../chunks/mindbrainClient.js-BFAJqRSL.js';
4
4
  import '../../../../../chunks/utils.js-DGYJFmnf.js';
5
5
  import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
@@ -143,4 +143,4 @@ const GET = async ({ url }) => {
143
143
  };
144
144
 
145
145
  export { GET };
146
- //# sourceMappingURL=_server.ts.js-BFq2mbbX.js.map
146
+ //# sourceMappingURL=_server.ts.js-K5EkSYpR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts.js-BFq2mbbX.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/ontologies/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../../chunks/graphRepository.js\";\nimport { r as resolveDataSource, c as brainJson } from \"../../../../../chunks/mindbrainClient.js\";\nfunction pickWorkspaceGraphOntologyId(workspaceId, ontologies, defaultOntologyId) {\n if (ontologies.length === 0) return defaultOntologyId?.trim() ?? \"\";\n const ws = workspaceId.trim();\n const byId = new Map(ontologies.map((o) => [o.ontology_id, o]));\n const coreId = `${ws}::core`;\n if (byId.has(coreId)) return coreId;\n const linkml = ontologies.filter((o) => o.source_kind === \"linkml\");\n if (linkml.length === 1) return linkml[0].ontology_id;\n if (linkml.length > 1) {\n const scoped = linkml.find((o) => o.ontology_id.startsWith(`${ws}::`));\n return scoped?.ontology_id ?? linkml[0].ontology_id;\n }\n const nonDefault = ontologies.filter((o) => !o.ontology_id.endsWith(\"::default\"));\n if (nonDefault.length > 0) return nonDefault[0].ontology_id;\n const configured = defaultOntologyId?.trim();\n if (configured && byId.has(configured)) return configured;\n return ontologies[0]?.ontology_id ?? \"\";\n}\nfunction errText(e) {\n return e instanceof Error ? e.message || e.code || e.name : String(e);\n}\nasync function safeList(label, run, fallback) {\n try {\n return await run();\n } catch (e) {\n console.error(\"[api/graph/ontologies]\", label, errText(e));\n return fallback;\n }\n}\nasync function typeCountsFromOntologyGraph(workspaceId, defaultOntologyId) {\n if (!defaultOntologyId) return [];\n try {\n const params = new URLSearchParams({\n ontology_id: defaultOntologyId,\n workspace_id: workspaceId\n });\n const graph = await brainJson(`ontology/graph?${params}`);\n return (graph.nodes ?? []).filter((node) => {\n const kind = String(node.kind ?? node.node_kind ?? \"entity_type\");\n return kind === \"entity_type\" || kind.includes(\"entity\");\n }).map((node) => {\n const type = String(\n node.type ?? String(node.id ?? \"\").replace(/^entity_type:/, \"\")\n );\n return {\n id: `type:${type}`,\n nodeCount: 0,\n label: node.label ?? type\n };\n });\n } catch (e) {\n console.error(\"[api/graph/ontologies]\", \"ontologyGraphFallback\", errText(e));\n return [];\n }\n}\nconst GET = async ({ url }) => {\n try {\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n if (resolveDataSource() === \"brain\") {\n const ws = workspace || \"default\";\n const [workspaceList, typeCounts] = await Promise.all([\n safeList(\"brainWorkspaceList\", () => brainJson(\"workspace/list\"), {\n workspaces: []\n }),\n safeList(\n \"brainTypeCounts\",\n () => brainJson(\n `graph/type-counts?workspace_id=${encodeURIComponent(ws)}`\n ),\n { workspace_id: ws, types: [] }\n )\n ]);\n const graphWorkspaces2 = (workspaceList.workspaces ?? []).map((w) => ({\n id: w.id,\n entityCount: Number(w.entity_count ?? 0),\n label: w.label ?? null,\n defaultOntologyId: w.default_ontology_id ?? null\n }));\n let ontologies2 = (typeCounts.types ?? []).map((row) => ({\n id: `type:${row.entity_type}`,\n nodeCount: Number(row.count ?? 0),\n label: row.label ?? row.entity_type\n }));\n if (ontologies2.length === 0) {\n const wsRow = graphWorkspaces2.find((w) => w.id === ws);\n const ontList = await safeList(\n \"brainOntologyList\",\n () => brainJson(\n `ontology/list?workspace_id=${encodeURIComponent(ws)}`\n ),\n { ontologies: [] }\n );\n const graphOntologyId = pickWorkspaceGraphOntologyId(\n ws,\n ontList.ontologies ?? [],\n wsRow?.defaultOntologyId ?? ontList.default_ontology_id\n );\n ontologies2 = await typeCountsFromOntologyGraph(ws, graphOntologyId);\n }\n return json({\n ontologies: ontologies2,\n subTypes: [],\n providers: [],\n scenarios: [],\n graphWorkspaces: graphWorkspaces2,\n dbProfiles: [{ id: \"brain\", label: \"MindBrain HTTP\" }],\n activeDb: \"brain\"\n });\n }\n const repository = getGraphRepository();\n const [graphWorkspaces, ontologies] = await Promise.all([\n safeList(\"listWorkspaces\", () => repository.listWorkspaces(), []),\n safeList(\"listOntologyRows\", () => repository.listOntologyRows(workspace), [])\n ]);\n return json({\n ontologies,\n subTypes: [],\n // legacy field kept so the existing UI parser doesn't break\n providers: [],\n scenarios: [],\n graphWorkspaces,\n dbProfiles: [{ id: \"sqlite\", label: \"GhostCrab PERSO SQLite\" }],\n activeDb: \"sqlite\"\n });\n } catch (e) {\n const message = errText(e);\n console.error(\"[api/graph/ontologies]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts.js-K5EkSYpR.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/ontologies/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../../chunks/graphRepository.js\";\nimport { r as resolveDataSource, c as brainJson } from \"../../../../../chunks/mindbrainClient.js\";\nfunction pickWorkspaceGraphOntologyId(workspaceId, ontologies, defaultOntologyId) {\n if (ontologies.length === 0) return defaultOntologyId?.trim() ?? \"\";\n const ws = workspaceId.trim();\n const byId = new Map(ontologies.map((o) => [o.ontology_id, o]));\n const coreId = `${ws}::core`;\n if (byId.has(coreId)) return coreId;\n const linkml = ontologies.filter((o) => o.source_kind === \"linkml\");\n if (linkml.length === 1) return linkml[0].ontology_id;\n if (linkml.length > 1) {\n const scoped = linkml.find((o) => o.ontology_id.startsWith(`${ws}::`));\n return scoped?.ontology_id ?? linkml[0].ontology_id;\n }\n const nonDefault = ontologies.filter((o) => !o.ontology_id.endsWith(\"::default\"));\n if (nonDefault.length > 0) return nonDefault[0].ontology_id;\n const configured = defaultOntologyId?.trim();\n if (configured && byId.has(configured)) return configured;\n return ontologies[0]?.ontology_id ?? \"\";\n}\nfunction errText(e) {\n return e instanceof Error ? e.message || e.code || e.name : String(e);\n}\nasync function safeList(label, run, fallback) {\n try {\n return await run();\n } catch (e) {\n console.error(\"[api/graph/ontologies]\", label, errText(e));\n return fallback;\n }\n}\nasync function typeCountsFromOntologyGraph(workspaceId, defaultOntologyId) {\n if (!defaultOntologyId) return [];\n try {\n const params = new URLSearchParams({\n ontology_id: defaultOntologyId,\n workspace_id: workspaceId\n });\n const graph = await brainJson(`ontology/graph?${params}`);\n return (graph.nodes ?? []).filter((node) => {\n const kind = String(node.kind ?? node.node_kind ?? \"entity_type\");\n return kind === \"entity_type\" || kind.includes(\"entity\");\n }).map((node) => {\n const type = String(\n node.type ?? String(node.id ?? \"\").replace(/^entity_type:/, \"\")\n );\n return {\n id: `type:${type}`,\n nodeCount: 0,\n label: node.label ?? type\n };\n });\n } catch (e) {\n console.error(\"[api/graph/ontologies]\", \"ontologyGraphFallback\", errText(e));\n return [];\n }\n}\nconst GET = async ({ url }) => {\n try {\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n if (resolveDataSource() === \"brain\") {\n const ws = workspace || \"default\";\n const [workspaceList, typeCounts] = await Promise.all([\n safeList(\"brainWorkspaceList\", () => brainJson(\"workspace/list\"), {\n workspaces: []\n }),\n safeList(\n \"brainTypeCounts\",\n () => brainJson(\n `graph/type-counts?workspace_id=${encodeURIComponent(ws)}`\n ),\n { workspace_id: ws, types: [] }\n )\n ]);\n const graphWorkspaces2 = (workspaceList.workspaces ?? []).map((w) => ({\n id: w.id,\n entityCount: Number(w.entity_count ?? 0),\n label: w.label ?? null,\n defaultOntologyId: w.default_ontology_id ?? null\n }));\n let ontologies2 = (typeCounts.types ?? []).map((row) => ({\n id: `type:${row.entity_type}`,\n nodeCount: Number(row.count ?? 0),\n label: row.label ?? row.entity_type\n }));\n if (ontologies2.length === 0) {\n const wsRow = graphWorkspaces2.find((w) => w.id === ws);\n const ontList = await safeList(\n \"brainOntologyList\",\n () => brainJson(\n `ontology/list?workspace_id=${encodeURIComponent(ws)}`\n ),\n { ontologies: [] }\n );\n const graphOntologyId = pickWorkspaceGraphOntologyId(\n ws,\n ontList.ontologies ?? [],\n wsRow?.defaultOntologyId ?? ontList.default_ontology_id\n );\n ontologies2 = await typeCountsFromOntologyGraph(ws, graphOntologyId);\n }\n return json({\n ontologies: ontologies2,\n subTypes: [],\n providers: [],\n scenarios: [],\n graphWorkspaces: graphWorkspaces2,\n dbProfiles: [{ id: \"brain\", label: \"MindBrain HTTP\" }],\n activeDb: \"brain\"\n });\n }\n const repository = getGraphRepository();\n const [graphWorkspaces, ontologies] = await Promise.all([\n safeList(\"listWorkspaces\", () => repository.listWorkspaces(), []),\n safeList(\"listOntologyRows\", () => repository.listOntologyRows(workspace), [])\n ]);\n return json({\n ontologies,\n subTypes: [],\n // legacy field kept so the existing UI parser doesn't break\n providers: [],\n scenarios: [],\n graphWorkspaces,\n dbProfiles: [{ id: \"sqlite\", label: \"GhostCrab PERSO SQLite\" }],\n activeDb: \"sqlite\"\n });\n } catch (e) {\n const message = errText(e);\n console.error(\"[api/graph/ontologies]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { existsSync } from 'node:fs';
3
3
  import { promisify } from 'node:util';
4
4
  import { j as json, p as error } from '../../../../../chunks/shared.js-DuDDTJVi.js';
5
5
  import { a as resolveMindbrainRuntime } from '../../../../../chunks/mindbrainClient.js-BFAJqRSL.js';
6
- import { b as sanitizeWorkspaceParam, c as sqlitePath } from '../../../../../chunks/graphRepository.js-D2DARfVY.js';
6
+ import { b as sanitizeWorkspaceParam, c as sqlitePath } from '../../../../../chunks/graphRepository.js-CmIA6rqA.js';
7
7
  import { s as schemaOntologyKey } from '../../../../../chunks/ontologyInspect.js-Dm3l7KgF.js';
8
8
  import '../../../../../chunks/utils.js-DGYJFmnf.js';
9
9
  import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
@@ -156,4 +156,4 @@ const GET = async ({ url }) => {
156
156
  };
157
157
 
158
158
  export { GET };
159
- //# sourceMappingURL=_server.ts.js-CAsXxBRq.js.map
159
+ //# sourceMappingURL=_server.ts.js-B5OTti3s.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts.js-CAsXxBRq.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/schema-registry/_server.ts.js"],"sourcesContent":["import { execFile } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { promisify } from \"node:util\";\nimport { json, error } from \"@sveltejs/kit\";\nimport { a as resolveMindbrainRuntime } from \"../../../../../chunks/mindbrainClient.js\";\nimport { b as sanitizeWorkspaceParam, c as sqlitePath } from \"../../../../../chunks/graphRepository.js\";\nimport { s as schemaOntologyKey } from \"../../../../../chunks/ontologyInspect.js\";\nconst execFileAsync = promisify(execFile);\nfunction parseJsonObject(raw) {\n if (!raw || typeof raw !== \"string\") return {};\n try {\n const value = JSON.parse(raw);\n return value && typeof value === \"object\" && !Array.isArray(value) ? value : {};\n } catch {\n return {};\n }\n}\nfunction registrySqlitePaths() {\n const runtime = resolveMindbrainRuntime();\n return [...new Set([runtime.sqlitePath, sqlitePath()].filter((p) => Boolean(p)))];\n}\nfunction entityTypeFromSchemaId(schemaId, workspaceId) {\n const ontologyPrefix = `${workspaceId}::`;\n if (schemaId.startsWith(ontologyPrefix)) {\n const parts2 = schemaId.slice(ontologyPrefix.length).split(\":\");\n return parts2.slice(2).join(\":\") || parts2.at(-1) || schemaId;\n }\n const prefix = `${workspaceId}:`;\n if (!schemaId.startsWith(prefix)) return schemaId;\n const parts = schemaId.slice(prefix.length).split(\":\");\n return parts.slice(1).join(\":\") || parts[0] || schemaId;\n}\nfunction objectFieldCount(raw) {\n return raw && typeof raw === \"object\" && !Array.isArray(raw) ? Object.keys(raw).length : 0;\n}\nfunction schemaFacetCount(definition) {\n const fields = objectFieldCount(definition.fields);\n if (fields > 0) return fields;\n const facets = definition.facets && typeof definition.facets === \"object\" && !Array.isArray(definition.facets) ? definition.facets : {};\n return objectFieldCount(facets.required) + objectFieldCount(facets.optional);\n}\nfunction schemaFields(definition) {\n const fields = definition.fields && typeof definition.fields === \"object\" && !Array.isArray(definition.fields) ? definition.fields : {};\n return Object.entries(fields).filter(([, raw]) => raw && typeof raw === \"object\" && !Array.isArray(raw)).map(([name, raw]) => {\n const value = raw;\n return {\n name,\n type: value.type == null ? null : String(value.type),\n range: value.range == null ? null : String(value.range),\n required: value.required === true,\n multivalued: value.multivalued === true,\n description: value.description == null ? null : String(value.description)\n };\n }).sort((a, b) => a.name.localeCompare(b.name));\n}\nfunction schemaClassName(definition) {\n if (typeof definition.class_name === \"string\") return definition.class_name;\n const metadata = definition.metadata && typeof definition.metadata === \"object\" && !Array.isArray(definition.metadata) ? definition.metadata : {};\n return typeof metadata.class_name === \"string\" ? metadata.class_name : null;\n}\nfunction sqlString(value) {\n return `'${value.replaceAll(\"'\", \"''\")}'`;\n}\nasync function queryJsonRows(dbPath, sql) {\n const { stdout } = await execFileAsync(\"sqlite3\", [\"-readonly\", \"-json\", dbPath, sql], {\n maxBuffer: 10 * 1024 * 1024\n });\n const trimmed = stdout.trim();\n if (!trimmed) return [];\n const parsed = JSON.parse(trimmed);\n return Array.isArray(parsed) ? parsed : [];\n}\nconst GET = async ({ url }) => {\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\")) ?? \"default\";\n const paths = registrySqlitePaths();\n const existingPaths = paths.filter((path) => existsSync(path));\n if (existingPaths.length === 0) {\n return json({\n workspace_id: workspace,\n total: 0,\n facet_definition_total: 0,\n rows: [],\n source: \"unavailable\",\n error: `SQLite database not found. Tried: ${paths.join(\", \")}`\n });\n }\n try {\n const workspaceSql = sqlString(workspace);\n let schemaRows = [];\n let facetRows = [];\n let sourcePath = existingPaths[0];\n for (const candidatePath of existingPaths) {\n const candidateSchemaRows = await queryJsonRows(\n candidatePath,\n `\n\t\t\t\t\tSELECT id, content, COALESCE(facets_json, facets, '{}') AS facets_json\n\t\t\t\t\tFROM agent_facts\n\t\t\t\t\tWHERE schema_id = 'mindbrain:schema'\n\t\t\t\t\t\tAND workspace_id = ${workspaceSql}\n\t\t\t\t\t\tAND json_extract(COALESCE(facets_json, facets, '{}'), '$.target') IN ('facets', 'graph_node', 'graph_edge')\n\t\t\t\t\t\tAND json_extract(COALESCE(facets_json, facets, '{}'), '$.schema_id') LIKE ${sqlString(`${workspace}:%`)}\n\t\t\t\t\tORDER BY json_extract(COALESCE(facets_json, facets, '{}'), '$.schema_id')\n\t\t\t\t\t`\n );\n if (candidateSchemaRows.length === 0 && candidatePath !== existingPaths.at(-1)) continue;\n sourcePath = candidatePath;\n schemaRows = candidateSchemaRows;\n facetRows = await queryJsonRows(\n candidatePath,\n `\n\t\t\t\t\tSELECT COALESCE(facets_json, facets, '{}') AS facets_json, content\n\t\t\t\t\tFROM agent_facts\n\t\t\t\t\tWHERE schema_id = 'mindbrain:facet-definition'\n\t\t\t\t\t\tAND workspace_id = ${workspaceSql}\n\t\t\t\t\t`\n );\n break;\n }\n void sourcePath;\n const rows = schemaRows.map((row) => {\n const facets = parseJsonObject(row.facets_json);\n const definition = parseJsonObject(row.content);\n const schemaId = String(facets.schema_id ?? definition.schema_id ?? \"\");\n return {\n id: row.id,\n schema_id: schemaId,\n ontology_key: schemaOntologyKey(schemaId, workspace),\n entity_type: entityTypeFromSchemaId(schemaId, workspace),\n class_name: schemaClassName(definition),\n target: facets.target == null ? null : String(facets.target),\n version: typeof facets.version === \"number\" && Number.isFinite(facets.version) ? facets.version : null,\n description: definition.description == null ? null : String(definition.description),\n facet_definition_count: schemaFacetCount(definition),\n fields: schemaFields(definition)\n };\n });\n return json({\n workspace_id: workspace,\n total: rows.length,\n facet_definition_total: facetRows.length,\n rows,\n source: \"sqlite\"\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n console.error(\"[api/graph/schema-registry]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts.js-B5OTti3s.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/schema-registry/_server.ts.js"],"sourcesContent":["import { execFile } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { promisify } from \"node:util\";\nimport { json, error } from \"@sveltejs/kit\";\nimport { a as resolveMindbrainRuntime } from \"../../../../../chunks/mindbrainClient.js\";\nimport { b as sanitizeWorkspaceParam, c as sqlitePath } from \"../../../../../chunks/graphRepository.js\";\nimport { s as schemaOntologyKey } from \"../../../../../chunks/ontologyInspect.js\";\nconst execFileAsync = promisify(execFile);\nfunction parseJsonObject(raw) {\n if (!raw || typeof raw !== \"string\") return {};\n try {\n const value = JSON.parse(raw);\n return value && typeof value === \"object\" && !Array.isArray(value) ? value : {};\n } catch {\n return {};\n }\n}\nfunction registrySqlitePaths() {\n const runtime = resolveMindbrainRuntime();\n return [...new Set([runtime.sqlitePath, sqlitePath()].filter((p) => Boolean(p)))];\n}\nfunction entityTypeFromSchemaId(schemaId, workspaceId) {\n const ontologyPrefix = `${workspaceId}::`;\n if (schemaId.startsWith(ontologyPrefix)) {\n const parts2 = schemaId.slice(ontologyPrefix.length).split(\":\");\n return parts2.slice(2).join(\":\") || parts2.at(-1) || schemaId;\n }\n const prefix = `${workspaceId}:`;\n if (!schemaId.startsWith(prefix)) return schemaId;\n const parts = schemaId.slice(prefix.length).split(\":\");\n return parts.slice(1).join(\":\") || parts[0] || schemaId;\n}\nfunction objectFieldCount(raw) {\n return raw && typeof raw === \"object\" && !Array.isArray(raw) ? Object.keys(raw).length : 0;\n}\nfunction schemaFacetCount(definition) {\n const fields = objectFieldCount(definition.fields);\n if (fields > 0) return fields;\n const facets = definition.facets && typeof definition.facets === \"object\" && !Array.isArray(definition.facets) ? definition.facets : {};\n return objectFieldCount(facets.required) + objectFieldCount(facets.optional);\n}\nfunction schemaFields(definition) {\n const fields = definition.fields && typeof definition.fields === \"object\" && !Array.isArray(definition.fields) ? definition.fields : {};\n return Object.entries(fields).filter(([, raw]) => raw && typeof raw === \"object\" && !Array.isArray(raw)).map(([name, raw]) => {\n const value = raw;\n return {\n name,\n type: value.type == null ? null : String(value.type),\n range: value.range == null ? null : String(value.range),\n required: value.required === true,\n multivalued: value.multivalued === true,\n description: value.description == null ? null : String(value.description)\n };\n }).sort((a, b) => a.name.localeCompare(b.name));\n}\nfunction schemaClassName(definition) {\n if (typeof definition.class_name === \"string\") return definition.class_name;\n const metadata = definition.metadata && typeof definition.metadata === \"object\" && !Array.isArray(definition.metadata) ? definition.metadata : {};\n return typeof metadata.class_name === \"string\" ? metadata.class_name : null;\n}\nfunction sqlString(value) {\n return `'${value.replaceAll(\"'\", \"''\")}'`;\n}\nasync function queryJsonRows(dbPath, sql) {\n const { stdout } = await execFileAsync(\"sqlite3\", [\"-readonly\", \"-json\", dbPath, sql], {\n maxBuffer: 10 * 1024 * 1024\n });\n const trimmed = stdout.trim();\n if (!trimmed) return [];\n const parsed = JSON.parse(trimmed);\n return Array.isArray(parsed) ? parsed : [];\n}\nconst GET = async ({ url }) => {\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\")) ?? \"default\";\n const paths = registrySqlitePaths();\n const existingPaths = paths.filter((path) => existsSync(path));\n if (existingPaths.length === 0) {\n return json({\n workspace_id: workspace,\n total: 0,\n facet_definition_total: 0,\n rows: [],\n source: \"unavailable\",\n error: `SQLite database not found. Tried: ${paths.join(\", \")}`\n });\n }\n try {\n const workspaceSql = sqlString(workspace);\n let schemaRows = [];\n let facetRows = [];\n let sourcePath = existingPaths[0];\n for (const candidatePath of existingPaths) {\n const candidateSchemaRows = await queryJsonRows(\n candidatePath,\n `\n\t\t\t\t\tSELECT id, content, COALESCE(facets_json, facets, '{}') AS facets_json\n\t\t\t\t\tFROM agent_facts\n\t\t\t\t\tWHERE schema_id = 'mindbrain:schema'\n\t\t\t\t\t\tAND workspace_id = ${workspaceSql}\n\t\t\t\t\t\tAND json_extract(COALESCE(facets_json, facets, '{}'), '$.target') IN ('facets', 'graph_node', 'graph_edge')\n\t\t\t\t\t\tAND json_extract(COALESCE(facets_json, facets, '{}'), '$.schema_id') LIKE ${sqlString(`${workspace}:%`)}\n\t\t\t\t\tORDER BY json_extract(COALESCE(facets_json, facets, '{}'), '$.schema_id')\n\t\t\t\t\t`\n );\n if (candidateSchemaRows.length === 0 && candidatePath !== existingPaths.at(-1)) continue;\n sourcePath = candidatePath;\n schemaRows = candidateSchemaRows;\n facetRows = await queryJsonRows(\n candidatePath,\n `\n\t\t\t\t\tSELECT COALESCE(facets_json, facets, '{}') AS facets_json, content\n\t\t\t\t\tFROM agent_facts\n\t\t\t\t\tWHERE schema_id = 'mindbrain:facet-definition'\n\t\t\t\t\t\tAND workspace_id = ${workspaceSql}\n\t\t\t\t\t`\n );\n break;\n }\n void sourcePath;\n const rows = schemaRows.map((row) => {\n const facets = parseJsonObject(row.facets_json);\n const definition = parseJsonObject(row.content);\n const schemaId = String(facets.schema_id ?? definition.schema_id ?? \"\");\n return {\n id: row.id,\n schema_id: schemaId,\n ontology_key: schemaOntologyKey(schemaId, workspace),\n entity_type: entityTypeFromSchemaId(schemaId, workspace),\n class_name: schemaClassName(definition),\n target: facets.target == null ? null : String(facets.target),\n version: typeof facets.version === \"number\" && Number.isFinite(facets.version) ? facets.version : null,\n description: definition.description == null ? null : String(definition.description),\n facet_definition_count: schemaFacetCount(definition),\n fields: schemaFields(definition)\n };\n });\n return json({\n workspace_id: workspace,\n total: rows.length,\n facet_definition_total: facetRows.length,\n rows,\n source: \"sqlite\"\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n console.error(\"[api/graph/schema-registry]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ import { setImmediate } from 'node:timers';
8
8
  import * as qs from 'node:querystring';
9
9
  import { Readable } from 'node:stream';
10
10
  import { S as SvelteKitError } from './chunks/shared.js-DuDDTJVi.js';
11
- import { S as Server } from './index.js-qz9YZN7m.js';
12
- import { m as manifest } from './manifest.js-BxEwHoCX.js';
11
+ import { S as Server } from './index.js-BRvQVgSe.js';
12
+ import { m as manifest } from './manifest.js-Bv1A6wIB.js';
13
13
  import { env, dir, env_prefix } from '../../env.js';
14
14
  import { format } from 'node:url';
15
15
 
@@ -1695,4 +1695,4 @@ const handler = sequence(
1695
1695
  );
1696
1696
 
1697
1697
  export { format_listening_address as f, handler as h, polka as p };
1698
- //# sourceMappingURL=handler-B8M0DnFi.js.map
1698
+ //# sourceMappingURL=handler-Cc3Mp_Ob.js.map