opentasks 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +218 -49
  3. package/dist/cli.d.ts +20 -0
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +451 -15
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client/client.d.ts +54 -0
  8. package/dist/client/client.d.ts.map +1 -1
  9. package/dist/client/client.js +148 -4
  10. package/dist/client/client.js.map +1 -1
  11. package/dist/client/index.d.ts +1 -1
  12. package/dist/client/index.d.ts.map +1 -1
  13. package/dist/client/index.js +1 -1
  14. package/dist/client/index.js.map +1 -1
  15. package/dist/core/discover.d.ts.map +1 -1
  16. package/dist/core/discover.js +7 -2
  17. package/dist/core/discover.js.map +1 -1
  18. package/dist/core/hash.d.ts.map +1 -1
  19. package/dist/core/hash.js +7 -0
  20. package/dist/core/hash.js.map +1 -1
  21. package/dist/core/id.d.ts +1 -1
  22. package/dist/core/id.d.ts.map +1 -1
  23. package/dist/core/id.js +2 -0
  24. package/dist/core/id.js.map +1 -1
  25. package/dist/core/worktree.js +4 -4
  26. package/dist/core/worktree.js.map +1 -1
  27. package/dist/daemon/events.d.ts +82 -0
  28. package/dist/daemon/events.d.ts.map +1 -0
  29. package/dist/daemon/events.js +71 -0
  30. package/dist/daemon/events.js.map +1 -0
  31. package/dist/daemon/flush.d.ts.map +1 -1
  32. package/dist/daemon/flush.js +12 -2
  33. package/dist/daemon/flush.js.map +1 -1
  34. package/dist/daemon/health-counters.d.ts +38 -0
  35. package/dist/daemon/health-counters.d.ts.map +1 -0
  36. package/dist/daemon/health-counters.js +42 -0
  37. package/dist/daemon/health-counters.js.map +1 -0
  38. package/dist/daemon/idempotency.d.ts +50 -0
  39. package/dist/daemon/idempotency.d.ts.map +1 -0
  40. package/dist/daemon/idempotency.js +104 -0
  41. package/dist/daemon/idempotency.js.map +1 -0
  42. package/dist/daemon/index.d.ts +2 -0
  43. package/dist/daemon/index.d.ts.map +1 -1
  44. package/dist/daemon/index.js +1 -0
  45. package/dist/daemon/index.js.map +1 -1
  46. package/dist/daemon/ipc.d.ts +32 -2
  47. package/dist/daemon/ipc.d.ts.map +1 -1
  48. package/dist/daemon/ipc.js +54 -3
  49. package/dist/daemon/ipc.js.map +1 -1
  50. package/dist/daemon/lifecycle.d.ts.map +1 -1
  51. package/dist/daemon/lifecycle.js +302 -8
  52. package/dist/daemon/lifecycle.js.map +1 -1
  53. package/dist/daemon/location-state.d.ts +60 -1
  54. package/dist/daemon/location-state.d.ts.map +1 -1
  55. package/dist/daemon/location-state.js +136 -31
  56. package/dist/daemon/location-state.js.map +1 -1
  57. package/dist/daemon/methods/context-files.d.ts.map +1 -1
  58. package/dist/daemon/methods/context-files.js +4 -3
  59. package/dist/daemon/methods/context-files.js.map +1 -1
  60. package/dist/daemon/methods/events.d.ts +22 -0
  61. package/dist/daemon/methods/events.d.ts.map +1 -0
  62. package/dist/daemon/methods/events.js +30 -0
  63. package/dist/daemon/methods/events.js.map +1 -0
  64. package/dist/daemon/methods/graph.d.ts +7 -0
  65. package/dist/daemon/methods/graph.d.ts.map +1 -1
  66. package/dist/daemon/methods/graph.js +24 -14
  67. package/dist/daemon/methods/graph.js.map +1 -1
  68. package/dist/daemon/methods/lifecycle.d.ts +16 -0
  69. package/dist/daemon/methods/lifecycle.d.ts.map +1 -1
  70. package/dist/daemon/methods/lifecycle.js +3 -1
  71. package/dist/daemon/methods/lifecycle.js.map +1 -1
  72. package/dist/daemon/methods/location.js.map +1 -1
  73. package/dist/daemon/methods/sync.d.ts +113 -0
  74. package/dist/daemon/methods/sync.d.ts.map +1 -0
  75. package/dist/daemon/methods/sync.js +158 -0
  76. package/dist/daemon/methods/sync.js.map +1 -0
  77. package/dist/daemon/methods/tools.d.ts.map +1 -1
  78. package/dist/daemon/methods/tools.js +42 -8
  79. package/dist/daemon/methods/tools.js.map +1 -1
  80. package/dist/daemon/methods/watch.d.ts +24 -0
  81. package/dist/daemon/methods/watch.d.ts.map +1 -1
  82. package/dist/daemon/methods/watch.js +178 -88
  83. package/dist/daemon/methods/watch.js.map +1 -1
  84. package/dist/daemon/sessionlog-watcher.d.ts.map +1 -1
  85. package/dist/daemon/sessionlog-watcher.js +4 -0
  86. package/dist/daemon/sessionlog-watcher.js.map +1 -1
  87. package/dist/graph/EdgeTypeRegistry.d.ts.map +1 -1
  88. package/dist/graph/EdgeTypeRegistry.js +32 -0
  89. package/dist/graph/EdgeTypeRegistry.js.map +1 -1
  90. package/dist/graph/FederatedGraph.d.ts.map +1 -1
  91. package/dist/graph/GraphologyAdapter.d.ts.map +1 -1
  92. package/dist/graph/GraphologyAdapter.js.map +1 -1
  93. package/dist/graph/HydratingFederatedGraph.d.ts.map +1 -1
  94. package/dist/graph/HydratingFederatedGraph.js +1 -1
  95. package/dist/graph/HydratingFederatedGraph.js.map +1 -1
  96. package/dist/graph/attempts.d.ts +50 -0
  97. package/dist/graph/attempts.d.ts.map +1 -0
  98. package/dist/graph/attempts.js +51 -0
  99. package/dist/graph/attempts.js.map +1 -0
  100. package/dist/graph/coordination.d.ts +4 -2
  101. package/dist/graph/coordination.d.ts.map +1 -1
  102. package/dist/graph/coordination.js +77 -85
  103. package/dist/graph/coordination.js.map +1 -1
  104. package/dist/graph/expansion.d.ts.map +1 -1
  105. package/dist/graph/expansion.js +1 -1
  106. package/dist/graph/expansion.js.map +1 -1
  107. package/dist/graph/git-graph-syncer.d.ts +24 -0
  108. package/dist/graph/git-graph-syncer.d.ts.map +1 -1
  109. package/dist/graph/git-graph-syncer.js +111 -26
  110. package/dist/graph/git-graph-syncer.js.map +1 -1
  111. package/dist/graph/provider-store.d.ts +12 -1
  112. package/dist/graph/provider-store.d.ts.map +1 -1
  113. package/dist/graph/provider-store.js +35 -8
  114. package/dist/graph/provider-store.js.map +1 -1
  115. package/dist/graph/query.d.ts.map +1 -1
  116. package/dist/graph/query.js +18 -2
  117. package/dist/graph/query.js.map +1 -1
  118. package/dist/graph/store.d.ts +18 -2
  119. package/dist/graph/store.d.ts.map +1 -1
  120. package/dist/graph/store.js +43 -0
  121. package/dist/graph/store.js.map +1 -1
  122. package/dist/graph/sync.js +1 -1
  123. package/dist/graph/sync.js.map +1 -1
  124. package/dist/graph/types.d.ts +9 -1
  125. package/dist/graph/types.d.ts.map +1 -1
  126. package/dist/graph/types.js.map +1 -1
  127. package/dist/graph/validation.d.ts.map +1 -1
  128. package/dist/graph/validation.js +20 -2
  129. package/dist/graph/validation.js.map +1 -1
  130. package/dist/index.d.ts +3 -1
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +5 -1
  133. package/dist/index.js.map +1 -1
  134. package/dist/materialization/archiver.d.ts.map +1 -1
  135. package/dist/materialization/archiver.js.map +1 -1
  136. package/dist/materialization/snapshot.d.ts.map +1 -1
  137. package/dist/materialization/snapshot.js +1 -1
  138. package/dist/materialization/snapshot.js.map +1 -1
  139. package/dist/materialization/types.d.ts +7 -5
  140. package/dist/materialization/types.d.ts.map +1 -1
  141. package/dist/materialization/types.js.map +1 -1
  142. package/dist/mcp/server.d.ts +2 -1
  143. package/dist/mcp/server.d.ts.map +1 -1
  144. package/dist/mcp/server.js +308 -11
  145. package/dist/mcp/server.js.map +1 -1
  146. package/dist/providers/beads.d.ts.map +1 -1
  147. package/dist/providers/beads.js +2 -0
  148. package/dist/providers/beads.js.map +1 -1
  149. package/dist/providers/claude-tasks.d.ts.map +1 -1
  150. package/dist/providers/claude-tasks.js.map +1 -1
  151. package/dist/providers/global.js +1 -1
  152. package/dist/providers/global.js.map +1 -1
  153. package/dist/providers/location.d.ts.map +1 -1
  154. package/dist/providers/location.js.map +1 -1
  155. package/dist/providers/map-client-factory.d.ts.map +1 -1
  156. package/dist/providers/map-client-factory.js +1 -1
  157. package/dist/providers/map-client-factory.js.map +1 -1
  158. package/dist/providers/map-connector.js +1 -1
  159. package/dist/providers/map-connector.js.map +1 -1
  160. package/dist/providers/map-event-bridge.d.ts.map +1 -1
  161. package/dist/providers/map-event-bridge.js +1 -0
  162. package/dist/providers/map-event-bridge.js.map +1 -1
  163. package/dist/providers/map.d.ts.map +1 -1
  164. package/dist/providers/map.js +5 -2
  165. package/dist/providers/map.js.map +1 -1
  166. package/dist/providers/native.d.ts.map +1 -1
  167. package/dist/providers/native.js +21 -8
  168. package/dist/providers/native.js.map +1 -1
  169. package/dist/providers/registry.js +1 -1
  170. package/dist/providers/registry.js.map +1 -1
  171. package/dist/providers/sudocode.d.ts.map +1 -1
  172. package/dist/providers/sudocode.js +5 -11
  173. package/dist/providers/sudocode.js.map +1 -1
  174. package/dist/providers/traits/Reconcilable.d.ts.map +1 -1
  175. package/dist/providers/traits/TaskManageable.d.ts +15 -1
  176. package/dist/providers/traits/TaskManageable.d.ts.map +1 -1
  177. package/dist/providers/traits/TaskManageable.js +26 -0
  178. package/dist/providers/traits/TaskManageable.js.map +1 -1
  179. package/dist/providers/traits/Watchable.d.ts +6 -0
  180. package/dist/providers/traits/Watchable.d.ts.map +1 -1
  181. package/dist/providers/traits/Watchable.js.map +1 -1
  182. package/dist/providers/types.d.ts +1 -1
  183. package/dist/providers/types.d.ts.map +1 -1
  184. package/dist/schema/edges.d.ts +5 -1
  185. package/dist/schema/edges.d.ts.map +1 -1
  186. package/dist/schema/index.d.ts +2 -2
  187. package/dist/schema/index.d.ts.map +1 -1
  188. package/dist/schema/index.js +1 -1
  189. package/dist/schema/index.js.map +1 -1
  190. package/dist/schema/nodes.d.ts +55 -2
  191. package/dist/schema/nodes.d.ts.map +1 -1
  192. package/dist/schema/storage.d.ts +2 -0
  193. package/dist/schema/storage.d.ts.map +1 -1
  194. package/dist/schema/validation.d.ts +6 -2
  195. package/dist/schema/validation.d.ts.map +1 -1
  196. package/dist/schema/validation.js +18 -1
  197. package/dist/schema/validation.js.map +1 -1
  198. package/dist/sessionlog/agent/registry.js.map +1 -1
  199. package/dist/sessionlog/agent/session-types.d.ts.map +1 -1
  200. package/dist/sessionlog/agent/types.d.ts.map +1 -1
  201. package/dist/sessionlog/commands/clean.js +1 -1
  202. package/dist/sessionlog/commands/clean.js.map +1 -1
  203. package/dist/sessionlog/commands/disable.d.ts.map +1 -1
  204. package/dist/sessionlog/commands/disable.js.map +1 -1
  205. package/dist/sessionlog/commands/doctor.js +1 -1
  206. package/dist/sessionlog/commands/doctor.js.map +1 -1
  207. package/dist/sessionlog/commands/enable.js +1 -1
  208. package/dist/sessionlog/commands/enable.js.map +1 -1
  209. package/dist/sessionlog/commands/resume.js +1 -1
  210. package/dist/sessionlog/commands/resume.js.map +1 -1
  211. package/dist/sessionlog/commands/rewind.d.ts.map +1 -1
  212. package/dist/sessionlog/commands/rewind.js +1 -1
  213. package/dist/sessionlog/commands/rewind.js.map +1 -1
  214. package/dist/sessionlog/commands/status.d.ts.map +1 -1
  215. package/dist/sessionlog/commands/status.js.map +1 -1
  216. package/dist/sessionlog/hooks/lifecycle.d.ts.map +1 -1
  217. package/dist/sessionlog/hooks/lifecycle.js +3 -3
  218. package/dist/sessionlog/hooks/lifecycle.js.map +1 -1
  219. package/dist/sessionlog/security/redaction.js +1 -1
  220. package/dist/sessionlog/security/redaction.js.map +1 -1
  221. package/dist/sessionlog/store/checkpoint-store.d.ts.map +1 -1
  222. package/dist/sessionlog/store/checkpoint-store.js +2 -2
  223. package/dist/sessionlog/store/checkpoint-store.js.map +1 -1
  224. package/dist/sessionlog/store/native-store.d.ts.map +1 -1
  225. package/dist/sessionlog/store/native-store.js.map +1 -1
  226. package/dist/sessionlog/store/session-store.d.ts.map +1 -1
  227. package/dist/sessionlog/store/session-store.js +1 -1
  228. package/dist/sessionlog/store/session-store.js.map +1 -1
  229. package/dist/sessionlog/strategy/attribution.js +2 -2
  230. package/dist/sessionlog/strategy/attribution.js.map +1 -1
  231. package/dist/sessionlog/strategy/common.d.ts +1 -1
  232. package/dist/sessionlog/strategy/common.d.ts.map +1 -1
  233. package/dist/sessionlog/strategy/common.js +3 -3
  234. package/dist/sessionlog/strategy/common.js.map +1 -1
  235. package/dist/sessionlog/strategy/content-overlap.d.ts.map +1 -1
  236. package/dist/sessionlog/strategy/content-overlap.js +1 -1
  237. package/dist/sessionlog/strategy/content-overlap.js.map +1 -1
  238. package/dist/sessionlog/strategy/manual-commit.d.ts.map +1 -1
  239. package/dist/sessionlog/strategy/manual-commit.js +6 -16
  240. package/dist/sessionlog/strategy/manual-commit.js.map +1 -1
  241. package/dist/sessionlog/utils/preview-rewind.d.ts.map +1 -1
  242. package/dist/sessionlog/utils/preview-rewind.js +1 -1
  243. package/dist/sessionlog/utils/preview-rewind.js.map +1 -1
  244. package/dist/sessionlog/utils/trailers.d.ts.map +1 -1
  245. package/dist/sessionlog/utils/trailers.js +0 -1
  246. package/dist/sessionlog/utils/trailers.js.map +1 -1
  247. package/dist/storage/interface.d.ts +64 -0
  248. package/dist/storage/interface.d.ts.map +1 -1
  249. package/dist/storage/interface.js.map +1 -1
  250. package/dist/storage/jsonl.js +2 -2
  251. package/dist/storage/jsonl.js.map +1 -1
  252. package/dist/storage/sqlite-schema.d.ts +8 -2
  253. package/dist/storage/sqlite-schema.d.ts.map +1 -1
  254. package/dist/storage/sqlite-schema.js +10 -1
  255. package/dist/storage/sqlite-schema.js.map +1 -1
  256. package/dist/storage/sqlite.d.ts +16 -1
  257. package/dist/storage/sqlite.d.ts.map +1 -1
  258. package/dist/storage/sqlite.js +134 -2
  259. package/dist/storage/sqlite.js.map +1 -1
  260. package/dist/tools/link.js +1 -1
  261. package/dist/tools/link.js.map +1 -1
  262. package/dist/tools/query.d.ts.map +1 -1
  263. package/dist/tools/query.js +8 -29
  264. package/dist/tools/query.js.map +1 -1
  265. package/dist/tools/task.d.ts.map +1 -1
  266. package/dist/tools/task.js +115 -5
  267. package/dist/tools/task.js.map +1 -1
  268. package/dist/tools/types.d.ts +84 -3
  269. package/dist/tools/types.d.ts.map +1 -1
  270. package/dist/tools/types.js.map +1 -1
  271. package/dist/version.d.ts +14 -0
  272. package/dist/version.d.ts.map +1 -0
  273. package/dist/version.js +44 -0
  274. package/dist/version.js.map +1 -0
  275. package/package.json +32 -7
  276. package/skills/opentasks/SKILL.md +226 -0
  277. package/skills/opentasks/dependency-management.md +119 -0
  278. package/skills/opentasks/feedback-and-review.md +100 -0
  279. package/skills/opentasks/linking-external-data.md +103 -0
  280. package/skills/opentasks/spec-to-implementation.md +171 -0
