@threadbase-sh/streamer 1.62.0 → 1.64.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 (300) hide show
  1. package/dist/agent/agent-client.d.ts +14 -0
  2. package/dist/agent/agent-client.d.ts.map +1 -0
  3. package/dist/agent/agent-config.d.ts +24 -0
  4. package/dist/agent/agent-config.d.ts.map +1 -0
  5. package/dist/agent/conversation-writer.d.ts +13 -0
  6. package/dist/agent/conversation-writer.d.ts.map +1 -0
  7. package/dist/agent/dedupe.d.ts +6 -0
  8. package/dist/agent/dedupe.d.ts.map +1 -0
  9. package/dist/agent/errors.d.ts +23 -0
  10. package/dist/agent/errors.d.ts.map +1 -0
  11. package/dist/agent/handle-send-agent-input.d.ts +21 -0
  12. package/dist/agent/handle-send-agent-input.d.ts.map +1 -0
  13. package/dist/agent/handle-start-agent-session.d.ts +21 -0
  14. package/dist/agent/handle-start-agent-session.d.ts.map +1 -0
  15. package/dist/agent/history-mapper.d.ts +4 -0
  16. package/dist/agent/history-mapper.d.ts.map +1 -0
  17. package/dist/agent/payload-guard.d.ts +29 -0
  18. package/dist/agent/payload-guard.d.ts.map +1 -0
  19. package/dist/api/app.d.ts +28 -0
  20. package/dist/api/app.d.ts.map +1 -0
  21. package/dist/api/handlers/conversations.handlers.d.ts +69 -0
  22. package/dist/api/handlers/conversations.handlers.d.ts.map +1 -0
  23. package/dist/api/handlers/http-helpers.d.ts +50 -0
  24. package/dist/api/handlers/http-helpers.d.ts.map +1 -0
  25. package/dist/api/handlers/sessions.handlers.d.ts +230 -0
  26. package/dist/api/handlers/sessions.handlers.d.ts.map +1 -0
  27. package/dist/api/middleware/auth.middleware.d.ts +5 -0
  28. package/dist/api/middleware/auth.middleware.d.ts.map +1 -0
  29. package/dist/api/middleware/cors.middleware.d.ts +5 -0
  30. package/dist/api/middleware/cors.middleware.d.ts.map +1 -0
  31. package/dist/api/middleware/error.middleware.d.ts +4 -0
  32. package/dist/api/middleware/error.middleware.d.ts.map +1 -0
  33. package/dist/api/routes/backup.routes.d.ts +5 -0
  34. package/dist/api/routes/backup.routes.d.ts.map +1 -0
  35. package/dist/api/routes/browse.routes.d.ts +5 -0
  36. package/dist/api/routes/browse.routes.d.ts.map +1 -0
  37. package/dist/api/routes/cacheAlert.routes.d.ts +5 -0
  38. package/dist/api/routes/cacheAlert.routes.d.ts.map +1 -0
  39. package/dist/api/routes/config.routes.d.ts +5 -0
  40. package/dist/api/routes/config.routes.d.ts.map +1 -0
  41. package/dist/api/routes/conversations.routes.d.ts +5 -0
  42. package/dist/api/routes/conversations.routes.d.ts.map +1 -0
  43. package/dist/api/routes/devices.routes.d.ts +17 -0
  44. package/dist/api/routes/devices.routes.d.ts.map +1 -0
  45. package/dist/api/routes/diagnostics.routes.d.ts +5 -0
  46. package/dist/api/routes/diagnostics.routes.d.ts.map +1 -0
  47. package/dist/api/routes/health.routes.d.ts +5 -0
  48. package/dist/api/routes/health.routes.d.ts.map +1 -0
  49. package/dist/api/routes/logs.routes.d.ts +3 -0
  50. package/dist/api/routes/logs.routes.d.ts.map +1 -0
  51. package/dist/api/routes/misc.routes.d.ts +77 -0
  52. package/dist/api/routes/misc.routes.d.ts.map +1 -0
  53. package/dist/api/routes/pair.routes.d.ts +5 -0
  54. package/dist/api/routes/pair.routes.d.ts.map +1 -0
  55. package/dist/api/routes/progress.routes.d.ts +39 -0
  56. package/dist/api/routes/progress.routes.d.ts.map +1 -0
  57. package/dist/api/routes/projects.routes.d.ts +5 -0
  58. package/dist/api/routes/projects.routes.d.ts.map +1 -0
  59. package/dist/api/routes/providers.routes.d.ts +19 -0
  60. package/dist/api/routes/providers.routes.d.ts.map +1 -0
  61. package/dist/api/routes/scanner.routes.d.ts +5 -0
  62. package/dist/api/routes/scanner.routes.d.ts.map +1 -0
  63. package/dist/api/routes/sessions.routes.d.ts +6 -0
  64. package/dist/api/routes/sessions.routes.d.ts.map +1 -0
  65. package/dist/api/routes/ws.routes.d.ts +7 -0
  66. package/dist/api/routes/ws.routes.d.ts.map +1 -0
  67. package/dist/api/types/api-deps.d.ts +114 -0
  68. package/dist/api/types/api-deps.d.ts.map +1 -0
  69. package/dist/auth.d.ts +81 -0
  70. package/dist/auth.d.ts.map +1 -0
  71. package/dist/browse.d.ts +17 -0
  72. package/dist/browse.d.ts.map +1 -0
  73. package/dist/claude-flags.d.ts +76 -0
  74. package/dist/claude-flags.d.ts.map +1 -0
  75. package/dist/cli.cjs +1917 -1795
  76. package/dist/cli.cjs.map +1 -1
  77. package/dist/codex-pty-runner.d.ts +90 -0
  78. package/dist/codex-pty-runner.d.ts.map +1 -0
  79. package/dist/config/update-config.d.ts +13 -0
  80. package/dist/config/update-config.d.ts.map +1 -0
  81. package/dist/conversation-cache.d.ts +336 -0
  82. package/dist/conversation-cache.d.ts.map +1 -0
  83. package/dist/db/config.d.ts +11 -0
  84. package/dist/db/config.d.ts.map +1 -0
  85. package/dist/db/index.d.ts +5 -0
  86. package/dist/db/index.d.ts.map +1 -0
  87. package/dist/db/migrations.d.ts +3 -0
  88. package/dist/db/migrations.d.ts.map +1 -0
  89. package/dist/db/pool.d.ts +5 -0
  90. package/dist/db/pool.d.ts.map +1 -0
  91. package/dist/db/query-timing.d.ts +52 -0
  92. package/dist/db/query-timing.d.ts.map +1 -0
  93. package/dist/db/repositories/cacheMetadata.repository.d.ts +12 -0
  94. package/dist/db/repositories/cacheMetadata.repository.d.ts.map +1 -0
  95. package/dist/db/repositories/conversations.repository.d.ts +27 -0
  96. package/dist/db/repositories/conversations.repository.d.ts.map +1 -0
  97. package/dist/db/repositories/devices.repository.d.ts +137 -0
  98. package/dist/db/repositories/devices.repository.d.ts.map +1 -0
  99. package/dist/db/repositories/managed-sessions.repository.d.ts +127 -0
  100. package/dist/db/repositories/managed-sessions.repository.d.ts.map +1 -0
  101. package/dist/db/repositories/projects.repository.d.ts +28 -0
  102. package/dist/db/repositories/projects.repository.d.ts.map +1 -0
  103. package/dist/db/repositories/push.repository.d.ts +186 -0
  104. package/dist/db/repositories/push.repository.d.ts.map +1 -0
  105. package/dist/db/repositories/sessions.repository.d.ts +16 -0
  106. package/dist/db/repositories/sessions.repository.d.ts.map +1 -0
  107. package/dist/db/runtime-store.d.ts +80 -0
  108. package/dist/db/runtime-store.d.ts.map +1 -0
  109. package/dist/db/sqlite-migrate.d.ts +13 -0
  110. package/dist/db/sqlite-migrate.d.ts.map +1 -0
  111. package/dist/db/upload-records.d.ts +11 -0
  112. package/dist/db/upload-records.d.ts.map +1 -0
  113. package/dist/e2ee/noise.d.ts +261 -0
  114. package/dist/e2ee/noise.d.ts.map +1 -0
  115. package/dist/e2ee/pair-payload.d.ts +60 -0
  116. package/dist/e2ee/pair-payload.d.ts.map +1 -0
  117. package/dist/e2ee/pair-request.d.ts +24 -0
  118. package/dist/e2ee/pair-request.d.ts.map +1 -0
  119. package/dist/external-tails.d.ts +91 -0
  120. package/dist/external-tails.d.ts.map +1 -0
  121. package/dist/feature-flags.d.ts +212 -0
  122. package/dist/feature-flags.d.ts.map +1 -0
  123. package/dist/handlers/handleListProjects.d.ts +3 -0
  124. package/dist/handlers/handleListProjects.d.ts.map +1 -0
  125. package/dist/index.cjs +84 -15
  126. package/dist/index.cjs.map +1 -1
  127. package/dist/index.d.ts +18 -2571
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +84 -15
  130. package/dist/index.js.map +1 -1
  131. package/dist/lifecycle/constants.d.ts +21 -0
  132. package/dist/lifecycle/constants.d.ts.map +1 -0
  133. package/dist/lifecycle/process-liveness.d.ts +7 -0
  134. package/dist/lifecycle/process-liveness.d.ts.map +1 -0
  135. package/dist/live-session-manager.d.ts +59 -0
  136. package/dist/live-session-manager.d.ts.map +1 -0
  137. package/dist/logger.d.ts +14 -0
  138. package/dist/logger.d.ts.map +1 -0
  139. package/dist/pair-store.d.ts +60 -0
  140. package/dist/pair-store.d.ts.map +1 -0
  141. package/dist/platform.d.ts +25 -0
  142. package/dist/platform.d.ts.map +1 -0
  143. package/dist/process-discovery.d.ts +35 -0
  144. package/dist/process-discovery.d.ts.map +1 -0
  145. package/dist/providers.d.ts +7 -0
  146. package/dist/providers.d.ts.map +1 -0
  147. package/dist/pty-host/protocol.d.ts +270 -0
  148. package/dist/pty-host/protocol.d.ts.map +1 -0
  149. package/dist/pty-host/remote-session-runner.d.ts +133 -0
  150. package/dist/pty-host/remote-session-runner.d.ts.map +1 -0
  151. package/dist/pty-host/socket.d.ts +54 -0
  152. package/dist/pty-host/socket.d.ts.map +1 -0
  153. package/dist/pty-host/spawn-host.d.ts +30 -0
  154. package/dist/pty-host/spawn-host.d.ts.map +1 -0
  155. package/dist/pty-manager.d.ts +65 -0
  156. package/dist/pty-manager.d.ts.map +1 -0
  157. package/dist/pty-shared.d.ts +27 -0
  158. package/dist/pty-shared.d.ts.map +1 -0
  159. package/dist/scanner-manager.d.ts +126 -0
  160. package/dist/scanner-manager.d.ts.map +1 -0
  161. package/dist/schemas/cacheAlert.schema.d.ts +14 -0
  162. package/dist/schemas/cacheAlert.schema.d.ts.map +1 -0
  163. package/dist/schemas/claudeFlags.schema.d.ts +7 -0
  164. package/dist/schemas/claudeFlags.schema.d.ts.map +1 -0
  165. package/dist/schemas/project.schema.d.ts +18 -0
  166. package/dist/schemas/project.schema.d.ts.map +1 -0
  167. package/dist/schemas/updateConfig.schema.d.ts +19 -0
  168. package/dist/schemas/updateConfig.schema.d.ts.map +1 -0
  169. package/dist/seal.d.ts +14 -0
  170. package/dist/seal.d.ts.map +1 -0
  171. package/dist/server-identity.d.ts +43 -0
  172. package/dist/server-identity.d.ts.map +1 -0
  173. package/dist/server-wiring.d.ts +184 -0
  174. package/dist/server-wiring.d.ts.map +1 -0
  175. package/dist/server.d.ts +390 -0
  176. package/dist/server.d.ts.map +1 -0
  177. package/dist/services/backup/backup.d.ts +103 -0
  178. package/dist/services/backup/backup.d.ts.map +1 -0
  179. package/dist/services/cache/cacheMetadata.d.ts +8 -0
  180. package/dist/services/cache/cacheMetadata.d.ts.map +1 -0
  181. package/dist/services/cache-integrity/alertStore.d.ts +24 -0
  182. package/dist/services/cache-integrity/alertStore.d.ts.map +1 -0
  183. package/dist/services/cache-integrity/backup.d.ts +8 -0
  184. package/dist/services/cache-integrity/backup.d.ts.map +1 -0
  185. package/dist/services/cache-integrity/cacheIntegrityMonitor.d.ts +71 -0
  186. package/dist/services/cache-integrity/cacheIntegrityMonitor.d.ts.map +1 -0
  187. package/dist/services/conversations/conversationWatcher.d.ts +99 -0
  188. package/dist/services/conversations/conversationWatcher.d.ts.map +1 -0
  189. package/dist/services/conversations/findSearchTarget.d.ts +30 -0
  190. package/dist/services/conversations/findSearchTarget.d.ts.map +1 -0
  191. package/dist/services/conversations/isAgentConversation.d.ts +8 -0
  192. package/dist/services/conversations/isAgentConversation.d.ts.map +1 -0
  193. package/dist/services/conversations/pruneAgentConversations.d.ts +8 -0
  194. package/dist/services/conversations/pruneAgentConversations.d.ts.map +1 -0
  195. package/dist/services/conversations/refreshConversationCache.d.ts +27 -0
  196. package/dist/services/conversations/refreshConversationCache.d.ts.map +1 -0
  197. package/dist/services/conversations/shouldRefreshProjectsFromHdd.d.ts +33 -0
  198. package/dist/services/conversations/shouldRefreshProjectsFromHdd.d.ts.map +1 -0
  199. package/dist/services/diagnostics/diagnostics.d.ts +66 -0
  200. package/dist/services/diagnostics/diagnostics.d.ts.map +1 -0
  201. package/dist/services/projectChats/deriveProjectChatTitle.d.ts +15 -0
  202. package/dist/services/projectChats/deriveProjectChatTitle.d.ts.map +1 -0
  203. package/dist/services/projects/ensureProjectsForConversations.d.ts +15 -0
  204. package/dist/services/projects/ensureProjectsForConversations.d.ts.map +1 -0
  205. package/dist/services/providers/capabilities.d.ts +105 -0
  206. package/dist/services/providers/capabilities.d.ts.map +1 -0
  207. package/dist/services/providers/providerHealth.d.ts +72 -0
  208. package/dist/services/providers/providerHealth.d.ts.map +1 -0
  209. package/dist/services/push/apnsClient.d.ts +105 -0
  210. package/dist/services/push/apnsClient.d.ts.map +1 -0
  211. package/dist/services/push/expoPushSender.d.ts +37 -0
  212. package/dist/services/push/expoPushSender.d.ts.map +1 -0
  213. package/dist/services/push/liveActivityContentState.d.ts +60 -0
  214. package/dist/services/push/liveActivityContentState.d.ts.map +1 -0
  215. package/dist/services/push/liveActivityNotifier.d.ts +49 -0
  216. package/dist/services/push/liveActivityNotifier.d.ts.map +1 -0
  217. package/dist/services/push/liveActivityRenewal.d.ts +63 -0
  218. package/dist/services/push/liveActivityRenewal.d.ts.map +1 -0
  219. package/dist/services/push/liveActivitySender.d.ts +88 -0
  220. package/dist/services/push/liveActivitySender.d.ts.map +1 -0
  221. package/dist/services/push/waitingInputNotifier.d.ts +41 -0
  222. package/dist/services/push/waitingInputNotifier.d.ts.map +1 -0
  223. package/dist/services/questions/answersToKeystrokes.d.ts +8 -0
  224. package/dist/services/questions/answersToKeystrokes.d.ts.map +1 -0
  225. package/dist/services/questions/codexGateAnswers.d.ts +14 -0
  226. package/dist/services/questions/codexGateAnswers.d.ts.map +1 -0
  227. package/dist/services/questions/codexScreen.d.ts +74 -0
  228. package/dist/services/questions/codexScreen.d.ts.map +1 -0
  229. package/dist/services/questions/detectAskUserQuestion.d.ts +6 -0
  230. package/dist/services/questions/detectAskUserQuestion.d.ts.map +1 -0
  231. package/dist/services/questions/detectPermissionGate.d.ts +62 -0
  232. package/dist/services/questions/detectPermissionGate.d.ts.map +1 -0
  233. package/dist/services/questions/detectQuestionFromScreen.d.ts +30 -0
  234. package/dist/services/questions/detectQuestionFromScreen.d.ts.map +1 -0
  235. package/dist/services/questions/detectShellPrompt.d.ts +18 -0
  236. package/dist/services/questions/detectShellPrompt.d.ts.map +1 -0
  237. package/dist/services/questions/parseAgentPhase.d.ts +12 -0
  238. package/dist/services/questions/parseAgentPhase.d.ts.map +1 -0
  239. package/dist/services/questions/parseStatusLine.d.ts +19 -0
  240. package/dist/services/questions/parseStatusLine.d.ts.map +1 -0
  241. package/dist/services/questions/questionBroadcast.d.ts +18 -0
  242. package/dist/services/questions/questionBroadcast.d.ts.map +1 -0
  243. package/dist/services/questions/resolveAnswer.d.ts +16 -0
  244. package/dist/services/questions/resolveAnswer.d.ts.map +1 -0
  245. package/dist/services/search/searchQuery.d.ts +78 -0
  246. package/dist/services/search/searchQuery.d.ts.map +1 -0
  247. package/dist/services/security/capabilities.d.ts +50 -0
  248. package/dist/services/security/capabilities.d.ts.map +1 -0
  249. package/dist/services/sessions/autoResumeOnBoot.d.ts +28 -0
  250. package/dist/services/sessions/autoResumeOnBoot.d.ts.map +1 -0
  251. package/dist/services/sessions/codexRolloutOwner.d.ts +55 -0
  252. package/dist/services/sessions/codexRolloutOwner.d.ts.map +1 -0
  253. package/dist/services/sessions/conversationBusy.d.ts +32 -0
  254. package/dist/services/sessions/conversationBusy.d.ts.map +1 -0
  255. package/dist/services/sessions/idempotency.d.ts +67 -0
  256. package/dist/services/sessions/idempotency.d.ts.map +1 -0
  257. package/dist/services/sessions/reconcileSessions.d.ts +63 -0
  258. package/dist/services/sessions/reconcileSessions.d.ts.map +1 -0
  259. package/dist/services/sessions/rehydrateSessions.d.ts +68 -0
  260. package/dist/services/sessions/rehydrateSessions.d.ts.map +1 -0
  261. package/dist/services/sessions/resumeIdentity.d.ts +16 -0
  262. package/dist/services/sessions/resumeIdentity.d.ts.map +1 -0
  263. package/dist/session-registry-boot.d.ts +142 -0
  264. package/dist/session-registry-boot.d.ts.map +1 -0
  265. package/dist/session-store.d.ts +32 -0
  266. package/dist/session-store.d.ts.map +1 -0
  267. package/dist/session-watchers.d.ts +60 -0
  268. package/dist/session-watchers.d.ts.map +1 -0
  269. package/dist/types.d.ts +616 -0
  270. package/dist/types.d.ts.map +1 -0
  271. package/dist/uploads.d.ts +16 -0
  272. package/dist/uploads.d.ts.map +1 -0
  273. package/dist/utils/bootToken.d.ts +3 -0
  274. package/dist/utils/bootToken.d.ts.map +1 -0
  275. package/dist/utils/canonicalizeFilePath.d.ts +75 -0
  276. package/dist/utils/canonicalizeFilePath.d.ts.map +1 -0
  277. package/dist/utils/canonicalizeProjectPath.d.ts +13 -0
  278. package/dist/utils/canonicalizeProjectPath.d.ts.map +1 -0
  279. package/dist/utils/codexConversationLine.d.ts +38 -0
  280. package/dist/utils/codexConversationLine.d.ts.map +1 -0
  281. package/dist/utils/conversationEtag.d.ts +19 -0
  282. package/dist/utils/conversationEtag.d.ts.map +1 -0
  283. package/dist/utils/dates.d.ts +12 -0
  284. package/dist/utils/dates.d.ts.map +1 -0
  285. package/dist/utils/debounce.d.ts +15 -0
  286. package/dist/utils/debounce.d.ts.map +1 -0
  287. package/dist/utils/deriveSessionName.d.ts +10 -0
  288. package/dist/utils/deriveSessionName.d.ts.map +1 -0
  289. package/dist/utils/fileIdentity.d.ts +36 -0
  290. package/dist/utils/fileIdentity.d.ts.map +1 -0
  291. package/dist/utils/isScannedSnapshotStale.d.ts +16 -0
  292. package/dist/utils/isScannedSnapshotStale.d.ts.map +1 -0
  293. package/dist/utils/scanProgressThrottle.d.ts +12 -0
  294. package/dist/utils/scanProgressThrottle.d.ts.map +1 -0
  295. package/dist/version.d.ts +3 -0
  296. package/dist/version.d.ts.map +1 -0
  297. package/dist/ws-hub.d.ts +15 -0
  298. package/dist/ws-hub.d.ts.map +1 -0
  299. package/package.json +3 -4
  300. package/dist/index.d.cts +0 -2571
