@schlessera/brain-ui-server 0.13.1 → 0.14.0

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 (182) hide show
  1. package/README.md +51 -12
  2. package/dist/agent/backend.d.ts +163 -37
  3. package/dist/agent/backend.d.ts.map +1 -1
  4. package/dist/agent/backend.js +281 -286
  5. package/dist/agent/backend.js.map +1 -1
  6. package/dist/app.d.ts +46 -5
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +94 -35
  9. package/dist/app.js.map +1 -1
  10. package/dist/brain/client.d.ts +41 -30
  11. package/dist/brain/client.d.ts.map +1 -1
  12. package/dist/brain/client.js +138 -132
  13. package/dist/brain/client.js.map +1 -1
  14. package/dist/config/env.d.ts +104 -0
  15. package/dist/config/env.d.ts.map +1 -0
  16. package/dist/config/env.js +296 -0
  17. package/dist/config/env.js.map +1 -0
  18. package/dist/cron/scheduler.d.ts +16 -8
  19. package/dist/cron/scheduler.d.ts.map +1 -1
  20. package/dist/cron/scheduler.js +54 -53
  21. package/dist/cron/scheduler.js.map +1 -1
  22. package/dist/db/brain-db.d.ts +50 -0
  23. package/dist/db/brain-db.d.ts.map +1 -0
  24. package/dist/db/brain-db.js +75 -0
  25. package/dist/db/brain-db.js.map +1 -0
  26. package/dist/db/client.d.ts +8 -6
  27. package/dist/db/client.d.ts.map +1 -1
  28. package/dist/db/client.js +12 -25
  29. package/dist/db/client.js.map +1 -1
  30. package/dist/db/settings.d.ts +5 -4
  31. package/dist/db/settings.d.ts.map +1 -1
  32. package/dist/db/settings.js +9 -12
  33. package/dist/db/settings.js.map +1 -1
  34. package/dist/files/walker.d.ts +6 -7
  35. package/dist/files/walker.d.ts.map +1 -1
  36. package/dist/files/walker.js +6 -9
  37. package/dist/files/walker.js.map +1 -1
  38. package/dist/graph/reader.d.ts +6 -6
  39. package/dist/graph/reader.d.ts.map +1 -1
  40. package/dist/graph/reader.js +22 -12
  41. package/dist/graph/reader.js.map +1 -1
  42. package/dist/index.d.ts +15 -9
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +20 -10
  45. package/dist/index.js.map +1 -1
  46. package/dist/middleware/auth.d.ts +17 -6
  47. package/dist/middleware/auth.d.ts.map +1 -1
  48. package/dist/middleware/auth.js +34 -43
  49. package/dist/middleware/auth.js.map +1 -1
  50. package/dist/middleware/origin.d.ts +1 -2
  51. package/dist/middleware/origin.d.ts.map +1 -1
  52. package/dist/middleware/origin.js +1 -7
  53. package/dist/middleware/origin.js.map +1 -1
  54. package/dist/middleware/passkeys.d.ts +29 -5
  55. package/dist/middleware/passkeys.d.ts.map +1 -1
  56. package/dist/middleware/passkeys.js +47 -76
  57. package/dist/middleware/passkeys.js.map +1 -1
  58. package/dist/middleware/tailscale.d.ts +14 -11
  59. package/dist/middleware/tailscale.d.ts.map +1 -1
  60. package/dist/middleware/tailscale.js +11 -10
  61. package/dist/middleware/tailscale.js.map +1 -1
  62. package/dist/routes/brain.d.ts +9 -154
  63. package/dist/routes/brain.d.ts.map +1 -1
  64. package/dist/routes/brain.js +187 -188
  65. package/dist/routes/brain.js.map +1 -1
  66. package/dist/routes/files.d.ts +4 -88
  67. package/dist/routes/files.d.ts.map +1 -1
  68. package/dist/routes/files.js +74 -71
  69. package/dist/routes/files.js.map +1 -1
  70. package/dist/routes/graph.d.ts +4 -255
  71. package/dist/routes/graph.d.ts.map +1 -1
  72. package/dist/routes/graph.js +67 -64
  73. package/dist/routes/graph.js.map +1 -1
  74. package/dist/routes/health.d.ts +8 -22
  75. package/dist/routes/health.d.ts.map +1 -1
  76. package/dist/routes/health.js +10 -10
  77. package/dist/routes/health.js.map +1 -1
  78. package/dist/routes/models.d.ts +7 -90
  79. package/dist/routes/models.d.ts.map +1 -1
  80. package/dist/routes/models.js +53 -51
  81. package/dist/routes/models.js.map +1 -1
  82. package/dist/routes/providers.d.ts +5 -34
  83. package/dist/routes/providers.d.ts.map +1 -1
  84. package/dist/routes/providers.js +13 -11
  85. package/dist/routes/providers.js.map +1 -1
  86. package/dist/routes/sessions.d.ts +7 -78
  87. package/dist/routes/sessions.d.ts.map +1 -1
  88. package/dist/routes/sessions.js +35 -34
  89. package/dist/routes/sessions.js.map +1 -1
  90. package/dist/routes/share.d.ts +7 -60
  91. package/dist/routes/share.d.ts.map +1 -1
  92. package/dist/routes/share.js +80 -77
  93. package/dist/routes/share.js.map +1 -1
  94. package/dist/routes/voice.d.ts +8 -91
  95. package/dist/routes/voice.d.ts.map +1 -1
  96. package/dist/routes/voice.js +62 -59
  97. package/dist/routes/voice.js.map +1 -1
  98. package/dist/share/staging.d.ts +4 -4
  99. package/dist/share/staging.d.ts.map +1 -1
  100. package/dist/share/staging.js +7 -8
  101. package/dist/share/staging.js.map +1 -1
  102. package/dist/voice/deepgram-token.d.ts +1 -1
  103. package/dist/voice/deepgram-token.d.ts.map +1 -1
  104. package/dist/voice/deepgram-token.js +1 -2
  105. package/dist/voice/deepgram-token.js.map +1 -1
  106. package/dist/voice/keyterm-builder.d.ts +23 -8
  107. package/dist/voice/keyterm-builder.d.ts.map +1 -1
  108. package/dist/voice/keyterm-builder.js +67 -43
  109. package/dist/voice/keyterm-builder.js.map +1 -1
  110. package/dist/voice/speech-providers.d.ts +6 -4
  111. package/dist/voice/speech-providers.d.ts.map +1 -1
  112. package/dist/voice/speech-providers.js +28 -25
  113. package/dist/voice/speech-providers.js.map +1 -1
  114. package/dist/ws/bridge.d.ts.map +1 -1
  115. package/dist/ws/bridge.js +2 -3
  116. package/dist/ws/bridge.js.map +1 -1
  117. package/dist/ws/clients.d.ts +18 -10
  118. package/dist/ws/clients.d.ts.map +1 -1
  119. package/dist/ws/clients.js +35 -37
  120. package/dist/ws/clients.js.map +1 -1
  121. package/dist/ws/connection.d.ts.map +1 -1
  122. package/dist/ws/connection.js +5 -7
  123. package/dist/ws/connection.js.map +1 -1
  124. package/dist/ws/dispatch.d.ts.map +1 -1
  125. package/dist/ws/dispatch.js +1 -2
  126. package/dist/ws/dispatch.js.map +1 -1
  127. package/dist/ws/host.d.ts +16 -12
  128. package/dist/ws/host.d.ts.map +1 -1
  129. package/dist/ws/host.js +14 -23
  130. package/dist/ws/host.js.map +1 -1
  131. package/dist/ws/routing.d.ts +2 -1
  132. package/dist/ws/routing.d.ts.map +1 -1
  133. package/dist/ws/routing.js +5 -6
  134. package/dist/ws/routing.js.map +1 -1
  135. package/dist/ws/run-session.js +1 -1
  136. package/dist/ws/run-session.js.map +1 -1
  137. package/dist/ws/session-catalog.d.ts +2 -2
  138. package/dist/ws/session-catalog.d.ts.map +1 -1
  139. package/dist/ws/session-catalog.js +2 -3
  140. package/dist/ws/session-catalog.js.map +1 -1
  141. package/package.json +8 -5
  142. package/src/agent/backend.ts +509 -340
  143. package/src/app.ts +157 -36
  144. package/src/brain/client.ts +166 -143
  145. package/src/config/env.ts +401 -0
  146. package/src/cron/scheduler.ts +77 -59
  147. package/src/db/brain-db.ts +104 -0
  148. package/src/db/client.ts +12 -31
  149. package/src/db/settings.ts +12 -14
  150. package/src/files/walker.ts +6 -10
  151. package/src/graph/reader.ts +26 -15
  152. package/src/index.ts +56 -17
  153. package/src/middleware/auth.ts +51 -45
  154. package/src/middleware/origin.ts +1 -8
  155. package/src/middleware/passkeys.ts +72 -68
  156. package/src/middleware/tailscale.ts +22 -17
  157. package/src/routes/brain.ts +31 -30
  158. package/src/routes/files.ts +10 -7
  159. package/src/routes/graph.ts +9 -6
  160. package/src/routes/health.ts +17 -10
  161. package/src/routes/models.ts +19 -15
  162. package/src/routes/providers.ts +14 -15
  163. package/src/routes/sessions.ts +18 -11
  164. package/src/routes/share.ts +35 -24
  165. package/src/routes/voice.ts +78 -68
  166. package/src/share/staging.ts +10 -8
  167. package/src/voice/deepgram-token.ts +4 -2
  168. package/src/voice/keyterm-builder.ts +90 -56
  169. package/src/voice/speech-providers.ts +28 -24
  170. package/src/ws/bridge.ts +2 -3
  171. package/src/ws/clients.ts +38 -41
  172. package/src/ws/connection.ts +5 -7
  173. package/src/ws/dispatch.ts +1 -2
  174. package/src/ws/host.ts +24 -27
  175. package/src/ws/routing.ts +6 -10
  176. package/src/ws/run-session.ts +1 -1
  177. package/src/ws/session-catalog.ts +2 -3
  178. package/dist/ws/handler.d.ts +0 -34
  179. package/dist/ws/handler.d.ts.map +0 -1
  180. package/dist/ws/handler.js +0 -33
  181. package/dist/ws/handler.js.map +0 -1
  182. package/src/ws/handler.ts +0 -50