@@ -43,12 +43,22 @@ export interface LocationState {
43
43
  archiver?: MaterializationArchiver;
44
44
  /** Git graph syncer (if enabled) */
45
45
  graphSyncer?: GitGraphSyncer;
46
+ /** Resolved git sync config flags (for sync.status); undefined when disabled */
47
+ gitSyncConfig?: {
48
+ enabled: boolean;
49
+ remote?: string;
50
+ autoCommit: boolean;
51
+ autoPush: boolean;
52
+ pullOnStartup: boolean;
53
+ };
46
54
  /** Reconciliation trigger mode for reload events (default: 'async') */
47
55
  reconciliationOnReload?: 'async' | 'blocking' | 'none';
48
56
  /** Background reconciliation interval handle */
49
57
  reconciliationInterval?: ReturnType<typeof setInterval>;
50
58
  /** Per-provider reconciliation interval handles */
51
59
  providerReconciliationIntervals?: Map<string, ReturnType<typeof setInterval>>;
60
+ /** Lease reaper interval handle (clears expired claims for this location) */
61
+ claimSweepInterval?: ReturnType<typeof setInterval>;
52
62
  }
53
63
  /**
54
64
  * Resolves location hashes to LocationState instances.
@@ -67,17 +77,66 @@ export interface LocationResolver {
67
77
  add(state: LocationState): void;
68
78
  /** Remove a location and tear down its state */
