opentasks 0.0.1 → 0.0.2

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 (662) hide show
  1. package/README.md +344 -1
  2. package/dist/__tests__/cli-tools.test.d.ts +8 -0
  3. package/dist/__tests__/cli-tools.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli-tools.test.js +546 -0
  5. package/dist/__tests__/cli-tools.test.js.map +1 -0
  6. package/dist/__tests__/cli.test.d.ts +5 -0
  7. package/dist/__tests__/cli.test.d.ts.map +1 -0
  8. package/dist/__tests__/cli.test.js +77 -0
  9. package/dist/__tests__/cli.test.js.map +1 -0
  10. package/dist/__tests__/p1-p3-gaps.test.d.ts +2 -0
  11. package/dist/__tests__/p1-p3-gaps.test.d.ts.map +1 -0
  12. package/dist/__tests__/p1-p3-gaps.test.js +463 -0
  13. package/dist/__tests__/p1-p3-gaps.test.js.map +1 -0
  14. package/dist/cli.d.ts +19 -1
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +702 -23
  17. package/dist/cli.js.map +1 -1
  18. package/dist/client/__tests__/client-crud.test.d.ts +7 -0
  19. package/dist/client/__tests__/client-crud.test.d.ts.map +1 -0
  20. package/dist/client/__tests__/client-crud.test.js +404 -0
  21. package/dist/client/__tests__/client-crud.test.js.map +1 -0
  22. package/dist/client/__tests__/client.test.d.ts +5 -0
  23. package/dist/client/__tests__/client.test.d.ts.map +1 -0
  24. package/dist/client/__tests__/client.test.js +518 -0
  25. package/dist/client/__tests__/client.test.js.map +1 -0
  26. package/dist/client/client.d.ts +228 -0
  27. package/dist/client/client.d.ts.map +1 -0
  28. package/dist/client/client.js +393 -0
  29. package/dist/client/client.js.map +1 -0
  30. package/dist/client/index.d.ts +11 -0
  31. package/dist/client/index.d.ts.map +1 -0
  32. package/dist/client/index.js +9 -0
  33. package/dist/client/index.js.map +1 -0
  34. package/dist/config/__tests__/defaults.test.d.ts +2 -0
  35. package/dist/config/__tests__/defaults.test.d.ts.map +1 -0
  36. package/dist/config/__tests__/defaults.test.js +57 -0
  37. package/dist/config/__tests__/defaults.test.js.map +1 -0
  38. package/dist/config/__tests__/env.test.d.ts +2 -0
  39. package/dist/config/__tests__/env.test.d.ts.map +1 -0
  40. package/dist/config/__tests__/env.test.js +136 -0
  41. package/dist/config/__tests__/env.test.js.map +1 -0
  42. package/dist/config/__tests__/index.test.d.ts +2 -0
  43. package/dist/config/__tests__/index.test.d.ts.map +1 -0
  44. package/dist/config/__tests__/index.test.js +113 -0
  45. package/dist/config/__tests__/index.test.js.map +1 -0
  46. package/dist/config/__tests__/loader.test.d.ts +2 -0
  47. package/dist/config/__tests__/loader.test.d.ts.map +1 -0
  48. package/dist/config/__tests__/loader.test.js +128 -0
  49. package/dist/config/__tests__/loader.test.js.map +1 -0
  50. package/dist/config/__tests__/merge.test.d.ts +2 -0
  51. package/dist/config/__tests__/merge.test.d.ts.map +1 -0
  52. package/dist/config/__tests__/merge.test.js +79 -0
  53. package/dist/config/__tests__/merge.test.js.map +1 -0
  54. package/dist/config/__tests__/schema.test.d.ts +2 -0
  55. package/dist/config/__tests__/schema.test.d.ts.map +1 -0
  56. package/dist/config/__tests__/schema.test.js +300 -0
  57. package/dist/config/__tests__/schema.test.js.map +1 -0
  58. package/dist/config/defaults.d.ts +13 -0
  59. package/dist/config/defaults.d.ts.map +1 -0
  60. package/dist/config/defaults.js +15 -0
  61. package/dist/config/defaults.js.map +1 -0
  62. package/dist/config/env.d.ts +14 -0
  63. package/dist/config/env.d.ts.map +1 -0
  64. package/dist/config/env.js +130 -0
  65. package/dist/config/env.js.map +1 -0
  66. package/dist/config/errors.d.ts +21 -0
  67. package/dist/config/errors.d.ts.map +1 -0
  68. package/dist/config/errors.js +30 -0
  69. package/dist/config/errors.js.map +1 -0
  70. package/dist/config/index.d.ts +21 -0
  71. package/dist/config/index.d.ts.map +1 -0
  72. package/dist/config/index.js +41 -0
  73. package/dist/config/index.js.map +1 -0
  74. package/dist/config/loader.d.ts +8 -0
  75. package/dist/config/loader.d.ts.map +1 -0
  76. package/dist/config/loader.js +87 -0
  77. package/dist/config/loader.js.map +1 -0
  78. package/dist/config/merge.d.ts +12 -0
  79. package/dist/config/merge.d.ts.map +1 -0
  80. package/dist/config/merge.js +54 -0
  81. package/dist/config/merge.js.map +1 -0
  82. package/dist/config/schema.d.ts +644 -0
  83. package/dist/config/schema.d.ts.map +1 -0
  84. package/dist/config/schema.js +491 -0
  85. package/dist/config/schema.js.map +1 -0
  86. package/dist/core/__tests__/conditional-redirects.test.d.ts +2 -0
  87. package/dist/core/__tests__/conditional-redirects.test.d.ts.map +1 -0
  88. package/dist/core/__tests__/conditional-redirects.test.js +83 -0
  89. package/dist/core/__tests__/conditional-redirects.test.js.map +1 -0
  90. package/dist/core/__tests__/connections.test.d.ts +2 -0
  91. package/dist/core/__tests__/connections.test.d.ts.map +1 -0
  92. package/dist/core/__tests__/connections.test.js +158 -0
  93. package/dist/core/__tests__/connections.test.js.map +1 -0
  94. package/dist/core/__tests__/hash.test.d.ts +2 -0
  95. package/dist/core/__tests__/hash.test.d.ts.map +1 -0
  96. package/dist/core/__tests__/hash.test.js +139 -0
  97. package/dist/core/__tests__/hash.test.js.map +1 -0
  98. package/dist/core/__tests__/id.test.d.ts +2 -0
  99. package/dist/core/__tests__/id.test.d.ts.map +1 -0
  100. package/dist/core/__tests__/id.test.js +142 -0
  101. package/dist/core/__tests__/id.test.js.map +1 -0
  102. package/dist/core/__tests__/location.test.d.ts +2 -0
  103. package/dist/core/__tests__/location.test.d.ts.map +1 -0
  104. package/dist/core/__tests__/location.test.js +77 -0
  105. package/dist/core/__tests__/location.test.js.map +1 -0
  106. package/dist/core/__tests__/merge-driver.test.d.ts +2 -0
  107. package/dist/core/__tests__/merge-driver.test.d.ts.map +1 -0
  108. package/dist/core/__tests__/merge-driver.test.js +218 -0
  109. package/dist/core/__tests__/merge-driver.test.js.map +1 -0
  110. package/dist/core/__tests__/redirects.test.d.ts +2 -0
  111. package/dist/core/__tests__/redirects.test.d.ts.map +1 -0
  112. package/dist/core/__tests__/redirects.test.js +123 -0
  113. package/dist/core/__tests__/redirects.test.js.map +1 -0
  114. package/dist/core/__tests__/resolve-location-target.test.d.ts +8 -0
  115. package/dist/core/__tests__/resolve-location-target.test.d.ts.map +1 -0
  116. package/dist/core/__tests__/resolve-location-target.test.js +303 -0
  117. package/dist/core/__tests__/resolve-location-target.test.js.map +1 -0
  118. package/dist/core/__tests__/uri.test.d.ts +2 -0
  119. package/dist/core/__tests__/uri.test.d.ts.map +1 -0
  120. package/dist/core/__tests__/uri.test.js +159 -0
  121. package/dist/core/__tests__/uri.test.js.map +1 -0
  122. package/dist/core/__tests__/worktree.test.d.ts +2 -0
  123. package/dist/core/__tests__/worktree.test.d.ts.map +1 -0
  124. package/dist/core/__tests__/worktree.test.js +120 -0
  125. package/dist/core/__tests__/worktree.test.js.map +1 -0
  126. package/dist/core/conditional-redirects.d.ts +42 -0
  127. package/dist/core/conditional-redirects.d.ts.map +1 -0
  128. package/dist/core/conditional-redirects.js +59 -0
  129. package/dist/core/conditional-redirects.js.map +1 -0
  130. package/dist/core/connections.d.ts +87 -0
  131. package/dist/core/connections.d.ts.map +1 -0
  132. package/dist/core/connections.js +160 -0
  133. package/dist/core/connections.js.map +1 -0
  134. package/dist/core/discover.d.ts +39 -0
  135. package/dist/core/discover.d.ts.map +1 -0
  136. package/dist/core/discover.js +136 -0
  137. package/dist/core/discover.js.map +1 -0
  138. package/dist/core/hash.d.ts +25 -0
  139. package/dist/core/hash.d.ts.map +1 -0
  140. package/dist/core/hash.js +62 -0
  141. package/dist/core/hash.js.map +1 -0
  142. package/dist/core/id.d.ts +79 -0
  143. package/dist/core/id.d.ts.map +1 -0
  144. package/dist/core/id.js +141 -0
  145. package/dist/core/id.js.map +1 -0
  146. package/dist/core/index.d.ts +15 -0
  147. package/dist/core/index.d.ts.map +1 -0
  148. package/dist/core/index.js +24 -0
  149. package/dist/core/index.js.map +1 -0
  150. package/dist/core/location.d.ts +70 -0
  151. package/dist/core/location.d.ts.map +1 -0
  152. package/dist/core/location.js +121 -0
  153. package/dist/core/location.js.map +1 -0
  154. package/dist/core/merge-driver.d.ts +50 -0
  155. package/dist/core/merge-driver.d.ts.map +1 -0
  156. package/dist/core/merge-driver.js +258 -0
  157. package/dist/core/merge-driver.js.map +1 -0
  158. package/dist/core/redirects.d.ts +91 -0
  159. package/dist/core/redirects.d.ts.map +1 -0
  160. package/dist/core/redirects.js +113 -0
  161. package/dist/core/redirects.js.map +1 -0
  162. package/dist/core/uri.d.ts +105 -0
  163. package/dist/core/uri.d.ts.map +1 -0
  164. package/dist/core/uri.js +190 -0
  165. package/dist/core/uri.js.map +1 -0
  166. package/dist/core/worktree.d.ts +106 -0
  167. package/dist/core/worktree.d.ts.map +1 -0
  168. package/dist/core/worktree.js +394 -0
  169. package/dist/core/worktree.js.map +1 -0
  170. package/dist/daemon/__tests__/flush.test.d.ts +5 -0
  171. package/dist/daemon/__tests__/flush.test.d.ts.map +1 -0
  172. package/dist/daemon/__tests__/flush.test.js +213 -0
  173. package/dist/daemon/__tests__/flush.test.js.map +1 -0
  174. package/dist/daemon/__tests__/integration.test.d.ts +7 -0
  175. package/dist/daemon/__tests__/integration.test.d.ts.map +1 -0
  176. package/dist/daemon/__tests__/integration.test.js +276 -0
  177. package/dist/daemon/__tests__/integration.test.js.map +1 -0
  178. package/dist/daemon/__tests__/ipc.test.d.ts +5 -0
  179. package/dist/daemon/__tests__/ipc.test.d.ts.map +1 -0
  180. package/dist/daemon/__tests__/ipc.test.js +314 -0
  181. package/dist/daemon/__tests__/ipc.test.js.map +1 -0
  182. package/dist/daemon/__tests__/lifecycle.test.d.ts +5 -0
  183. package/dist/daemon/__tests__/lifecycle.test.d.ts.map +1 -0
  184. package/dist/daemon/__tests__/lifecycle.test.js +301 -0
  185. package/dist/daemon/__tests__/lifecycle.test.js.map +1 -0
  186. package/dist/daemon/__tests__/lock.test.d.ts +5 -0
  187. package/dist/daemon/__tests__/lock.test.d.ts.map +1 -0
  188. package/dist/daemon/__tests__/lock.test.js +192 -0
  189. package/dist/daemon/__tests__/lock.test.js.map +1 -0
  190. package/dist/daemon/__tests__/methods/graph.test.d.ts +5 -0
  191. package/dist/daemon/__tests__/methods/graph.test.d.ts.map +1 -0
  192. package/dist/daemon/__tests__/methods/graph.test.js +309 -0
  193. package/dist/daemon/__tests__/methods/graph.test.js.map +1 -0
  194. package/dist/daemon/__tests__/methods/provider.test.d.ts +7 -0
  195. package/dist/daemon/__tests__/methods/provider.test.d.ts.map +1 -0
  196. package/dist/daemon/__tests__/methods/provider.test.js +181 -0
  197. package/dist/daemon/__tests__/methods/provider.test.js.map +1 -0
  198. package/dist/daemon/__tests__/methods/tools.test.d.ts +5 -0
  199. package/dist/daemon/__tests__/methods/tools.test.d.ts.map +1 -0
  200. package/dist/daemon/__tests__/methods/tools.test.js +587 -0
  201. package/dist/daemon/__tests__/methods/tools.test.js.map +1 -0
  202. package/dist/daemon/__tests__/multi-location.test.d.ts +8 -0
  203. package/dist/daemon/__tests__/multi-location.test.d.ts.map +1 -0
  204. package/dist/daemon/__tests__/multi-location.test.js +669 -0
  205. package/dist/daemon/__tests__/multi-location.test.js.map +1 -0
  206. package/dist/daemon/__tests__/registry.test.d.ts +5 -0
  207. package/dist/daemon/__tests__/registry.test.d.ts.map +1 -0
  208. package/dist/daemon/__tests__/registry.test.js +208 -0
  209. package/dist/daemon/__tests__/registry.test.js.map +1 -0
  210. package/dist/daemon/__tests__/watcher.test.d.ts +5 -0
  211. package/dist/daemon/__tests__/watcher.test.d.ts.map +1 -0
  212. package/dist/daemon/__tests__/watcher.test.js +234 -0
  213. package/dist/daemon/__tests__/watcher.test.js.map +1 -0
  214. package/dist/daemon/entire-linker.d.ts +68 -0
  215. package/dist/daemon/entire-linker.d.ts.map +1 -0
  216. package/dist/daemon/entire-linker.js +439 -0
  217. package/dist/daemon/entire-linker.js.map +1 -0
  218. package/dist/daemon/entire-watcher.d.ts +66 -0
  219. package/dist/daemon/entire-watcher.d.ts.map +1 -0
  220. package/dist/daemon/entire-watcher.js +258 -0
  221. package/dist/daemon/entire-watcher.js.map +1 -0
  222. package/dist/daemon/factory.d.ts +59 -0
  223. package/dist/daemon/factory.d.ts.map +1 -0
  224. package/dist/daemon/factory.js +72 -0
  225. package/dist/daemon/factory.js.map +1 -0
  226. package/dist/daemon/flush.d.ts +51 -0
  227. package/dist/daemon/flush.d.ts.map +1 -0
  228. package/dist/daemon/flush.js +89 -0
  229. package/dist/daemon/flush.js.map +1 -0
  230. package/dist/daemon/index.d.ts +39 -0
  231. package/dist/daemon/index.d.ts.map +1 -0
  232. package/dist/daemon/index.js +24 -0
  233. package/dist/daemon/index.js.map +1 -0
  234. package/dist/daemon/ipc.d.ts +97 -0
  235. package/dist/daemon/ipc.d.ts.map +1 -0
  236. package/dist/daemon/ipc.js +304 -0
  237. package/dist/daemon/ipc.js.map +1 -0
  238. package/dist/daemon/lifecycle.d.ts +85 -0
  239. package/dist/daemon/lifecycle.d.ts.map +1 -0
  240. package/dist/daemon/lifecycle.js +754 -0
  241. package/dist/daemon/lifecycle.js.map +1 -0
  242. package/dist/daemon/location-state.d.ts +85 -0
  243. package/dist/daemon/location-state.d.ts.map +1 -0
  244. package/dist/daemon/location-state.js +291 -0
  245. package/dist/daemon/location-state.js.map +1 -0
  246. package/dist/daemon/lock.d.ts +29 -0
  247. package/dist/daemon/lock.d.ts.map +1 -0
  248. package/dist/daemon/lock.js +131 -0
  249. package/dist/daemon/lock.js.map +1 -0
  250. package/dist/daemon/methods/__tests__/graph.test.d.ts +5 -0
  251. package/dist/daemon/methods/__tests__/graph.test.d.ts.map +1 -0
  252. package/dist/daemon/methods/__tests__/graph.test.js +274 -0
  253. package/dist/daemon/methods/__tests__/graph.test.js.map +1 -0
  254. package/dist/daemon/methods/__tests__/provider.test.d.ts +5 -0
  255. package/dist/daemon/methods/__tests__/provider.test.d.ts.map +1 -0
  256. package/dist/daemon/methods/__tests__/provider.test.js +184 -0
  257. package/dist/daemon/methods/__tests__/provider.test.js.map +1 -0
  258. package/dist/daemon/methods/__tests__/tools.test.d.ts +5 -0
  259. package/dist/daemon/methods/__tests__/tools.test.d.ts.map +1 -0
  260. package/dist/daemon/methods/__tests__/tools.test.js +295 -0
  261. package/dist/daemon/methods/__tests__/tools.test.js.map +1 -0
  262. package/dist/daemon/methods/archive.d.ts +22 -0
  263. package/dist/daemon/methods/archive.d.ts.map +1 -0
  264. package/dist/daemon/methods/archive.js +107 -0
  265. package/dist/daemon/methods/archive.js.map +1 -0
  266. package/dist/daemon/methods/graph.d.ts +26 -0
  267. package/dist/daemon/methods/graph.d.ts.map +1 -0
  268. package/dist/daemon/methods/graph.js +157 -0
  269. package/dist/daemon/methods/graph.js.map +1 -0
  270. package/dist/daemon/methods/lifecycle.d.ts +54 -0
  271. package/dist/daemon/methods/lifecycle.d.ts.map +1 -0
  272. package/dist/daemon/methods/lifecycle.js +46 -0
  273. package/dist/daemon/methods/lifecycle.js.map +1 -0
  274. package/dist/daemon/methods/location.d.ts +24 -0
  275. package/dist/daemon/methods/location.d.ts.map +1 -0
  276. package/dist/daemon/methods/location.js +72 -0
  277. package/dist/daemon/methods/location.js.map +1 -0
  278. package/dist/daemon/methods/provider.d.ts +22 -0
  279. package/dist/daemon/methods/provider.d.ts.map +1 -0
  280. package/dist/daemon/methods/provider.js +72 -0
  281. package/dist/daemon/methods/provider.js.map +1 -0
  282. package/dist/daemon/methods/tools.d.ts +23 -0
  283. package/dist/daemon/methods/tools.d.ts.map +1 -0
  284. package/dist/daemon/methods/tools.js +111 -0
  285. package/dist/daemon/methods/tools.js.map +1 -0
  286. package/dist/daemon/registry.d.ts +35 -0
  287. package/dist/daemon/registry.d.ts.map +1 -0
  288. package/dist/daemon/registry.js +189 -0
  289. package/dist/daemon/registry.js.map +1 -0
  290. package/dist/daemon/types.d.ts +101 -0
  291. package/dist/daemon/types.d.ts.map +1 -0
  292. package/dist/daemon/types.js +19 -0
  293. package/dist/daemon/types.js.map +1 -0
  294. package/dist/daemon/watcher.d.ts +62 -0
  295. package/dist/daemon/watcher.d.ts.map +1 -0
  296. package/dist/daemon/watcher.js +142 -0
  297. package/dist/daemon/watcher.js.map +1 -0
  298. package/dist/graph/EdgeTypeRegistry.d.ts +134 -0
  299. package/dist/graph/EdgeTypeRegistry.d.ts.map +1 -0
  300. package/dist/graph/EdgeTypeRegistry.js +255 -0
  301. package/dist/graph/EdgeTypeRegistry.js.map +1 -0
  302. package/dist/graph/FederatedGraph.d.ts +296 -0
  303. package/dist/graph/FederatedGraph.d.ts.map +1 -0
  304. package/dist/graph/FederatedGraph.js +406 -0
  305. package/dist/graph/FederatedGraph.js.map +1 -0
  306. package/dist/graph/GraphologyAdapter.d.ts +151 -0
  307. package/dist/graph/GraphologyAdapter.d.ts.map +1 -0
  308. package/dist/graph/GraphologyAdapter.js +209 -0
  309. package/dist/graph/GraphologyAdapter.js.map +1 -0
  310. package/dist/graph/HydratingFederatedGraph.d.ts +151 -0
  311. package/dist/graph/HydratingFederatedGraph.d.ts.map +1 -0
  312. package/dist/graph/HydratingFederatedGraph.js +327 -0
  313. package/dist/graph/HydratingFederatedGraph.js.map +1 -0
  314. package/dist/graph/__tests__/EdgeTypeRegistry.test.d.ts +2 -0
  315. package/dist/graph/__tests__/EdgeTypeRegistry.test.d.ts.map +1 -0
  316. package/dist/graph/__tests__/EdgeTypeRegistry.test.js +212 -0
  317. package/dist/graph/__tests__/EdgeTypeRegistry.test.js.map +1 -0
  318. package/dist/graph/__tests__/FederatedGraph.test.d.ts +2 -0
  319. package/dist/graph/__tests__/FederatedGraph.test.d.ts.map +1 -0
  320. package/dist/graph/__tests__/FederatedGraph.test.js +661 -0
  321. package/dist/graph/__tests__/FederatedGraph.test.js.map +1 -0
  322. package/dist/graph/__tests__/GraphologyAdapter.test.d.ts +2 -0
  323. package/dist/graph/__tests__/GraphologyAdapter.test.d.ts.map +1 -0
  324. package/dist/graph/__tests__/GraphologyAdapter.test.js +326 -0
  325. package/dist/graph/__tests__/GraphologyAdapter.test.js.map +1 -0
  326. package/dist/graph/__tests__/HydratingFederatedGraph.test.d.ts +2 -0
  327. package/dist/graph/__tests__/HydratingFederatedGraph.test.d.ts.map +1 -0
  328. package/dist/graph/__tests__/HydratingFederatedGraph.test.js +587 -0
  329. package/dist/graph/__tests__/HydratingFederatedGraph.test.js.map +1 -0
  330. package/dist/graph/__tests__/debounce.test.d.ts +5 -0
  331. package/dist/graph/__tests__/debounce.test.d.ts.map +1 -0
  332. package/dist/graph/__tests__/debounce.test.js +195 -0
  333. package/dist/graph/__tests__/debounce.test.js.map +1 -0
  334. package/dist/graph/__tests__/edge-cases.test.d.ts +8 -0
  335. package/dist/graph/__tests__/edge-cases.test.d.ts.map +1 -0
  336. package/dist/graph/__tests__/edge-cases.test.js +472 -0
  337. package/dist/graph/__tests__/edge-cases.test.js.map +1 -0
  338. package/dist/graph/__tests__/expansion.test.d.ts +2 -0
  339. package/dist/graph/__tests__/expansion.test.d.ts.map +1 -0
  340. package/dist/graph/__tests__/expansion.test.js +105 -0
  341. package/dist/graph/__tests__/expansion.test.js.map +1 -0
  342. package/dist/graph/__tests__/provider-store.test.d.ts +5 -0
  343. package/dist/graph/__tests__/provider-store.test.d.ts.map +1 -0
  344. package/dist/graph/__tests__/provider-store.test.js +791 -0
  345. package/dist/graph/__tests__/provider-store.test.js.map +1 -0
  346. package/dist/graph/__tests__/query.test.d.ts +5 -0
  347. package/dist/graph/__tests__/query.test.d.ts.map +1 -0
  348. package/dist/graph/__tests__/query.test.js +774 -0
  349. package/dist/graph/__tests__/query.test.js.map +1 -0
  350. package/dist/graph/__tests__/store.test.d.ts +5 -0
  351. package/dist/graph/__tests__/store.test.d.ts.map +1 -0
  352. package/dist/graph/__tests__/store.test.js +489 -0
  353. package/dist/graph/__tests__/store.test.js.map +1 -0
  354. package/dist/graph/__tests__/sync.test.d.ts +5 -0
  355. package/dist/graph/__tests__/sync.test.d.ts.map +1 -0
  356. package/dist/graph/__tests__/sync.test.js +129 -0
  357. package/dist/graph/__tests__/sync.test.js.map +1 -0
  358. package/dist/graph/__tests__/validation.test.d.ts +2 -0
  359. package/dist/graph/__tests__/validation.test.d.ts.map +1 -0
  360. package/dist/graph/__tests__/validation.test.js +521 -0
  361. package/dist/graph/__tests__/validation.test.js.map +1 -0
  362. package/dist/graph/coordination.d.ts +190 -0
  363. package/dist/graph/coordination.d.ts.map +1 -0
  364. package/dist/graph/coordination.js +180 -0
  365. package/dist/graph/coordination.js.map +1 -0
  366. package/dist/graph/debounce.d.ts +47 -0
  367. package/dist/graph/debounce.d.ts.map +1 -0
  368. package/dist/graph/debounce.js +95 -0
  369. package/dist/graph/debounce.js.map +1 -0
  370. package/dist/graph/expansion.d.ts +64 -0
  371. package/dist/graph/expansion.d.ts.map +1 -0
  372. package/dist/graph/expansion.js +205 -0
  373. package/dist/graph/expansion.js.map +1 -0
  374. package/dist/graph/history.d.ts +186 -0
  375. package/dist/graph/history.d.ts.map +1 -0
  376. package/dist/graph/history.js +155 -0
  377. package/dist/graph/history.js.map +1 -0
  378. package/dist/graph/index.d.ts +35 -0
  379. package/dist/graph/index.d.ts.map +1 -0
  380. package/dist/graph/index.js +22 -0
  381. package/dist/graph/index.js.map +1 -0
  382. package/dist/graph/provider-store.d.ts +211 -0
  383. package/dist/graph/provider-store.d.ts.map +1 -0
  384. package/dist/graph/provider-store.js +568 -0
  385. package/dist/graph/provider-store.js.map +1 -0
  386. package/dist/graph/query.d.ts +90 -0
  387. package/dist/graph/query.d.ts.map +1 -0
  388. package/dist/graph/query.js +463 -0
  389. package/dist/graph/query.js.map +1 -0
  390. package/dist/graph/store.d.ts +71 -0
  391. package/dist/graph/store.d.ts.map +1 -0
  392. package/dist/graph/store.js +530 -0
  393. package/dist/graph/store.js.map +1 -0
  394. package/dist/graph/sync.d.ts +48 -0
  395. package/dist/graph/sync.d.ts.map +1 -0
  396. package/dist/graph/sync.js +60 -0
  397. package/dist/graph/sync.js.map +1 -0
  398. package/dist/graph/types.d.ts +289 -0
  399. package/dist/graph/types.d.ts.map +1 -0
  400. package/dist/graph/types.js +19 -0
  401. package/dist/graph/types.js.map +1 -0
  402. package/dist/graph/validation.d.ts +26 -0
  403. package/dist/graph/validation.d.ts.map +1 -0
  404. package/dist/graph/validation.js +338 -0
  405. package/dist/graph/validation.js.map +1 -0
  406. package/dist/index.d.ts +25 -14
  407. package/dist/index.d.ts.map +1 -1
  408. package/dist/index.js +22 -25
  409. package/dist/index.js.map +1 -1
  410. package/dist/materialization/archiver.d.ts +12 -0
  411. package/dist/materialization/archiver.d.ts.map +1 -0
  412. package/dist/materialization/archiver.js +273 -0
  413. package/dist/materialization/archiver.js.map +1 -0
  414. package/dist/materialization/git-archive-store.d.ts +17 -0
  415. package/dist/materialization/git-archive-store.d.ts.map +1 -0
  416. package/dist/materialization/git-archive-store.js +509 -0
  417. package/dist/materialization/git-archive-store.js.map +1 -0
  418. package/dist/materialization/git-remote-store.d.ts +22 -0
  419. package/dist/materialization/git-remote-store.d.ts.map +1 -0
  420. package/dist/materialization/git-remote-store.js +448 -0
  421. package/dist/materialization/git-remote-store.js.map +1 -0
  422. package/dist/materialization/graph-id.d.ts +53 -0
  423. package/dist/materialization/graph-id.d.ts.map +1 -0
  424. package/dist/materialization/graph-id.js +163 -0
  425. package/dist/materialization/graph-id.js.map +1 -0
  426. package/dist/materialization/http-remote-store.d.ts +12 -0
  427. package/dist/materialization/http-remote-store.d.ts.map +1 -0
  428. package/dist/materialization/http-remote-store.js +143 -0
  429. package/dist/materialization/http-remote-store.js.map +1 -0
  430. package/dist/materialization/index.d.ts +15 -0
  431. package/dist/materialization/index.d.ts.map +1 -0
  432. package/dist/materialization/index.js +17 -0
  433. package/dist/materialization/index.js.map +1 -0
  434. package/dist/materialization/remote-store-factory.d.ts +17 -0
  435. package/dist/materialization/remote-store-factory.d.ts.map +1 -0
  436. package/dist/materialization/remote-store-factory.js +46 -0
  437. package/dist/materialization/remote-store-factory.js.map +1 -0
  438. package/dist/materialization/snapshot.d.ts +34 -0
  439. package/dist/materialization/snapshot.d.ts.map +1 -0
  440. package/dist/materialization/snapshot.js +177 -0
  441. package/dist/materialization/snapshot.js.map +1 -0
  442. package/dist/materialization/types.d.ts +300 -0
  443. package/dist/materialization/types.d.ts.map +1 -0
  444. package/dist/materialization/types.js +17 -0
  445. package/dist/materialization/types.js.map +1 -0
  446. package/dist/providers/__tests__/beads.test.d.ts +5 -0
  447. package/dist/providers/__tests__/beads.test.d.ts.map +1 -0
  448. package/dist/providers/__tests__/beads.test.js +591 -0
  449. package/dist/providers/__tests__/beads.test.js.map +1 -0
  450. package/dist/providers/__tests__/claude-tasks.test.d.ts +5 -0
  451. package/dist/providers/__tests__/claude-tasks.test.d.ts.map +1 -0
  452. package/dist/providers/__tests__/claude-tasks.test.js +392 -0
  453. package/dist/providers/__tests__/claude-tasks.test.js.map +1 -0
  454. package/dist/providers/__tests__/from-config.test.d.ts +5 -0
  455. package/dist/providers/__tests__/from-config.test.d.ts.map +1 -0
  456. package/dist/providers/__tests__/from-config.test.js +152 -0
  457. package/dist/providers/__tests__/from-config.test.js.map +1 -0
  458. package/dist/providers/__tests__/materialization.test.d.ts +5 -0
  459. package/dist/providers/__tests__/materialization.test.d.ts.map +1 -0
  460. package/dist/providers/__tests__/materialization.test.js +407 -0
  461. package/dist/providers/__tests__/materialization.test.js.map +1 -0
  462. package/dist/providers/__tests__/native.test.d.ts +5 -0
  463. package/dist/providers/__tests__/native.test.d.ts.map +1 -0
  464. package/dist/providers/__tests__/native.test.js +566 -0
  465. package/dist/providers/__tests__/native.test.js.map +1 -0
  466. package/dist/providers/__tests__/registry.test.d.ts +5 -0
  467. package/dist/providers/__tests__/registry.test.d.ts.map +1 -0
  468. package/dist/providers/__tests__/registry.test.js +183 -0
  469. package/dist/providers/__tests__/registry.test.js.map +1 -0
  470. package/dist/providers/beads.d.ts +46 -0
  471. package/dist/providers/beads.d.ts.map +1 -0
  472. package/dist/providers/beads.js +865 -0
  473. package/dist/providers/beads.js.map +1 -0
  474. package/dist/providers/claude-tasks.d.ts +56 -0
  475. package/dist/providers/claude-tasks.d.ts.map +1 -0
  476. package/dist/providers/claude-tasks.js +282 -0
  477. package/dist/providers/claude-tasks.js.map +1 -0
  478. package/dist/providers/entire.d.ts +88 -0
  479. package/dist/providers/entire.d.ts.map +1 -0
  480. package/dist/providers/entire.js +409 -0
  481. package/dist/providers/entire.js.map +1 -0
  482. package/dist/providers/from-config.d.ts +47 -0
  483. package/dist/providers/from-config.d.ts.map +1 -0
  484. package/dist/providers/from-config.js +150 -0
  485. package/dist/providers/from-config.js.map +1 -0
  486. package/dist/providers/index.d.ts +26 -0
  487. package/dist/providers/index.d.ts.map +1 -0
  488. package/dist/providers/index.js +29 -0
  489. package/dist/providers/index.js.map +1 -0
  490. package/dist/providers/location.d.ts +44 -0
  491. package/dist/providers/location.d.ts.map +1 -0
  492. package/dist/providers/location.js +157 -0
  493. package/dist/providers/location.js.map +1 -0
  494. package/dist/providers/materialization.d.ts +46 -0
  495. package/dist/providers/materialization.d.ts.map +1 -0
  496. package/dist/providers/materialization.js +237 -0
  497. package/dist/providers/materialization.js.map +1 -0
  498. package/dist/providers/native.d.ts +32 -0
  499. package/dist/providers/native.d.ts.map +1 -0
  500. package/dist/providers/native.js +552 -0
  501. package/dist/providers/native.js.map +1 -0
  502. package/dist/providers/registry.d.ts +11 -0
  503. package/dist/providers/registry.d.ts.map +1 -0
  504. package/dist/providers/registry.js +97 -0
  505. package/dist/providers/registry.js.map +1 -0
  506. package/dist/providers/sudocode.d.ts +49 -0
  507. package/dist/providers/sudocode.d.ts.map +1 -0
  508. package/dist/providers/sudocode.js +945 -0
  509. package/dist/providers/sudocode.js.map +1 -0
  510. package/dist/providers/sync.d.ts +299 -0
  511. package/dist/providers/sync.d.ts.map +1 -0
  512. package/dist/providers/sync.js +93 -0
  513. package/dist/providers/sync.js.map +1 -0
  514. package/dist/providers/traits/RelationshipQueryable.d.ts +129 -0
  515. package/dist/providers/traits/RelationshipQueryable.d.ts.map +1 -0
  516. package/dist/providers/traits/RelationshipQueryable.js +68 -0
  517. package/dist/providers/traits/RelationshipQueryable.js.map +1 -0
  518. package/dist/providers/traits/TaskManageable.d.ts +157 -0
  519. package/dist/providers/traits/TaskManageable.d.ts.map +1 -0
  520. package/dist/providers/traits/TaskManageable.js +37 -0
  521. package/dist/providers/traits/TaskManageable.js.map +1 -0
  522. package/dist/providers/traits/Watchable.d.ts +216 -0
  523. package/dist/providers/traits/Watchable.d.ts.map +1 -0
  524. package/dist/providers/traits/Watchable.js +37 -0
  525. package/dist/providers/traits/Watchable.js.map +1 -0
  526. package/dist/providers/traits/__tests__/RelationshipQueryable.test.d.ts +2 -0
  527. package/dist/providers/traits/__tests__/RelationshipQueryable.test.d.ts.map +1 -0
  528. package/dist/providers/traits/__tests__/RelationshipQueryable.test.js +169 -0
  529. package/dist/providers/traits/__tests__/RelationshipQueryable.test.js.map +1 -0
  530. package/dist/providers/traits/__tests__/TaskManageable.test.d.ts +2 -0
  531. package/dist/providers/traits/__tests__/TaskManageable.test.d.ts.map +1 -0
  532. package/dist/providers/traits/__tests__/TaskManageable.test.js +172 -0
  533. package/dist/providers/traits/__tests__/TaskManageable.test.js.map +1 -0
  534. package/dist/providers/traits/index.d.ts +13 -0
  535. package/dist/providers/traits/index.d.ts.map +1 -0
  536. package/dist/providers/traits/index.js +10 -0
  537. package/dist/providers/traits/index.js.map +1 -0
  538. package/dist/providers/types.d.ts +284 -0
  539. package/dist/providers/types.d.ts.map +1 -0
  540. package/dist/providers/types.js +30 -0
  541. package/dist/providers/types.js.map +1 -0
  542. package/dist/schema/__tests__/validation.test.d.ts +2 -0
  543. package/dist/schema/__tests__/validation.test.d.ts.map +1 -0
  544. package/dist/schema/__tests__/validation.test.js +241 -0
  545. package/dist/schema/__tests__/validation.test.js.map +1 -0
  546. package/dist/schema/base.d.ts +68 -0
  547. package/dist/schema/base.d.ts.map +1 -0
  548. package/dist/schema/base.js +5 -0
  549. package/dist/schema/base.js.map +1 -0
  550. package/dist/schema/edges.d.ts +49 -0
  551. package/dist/schema/edges.d.ts.map +1 -0
  552. package/dist/schema/edges.js +9 -0
  553. package/dist/schema/edges.js.map +1 -0
  554. package/dist/schema/index.d.ts +11 -0
  555. package/dist/schema/index.d.ts.map +1 -0
  556. package/dist/schema/index.js +8 -0
  557. package/dist/schema/index.js.map +1 -0
  558. package/dist/schema/nodes.d.ts +97 -0
  559. package/dist/schema/nodes.d.ts.map +1 -0
  560. package/dist/schema/nodes.js +5 -0
  561. package/dist/schema/nodes.js.map +1 -0
  562. package/dist/schema/storage.d.ts +107 -0
  563. package/dist/schema/storage.d.ts.map +1 -0
  564. package/dist/schema/storage.js +10 -0
  565. package/dist/schema/storage.js.map +1 -0
  566. package/dist/schema/validation.d.ts +61 -0
  567. package/dist/schema/validation.d.ts.map +1 -0
  568. package/dist/schema/validation.js +170 -0
  569. package/dist/schema/validation.js.map +1 -0
  570. package/dist/storage/__tests__/atomic-write.test.d.ts +5 -0
  571. package/dist/storage/__tests__/atomic-write.test.d.ts.map +1 -0
  572. package/dist/storage/__tests__/atomic-write.test.js +170 -0
  573. package/dist/storage/__tests__/atomic-write.test.js.map +1 -0
  574. package/dist/storage/__tests__/file-lock.test.d.ts +2 -0
  575. package/dist/storage/__tests__/file-lock.test.d.ts.map +1 -0
  576. package/dist/storage/__tests__/file-lock.test.js +89 -0
  577. package/dist/storage/__tests__/file-lock.test.js.map +1 -0
  578. package/dist/storage/__tests__/jsonl.test.d.ts +2 -0
  579. package/dist/storage/__tests__/jsonl.test.d.ts.map +1 -0
  580. package/dist/storage/__tests__/jsonl.test.js +228 -0
  581. package/dist/storage/__tests__/jsonl.test.js.map +1 -0
  582. package/dist/storage/__tests__/locked-writer.test.d.ts +2 -0
  583. package/dist/storage/__tests__/locked-writer.test.d.ts.map +1 -0
  584. package/dist/storage/__tests__/locked-writer.test.js +109 -0
  585. package/dist/storage/__tests__/locked-writer.test.js.map +1 -0
  586. package/dist/storage/__tests__/sqlite.test.d.ts +2 -0
  587. package/dist/storage/__tests__/sqlite.test.d.ts.map +1 -0
  588. package/dist/storage/__tests__/sqlite.test.js +470 -0
  589. package/dist/storage/__tests__/sqlite.test.js.map +1 -0
  590. package/dist/storage/atomic-write.d.ts +38 -0
  591. package/dist/storage/atomic-write.d.ts.map +1 -0
  592. package/dist/storage/atomic-write.js +83 -0
  593. package/dist/storage/atomic-write.js.map +1 -0
  594. package/dist/storage/file-lock.d.ts +66 -0
  595. package/dist/storage/file-lock.d.ts.map +1 -0
  596. package/dist/storage/file-lock.js +176 -0
  597. package/dist/storage/file-lock.js.map +1 -0
  598. package/dist/storage/index.d.ts +11 -0
  599. package/dist/storage/index.d.ts.map +1 -0
  600. package/dist/storage/index.js +13 -0
  601. package/dist/storage/index.js.map +1 -0
  602. package/dist/storage/interface.d.ts +219 -0
  603. package/dist/storage/interface.d.ts.map +1 -0
  604. package/dist/storage/interface.js +22 -0
  605. package/dist/storage/interface.js.map +1 -0
  606. package/dist/storage/jsonl.d.ts +106 -0
  607. package/dist/storage/jsonl.d.ts.map +1 -0
  608. package/dist/storage/jsonl.js +218 -0
  609. package/dist/storage/jsonl.js.map +1 -0
  610. package/dist/storage/locked-writer.d.ts +67 -0
  611. package/dist/storage/locked-writer.d.ts.map +1 -0
  612. package/dist/storage/locked-writer.js +105 -0
  613. package/dist/storage/locked-writer.js.map +1 -0
  614. package/dist/storage/sqlite-schema.d.ts +48 -0
  615. package/dist/storage/sqlite-schema.d.ts.map +1 -0
  616. package/dist/storage/sqlite-schema.js +169 -0
  617. package/dist/storage/sqlite-schema.js.map +1 -0
  618. package/dist/storage/sqlite.d.ts +73 -0
  619. package/dist/storage/sqlite.d.ts.map +1 -0
  620. package/dist/storage/sqlite.js +698 -0
  621. package/dist/storage/sqlite.js.map +1 -0
  622. package/dist/tools/__tests__/annotate.test.d.ts +5 -0
  623. package/dist/tools/__tests__/annotate.test.d.ts.map +1 -0
  624. package/dist/tools/__tests__/annotate.test.js +314 -0
  625. package/dist/tools/__tests__/annotate.test.js.map +1 -0
  626. package/dist/tools/__tests__/link.test.d.ts +5 -0
  627. package/dist/tools/__tests__/link.test.d.ts.map +1 -0
  628. package/dist/tools/__tests__/link.test.js +245 -0
  629. package/dist/tools/__tests__/link.test.js.map +1 -0
  630. package/dist/tools/__tests__/query.test.d.ts +5 -0
  631. package/dist/tools/__tests__/query.test.d.ts.map +1 -0
  632. package/dist/tools/__tests__/query.test.js +288 -0
  633. package/dist/tools/__tests__/query.test.js.map +1 -0
  634. package/dist/tools/__tests__/task.test.d.ts +5 -0
  635. package/dist/tools/__tests__/task.test.d.ts.map +1 -0
  636. package/dist/tools/__tests__/task.test.js +178 -0
  637. package/dist/tools/__tests__/task.test.js.map +1 -0
  638. package/dist/tools/annotate.d.ts +17 -0
  639. package/dist/tools/annotate.d.ts.map +1 -0
  640. package/dist/tools/annotate.js +218 -0
  641. package/dist/tools/annotate.js.map +1 -0
  642. package/dist/tools/index.d.ts +14 -0
  643. package/dist/tools/index.d.ts.map +1 -0
  644. package/dist/tools/index.js +14 -0
  645. package/dist/tools/index.js.map +1 -0
  646. package/dist/tools/link.d.ts +17 -0
  647. package/dist/tools/link.d.ts.map +1 -0
  648. package/dist/tools/link.js +127 -0
  649. package/dist/tools/link.js.map +1 -0
  650. package/dist/tools/query.d.ts +17 -0
  651. package/dist/tools/query.d.ts.map +1 -0
  652. package/dist/tools/query.js +342 -0
  653. package/dist/tools/query.js.map +1 -0
  654. package/dist/tools/task.d.ts +20 -0
  655. package/dist/tools/task.d.ts.map +1 -0
  656. package/dist/tools/task.js +161 -0
  657. package/dist/tools/task.js.map +1 -0
  658. package/dist/tools/types.d.ts +334 -0
  659. package/dist/tools/types.d.ts.map +1 -0
  660. package/dist/tools/types.js +19 -0
  661. package/dist/tools/types.js.map +1 -0
  662. package/package.json +40 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdgeTypeRegistry.d.ts","sourceRoot":"","sources":["../../src/graph/EdgeTypeRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IAEtB,+BAA+B;IAC/B,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC;IAErC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAElB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,EA2FlD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,UAAU,EAAE,kBAAkB,CAAC;IAE/B,uDAAuD;IACvD,WAAW,EAAE,OAAO,CAAC;IAErB,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,iBAAiB,CAAgB;;IASzC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAqB9C;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IA4BjD;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIvC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKnC;;;;OAIG;IACH,MAAM,IAAI,kBAAkB,EAAE;IAI9B;;;;OAIG;IACH,sBAAsB,IAAI,MAAM,EAAE;IAMlC;;;;;OAKG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAI3D;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG3B;AAOD;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Edge Type Registry for OpenTasks