@@ -1,6 +1,5 @@
1
1
  import { Hono } from "hono";
2
2
  import { listDirectory, readFileContent, resolveAncestors, resolveForRaw, buildWikilinkMap, NotFoundError, PathEscapeError, TooLargeError, } from "../files/walker.js";
3
- let wikilinkCache = null;
4
3
  const WIKILINK_TTL_MS = 30_000;
5
4
  function errorResponse(err) {
6
5
  if (err instanceof PathEscapeError) {
@@ -15,77 +14,81 @@ function errorResponse(err) {
15
14
  console.error("[files]", err);
16
15
  return { body: { error: err instanceof Error ? err.message : "internal_error" }, status: 500 };
17
16
  }
18
- export const filesRoutes = new Hono()
19
- .get("/files/tree", async (c) => {
20
- const path = c.req.query("path") ?? "";
21
- try {
22
- const entries = await listDirectory(path);
23
- return c.json({ path, entries });
24
- }
25
- catch (err) {
26
- const { body, status } = errorResponse(err);
27
- return c.json(body, status);
28
- }
29
- })
30
- .get("/files/content", async (c) => {
31
- const path = c.req.query("path");
32
- if (!path)
33
- return c.json({ error: "missing_path" }, 400);
34
- const raw = c.req.query("raw") === "1";
35
- try {
36
- if (raw) {
37
- const { abs, mime, size } = await resolveForRaw(path);
38
- const file = Bun.file(abs);
39
- return new Response(file, {
40
- status: 200,
41
- headers: {
42
- "Content-Type": mime,
43
- "Content-Length": String(size),
44
- "Content-Disposition": "inline",
45
- "X-Content-Type-Options": "nosniff",
46
- "Content-Security-Policy": "default-src 'none'; img-src 'self' data:; style-src 'unsafe-inline'",
47
- "Cache-Control": "private, max-age=0, must-revalidate",
48
- },
17
+ export function createFilesRoutes(deps) {
18
+ const { brainRoot } = deps;
19
+ let wikilinkCache = null;
20
+ return new Hono()
21
+ .get("/files/tree", async (c) => {
22
+ const path = c.req.query("path") ?? "";
23
+ try {
24
+ const entries = await listDirectory(path, brainRoot);
25
+ return c.json({ path, entries });
26
+ }
27
+ catch (err) {
28
+ const { body, status } = errorResponse(err);
29
+ return c.json(body, status);
30
+ }
31
+ })
32
+ .get("/files/content", async (c) => {
33
+ const path = c.req.query("path");
34
+ if (!path)
35
+ return c.json({ error: "missing_path" }, 400);
36
+ const raw = c.req.query("raw") === "1";
37
+ try {
38
+ if (raw) {
39
+ const { abs, mime, size } = await resolveForRaw(path, brainRoot);
40
+ const file = Bun.file(abs);
41
+ return new Response(file, {
42
+ status: 200,
43
+ headers: {
44
+ "Content-Type": mime,
45
+ "Content-Length": String(size),
46
+ "Content-Disposition": "inline",
47
+ "X-Content-Type-Options": "nosniff",
48
+ "Content-Security-Policy": "default-src 'none'; img-src 'self' data:; style-src 'unsafe-inline'",
49
+ "Cache-Control": "private, max-age=0, must-revalidate",
50
+ },
51
+ });
52
+ }
53
+ const result = await readFileContent(path, brainRoot);
54
+ return c.json({ path, ...result });
55
+ }
56
+ catch (err) {
57
+ const { body, status } = errorResponse(err);
58
+ return c.json(body, status);
59
+ }
60
+ })
61
+ .get("/files/resolve", async (c) => {
62
+ const path = c.req.query("path");
63
+ if (!path)
64
+ return c.json({ error: "missing_path" }, 400);
65
+ try {
66
+ const result = await resolveAncestors(path, brainRoot);
67
+ return c.json({ path, ...result });
68
+ }
69
+ catch (err) {
70
+ const { body, status } = errorResponse(err);
71
+ return c.json(body, status);
72
+ }
73
+ })
74
+ .get("/files/wikilinks", async (c) => {
75
+ const refresh = c.req.query("refresh") === "1";
76
+ const now = Date.now();
77
+ try {
78
+ if (refresh || !wikilinkCache || now - wikilinkCache.generatedAt > WIKILINK_TTL_MS) {
79
+ const map = await buildWikilinkMap(brainRoot);
80
+ wikilinkCache = { generatedAt: now, map };
81
+ }
82
+ return c.json({
83
+ generatedAt: wikilinkCache.generatedAt,
84
+ count: Object.keys(wikilinkCache.map).length,
85
+ slugs: wikilinkCache.map,
49
86
  });
50
87
  }
51
- const result = await readFileContent(path);
52
- return c.json({ path, ...result });
53
- }
54
- catch (err) {
55
- const { body, status } = errorResponse(err);
56
- return c.json(body, status);
57
- }
58
- })
59
- .get("/files/resolve", async (c) => {
60
- const path = c.req.query("path");
61
- if (!path)
62
- return c.json({ error: "missing_path" }, 400);
63
- try {
64
- const result = await resolveAncestors(path);
65
- return c.json({ path, ...result });
66
- }
67
- catch (err) {
68
- const { body, status } = errorResponse(err);
69
- return c.json(body, status);
70
- }
71
- })
72
- .get("/files/wikilinks", async (c) => {
73
- const refresh = c.req.query("refresh") === "1";
74
- const now = Date.now();
75
- try {
76
- if (refresh || !wikilinkCache || now - wikilinkCache.generatedAt > WIKILINK_TTL_MS) {
77
- const map = await buildWikilinkMap();
78
- wikilinkCache = { generatedAt: now, map };
88
+ catch (err) {
89
+ const { body, status } = errorResponse(err);
90
+ return c.json(body, status);
79
91
  }
80
- return c.json({
81
- generatedAt: wikilinkCache.generatedAt,
82
- count: Object.keys(wikilinkCache.map).length,
83
- slugs: wikilinkCache.map,
84
- });
85
- }
86
- catch (err) {
87
- const { body, status } = errorResponse(err);
88
- return c.json(body, status);
89
- }
90
- });
92
+ });
93
+ }
91
94
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/routes/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/routes/files.ts"],"names":[],"mappings":"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"}
@@ -1,256 +1,5 @@
1
- export declare const graphRoutes: import("hono/hono-base").HonoBase<import("hono/types").BlankEnv, {
2
- "/graph/meta": {
3
- $get: {
4
- input: {};
5
- output: {
6
- available: boolean;
7
- reason?: "schema" | "not_computed" | undefined;
8
- schemaVersion: number;
9
- computedAt: string | null;
10
- stale: boolean;
11
- nodeCount: number;
12
- edgeCount: number;
13
- communities: {
14
- community: number;
15
- size: number;
16
- label: string | null;
17
- topTerms: string[];
18
- }[];
19
- defaultRoot: {
20
- path: string;
21
- virtual: boolean;
22
- } | null;
23
- layoutSkipped?: boolean | undefined;
24
- };
25
- outputFormat: "json";
26
- status: import("hono/utils/http-status").ContentfulStatusCode;
27
- };
28
- };
29
- } & {
30
- "/graph/clusters": {
31
- $get: {
32
- input: {};
33
- output: {
34
- readonly error: "invalid_param";
35
- readonly param: string;
36
- };
37
- outputFormat: "json";
38
- status: 400;
39
- } | {
40
- input: {};
41
- output: {
42
- nodes: {
43
- id: number;
44
- path: string;
45
- title: string;
46
- type: string;
47
- inDegree: number;
48
- outDegree: number;
49
- community?: number | undefined;
50
- pagerank?: number | undefined;
51
- x?: number | undefined;
52
- y?: number | undefined;
53
- distance?: number | undefined;
54
- virtual?: boolean | undefined;
55
- }[];
56
- edges: {
57
- source: number;
58
- target: number;
59
- }[];
60
- truncated: boolean;
61
- reachableCount?: number | undefined;
62
- unreachableCount?: number | undefined;
63
- };
64
- outputFormat: "json";
65
- status: import("hono/utils/http-status").ContentfulStatusCode;
66
- } | {
67
- input: {};
68
- output: {
69
- error: string;
70
- reason?: string | undefined;
71
- param?: string | undefined;
72
- };
73
- outputFormat: "json";
74
- status: 500 | 400 | 404 | 503;
75
- };
76
- };
77
- } & {
78
- "/graph/neighborhood": {
79
- $get: {
80
- input: {};
81
- output: {
82
- readonly error: "invalid_param";
83
- readonly param: string;
84
- };
85
- outputFormat: "json";
86
- status: 400;
87
- } | {
88
- input: {};
89
- output: {
90
- nodes: {
91
- id: number;
92
- path: string;
93
- title: string;
94
- type: string;
95
- inDegree: number;
96
- outDegree: number;
97
- community?: number | undefined;
98
- pagerank?: number | undefined;
99
- x?: number | undefined;
100
- y?: number | undefined;
101
- distance?: number | undefined;
102
- virtual?: boolean | undefined;
103
- }[];
104
- edges: {
105
- source: number;
106
- target: number;
107
- }[];
108
- truncated: boolean;
109
- reachableCount?: number | undefined;
110
- unreachableCount?: number | undefined;
111
- };
112
- outputFormat: "json";
113
- status: import("hono/utils/http-status").ContentfulStatusCode;
114
- } | {
115
- input: {};
116
- output: {
117
- error: string;
118
- reason?: string | undefined;
119
- param?: string | undefined;
120
- };
121
- outputFormat: "json";
122
- status: 500 | 400 | 404 | 503;
123
- } | {
124
- input: {};
125
- output: {
126
- error: string;
127
- };
128
- outputFormat: "json";
129
- status: 400;
130
- };
131
- };
132
- } & {
133
- "/graph/discovery": {
134
- $get: {
135
- input: {};
136
- output: {
137
- readonly error: "invalid_param";
138
- readonly param: string;
139
- };
140
- outputFormat: "json";
141
- status: 400;
142
- } | {
143
- input: {};
144
- output: {
145
- nodes: {
146
- id: number;
147
- path: string;
148
- title: string;
149
- type: string;
150
- inDegree: number;
151
- outDegree: number;
152
- community?: number | undefined;
153
- pagerank?: number | undefined;
154
- x?: number | undefined;
155
- y?: number | undefined;
156
- distance?: number | undefined;
157
- virtual?: boolean | undefined;
158
- }[];
159
- edges: {
160
- source: number;
161
- target: number;
162
- }[];
163
- truncated: boolean;
164
- reachableCount?: number | undefined;
165
- unreachableCount?: number | undefined;
166
- };
167
- outputFormat: "json";
168
- status: import("hono/utils/http-status").ContentfulStatusCode;
169
- } | {
170
- input: {};
171
- output: {
172
- error: string;
173
- reason?: string | undefined;
174
- param?: string | undefined;
175
- };
176
- outputFormat: "json";
177
- status: 500 | 400 | 404 | 503;
178
- };
179
- };
180
- } & {
181
- "/graph/maintenance": {
182
- $get: {
183
- input: {};
184
- output: {
185
- readonly error: "invalid_param";
186
- readonly param: string;
187
- };
188
- outputFormat: "json";
189
- status: 400;
190
- } | {
191
- input: {};
192
- output: {
193
- error: string;
194
- reason?: string | undefined;
195
- param?: string | undefined;
196
- };
197
- outputFormat: "json";
198
- status: 500 | 400 | 404 | 503;
199
- } | {
200
- input: {};
201
- output: {
202
- orphans: {
203
- id: number;
204
- path: string;
205
- title: string;
206
- type: string;
207
- inDegree: number;
208
- outDegree: number;
209
- community?: number | undefined;
210
- pagerank?: number | undefined;
211
- x?: number | undefined;
212
- y?: number | undefined;
213
- distance?: number | undefined;
214
- virtual?: boolean | undefined;
215
- }[];
216
- unreachable: {
217
- id: number;
218
- path: string;
219
- title: string;
220
- type: string;
221
- inDegree: number;
222
- outDegree: number;
223
- community?: number | undefined;
224
- pagerank?: number | undefined;
225
- x?: number | undefined;
226
- y?: number | undefined;
227
- distance?: number | undefined;
228
- virtual?: boolean | undefined;
229
- }[];
230
- brokenLinks: {
231
- sourcePath: string;
232
- target: string;
233
- }[];
234
- stale: {
235
- id: number;
236
- path: string;
237
- title: string;
238
- type: string;
239
- inDegree: number;
240
- outDegree: number;
241
- community?: number | undefined;
242
- pagerank?: number | undefined;
243
- x?: number | undefined;
244
- y?: number | undefined;
245
- distance?: number | undefined;
246
- virtual?: boolean | undefined;
247
- updated: string;
248
- }[];
249
- staleDays: number;
250
- };
251
- outputFormat: "json";
252
- status: import("hono/utils/http-status").ContentfulStatusCode;
253
- };
254
- };
255
- }, "/", "/graph/maintenance">;
1
+ import { Hono } from "hono";
2
+ export declare function createGraphRoutes(deps: {
3
+ brainRoot: string;
4
+ }): Hono;
256
5
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/routes/graph.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA9BP,MAAM;yBAAW,MAAM;wBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAvC,MAAM;yBAAW,MAAM;wBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAvC,MAAM;yBAAW,MAAM;wBAAU,MAAM;;;;;;;;;;;;;;;;;;;uBAAvC,MAAM;yBAAW,MAAM;wBAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA0FpD,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/routes/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAmD5B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA+DnE"}
@@ -33,68 +33,71 @@ function directionParam(raw, allowed, fallback) {
33
33
  function invalid(param) {
34
34
  return { error: "invalid_param", param };
35
35
  }
36
- export const graphRoutes = new Hono()
37
- .get("/graph/meta", (c) => c.json(getGraphMeta()))
38
- .get("/graph/clusters", (c) => {
39
- const rawCommunity = c.req.query("community");
40
- let community;
41
- if (rawCommunity !== undefined && rawCommunity !== "") {
42
- if (!/^\d+$/.test(rawCommunity))
43
- return c.json(invalid("community"), 400);
44
- community = Number.parseInt(rawCommunity, 10);
45
- }
46
- try {
47
- return c.json(getClusters({ community, includeIsolates: c.req.query("isolates") === "1" }));
48
- }
49
- catch (err) {
50
- const { body, status } = errorResponse(err);
51
- return c.json(body, status);
52
- }
53
- })
54
- .get("/graph/neighborhood", (c) => {
55
- const center = c.req.query("center");
56
- if (!center)
57
- return c.json({ error: "missing_center" }, 400);
58
- const depth = intParam(c.req.query("depth"), 1, MAX_NEIGHBORHOOD_DEPTH, 1);
59
- if (depth === null)
60
- return c.json(invalid("depth"), 400);
61
- const direction = directionParam(c.req.query("direction"), ["in", "out", "both"], "both");
62
- if (direction === null)
63
- return c.json(invalid("direction"), 400);
64
- try {
65
- return c.json(getNeighborhood({ center, depth, direction }));
66
- }
67
- catch (err) {
68
- const { body, status } = errorResponse(err);
69
- return c.json(body, status);
70
- }
71
- })
72
- .get("/graph/discovery", (c) => {
73
- const root = c.req.query("root") || undefined;
74
- const direction = directionParam(c.req.query("direction"), ["out", "both"], "out");
75
- if (direction === null)
76
- return c.json(invalid("direction"), 400);
77
- const maxDepth = intParam(c.req.query("maxDepth"), 1, MAX_DISCOVERY_DEPTH, MAX_DISCOVERY_DEPTH);
78
- if (maxDepth === null)
79
- return c.json(invalid("maxDepth"), 400);
80
- try {
81
- return c.json(getDiscovery({ root, direction, maxDepth }));
82
- }
83
- catch (err) {
84
- const { body, status } = errorResponse(err);
85
- return c.json(body, status);
86
- }
87
- })
88
- .get("/graph/maintenance", (c) => {
89
- const staleDays = intParam(c.req.query("staleDays"), 1, 3650, DEFAULT_STALE_DAYS);
90
- if (staleDays === null)
91
- return c.json(invalid("staleDays"), 400);
92
- try {
93
- return c.json(getMaintenance({ staleDays }));
94
- }
95
- catch (err) {
96
- const { body, status } = errorResponse(err);
97
- return c.json(body, status);
98
- }
99
- });
36
+ export function createGraphRoutes(deps) {
37
+ const { brainRoot } = deps;
38
+ return new Hono()
39
+ .get("/graph/meta", (c) => c.json(getGraphMeta({ brainPath: brainRoot })))
40
+ .get("/graph/clusters", (c) => {
41
+ const rawCommunity = c.req.query("community");
42
+ let community;
43
+ if (rawCommunity !== undefined && rawCommunity !== "") {
44
+ if (!/^\d+$/.test(rawCommunity))
45
+ return c.json(invalid("community"), 400);
46
+ community = Number.parseInt(rawCommunity, 10);
47
+ }
48
+ try {
49
+ return c.json(getClusters({ brainPath: brainRoot, community, includeIsolates: c.req.query("isolates") === "1" }));
50
+ }
51
+ catch (err) {
52
+ const { body, status } = errorResponse(err);
53
+ return c.json(body, status);
54
+ }
55
+ })
56
+ .get("/graph/neighborhood", (c) => {
57
+ const center = c.req.query("center");
58
+ if (!center)
59
+ return c.json({ error: "missing_center" }, 400);
60
+ const depth = intParam(c.req.query("depth"), 1, MAX_NEIGHBORHOOD_DEPTH, 1);
61
+ if (depth === null)
62
+ return c.json(invalid("depth"), 400);
63
+ const direction = directionParam(c.req.query("direction"), ["in", "out", "both"], "both");
64
+ if (direction === null)
65
+ return c.json(invalid("direction"), 400);
66
+ try {
67
+ return c.json(getNeighborhood({ brainPath: brainRoot, center, depth, direction }));
68
+ }
69
+ catch (err) {
70
+ const { body, status } = errorResponse(err);
71
+ return c.json(body, status);
72
+ }
73
+ })
74
+ .get("/graph/discovery", (c) => {
75
+ const root = c.req.query("root") || undefined;
76
+ const direction = directionParam(c.req.query("direction"), ["out", "both"], "out");
77
+ if (direction === null)
78
+ return c.json(invalid("direction"), 400);
79
+ const maxDepth = intParam(c.req.query("maxDepth"), 1, MAX_DISCOVERY_DEPTH, MAX_DISCOVERY_DEPTH);
80
+ if (maxDepth === null)
81
+ return c.json(invalid("maxDepth"), 400);
82
+ try {
83
+ return c.json(getDiscovery({ brainPath: brainRoot, root, direction, maxDepth }));
84
+ }
85
+ catch (err) {
86
+ const { body, status } = errorResponse(err);
87
+ return c.json(body, status);
88
+ }
89
+ })
90
+ .get("/graph/maintenance", (c) => {
91
+ const staleDays = intParam(c.req.query("staleDays"), 1, 3650, DEFAULT_STALE_DAYS);
92
+ if (staleDays === null)
93
+ return c.json(invalid("staleDays"), 400);
94
+ try {
95
+ return c.json(getMaintenance({ brainPath: brainRoot, staleDays }));
96
+ }
97
+ catch (err) {
98
+ const { body, status } = errorResponse(err);
99
+ return c.json(body, status);
100
+ }
101
+ });
102
+ }
100
103
  //# sourceMappingURL=graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/routes/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/routes/graph.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Hono } from "hono";
1
2
  export declare const healthRoutes: import("hono/hono-base").HonoBase<import("hono/types").BlankEnv, {
2
3
  "/health": {
3
4
  $get: {
@@ -12,26 +13,11 @@ export declare const healthRoutes: import("hono/hono-base").HonoBase<import("hon
12
13
  };
13
14
  };
14
15
  }, "/", "/health">;
15
- export declare const statusRoutes: import("hono/hono-base").HonoBase<import("hono/types").BlankEnv, {
16
- "/status": {
17
- $get: {
18
- input: {};
19
- output: {
20
- healthy: true;
21
- uptime: number;
22
- version: string;
23
- cronJobs: {
24
- name: string;
25
- lastRunAt: any;
26
- lastStatus: any;
27
- lastDurationMs: any;
28
- lastError: any;
29
- }[];
30
- activeSession: boolean;
31
- };
32
- outputFormat: "json";
33
- status: import("hono/utils/http-status").ContentfulStatusCode;
34
- };
35
- };
36
- }, "/", "/status">;
16
+ export interface StatusDeps {
17
+ /** Git SHA baked at build time (SOURCE_COMMIT), "dev" when unset. */
18
+ sourceCommit: string;
19
+ getCronStatus(): unknown;
20
+ isTurnActive(): boolean;
21
+ }
22
+ export declare function createStatusRoutes(deps: StatusDeps): Hono;
37
23
  //# sourceMappingURL=health.d.ts.map