69
79
  remove(hash: string): Promise<void>;
80
+ /**
81
+ * Register a listener fired when a location is added at runtime (multi-location
82
+ * only). Lets the watch stream begin watching newly-added worktrees. No-op /
83
+ * absent in single-location mode, which cannot add locations.
84
+ */
85
+ onLocationAdded?(listener: (state: LocationState) => void): void;
86
+ /**
87
+ * Register a listener fired when a location is removed, so watchers can drop
88
+ * its per-location state. Receives the removed location's hash.
89
+ */
90
+ onLocationRemoved?(listener: (hash: string) => void): void;
70
91
  }
71
92
  /**
72
93
  * Create a GraphStore for a location path.
73
94
  * Handles SQLite + JSONL persister creation and initialization.
74
95
  */
75
96
  export declare function createStoreForLocation(opentasksPath: string): Promise<GraphStore>;
97
+ /**
98
+ * Build a git syncer for a location from its on-disk config.
99
+ *
100
+ * Shared by createLocationState (startup) and the multi-location sync.reload
101
+ * path. Returns the syncer + resolved config flags, or both undefined when git
102
+ * sync is disabled or construction fails (git sync is optional).
103
+ *
104
+ * @param opts.doInitialPull when true, honor `pullOnStartup` — pull then reload
105
+ * SQLite so the pulled peer data is queryable and the next flush (a full-file
106
+ * overwrite from SQLite) can't clobber it. The reload path passes false; a
107
+ * caller wanting a pull issues sync.pull (which is coordinated).
108
+ */
109
+ export declare function buildLocationGitSyncer(opts: {
110
+ opentasksPath: string;
111
+ store: GraphStore;
112
+ doInitialPull: boolean;
113
+ }): Promise<{
114
+ syncer?: GitGraphSyncer;
115
+ config?: LocationState['gitSyncConfig'];
116
+ }>;
117
+ /**
118
+ * Rebuild a location's git syncer in place from its current on-disk config.
119
+ * Tears down the previous syncer's auto-sync timer first. Used by the
120
+ * multi-location `sync.reload` IPC method to hot-swap a worktree's sync config.
121
+ * Does not auto-pull (mirrors single-location sync.reload).
122
+ */
123
+ export declare function reloadLocationGitSyncer(state: LocationState): Promise<void>;
76
124
  /**
77
125
  * Create a full LocationState for a location.
78
126
  * Creates store, flush manager, and watcher.
79
127
  */