3
+ *
4
+ * Makes relationship types extensible without code changes.
5
+ * Providers can contribute new edge types at runtime.
6
+ */
7
+ /**
8
+ * Built-in edge types
9
+ */
10
+ export const BUILTIN_EDGE_TYPES = [
11
+ {
12
+ name: 'blocks',
13
+ description: 'Source must complete before target can start',
14
+ inverseOf: 'blocked-by',
15
+ affectsReady: true,
16
+ direction: 'directed',
17
+ providers: ['native', 'beads'],
18
+ },
19
+ {
20
+ name: 'blocked-by',
21
+ description: 'Target is blocked by source (inverse of blocks)',
22
+ inverseOf: 'blocks',
23
+ affectsReady: true,
24
+ direction: 'directed',
25
+ providers: ['native', 'beads'],
26
+ },
27
+ {
28
+ name: 'implements',
29
+ description: 'Task implements a context',
30
+ affectsReady: false,
31
+ direction: 'directed',
32
+ providers: ['native'],
33
+ },
34
+ {
35
+ name: 'parent-of',
36
+ description: 'Hierarchical parent relationship',
37
+ inverseOf: 'child-of',
38
+ affectsReady: false,
39
+ direction: 'directed',
40
+ providers: ['native', 'beads'],
41
+ },
42
+ {
43
+ name: 'child-of',
44
+ description: 'Hierarchical child relationship (inverse of parent-of)',
45
+ inverseOf: 'parent-of',
46
+ affectsReady: false,
47
+ direction: 'directed',
48
+ providers: ['native', 'beads'],
49
+ },
50
+ {
51
+ name: 'discovered-from',
52
+ description: 'Found while working on another node',
53
+ affectsReady: false,
54
+ direction: 'directed',
55
+ providers: ['native', 'beads'],
56
+ },
57
+ {
58
+ name: 'related',
59
+ description: 'Loosely associated nodes',
60
+ affectsReady: false,
61
+ direction: 'undirected',
62
+ providers: ['native', 'beads'],
63
+ },
64
+ {
65
+ name: 'references',
66
+ description: 'General reference link',
67
+ affectsReady: false,
68
+ direction: 'directed',
69
+ providers: ['native'],
70
+ },
71
+ {
72
+ name: 'depends-on',
73
+ description: 'Softer dependency than blocks',
74
+ inverseOf: 'dependency-of',
75
+ affectsReady: false,
76
+ direction: 'directed',
77
+ providers: ['native', 'beads'],
78
+ },
79
+ {
80
+ name: 'dependency-of',
81
+ description: 'Inverse of depends-on',
82
+ inverseOf: 'depends-on',
83
+ affectsReady: false,
84
+ direction: 'directed',
85
+ providers: ['native', 'beads'],
86
+ },
87
+ {
88
+ name: 'duplicates',
89
+ description: 'Marks a duplicate of another node',
90
+ affectsReady: false,
91
+ direction: 'directed',
92
+ providers: ['native'],
93
+ },
94
+ {
95
+ name: 'supersedes',
96
+ description: 'Replaces another node',
97
+ affectsReady: false,
98
+ direction: 'directed',
99
+ providers: ['native'],
100
+ },
101
+ ];
102
+ /**
103
+ * Edge Type Registry
104
+ *
105
+ * Manages registered edge types and provides lookup functionality.
106
+ * Supports inverse relationships (e.g., blocks ↔ blocked-by).
107
+ */
108
+ export class EdgeTypeRegistry {
109
+ types = new Map();
110
+ inverses = new Map();
111
+ registrationOrder = [];
112
+ constructor() {
113
+ // Register built-in types
114
+ for (const type of BUILTIN_EDGE_TYPES) {
115
+ this.register(type);
116
+ }
117
+ }
118
+ /**
119
+ * Register a new edge type
120
+ *
121
+ * @param definition - The edge type definition
122
+ * @throws Error if type already registered with different definition
123
+ */
124
+ register(definition) {
125
+ const existing = this.types.get(definition.name);
126
+ if (existing) {
127
+ // Allow re-registration with same definition (idempotent)
128
+ if (JSON.stringify(existing) !== JSON.stringify(definition)) {
129
+ throw new Error(`Edge type '${definition.name}' already registered with different definition`);
130
+ }
131
+ return;
132
+ }
133
+ this.types.set(definition.name, definition);
134
+ this.registrationOrder.push(definition.name);
135
+ // Track inverse relationships
136
+ if (definition.inverseOf) {
137
+ this.inverses.set(definition.name, definition.inverseOf);
138
+ }
139
+ }
140
+ /**
141
+ * Look up an edge type by name
142
+ *
143
+ * @param name - The edge type name
144
+ * @returns The lookup result or null if not found
145
+ */
146
+ lookup(name) {
147
+ const definition = this.types.get(name);
148
+ if (!definition) {
149
+ return null;
150
+ }
151
+ // Check if this is an inverse type
152
+ const inverse = definition.inverseOf;
153
+ if (inverse && this.types.has(inverse)) {
154
+ // The canonical form is the one registered first
155
+ const nameIndex = this.registrationOrder.indexOf(name);
156
+ const inverseIndex = this.registrationOrder.indexOf(inverse);
157
+ const isCanonical = nameIndex < inverseIndex;
158
+ return {
159
+ definition,
160
+ isCanonical,
161
+ canonicalType: isCanonical ? name : inverse,
162
+ };
163
+ }
164
+ return {
165
+ definition,
166
+ isCanonical: true,
167
+ canonicalType: name,
168
+ };
169
+ }
170
+ /**
171
+ * Get the inverse of an edge type
172
+ *
173
+ * @param name - The edge type name
174
+ * @returns The inverse type name or null if none
175
+ */
176
+ getInverse(name) {
177
+ return this.inverses.get(name) ?? null;
178
+ }
179
+ /**
180
+ * Check if an edge type affects ready status
181
+ *
182
+ * @param name - The edge type name
183
+ * @returns True if this edge type affects ready status
184
+ */
185
+ affectsReady(name) {
186
+ const definition = this.types.get(name);
187
+ return definition?.affectsReady ?? false;
188
+ }
189
+ /**
190
+ * Get all registered edge types
191
+ *
192
+ * @returns Array of all edge type definitions
193
+ */
194
+ getAll() {
195
+ return Array.from(this.types.values());
196
+ }
197
+ /**
198
+ * Get edge types that affect ready status
199
+ *
200
+ * @returns Array of edge type names that affect ready
201
+ */
202
+ getReadyAffectingTypes() {
203
+ return this.getAll()
204
+ .filter((t) => t.affectsReady)
205
+ .map((t) => t.name);
206
+ }
207
+ /**
208
+ * Get edge types supported by a provider
209
+ *
210
+ * @param provider - The provider name
211
+ * @returns Array of edge type definitions
212
+ */
213
+ getTypesForProvider(provider) {
214
+ return this.getAll().filter((t) => t.providers.includes(provider));
215
+ }
216
+ /**
217
+ * Check if a type is registered
218
+ *
219
+ * @param name - The edge type name
220
+ * @returns True if the type is registered
221
+ */
222
+ has(name) {
223
+ return this.types.has(name);
224
+ }
225
+ }
226
+ /**
227
+ * Singleton instance of the edge type registry
228
+ */
229
+ let globalRegistry = null;
230
+ /**
231
+ * Get the global edge type registry instance
232
+ *
233
+ * @returns The singleton EdgeTypeRegistry
234
+ */
235
+ export function getEdgeTypeRegistry() {
236
+ if (!globalRegistry) {
237
+ globalRegistry = new EdgeTypeRegistry();
238
+ }
239
+ return globalRegistry;
240
+ }
241
+ /**
242
+ * Create a new edge type registry (for testing)
243
+ *
244
+ * @returns A fresh EdgeTypeRegistry instance
245
+ */
246
+ export function createEdgeTypeRegistry() {
247
+ return new EdgeTypeRegistry();
248
+ }
249
+ /**
250
+ * Reset the global registry (for testing)
251
+ */
252
+ export function resetEdgeTypeRegistry() {
253
+ globalRegistry = null;
254
+ }
255
+ //# sourceMappingURL=EdgeTypeRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EdgeTypeRegistry.js","sourceRoot":"","sources":["../../src/graph/EdgeTypeRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Federated Graph for OpenTasks
3
+ *
4
+ * Provides unified traversal API over the in-memory Graphology graph.
5
+ * Supports queries across providers with lazy hydration (hydration handled separately).
6
+ */
7
+ import type { GraphologyAdapter, NodeURI, GraphNodeAttributes } from './GraphologyAdapter.js';
8
+ import type { EdgeTypeDefinition } from './EdgeTypeRegistry.js';
9
+ /**
10
+ * Direction for edge traversal
11
+ */
12
+ export type TraversalDirection = 'in' | 'out' | 'both';
13
+ /**
14
+ * Options for related() query
15
+ */
16
+ export interface RelatedOptions {
17
+ /** Edge type to filter by */
18
+ edgeType?: string | string[];
19
+ /** Direction of edges to follow */
20
+ direction?: TraversalDirection;
21
+ }
22
+ /**
23
+ * Options for reachable() query
24
+ */
25
+ export interface ReachableOptions {
26
+ /** Edge type(s) to follow */
27
+ edgeType?: string | string[];
28
+ /** Direction of edges to follow */
29
+ direction?: TraversalDirection;
30
+ /** Maximum traversal depth (default: Infinity) */
31
+ maxDepth?: number;
32
+ }
33
+ /**
34
+ * Options for shortestPath() query
35
+ */
36
+ export interface ShortestPathOptions {
37
+ /** Edge types to consider (default: all) */
38
+ edgeTypes?: string[];
39
+ }
40
+ /**
41
+ * Predicate function for filtering nodes during traversal
42
+ */
43
+ export type NodePredicate = (uri: NodeURI, attrs: GraphNodeAttributes | null) => boolean;
44
+ /**
45
+ * A single step in a traversal pattern
46
+ */
47
+ export interface EdgeStep {
48
+ /** Edge type to follow */
49
+ type: string;
50
+ /** Direction to traverse */
51
+ direction: TraversalDirection;
52
+ /** Minimum number of hops (default: 1) */
53
+ minHops?: number;
54
+ /** Maximum number of hops (default: 1, use Infinity for transitive) */
55
+ maxHops?: number;
56
+ }
57
+ /**
58
+ * Pattern for multi-step graph traversal
59
+ */
60
+ export interface TraversalPattern {
61
+ /** Sequence of edge steps to follow */
62
+ steps: EdgeStep[];
63
+ /** Maximum total results to return */
64
+ limit?: number;
65
+ /** Filter predicate applied to each node before yielding */
66
+ filter?: NodePredicate;
67
+ }
68
+ /**
69
+ * Result from a traversal step
70
+ */
71
+ export interface TraversalResult {
72
+ /** The node URI reached */
73
+ uri: NodeURI;
74
+ /** Total depth from start (sum of all steps) */
75
+ depth: number;
76
+ /** Full path from start to this node */
77
+ path: NodeURI[];
78
+ /** The step index that led to this result */
79
+ stepIndex: number;
80
+ /** The edge type that led here */
81
+ edgeType: string;
82
+ }
83
+ /**
84
+ * Selector type for convenience syntax
85
+ *
86
+ * - `+uri` - Children (direct outgoing edges)
87
+ * - `uri+` - Descendants (transitive outgoing edges)
88
+ * - `@uri` - Neighbors (all directly connected nodes)
89
+ */
90
+ export type SelectorType = 'children' | 'descendants' | 'neighbors' | 'literal';
91
+ /**
92
+ * Parsed selector result
93
+ */
94
+ export interface ParsedSelector {
95
+ /** The type of selector */
96
+ type: SelectorType;
97
+ /** The base URI (without selector prefix/suffix) */
98
+ uri: NodeURI;
99
+ /** Original selector string */
100
+ original: string;
101
+ }
102
+ /**
103
+ * Graph capabilities summary
104
+ */
105
+ export interface GraphCapabilities {
106
+ /** All supported edge types */
107
+ edgeTypes: EdgeTypeDefinition[];
108
+ /** Edge types that affect ready status */
109
+ readyAffectingTypes: string[];
110
+ /** Provider-specific capabilities */
111
+ providers: Map<string, EdgeTypeDefinition[]>;
112
+ }
113
+ /**
114
+ * Federated Graph Interface
115
+ *
116
+ * Provides unified traversal API over multiple providers.
117
+ */
118
+ export interface FederatedGraph {
119
+ /** The underlying Graphology adapter */
120
+ readonly adapter: GraphologyAdapter;
121
+ /**
122
+ * Get directly related nodes (single hop)
123
+ *
124
+ * @param uri - Starting node URI
125
+ * @param options - Query options (edgeType, direction)
126
+ * @returns Array of neighboring node URIs
127
+ */
128
+ related(uri: NodeURI, options?: RelatedOptions): NodeURI[];
129
+ /**
130
+ * Get transitively reachable nodes (multi-hop)
131
+ *
132
+ * @param uri - Starting node URI
133
+ * @param options - Query options (edgeType, direction, maxDepth)
134
+ * @returns Array of reachable node URIs (not including start)
135
+ */
136
+ reachable(uri: NodeURI, options?: ReachableOptions): NodeURI[];
137
+ /**
138
+ * Find shortest path between two nodes
139
+ *
140
+ * @param from - Starting node URI
141
+ * @param to - Target node URI
142
+ * @param options - Query options (edgeTypes)
143
+ * @returns Array of node URIs forming the path, or null if no path exists
144
+ */
145
+ shortestPath(from: NodeURI, to: NodeURI, options?: ShortestPathOptions): NodeURI[] | null;
146
+ /**
147
+ * Check if a path exists between two nodes
148
+ *
149
+ * @param from - Starting node URI
150
+ * @param to - Target node URI
151
+ * @param options - Query options (edgeTypes)
152
+ * @returns True if a path exists
153
+ */
154
+ hasPath(from: NodeURI, to: NodeURI, options?: ShortestPathOptions): boolean;
155
+ /**
156
+ * Get node data by URI
157
+ *
158
+ * @param uri - Node URI
159
+ * @returns Node attributes or null if not found
160
+ */
161
+ getNode(uri: NodeURI): GraphNodeAttributes | null;
162
+ /**
163
+ * Check if a node exists in the graph
164
+ *
165
+ * @param uri - Node URI
166
+ * @returns True if the node exists
167
+ */
168
+ hasNode(uri: NodeURI): boolean;
169
+ /**
170
+ * Get all nodes in the graph
171
+ *
172
+ * @returns Array of all node URIs
173
+ */
174
+ nodes(): NodeURI[];
175
+ /**
176
+ * Get graph statistics
177
+ */
178
+ stats(): {
179
+ nodes: number;
180
+ edges: number;
181
+ };
182
+ /**
183
+ * Advanced traversal with multi-step patterns
184
+ *
185
+ * Enables complex queries like "find all specs → implementing issues → their blockers"
186
+ * Uses async iteration for lazy evaluation.
187
+ *
188
+ * @param startUris - Starting node URI(s)
189
+ * @param pattern - Traversal pattern with steps
190
+ * @returns Async iterable of traversal results
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * // Find all issues that implement specs, then their transitive blockers
195
+ * const pattern = {
196
+ * steps: [
197
+ * { type: 'implements', direction: 'in' },
198
+ * { type: 'blocks', direction: 'in', maxHops: Infinity }
199
+ * ]
200
+ * }
201
+ * for await (const result of graph.traverse(['native://s-abc'], pattern)) {
202
+ * console.log(result.uri, result.depth, result.path)
203
+ * }
204
+ * ```
205
+ */
206
+ traverse(startUris: NodeURI | NodeURI[], pattern: TraversalPattern): AsyncIterable<TraversalResult>;
207
+ /**
208
+ * Parse a selector string into its components
209
+ *
210
+ * Supports:
211
+ * - `+uri` - Children (direct outgoing neighbors)
212
+ * - `uri+` - Descendants (transitive outgoing, infinite depth)
213
+ * - `@uri` - Neighbors (all directly connected nodes, both directions)
214
+ * - `uri` - Literal URI (no expansion)
215
+ *
216
+ * @param selector - The selector string to parse
217
+ * @returns Parsed selector with type and base URI
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * graph.parseSelector('+native://s-abc') // { type: 'children', uri: 'native://s-abc' }
222
+ * graph.parseSelector('native://s-abc+') // { type: 'descendants', uri: 'native://s-abc' }
223
+ * graph.parseSelector('@native://i-123') // { type: 'neighbors', uri: 'native://i-123' }
224
+ * graph.parseSelector('native://i-123') // { type: 'literal', uri: 'native://i-123' }
225
+ * ```
226
+ */
227
+ parseSelector(selector: string): ParsedSelector;
228
+ /**
229
+ * Expand a selector into node URIs
230
+ *
231
+ * @param selector - Selector string (with +, @, etc.) or plain URI
232
+ * @param options - Optional edge type filter for expansion
233
+ * @returns Array of matching node URIs
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * // Get all children of a spec
238
+ * graph.expandSelector('+native://s-abc')
239
+ *
240
+ * // Get all descendants following 'implements' edges
241
+ * graph.expandSelector('native://s-abc+', { edgeType: 'implements' })
242
+ *
243
+ * // Get all neighbors
244
+ * graph.expandSelector('@native://i-123')
245
+ * ```
246
+ */
247
+ expandSelector(selector: string, options?: RelatedOptions): NodeURI[];
248
+ /**
249
+ * Get all registered edge types
250
+ *
251
+ * @returns Array of edge type definitions
252
+ */
253
+ edgeTypes(): EdgeTypeDefinition[];
254
+ /**
255
+ * Get graph capabilities including supported edge types per provider
256
+ *
257
+ * @returns Capabilities summary
258
+ */
259
+ capabilities(): GraphCapabilities;
260
+ }
261
+ /**
262
+ * Implementation of FederatedGraph
263
+ */
264
+ export declare class FederatedGraphImpl implements FederatedGraph {
265
+ readonly adapter: GraphologyAdapter;
266
+ constructor(adapter: GraphologyAdapter);
267
+ related(uri: NodeURI, options?: RelatedOptions): NodeURI[];
268
+ reachable(uri: NodeURI, options?: ReachableOptions): NodeURI[];
269
+ shortestPath(from: NodeURI, to: NodeURI, options?: ShortestPathOptions): NodeURI[] | null;
270
+ /**
271
+ * BFS-based shortest path with edge type filtering
272
+ */
273
+ private bfsShortestPath;
274
+ hasPath(from: NodeURI, to: NodeURI, options?: ShortestPathOptions): boolean;
275
+ getNode(uri: NodeURI): GraphNodeAttributes | null;
276
+ hasNode(uri: NodeURI): boolean;
277
+ nodes(): NodeURI[];
278
+ stats(): {
279
+ nodes: number;
280
+ edges: number;
281
+ };
282
+ traverse(startUris: NodeURI | NodeURI[], pattern: TraversalPattern): AsyncIterable<TraversalResult>;
283
+ parseSelector(selector: string): ParsedSelector;
284
+ expandSelector(selector: string, options?: RelatedOptions): NodeURI[];
285
+ edgeTypes(): EdgeTypeDefinition[];
286
+ capabilities(): GraphCapabilities;
287
+ private getNeighbors;
288
+ }
289
+ /**
290
+ * Create a FederatedGraph instance
291
+ *
292
+ * @param adapter - The GraphologyAdapter to use
293
+ * @returns A FederatedGraph instance
294
+ */
295
+ export declare function createFederatedGraph(adapter: GraphologyAdapter): FederatedGraph;
296
+ //# sourceMappingURL=FederatedGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FederatedGraph.d.ts","sourceRoot":"","sources":["../../src/graph/FederatedGraph.ts"],"names":[],"mappings":"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"}