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.
- package/README.md +344 -1
- package/dist/__tests__/cli-tools.test.d.ts +8 -0
- package/dist/__tests__/cli-tools.test.d.ts.map +1 -0
- package/dist/__tests__/cli-tools.test.js +546 -0
- package/dist/__tests__/cli-tools.test.js.map +1 -0
- package/dist/__tests__/cli.test.d.ts +5 -0
- package/dist/__tests__/cli.test.d.ts.map +1 -0
- package/dist/__tests__/cli.test.js +77 -0
- package/dist/__tests__/cli.test.js.map +1 -0
- package/dist/__tests__/p1-p3-gaps.test.d.ts +2 -0
- package/dist/__tests__/p1-p3-gaps.test.d.ts.map +1 -0
- package/dist/__tests__/p1-p3-gaps.test.js +463 -0
- package/dist/__tests__/p1-p3-gaps.test.js.map +1 -0
- package/dist/cli.d.ts +19 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +702 -23
- package/dist/cli.js.map +1 -1
- package/dist/client/__tests__/client-crud.test.d.ts +7 -0
- package/dist/client/__tests__/client-crud.test.d.ts.map +1 -0
- package/dist/client/__tests__/client-crud.test.js +404 -0
- package/dist/client/__tests__/client-crud.test.js.map +1 -0
- package/dist/client/__tests__/client.test.d.ts +5 -0
- package/dist/client/__tests__/client.test.d.ts.map +1 -0
- package/dist/client/__tests__/client.test.js +518 -0
- package/dist/client/__tests__/client.test.js.map +1 -0
- package/dist/client/client.d.ts +228 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +393 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +9 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config/__tests__/defaults.test.d.ts +2 -0
- package/dist/config/__tests__/defaults.test.d.ts.map +1 -0
- package/dist/config/__tests__/defaults.test.js +57 -0
- package/dist/config/__tests__/defaults.test.js.map +1 -0
- package/dist/config/__tests__/env.test.d.ts +2 -0
- package/dist/config/__tests__/env.test.d.ts.map +1 -0
- package/dist/config/__tests__/env.test.js +136 -0
- package/dist/config/__tests__/env.test.js.map +1 -0
- package/dist/config/__tests__/index.test.d.ts +2 -0
- package/dist/config/__tests__/index.test.d.ts.map +1 -0
- package/dist/config/__tests__/index.test.js +113 -0
- package/dist/config/__tests__/index.test.js.map +1 -0
- package/dist/config/__tests__/loader.test.d.ts +2 -0
- package/dist/config/__tests__/loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/loader.test.js +128 -0
- package/dist/config/__tests__/loader.test.js.map +1 -0
- package/dist/config/__tests__/merge.test.d.ts +2 -0
- package/dist/config/__tests__/merge.test.d.ts.map +1 -0
- package/dist/config/__tests__/merge.test.js +79 -0
- package/dist/config/__tests__/merge.test.js.map +1 -0
- package/dist/config/__tests__/schema.test.d.ts +2 -0
- package/dist/config/__tests__/schema.test.d.ts.map +1 -0
- package/dist/config/__tests__/schema.test.js +300 -0
- package/dist/config/__tests__/schema.test.js.map +1 -0
- package/dist/config/defaults.d.ts +13 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +15 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/env.d.ts +14 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +130 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/errors.d.ts +21 -0
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +30 -0
- package/dist/config/errors.js.map +1 -0
- package/dist/config/index.d.ts +21 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +41 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +8 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +87 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merge.d.ts +12 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +54 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/schema.d.ts +644 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +491 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/__tests__/conditional-redirects.test.d.ts +2 -0
- package/dist/core/__tests__/conditional-redirects.test.d.ts.map +1 -0
- package/dist/core/__tests__/conditional-redirects.test.js +83 -0
- package/dist/core/__tests__/conditional-redirects.test.js.map +1 -0
- package/dist/core/__tests__/connections.test.d.ts +2 -0
- package/dist/core/__tests__/connections.test.d.ts.map +1 -0
- package/dist/core/__tests__/connections.test.js +158 -0
- package/dist/core/__tests__/connections.test.js.map +1 -0
- package/dist/core/__tests__/hash.test.d.ts +2 -0
- package/dist/core/__tests__/hash.test.d.ts.map +1 -0
- package/dist/core/__tests__/hash.test.js +139 -0
- package/dist/core/__tests__/hash.test.js.map +1 -0
- package/dist/core/__tests__/id.test.d.ts +2 -0
- package/dist/core/__tests__/id.test.d.ts.map +1 -0
- package/dist/core/__tests__/id.test.js +142 -0
- package/dist/core/__tests__/id.test.js.map +1 -0
- package/dist/core/__tests__/location.test.d.ts +2 -0
- package/dist/core/__tests__/location.test.d.ts.map +1 -0
- package/dist/core/__tests__/location.test.js +77 -0
- package/dist/core/__tests__/location.test.js.map +1 -0
- package/dist/core/__tests__/merge-driver.test.d.ts +2 -0
- package/dist/core/__tests__/merge-driver.test.d.ts.map +1 -0
- package/dist/core/__tests__/merge-driver.test.js +218 -0
- package/dist/core/__tests__/merge-driver.test.js.map +1 -0
- package/dist/core/__tests__/redirects.test.d.ts +2 -0
- package/dist/core/__tests__/redirects.test.d.ts.map +1 -0
- package/dist/core/__tests__/redirects.test.js +123 -0
- package/dist/core/__tests__/redirects.test.js.map +1 -0
- package/dist/core/__tests__/resolve-location-target.test.d.ts +8 -0
- package/dist/core/__tests__/resolve-location-target.test.d.ts.map +1 -0
- package/dist/core/__tests__/resolve-location-target.test.js +303 -0
- package/dist/core/__tests__/resolve-location-target.test.js.map +1 -0
- package/dist/core/__tests__/uri.test.d.ts +2 -0
- package/dist/core/__tests__/uri.test.d.ts.map +1 -0
- package/dist/core/__tests__/uri.test.js +159 -0
- package/dist/core/__tests__/uri.test.js.map +1 -0
- package/dist/core/__tests__/worktree.test.d.ts +2 -0
- package/dist/core/__tests__/worktree.test.d.ts.map +1 -0
- package/dist/core/__tests__/worktree.test.js +120 -0
- package/dist/core/__tests__/worktree.test.js.map +1 -0
- package/dist/core/conditional-redirects.d.ts +42 -0
- package/dist/core/conditional-redirects.d.ts.map +1 -0
- package/dist/core/conditional-redirects.js +59 -0
- package/dist/core/conditional-redirects.js.map +1 -0
- package/dist/core/connections.d.ts +87 -0
- package/dist/core/connections.d.ts.map +1 -0
- package/dist/core/connections.js +160 -0
- package/dist/core/connections.js.map +1 -0
- package/dist/core/discover.d.ts +39 -0
- package/dist/core/discover.d.ts.map +1 -0
- package/dist/core/discover.js +136 -0
- package/dist/core/discover.js.map +1 -0
- package/dist/core/hash.d.ts +25 -0
- package/dist/core/hash.d.ts.map +1 -0
- package/dist/core/hash.js +62 -0
- package/dist/core/hash.js.map +1 -0
- package/dist/core/id.d.ts +79 -0
- package/dist/core/id.d.ts.map +1 -0
- package/dist/core/id.js +141 -0
- package/dist/core/id.js.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +24 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/location.d.ts +70 -0
- package/dist/core/location.d.ts.map +1 -0
- package/dist/core/location.js +121 -0
- package/dist/core/location.js.map +1 -0
- package/dist/core/merge-driver.d.ts +50 -0
- package/dist/core/merge-driver.d.ts.map +1 -0
- package/dist/core/merge-driver.js +258 -0
- package/dist/core/merge-driver.js.map +1 -0
- package/dist/core/redirects.d.ts +91 -0
- package/dist/core/redirects.d.ts.map +1 -0
- package/dist/core/redirects.js +113 -0
- package/dist/core/redirects.js.map +1 -0
- package/dist/core/uri.d.ts +105 -0
- package/dist/core/uri.d.ts.map +1 -0
- package/dist/core/uri.js +190 -0
- package/dist/core/uri.js.map +1 -0
- package/dist/core/worktree.d.ts +106 -0
- package/dist/core/worktree.d.ts.map +1 -0
- package/dist/core/worktree.js +394 -0
- package/dist/core/worktree.js.map +1 -0
- package/dist/daemon/__tests__/flush.test.d.ts +5 -0
- package/dist/daemon/__tests__/flush.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/flush.test.js +213 -0
- package/dist/daemon/__tests__/flush.test.js.map +1 -0
- package/dist/daemon/__tests__/integration.test.d.ts +7 -0
- package/dist/daemon/__tests__/integration.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/integration.test.js +276 -0
- package/dist/daemon/__tests__/integration.test.js.map +1 -0
- package/dist/daemon/__tests__/ipc.test.d.ts +5 -0
- package/dist/daemon/__tests__/ipc.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/ipc.test.js +314 -0
- package/dist/daemon/__tests__/ipc.test.js.map +1 -0
- package/dist/daemon/__tests__/lifecycle.test.d.ts +5 -0
- package/dist/daemon/__tests__/lifecycle.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/lifecycle.test.js +301 -0
- package/dist/daemon/__tests__/lifecycle.test.js.map +1 -0
- package/dist/daemon/__tests__/lock.test.d.ts +5 -0
- package/dist/daemon/__tests__/lock.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/lock.test.js +192 -0
- package/dist/daemon/__tests__/lock.test.js.map +1 -0
- package/dist/daemon/__tests__/methods/graph.test.d.ts +5 -0
- package/dist/daemon/__tests__/methods/graph.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/methods/graph.test.js +309 -0
- package/dist/daemon/__tests__/methods/graph.test.js.map +1 -0
- package/dist/daemon/__tests__/methods/provider.test.d.ts +7 -0
- package/dist/daemon/__tests__/methods/provider.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/methods/provider.test.js +181 -0
- package/dist/daemon/__tests__/methods/provider.test.js.map +1 -0
- package/dist/daemon/__tests__/methods/tools.test.d.ts +5 -0
- package/dist/daemon/__tests__/methods/tools.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/methods/tools.test.js +587 -0
- package/dist/daemon/__tests__/methods/tools.test.js.map +1 -0
- package/dist/daemon/__tests__/multi-location.test.d.ts +8 -0
- package/dist/daemon/__tests__/multi-location.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/multi-location.test.js +669 -0
- package/dist/daemon/__tests__/multi-location.test.js.map +1 -0
- package/dist/daemon/__tests__/registry.test.d.ts +5 -0
- package/dist/daemon/__tests__/registry.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/registry.test.js +208 -0
- package/dist/daemon/__tests__/registry.test.js.map +1 -0
- package/dist/daemon/__tests__/watcher.test.d.ts +5 -0
- package/dist/daemon/__tests__/watcher.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/watcher.test.js +234 -0
- package/dist/daemon/__tests__/watcher.test.js.map +1 -0
- package/dist/daemon/entire-linker.d.ts +68 -0
- package/dist/daemon/entire-linker.d.ts.map +1 -0
- package/dist/daemon/entire-linker.js +439 -0
- package/dist/daemon/entire-linker.js.map +1 -0
- package/dist/daemon/entire-watcher.d.ts +66 -0
- package/dist/daemon/entire-watcher.d.ts.map +1 -0
- package/dist/daemon/entire-watcher.js +258 -0
- package/dist/daemon/entire-watcher.js.map +1 -0
- package/dist/daemon/factory.d.ts +59 -0
- package/dist/daemon/factory.d.ts.map +1 -0
- package/dist/daemon/factory.js +72 -0
- package/dist/daemon/factory.js.map +1 -0
- package/dist/daemon/flush.d.ts +51 -0
- package/dist/daemon/flush.d.ts.map +1 -0
- package/dist/daemon/flush.js +89 -0
- package/dist/daemon/flush.js.map +1 -0
- package/dist/daemon/index.d.ts +39 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +24 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/ipc.d.ts +97 -0
- package/dist/daemon/ipc.d.ts.map +1 -0
- package/dist/daemon/ipc.js +304 -0
- package/dist/daemon/ipc.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +85 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -0
- package/dist/daemon/lifecycle.js +754 -0
- package/dist/daemon/lifecycle.js.map +1 -0
- package/dist/daemon/location-state.d.ts +85 -0
- package/dist/daemon/location-state.d.ts.map +1 -0
- package/dist/daemon/location-state.js +291 -0
- package/dist/daemon/location-state.js.map +1 -0
- package/dist/daemon/lock.d.ts +29 -0
- package/dist/daemon/lock.d.ts.map +1 -0
- package/dist/daemon/lock.js +131 -0
- package/dist/daemon/lock.js.map +1 -0
- package/dist/daemon/methods/__tests__/graph.test.d.ts +5 -0
- package/dist/daemon/methods/__tests__/graph.test.d.ts.map +1 -0
- package/dist/daemon/methods/__tests__/graph.test.js +274 -0
- package/dist/daemon/methods/__tests__/graph.test.js.map +1 -0
- package/dist/daemon/methods/__tests__/provider.test.d.ts +5 -0
- package/dist/daemon/methods/__tests__/provider.test.d.ts.map +1 -0
- package/dist/daemon/methods/__tests__/provider.test.js +184 -0
- package/dist/daemon/methods/__tests__/provider.test.js.map +1 -0
- package/dist/daemon/methods/__tests__/tools.test.d.ts +5 -0
- package/dist/daemon/methods/__tests__/tools.test.d.ts.map +1 -0
- package/dist/daemon/methods/__tests__/tools.test.js +295 -0
- package/dist/daemon/methods/__tests__/tools.test.js.map +1 -0
- package/dist/daemon/methods/archive.d.ts +22 -0
- package/dist/daemon/methods/archive.d.ts.map +1 -0
- package/dist/daemon/methods/archive.js +107 -0
- package/dist/daemon/methods/archive.js.map +1 -0
- package/dist/daemon/methods/graph.d.ts +26 -0
- package/dist/daemon/methods/graph.d.ts.map +1 -0
- package/dist/daemon/methods/graph.js +157 -0
- package/dist/daemon/methods/graph.js.map +1 -0
- package/dist/daemon/methods/lifecycle.d.ts +54 -0
- package/dist/daemon/methods/lifecycle.d.ts.map +1 -0
- package/dist/daemon/methods/lifecycle.js +46 -0
- package/dist/daemon/methods/lifecycle.js.map +1 -0
- package/dist/daemon/methods/location.d.ts +24 -0
- package/dist/daemon/methods/location.d.ts.map +1 -0
- package/dist/daemon/methods/location.js +72 -0
- package/dist/daemon/methods/location.js.map +1 -0
- package/dist/daemon/methods/provider.d.ts +22 -0
- package/dist/daemon/methods/provider.d.ts.map +1 -0
- package/dist/daemon/methods/provider.js +72 -0
- package/dist/daemon/methods/provider.js.map +1 -0
- package/dist/daemon/methods/tools.d.ts +23 -0
- package/dist/daemon/methods/tools.d.ts.map +1 -0
- package/dist/daemon/methods/tools.js +111 -0
- package/dist/daemon/methods/tools.js.map +1 -0
- package/dist/daemon/registry.d.ts +35 -0
- package/dist/daemon/registry.d.ts.map +1 -0
- package/dist/daemon/registry.js +189 -0
- package/dist/daemon/registry.js.map +1 -0
- package/dist/daemon/types.d.ts +101 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +19 -0
- package/dist/daemon/types.js.map +1 -0
- package/dist/daemon/watcher.d.ts +62 -0
- package/dist/daemon/watcher.d.ts.map +1 -0
- package/dist/daemon/watcher.js +142 -0
- package/dist/daemon/watcher.js.map +1 -0
- package/dist/graph/EdgeTypeRegistry.d.ts +134 -0
- package/dist/graph/EdgeTypeRegistry.d.ts.map +1 -0
- package/dist/graph/EdgeTypeRegistry.js +255 -0
- package/dist/graph/EdgeTypeRegistry.js.map +1 -0
- package/dist/graph/FederatedGraph.d.ts +296 -0
- package/dist/graph/FederatedGraph.d.ts.map +1 -0
- package/dist/graph/FederatedGraph.js +406 -0
- package/dist/graph/FederatedGraph.js.map +1 -0
- package/dist/graph/GraphologyAdapter.d.ts +151 -0
- package/dist/graph/GraphologyAdapter.d.ts.map +1 -0
- package/dist/graph/GraphologyAdapter.js +209 -0
- package/dist/graph/GraphologyAdapter.js.map +1 -0
- package/dist/graph/HydratingFederatedGraph.d.ts +151 -0
- package/dist/graph/HydratingFederatedGraph.d.ts.map +1 -0
- package/dist/graph/HydratingFederatedGraph.js +327 -0
- package/dist/graph/HydratingFederatedGraph.js.map +1 -0
- package/dist/graph/__tests__/EdgeTypeRegistry.test.d.ts +2 -0
- package/dist/graph/__tests__/EdgeTypeRegistry.test.d.ts.map +1 -0
- package/dist/graph/__tests__/EdgeTypeRegistry.test.js +212 -0
- package/dist/graph/__tests__/EdgeTypeRegistry.test.js.map +1 -0
- package/dist/graph/__tests__/FederatedGraph.test.d.ts +2 -0
- package/dist/graph/__tests__/FederatedGraph.test.d.ts.map +1 -0
- package/dist/graph/__tests__/FederatedGraph.test.js +661 -0
- package/dist/graph/__tests__/FederatedGraph.test.js.map +1 -0
- package/dist/graph/__tests__/GraphologyAdapter.test.d.ts +2 -0
- package/dist/graph/__tests__/GraphologyAdapter.test.d.ts.map +1 -0
- package/dist/graph/__tests__/GraphologyAdapter.test.js +326 -0
- package/dist/graph/__tests__/GraphologyAdapter.test.js.map +1 -0
- package/dist/graph/__tests__/HydratingFederatedGraph.test.d.ts +2 -0
- package/dist/graph/__tests__/HydratingFederatedGraph.test.d.ts.map +1 -0
- package/dist/graph/__tests__/HydratingFederatedGraph.test.js +587 -0
- package/dist/graph/__tests__/HydratingFederatedGraph.test.js.map +1 -0
- package/dist/graph/__tests__/debounce.test.d.ts +5 -0
- package/dist/graph/__tests__/debounce.test.d.ts.map +1 -0
- package/dist/graph/__tests__/debounce.test.js +195 -0
- package/dist/graph/__tests__/debounce.test.js.map +1 -0
- package/dist/graph/__tests__/edge-cases.test.d.ts +8 -0
- package/dist/graph/__tests__/edge-cases.test.d.ts.map +1 -0
- package/dist/graph/__tests__/edge-cases.test.js +472 -0
- package/dist/graph/__tests__/edge-cases.test.js.map +1 -0
- package/dist/graph/__tests__/expansion.test.d.ts +2 -0
- package/dist/graph/__tests__/expansion.test.d.ts.map +1 -0
- package/dist/graph/__tests__/expansion.test.js +105 -0
- package/dist/graph/__tests__/expansion.test.js.map +1 -0
- package/dist/graph/__tests__/provider-store.test.d.ts +5 -0
- package/dist/graph/__tests__/provider-store.test.d.ts.map +1 -0
- package/dist/graph/__tests__/provider-store.test.js +791 -0
- package/dist/graph/__tests__/provider-store.test.js.map +1 -0
- package/dist/graph/__tests__/query.test.d.ts +5 -0
- package/dist/graph/__tests__/query.test.d.ts.map +1 -0
- package/dist/graph/__tests__/query.test.js +774 -0
- package/dist/graph/__tests__/query.test.js.map +1 -0
- package/dist/graph/__tests__/store.test.d.ts +5 -0
- package/dist/graph/__tests__/store.test.d.ts.map +1 -0
- package/dist/graph/__tests__/store.test.js +489 -0
- package/dist/graph/__tests__/store.test.js.map +1 -0
- package/dist/graph/__tests__/sync.test.d.ts +5 -0
- package/dist/graph/__tests__/sync.test.d.ts.map +1 -0
- package/dist/graph/__tests__/sync.test.js +129 -0
- package/dist/graph/__tests__/sync.test.js.map +1 -0
- package/dist/graph/__tests__/validation.test.d.ts +2 -0
- package/dist/graph/__tests__/validation.test.d.ts.map +1 -0
- package/dist/graph/__tests__/validation.test.js +521 -0
- package/dist/graph/__tests__/validation.test.js.map +1 -0
- package/dist/graph/coordination.d.ts +190 -0
- package/dist/graph/coordination.d.ts.map +1 -0
- package/dist/graph/coordination.js +180 -0
- package/dist/graph/coordination.js.map +1 -0
- package/dist/graph/debounce.d.ts +47 -0
- package/dist/graph/debounce.d.ts.map +1 -0
- package/dist/graph/debounce.js +95 -0
- package/dist/graph/debounce.js.map +1 -0
- package/dist/graph/expansion.d.ts +64 -0
- package/dist/graph/expansion.d.ts.map +1 -0
- package/dist/graph/expansion.js +205 -0
- package/dist/graph/expansion.js.map +1 -0
- package/dist/graph/history.d.ts +186 -0
- package/dist/graph/history.d.ts.map +1 -0
- package/dist/graph/history.js +155 -0
- package/dist/graph/history.js.map +1 -0
- package/dist/graph/index.d.ts +35 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +22 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/provider-store.d.ts +211 -0
- package/dist/graph/provider-store.d.ts.map +1 -0
- package/dist/graph/provider-store.js +568 -0
- package/dist/graph/provider-store.js.map +1 -0
- package/dist/graph/query.d.ts +90 -0
- package/dist/graph/query.d.ts.map +1 -0
- package/dist/graph/query.js +463 -0
- package/dist/graph/query.js.map +1 -0
- package/dist/graph/store.d.ts +71 -0
- package/dist/graph/store.d.ts.map +1 -0
- package/dist/graph/store.js +530 -0
- package/dist/graph/store.js.map +1 -0
- package/dist/graph/sync.d.ts +48 -0
- package/dist/graph/sync.d.ts.map +1 -0
- package/dist/graph/sync.js +60 -0
- package/dist/graph/sync.js.map +1 -0
- package/dist/graph/types.d.ts +289 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +19 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/graph/validation.d.ts +26 -0
- package/dist/graph/validation.d.ts.map +1 -0
- package/dist/graph/validation.js +338 -0
- package/dist/graph/validation.js.map +1 -0
- package/dist/index.d.ts +25 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -25
- package/dist/index.js.map +1 -1
- package/dist/materialization/archiver.d.ts +12 -0
- package/dist/materialization/archiver.d.ts.map +1 -0
- package/dist/materialization/archiver.js +273 -0
- package/dist/materialization/archiver.js.map +1 -0
- package/dist/materialization/git-archive-store.d.ts +17 -0
- package/dist/materialization/git-archive-store.d.ts.map +1 -0
- package/dist/materialization/git-archive-store.js +509 -0
- package/dist/materialization/git-archive-store.js.map +1 -0
- package/dist/materialization/git-remote-store.d.ts +22 -0
- package/dist/materialization/git-remote-store.d.ts.map +1 -0
- package/dist/materialization/git-remote-store.js +448 -0
- package/dist/materialization/git-remote-store.js.map +1 -0
- package/dist/materialization/graph-id.d.ts +53 -0
- package/dist/materialization/graph-id.d.ts.map +1 -0
- package/dist/materialization/graph-id.js +163 -0
- package/dist/materialization/graph-id.js.map +1 -0
- package/dist/materialization/http-remote-store.d.ts +12 -0
- package/dist/materialization/http-remote-store.d.ts.map +1 -0
- package/dist/materialization/http-remote-store.js +143 -0
- package/dist/materialization/http-remote-store.js.map +1 -0
- package/dist/materialization/index.d.ts +15 -0
- package/dist/materialization/index.d.ts.map +1 -0
- package/dist/materialization/index.js +17 -0
- package/dist/materialization/index.js.map +1 -0
- package/dist/materialization/remote-store-factory.d.ts +17 -0
- package/dist/materialization/remote-store-factory.d.ts.map +1 -0
- package/dist/materialization/remote-store-factory.js +46 -0
- package/dist/materialization/remote-store-factory.js.map +1 -0
- package/dist/materialization/snapshot.d.ts +34 -0
- package/dist/materialization/snapshot.d.ts.map +1 -0
- package/dist/materialization/snapshot.js +177 -0
- package/dist/materialization/snapshot.js.map +1 -0
- package/dist/materialization/types.d.ts +300 -0
- package/dist/materialization/types.d.ts.map +1 -0
- package/dist/materialization/types.js +17 -0
- package/dist/materialization/types.js.map +1 -0
- package/dist/providers/__tests__/beads.test.d.ts +5 -0
- package/dist/providers/__tests__/beads.test.d.ts.map +1 -0
- package/dist/providers/__tests__/beads.test.js +591 -0
- package/dist/providers/__tests__/beads.test.js.map +1 -0
- package/dist/providers/__tests__/claude-tasks.test.d.ts +5 -0
- package/dist/providers/__tests__/claude-tasks.test.d.ts.map +1 -0
- package/dist/providers/__tests__/claude-tasks.test.js +392 -0
- package/dist/providers/__tests__/claude-tasks.test.js.map +1 -0
- package/dist/providers/__tests__/from-config.test.d.ts +5 -0
- package/dist/providers/__tests__/from-config.test.d.ts.map +1 -0
- package/dist/providers/__tests__/from-config.test.js +152 -0
- package/dist/providers/__tests__/from-config.test.js.map +1 -0
- package/dist/providers/__tests__/materialization.test.d.ts +5 -0
- package/dist/providers/__tests__/materialization.test.d.ts.map +1 -0
- package/dist/providers/__tests__/materialization.test.js +407 -0
- package/dist/providers/__tests__/materialization.test.js.map +1 -0
- package/dist/providers/__tests__/native.test.d.ts +5 -0
- package/dist/providers/__tests__/native.test.d.ts.map +1 -0
- package/dist/providers/__tests__/native.test.js +566 -0
- package/dist/providers/__tests__/native.test.js.map +1 -0
- package/dist/providers/__tests__/registry.test.d.ts +5 -0
- package/dist/providers/__tests__/registry.test.d.ts.map +1 -0
- package/dist/providers/__tests__/registry.test.js +183 -0
- package/dist/providers/__tests__/registry.test.js.map +1 -0
- package/dist/providers/beads.d.ts +46 -0
- package/dist/providers/beads.d.ts.map +1 -0
- package/dist/providers/beads.js +865 -0
- package/dist/providers/beads.js.map +1 -0
- package/dist/providers/claude-tasks.d.ts +56 -0
- package/dist/providers/claude-tasks.d.ts.map +1 -0
- package/dist/providers/claude-tasks.js +282 -0
- package/dist/providers/claude-tasks.js.map +1 -0
- package/dist/providers/entire.d.ts +88 -0
- package/dist/providers/entire.d.ts.map +1 -0
- package/dist/providers/entire.js +409 -0
- package/dist/providers/entire.js.map +1 -0
- package/dist/providers/from-config.d.ts +47 -0
- package/dist/providers/from-config.d.ts.map +1 -0
- package/dist/providers/from-config.js +150 -0
- package/dist/providers/from-config.js.map +1 -0
- package/dist/providers/index.d.ts +26 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +29 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/location.d.ts +44 -0
- package/dist/providers/location.d.ts.map +1 -0
- package/dist/providers/location.js +157 -0
- package/dist/providers/location.js.map +1 -0
- package/dist/providers/materialization.d.ts +46 -0
- package/dist/providers/materialization.d.ts.map +1 -0
- package/dist/providers/materialization.js +237 -0
- package/dist/providers/materialization.js.map +1 -0
- package/dist/providers/native.d.ts +32 -0
- package/dist/providers/native.d.ts.map +1 -0
- package/dist/providers/native.js +552 -0
- package/dist/providers/native.js.map +1 -0
- package/dist/providers/registry.d.ts +11 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +97 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/sudocode.d.ts +49 -0
- package/dist/providers/sudocode.d.ts.map +1 -0
- package/dist/providers/sudocode.js +945 -0
- package/dist/providers/sudocode.js.map +1 -0
- package/dist/providers/sync.d.ts +299 -0
- package/dist/providers/sync.d.ts.map +1 -0
- package/dist/providers/sync.js +93 -0
- package/dist/providers/sync.js.map +1 -0
- package/dist/providers/traits/RelationshipQueryable.d.ts +129 -0
- package/dist/providers/traits/RelationshipQueryable.d.ts.map +1 -0
- package/dist/providers/traits/RelationshipQueryable.js +68 -0
- package/dist/providers/traits/RelationshipQueryable.js.map +1 -0
- package/dist/providers/traits/TaskManageable.d.ts +157 -0
- package/dist/providers/traits/TaskManageable.d.ts.map +1 -0
- package/dist/providers/traits/TaskManageable.js +37 -0
- package/dist/providers/traits/TaskManageable.js.map +1 -0
- package/dist/providers/traits/Watchable.d.ts +216 -0
- package/dist/providers/traits/Watchable.d.ts.map +1 -0
- package/dist/providers/traits/Watchable.js +37 -0
- package/dist/providers/traits/Watchable.js.map +1 -0
- package/dist/providers/traits/__tests__/RelationshipQueryable.test.d.ts +2 -0
- package/dist/providers/traits/__tests__/RelationshipQueryable.test.d.ts.map +1 -0
- package/dist/providers/traits/__tests__/RelationshipQueryable.test.js +169 -0
- package/dist/providers/traits/__tests__/RelationshipQueryable.test.js.map +1 -0
- package/dist/providers/traits/__tests__/TaskManageable.test.d.ts +2 -0
- package/dist/providers/traits/__tests__/TaskManageable.test.d.ts.map +1 -0
- package/dist/providers/traits/__tests__/TaskManageable.test.js +172 -0
- package/dist/providers/traits/__tests__/TaskManageable.test.js.map +1 -0
- package/dist/providers/traits/index.d.ts +13 -0
- package/dist/providers/traits/index.d.ts.map +1 -0
- package/dist/providers/traits/index.js +10 -0
- package/dist/providers/traits/index.js.map +1 -0
- package/dist/providers/types.d.ts +284 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +30 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/schema/__tests__/validation.test.d.ts +2 -0
- package/dist/schema/__tests__/validation.test.d.ts.map +1 -0
- package/dist/schema/__tests__/validation.test.js +241 -0
- package/dist/schema/__tests__/validation.test.js.map +1 -0
- package/dist/schema/base.d.ts +68 -0
- package/dist/schema/base.d.ts.map +1 -0
- package/dist/schema/base.js +5 -0
- package/dist/schema/base.js.map +1 -0
- package/dist/schema/edges.d.ts +49 -0
- package/dist/schema/edges.d.ts.map +1 -0
- package/dist/schema/edges.js +9 -0
- package/dist/schema/edges.js.map +1 -0
- package/dist/schema/index.d.ts +11 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +8 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/nodes.d.ts +97 -0
- package/dist/schema/nodes.d.ts.map +1 -0
- package/dist/schema/nodes.js +5 -0
- package/dist/schema/nodes.js.map +1 -0
- package/dist/schema/storage.d.ts +107 -0
- package/dist/schema/storage.d.ts.map +1 -0
- package/dist/schema/storage.js +10 -0
- package/dist/schema/storage.js.map +1 -0
- package/dist/schema/validation.d.ts +61 -0
- package/dist/schema/validation.d.ts.map +1 -0
- package/dist/schema/validation.js +170 -0
- package/dist/schema/validation.js.map +1 -0
- package/dist/storage/__tests__/atomic-write.test.d.ts +5 -0
- package/dist/storage/__tests__/atomic-write.test.d.ts.map +1 -0
- package/dist/storage/__tests__/atomic-write.test.js +170 -0
- package/dist/storage/__tests__/atomic-write.test.js.map +1 -0
- package/dist/storage/__tests__/file-lock.test.d.ts +2 -0
- package/dist/storage/__tests__/file-lock.test.d.ts.map +1 -0
- package/dist/storage/__tests__/file-lock.test.js +89 -0
- package/dist/storage/__tests__/file-lock.test.js.map +1 -0
- package/dist/storage/__tests__/jsonl.test.d.ts +2 -0
- package/dist/storage/__tests__/jsonl.test.d.ts.map +1 -0
- package/dist/storage/__tests__/jsonl.test.js +228 -0
- package/dist/storage/__tests__/jsonl.test.js.map +1 -0
- package/dist/storage/__tests__/locked-writer.test.d.ts +2 -0
- package/dist/storage/__tests__/locked-writer.test.d.ts.map +1 -0
- package/dist/storage/__tests__/locked-writer.test.js +109 -0
- package/dist/storage/__tests__/locked-writer.test.js.map +1 -0
- package/dist/storage/__tests__/sqlite.test.d.ts +2 -0
- package/dist/storage/__tests__/sqlite.test.d.ts.map +1 -0
- package/dist/storage/__tests__/sqlite.test.js +470 -0
- package/dist/storage/__tests__/sqlite.test.js.map +1 -0
- package/dist/storage/atomic-write.d.ts +38 -0
- package/dist/storage/atomic-write.d.ts.map +1 -0
- package/dist/storage/atomic-write.js +83 -0
- package/dist/storage/atomic-write.js.map +1 -0
- package/dist/storage/file-lock.d.ts +66 -0
- package/dist/storage/file-lock.d.ts.map +1 -0
- package/dist/storage/file-lock.js +176 -0
- package/dist/storage/file-lock.js.map +1 -0
- package/dist/storage/index.d.ts +11 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +13 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/interface.d.ts +219 -0
- package/dist/storage/interface.d.ts.map +1 -0
- package/dist/storage/interface.js +22 -0
- package/dist/storage/interface.js.map +1 -0
- package/dist/storage/jsonl.d.ts +106 -0
- package/dist/storage/jsonl.d.ts.map +1 -0
- package/dist/storage/jsonl.js +218 -0
- package/dist/storage/jsonl.js.map +1 -0
- package/dist/storage/locked-writer.d.ts +67 -0
- package/dist/storage/locked-writer.d.ts.map +1 -0
- package/dist/storage/locked-writer.js +105 -0
- package/dist/storage/locked-writer.js.map +1 -0
- package/dist/storage/sqlite-schema.d.ts +48 -0
- package/dist/storage/sqlite-schema.d.ts.map +1 -0
- package/dist/storage/sqlite-schema.js +169 -0
- package/dist/storage/sqlite-schema.js.map +1 -0
- package/dist/storage/sqlite.d.ts +73 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +698 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/tools/__tests__/annotate.test.d.ts +5 -0
- package/dist/tools/__tests__/annotate.test.d.ts.map +1 -0
- package/dist/tools/__tests__/annotate.test.js +314 -0
- package/dist/tools/__tests__/annotate.test.js.map +1 -0
- package/dist/tools/__tests__/link.test.d.ts +5 -0
- package/dist/tools/__tests__/link.test.d.ts.map +1 -0
- package/dist/tools/__tests__/link.test.js +245 -0
- package/dist/tools/__tests__/link.test.js.map +1 -0
- package/dist/tools/__tests__/query.test.d.ts +5 -0
- package/dist/tools/__tests__/query.test.d.ts.map +1 -0
- package/dist/tools/__tests__/query.test.js +288 -0
- package/dist/tools/__tests__/query.test.js.map +1 -0
- package/dist/tools/__tests__/task.test.d.ts +5 -0
- package/dist/tools/__tests__/task.test.d.ts.map +1 -0
- package/dist/tools/__tests__/task.test.js +178 -0
- package/dist/tools/__tests__/task.test.js.map +1 -0
- package/dist/tools/annotate.d.ts +17 -0
- package/dist/tools/annotate.d.ts.map +1 -0
- package/dist/tools/annotate.js +218 -0
- package/dist/tools/annotate.js.map +1 -0
- package/dist/tools/index.d.ts +14 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +14 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/link.d.ts +17 -0
- package/dist/tools/link.d.ts.map +1 -0
- package/dist/tools/link.js +127 -0
- package/dist/tools/link.js.map +1 -0
- package/dist/tools/query.d.ts +17 -0
- package/dist/tools/query.d.ts.map +1 -0
- package/dist/tools/query.js +342 -0
- package/dist/tools/query.js.map +1 -0
- package/dist/tools/task.d.ts +20 -0
- package/dist/tools/task.d.ts.map +1 -0
- package/dist/tools/task.js +161 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/types.d.ts +334 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +19 -0
- package/dist/tools/types.js.map +1 -0
- 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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"}
|