80
- export declare function createLocationState(opentasksPath: string, hash: string, primary?: boolean, skillTrackerRegistry?: SkillTrackerRegistry): Promise<LocationState>;
128
+ /**
129
+ * Health-counter hooks so a location's reload-reconcile and reload failures are
130
+ * counted in the daemon's `health` surface (F10). Without these, a multi-location
131
+ * location's reload-triggered reconcile runs/errors are invisible (the single-
132
+ * location path counts them via the daemon's own onchange handler).
133
+ */
134
+ export interface LocationHealthHooks {
135
+ recordReconcileRun(): void;
136
+ recordReconcileError(): void;
137
+ recordWatcherError(): void;
138
+ }
139
+ export declare function createLocationState(opentasksPath: string, hash: string, primary?: boolean, skillTrackerRegistry?: SkillTrackerRegistry, healthHooks?: LocationHealthHooks): Promise<LocationState>;
81
140
  /**
82
141
  * Tear down a LocationState, releasing all resources.
83
142
  */
@@ -1 +1 @@
1
- {"version":3,"file":"location-state.d.ts","sourceRoot":"","sources":["../../src/daemon/location-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"location-state.d.ts","sourceRoot":"","sources":["../../src/daemon/location-state.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import * as path from 'node:path';
9
9
  import { existsSync } from 'node:fs';
10
+ import { readFile } from 'node:fs/promises';
10
11
  import { createGraphStore } from '../graph/store.js';
11
12
  import { createSQLitePersister } from '../storage/sqlite.js';
12
13
  import { JSONLPersister } from '../storage/jsonl.js';
@@ -47,13 +48,102 @@ export async function createStoreForLocation(opentasksPath) {
47
48
  return store;
48
49
  }
49
50
  // ============================================================================
50
- // LocationState Factory
51
+ // Git Syncer Builder (shared by startup + sync.reload)
51
52
  // ============================================================================
52
53
  /**
53
- * Create a full LocationState for a location.
54
- * Creates store, flush manager, and watcher.
54
+ * Build a git syncer for a location from its on-disk config.
55
+ *
56
+ * Shared by createLocationState (startup) and the multi-location sync.reload
57
+ * path. Returns the syncer + resolved config flags, or both undefined when git
58
+ * sync is disabled or construction fails (git sync is optional).
59
+ *
60
+ * @param opts.doInitialPull when true, honor `pullOnStartup` — pull then reload
61
+ * SQLite so the pulled peer data is queryable and the next flush (a full-file
62
+ * overwrite from SQLite) can't clobber it. The reload path passes false; a
63
+ * caller wanting a pull issues sync.pull (which is coordinated).
64
+ */
65
+ export async function buildLocationGitSyncer(opts) {
66
+ const { opentasksPath, store, doInitialPull } = opts;
67
+ try {
68
+ // Read sync.git straight from .opentasks/config.json. We intentionally do
69
+ // NOT route through loadConfig/loadConfigFile: its PartialConfigSchema only
70
+ // models storage/daemon/providers/logging and STRIPS the `sync` block, so a
71
+ // sync-enabled config comes back empty. The single-location sync.reload path
72
+ // reads raw JSON for exactly this reason (see lifecycle.ts).
73
+ let gitCfg;
74
+ try {
75
+ const raw = await readFile(path.join(opentasksPath, 'config.json'), 'utf-8');
76
+ const parsed = JSON.parse(raw);
77
+ gitCfg = parsed?.sync?.git;
78
+ }
79
+ catch {
80
+ // No config or unreadable — git sync disabled for this location.
81
+ }
82
+ if (!gitCfg?.enabled) {
83
+ return {};
84
+ }
85
+ const syncer = createGitGraphSyncer({
86
+ opentasksPath,
87
+ remote: gitCfg.remote,
88
+ autoCommit: gitCfg.autoCommit,
89
+ autoPush: gitCfg.autoPush,
90
+ pushDebounceMs: gitCfg.pushDebounceMs,
91
+ });
92
+ syncer.installMergeDriver();
93
+ if (doInitialPull && gitCfg.pullOnStartup) {
94
+ const pullResult = await syncer.pull();
95
+ // The startup pull rewrites graph.jsonl on disk before the watcher's
96
+ // reload handler is active, so SQLite still holds the pre-pull snapshot.
97
+ // Reload it now — otherwise queries return stale data and the next local
98
+ // flush (a full-file overwrite from SQLite) clobbers the pulled peer
99
+ // nodes back off disk.
100
+ if (pullResult.hasChanges) {
101
+ await store.reload();
102
+ }
103
+ }
104
+ if (gitCfg.autoCommit || gitCfg.autoPush) {
105
+ syncer.startAutoSync();
106
+ }
107
+ return {
108
+ syncer,
109
+ config: {
110
+ enabled: true,
111
+ remote: gitCfg.remote,
112
+ autoCommit: gitCfg.autoCommit ?? false,
113
+ autoPush: gitCfg.autoPush ?? false,
114
+ pullOnStartup: gitCfg.pullOnStartup ?? false,
115
+ },
116
+ };
117
+ }
118
+ catch {
119
+ // Git sync is optional — continue without it
120
+ return {};
121
+ }
122
+ }
123
+ /**
124
+ * Rebuild a location's git syncer in place from its current on-disk config.
125
+ * Tears down the previous syncer's auto-sync timer first. Used by the
126
+ * multi-location `sync.reload` IPC method to hot-swap a worktree's sync config.
127
+ * Does not auto-pull (mirrors single-location sync.reload).
55
128
  */
56
- export async function createLocationState(opentasksPath, hash, primary = false, skillTrackerRegistry) {
129
+ export async function reloadLocationGitSyncer(state) {
130
+ if (state.graphSyncer) {
131
+ try {
132
+ state.graphSyncer.stopAutoSync();
133
+ }
134
+ catch {
135
+ /* ignore */
136
+ }
137
+ }
138
+ const { syncer, config } = await buildLocationGitSyncer({
139
+ opentasksPath: state.opentasksPath,
140
+ store: state.store,
141
+ doInitialPull: false,
142
+ });
143
+ state.graphSyncer = syncer;
144
+ state.gitSyncConfig = config;
145
+ }
146
+ export async function createLocationState(opentasksPath, hash, primary = false, skillTrackerRegistry, healthHooks) {
57
147
  const store = await createStoreForLocation(opentasksPath);
58
148
  const watcher = createFileWatcher({ locationPath: opentasksPath });
59
149
  const flushManager = createDaemonFlushManager({ debounceMs: 5000, maxDelayMs: 30000 }, async (_dirtyNodeIds) => {
@@ -78,17 +168,21 @@ export async function createLocationState(opentasksPath, hash, primary = false,
78
168
  flushManager.pause();
79
169
  void store.reload().then(async () => {
80
170
  flushManager.resume();
81
- // Trigger onReload reconciliation if a provider store is attached
171
+ // Trigger onReload reconciliation if a provider store is attached.
172
+ // Count the run/error so the daemon `health` surface sees multi-location
173
+ // reload-reconciles (previously swallowed and invisible — F10 gap).
82
174
  const providerStore = stateRef?.providerStore;
83
175
  const onReload = stateRef?.reconciliationOnReload ?? 'async';
84
176
  if (providerStore && onReload !== 'none') {
85
- const run = providerStore.reconcileProviders().catch(() => null);
177
+ const run = providerStore.reconcileProviders().then(() => healthHooks?.recordReconcileRun(), () => healthHooks?.recordReconcileError());
86
178
  if (onReload === 'blocking') {
87
179
  await run;
88
180
  }
89
181
  }
90
182
  }).catch(() => {
183
+ // A reload failure is an otherwise-silent watcher-path error.
91
184
  flushManager.resume();
185
+ healthHooks?.recordWatcherError();
92
186
  });
93
187
  }
94
188
  });
@@ -134,31 +228,13 @@ export async function createLocationState(opentasksPath, hash, primary = false,
134
228
  // Materialization is optional — continue without it
135
229
  archiver = undefined;
136
230
  }
137
- // Initialize GitGraphSyncer (if configured)
138
- let graphSyncer;
139
- try {
140
- const syncConfig = (await loadConfig(opentasksPath)).sync;
141
- if (syncConfig?.git?.enabled) {
142
- graphSyncer = createGitGraphSyncer({
143
- opentasksPath,
144
- remote: syncConfig.git.remote,
145
- autoCommit: syncConfig.git.autoCommit,
146
- autoPush: syncConfig.git.autoPush,
147
- pushDebounceMs: syncConfig.git.pushDebounceMs,
148
- });
149
- graphSyncer.installMergeDriver();
150
- if (syncConfig.git.pullOnStartup) {
151
- await graphSyncer.pull();
152
- }
153
- if (syncConfig.git.autoCommit || syncConfig.git.autoPush) {
154
- graphSyncer.startAutoSync();
155
- }
156
- }
157
- }
158
- catch {
159
- // Git sync is optional — continue without it
160
- graphSyncer = undefined;
161
- }
231
+ // Initialize GitGraphSyncer (if configured). Built via the shared helper so
232
+ // the multi-location sync.reload path can rebuild it identically.
233
+ const { syncer: graphSyncer, config: gitSyncConfig } = await buildLocationGitSyncer({
234
+ opentasksPath,
235
+ store,
236
+ doInitialPull: true,
237
+ });
162
238
  // Initialize Sessionlog integration (watcher + auto-linker + transcript extractor)
163
239
  let sessionlogWatcher;
164
240
  let sessionlogLinker;
@@ -209,6 +285,7 @@ export async function createLocationState(opentasksPath, hash, primary = false,
209
285
  sessionlogLinker,
210
286
  archiver,
211
287
  graphSyncer,
288
+ gitSyncConfig,
212
289
  };
213
290
  // Allow the reload watcher closure to access providerStore
214
291
  stateRef = locationState;
@@ -223,6 +300,10 @@ export async function destroyLocationState(state) {
223
300
  clearInterval(state.reconciliationInterval);
224
301
  state.reconciliationInterval = undefined;
225
302
  }
303
+ if (state.claimSweepInterval) {
304
+ clearInterval(state.claimSweepInterval);
305
+ state.claimSweepInterval = undefined;
306
+ }
226
307
  if (state.providerReconciliationIntervals) {
227
308
  for (const handle of state.providerReconciliationIntervals.values()) {
228
309
  clearInterval(handle);
@@ -334,6 +415,8 @@ export function createSingleLocationResolver(state) {
334
415
  */
335
416
  export function createMultiLocationResolver(primaryHash) {
336
417
  const locations = new Map();
418
+ const addListeners = new Set();
419
+ const removeListeners = new Set();
337
420
  return {
338
421
  resolve(locationHash) {
339
422
  if (!locationHash) {
@@ -370,14 +453,36 @@ export function createMultiLocationResolver(primaryHash) {
370
453
  },
371
454
  add(state) {
372
455
  locations.set(state.hash, state);
456
+ for (const listener of addListeners) {
457
+ try {
458
+ listener(state);
459
+ }
460
+ catch {
461
+ /* a listener failure must not block the add */
462
+ }
463
+ }
373
464
  },
374
465
  async remove(hash) {
375
466
  const state = locations.get(hash);
376
467
  if (!state)
377
468
  return;
378
469
  locations.delete(hash);
470
+ for (const listener of removeListeners) {
471
+ try {
472
+ listener(hash);
473
+ }
474
+ catch {
475
+ /* ignore */
476
+ }
477
+ }
379
478
  await destroyLocationState(state);
380
479
  },
480
+ onLocationAdded(listener) {
481
+ addListeners.add(listener);
482
+ },
483
+ onLocationRemoved(listener) {
484
+ removeListeners.add(listener);
485
+ },
381
486
  };
382
487
  }
383
488
  //# sourceMappingURL=location-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"location-state.js","sourceRoot":"","sources":["../../src/daemon/location-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAA2B,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAA0B,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAA6B,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,8BAA8B,CAAC;AAgFzF,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,aAAqB;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EACrB,KAAuC,EACvC,KAAuC,EACvC,EAAE;QACF,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,gBAAgB,CAC5B,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAC3E,MAA4B,EAC5B,SAAS,EACT,SAAS,CACV,CAAC;IACF,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAEzB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,aAAqB,EACrB,IAAY,EACZ,UAAmB,KAAK,EACxB,oBAA2C;IAE3C,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG,wBAAwB,CAC3C,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EACvC,KAAK,EAAE,aAAa,EAAE,EAAE;QACtB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,iDAAiD;YACjD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2EAA2E;IAC3E,kFAAkF;IAClF,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/B,+DAA+D;YAC/D,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAClC,YAAY,CAAC,MAAM,EAAE,CAAC;gBAEtB,kEAAkE;gBAClE,MAAM,aAAa,GAAG,QAAQ,EAAE,aAAa,CAAC;gBAC9C,MAAM,QAAQ,GAAG,QAAQ,EAAE,sBAAsB,IAAI,OAAO,CAAC;gBAC7D,IAAI,aAAa,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACzC,MAAM,GAAG,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACjE,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;wBAC5B,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gBACZ,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,sDAAsD;IACtD,IAAI,QAA6C,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,cAAc,CAAC;gBAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO;gBAC/C,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI;gBACnC,aAAa;aACd,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,qBAAqB,CAAC;gBACrC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM;gBACzC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM;gBACzC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ;gBAC7C,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU;gBACjD,cAAc,EAAE,aAAa;aAC9B,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,4BAA4B,CAC/C,CAAC,MAAM,CAAC,eAAe,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAA2B,EAAE,EAAE,CAAC,CAAC;gBAChF,IAAI,EAAE,EAAE,CAAC,IAAc;gBACvB,IAAI,EAAE,EAAE,CAAC,IAAc;gBACvB,OAAO,EAAG,EAAE,CAAC,OAAmB,IAAI,IAAI;gBACxC,MAAM,EAAG,EAAE,CAAC,MAAkC,IAAI,EAAE;gBACpD,MAAM,EAAG,EAAE,CAAC,MAAmB,IAAI,EAAE;aACtC,CAAC,CAAC,CACJ,CAAC;YAEF,QAAQ,GAAG,6BAA6B,CAAC;gBACvC,QAAQ;gBACR,YAAY;gBACZ,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM;gBACrC,OAAO;gBACP,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;YAE5B,uDAAuD;YACvD,IAAI,MAAM,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;gBAClD,KAAK,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;QACpD,QAAQ,GAAG,SAAS,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAAuC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,IAAI,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;YAC7B,WAAW,GAAG,oBAAoB,CAAC;gBACjC,aAAa;gBACb,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM;gBAC7B,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU;gBACrC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ;gBACjC,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc;aAC9C,CAAC,CAAC;YACH,WAAW,CAAC,kBAAkB,EAAE,CAAC;YAEjC,IAAI,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACjC,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACzD,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;QAC7C,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,mFAAmF;IACnF,IAAI,iBAAgD,CAAC;IACrD,IAAI,gBAAkD,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC;QACjF,iBAAiB,GAAG,uBAAuB,CAAC;YAC1C,YAAY,EAAE,aAAa;YAC3B,cAAc,EAAE,gBAAgB,EAAE,cAAc;SACjD,CAAC,CAAC;QAEH,gBAAgB,GAAG,0BAA0B,CAAC;YAC5C,KAAK;YACL,YAAY;YACZ,QAAQ;YACR,oBAAoB;SACrB,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;YACpD,oBAAoB;SACrB,CAAC,CAAC;QAEH,iBAAiB,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/C,iFAAiF;YACjF,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBAAC,MAAM,CAAC;oBACP,wDAAwD;gBAC1D,CAAC;YACH,CAAC;YAED,8DAA8D;YAC9D,MAAM,gBAAiB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,iBAAiB,GAAG,SAAS,CAAC;QAC9B,gBAAgB,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,aAAa,GAAkB;QACnC,IAAI;QACJ,aAAa;QACb,KAAK;QACL,YAAY;QACZ,OAAO;QACP,OAAO;QACP,OAAO,EAAE,IAAI;QACb,iBAAiB;QACjB,gBAAgB;QAChB,QAAQ;QACR,WAAW;KACZ,CAAC;IAEF,2DAA2D;IAC3D,QAAQ,GAAG,aAAa,CAAC;IAEzB,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAoB;IAC7D,2CAA2C;IAC3C,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;QACjC,aAAa,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,KAAK,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,CAAC,+BAA+B,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,MAAM,EAAE,EAAE,CAAC;YACpE,aAAa,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,+BAA+B,GAAG,SAAS,CAAC;IACpD,CAAC;IAED,wDAAwD;IACxD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QACD,IAAI,CAAC;YACH,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,8CAA8C;IAC9C,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IACD,8CAA8C;IAC9C,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,2DAA2D;IAC3D,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACjC,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAoB;IAC/D,OAAO;QACL,OAAO,CAAC,aAAsB;YAC5B,sEAAsE;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,UAAU;YACR,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI;YACF,OAAO;gBACL;oBACE,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,KAAa;YACf,OAAO,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;QAC9B,CAAC;QAED,GAAG,CAAC,MAAqB;YACvB,MAAM,IAAI,WAAW,CAAC,sBAAsB,EAAE,8CAA8C,CAAC,CAAC;QAChG,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAa;YACxB,MAAM,IAAI,WAAW,CACnB,sBAAsB,EACtB,iDAAiD,CAClD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEnD,OAAO;QACL,OAAO,CAAC,YAAqB;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,WAAW,CAAC,oBAAoB,EAAE,uBAAuB,YAAY,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,UAAU;YACR,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,uCAAuC;gBACvC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,MAAM,IAAI,WAAW,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;gBACxE,CAAC;gBACD,OAAO,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC,CAAC;QACN,CAAC;QAED,GAAG,CAAC,IAAY;YACd,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,GAAG,CAAC,KAAoB;YACtB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAY;YACvB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"location-state.js","sourceRoot":"","sources":["../../src/daemon/location-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-files.d.ts","sourceRoot":"","sources":["../../../src/daemon/methods/context-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAc7D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AA2BD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAiGrF"}
1
+ {"version":3,"file":"context-files.d.ts","sourceRoot":"","sources":["../../../src/daemon/methods/context-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAc7D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AA4BD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAiGrF"}
@@ -12,15 +12,16 @@ import { createContextFileManager } from '../../context-files/context-files.js';
12
12
  /**
13
13
  * Derive repo root from the opentasks path.
14
14
  *
15
- * Handles both layouts:
15
+ * Handles the layouts:
16
16
  * - `.opentasks/` → parent is repo root
17
17
  * - `.git/opentasks/` → grandparent is repo root
18
- * - `.swarm/opentasks/` → grandparent is repo root
18
+ * - `.swarm/opentasks/` → grandparent is repo root (legacy swarmkit)
19
+ * - `.openswarm/opentasks/` → grandparent is repo root (swarmkit)
19
20
  */
20
21
  function deriveRepoRoot(opentasksPath) {
21
22
  const parent = path.dirname(opentasksPath);
22
23
  const parentBase = path.basename(parent);
23
- if (parentBase === '.git' || parentBase === '.swarm') {
24
+ if (parentBase === '.git' || parentBase === '.swarm' || parentBase === '.openswarm') {
24
25
  return path.dirname(parent);
25
26
  }
26
27
  return parent;
@@ -1 +1 @@
1
- {"version":3,"file":"context-files.js","sourceRoot":"","sources":["../../../src/daemon/methods/context-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAkBhF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,aAAqB;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,UAAU,2BAA2B,CAAC,OAAmC;IAC7E,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE7C,mDAAmD;IACnD,MAAM,CAAC,MAAM,CACX,qBAAqB,EACrB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,MAAwD,CAAC;QACxF,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,+DAA+D;IAC/D,MAAM,CAAC,MAAM,CAGX,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,CAAC,MAAM,CACX,yBAAyB,EACzB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;IAEF,4DAA4D;IAC5D,MAAM,CAAC,MAAM,CACX,mBAAmB,EACnB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,WAAW,GAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAExD,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,sEAAsE;IACtE,MAAM,CAAC,MAAM,CACX,8BAA8B,EAC9B,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"context-files.js","sourceRoot":"","sources":["../../../src/daemon/methods/context-files.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAkBhF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,aAAqB;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,MAAM,UAAU,2BAA2B,CAAC,OAAmC;IAC7E,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE7C,mDAAmD;IACnD,MAAM,CAAC,MAAM,CACX,qBAAqB,EACrB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,MAAwD,CAAC;QACxF,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,+DAA+D;IAC/D,MAAM,CAAC,MAAM,CAGX,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,CAAC,MAAM,CACX,yBAAyB,EACzB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;IAEF,4DAA4D;IAC5D,MAAM,CAAC,MAAM,CACX,mBAAmB,EACnB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,WAAW,GAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAExD,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,sEAAsE;IACtE,MAAM,CAAC,MAAM,CACX,8BAA8B,EAC9B,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Event Method Handlers (P3 M2)
3
+ *
4
+ * JSON-RPC methods for the replayable event stream. A subscriber that
5
+ * reconnects (or starts with a saved cursor) calls `events.since(cursor)` to
6
+ * backfill the change events it missed within the buffer window; `events.current`
7
+ * returns the head cursor so a fresh subscriber can establish a baseline without
8
+ * waiting for the first event.
9
+ */
10
+ import type { IPCServer } from '../ipc.js';
11
+ import type { EventManager } from '../events.js';
12
+ export interface EventMethodsOptions {
13
+ /** IPC server to register handlers on */
14
+ server: IPCServer;
15
+ /** The daemon's event manager (shared with the watch broadcaster) */
16
+ eventManager: EventManager;
17
+ }
18
+ /**
19
+ * Register event-stream method handlers on an IPC server.
20
+ */
21
+ export declare function registerEventMethods(options: EventMethodsOptions): void;
22
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/daemon/methods/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,cAAc,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,MAAM,EAAE,SAAS,CAAC;IAElB,qEAAqE;IACrE,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAkBvE"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Event Method Handlers (P3 M2)
3
+ *
4
+ * JSON-RPC methods for the replayable event stream. A subscriber that
5
+ * reconnects (or starts with a saved cursor) calls `events.since(cursor)` to
6
+ * backfill the change events it missed within the buffer window; `events.current`
7
+ * returns the head cursor so a fresh subscriber can establish a baseline without
8
+ * waiting for the first event.
9
+ */
10
+ /**
11
+ * Register event-stream method handlers on an IPC server.
12
+ */
13
+ export function registerEventMethods(options) {
14
+ const { server, eventManager } = options;
15
+ // events.since - replay events after a cursor, or signal resync
16
+ server.handle('events.since', async (params) => {
17
+ const cursor = params?.cursor;
18
+ // A missing/garbage cursor can't be served as a delta — force a resync so
19
+ // the caller re-queries rather than silently receiving nothing.
20
+ if (!cursor || typeof cursor.seq !== 'number' || typeof cursor.epoch !== 'string') {
21
+ return { epoch: eventManager.epoch, resync: true };
22
+ }
23
+ return eventManager.since(cursor);
24
+ });
25
+ // events.current - head cursor (epoch + latest seq)
26
+ server.handle('events.current', async () => {
27
+ return eventManager.current();
28
+ });
29
+ }
30
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/daemon/methods/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA4B;IAC/D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEzC,gEAAgE;IAChE,MAAM,CAAC,MAAM,CAAuC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;QAC9B,0EAA0E;QAC1E,gEAAgE;QAChE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClF,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,MAAM,CAAC,MAAM,CAAyB,gBAAgB,EAAE,KAAK,IAAI,EAAE;QACjE,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import type { IPCServer } from '../ipc.js';
12
12
  import type { LocationResolver } from '../location-state.js';
13
+ import type { IdempotencyStore } from '../idempotency.js';
13
14
  /**
14
15
  * Options for registering graph methods
15
16
  */
@@ -18,6 +19,12 @@ export interface GraphMethodsOptions {
18
19
  server: IPCServer;
19
20
  /** Location resolver for routing to correct store */
20
21
  locationResolver: LocationResolver;
22
+ /**
23
+ * Optional idempotency store (P3 M3 / F9). When present, a `graph.create`
24
+ * carrying an `idempotency_key` is deduped within the store's TTL window so a
25
+ * retried create returns the original node instead of a duplicate.
26
+ */
27
+ idempotencyStore?: IdempotencyStore;
21
28
  }
22
29
  /**
23
30
  * Register graph method handlers on an IPC server
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/daemon/methods/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAe7D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,MAAM,EAAE,SAAS,CAAC;IAElB,qDAAqD;IACrD,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAqDD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAqLvE"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/daemon/methods/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAe1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,MAAM,EAAE,SAAS,CAAC;IAElB,qDAAqD;IACrD,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AA0DD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CA6LvE"}
@@ -15,7 +15,7 @@
15
15
  * Register graph method handlers on an IPC server
16
16
  */
17
17
  export function registerGraphMethods(options) {
18
- const { server, locationResolver } = options;
18
+ const { server, locationResolver, idempotencyStore } = options;
19
19
  // graph.query - Query nodes
20
20
  server.handle('graph.query', async (params) => {
21
21
  const { type, filter = {}, limit, offset, location } = params || {};
@@ -49,22 +49,32 @@ export function registerGraphMethods(options) {
49
49
  if (!params) {
50
50
  throw new Error('Missing required parameters');
51
51
  }
52
- const { location, scheme, ...createParams } = params;
52
+ const { location, scheme, idempotency_key, ...createParams } = params;
53
53
  const state = locationResolver.resolve(location);
54
- // Use provider-aware create when available
55
- if (state.providerStore) {
56
- const result = await state.providerStore.providerCreate(createParams, { scheme });
57
- // Mark dirty and schedule flush
58
- state.flushManager.markDirty(result.node.id);
54
+ // Create a node (provider-aware when available), mark dirty + schedule flush.
55
+ const doCreate = async () => {
56
+ if (state.providerStore) {
57
+ const result = await state.providerStore.providerCreate(createParams, { scheme });
58
+ state.flushManager.markDirty(result.node.id);
59
+ state.flushManager.schedule();
60
+ return result.node;
61
+ }
62
+ const node = await state.store.createNode(createParams);
63
+ state.flushManager.markDirty(node.id);
59
64
  state.flushManager.schedule();
60
- return result.node;
65
+ return node;
66
+ };
67
+ // Idempotent retry (F9): dedupe BOTH sequential retries (TTL window) and
68
+ // concurrent in-flight retries with the same key. `run` reserves the key
69
+ // before the create, closing the get→create race; if the mapped node was
70
+ // deleted since (or a concurrent creator failed), it recreates.
71
+ if (idempotency_key && idempotencyStore) {
72
+ const fetchNode = (id) => (state.providerStore
73
+ ? state.providerStore.providerGet(id)
74
+ : state.store.getNode(id));
75
+ return idempotencyStore.run(idempotency_key, doCreate, fetchNode);
61
76
  }
62
- // Fallback: direct store create
63
- const node = await state.store.createNode(createParams);
64
- // Mark dirty and schedule flush
65
- state.flushManager.markDirty(node.id);
66
- state.flushManager.schedule();
67
- return node;
77
+ return doCreate();
68
78
  });
69
79
  // graph.update - Update node (with provider routing for external nodes)
70
80
  server.handle('graph.update', async (params) => {
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/daemon/methods/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4EH,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA4B;IAC/D,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAE7C,4BAA4B;IAC5B,MAAM,CAAC,MAAM,CAAyB,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACpE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,wCAAwC;QACxC,MAAM,WAAW,GAAe;YAC9B,GAAG,MAAM;YACT,KAAK;YACL,MAAM;SACP,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,CAAC,MAAM,CAAqB,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9D,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,wCAAwC;QACxC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,CAAC,MAAM,CAAwB,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;QACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,2CAA2C;QAC3C,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAElF,gCAAgC;YAChC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7C,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAE9B,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,gCAAgC;QAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAExD,gCAAgC;QAChC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,MAAM,CAAC,MAAM,CAAwB,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACpE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;QAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,2CAA2C;QAC3C,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAEnE,gCAAgC;YAChC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAE9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gCAAgC;QAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEvD,gCAAgC;QAChC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,MAAM,CAAC,MAAM,CAAqB,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACjE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,2CAA2C;QAC3C,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAEtD,gCAAgC;YAChC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAE1C,gCAAgC;QAChC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,CAAC,MAAM,CAA4B,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;QAC3C,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;SAC9B,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjD,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,CAAC,MAAM,CAAyB,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACzE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,mDAAmD;QACnD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3C,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEjC,2CAA2C;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,CAAC,MAAM,CAA8C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/daemon/methods/graph.ts"],"names":[],"mappings":"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"}