opentasks 0.0.6 → 0.0.8

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 (522) hide show
  1. package/README.md +68 -0
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +64 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/client/client.d.ts +47 -1
  7. package/dist/client/client.d.ts.map +1 -1
  8. package/dist/client/client.js +71 -0
  9. package/dist/client/client.js.map +1 -1
  10. package/dist/client/index.d.ts +1 -1
  11. package/dist/client/index.d.ts.map +1 -1
  12. package/dist/config/schema.d.ts +178 -4
  13. package/dist/config/schema.d.ts.map +1 -1
  14. package/dist/config/schema.js +109 -7
  15. package/dist/config/schema.js.map +1 -1
  16. package/dist/context-files/context-files.d.ts +72 -0
  17. package/dist/context-files/context-files.d.ts.map +1 -0
  18. package/dist/context-files/context-files.js +145 -0
  19. package/dist/context-files/context-files.js.map +1 -0
  20. package/dist/context-files/index.d.ts +16 -0
  21. package/dist/context-files/index.d.ts.map +1 -0
  22. package/dist/context-files/index.js +14 -0
  23. package/dist/context-files/index.js.map +1 -0
  24. package/dist/context-files/resolver.d.ts +43 -0
  25. package/dist/context-files/resolver.d.ts.map +1 -0
  26. package/dist/context-files/resolver.js +127 -0
  27. package/dist/context-files/resolver.js.map +1 -0
  28. package/dist/context-files/types.d.ts +94 -0
  29. package/dist/context-files/types.d.ts.map +1 -0
  30. package/dist/context-files/types.js +10 -0
  31. package/dist/context-files/types.js.map +1 -0
  32. package/dist/context-files/watcher-integration.d.ts +47 -0
  33. package/dist/context-files/watcher-integration.d.ts.map +1 -0
  34. package/dist/context-files/watcher-integration.js +47 -0
  35. package/dist/context-files/watcher-integration.js.map +1 -0
  36. package/dist/core/merge-driver.d.ts +5 -0
  37. package/dist/core/merge-driver.d.ts.map +1 -1
  38. package/dist/core/merge-driver.js +35 -0
  39. package/dist/core/merge-driver.js.map +1 -1
  40. package/dist/daemon/entire-linker.d.ts.map +1 -1
  41. package/dist/daemon/entire-linker.js +42 -48
  42. package/dist/daemon/entire-linker.js.map +1 -1
  43. package/dist/daemon/entire-watcher.d.ts +0 -11
  44. package/dist/daemon/entire-watcher.d.ts.map +1 -1
  45. package/dist/daemon/entire-watcher.js +1 -32
  46. package/dist/daemon/entire-watcher.js.map +1 -1
  47. package/dist/daemon/index.d.ts +6 -4
  48. package/dist/daemon/index.d.ts.map +1 -1
  49. package/dist/daemon/index.js +3 -2
  50. package/dist/daemon/index.js.map +1 -1
  51. package/dist/daemon/ipc.d.ts.map +1 -1
  52. package/dist/daemon/ipc.js +8 -1
  53. package/dist/daemon/ipc.js.map +1 -1
  54. package/dist/daemon/lifecycle.d.ts.map +1 -1
  55. package/dist/daemon/lifecycle.js +138 -25
  56. package/dist/daemon/lifecycle.js.map +1 -1
  57. package/dist/daemon/location-state.d.ts +12 -6
  58. package/dist/daemon/location-state.d.ts.map +1 -1
  59. package/dist/daemon/location-state.js +50 -20
  60. package/dist/daemon/location-state.js.map +1 -1
  61. package/dist/daemon/methods/context-files.d.ts +14 -0
  62. package/dist/daemon/methods/context-files.d.ts.map +1 -0
  63. package/dist/daemon/methods/context-files.js +95 -0
  64. package/dist/daemon/methods/context-files.js.map +1 -0
  65. package/dist/daemon/methods/provider.d.ts.map +1 -1
  66. package/dist/daemon/methods/provider.js +15 -0
  67. package/dist/daemon/methods/provider.js.map +1 -1
  68. package/dist/daemon/methods/tools.d.ts +1 -1
  69. package/dist/daemon/methods/tools.d.ts.map +1 -1
  70. package/dist/daemon/methods/tools.js +3 -2
  71. package/dist/daemon/methods/tools.js.map +1 -1
  72. package/dist/daemon/sessionlog-linker.d.ts +71 -0
  73. package/dist/daemon/sessionlog-linker.d.ts.map +1 -0
  74. package/dist/daemon/sessionlog-linker.js +472 -0
  75. package/dist/daemon/sessionlog-linker.js.map +1 -0
  76. package/dist/daemon/sessionlog-watcher.d.ts +79 -0
  77. package/dist/daemon/sessionlog-watcher.d.ts.map +1 -0
  78. package/dist/daemon/sessionlog-watcher.js +289 -0
  79. package/dist/daemon/sessionlog-watcher.js.map +1 -0
  80. package/dist/graph/index.d.ts +1 -1
  81. package/dist/graph/index.d.ts.map +1 -1
  82. package/dist/graph/index.js.map +1 -1
  83. package/dist/graph/provider-store.d.ts +78 -4
  84. package/dist/graph/provider-store.d.ts.map +1 -1
  85. package/dist/graph/provider-store.js +579 -55
  86. package/dist/graph/provider-store.js.map +1 -1
  87. package/dist/graph/store.d.ts.map +1 -1
  88. package/dist/graph/store.js +3 -0
  89. package/dist/graph/store.js.map +1 -1
  90. package/dist/graph/types.d.ts +16 -0
  91. package/dist/graph/types.d.ts.map +1 -1
  92. package/dist/graph/types.js.map +1 -1
  93. package/dist/index.d.ts +5 -2
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +11 -3
  96. package/dist/index.js.map +1 -1
  97. package/dist/materialization/git-archive-store.js +2 -2
  98. package/dist/materialization/git-archive-store.js.map +1 -1
  99. package/dist/materialization/git-remote-store.js +2 -2
  100. package/dist/materialization/git-remote-store.js.map +1 -1
  101. package/dist/materialization/snapshot.js +4 -4
  102. package/dist/materialization/snapshot.js.map +1 -1
  103. package/dist/mcp/index.d.ts +8 -0
  104. package/dist/mcp/index.d.ts.map +1 -0
  105. package/dist/mcp/index.js +8 -0
  106. package/dist/mcp/index.js.map +1 -0
  107. package/dist/mcp/server.d.ts +39 -0
  108. package/dist/mcp/server.d.ts.map +1 -0
  109. package/dist/mcp/server.js +677 -0
  110. package/dist/mcp/server.js.map +1 -0
  111. package/dist/mcp/stdio.d.ts +14 -0
  112. package/dist/mcp/stdio.d.ts.map +1 -0
  113. package/dist/mcp/stdio.js +19 -0
  114. package/dist/mcp/stdio.js.map +1 -0
  115. package/dist/providers/beads.d.ts.map +1 -1
  116. package/dist/providers/beads.js +17 -1
  117. package/dist/providers/beads.js.map +1 -1
  118. package/dist/providers/claude-tasks-fs.d.ts +22 -0
  119. package/dist/providers/claude-tasks-fs.d.ts.map +1 -0
  120. package/dist/providers/claude-tasks-fs.js +158 -0
  121. package/dist/providers/claude-tasks-fs.js.map +1 -0
  122. package/dist/providers/claude-tasks.d.ts +13 -4
  123. package/dist/providers/claude-tasks.d.ts.map +1 -1
  124. package/dist/providers/claude-tasks.js +318 -5
  125. package/dist/providers/claude-tasks.js.map +1 -1
  126. package/dist/providers/entire.d.ts +0 -10
  127. package/dist/providers/entire.d.ts.map +1 -1
  128. package/dist/providers/entire.js +0 -13
  129. package/dist/providers/entire.js.map +1 -1
  130. package/dist/providers/from-config.d.ts.map +1 -1
  131. package/dist/providers/from-config.js +35 -17
  132. package/dist/providers/from-config.js.map +1 -1
  133. package/dist/providers/global.d.ts.map +1 -1
  134. package/dist/providers/global.js +5 -0
  135. package/dist/providers/global.js.map +1 -1
  136. package/dist/providers/index.d.ts +7 -4
  137. package/dist/providers/index.d.ts.map +1 -1
  138. package/dist/providers/index.js +6 -3
  139. package/dist/providers/index.js.map +1 -1
  140. package/dist/providers/map-connector.d.ts +87 -0
  141. package/dist/providers/map-connector.d.ts.map +1 -0
  142. package/dist/providers/map-connector.js +159 -0
  143. package/dist/providers/map-connector.js.map +1 -0
  144. package/dist/providers/map.d.ts.map +1 -1
  145. package/dist/providers/map.js +5 -0
  146. package/dist/providers/map.js.map +1 -1
  147. package/dist/providers/materialization.d.ts +23 -5
  148. package/dist/providers/materialization.d.ts.map +1 -1
  149. package/dist/providers/materialization.js +95 -4
  150. package/dist/providers/materialization.js.map +1 -1
  151. package/dist/providers/native.d.ts.map +1 -1
  152. package/dist/providers/native.js +5 -0
  153. package/dist/providers/native.js.map +1 -1
  154. package/dist/providers/sessionlog.d.ts +81 -0
  155. package/dist/providers/sessionlog.d.ts.map +1 -0
  156. package/dist/providers/sessionlog.js +478 -0
  157. package/dist/providers/sessionlog.js.map +1 -0
  158. package/dist/providers/sudocode.d.ts.map +1 -1
  159. package/dist/providers/sudocode.js +17 -1
  160. package/dist/providers/sudocode.js.map +1 -1
  161. package/dist/providers/traits/Reconcilable.d.ts +57 -0
  162. package/dist/providers/traits/Reconcilable.d.ts.map +1 -0
  163. package/dist/providers/traits/Reconcilable.js +18 -0
  164. package/dist/providers/traits/Reconcilable.js.map +1 -0
  165. package/dist/providers/traits/index.d.ts +2 -0
  166. package/dist/providers/traits/index.d.ts.map +1 -1
  167. package/dist/providers/traits/index.js +1 -0
  168. package/dist/providers/traits/index.js.map +1 -1
  169. package/dist/providers/types.d.ts +63 -0
  170. package/dist/providers/types.d.ts.map +1 -1
  171. package/dist/providers/types.js +22 -0
  172. package/dist/providers/types.js.map +1 -1
  173. package/dist/schema/edges.d.ts +3 -3
  174. package/dist/schema/edges.d.ts.map +1 -1
  175. package/dist/sessionlog/agent/agents/claude-code.d.ts.map +1 -0
  176. package/dist/sessionlog/agent/agents/claude-code.js.map +1 -0
  177. package/dist/sessionlog/agent/agents/cursor.d.ts.map +1 -0
  178. package/dist/sessionlog/agent/agents/cursor.js.map +1 -0
  179. package/dist/sessionlog/agent/agents/gemini-cli.d.ts.map +1 -0
  180. package/dist/sessionlog/agent/agents/gemini-cli.js.map +1 -0
  181. package/dist/sessionlog/agent/agents/opencode.d.ts.map +1 -0
  182. package/dist/sessionlog/agent/agents/opencode.js.map +1 -0
  183. package/dist/sessionlog/agent/registry.d.ts.map +1 -0
  184. package/dist/sessionlog/agent/registry.js.map +1 -0
  185. package/dist/sessionlog/agent/session-types.d.ts.map +1 -0
  186. package/dist/sessionlog/agent/session-types.js.map +1 -0
  187. package/dist/sessionlog/agent/types.d.ts.map +1 -0
  188. package/dist/sessionlog/agent/types.js.map +1 -0
  189. package/dist/{entire → sessionlog}/commands/clean.d.ts +11 -1
  190. package/dist/sessionlog/commands/clean.d.ts.map +1 -0
  191. package/dist/{entire → sessionlog}/commands/clean.js +12 -6
  192. package/dist/sessionlog/commands/clean.js.map +1 -0
  193. package/dist/sessionlog/commands/disable.d.ts.map +1 -0
  194. package/dist/sessionlog/commands/disable.js.map +1 -0
  195. package/dist/sessionlog/commands/doctor.d.ts.map +1 -0
  196. package/dist/sessionlog/commands/doctor.js.map +1 -0
  197. package/dist/{entire → sessionlog}/commands/enable.d.ts +2 -0
  198. package/dist/sessionlog/commands/enable.d.ts.map +1 -0
  199. package/dist/{entire → sessionlog}/commands/enable.js +4 -4
  200. package/dist/sessionlog/commands/enable.js.map +1 -0
  201. package/dist/{entire → sessionlog}/commands/explain.d.ts +1 -0
  202. package/dist/sessionlog/commands/explain.d.ts.map +1 -0
  203. package/dist/{entire → sessionlog}/commands/explain.js +6 -3
  204. package/dist/sessionlog/commands/explain.js.map +1 -0
  205. package/dist/sessionlog/commands/reset.d.ts.map +1 -0
  206. package/dist/sessionlog/commands/reset.js.map +1 -0
  207. package/dist/sessionlog/commands/resume.d.ts.map +1 -0
  208. package/dist/sessionlog/commands/resume.js.map +1 -0
  209. package/dist/{entire → sessionlog}/commands/rewind.d.ts +6 -0
  210. package/dist/sessionlog/commands/rewind.d.ts.map +1 -0
  211. package/dist/{entire → sessionlog}/commands/rewind.js +1 -1
  212. package/dist/sessionlog/commands/rewind.js.map +1 -0
  213. package/dist/{entire → sessionlog}/commands/status.d.ts +6 -3
  214. package/dist/sessionlog/commands/status.d.ts.map +1 -0
  215. package/dist/{entire → sessionlog}/commands/status.js +4 -3
  216. package/dist/sessionlog/commands/status.js.map +1 -0
  217. package/dist/{entire → sessionlog}/config.d.ts +6 -6
  218. package/dist/sessionlog/config.d.ts.map +1 -0
  219. package/dist/{entire → sessionlog}/config.js +4 -4
  220. package/dist/sessionlog/config.js.map +1 -0
  221. package/dist/{entire → sessionlog}/git-operations.d.ts +5 -2
  222. package/dist/sessionlog/git-operations.d.ts.map +1 -0
  223. package/dist/{entire → sessionlog}/git-operations.js +9 -5
  224. package/dist/sessionlog/git-operations.js.map +1 -0
  225. package/dist/sessionlog/hooks/git-hooks.d.ts.map +1 -0
  226. package/dist/sessionlog/hooks/git-hooks.js.map +1 -0
  227. package/dist/sessionlog/hooks/lifecycle.d.ts.map +1 -0
  228. package/dist/sessionlog/hooks/lifecycle.js.map +1 -0
  229. package/dist/{entire → sessionlog}/index.d.ts +5 -5
  230. package/dist/sessionlog/index.d.ts.map +1 -0
  231. package/dist/{entire → sessionlog}/index.js +4 -2
  232. package/dist/sessionlog/index.js.map +1 -0
  233. package/dist/sessionlog/security/redaction.d.ts.map +1 -0
  234. package/dist/sessionlog/security/redaction.js.map +1 -0
  235. package/dist/sessionlog/session/state-machine.d.ts.map +1 -0
  236. package/dist/sessionlog/session/state-machine.js.map +1 -0
  237. package/dist/{entire → sessionlog}/store/checkpoint-store.d.ts +1 -1
  238. package/dist/sessionlog/store/checkpoint-store.d.ts.map +1 -0
  239. package/dist/{entire → sessionlog}/store/checkpoint-store.js +27 -25
  240. package/dist/sessionlog/store/checkpoint-store.js.map +1 -0
  241. package/dist/sessionlog/store/native-store.d.ts +21 -0
  242. package/dist/sessionlog/store/native-store.d.ts.map +1 -0
  243. package/dist/{entire → sessionlog}/store/native-store.js +10 -7
  244. package/dist/sessionlog/store/native-store.js.map +1 -0
  245. package/dist/{entire → sessionlog}/store/provider-types.d.ts +10 -10
  246. package/dist/sessionlog/store/provider-types.d.ts.map +1 -0
  247. package/dist/sessionlog/store/provider-types.js.map +1 -0
  248. package/dist/{entire → sessionlog}/store/session-store.d.ts +1 -1
  249. package/dist/sessionlog/store/session-store.d.ts.map +1 -0
  250. package/dist/{entire → sessionlog}/store/session-store.js +2 -2
  251. package/dist/sessionlog/store/session-store.js.map +1 -0
  252. package/dist/sessionlog/strategy/attribution.d.ts.map +1 -0
  253. package/dist/sessionlog/strategy/attribution.js.map +1 -0
  254. package/dist/{entire → sessionlog}/strategy/common.d.ts +8 -5
  255. package/dist/sessionlog/strategy/common.d.ts.map +1 -0
  256. package/dist/{entire → sessionlog}/strategy/common.js +16 -10
  257. package/dist/sessionlog/strategy/common.js.map +1 -0
  258. package/dist/sessionlog/strategy/content-overlap.d.ts.map +1 -0
  259. package/dist/sessionlog/strategy/content-overlap.js.map +1 -0
  260. package/dist/{entire → sessionlog}/strategy/manual-commit.d.ts +6 -2
  261. package/dist/sessionlog/strategy/manual-commit.d.ts.map +1 -0
  262. package/dist/{entire → sessionlog}/strategy/manual-commit.js +9 -7
  263. package/dist/sessionlog/strategy/manual-commit.js.map +1 -0
  264. package/dist/sessionlog/strategy/types.d.ts.map +1 -0
  265. package/dist/sessionlog/strategy/types.js.map +1 -0
  266. package/dist/sessionlog/summarize/claude-generator.d.ts.map +1 -0
  267. package/dist/sessionlog/summarize/claude-generator.js.map +1 -0
  268. package/dist/sessionlog/summarize/summarize.d.ts.map +1 -0
  269. package/dist/sessionlog/summarize/summarize.js.map +1 -0
  270. package/dist/{entire → sessionlog}/types.d.ts +20 -10
  271. package/dist/sessionlog/types.d.ts.map +1 -0
  272. package/dist/{entire → sessionlog}/types.js +18 -8
  273. package/dist/sessionlog/types.js.map +1 -0
  274. package/dist/sessionlog/utils/chunk-files.d.ts.map +1 -0
  275. package/dist/sessionlog/utils/chunk-files.js.map +1 -0
  276. package/dist/sessionlog/utils/commit-message.d.ts.map +1 -0
  277. package/dist/sessionlog/utils/commit-message.js.map +1 -0
  278. package/dist/sessionlog/utils/detect-agent.d.ts.map +1 -0
  279. package/dist/sessionlog/utils/detect-agent.js.map +1 -0
  280. package/dist/sessionlog/utils/hook-managers.d.ts.map +1 -0
  281. package/dist/sessionlog/utils/hook-managers.js.map +1 -0
  282. package/dist/sessionlog/utils/ide-tags.d.ts.map +1 -0
  283. package/dist/sessionlog/utils/ide-tags.js.map +1 -0
  284. package/dist/{entire → sessionlog}/utils/paths.d.ts +3 -3
  285. package/dist/sessionlog/utils/paths.d.ts.map +1 -0
  286. package/dist/{entire → sessionlog}/utils/paths.js +5 -5
  287. package/dist/sessionlog/utils/paths.js.map +1 -0
  288. package/dist/sessionlog/utils/preview-rewind.d.ts.map +1 -0
  289. package/dist/sessionlog/utils/preview-rewind.js.map +1 -0
  290. package/dist/sessionlog/utils/rewind-conflict.d.ts.map +1 -0
  291. package/dist/sessionlog/utils/rewind-conflict.js.map +1 -0
  292. package/dist/{entire → sessionlog}/utils/shadow-branch.d.ts +15 -6
  293. package/dist/sessionlog/utils/shadow-branch.d.ts.map +1 -0
  294. package/dist/{entire → sessionlog}/utils/shadow-branch.js +20 -16
  295. package/dist/sessionlog/utils/shadow-branch.js.map +1 -0
  296. package/dist/sessionlog/utils/string-utils.d.ts.map +1 -0
  297. package/dist/sessionlog/utils/string-utils.js.map +1 -0
  298. package/dist/sessionlog/utils/todo-extract.d.ts.map +1 -0
  299. package/dist/sessionlog/utils/todo-extract.js.map +1 -0
  300. package/dist/{entire → sessionlog}/utils/trailers.d.ts +9 -9
  301. package/dist/sessionlog/utils/trailers.d.ts.map +1 -0
  302. package/dist/{entire → sessionlog}/utils/trailers.js +9 -9
  303. package/dist/sessionlog/utils/trailers.js.map +1 -0
  304. package/dist/sessionlog/utils/transcript-parse.d.ts.map +1 -0
  305. package/dist/sessionlog/utils/transcript-parse.js.map +1 -0
  306. package/dist/sessionlog/utils/transcript-timestamp.d.ts.map +1 -0
  307. package/dist/sessionlog/utils/transcript-timestamp.js.map +1 -0
  308. package/dist/sessionlog/utils/tree-ops.d.ts.map +1 -0
  309. package/dist/sessionlog/utils/tree-ops.js.map +1 -0
  310. package/dist/{entire → sessionlog}/utils/tty.d.ts +1 -1
  311. package/dist/sessionlog/utils/tty.d.ts.map +1 -0
  312. package/dist/{entire → sessionlog}/utils/tty.js +2 -2
  313. package/dist/sessionlog/utils/tty.js.map +1 -0
  314. package/dist/sessionlog/utils/validation.d.ts.map +1 -0
  315. package/dist/sessionlog/utils/validation.js.map +1 -0
  316. package/dist/sessionlog/utils/worktree.d.ts.map +1 -0
  317. package/dist/sessionlog/utils/worktree.js.map +1 -0
  318. package/dist/storage/sqlite-schema.d.ts.map +1 -1
  319. package/dist/storage/sqlite-schema.js +2 -0
  320. package/dist/storage/sqlite-schema.js.map +1 -1
  321. package/dist/storage/sqlite.d.ts.map +1 -1
  322. package/dist/storage/sqlite.js +18 -4
  323. package/dist/storage/sqlite.js.map +1 -1
  324. package/dist/tools/index.d.ts +1 -1
  325. package/dist/tools/index.d.ts.map +1 -1
  326. package/dist/tools/index.js.map +1 -1
  327. package/dist/tools/query.d.ts +2 -1
  328. package/dist/tools/query.d.ts.map +1 -1
  329. package/dist/tools/query.js +217 -7
  330. package/dist/tools/query.js.map +1 -1
  331. package/dist/tools/types.d.ts +57 -0
  332. package/dist/tools/types.d.ts.map +1 -1
  333. package/dist/tools/types.js.map +1 -1
  334. package/dist/tracking/claude-task-reconstructor.d.ts +41 -0
  335. package/dist/tracking/claude-task-reconstructor.d.ts.map +1 -0
  336. package/dist/tracking/claude-task-reconstructor.js +91 -0
  337. package/dist/tracking/claude-task-reconstructor.js.map +1 -0
  338. package/dist/tracking/plan-mode-tracker.d.ts +20 -0
  339. package/dist/tracking/plan-mode-tracker.d.ts.map +1 -0
  340. package/dist/tracking/plan-mode-tracker.js +35 -0
  341. package/dist/tracking/plan-mode-tracker.js.map +1 -0
  342. package/dist/tracking/transcript-extractor.d.ts +3 -3
  343. package/dist/tracking/transcript-extractor.d.ts.map +1 -1
  344. package/dist/tracking/transcript-extractor.js +1 -1
  345. package/dist/tracking/transcript-extractor.js.map +1 -1
  346. package/package.json +3 -1
  347. package/dist/entire/agent/agents/claude-code.d.ts.map +0 -1
  348. package/dist/entire/agent/agents/claude-code.js.map +0 -1
  349. package/dist/entire/agent/agents/cursor.d.ts.map +0 -1
  350. package/dist/entire/agent/agents/cursor.js.map +0 -1
  351. package/dist/entire/agent/agents/gemini-cli.d.ts.map +0 -1
  352. package/dist/entire/agent/agents/gemini-cli.js.map +0 -1
  353. package/dist/entire/agent/agents/opencode.d.ts.map +0 -1
  354. package/dist/entire/agent/agents/opencode.js.map +0 -1
  355. package/dist/entire/agent/registry.d.ts.map +0 -1
  356. package/dist/entire/agent/registry.js.map +0 -1
  357. package/dist/entire/agent/session-types.d.ts.map +0 -1
  358. package/dist/entire/agent/session-types.js.map +0 -1
  359. package/dist/entire/agent/types.d.ts.map +0 -1
  360. package/dist/entire/agent/types.js.map +0 -1
  361. package/dist/entire/commands/clean.d.ts.map +0 -1
  362. package/dist/entire/commands/clean.js.map +0 -1
  363. package/dist/entire/commands/disable.d.ts.map +0 -1
  364. package/dist/entire/commands/disable.js.map +0 -1
  365. package/dist/entire/commands/doctor.d.ts.map +0 -1
  366. package/dist/entire/commands/doctor.js.map +0 -1
  367. package/dist/entire/commands/enable.d.ts.map +0 -1
  368. package/dist/entire/commands/enable.js.map +0 -1
  369. package/dist/entire/commands/explain.d.ts.map +0 -1
  370. package/dist/entire/commands/explain.js.map +0 -1
  371. package/dist/entire/commands/reset.d.ts.map +0 -1
  372. package/dist/entire/commands/reset.js.map +0 -1
  373. package/dist/entire/commands/resume.d.ts.map +0 -1
  374. package/dist/entire/commands/resume.js.map +0 -1
  375. package/dist/entire/commands/rewind.d.ts.map +0 -1
  376. package/dist/entire/commands/rewind.js.map +0 -1
  377. package/dist/entire/commands/status.d.ts.map +0 -1
  378. package/dist/entire/commands/status.js.map +0 -1
  379. package/dist/entire/config.d.ts.map +0 -1
  380. package/dist/entire/config.js.map +0 -1
  381. package/dist/entire/git-operations.d.ts.map +0 -1
  382. package/dist/entire/git-operations.js.map +0 -1
  383. package/dist/entire/hooks/git-hooks.d.ts.map +0 -1
  384. package/dist/entire/hooks/git-hooks.js.map +0 -1
  385. package/dist/entire/hooks/lifecycle.d.ts.map +0 -1
  386. package/dist/entire/hooks/lifecycle.js.map +0 -1
  387. package/dist/entire/index.d.ts.map +0 -1
  388. package/dist/entire/index.js.map +0 -1
  389. package/dist/entire/security/redaction.d.ts.map +0 -1
  390. package/dist/entire/security/redaction.js.map +0 -1
  391. package/dist/entire/session/state-machine.d.ts.map +0 -1
  392. package/dist/entire/session/state-machine.js.map +0 -1
  393. package/dist/entire/store/checkpoint-store.d.ts.map +0 -1
  394. package/dist/entire/store/checkpoint-store.js.map +0 -1
  395. package/dist/entire/store/native-store.d.ts +0 -14
  396. package/dist/entire/store/native-store.d.ts.map +0 -1
  397. package/dist/entire/store/native-store.js.map +0 -1
  398. package/dist/entire/store/provider-types.d.ts.map +0 -1
  399. package/dist/entire/store/provider-types.js.map +0 -1
  400. package/dist/entire/store/session-store.d.ts.map +0 -1
  401. package/dist/entire/store/session-store.js.map +0 -1
  402. package/dist/entire/strategy/attribution.d.ts.map +0 -1
  403. package/dist/entire/strategy/attribution.js.map +0 -1
  404. package/dist/entire/strategy/common.d.ts.map +0 -1
  405. package/dist/entire/strategy/common.js.map +0 -1
  406. package/dist/entire/strategy/content-overlap.d.ts.map +0 -1
  407. package/dist/entire/strategy/content-overlap.js.map +0 -1
  408. package/dist/entire/strategy/manual-commit.d.ts.map +0 -1
  409. package/dist/entire/strategy/manual-commit.js.map +0 -1
  410. package/dist/entire/strategy/types.d.ts.map +0 -1
  411. package/dist/entire/strategy/types.js.map +0 -1
  412. package/dist/entire/summarize/claude-generator.d.ts.map +0 -1
  413. package/dist/entire/summarize/claude-generator.js.map +0 -1
  414. package/dist/entire/summarize/summarize.d.ts.map +0 -1
  415. package/dist/entire/summarize/summarize.js.map +0 -1
  416. package/dist/entire/types.d.ts.map +0 -1
  417. package/dist/entire/types.js.map +0 -1
  418. package/dist/entire/utils/chunk-files.d.ts.map +0 -1
  419. package/dist/entire/utils/chunk-files.js.map +0 -1
  420. package/dist/entire/utils/commit-message.d.ts.map +0 -1
  421. package/dist/entire/utils/commit-message.js.map +0 -1
  422. package/dist/entire/utils/detect-agent.d.ts.map +0 -1
  423. package/dist/entire/utils/detect-agent.js.map +0 -1
  424. package/dist/entire/utils/hook-managers.d.ts.map +0 -1
  425. package/dist/entire/utils/hook-managers.js.map +0 -1
  426. package/dist/entire/utils/ide-tags.d.ts.map +0 -1
  427. package/dist/entire/utils/ide-tags.js.map +0 -1
  428. package/dist/entire/utils/paths.d.ts.map +0 -1
  429. package/dist/entire/utils/paths.js.map +0 -1
  430. package/dist/entire/utils/preview-rewind.d.ts.map +0 -1
  431. package/dist/entire/utils/preview-rewind.js.map +0 -1
  432. package/dist/entire/utils/rewind-conflict.d.ts.map +0 -1
  433. package/dist/entire/utils/rewind-conflict.js.map +0 -1
  434. package/dist/entire/utils/shadow-branch.d.ts.map +0 -1
  435. package/dist/entire/utils/shadow-branch.js.map +0 -1
  436. package/dist/entire/utils/string-utils.d.ts.map +0 -1
  437. package/dist/entire/utils/string-utils.js.map +0 -1
  438. package/dist/entire/utils/todo-extract.d.ts.map +0 -1
  439. package/dist/entire/utils/todo-extract.js.map +0 -1
  440. package/dist/entire/utils/trailers.d.ts.map +0 -1
  441. package/dist/entire/utils/trailers.js.map +0 -1
  442. package/dist/entire/utils/transcript-parse.d.ts.map +0 -1
  443. package/dist/entire/utils/transcript-parse.js.map +0 -1
  444. package/dist/entire/utils/transcript-timestamp.d.ts.map +0 -1
  445. package/dist/entire/utils/transcript-timestamp.js.map +0 -1
  446. package/dist/entire/utils/tree-ops.d.ts.map +0 -1
  447. package/dist/entire/utils/tree-ops.js.map +0 -1
  448. package/dist/entire/utils/tty.d.ts.map +0 -1
  449. package/dist/entire/utils/tty.js.map +0 -1
  450. package/dist/entire/utils/validation.d.ts.map +0 -1
  451. package/dist/entire/utils/validation.js.map +0 -1
  452. package/dist/entire/utils/worktree.d.ts.map +0 -1
  453. package/dist/entire/utils/worktree.js.map +0 -1
  454. /package/dist/{entire → sessionlog}/agent/agents/claude-code.d.ts +0 -0
  455. /package/dist/{entire → sessionlog}/agent/agents/claude-code.js +0 -0
  456. /package/dist/{entire → sessionlog}/agent/agents/cursor.d.ts +0 -0
  457. /package/dist/{entire → sessionlog}/agent/agents/cursor.js +0 -0
  458. /package/dist/{entire → sessionlog}/agent/agents/gemini-cli.d.ts +0 -0
  459. /package/dist/{entire → sessionlog}/agent/agents/gemini-cli.js +0 -0
  460. /package/dist/{entire → sessionlog}/agent/agents/opencode.d.ts +0 -0
  461. /package/dist/{entire → sessionlog}/agent/agents/opencode.js +0 -0
  462. /package/dist/{entire → sessionlog}/agent/registry.d.ts +0 -0
  463. /package/dist/{entire → sessionlog}/agent/registry.js +0 -0
  464. /package/dist/{entire → sessionlog}/agent/session-types.d.ts +0 -0
  465. /package/dist/{entire → sessionlog}/agent/session-types.js +0 -0
  466. /package/dist/{entire → sessionlog}/agent/types.d.ts +0 -0
  467. /package/dist/{entire → sessionlog}/agent/types.js +0 -0
  468. /package/dist/{entire → sessionlog}/commands/disable.d.ts +0 -0
  469. /package/dist/{entire → sessionlog}/commands/disable.js +0 -0
  470. /package/dist/{entire → sessionlog}/commands/doctor.d.ts +0 -0
  471. /package/dist/{entire → sessionlog}/commands/doctor.js +0 -0
  472. /package/dist/{entire → sessionlog}/commands/reset.d.ts +0 -0
  473. /package/dist/{entire → sessionlog}/commands/reset.js +0 -0
  474. /package/dist/{entire → sessionlog}/commands/resume.d.ts +0 -0
  475. /package/dist/{entire → sessionlog}/commands/resume.js +0 -0
  476. /package/dist/{entire → sessionlog}/hooks/git-hooks.d.ts +0 -0
  477. /package/dist/{entire → sessionlog}/hooks/git-hooks.js +0 -0
  478. /package/dist/{entire → sessionlog}/hooks/lifecycle.d.ts +0 -0
  479. /package/dist/{entire → sessionlog}/hooks/lifecycle.js +0 -0
  480. /package/dist/{entire → sessionlog}/security/redaction.d.ts +0 -0
  481. /package/dist/{entire → sessionlog}/security/redaction.js +0 -0
  482. /package/dist/{entire → sessionlog}/session/state-machine.d.ts +0 -0
  483. /package/dist/{entire → sessionlog}/session/state-machine.js +0 -0
  484. /package/dist/{entire → sessionlog}/store/provider-types.js +0 -0
  485. /package/dist/{entire → sessionlog}/strategy/attribution.d.ts +0 -0
  486. /package/dist/{entire → sessionlog}/strategy/attribution.js +0 -0
  487. /package/dist/{entire → sessionlog}/strategy/content-overlap.d.ts +0 -0
  488. /package/dist/{entire → sessionlog}/strategy/content-overlap.js +0 -0
  489. /package/dist/{entire → sessionlog}/strategy/types.d.ts +0 -0
  490. /package/dist/{entire → sessionlog}/strategy/types.js +0 -0
  491. /package/dist/{entire → sessionlog}/summarize/claude-generator.d.ts +0 -0
  492. /package/dist/{entire → sessionlog}/summarize/claude-generator.js +0 -0
  493. /package/dist/{entire → sessionlog}/summarize/summarize.d.ts +0 -0
  494. /package/dist/{entire → sessionlog}/summarize/summarize.js +0 -0
  495. /package/dist/{entire → sessionlog}/utils/chunk-files.d.ts +0 -0
  496. /package/dist/{entire → sessionlog}/utils/chunk-files.js +0 -0
  497. /package/dist/{entire → sessionlog}/utils/commit-message.d.ts +0 -0
  498. /package/dist/{entire → sessionlog}/utils/commit-message.js +0 -0
  499. /package/dist/{entire → sessionlog}/utils/detect-agent.d.ts +0 -0
  500. /package/dist/{entire → sessionlog}/utils/detect-agent.js +0 -0
  501. /package/dist/{entire → sessionlog}/utils/hook-managers.d.ts +0 -0
  502. /package/dist/{entire → sessionlog}/utils/hook-managers.js +0 -0
  503. /package/dist/{entire → sessionlog}/utils/ide-tags.d.ts +0 -0
  504. /package/dist/{entire → sessionlog}/utils/ide-tags.js +0 -0
  505. /package/dist/{entire → sessionlog}/utils/preview-rewind.d.ts +0 -0
  506. /package/dist/{entire → sessionlog}/utils/preview-rewind.js +0 -0
  507. /package/dist/{entire → sessionlog}/utils/rewind-conflict.d.ts +0 -0
  508. /package/dist/{entire → sessionlog}/utils/rewind-conflict.js +0 -0
  509. /package/dist/{entire → sessionlog}/utils/string-utils.d.ts +0 -0
  510. /package/dist/{entire → sessionlog}/utils/string-utils.js +0 -0
  511. /package/dist/{entire → sessionlog}/utils/todo-extract.d.ts +0 -0
  512. /package/dist/{entire → sessionlog}/utils/todo-extract.js +0 -0
  513. /package/dist/{entire → sessionlog}/utils/transcript-parse.d.ts +0 -0
  514. /package/dist/{entire → sessionlog}/utils/transcript-parse.js +0 -0
  515. /package/dist/{entire → sessionlog}/utils/transcript-timestamp.d.ts +0 -0
  516. /package/dist/{entire → sessionlog}/utils/transcript-timestamp.js +0 -0
  517. /package/dist/{entire → sessionlog}/utils/tree-ops.d.ts +0 -0
  518. /package/dist/{entire → sessionlog}/utils/tree-ops.js +0 -0
  519. /package/dist/{entire → sessionlog}/utils/validation.d.ts +0 -0
  520. /package/dist/{entire → sessionlog}/utils/validation.js +0 -0
  521. /package/dist/{entire → sessionlog}/utils/worktree.d.ts +0 -0
  522. /package/dist/{entire → sessionlog}/utils/worktree.js +0 -0