@@ -0,0 +1,4 @@
1
+ import type { ErrorHandler } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ export declare const errorMiddleware: ErrorHandler<AppEnv>;
4
+ //# sourceMappingURL=error.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.middleware.d.ts","sourceRoot":"","sources":["../../../src/api/middleware/error.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,MAAM,CAehD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createBackupRoutes: (deps: Pick<ApiDeps, "projectsRepo">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=backup.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/backup.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA+BjD,eAAO,MAAM,kBAAkB,SAAU,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,wDA+GrE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createBrowseRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=browse.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browse.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/browse.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,kBAAkB,SAAU,OAAO,wDAe/C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createCacheAlertRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=cacheAlert.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheAlert.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/cacheAlert.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,eAAO,MAAM,sBAAsB,SAAU,OAAO,wDA+CnD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createConfigRoutes: (deps: Pick<ApiDeps, "claudeFlagsConfig" | "setClaudeFlagsConfig" | "featureFlagsConfig" | "localNoAuth">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=config.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/config.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,eAAO,MAAM,kBAAkB,SACvB,IAAI,CACR,OAAO,EACP,mBAAmB,GAAG,sBAAsB,GAAG,oBAAoB,GAAG,aAAa,CACpF,wDA2DF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createConversationRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=conversations.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/conversations.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,wBAAwB,SAAU,OAAO,wDAmCrD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ /**
5
+ * Paired-device management (C5 / mobile U10).
6
+ *
7
+ * Revoking a device previously meant rotating the shared API key, which
8
+ * de-authenticated every other device at the same time. These routes make
9
+ * revocation per-device and give the client something to display: which devices
10
+ * exist, what each may do, and when it was last seen.
11
+ *
12
+ * No response ever includes a device token or its hash. A management surface
13
+ * has no reason to hand back a credential, and this endpoint is exactly where
14
+ * an accidental echo would be most damaging.
15
+ */
16
+ export declare const createDeviceRoutes: (deps: Pick<ApiDeps, "devicesRepo">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
17
+ //# sourceMappingURL=devices.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/devices.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,SAAU,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,wDAmFpE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createDiagnosticsRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=diagnostics.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/diagnostics.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiDjD,eAAO,MAAM,uBAAuB,SAAU,OAAO,wDA+IpD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createHealthRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=health.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/health.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,SAAU,OAAO,wDAS/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Hono } from "hono";
2
+ export declare function createLogsRoutes(): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
3
+ //# sourceMappingURL=logs.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/logs.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAqE5B,wBAAgB,gBAAgB,+EA8E/B"}
@@ -0,0 +1,77 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ /**
5
+ * What push this server can actually deliver.
6
+ *
7
+ * Reported on `GET /api/info` and `GET /api/push/health` so a client can hide an
8
+ * affordance the server can never honour instead of registering tokens nothing
9
+ * will ever send to. It cannot be inferred from `/api/push/health`'s `available`,
10
+ * which reports whether the SQLite token store opened — that is `true` on a
11
+ * server holding no APNs credentials at all.
12
+ */
13
+ export interface PushCapability {
14
+ /**
15
+ * Live Activity (ActivityKit) push. True only when APNs credentials resolved
16
+ * *and* the sender was wired, so it is the same fact the boot log reports as
17
+ * `live_activity.enabled` / `live_activity.disabled`.
18
+ */
19
+ liveActivity: boolean;
20
+ /**
21
+ * Ordinary (non-Live-Activity) notifications. Always false: `expo-server-sdk`
22
+ * is not a dependency and `PushRepository.listDeliverable()` has no caller, so
23
+ * nothing sends them. Reported rather than omitted so a client cannot infer
24
+ * that ordinary push works because Live Activity push happens to be configured.
25
+ */
26
+ notifications: boolean;
27
+ /** Why `liveActivity` is false; absent when it is true. Names env vars, never values. */
28
+ liveActivityReason?: string;
29
+ }
30
+ /**
31
+ * Describe push capability for a client.
32
+ *
33
+ * `liveActivityEnabled` is the server's own wiring state rather than a re-read of
34
+ * the environment: credentials alone are not enough, since the notifier is only
35
+ * built when the push token store opened too.
36
+ */
37
+ export declare function describePushCapability(liveActivityEnabled: boolean, env?: NodeJS.ProcessEnv): PushCapability;
38
+ /** Envelope version this build speaks. The same number the pair QR carries as `v`. */
39
+ export declare const E2EE_PROTOCOL_VERSION = 1;
40
+ /**
41
+ * Whether a client should encrypt to this server, and why not when it should not.
42
+ *
43
+ * The contract is `push`'s: additive, and **absent means "older server,
44
+ * unknown"** rather than "unsupported". A client reads `enabled` to decide
45
+ * whether to attempt a handshake — never `supported` alone, which only says the
46
+ * code path exists.
47
+ *
48
+ * `required` is the stage-3 bit (refuse plaintext from *any* client) and is
49
+ * false until that is an explicit product decision. It is reported rather than
50
+ * omitted because an absent field means "unknown", and "unknown" is the wrong
51
+ * answer to a question this server can answer.
52
+ */
53
+ export interface E2eeCapability {
54
+ supported: boolean;
55
+ enabled: boolean;
56
+ version: number;
57
+ required: boolean;
58
+ /** Why `enabled` is false while `supported` is true; absent otherwise. */
59
+ reason?: string;
60
+ }
61
+ export declare function describeE2eeCapability(flagEnabled: boolean): E2eeCapability;
62
+ /**
63
+ * This server's identity public key, or `undefined` when the key file cannot be
64
+ * read — which `JSON.stringify` renders as an absent field, exactly what the
65
+ * `/api/info` contract says absent means.
66
+ *
67
+ * Deliberately different from the CLI's answer to the same failure. `/api/info`
68
+ * is how a client discovers capabilities and renders its server list, so a
69
+ * corrupt key file must cost verification and nothing else; turning it into a
70
+ * 500 would take down the whole endpoint over a file unrelated to the rest of
71
+ * the response. The pair banner throws instead, because a QR that cannot carry
72
+ * `spk` is a QR worth refusing to print — and `serve` already degrades that
73
+ * into a warn plus a QR-less banner (`cli/index.ts`).
74
+ */
75
+ export declare function describeServerIdentityKey(): string | undefined;
76
+ export declare const createMiscRoutes: (deps: Pick<ApiDeps, "publicUrl" | "sessionStore" | "ptyAttachedIds" | "rotateApiKey" | "localNoAuth" | "pushRepo" | "liveActivityPushEnabled" | "featureFlagsConfig">) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
77
+ //# sourceMappingURL=misc.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/misc.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAa5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiDjD;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,mBAAmB,EAAE,OAAO,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,cAAc,CAahB;AAED,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAkBvC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,cAAc,CAmB3E;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAe9D;AAYD,eAAO,MAAM,gBAAgB,SACrB,IAAI,CACR,OAAO,EACL,WAAW,GACX,cAAc,GACd,gBAAgB,GAChB,cAAc,GACd,aAAa,GACb,UAAU,GACV,yBAAyB,GACzB,oBAAoB,CACvB,wDA2NF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createPairRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=pair.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pair.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/pair.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,gBAAgB,SAAU,OAAO,wDAe7C,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Hono } from "hono";
2
+ import type { WSMessage } from "../../types";
3
+ import type { AppEnv } from "../app";
4
+ import type { ApiDeps } from "../types/api-deps";
5
+ interface AgentDeps {
6
+ sessionStore: {
7
+ getManaged: (sessionId: string) => {
8
+ id: string;
9
+ progressDedupeIds?: {
10
+ hasSeen: (id: string) => boolean;
11
+ };
12
+ currentTurnId?: string | null;
13
+ } | null;
14
+ };
15
+ wsHub: {
16
+ broadcast: (m: WSMessage) => void;
17
+ };
18
+ conversationWriter: {
19
+ appendAssistantTurn: (a: {
20
+ sessionId: string;
21
+ turnId: string;
22
+ content: string;
23
+ reviewerOverruled?: boolean;
24
+ }) => Promise<void>;
25
+ } | null;
26
+ agentConfig: {
27
+ enabled: boolean;
28
+ webhook: {
29
+ hmacSecret: string;
30
+ timestampSkewSeconds: number;
31
+ };
32
+ dedupe: {
33
+ perSessionCapacity: number;
34
+ };
35
+ };
36
+ }
37
+ export declare const createProgressRoutes: (deps: ApiDeps & AgentDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
38
+ export {};
39
+ //# sourceMappingURL=progress.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/progress.routes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAWjD,UAAU,SAAS;IACjB,YAAY,EAAE;QACZ,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK;YACjC,EAAE,EAAE,MAAM,CAAC;YACX,iBAAiB,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;aAAE,CAAC;YACzD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SAC/B,GAAG,IAAI,CAAC;KACV,CAAC;IACF,KAAK,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;KAAE,CAAC;IAC7C,kBAAkB,EAAE;QAClB,mBAAmB,EAAE,CAAC,CAAC,EAAE;YACvB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;SAC7B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACrB,GAAG,IAAI,CAAC;IACT,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,oBAAoB,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9D,MAAM,EAAE;YAAE,kBAAkB,EAAE,MAAM,CAAA;SAAE,CAAC;KACxC,CAAC;CACH;AA2BD,eAAO,MAAM,oBAAoB,SAAU,OAAO,GAAG,SAAS,wDAwH7D,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createProjectRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=projects.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/projects.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,mBAAmB,SAAU,OAAO,wDAsBhD,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ /**
4
+ * GET /api/providers — what each provider supports, and whether the installed
5
+ * build is one we have verified against (C2).
6
+ *
7
+ * Clients need this to hide actions a provider cannot perform, rather than
8
+ * offering them and failing. Before this, the only capability signal that
9
+ * reached a client was a 501 from LiveSessionManager — i.e. it arrived as a
10
+ * failed action instead of an absent button.
11
+ *
12
+ * Capabilities are per-provider, not per-session, so this is a separate
13
+ * endpoint rather than more fields on SessionResponse.
14
+ *
15
+ * Deliberately exposes no filesystem paths: which binary resolved is an
16
+ * implementation detail, and a resolved path can leak the user's home layout.
17
+ */
18
+ export declare const createProviderRoutes: () => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
19
+ //# sourceMappingURL=providers.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/providers.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,2DAahC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const createScannerRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
5
+ //# sourceMappingURL=scanner.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/scanner.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,mBAAmB,SAAU,OAAO,wDAUhD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Hono } from "hono";
2
+ import type { AppEnv } from "../app";
3
+ import type { ApiDeps } from "../types/api-deps";
4
+ export declare const ALREADY_HANDLED = 597;
5
+ export declare const createSessionRoutes: (deps: ApiDeps) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
6
+ //# sourceMappingURL=sessions.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/sessions.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAKjD,eAAO,MAAM,eAAe,MAAM,CAAC;AAGnC,eAAO,MAAM,mBAAmB,SAAU,OAAO,wDAgGhD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Hono } from "hono";
2
+ import type { UpgradeWebSocket } from "hono/ws";
3
+ import type { WebSocket } from "ws";
4
+ import type { AppEnv } from "../app";
5
+ import type { ApiDeps } from "../types/api-deps";
6
+ export declare const createWsRoutes: (deps: ApiDeps, upgradeWebSocket: UpgradeWebSocket<WebSocket>) => Hono<AppEnv, import("hono/types").BlankSchema, "/">;
7
+ //# sourceMappingURL=ws.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.routes.d.ts","sourceRoot":"","sources":["../../../src/api/routes/ws.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,eAAO,MAAM,cAAc,SAAU,OAAO,oBAAoB,gBAAgB,CAAC,SAAS,CAAC,wDA+B1F,CAAC"}
@@ -0,0 +1,114 @@
1
+ import type { IncomingMessage, ServerResponse } from "http";
2
+ import type { WebSocket } from "ws";
3
+ import type { AgentClient } from "../../agent/agent-client";
4
+ import type { AgentConfig } from "../../agent/agent-config";
5
+ import type { ConversationWriter } from "../../agent/conversation-writer";
6
+ import type { ClaudeFlagValues, FlagDefinition } from "../../claude-flags";
7
+ import type { ConversationCache } from "../../conversation-cache";
8
+ import type { CacheMetadataRepository } from "../../db/repositories/cacheMetadata.repository";
9
+ import type { ConversationsRepository } from "../../db/repositories/conversations.repository";
10
+ import type { DevicesRepository } from "../../db/repositories/devices.repository";
11
+ import type { ManagedSessionsRepository } from "../../db/repositories/managed-sessions.repository";
12
+ import type { ProjectsRepository } from "../../db/repositories/projects.repository";
13
+ import type { PushRepository } from "../../db/repositories/push.repository";
14
+ import type { SessionsRepository } from "../../db/repositories/sessions.repository";
15
+ import type { RuntimeStore } from "../../db/runtime-store";
16
+ import type { FeatureFlagDefinition, FeatureFlagId, FeatureFlagSource, ResolvedFeatureFlags } from "../../feature-flags";
17
+ import type { LiveSessionManager } from "../../live-session-manager";
18
+ import type { CacheIntegrityMonitor } from "../../services/cache-integrity/cacheIntegrityMonitor";
19
+ import type { Principal } from "../../services/security/capabilities";
20
+ import type { ReconcileVerdict } from "../../services/sessions/reconcileSessions";
21
+ import type { SessionStore } from "../../session-store";
22
+ import type { WSHub } from "../../ws-hub";
23
+ export type ApiDeps = {
24
+ apiKey: string;
25
+ localNoAuth: boolean;
26
+ logMenubarRequests: boolean;
27
+ rotateApiKey: () => {
28
+ newKey: string;
29
+ persisted: boolean;
30
+ };
31
+ claudeFlagsConfig: () => {
32
+ registry: readonly FlagDefinition[];
33
+ values: ClaudeFlagValues;
34
+ extraArgs: string | null;
35
+ persisted: boolean;
36
+ };
37
+ setClaudeFlagsConfig: (values: ClaudeFlagValues, extraArgs: string | undefined) => {
38
+ values: ClaudeFlagValues;
39
+ extraArgs: string | null;
40
+ persisted: boolean;
41
+ };
42
+ featureFlagsConfig: () => {
43
+ registry: readonly FeatureFlagDefinition[];
44
+ values: ResolvedFeatureFlags;
45
+ sources: Record<FeatureFlagId, FeatureFlagSource>;
46
+ };
47
+ publicUrl: string | null;
48
+ browseRoot: string | null;
49
+ browserCors: string | undefined;
50
+ ptyManager: LiveSessionManager;
51
+ sessionStore: SessionStore;
52
+ wsHub: WSHub;
53
+ cache: () => ConversationCache | null;
54
+ cacheMonitor: () => CacheIntegrityMonitor | null;
55
+ /** Push registration + delivery state (C7). Null when the cache DB is unavailable. */
56
+ pushRepo: () => PushRepository | null;
57
+ /**
58
+ * Whether Live Activity push is actually running on this server — the same
59
+ * fact the boot log reports as `live_activity.enabled`. Asked of the server
60
+ * rather than re-derived from the environment, because APNs credentials alone
61
+ * do not enable it: the sender is only wired when the token store opened too.
62
+ */
63
+ liveActivityPushEnabled: () => boolean;
64
+ /** Paired-device registry (C5). Null when the cache DB is unavailable. */
65
+ devicesRepo: () => DevicesRepository | null;
66
+ projectsRepo: () => ProjectsRepository | null;
67
+ conversationsRepo: () => ConversationsRepository | null;
68
+ sessionsRepo: () => SessionsRepository | null;
69
+ cacheMetadataRepo: () => CacheMetadataRepository | null;
70
+ /** Authoritative session registry (~/.threadbase/runtime.db). Null when it failed to open. */
71
+ runtimeStore: () => RuntimeStore | null;
72
+ /** Rows of that registry. Null when it failed to open. */
73
+ managedSessionsRepo: () => ManagedSessionsRepository | null;
74
+ /** This boot's reconcile verdicts, by session id. Empty before it has run. */
75
+ sessionVerdicts: () => Map<string, ReconcileVerdict>;
76
+ ptyAttachedIds: () => Set<string>;
77
+ handleListSessions: (url: URL, res: ServerResponse) => Promise<void>;
78
+ handleSessionsCount: (res: ServerResponse) => void;
79
+ handleGetRecentSessions: (url: URL, res: ServerResponse) => void;
80
+ handleGetSessionNames: (res: ServerResponse) => void;
81
+ handleGetSession: (sessionId: string, res: ServerResponse) => Promise<void>;
82
+ handleGetOutput: (sessionId: string, res: ServerResponse) => void;
83
+ handleSendInput: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
84
+ handleSendAnswer: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
85
+ handleCancel: (sessionId: string, res: ServerResponse) => void;
86
+ handleStopSession: (sessionId: string, res: ServerResponse) => Promise<void>;
87
+ handleSetSessionName: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
88
+ handleSetSessionModel: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
89
+ handleSetSessionEffort: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
90
+ handleUploadFile: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
91
+ handleAdopt: (sessionId: string, res: ServerResponse) => Promise<void>;
92
+ handleFork: (sessionId: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
93
+ handleResume: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
94
+ handleStartSession: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
95
+ handleListConversations: (url: URL, res: ServerResponse) => Promise<void>;
96
+ handleConversationsCount: (url: URL, res: ServerResponse) => Promise<void>;
97
+ handleGetConversation: (id: string, url: URL, res: ServerResponse, ifNoneMatch?: string) => Promise<void>;
98
+ handleSearch: (url: URL, res: ServerResponse) => Promise<void>;
99
+ handleSearchTarget: (id: string, req: IncomingMessage, res: ServerResponse) => Promise<void>;
100
+ handleListProjects: (url: URL, res: ServerResponse) => void;
101
+ handleGetPopularProjects: (url: URL, res: ServerResponse) => void;
102
+ handleGetProjectSummaries: (url: URL, res: ServerResponse) => void;
103
+ handlePairStart: (res: ServerResponse) => void;
104
+ handlePairExchange: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
105
+ handleBrowse: (url: URL, res: ServerResponse) => Promise<void>;
106
+ handleMkdir: (req: IncomingMessage, res: ServerResponse) => Promise<void>;
107
+ handleWsOpen: (ws: WebSocket) => void;
108
+ handleWsMessage: (ws: WebSocket, raw: unknown, principal: Principal | null) => void;
109
+ handleWsClose: (ws: WebSocket) => void;
110
+ agentClient: AgentClient | null;
111
+ conversationWriter: ConversationWriter | null;
112
+ agentConfig: AgentConfig;
113
+ };
114
+ //# sourceMappingURL=api-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-deps.d.ts","sourceRoot":"","sources":["../../../src/api/types/api-deps.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts ADDED
@@ -0,0 +1,81 @@
1
+ import { type ClaudeFlagValues, type PermissionMode } from "./claude-flags";
2
+ import { type FeatureFlagValues } from "./feature-flags";
3
+ export declare function generateApiKey(): string;
4
+ export declare function validateApiKey(provided: string, expected: string): boolean;
5
+ export declare function loadOrCreateApiKey(): string;
6
+ export declare function loadBrowseRoot(): string | undefined;
7
+ export declare function loadPublicUrl(): string | undefined;
8
+ export declare function loadBrowserCors(): string | undefined;
9
+ export declare function loadCacheDir(): string | undefined;
10
+ export declare function loadTailSize(): number | undefined;
11
+ export declare function loadPtyGracePeriodMs(): number | undefined;
12
+ export declare function loadDefaultPermissionMode(): PermissionMode | undefined;
13
+ export declare function setDefaultPermissionMode(mode: PermissionMode): void;
14
+ /**
15
+ * Whether interrupted sessions are re-started automatically at boot
16
+ * (persistence plan Phase 7a).
17
+ *
18
+ * **Tri-state on purpose.** `undefined` means the key is absent — the user has
19
+ * never been asked — and is what triggers the one-time prompt. It is not the
20
+ * same as `false`, which is a real answer and must never be re-asked.
21
+ * Collapsing the two would either nag on every boot or silently decide for
22
+ * someone who was never given the choice.
23
+ *
24
+ * Not a feature flag: feature flags gate behaviour *we* are unsure about, while
25
+ * this is a user preference with a persisted answer — the
26
+ * `default_permission_mode` shape, not the `codexSystemPrompt` shape.
27
+ */
28
+ export declare function loadAutoResumeOnBoot(): boolean | undefined;
29
+ export declare function setAutoResumeOnBoot(value: boolean): void;
30
+ /**
31
+ * Allowlisted Claude CLI flags, stored as ONE line of JSON:
32
+ *
33
+ * claude_flags: {"permissionMode":"bypassPermissions","addDir":["/srv/a b"]}
34
+ *
35
+ * JSON rather than a bespoke encoding because JSON.stringify already escapes
36
+ * colons, quotes and spaces (killing the whole quoting-bug class) and emits no
37
+ * raw newlines, so the one-line invariant holds by construction. It is also a
38
+ * valid YAML flow mapping, so the file still parses if a real YAML reader is
39
+ * ever pointed at it.
40
+ *
41
+ * A malformed line yields {} plus a warning rather than throwing: server.yaml is
42
+ * hand-editable and a typo must never stop the server from booting.
43
+ */
44
+ export declare function loadClaudeFlags(): ClaudeFlagValues;
45
+ export declare function setClaudeFlags(values: ClaudeFlagValues): void;
46
+ /** Free-text argv appended after the allowlisted flags. Unvalidated by design. */
47
+ export declare function loadClaudeExtraArgs(): string | undefined;
48
+ /**
49
+ * Throws on an embedded newline rather than silently sanitizing: a newline would
50
+ * corrupt the flat one-line-per-key file, and the caller (the HTTP layer) should
51
+ * surface that to the user as a validation error instead of quietly rewriting
52
+ * what they typed.
53
+ */
54
+ export declare function setClaudeExtraArgs(text: string | undefined): void;
55
+ /**
56
+ * Server feature flags, stored as ONE line of JSON — same encoding and the same
57
+ * reasons as claude_flags above:
58
+ *
59
+ * feature_flags: {"codexSystemPrompt":true}
60
+ *
61
+ * Keys must match `FEATURE_FLAGS` object keys (`ptyHost`), not env var names
62
+ * (`THREADBASE_FEATURE_PTY_HOST`). Unknown keys are dropped.
63
+ *
64
+ * Read-only from this module's perspective: nothing writes this key, because
65
+ * flags resolve at boot and there is no runtime-mutation endpoint. Add a
66
+ * setFeatureFlags() alongside a PUT, if one is ever added.
67
+ *
68
+ * A malformed line yields {} plus a warning rather than throwing, so a typo in a
69
+ * hand-edited server.yaml costs the flag, not the boot.
70
+ */
71
+ export declare function loadFeatureFlags(): FeatureFlagValues;
72
+ export type PublicUrlValidation = {
73
+ ok: true;
74
+ normalized: string;
75
+ } | {
76
+ ok: false;
77
+ error: string;
78
+ };
79
+ export declare function validatePublicUrl(raw: string): PublicUrlValidation;
80
+ export declare function setApiKey(key: string): void;
81
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,iBAAiB,EAA6B,MAAM,iBAAiB,CAAC;AAcpF,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAqB3C;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CASnD;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CASlD;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CASpD;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CASjD;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CASjD;AAKD,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,SAAS,CASzD;AAED,wBAAgB,yBAAyB,IAAI,cAAc,GAAG,SAAS,CAUtE;AAgDD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,GAAG,SAAS,CAY1D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAExD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CAclD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAG7D;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAUxD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,CAcpD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAkBlE;AAMD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA0B3C"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Thrown when a browse target is inside the root but does not exist on disk
3
+ * (e.g. a mobile-cached path whose folder was since moved or deleted). Lets the
4
+ * browse handler answer 404 instead of conflating it with an out-of-root 400.
5
+ */
6
+ export declare class BrowsePathNotFoundError extends Error {
7
+ constructor(message: string);
8
+ }
9
+ export declare function resolveBrowsePath(browseRoot: string, relativePath: string): Promise<string>;
10
+ export declare function listDirectories(absolutePath: string): Promise<Array<{
11
+ name: string;
12
+ }>>;
13
+ export declare function listFiles(absolutePath: string): Promise<Array<{
14
+ name: string;
15
+ }>>;
16
+ export declare function createDirectory(parentAbsolutePath: string, name: string): Promise<string>;
17
+ //# sourceMappingURL=browse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../src/browse.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCjG;AAED,wBAAsB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAM5F;AAED,wBAAsB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAMtF;AAED,wBAAsB,eAAe,CAAC,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAa/F"}