yepanywhere 0.1.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 (635) hide show
  1. package/bundled/@yep-anywhere/shared/dist/app-types.d.ts +229 -0
  2. package/bundled/@yep-anywhere/shared/dist/app-types.d.ts.map +1 -0
  3. package/bundled/@yep-anywhere/shared/dist/app-types.js +46 -0
  4. package/bundled/@yep-anywhere/shared/dist/app-types.js.map +1 -0
  5. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.d.ts +16 -0
  6. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.d.ts.map +1 -0
  7. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.js +17 -0
  8. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.js.map +1 -0
  9. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.d.ts +15 -0
  10. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.d.ts.map +1 -0
  11. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.js +10 -0
  12. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.js.map +1 -0
  13. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.d.ts +6 -0
  14. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.d.ts.map +1 -0
  15. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.js +6 -0
  16. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.js.map +1 -0
  17. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.d.ts +7 -0
  18. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.d.ts.map +1 -0
  19. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.js +7 -0
  20. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.js.map +1 -0
  21. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.d.ts +24 -0
  22. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.d.ts.map +1 -0
  23. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.js +13 -0
  24. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.js.map +1 -0
  25. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.d.ts +8 -0
  26. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.d.ts.map +1 -0
  27. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.js +8 -0
  28. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.js.map +1 -0
  29. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.d.ts +78 -0
  30. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.d.ts.map +1 -0
  31. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.js +13 -0
  32. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.js.map +1 -0
  33. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.d.ts +18 -0
  34. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.d.ts.map +1 -0
  35. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.js +19 -0
  36. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.js.map +1 -0
  37. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.d.ts +13 -0
  38. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.d.ts.map +1 -0
  39. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.js +14 -0
  40. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.js.map +1 -0
  41. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.d.ts +68 -0
  42. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.d.ts.map +1 -0
  43. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.js +37 -0
  44. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.js.map +1 -0
  45. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.d.ts +8 -0
  46. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.d.ts.map +1 -0
  47. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.js +7 -0
  48. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.js.map +1 -0
  49. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.d.ts +52 -0
  50. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.d.ts.map +1 -0
  51. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.js +29 -0
  52. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.js.map +1 -0
  53. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.d.ts +72 -0
  54. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.d.ts.map +1 -0
  55. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.js +10 -0
  56. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.js.map +1 -0
  57. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.d.ts +14 -0
  58. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.d.ts.map +1 -0
  59. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.js +39 -0
  60. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.js.map +1 -0
  61. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.d.ts +15 -0
  62. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.d.ts.map +1 -0
  63. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.js +26 -0
  64. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.js.map +1 -0
  65. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.d.ts +566 -0
  66. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.d.ts.map +1 -0
  67. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.js +39 -0
  68. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.js.map +1 -0
  69. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.d.ts +93 -0
  70. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.d.ts.map +1 -0
  71. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.js +40 -0
  72. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.js.map +1 -0
  73. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.d.ts +105 -0
  74. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.d.ts.map +1 -0
  75. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.js +20 -0
  76. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.js.map +1 -0
  77. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.d.ts +53 -0
  78. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.d.ts.map +1 -0
  79. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.js +54 -0
  80. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.js.map +1 -0
  81. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.d.ts +9 -0
  82. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.d.ts.map +1 -0
  83. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.js +9 -0
  84. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.js.map +1 -0
  85. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.d.ts +32 -0
  86. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.d.ts.map +1 -0
  87. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.js +12 -0
  88. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.js.map +1 -0
  89. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.d.ts +288 -0
  90. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.d.ts.map +1 -0
  91. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.js +293 -0
  92. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.js.map +1 -0
  93. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.d.ts +83 -0
  94. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.d.ts.map +1 -0
  95. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.js +10 -0
  96. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.js.map +1 -0
  97. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.d.ts +42 -0
  98. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.d.ts.map +1 -0
  99. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.js +11 -0
  100. package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.js.map +1 -0
  101. package/bundled/@yep-anywhere/shared/dist/codex-schema/content.d.ts +99 -0
  102. package/bundled/@yep-anywhere/shared/dist/codex-schema/content.d.ts.map +1 -0
  103. package/bundled/@yep-anywhere/shared/dist/codex-schema/content.js +64 -0
  104. package/bundled/@yep-anywhere/shared/dist/codex-schema/content.js.map +1 -0
  105. package/bundled/@yep-anywhere/shared/dist/codex-schema/index.d.ts +17 -0
  106. package/bundled/@yep-anywhere/shared/dist/codex-schema/index.d.ts.map +1 -0
  107. package/bundled/@yep-anywhere/shared/dist/codex-schema/index.js +17 -0
  108. package/bundled/@yep-anywhere/shared/dist/codex-schema/index.js.map +1 -0
  109. package/bundled/@yep-anywhere/shared/dist/codex-schema/session.d.ts +600 -0
  110. package/bundled/@yep-anywhere/shared/dist/codex-schema/session.d.ts.map +1 -0
  111. package/bundled/@yep-anywhere/shared/dist/codex-schema/session.js +282 -0
  112. package/bundled/@yep-anywhere/shared/dist/codex-schema/session.js.map +1 -0
  113. package/bundled/@yep-anywhere/shared/dist/codex-schema/types.d.ts +7 -0
  114. package/bundled/@yep-anywhere/shared/dist/codex-schema/types.d.ts.map +1 -0
  115. package/bundled/@yep-anywhere/shared/dist/codex-schema/types.js +6 -0
  116. package/bundled/@yep-anywhere/shared/dist/codex-schema/types.js.map +1 -0
  117. package/bundled/@yep-anywhere/shared/dist/dag.d.ts +35 -0
  118. package/bundled/@yep-anywhere/shared/dist/dag.d.ts.map +1 -0
  119. package/bundled/@yep-anywhere/shared/dist/dag.js +75 -0
  120. package/bundled/@yep-anywhere/shared/dist/dag.js.map +1 -0
  121. package/bundled/@yep-anywhere/shared/dist/filePathDetection.d.ts +72 -0
  122. package/bundled/@yep-anywhere/shared/dist/filePathDetection.d.ts.map +1 -0
  123. package/bundled/@yep-anywhere/shared/dist/filePathDetection.js +376 -0
  124. package/bundled/@yep-anywhere/shared/dist/filePathDetection.js.map +1 -0
  125. package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.d.ts +95 -0
  126. package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.d.ts.map +1 -0
  127. package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.js +57 -0
  128. package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.js.map +1 -0
  129. package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.d.ts +174 -0
  130. package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.d.ts.map +1 -0
  131. package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.js +117 -0
  132. package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.js.map +1 -0
  133. package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.d.ts +18 -0
  134. package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.d.ts.map +1 -0
  135. package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.js +18 -0
  136. package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.js.map +1 -0
  137. package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.d.ts +267 -0
  138. package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.d.ts.map +1 -0
  139. package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.js +147 -0
  140. package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.js.map +1 -0
  141. package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.d.ts +7 -0
  142. package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.d.ts.map +1 -0
  143. package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.js +6 -0
  144. package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.js.map +1 -0
  145. package/bundled/@yep-anywhere/shared/dist/ideMetadata.d.ts +30 -0
  146. package/bundled/@yep-anywhere/shared/dist/ideMetadata.d.ts.map +1 -0
  147. package/bundled/@yep-anywhere/shared/dist/ideMetadata.js +58 -0
  148. package/bundled/@yep-anywhere/shared/dist/ideMetadata.js.map +1 -0
  149. package/bundled/@yep-anywhere/shared/dist/index.d.ts +24 -0
  150. package/bundled/@yep-anywhere/shared/dist/index.d.ts.map +1 -0
  151. package/bundled/@yep-anywhere/shared/dist/index.js +17 -0
  152. package/bundled/@yep-anywhere/shared/dist/index.js.map +1 -0
  153. package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.d.ts +457 -0
  154. package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.d.ts.map +1 -0
  155. package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.js +217 -0
  156. package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.js.map +1 -0
  157. package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.d.ts +23 -0
  158. package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.d.ts.map +1 -0
  159. package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.js +23 -0
  160. package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.js.map +1 -0
  161. package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.d.ts +149 -0
  162. package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.d.ts.map +1 -0
  163. package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.js +158 -0
  164. package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.js.map +1 -0
  165. package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.d.ts +7 -0
  166. package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.d.ts.map +1 -0
  167. package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.js +6 -0
  168. package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.js.map +1 -0
  169. package/bundled/@yep-anywhere/shared/dist/projectId.d.ts +48 -0
  170. package/bundled/@yep-anywhere/shared/dist/projectId.d.ts.map +1 -0
  171. package/bundled/@yep-anywhere/shared/dist/projectId.js +74 -0
  172. package/bundled/@yep-anywhere/shared/dist/projectId.js.map +1 -0
  173. package/bundled/@yep-anywhere/shared/dist/session/SessionView.d.ts +171 -0
  174. package/bundled/@yep-anywhere/shared/dist/session/SessionView.d.ts.map +1 -0
  175. package/bundled/@yep-anywhere/shared/dist/session/SessionView.js +189 -0
  176. package/bundled/@yep-anywhere/shared/dist/session/SessionView.js.map +1 -0
  177. package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.d.ts +31 -0
  178. package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.d.ts.map +1 -0
  179. package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.js +2 -0
  180. package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.js.map +1 -0
  181. package/bundled/@yep-anywhere/shared/dist/session/index.d.ts +3 -0
  182. package/bundled/@yep-anywhere/shared/dist/session/index.d.ts.map +1 -0
  183. package/bundled/@yep-anywhere/shared/dist/session/index.js +2 -0
  184. package/bundled/@yep-anywhere/shared/dist/session/index.js.map +1 -0
  185. package/bundled/@yep-anywhere/shared/dist/types.d.ts +172 -0
  186. package/bundled/@yep-anywhere/shared/dist/types.d.ts.map +1 -0
  187. package/bundled/@yep-anywhere/shared/dist/types.js +33 -0
  188. package/bundled/@yep-anywhere/shared/dist/types.js.map +1 -0
  189. package/bundled/@yep-anywhere/shared/dist/upload.d.ts +58 -0
  190. package/bundled/@yep-anywhere/shared/dist/upload.d.ts.map +1 -0
  191. package/bundled/@yep-anywhere/shared/dist/upload.js +6 -0
  192. package/bundled/@yep-anywhere/shared/dist/upload.js.map +1 -0
  193. package/bundled/@yep-anywhere/shared/package.json +7 -0
  194. package/client-dist/assets/index-C7DeAWG4.css +1 -0
  195. package/client-dist/assets/index-yX0HPwrz.js +147 -0
  196. package/client-dist/badge-96.png +0 -0
  197. package/client-dist/badge.svg +20 -0
  198. package/client-dist/debug-streaming.html +746 -0
  199. package/client-dist/favicon.ico +0 -0
  200. package/client-dist/icon-192.png +0 -0
  201. package/client-dist/icon-512.png +0 -0
  202. package/client-dist/icon.svg +27 -0
  203. package/client-dist/index.html +35 -0
  204. package/client-dist/manifest.json +23 -0
  205. package/client-dist/sw.js +482 -0
  206. package/dist/app.d.ts +67 -0
  207. package/dist/app.d.ts.map +1 -0
  208. package/dist/app.js +236 -0
  209. package/dist/app.js.map +1 -0
  210. package/dist/augments/augment-generator.d.ts +30 -0
  211. package/dist/augments/augment-generator.d.ts.map +1 -0
  212. package/dist/augments/augment-generator.js +171 -0
  213. package/dist/augments/augment-generator.js.map +1 -0
  214. package/dist/augments/block-detector.d.ts +81 -0
  215. package/dist/augments/block-detector.d.ts.map +1 -0
  216. package/dist/augments/block-detector.js +615 -0
  217. package/dist/augments/block-detector.js.map +1 -0
  218. package/dist/augments/edit-augments.d.ts +138 -0
  219. package/dist/augments/edit-augments.d.ts.map +1 -0
  220. package/dist/augments/edit-augments.js +665 -0
  221. package/dist/augments/edit-augments.js.map +1 -0
  222. package/dist/augments/index.d.ts +14 -0
  223. package/dist/augments/index.d.ts.map +1 -0
  224. package/dist/augments/index.js +20 -0
  225. package/dist/augments/index.js.map +1 -0
  226. package/dist/augments/markdown-augments.d.ts +33 -0
  227. package/dist/augments/markdown-augments.d.ts.map +1 -0
  228. package/dist/augments/markdown-augments.js +128 -0
  229. package/dist/augments/markdown-augments.js.map +1 -0
  230. package/dist/augments/read-augments.d.ts +40 -0
  231. package/dist/augments/read-augments.d.ts.map +1 -0
  232. package/dist/augments/read-augments.js +64 -0
  233. package/dist/augments/read-augments.js.map +1 -0
  234. package/dist/augments/stream-coordinator.d.ts +32 -0
  235. package/dist/augments/stream-coordinator.d.ts.map +1 -0
  236. package/dist/augments/stream-coordinator.js +115 -0
  237. package/dist/augments/stream-coordinator.js.map +1 -0
  238. package/dist/augments/write-augments.d.ts +32 -0
  239. package/dist/augments/write-augments.d.ts.map +1 -0
  240. package/dist/augments/write-augments.js +27 -0
  241. package/dist/augments/write-augments.js.map +1 -0
  242. package/dist/auth/AuthService.d.ts +98 -0
  243. package/dist/auth/AuthService.d.ts.map +1 -0
  244. package/dist/auth/AuthService.js +217 -0
  245. package/dist/auth/AuthService.js.map +1 -0
  246. package/dist/auth/index.d.ts +3 -0
  247. package/dist/auth/index.d.ts.map +1 -0
  248. package/dist/auth/index.js +3 -0
  249. package/dist/auth/index.js.map +1 -0
  250. package/dist/auth/routes.d.ts +13 -0
  251. package/dist/auth/routes.d.ts.map +1 -0
  252. package/dist/auth/routes.js +149 -0
  253. package/dist/auth/routes.js.map +1 -0
  254. package/dist/cli.d.ts +19 -0
  255. package/dist/cli.d.ts.map +1 -0
  256. package/dist/cli.js +152 -0
  257. package/dist/cli.js.map +1 -0
  258. package/dist/config.d.ts +76 -0
  259. package/dist/config.d.ts.map +1 -0
  260. package/dist/config.js +124 -0
  261. package/dist/config.js.map +1 -0
  262. package/dist/dev-mock.d.ts +18 -0
  263. package/dist/dev-mock.d.ts.map +1 -0
  264. package/dist/dev-mock.js +260 -0
  265. package/dist/dev-mock.js.map +1 -0
  266. package/dist/frontend/index.d.ts +10 -0
  267. package/dist/frontend/index.d.ts.map +1 -0
  268. package/dist/frontend/index.js +10 -0
  269. package/dist/frontend/index.js.map +1 -0
  270. package/dist/frontend/proxy.d.ts +70 -0
  271. package/dist/frontend/proxy.d.ts.map +1 -0
  272. package/dist/frontend/proxy.js +329 -0
  273. package/dist/frontend/proxy.js.map +1 -0
  274. package/dist/frontend/static.d.ts +16 -0
  275. package/dist/frontend/static.d.ts.map +1 -0
  276. package/dist/frontend/static.js +106 -0
  277. package/dist/frontend/static.js.map +1 -0
  278. package/dist/highlighting/index.d.ts +43 -0
  279. package/dist/highlighting/index.d.ts.map +1 -0
  280. package/dist/highlighting/index.js +224 -0
  281. package/dist/highlighting/index.js.map +1 -0
  282. package/dist/index.d.ts +2 -0
  283. package/dist/index.d.ts.map +1 -0
  284. package/dist/index.js +259 -0
  285. package/dist/index.js.map +1 -0
  286. package/dist/indexes/SessionIndexService.d.ts +106 -0
  287. package/dist/indexes/SessionIndexService.d.ts.map +1 -0
  288. package/dist/indexes/SessionIndexService.js +356 -0
  289. package/dist/indexes/SessionIndexService.js.map +1 -0
  290. package/dist/indexes/index.d.ts +3 -0
  291. package/dist/indexes/index.d.ts.map +1 -0
  292. package/dist/indexes/index.js +2 -0
  293. package/dist/indexes/index.js.map +1 -0
  294. package/dist/indexes/types.d.ts +55 -0
  295. package/dist/indexes/types.d.ts.map +1 -0
  296. package/dist/indexes/types.js +8 -0
  297. package/dist/indexes/types.js.map +1 -0
  298. package/dist/logging/index.d.ts +2 -0
  299. package/dist/logging/index.d.ts.map +1 -0
  300. package/dist/logging/index.js +2 -0
  301. package/dist/logging/index.js.map +1 -0
  302. package/dist/logging/logger.d.ts +81 -0
  303. package/dist/logging/logger.d.ts.map +1 -0
  304. package/dist/logging/logger.js +257 -0
  305. package/dist/logging/logger.js.map +1 -0
  306. package/dist/maintenance/debug-routes.d.ts +39 -0
  307. package/dist/maintenance/debug-routes.d.ts.map +1 -0
  308. package/dist/maintenance/debug-routes.js +561 -0
  309. package/dist/maintenance/debug-routes.js.map +1 -0
  310. package/dist/maintenance/index.d.ts +3 -0
  311. package/dist/maintenance/index.d.ts.map +1 -0
  312. package/dist/maintenance/index.js +3 -0
  313. package/dist/maintenance/index.js.map +1 -0
  314. package/dist/maintenance/server.d.ts +53 -0
  315. package/dist/maintenance/server.d.ts.map +1 -0
  316. package/dist/maintenance/server.js +419 -0
  317. package/dist/maintenance/server.js.map +1 -0
  318. package/dist/metadata/SessionMetadataService.d.ts +96 -0
  319. package/dist/metadata/SessionMetadataService.d.ts.map +1 -0
  320. package/dist/metadata/SessionMetadataService.js +209 -0
  321. package/dist/metadata/SessionMetadataService.js.map +1 -0
  322. package/dist/metadata/index.d.ts +2 -0
  323. package/dist/metadata/index.d.ts.map +1 -0
  324. package/dist/metadata/index.js +2 -0
  325. package/dist/metadata/index.js.map +1 -0
  326. package/dist/middleware/auth.d.ts +18 -0
  327. package/dist/middleware/auth.d.ts.map +1 -0
  328. package/dist/middleware/auth.js +53 -0
  329. package/dist/middleware/auth.js.map +1 -0
  330. package/dist/middleware/security.d.ts +4 -0
  331. package/dist/middleware/security.d.ts.map +1 -0
  332. package/dist/middleware/security.js +28 -0
  333. package/dist/middleware/security.js.map +1 -0
  334. package/dist/notifications/NotificationService.d.ts +76 -0
  335. package/dist/notifications/NotificationService.d.ts.map +1 -0
  336. package/dist/notifications/NotificationService.js +155 -0
  337. package/dist/notifications/NotificationService.js.map +1 -0
  338. package/dist/notifications/index.d.ts +2 -0
  339. package/dist/notifications/index.d.ts.map +1 -0
  340. package/dist/notifications/index.js +2 -0
  341. package/dist/notifications/index.js.map +1 -0
  342. package/dist/projects/codex-scanner.d.ts +52 -0
  343. package/dist/projects/codex-scanner.d.ts.map +1 -0
  344. package/dist/projects/codex-scanner.js +167 -0
  345. package/dist/projects/codex-scanner.js.map +1 -0
  346. package/dist/projects/gemini-project-map.d.ts +54 -0
  347. package/dist/projects/gemini-project-map.d.ts.map +1 -0
  348. package/dist/projects/gemini-project-map.js +116 -0
  349. package/dist/projects/gemini-project-map.js.map +1 -0
  350. package/dist/projects/gemini-scanner.d.ts +58 -0
  351. package/dist/projects/gemini-scanner.d.ts.map +1 -0
  352. package/dist/projects/gemini-scanner.js +210 -0
  353. package/dist/projects/gemini-scanner.js.map +1 -0
  354. package/dist/projects/index.d.ts +16 -0
  355. package/dist/projects/index.d.ts.map +1 -0
  356. package/dist/projects/index.js +17 -0
  357. package/dist/projects/index.js.map +1 -0
  358. package/dist/projects/paths.d.ts +127 -0
  359. package/dist/projects/paths.d.ts.map +1 -0
  360. package/dist/projects/paths.js +185 -0
  361. package/dist/projects/paths.js.map +1 -0
  362. package/dist/projects/scanner.d.ts +45 -0
  363. package/dist/projects/scanner.d.ts.map +1 -0
  364. package/dist/projects/scanner.js +287 -0
  365. package/dist/projects/scanner.js.map +1 -0
  366. package/dist/push/PushNotifier.d.ts +48 -0
  367. package/dist/push/PushNotifier.d.ts.map +1 -0
  368. package/dist/push/PushNotifier.js +145 -0
  369. package/dist/push/PushNotifier.js.map +1 -0
  370. package/dist/push/PushService.d.ts +95 -0
  371. package/dist/push/PushService.d.ts.map +1 -0
  372. package/dist/push/PushService.js +245 -0
  373. package/dist/push/PushService.js.map +1 -0
  374. package/dist/push/index.d.ts +9 -0
  375. package/dist/push/index.d.ts.map +1 -0
  376. package/dist/push/index.js +8 -0
  377. package/dist/push/index.js.map +1 -0
  378. package/dist/push/routes.d.ts +10 -0
  379. package/dist/push/routes.d.ts.map +1 -0
  380. package/dist/push/routes.js +111 -0
  381. package/dist/push/routes.js.map +1 -0
  382. package/dist/push/types.d.ts +80 -0
  383. package/dist/push/types.d.ts.map +1 -0
  384. package/dist/push/types.js +5 -0
  385. package/dist/push/types.js.map +1 -0
  386. package/dist/push/vapid.d.ts +42 -0
  387. package/dist/push/vapid.d.ts.map +1 -0
  388. package/dist/push/vapid.js +132 -0
  389. package/dist/push/vapid.js.map +1 -0
  390. package/dist/recents/RecentsService.d.ts +77 -0
  391. package/dist/recents/RecentsService.d.ts.map +1 -0
  392. package/dist/recents/RecentsService.js +155 -0
  393. package/dist/recents/RecentsService.js.map +1 -0
  394. package/dist/recents/index.d.ts +2 -0
  395. package/dist/recents/index.d.ts.map +1 -0
  396. package/dist/recents/index.js +2 -0
  397. package/dist/recents/index.js.map +1 -0
  398. package/dist/routes/activity.d.ts +7 -0
  399. package/dist/routes/activity.d.ts.map +1 -0
  400. package/dist/routes/activity.js +80 -0
  401. package/dist/routes/activity.js.map +1 -0
  402. package/dist/routes/beads.d.ts +42 -0
  403. package/dist/routes/beads.d.ts.map +1 -0
  404. package/dist/routes/beads.js +101 -0
  405. package/dist/routes/beads.js.map +1 -0
  406. package/dist/routes/debug-streaming.d.ts +7 -0
  407. package/dist/routes/debug-streaming.d.ts.map +1 -0
  408. package/dist/routes/debug-streaming.js +88 -0
  409. package/dist/routes/debug-streaming.js.map +1 -0
  410. package/dist/routes/dev.d.ts +11 -0
  411. package/dist/routes/dev.d.ts.map +1 -0
  412. package/dist/routes/dev.js +55 -0
  413. package/dist/routes/dev.js.map +1 -0
  414. package/dist/routes/files.d.ts +7 -0
  415. package/dist/routes/files.d.ts.map +1 -0
  416. package/dist/routes/files.js +429 -0
  417. package/dist/routes/files.js.map +1 -0
  418. package/dist/routes/global-sessions.d.ts +76 -0
  419. package/dist/routes/global-sessions.d.ts.map +1 -0
  420. package/dist/routes/global-sessions.js +207 -0
  421. package/dist/routes/global-sessions.js.map +1 -0
  422. package/dist/routes/health.d.ts +3 -0
  423. package/dist/routes/health.d.ts.map +1 -0
  424. package/dist/routes/health.js +6 -0
  425. package/dist/routes/health.js.map +1 -0
  426. package/dist/routes/inbox.d.ts +45 -0
  427. package/dist/routes/inbox.d.ts.map +1 -0
  428. package/dist/routes/inbox.js +174 -0
  429. package/dist/routes/inbox.js.map +1 -0
  430. package/dist/routes/processes.d.ts +16 -0
  431. package/dist/routes/processes.d.ts.map +1 -0
  432. package/dist/routes/processes.js +82 -0
  433. package/dist/routes/processes.js.map +1 -0
  434. package/dist/routes/projects.d.ts +30 -0
  435. package/dist/routes/projects.d.ts.map +1 -0
  436. package/dist/routes/projects.js +316 -0
  437. package/dist/routes/projects.js.map +1 -0
  438. package/dist/routes/providers.d.ts +9 -0
  439. package/dist/routes/providers.d.ts.map +1 -0
  440. package/dist/routes/providers.js +63 -0
  441. package/dist/routes/providers.js.map +1 -0
  442. package/dist/routes/recents.d.ts +14 -0
  443. package/dist/routes/recents.d.ts.map +1 -0
  444. package/dist/routes/recents.js +82 -0
  445. package/dist/routes/recents.js.map +1 -0
  446. package/dist/routes/sessions.d.ts +26 -0
  447. package/dist/routes/sessions.d.ts.map +1 -0
  448. package/dist/routes/sessions.js +962 -0
  449. package/dist/routes/sessions.js.map +1 -0
  450. package/dist/routes/stream.d.ts +7 -0
  451. package/dist/routes/stream.d.ts.map +1 -0
  452. package/dist/routes/stream.js +561 -0
  453. package/dist/routes/stream.js.map +1 -0
  454. package/dist/routes/upload.d.ts +14 -0
  455. package/dist/routes/upload.d.ts.map +1 -0
  456. package/dist/routes/upload.js +278 -0
  457. package/dist/routes/upload.js.map +1 -0
  458. package/dist/sdk/cli-detection.d.ts +47 -0
  459. package/dist/sdk/cli-detection.d.ts.map +1 -0
  460. package/dist/sdk/cli-detection.js +122 -0
  461. package/dist/sdk/cli-detection.js.map +1 -0
  462. package/dist/sdk/messageLogger.d.ts +15 -0
  463. package/dist/sdk/messageLogger.d.ts.map +1 -0
  464. package/dist/sdk/messageLogger.js +68 -0
  465. package/dist/sdk/messageLogger.js.map +1 -0
  466. package/dist/sdk/messageQueue.d.ts +49 -0
  467. package/dist/sdk/messageQueue.d.ts.map +1 -0
  468. package/dist/sdk/messageQueue.js +186 -0
  469. package/dist/sdk/messageQueue.js.map +1 -0
  470. package/dist/sdk/mock.d.ts +16 -0
  471. package/dist/sdk/mock.d.ts.map +1 -0
  472. package/dist/sdk/mock.js +81 -0
  473. package/dist/sdk/mock.js.map +1 -0
  474. package/dist/sdk/providers/__mocks__/base.d.ts +78 -0
  475. package/dist/sdk/providers/__mocks__/base.d.ts.map +1 -0
  476. package/dist/sdk/providers/__mocks__/base.js +185 -0
  477. package/dist/sdk/providers/__mocks__/base.js.map +1 -0
  478. package/dist/sdk/providers/__mocks__/claude.d.ts +33 -0
  479. package/dist/sdk/providers/__mocks__/claude.d.ts.map +1 -0
  480. package/dist/sdk/providers/__mocks__/claude.js +146 -0
  481. package/dist/sdk/providers/__mocks__/claude.js.map +1 -0
  482. package/dist/sdk/providers/__mocks__/codex.d.ts +45 -0
  483. package/dist/sdk/providers/__mocks__/codex.d.ts.map +1 -0
  484. package/dist/sdk/providers/__mocks__/codex.js +160 -0
  485. package/dist/sdk/providers/__mocks__/codex.js.map +1 -0
  486. package/dist/sdk/providers/__mocks__/factory.d.ts +40 -0
  487. package/dist/sdk/providers/__mocks__/factory.d.ts.map +1 -0
  488. package/dist/sdk/providers/__mocks__/factory.js +183 -0
  489. package/dist/sdk/providers/__mocks__/factory.js.map +1 -0
  490. package/dist/sdk/providers/__mocks__/gemini.d.ts +43 -0
  491. package/dist/sdk/providers/__mocks__/gemini.d.ts.map +1 -0
  492. package/dist/sdk/providers/__mocks__/gemini.js +198 -0
  493. package/dist/sdk/providers/__mocks__/gemini.js.map +1 -0
  494. package/dist/sdk/providers/__mocks__/index.d.ts +23 -0
  495. package/dist/sdk/providers/__mocks__/index.d.ts.map +1 -0
  496. package/dist/sdk/providers/__mocks__/index.js +25 -0
  497. package/dist/sdk/providers/__mocks__/index.js.map +1 -0
  498. package/dist/sdk/providers/__mocks__/opencode.d.ts +33 -0
  499. package/dist/sdk/providers/__mocks__/opencode.d.ts.map +1 -0
  500. package/dist/sdk/providers/__mocks__/opencode.js +136 -0
  501. package/dist/sdk/providers/__mocks__/opencode.js.map +1 -0
  502. package/dist/sdk/providers/__mocks__/types.d.ts +50 -0
  503. package/dist/sdk/providers/__mocks__/types.d.ts.map +1 -0
  504. package/dist/sdk/providers/__mocks__/types.js +8 -0
  505. package/dist/sdk/providers/__mocks__/types.js.map +1 -0
  506. package/dist/sdk/providers/claude.d.ts +63 -0
  507. package/dist/sdk/providers/claude.d.ts.map +1 -0
  508. package/dist/sdk/providers/claude.js +252 -0
  509. package/dist/sdk/providers/claude.js.map +1 -0
  510. package/dist/sdk/providers/codex-oss.d.ts +108 -0
  511. package/dist/sdk/providers/codex-oss.d.ts.map +1 -0
  512. package/dist/sdk/providers/codex-oss.js +744 -0
  513. package/dist/sdk/providers/codex-oss.js.map +1 -0
  514. package/dist/sdk/providers/codex.d.ts +82 -0
  515. package/dist/sdk/providers/codex.d.ts.map +1 -0
  516. package/dist/sdk/providers/codex.js +597 -0
  517. package/dist/sdk/providers/codex.js.map +1 -0
  518. package/dist/sdk/providers/gemini.d.ts +78 -0
  519. package/dist/sdk/providers/gemini.d.ts.map +1 -0
  520. package/dist/sdk/providers/gemini.js +536 -0
  521. package/dist/sdk/providers/gemini.js.map +1 -0
  522. package/dist/sdk/providers/index.d.ts +22 -0
  523. package/dist/sdk/providers/index.d.ts.map +1 -0
  524. package/dist/sdk/providers/index.js +53 -0
  525. package/dist/sdk/providers/index.js.map +1 -0
  526. package/dist/sdk/providers/opencode.d.ts +95 -0
  527. package/dist/sdk/providers/opencode.d.ts.map +1 -0
  528. package/dist/sdk/providers/opencode.js +586 -0
  529. package/dist/sdk/providers/opencode.js.map +1 -0
  530. package/dist/sdk/providers/types.d.ts +99 -0
  531. package/dist/sdk/providers/types.d.ts.map +1 -0
  532. package/dist/sdk/providers/types.js +2 -0
  533. package/dist/sdk/providers/types.js.map +1 -0
  534. package/dist/sdk/real.d.ts +20 -0
  535. package/dist/sdk/real.d.ts.map +1 -0
  536. package/dist/sdk/real.js +22 -0
  537. package/dist/sdk/real.js.map +1 -0
  538. package/dist/sdk/types.d.ts +113 -0
  539. package/dist/sdk/types.d.ts.map +1 -0
  540. package/dist/sdk/types.js +3 -0
  541. package/dist/sdk/types.js.map +1 -0
  542. package/dist/sessions/Session.d.ts +80 -0
  543. package/dist/sessions/Session.d.ts.map +1 -0
  544. package/dist/sessions/Session.js +119 -0
  545. package/dist/sessions/Session.js.map +1 -0
  546. package/dist/sessions/codex-reader.d.ts +166 -0
  547. package/dist/sessions/codex-reader.d.ts.map +1 -0
  548. package/dist/sessions/codex-reader.js +664 -0
  549. package/dist/sessions/codex-reader.js.map +1 -0
  550. package/dist/sessions/dag.d.ts +62 -0
  551. package/dist/sessions/dag.d.ts.map +1 -0
  552. package/dist/sessions/dag.js +175 -0
  553. package/dist/sessions/dag.js.map +1 -0
  554. package/dist/sessions/fork.d.ts +34 -0
  555. package/dist/sessions/fork.d.ts.map +1 -0
  556. package/dist/sessions/fork.js +58 -0
  557. package/dist/sessions/fork.js.map +1 -0
  558. package/dist/sessions/gemini-reader.d.ts +103 -0
  559. package/dist/sessions/gemini-reader.d.ts.map +1 -0
  560. package/dist/sessions/gemini-reader.js +332 -0
  561. package/dist/sessions/gemini-reader.js.map +1 -0
  562. package/dist/sessions/normalization.d.ts +7 -0
  563. package/dist/sessions/normalization.d.ts.map +1 -0
  564. package/dist/sessions/normalization.js +429 -0
  565. package/dist/sessions/normalization.js.map +1 -0
  566. package/dist/sessions/opencode-reader.d.ts +99 -0
  567. package/dist/sessions/opencode-reader.d.ts.map +1 -0
  568. package/dist/sessions/opencode-reader.js +370 -0
  569. package/dist/sessions/opencode-reader.js.map +1 -0
  570. package/dist/sessions/reader.d.ts +118 -0
  571. package/dist/sessions/reader.d.ts.map +1 -0
  572. package/dist/sessions/reader.js +444 -0
  573. package/dist/sessions/reader.js.map +1 -0
  574. package/dist/sessions/types.d.ts +77 -0
  575. package/dist/sessions/types.d.ts.map +1 -0
  576. package/dist/sessions/types.js +8 -0
  577. package/dist/sessions/types.js.map +1 -0
  578. package/dist/supervisor/ExternalSessionTracker.d.ts +94 -0
  579. package/dist/supervisor/ExternalSessionTracker.d.ts.map +1 -0
  580. package/dist/supervisor/ExternalSessionTracker.js +507 -0
  581. package/dist/supervisor/ExternalSessionTracker.js.map +1 -0
  582. package/dist/supervisor/Process.d.ts +230 -0
  583. package/dist/supervisor/Process.d.ts.map +1 -0
  584. package/dist/supervisor/Process.js +878 -0
  585. package/dist/supervisor/Process.js.map +1 -0
  586. package/dist/supervisor/Supervisor.d.ts +191 -0
  587. package/dist/supervisor/Supervisor.d.ts.map +1 -0
  588. package/dist/supervisor/Supervisor.js +933 -0
  589. package/dist/supervisor/Supervisor.js.map +1 -0
  590. package/dist/supervisor/WorkerQueue.d.ts +113 -0
  591. package/dist/supervisor/WorkerQueue.d.ts.map +1 -0
  592. package/dist/supervisor/WorkerQueue.js +148 -0
  593. package/dist/supervisor/WorkerQueue.js.map +1 -0
  594. package/dist/supervisor/types.d.ts +176 -0
  595. package/dist/supervisor/types.d.ts.map +1 -0
  596. package/dist/supervisor/types.js +7 -0
  597. package/dist/supervisor/types.js.map +1 -0
  598. package/dist/testing/mockProjectData.d.ts +5 -0
  599. package/dist/testing/mockProjectData.d.ts.map +1 -0
  600. package/dist/testing/mockProjectData.js +27 -0
  601. package/dist/testing/mockProjectData.js.map +1 -0
  602. package/dist/uploads/index.d.ts +3 -0
  603. package/dist/uploads/index.d.ts.map +1 -0
  604. package/dist/uploads/index.js +2 -0
  605. package/dist/uploads/index.js.map +1 -0
  606. package/dist/uploads/manager.d.ts +84 -0
  607. package/dist/uploads/manager.d.ts.map +1 -0
  608. package/dist/uploads/manager.js +215 -0
  609. package/dist/uploads/manager.js.map +1 -0
  610. package/dist/utils/fileLock.d.ts +57 -0
  611. package/dist/utils/fileLock.d.ts.map +1 -0
  612. package/dist/utils/fileLock.js +91 -0
  613. package/dist/utils/fileLock.js.map +1 -0
  614. package/dist/watcher/BatchProcessor.d.ts +58 -0
  615. package/dist/watcher/BatchProcessor.d.ts.map +1 -0
  616. package/dist/watcher/BatchProcessor.js +105 -0
  617. package/dist/watcher/BatchProcessor.js.map +1 -0
  618. package/dist/watcher/EventBus.d.ts +157 -0
  619. package/dist/watcher/EventBus.d.ts.map +1 -0
  620. package/dist/watcher/EventBus.js +36 -0
  621. package/dist/watcher/EventBus.js.map +1 -0
  622. package/dist/watcher/FileWatcher.d.ts +42 -0
  623. package/dist/watcher/FileWatcher.d.ts.map +1 -0
  624. package/dist/watcher/FileWatcher.js +165 -0
  625. package/dist/watcher/FileWatcher.js.map +1 -0
  626. package/dist/watcher/SourceWatcher.d.ts +36 -0
  627. package/dist/watcher/SourceWatcher.d.ts.map +1 -0
  628. package/dist/watcher/SourceWatcher.js +97 -0
  629. package/dist/watcher/SourceWatcher.js.map +1 -0
  630. package/dist/watcher/index.d.ts +9 -0
  631. package/dist/watcher/index.d.ts.map +1 -0
  632. package/dist/watcher/index.js +5 -0
  633. package/dist/watcher/index.js.map +1 -0
  634. package/package.json +54 -0
  635. package/scripts/postinstall.js +48 -0
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Shiki-based syntax highlighting service.
3
+ *
4
+ * Uses CSS variables for theming so client can switch light/dark without
5
+ * re-rendering. Pre-loads common languages for fast highlighting.
6
+ */
7
+ import { bundledLanguages, createHighlighter, } from "shiki";
8
+ import { createCssVariablesTheme } from "shiki/core";
9
+ /** Maximum lines to highlight (avoid blocking on huge files) */
10
+ const MAX_LINES = 2000;
11
+ /** Languages to pre-load on startup */
12
+ const PRELOADED_LANGUAGES = [
13
+ "javascript",
14
+ "typescript",
15
+ "tsx",
16
+ "jsx",
17
+ "python",
18
+ "bash",
19
+ "shell",
20
+ "json",
21
+ "css",
22
+ "html",
23
+ "yaml",
24
+ "sql",
25
+ "go",
26
+ "rust",
27
+ "java",
28
+ "c",
29
+ "cpp",
30
+ "markdown",
31
+ "diff",
32
+ ];
33
+ /** CSS variables theme - outputs `style="color: var(--shiki-...)"` */
34
+ const cssVarsTheme = createCssVariablesTheme({
35
+ name: "css-variables",
36
+ variablePrefix: "--shiki-",
37
+ fontStyle: true,
38
+ });
39
+ /** Extension to Shiki language mapping */
40
+ const EXTENSION_TO_LANG = {
41
+ ts: "typescript",
42
+ tsx: "tsx",
43
+ js: "javascript",
44
+ jsx: "jsx",
45
+ mjs: "javascript",
46
+ cjs: "javascript",
47
+ py: "python",
48
+ rb: "ruby",
49
+ go: "go",
50
+ rs: "rust",
51
+ java: "java",
52
+ kt: "kotlin",
53
+ scala: "scala",
54
+ c: "c",
55
+ h: "c",
56
+ cpp: "cpp",
57
+ hpp: "cpp",
58
+ cc: "cpp",
59
+ cs: "csharp",
60
+ swift: "swift",
61
+ m: "objective-c",
62
+ mm: "objective-c",
63
+ php: "php",
64
+ pl: "perl",
65
+ pm: "perl",
66
+ lua: "lua",
67
+ r: "r",
68
+ sql: "sql",
69
+ graphql: "graphql",
70
+ gql: "graphql",
71
+ vue: "vue",
72
+ svelte: "svelte",
73
+ astro: "astro",
74
+ elm: "elm",
75
+ ex: "elixir",
76
+ exs: "elixir",
77
+ erl: "erlang",
78
+ hrl: "erlang",
79
+ hs: "haskell",
80
+ clj: "clojure",
81
+ cljs: "clojure",
82
+ cljc: "clojure",
83
+ ml: "ocaml",
84
+ mli: "ocaml",
85
+ fs: "fsharp",
86
+ fsx: "fsharp",
87
+ dart: "dart",
88
+ nim: "nim",
89
+ zig: "zig",
90
+ sol: "solidity",
91
+ proto: "protobuf",
92
+ prisma: "prisma",
93
+ dockerfile: "dockerfile",
94
+ makefile: "makefile",
95
+ cmake: "cmake",
96
+ gradle: "groovy",
97
+ sh: "bash",
98
+ bash: "bash",
99
+ zsh: "bash",
100
+ fish: "fish",
101
+ ps1: "powershell",
102
+ json: "json",
103
+ jsonc: "jsonc",
104
+ yaml: "yaml",
105
+ yml: "yaml",
106
+ toml: "toml",
107
+ xml: "xml",
108
+ html: "html",
109
+ htm: "html",
110
+ css: "css",
111
+ scss: "scss",
112
+ sass: "sass",
113
+ less: "less",
114
+ md: "markdown",
115
+ markdown: "markdown",
116
+ diff: "diff",
117
+ patch: "diff",
118
+ };
119
+ let highlighterPromise = null;
120
+ let loadedLanguages = new Set();
121
+ /**
122
+ * Get or create the singleton highlighter instance.
123
+ */
124
+ async function getHighlighter() {
125
+ if (!highlighterPromise) {
126
+ highlighterPromise = createHighlighter({
127
+ themes: [cssVarsTheme],
128
+ langs: PRELOADED_LANGUAGES,
129
+ }).then((h) => {
130
+ loadedLanguages = new Set(PRELOADED_LANGUAGES);
131
+ return h;
132
+ });
133
+ }
134
+ return highlighterPromise;
135
+ }
136
+ /**
137
+ * Get the Shiki language for a file path based on extension.
138
+ * Returns null if the extension is unknown.
139
+ */
140
+ export function getLanguageForPath(filePath) {
141
+ const ext = filePath.split(".").pop()?.toLowerCase();
142
+ if (!ext)
143
+ return null;
144
+ const lang = EXTENSION_TO_LANG[ext];
145
+ if (lang && lang in bundledLanguages) {
146
+ return lang;
147
+ }
148
+ return null;
149
+ }
150
+ /**
151
+ * Highlight code with syntax highlighting.
152
+ *
153
+ * @param code - The code to highlight
154
+ * @param language - The language (Shiki language id or file extension)
155
+ * @returns Highlighted HTML or null if language is unsupported
156
+ */
157
+ export async function highlightCode(code, language) {
158
+ const highlighter = await getHighlighter();
159
+ // Resolve language from extension if needed
160
+ let lang = null;
161
+ if (language in bundledLanguages) {
162
+ lang = language;
163
+ }
164
+ else {
165
+ lang = EXTENSION_TO_LANG[language.toLowerCase()] ?? null;
166
+ }
167
+ if (!lang) {
168
+ return null;
169
+ }
170
+ // Load language if not already loaded
171
+ if (!loadedLanguages.has(lang)) {
172
+ try {
173
+ await highlighter.loadLanguage(lang);
174
+ loadedLanguages.add(lang);
175
+ }
176
+ catch {
177
+ return null;
178
+ }
179
+ }
180
+ // Check line count and truncate if needed
181
+ const lines = code.split("\n");
182
+ const truncated = lines.length > MAX_LINES;
183
+ const codeToHighlight = truncated
184
+ ? lines.slice(0, MAX_LINES).join("\n")
185
+ : code;
186
+ try {
187
+ const html = highlighter.codeToHtml(codeToHighlight, {
188
+ lang,
189
+ theme: "css-variables",
190
+ });
191
+ return {
192
+ html,
193
+ language: lang,
194
+ lineCount: lines.length,
195
+ truncated,
196
+ };
197
+ }
198
+ catch {
199
+ return null;
200
+ }
201
+ }
202
+ /**
203
+ * Highlight a file's content.
204
+ *
205
+ * @param content - File content
206
+ * @param filePath - File path (used to determine language)
207
+ * @returns Highlighted HTML or null if language is unsupported
208
+ */
209
+ export async function highlightFile(content, filePath) {
210
+ const lang = getLanguageForPath(filePath);
211
+ if (!lang) {
212
+ return null;
213
+ }
214
+ return highlightCode(content, lang);
215
+ }
216
+ /**
217
+ * @internal
218
+ * Exported for testing purposes only. Do not use in production code.
219
+ */
220
+ export const __test__ = {
221
+ MAX_LINES,
222
+ EXTENSION_TO_LANG,
223
+ };
224
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/highlighting/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,259 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import { serve } from "@hono/node-server";
4
+ import { RESPONSE_ALREADY_SENT } from "@hono/node-server/utils/response";
5
+ import { createNodeWebSocket } from "@hono/node-ws";
6
+ import { createApp } from "./app.js";
7
+ import { AuthService } from "./auth/AuthService.js";
8
+ import { loadConfig } from "./config.js";
9
+ import { attachUnifiedUpgradeHandler, createFrontendProxy, createStaticRoutes, } from "./frontend/index.js";
10
+ import { SessionIndexService } from "./indexes/index.js";
11
+ import { getLogFilePath, initLogger, interceptConsole, } from "./logging/index.js";
12
+ import { setDebugContext, startMaintenanceServer, } from "./maintenance/index.js";
13
+ import { SessionMetadataService } from "./metadata/index.js";
14
+ import { NotificationService } from "./notifications/index.js";
15
+ import { ProjectScanner } from "./projects/scanner.js";
16
+ import { PushService, loadVapidKeys } from "./push/index.js";
17
+ import { RecentsService } from "./recents/index.js";
18
+ import { createUploadRoutes } from "./routes/upload.js";
19
+ import { detectClaudeCli } from "./sdk/cli-detection.js";
20
+ import { initMessageLogger } from "./sdk/messageLogger.js";
21
+ import { RealClaudeSDK } from "./sdk/real.js";
22
+ import { ClaudeSessionReader } from "./sessions/reader.js";
23
+ import { EventBus, FileWatcher, SourceWatcher } from "./watcher/index.js";
24
+ // Allow many concurrent Claude sessions without listener warnings.
25
+ // Each SDK session registers an exit handler; default limit is 10.
26
+ process.setMaxListeners(50);
27
+ const config = loadConfig();
28
+ // Initialize logging early to capture all output
29
+ initLogger({
30
+ logDir: config.logDir,
31
+ logFile: config.logFile,
32
+ consoleLevel: config.logLevel,
33
+ fileLevel: config.logFileLevel,
34
+ logToFile: config.logToFile,
35
+ logToConsole: config.logToConsole,
36
+ prettyPrint: process.env.NODE_ENV !== "production",
37
+ });
38
+ interceptConsole();
39
+ // Initialize SDK message logger (if LOG_SDK_MESSAGES=true)
40
+ initMessageLogger();
41
+ // Log configuration for discoverability
42
+ console.log(`[Config] Data dir: ${config.dataDir}`);
43
+ console.log(`[Config] Log file: ${getLogFilePath({ logDir: config.logDir, logFile: config.logFile })}`);
44
+ // Check for Claude CLI (optional - warn if not found)
45
+ const cliInfo = detectClaudeCli();
46
+ if (cliInfo.found) {
47
+ console.log(`Claude CLI found: ${cliInfo.path} (${cliInfo.version})`);
48
+ }
49
+ else {
50
+ console.warn("Warning: Claude CLI not found.");
51
+ console.warn("Claude Code sessions will not be available.");
52
+ console.warn("Install: curl -fsSL https://claude.ai/install.sh | bash");
53
+ }
54
+ // Create the real SDK
55
+ const realSdk = new RealClaudeSDK();
56
+ // Create EventBus and FileWatchers for all provider directories
57
+ const eventBus = new EventBus();
58
+ const fileWatchers = [];
59
+ // Helper to create watcher if directory exists
60
+ function createWatcherIfExists(watchDir, provider) {
61
+ if (fs.existsSync(watchDir)) {
62
+ const watcher = new FileWatcher({
63
+ watchDir,
64
+ provider,
65
+ eventBus,
66
+ debounceMs: 200,
67
+ });
68
+ watcher.start();
69
+ fileWatchers.push(watcher);
70
+ }
71
+ else {
72
+ console.log(`[FileWatcher] Skipping ${provider} (${watchDir} not found)`);
73
+ }
74
+ }
75
+ // Create watchers for session directories only (not full provider dirs)
76
+ // This reduces inotify pressure and memory usage
77
+ createWatcherIfExists(config.claudeSessionsDir, "claude");
78
+ createWatcherIfExists(config.geminiSessionsDir, "gemini");
79
+ createWatcherIfExists(config.codexSessionsDir, "codex");
80
+ // When running without tsx watch (NO_BACKEND_RELOAD=true), start source watcher
81
+ // to notify the UI when server code changes and needs manual reload
82
+ if (process.env.NO_BACKEND_RELOAD === "true") {
83
+ const sourceWatcher = new SourceWatcher({ eventBus });
84
+ sourceWatcher.start();
85
+ }
86
+ // Create and initialize services (all use config.dataDir for state)
87
+ const notificationService = new NotificationService({
88
+ eventBus,
89
+ dataDir: config.dataDir,
90
+ });
91
+ const sessionMetadataService = new SessionMetadataService({
92
+ dataDir: config.dataDir,
93
+ });
94
+ const sessionIndexService = new SessionIndexService({
95
+ projectsDir: config.claudeProjectsDir,
96
+ dataDir: path.join(config.dataDir, "indexes"),
97
+ });
98
+ const pushService = new PushService({ dataDir: config.dataDir });
99
+ const recentsService = new RecentsService({ dataDir: config.dataDir });
100
+ const authService = new AuthService({
101
+ dataDir: config.dataDir,
102
+ sessionTtlMs: config.authSessionTtlMs,
103
+ cookieSecret: config.authCookieSecret,
104
+ });
105
+ async function startServer() {
106
+ // Initialize services (loads state from disk)
107
+ await notificationService.initialize();
108
+ await sessionMetadataService.initialize();
109
+ await sessionIndexService.initialize();
110
+ await pushService.initialize();
111
+ await recentsService.initialize();
112
+ await authService.initialize();
113
+ // Log auth status
114
+ if (config.authEnabled) {
115
+ if (authService.hasAccount()) {
116
+ console.log("[Auth] Cookie auth enabled (account configured)");
117
+ }
118
+ else {
119
+ console.log("[Auth] Cookie auth enabled (setup required - visit /settings)");
120
+ }
121
+ }
122
+ else {
123
+ console.log("[Auth] Cookie auth disabled (AUTH_ENABLED=false)");
124
+ }
125
+ // Load VAPID keys if available (run 'pnpm setup-vapid' to generate)
126
+ const vapidKeys = await loadVapidKeys();
127
+ if (vapidKeys) {
128
+ pushService.setVapidKeys(vapidKeys);
129
+ console.log("[Push] VAPID keys loaded, push notifications enabled");
130
+ }
131
+ else {
132
+ console.log("[Push] VAPID keys not found. Run 'pnpm setup-vapid' to enable push notifications.");
133
+ }
134
+ // Determine if we're in production mode (no Vite dev server)
135
+ const isProduction = process.env.NODE_ENV === "production";
136
+ const isDev = !isProduction;
137
+ // Frontend serving setup - create proxy before app so it can be passed in
138
+ let frontendProxy;
139
+ if (config.serveFrontend && isDev) {
140
+ // Development: proxy to Vite dev server
141
+ frontendProxy = createFrontendProxy({ vitePort: config.vitePort });
142
+ console.log(`[Frontend] Proxying to Vite at http://localhost:${config.vitePort}`);
143
+ }
144
+ // Create the app first (without WebSocket support initially)
145
+ // We'll add WebSocket routes after setting up WebSocket support
146
+ const { app, supervisor, scanner } = createApp({
147
+ realSdk,
148
+ projectsDir: config.claudeProjectsDir,
149
+ idleTimeoutMs: config.idleTimeoutMs,
150
+ defaultPermissionMode: config.defaultPermissionMode,
151
+ eventBus,
152
+ // Note: uploadeWebSocket not passed yet - will be added below
153
+ notificationService,
154
+ sessionMetadataService,
155
+ sessionIndexService,
156
+ maxWorkers: config.maxWorkers,
157
+ idlePreemptThresholdMs: config.idlePreemptThresholdMs,
158
+ pushService,
159
+ recentsService,
160
+ authService,
161
+ authEnabled: config.authEnabled,
162
+ // Note: frontendProxy not passed - will be added below
163
+ });
164
+ // Set up debug context for maintenance server
165
+ setDebugContext({
166
+ supervisor,
167
+ claudeSessionsDir: config.claudeSessionsDir,
168
+ getSessionReader: async (projectPath) => {
169
+ // Find the project by scanning - projectPath is the absolute path
170
+ const projects = await scanner.listProjects();
171
+ const project = projects.find((p) => p.path === projectPath);
172
+ if (!project || project.provider !== "claude")
173
+ return null;
174
+ return new ClaudeSessionReader({ sessionDir: project.sessionDir });
175
+ },
176
+ });
177
+ // Create WebSocket support with the main app
178
+ // This must use the same app instance that has the routes
179
+ // We get wss for the unified upgrade handler (instead of using injectWebSocket)
180
+ const { wss, upgradeWebSocket } = createNodeWebSocket({ app });
181
+ // Add upload routes with WebSocket support
182
+ // These must be added BEFORE the frontend proxy catch-all
183
+ const uploadScanner = new ProjectScanner({
184
+ projectsDir: config.claudeProjectsDir,
185
+ });
186
+ const uploadRoutes = createUploadRoutes({
187
+ scanner: uploadScanner,
188
+ upgradeWebSocket,
189
+ maxUploadSizeBytes: config.maxUploadSizeBytes,
190
+ });
191
+ app.route("/api", uploadRoutes);
192
+ // Serve stable (emergency) UI from /_stable/ path if available
193
+ // This bypasses HMR and serves pre-built assets directly
194
+ if (config.serveFrontend && fs.existsSync(config.stableDistPath)) {
195
+ const stableRoutes = createStaticRoutes({
196
+ distPath: config.stableDistPath,
197
+ basePath: "/_stable",
198
+ });
199
+ app.route("/_stable", stableRoutes);
200
+ console.log(`[Frontend] Stable UI available at /_stable/ from ${config.stableDistPath}`);
201
+ }
202
+ // Add frontend proxy as the final catch-all (AFTER all API routes including uploads)
203
+ if (frontendProxy) {
204
+ const proxy = frontendProxy;
205
+ app.all("*", (c) => {
206
+ const { incoming, outgoing } = c.env;
207
+ proxy.web(incoming, outgoing);
208
+ return RESPONSE_ALREADY_SENT;
209
+ });
210
+ }
211
+ // Production: serve static files (must be added after API routes)
212
+ if (config.serveFrontend && isProduction) {
213
+ const distExists = fs.existsSync(config.clientDistPath);
214
+ if (distExists) {
215
+ const staticRoutes = createStaticRoutes({
216
+ distPath: config.clientDistPath,
217
+ });
218
+ app.route("/", staticRoutes);
219
+ console.log(`[Frontend] Serving static files from ${config.clientDistPath}`);
220
+ }
221
+ else {
222
+ console.warn(`[Frontend] Warning: dist not found at ${config.clientDistPath}. Run 'pnpm build' first.`);
223
+ }
224
+ }
225
+ const server = serve({ fetch: app.fetch, port: config.port }, (info) => {
226
+ console.log(`Server running at http://localhost:${info.port}`);
227
+ console.log(`Projects dir: ${config.claudeProjectsDir}`);
228
+ console.log(`Permission mode: ${config.defaultPermissionMode}`);
229
+ // Notify all connected clients that the backend has restarted
230
+ // This allows other tabs to clear their "reload needed" banner
231
+ eventBus.emit({
232
+ type: "backend-reloaded",
233
+ timestamp: new Date().toISOString(),
234
+ });
235
+ });
236
+ // Attach unified WebSocket upgrade handler
237
+ // This replaces both attachFrontendProxyUpgrade and injectWebSocket to avoid
238
+ // conflicts where both would try to handle the same upgrade request
239
+ attachUnifiedUpgradeHandler(server, {
240
+ frontendProxy,
241
+ isApiPath: (urlPath) => urlPath.startsWith("/api"),
242
+ app,
243
+ wss,
244
+ });
245
+ // Start maintenance server on separate port (for out-of-band diagnostics)
246
+ // This runs independently from the main server and can be used to debug
247
+ // issues even when the main server is unresponsive
248
+ if (config.maintenancePort > 0) {
249
+ startMaintenanceServer({
250
+ port: config.maintenancePort,
251
+ mainServerPort: config.port,
252
+ });
253
+ }
254
+ }
255
+ startServer().catch((error) => {
256
+ console.error("Failed to start server:", error);
257
+ process.exit(1);
258
+ });
259
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * SessionIndexService caches session summaries to avoid re-parsing JSONL files.
3
+ * Uses mtime/size for cache invalidation - only re-parses when files change.
4
+ *
5
+ * State is persisted to JSON files for durability across server restarts.
6
+ * Each project's session directory gets its own index file.
7
+ */
8
+ import { type ProviderName, type UrlProjectId } from "@yep-anywhere/shared";
9
+ import type { ISessionReader } from "../sessions/types.js";
10
+ import type { SessionSummary } from "../supervisor/types.js";
11
+ import type { ISessionIndexService } from "./types.js";
12
+ export interface CachedSessionSummary {
13
+ title: string | null;
14
+ fullTitle: string | null;
15
+ createdAt: string;
16
+ updatedAt: string;
17
+ messageCount: number;
18
+ contextUsage?: {
19
+ inputTokens: number;
20
+ percentage: number;
21
+ };
22
+ /** File size in bytes at time of indexing */
23
+ indexedBytes: number;
24
+ /** File mtime in milliseconds since epoch at time of indexing */
25
+ fileMtime: number;
26
+ /** True if session has no user/assistant messages (metadata-only file) */
27
+ isEmpty?: boolean;
28
+ /** AI provider for this session */
29
+ provider: ProviderName;
30
+ }
31
+ export interface SessionIndexState {
32
+ version: 1;
33
+ projectId: string;
34
+ sessions: Record<string, CachedSessionSummary>;
35
+ }
36
+ export interface SessionIndexServiceOptions {
37
+ /** Directory to store index files (defaults to ~/.yep-anywhere/indexes) */
38
+ dataDir?: string;
39
+ /** Claude projects directory (defaults to ~/.claude/projects) */
40
+ projectsDir?: string;
41
+ /** Max number of projects to keep in memory cache (default: 100) */
42
+ maxCacheSize?: number;
43
+ }
44
+ /**
45
+ * Claude-specific session index service.
46
+ *
47
+ * Caches session summaries for Claude Code JSONL files to avoid
48
+ * re-parsing on every request. Currently works with Claude's
49
+ * ~/.claude/projects/ directory structure.
50
+ */
51
+ export declare class SessionIndexService implements ISessionIndexService {
52
+ private dataDir;
53
+ private projectsDir;
54
+ private indexCache;
55
+ private savePromises;
56
+ private pendingSaves;
57
+ private maxCacheSize;
58
+ constructor(options?: SessionIndexServiceOptions);
59
+ /**
60
+ * Evict oldest entries if cache exceeds max size.
61
+ * Simple FIFO eviction since Map maintains insertion order.
62
+ */
63
+ private evictIfNeeded;
64
+ /**
65
+ * Initialize the service by ensuring the data directory exists.
66
+ */
67
+ initialize(): Promise<void>;
68
+ /**
69
+ * Get the index file path for a session directory.
70
+ * Encodes the relative path from projectsDir with %2F for slashes.
71
+ */
72
+ getIndexPath(sessionDir: string): string;
73
+ /**
74
+ * Load index from disk or create a new one.
75
+ */
76
+ private loadIndex;
77
+ /**
78
+ * Save index to disk with debouncing to prevent excessive writes.
79
+ */
80
+ private saveIndex;
81
+ private doSaveIndex;
82
+ /**
83
+ * Get sessions using the cache, only re-parsing files that have changed.
84
+ * This is the main entry point for listing sessions with caching.
85
+ */
86
+ getSessionsWithCache(sessionDir: string, projectId: UrlProjectId, reader: ISessionReader): Promise<SessionSummary[]>;
87
+ /**
88
+ * Invalidate the cache for a specific session.
89
+ * Call this when you know a session file has been modified.
90
+ */
91
+ invalidateSession(sessionDir: string, sessionId: string): void;
92
+ /**
93
+ * Clear all cached data for a session directory.
94
+ */
95
+ clearCache(sessionDir: string): void;
96
+ /**
97
+ * Get the data directory for testing purposes.
98
+ */
99
+ getDataDir(): string;
100
+ /**
101
+ * Get just the title for a single session, using cache when possible.
102
+ * More efficient than getSessionsWithCache when you only need one session.
103
+ */
104
+ getSessionTitle(sessionDir: string, projectId: UrlProjectId, sessionId: string, reader: ISessionReader): Promise<string | null>;
105
+ }
106
+ //# sourceMappingURL=SessionIndexService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionIndexService.d.ts","sourceRoot":"","sources":["../../src/indexes/SessionIndexService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD;AAID,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE,0BAA+B;IASpD;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAMxC;;OAEG;YACW,SAAS;IAiEvB;;OAEG;YACW,SAAS;YAyBT,WAAW;IAoBzB;;;OAGG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,EAAE,CAAC;IA8H5B;;;OAGG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAO9D;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACG,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,YAAY,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA4D1B"}