@@ -0,0 +1,478 @@
1
+ /**
2
+ * Sessionlog Provider
3
+ *
4
+ * Read-only provider that resolves sessionlog:// URIs to sessionlog session
5
+ * and checkpoint data. Uses the sessionlog package for direct
6
+ * filesystem/git access — no external binary required.
7
+ *
8
+ * URI formats:
9
+ * sessionlog://session/<session-id>
10
+ * sessionlog://checkpoint/<checkpoint-id>
11
+ */
12
+ import { ProviderError } from './types.js';
13
+ import { createNativeSessionlogStore } from 'sessionlog';
14
+ // ============================================================================
15
+ // Constants
16
+ // ============================================================================
17
+ /**
18
+ * Pattern for sessionlog:// URIs
19
+ * Format: sessionlog://(session|checkpoint)/<id>
20
+ */
21
+ const SESSIONLOG_URI_PATTERN = /^sessionlog:\/\/(session|checkpoint)\/(.+)$/i;
22
+ // ============================================================================
23
+ // CLI Exec Store (shells out to Go binary)
24
+ // ============================================================================
25
+ /**
26
+ * Create a sessionlog store that shells out to the Go CLI binary.
27
+ * Used when the user explicitly configures an executable path.
28
+ *
29
+ * TODO: Add E2E tests for this store (requires `entire` binary or stub tests).
30
+ * See entire-sessionlog-e2e.test.ts for context.
31
+ */
32
+ export function createSessionlogExecStore(config) {
33
+ const { executable, timeout = 30000, cwd = process.cwd() } = config;
34
+ async function execEntire(args) {
35
+ const { exec } = await import('child_process');
36
+ const { promisify } = await import('util');
37
+ const execAsync = promisify(exec);
38
+ try {
39
+ const result = await execAsync(`${executable} ${args}`, {
40
+ cwd,
41
+ timeout,
42
+ env: { ...process.env, NO_COLOR: '1' },
43
+ });
44
+ return result.stdout.trim();
45
+ }
46
+ catch (error) {
47
+ if (error instanceof Error && 'code' in error) {
48
+ throw new ProviderError('OPERATION_FAILED', `Sessionlog CLI failed: ${error.message}`, 'sessionlog', error);
49
+ }
50
+ throw error;
51
+ }
52
+ }
53
+ function parseSessionJson(json) {
54
+ try {
55
+ const data = JSON.parse(json);
56
+ const sessions = Array.isArray(data) ? data : [data];
57
+ return sessions.map((s) => ({
58
+ id: String(s.id ?? s.sessionId ?? ''),
59
+ agent: String(s.agent ?? s.agentType ?? 'unknown'),
60
+ phase: String(s.phase ?? s.state ?? 'ACTIVE').toUpperCase(),
61
+ baseCommit: s.baseCommit,
62
+ branch: s.branch,
63
+ startedAt: s.startedAt,
64
+ endedAt: s.endedAt,
65
+ checkpoints: s.checkpoints,
66
+ tokenUsage: s.tokenUsage,
67
+ filesTouched: s.filesTouched,
68
+ summary: s.summary,
69
+ }));
70
+ }
71
+ catch {
72
+ return [];
73
+ }
74
+ }
75
+ function parseCheckpointJson(json) {
76
+ try {
77
+ const data = JSON.parse(json);
78
+ const checkpoints = Array.isArray(data) ? data : [data];
79
+ return checkpoints.map((c) => ({
80
+ id: String(c.id ?? c.checkpointId ?? ''),
81
+ sessionId: c.sessionId,
82
+ commitHash: c.commitHash,
83
+ commitMessage: c.commitMessage,
84
+ promptCount: c.promptCount,
85
+ filesModified: c.filesModified,
86
+ filesNew: c.filesNew,
87
+ filesDeleted: c.filesDeleted,
88
+ tokenUsage: c.tokenUsage,
89
+ context: c.context,
90
+ }));
91
+ }
92
+ catch {
93
+ return [];
94
+ }
95
+ }
96
+ return {
97
+ async getSession(id) {
98
+ try {
99
+ const output = await execEntire(`status --json`);
100
+ const sessions = parseSessionJson(output);
101
+ return sessions.find((s) => s.id === id) ?? null;
102
+ }
103
+ catch {
104
+ return null;
105
+ }
106
+ },
107
+ async listSessions() {
108
+ try {
109
+ const output = await execEntire(`status --json`);
110
+ return parseSessionJson(output);
111
+ }
112
+ catch {
113
+ return [];
114
+ }
115
+ },
116
+ async getCheckpoint(id) {
117
+ try {
118
+ const output = await execEntire(`rewind --list`);
119
+ const checkpoints = parseCheckpointJson(output);
120
+ return checkpoints.find((c) => c.id === id) ?? null;
121
+ }
122
+ catch {
123
+ return null;
124
+ }
125
+ },
126
+ async listCheckpoints() {
127
+ try {
128
+ const output = await execEntire(`rewind --list`);
129
+ return parseCheckpointJson(output);
130
+ }
131
+ catch {
132
+ return [];
133
+ }
134
+ },
135
+ async search(query) {
136
+ const results = [];
137
+ const lowerQuery = query.toLowerCase();
138
+ try {
139
+ const sessions = await this.listSessions();
140
+ for (const session of sessions) {
141
+ if (session.summary?.toLowerCase().includes(lowerQuery) ||
142
+ session.id.toLowerCase().includes(lowerQuery) ||
143
+ session.filesTouched?.some((f) => f.toLowerCase().includes(lowerQuery))) {
144
+ results.push(session);
145
+ }
146
+ }
147
+ }
148
+ catch {
149
+ // Continue with checkpoints
150
+ }
151
+ try {
152
+ const checkpoints = await this.listCheckpoints();
153
+ for (const cp of checkpoints) {
154
+ if (cp.commitMessage?.toLowerCase().includes(lowerQuery) ||
155
+ cp.id.toLowerCase().includes(lowerQuery) ||
156
+ cp.context?.toLowerCase().includes(lowerQuery) ||
157
+ cp.filesModified?.some((f) => f.toLowerCase().includes(lowerQuery)) ||
158
+ cp.filesNew?.some((f) => f.toLowerCase().includes(lowerQuery))) {
159
+ results.push(cp);
160
+ }
161
+ }
162
+ }
163
+ catch {
164
+ // Return what we have
165
+ }
166
+ return results;
167
+ },
168
+ };
169
+ }
170
+ // ============================================================================
171
+ // Store Factory (with CLI → native fallback)
172
+ // ============================================================================
173
+ /**
174
+ * Check if a CLI executable is available on the system.
175
+ */
176
+ async function isExecutableAvailable(executable) {
177
+ const { exec } = await import('child_process');
178
+ const { promisify } = await import('util');
179
+ const execAsync = promisify(exec);
180
+ try {
181
+ await execAsync(`${executable} --version`, { timeout: 5000 });
182
+ return true;
183
+ }
184
+ catch {
185
+ return false;
186
+ }
187
+ }
188
+ /**
189
+ * Create a sessionlog store with optional CLI fallback.
190
+ *
191
+ * - If `config.executable` is set and the binary is found, uses the Go CLI.
192
+ * - Otherwise, uses the built-in TS store (sessionlog package).
193
+ */
194
+ export async function createSessionlogCliStoreAsync(config = {}) {
195
+ const cwd = config.cwd ?? process.cwd();
196
+ if (config.executable) {
197
+ const available = await isExecutableAvailable(config.executable);
198
+ if (available) {
199
+ return createSessionlogExecStore({
200
+ executable: config.executable,
201
+ timeout: config.timeout,
202
+ cwd,
203
+ });
204
+ }
205
+ }
206
+ return createNativeSessionlogStore(cwd);
207
+ }
208
+ /**
209
+ * Create a sessionlog store (sync — always uses built-in TS store).
210
+ * For the CLI-preferred path, use createSessionlogCliStoreAsync instead.
211
+ */
212
+ export function createSessionlogCliStore(config = {}) {
213
+ const cwd = config.cwd ?? process.cwd();
214
+ return createNativeSessionlogStore(cwd);
215
+ }
216
+ /**
217
+ * Create a native sessionlog store that reads directly from the filesystem
218
+ * and git branches, without requiring the sessionlog CLI binary.
219
+ *
220
+ * This is the recommended store for production use.
221
+ */
222
+ export async function createSessionlogNativeStore(config = {}) {
223
+ const { createNativeSessionlogStore } = await import('../sessionlog/store/native-store.js');
224
+ return createNativeSessionlogStore(config.cwd, {
225
+ sessionDirName: config.sessionDirName,
226
+ checkpointsBranch: config.checkpointsBranch,
227
+ shadowBranchPrefix: config.shadowBranchPrefix,
228
+ });
229
+ }
230
+ /**
231
+ * Create an in-memory sessionlog store for testing
232
+ */
233
+ export function createInMemorySessionlogStore() {
234
+ const sessions = new Map();
235
+ const checkpoints = new Map();
236
+ return {
237
+ addSession(session) {
238
+ sessions.set(session.id, session);
239
+ },
240
+ addCheckpoint(checkpoint) {
241
+ checkpoints.set(checkpoint.id, checkpoint);
242
+ },
243
+ async getSession(id) {
244
+ return sessions.get(id) ?? null;
245
+ },
246
+ async listSessions() {
247
+ return Array.from(sessions.values());
248
+ },
249
+ async getCheckpoint(id) {
250
+ return checkpoints.get(id) ?? null;
251
+ },
252
+ async listCheckpoints() {
253
+ return Array.from(checkpoints.values());
254
+ },
255
+ async search(query) {
256
+ const results = [];
257
+ const lowerQuery = query.toLowerCase();
258
+ for (const session of sessions.values()) {
259
+ if (session.summary?.toLowerCase().includes(lowerQuery) ||
260
+ session.id.toLowerCase().includes(lowerQuery) ||
261
+ session.filesTouched?.some((f) => f.toLowerCase().includes(lowerQuery))) {
262
+ results.push(session);
263
+ }
264
+ }
265
+ for (const cp of checkpoints.values()) {
266
+ if (cp.commitMessage?.toLowerCase().includes(lowerQuery) ||
267
+ cp.id.toLowerCase().includes(lowerQuery) ||
268
+ cp.context?.toLowerCase().includes(lowerQuery) ||
269
+ cp.filesModified?.some((f) => f.toLowerCase().includes(lowerQuery)) ||
270
+ cp.filesNew?.some((f) => f.toLowerCase().includes(lowerQuery))) {
271
+ results.push(cp);
272
+ }
273
+ }
274
+ return results;
275
+ },
276
+ };
277
+ }
278
+ // ============================================================================
279
+ // Node Conversion
280
+ // ============================================================================
281
+ /**
282
+ * Convert a sessionlog session to a ProviderNode
283
+ */
284
+ function sessionToProviderNode(session) {
285
+ return {
286
+ id: session.id,
287
+ uri: `sessionlog://session/${session.id}`,
288
+ type: 'external',
289
+ title: `Session: ${session.summary || session.id}`,
290
+ content: session.summary,
291
+ status: session.phase === 'ENDED' ? 'closed' : 'open',
292
+ rawData: {
293
+ entityType: 'session',
294
+ agent: session.agent,
295
+ baseCommit: session.baseCommit,
296
+ branch: session.branch,
297
+ phase: session.phase,
298
+ tokenUsage: session.tokenUsage,
299
+ filesTouched: session.filesTouched,
300
+ checkpoints: session.checkpoints,
301
+ startedAt: session.startedAt,
302
+ endedAt: session.endedAt,
303
+ skillsUsed: session.skillsUsed,
304
+ },
305
+ fetchedAt: new Date().toISOString(),
306
+ };
307
+ }
308
+ /**
309
+ * Convert a sessionlog checkpoint to a ProviderNode
310
+ */
311
+ function checkpointToProviderNode(checkpoint) {
312
+ return {
313
+ id: checkpoint.id,
314
+ uri: `sessionlog://checkpoint/${checkpoint.id}`,
315
+ type: 'external',
316
+ title: `Checkpoint: ${checkpoint.commitMessage || checkpoint.id}`,
317
+ content: checkpoint.context,
318
+ status: 'closed', // Checkpoints are immutable
319
+ rawData: {
320
+ entityType: 'checkpoint',
321
+ sessionId: checkpoint.sessionId,
322
+ commitHash: checkpoint.commitHash,
323
+ commitMessage: checkpoint.commitMessage,
324
+ promptCount: checkpoint.promptCount,
325
+ filesModified: checkpoint.filesModified,
326
+ filesNew: checkpoint.filesNew,
327
+ filesDeleted: checkpoint.filesDeleted,
328
+ tokenUsage: checkpoint.tokenUsage,
329
+ },
330
+ fetchedAt: new Date().toISOString(),
331
+ };
332
+ }
333
+ /**
334
+ * Check if an item is a session (has 'phase' field)
335
+ */
336
+ function isSession(item) {
337
+ return 'phase' in item;
338
+ }
339
+ // ============================================================================
340
+ // Sessionlog Provider Implementation
341
+ // ============================================================================
342
+ /**
343
+ * Create a sessionlog provider.
344
+ *
345
+ * When a pre-built store is provided, it is used directly.
346
+ * Otherwise, falls back to the sync native store (createSessionlogCliStore).
347
+ * For CLI-preferred creation, build the store via createSessionlogCliStoreAsync
348
+ * and pass it as the `store` parameter.
349
+ */
350
+ export function createSessionlogProvider(config = {}, store) {
351
+ const sessionlogStore = store ?? createSessionlogCliStore(config);
352
+ const capabilities = {
353
+ read: true,
354
+ write: false,
355
+ search: true,
356
+ watch: false,
357
+ mount: false,
358
+ feedback: false,
359
+ };
360
+ return {
361
+ name: 'sessionlog',
362
+ schemes: ['sessionlog'],
363
+ capabilities,
364
+ // =========================================================================
365
+ // URI Operations
366
+ // =========================================================================
367
+ parseUri(uri) {
368
+ const match = uri.match(SESSIONLOG_URI_PATTERN);
369
+ if (match) {
370
+ const entityType = match[1].toLowerCase(); // 'session' or 'checkpoint'
371
+ const id = match[2];
372
+ return {
373
+ scheme: 'sessionlog',
374
+ workspace: entityType,
375
+ id,
376
+ isRelative: false,
377
+ };
378
+ }
379
+ return null;
380
+ },
381
+ buildUri(id, options) {
382
+ const entityType = options?.workspace ?? 'session';
383
+ if (options?.relative) {
384
+ return id;
385
+ }
386
+ return `sessionlog://${entityType}/${id}`;
387
+ },
388
+ isValidUri(uri) {
389
+ return this.parseUri(uri) !== null;
390
+ },
391
+ // =========================================================================
392
+ // CRUD Operations
393
+ // =========================================================================
394
+ async get(id) {
395
+ const parsed = this.parseUri(id);
396
+ const entityType = parsed?.workspace ?? 'session';
397
+ const entityId = parsed?.id ?? id;
398
+ try {
399
+ if (entityType === 'checkpoint') {
400
+ const checkpoint = await sessionlogStore.getCheckpoint(entityId);
401
+ if (!checkpoint)
402
+ return null;
403
+ return checkpointToProviderNode(checkpoint);
404
+ }
405
+ else {
406
+ const session = await sessionlogStore.getSession(entityId);
407
+ if (!session)
408
+ return null;
409
+ return sessionToProviderNode(session);
410
+ }
411
+ }
412
+ catch (error) {
413
+ if (error instanceof ProviderError)
414
+ throw error;
415
+ throw new ProviderError('OPERATION_FAILED', `Failed to get sessionlog entity: ${error instanceof Error ? error.message : String(error)}`, 'sessionlog', error instanceof Error ? error : undefined);
416
+ }
417
+ },
418
+ async list(filter) {
419
+ try {
420
+ const results = [];
421
+ // List sessions
422
+ const sessions = await sessionlogStore.listSessions();
423
+ for (const session of sessions) {
424
+ const node = sessionToProviderNode(session);
425
+ if (filter?.status && node.status !== filter.status)
426
+ continue;
427
+ results.push(node);
428
+ }
429
+ // List checkpoints
430
+ const checkpoints = await sessionlogStore.listCheckpoints();
431
+ for (const cp of checkpoints) {
432
+ const node = checkpointToProviderNode(cp);
433
+ if (filter?.status && node.status !== filter.status)
434
+ continue;
435
+ results.push(node);
436
+ }
437
+ // Apply limit
438
+ if (filter?.limit) {
439
+ return results.slice(0, filter.limit);
440
+ }
441
+ return results;
442
+ }
443
+ catch (error) {
444
+ if (error instanceof ProviderError)
445
+ throw error;
446
+ throw new ProviderError('OPERATION_FAILED', `Failed to list sessionlog entities: ${error instanceof Error ? error.message : String(error)}`, 'sessionlog', error instanceof Error ? error : undefined);
447
+ }
448
+ },
449
+ async create(_input) {
450
+ throw new ProviderError('NOT_SUPPORTED', 'Sessionlog provider is read-only. Sessions and checkpoints are managed by the sessionlog CLI.', 'sessionlog');
451
+ },
452
+ async update(_id, _updates) {
453
+ throw new ProviderError('NOT_SUPPORTED', 'Sessionlog provider is read-only. Sessions and checkpoints are managed by the sessionlog CLI.', 'sessionlog');
454
+ },
455
+ async delete(_id) {
456
+ throw new ProviderError('NOT_SUPPORTED', 'Sessionlog provider is read-only. Sessions and checkpoints are managed by the sessionlog CLI.', 'sessionlog');
457
+ },
458
+ // =========================================================================
459
+ // Search
460
+ // =========================================================================
461
+ async search(query, options) {
462
+ try {
463
+ const results = await sessionlogStore.search(query);
464
+ let nodes = results.map((item) => isSession(item) ? sessionToProviderNode(item) : checkpointToProviderNode(item));
465
+ if (options?.limit) {
466
+ nodes = nodes.slice(0, options.limit);
467
+ }
468
+ return nodes;
469
+ }
470
+ catch (error) {
471
+ if (error instanceof ProviderError)
472
+ throw error;
473
+ throw new ProviderError('OPERATION_FAILED', `Failed to search sessionlog: ${error instanceof Error ? error.message : String(error)}`, 'sessionlog', error instanceof Error ? error : undefined);
474
+ }
475
+ },
476
+ };
477
+ }
478
+ //# sourceMappingURL=sessionlog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionlog.js","sourceRoot":"","sources":["../../src/providers/sessionlog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sudocode.d.ts","sourceRoot":"","sources":["../../src/providers/sudocode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EACV,QAAQ,EAUT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,4BAA4B,CAAC;AAQpC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAyPD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,cAAmB,GAC1B,QAAQ,GAAG,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,cAAc,CAm7BxE"}
1
+ {"version":3,"file":"sudocode.d.ts","sourceRoot":"","sources":["../../src/providers/sudocode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EACV,QAAQ,EAUT,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,4BAA4B,CAAC;AAQpC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAyPD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,GAAE,cAAmB,GAC1B,QAAQ,GAAG,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,cAAc,CAo8BxE"}
@@ -13,7 +13,7 @@ import { readFile } from 'fs/promises';
13
13
  import { join } from 'path';
14
14
  import { promisify } from 'util';
15
15
  import chokidar from 'chokidar';
16
- import { ProviderError as ProviderErrorClass } from './types.js';
16
+ import { ProviderError as ProviderErrorClass, createIsAvailable } from './types.js';
17
17
  import { filterEdgesByType, filterEdgesByDirection } from './traits/RelationshipQueryable.js';
18
18
  const execAsync = promisify(execCallback);
19
19
  // ============================================================================
@@ -537,10 +537,26 @@ export function createSudocodeProvider(config = {}) {
537
537
  throw error;
538
538
  }
539
539
  }
540
+ const isAvailable = createIsAvailable(async () => {
541
+ try {
542
+ await execAsync(`which ${executable}`, { timeout: 5000 });
543
+ return true;
544
+ }
545
+ catch {
546
+ return false;
547
+ }
548
+ });
540
549
  return {
541
550
  name: 'sudocode',
542
551
  schemes: ['sudocode', 'sc'],
543
552
  capabilities,
553
+ local: true,
554
+ description: 'Sudocode git-native agent orchestration. Manages specs and issues via CLI. Issues support task lifecycle; specs are context/requirement nodes. Only title, content, and priority are passed through on create. Status is supported on issue update.',
555
+ metadataSchema: {
556
+ fields: {},
557
+ description: 'Metadata is not passed through to Sudocode. Tags and assignee set via top-level fields are also not forwarded on create/update.',
558
+ },
559
+ isAvailable,
544
560
  // =========================================================================
545
561
  // URI Operations
546
562
  // =========================================================================