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.
- package/LICENSE +21 -0
- package/README.md +218 -49
- package/dist/cli.d.ts +20 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +451 -15
- package/dist/cli.js.map +1 -1
- package/dist/client/client.d.ts +54 -0
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +148 -4
- package/dist/client/client.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/core/discover.d.ts.map +1 -1
- package/dist/core/discover.js +7 -2
- package/dist/core/discover.js.map +1 -1
- package/dist/core/hash.d.ts.map +1 -1
- package/dist/core/hash.js +7 -0
- package/dist/core/hash.js.map +1 -1
- package/dist/core/id.d.ts +1 -1
- package/dist/core/id.d.ts.map +1 -1
- package/dist/core/id.js +2 -0
- package/dist/core/id.js.map +1 -1
- package/dist/core/worktree.js +4 -4
- package/dist/core/worktree.js.map +1 -1
- package/dist/daemon/events.d.ts +82 -0
- package/dist/daemon/events.d.ts.map +1 -0
- package/dist/daemon/events.js +71 -0
- package/dist/daemon/events.js.map +1 -0
- package/dist/daemon/flush.d.ts.map +1 -1
- package/dist/daemon/flush.js +12 -2
- package/dist/daemon/flush.js.map +1 -1
- package/dist/daemon/health-counters.d.ts +38 -0
- package/dist/daemon/health-counters.d.ts.map +1 -0
- package/dist/daemon/health-counters.js +42 -0
- package/dist/daemon/health-counters.js.map +1 -0
- package/dist/daemon/idempotency.d.ts +50 -0
- package/dist/daemon/idempotency.d.ts.map +1 -0
- package/dist/daemon/idempotency.js +104 -0
- package/dist/daemon/idempotency.js.map +1 -0
- package/dist/daemon/index.d.ts +2 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +1 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/ipc.d.ts +32 -2
- package/dist/daemon/ipc.d.ts.map +1 -1
- package/dist/daemon/ipc.js +54 -3
- package/dist/daemon/ipc.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +302 -8
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/location-state.d.ts +60 -1
- package/dist/daemon/location-state.d.ts.map +1 -1
- package/dist/daemon/location-state.js +136 -31
- package/dist/daemon/location-state.js.map +1 -1
- package/dist/daemon/methods/context-files.d.ts.map +1 -1
- package/dist/daemon/methods/context-files.js +4 -3
- package/dist/daemon/methods/context-files.js.map +1 -1
- package/dist/daemon/methods/events.d.ts +22 -0
- package/dist/daemon/methods/events.d.ts.map +1 -0
- package/dist/daemon/methods/events.js +30 -0
- package/dist/daemon/methods/events.js.map +1 -0
- package/dist/daemon/methods/graph.d.ts +7 -0
- package/dist/daemon/methods/graph.d.ts.map +1 -1
- package/dist/daemon/methods/graph.js +24 -14
- package/dist/daemon/methods/graph.js.map +1 -1
- package/dist/daemon/methods/lifecycle.d.ts +16 -0
- package/dist/daemon/methods/lifecycle.d.ts.map +1 -1
- package/dist/daemon/methods/lifecycle.js +3 -1
- package/dist/daemon/methods/lifecycle.js.map +1 -1
- package/dist/daemon/methods/location.js.map +1 -1
- package/dist/daemon/methods/sync.d.ts +113 -0
- package/dist/daemon/methods/sync.d.ts.map +1 -0
- package/dist/daemon/methods/sync.js +158 -0
- package/dist/daemon/methods/sync.js.map +1 -0
- package/dist/daemon/methods/tools.d.ts.map +1 -1
- package/dist/daemon/methods/tools.js +42 -8
- package/dist/daemon/methods/tools.js.map +1 -1
- package/dist/daemon/methods/watch.d.ts +24 -0
- package/dist/daemon/methods/watch.d.ts.map +1 -1
- package/dist/daemon/methods/watch.js +178 -88
- package/dist/daemon/methods/watch.js.map +1 -1
- package/dist/daemon/sessionlog-watcher.d.ts.map +1 -1
- package/dist/daemon/sessionlog-watcher.js +4 -0
- package/dist/daemon/sessionlog-watcher.js.map +1 -1
- package/dist/graph/EdgeTypeRegistry.d.ts.map +1 -1
- package/dist/graph/EdgeTypeRegistry.js +32 -0
- package/dist/graph/EdgeTypeRegistry.js.map +1 -1
- package/dist/graph/FederatedGraph.d.ts.map +1 -1
- package/dist/graph/GraphologyAdapter.d.ts.map +1 -1
- package/dist/graph/GraphologyAdapter.js.map +1 -1
- package/dist/graph/HydratingFederatedGraph.d.ts.map +1 -1
- package/dist/graph/HydratingFederatedGraph.js +1 -1
- package/dist/graph/HydratingFederatedGraph.js.map +1 -1
- package/dist/graph/attempts.d.ts +50 -0
- package/dist/graph/attempts.d.ts.map +1 -0
- package/dist/graph/attempts.js +51 -0
- package/dist/graph/attempts.js.map +1 -0
- package/dist/graph/coordination.d.ts +4 -2
- package/dist/graph/coordination.d.ts.map +1 -1
- package/dist/graph/coordination.js +77 -85
- package/dist/graph/coordination.js.map +1 -1
- package/dist/graph/expansion.d.ts.map +1 -1
- package/dist/graph/expansion.js +1 -1
- package/dist/graph/expansion.js.map +1 -1
- package/dist/graph/git-graph-syncer.d.ts +24 -0
- package/dist/graph/git-graph-syncer.d.ts.map +1 -1
- package/dist/graph/git-graph-syncer.js +111 -26
- package/dist/graph/git-graph-syncer.js.map +1 -1
- package/dist/graph/provider-store.d.ts +12 -1
- package/dist/graph/provider-store.d.ts.map +1 -1
- package/dist/graph/provider-store.js +35 -8
- package/dist/graph/provider-store.js.map +1 -1
- package/dist/graph/query.d.ts.map +1 -1
- package/dist/graph/query.js +18 -2
- package/dist/graph/query.js.map +1 -1
- package/dist/graph/store.d.ts +18 -2
- package/dist/graph/store.d.ts.map +1 -1
- package/dist/graph/store.js +43 -0
- package/dist/graph/store.js.map +1 -1
- package/dist/graph/sync.js +1 -1
- package/dist/graph/sync.js.map +1 -1
- package/dist/graph/types.d.ts +9 -1
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/graph/types.js.map +1 -1
- package/dist/graph/validation.d.ts.map +1 -1
- package/dist/graph/validation.js +20 -2
- package/dist/graph/validation.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/materialization/archiver.d.ts.map +1 -1
- package/dist/materialization/archiver.js.map +1 -1
- package/dist/materialization/snapshot.d.ts.map +1 -1
- package/dist/materialization/snapshot.js +1 -1
- package/dist/materialization/snapshot.js.map +1 -1
- package/dist/materialization/types.d.ts +7 -5
- package/dist/materialization/types.d.ts.map +1 -1
- package/dist/materialization/types.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +308 -11
- package/dist/mcp/server.js.map +1 -1
- package/dist/providers/beads.d.ts.map +1 -1
- package/dist/providers/beads.js +2 -0
- package/dist/providers/beads.js.map +1 -1
- package/dist/providers/claude-tasks.d.ts.map +1 -1
- package/dist/providers/claude-tasks.js.map +1 -1
- package/dist/providers/global.js +1 -1
- package/dist/providers/global.js.map +1 -1
- package/dist/providers/location.d.ts.map +1 -1
- package/dist/providers/location.js.map +1 -1
- package/dist/providers/map-client-factory.d.ts.map +1 -1
- package/dist/providers/map-client-factory.js +1 -1
- package/dist/providers/map-client-factory.js.map +1 -1
- package/dist/providers/map-connector.js +1 -1
- package/dist/providers/map-connector.js.map +1 -1
- package/dist/providers/map-event-bridge.d.ts.map +1 -1
- package/dist/providers/map-event-bridge.js +1 -0
- package/dist/providers/map-event-bridge.js.map +1 -1
- package/dist/providers/map.d.ts.map +1 -1
- package/dist/providers/map.js +5 -2
- package/dist/providers/map.js.map +1 -1
- package/dist/providers/native.d.ts.map +1 -1
- package/dist/providers/native.js +21 -8
- package/dist/providers/native.js.map +1 -1
- package/dist/providers/registry.js +1 -1
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/sudocode.d.ts.map +1 -1
- package/dist/providers/sudocode.js +5 -11
- package/dist/providers/sudocode.js.map +1 -1
- package/dist/providers/traits/Reconcilable.d.ts.map +1 -1
- package/dist/providers/traits/TaskManageable.d.ts +15 -1
- package/dist/providers/traits/TaskManageable.d.ts.map +1 -1
- package/dist/providers/traits/TaskManageable.js +26 -0
- package/dist/providers/traits/TaskManageable.js.map +1 -1
- package/dist/providers/traits/Watchable.d.ts +6 -0
- package/dist/providers/traits/Watchable.d.ts.map +1 -1
- package/dist/providers/traits/Watchable.js.map +1 -1
- package/dist/providers/types.d.ts +1 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/schema/edges.d.ts +5 -1
- package/dist/schema/edges.d.ts.map +1 -1
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/nodes.d.ts +55 -2
- package/dist/schema/nodes.d.ts.map +1 -1
- package/dist/schema/storage.d.ts +2 -0
- package/dist/schema/storage.d.ts.map +1 -1
- package/dist/schema/validation.d.ts +6 -2
- package/dist/schema/validation.d.ts.map +1 -1
- package/dist/schema/validation.js +18 -1
- package/dist/schema/validation.js.map +1 -1
- package/dist/sessionlog/agent/registry.js.map +1 -1
- package/dist/sessionlog/agent/session-types.d.ts.map +1 -1
- package/dist/sessionlog/agent/types.d.ts.map +1 -1
- package/dist/sessionlog/commands/clean.js +1 -1
- package/dist/sessionlog/commands/clean.js.map +1 -1
- package/dist/sessionlog/commands/disable.d.ts.map +1 -1
- package/dist/sessionlog/commands/disable.js.map +1 -1
- package/dist/sessionlog/commands/doctor.js +1 -1
- package/dist/sessionlog/commands/doctor.js.map +1 -1
- package/dist/sessionlog/commands/enable.js +1 -1
- package/dist/sessionlog/commands/enable.js.map +1 -1
- package/dist/sessionlog/commands/resume.js +1 -1
- package/dist/sessionlog/commands/resume.js.map +1 -1
- package/dist/sessionlog/commands/rewind.d.ts.map +1 -1
- package/dist/sessionlog/commands/rewind.js +1 -1
- package/dist/sessionlog/commands/rewind.js.map +1 -1
- package/dist/sessionlog/commands/status.d.ts.map +1 -1
- package/dist/sessionlog/commands/status.js.map +1 -1
- package/dist/sessionlog/hooks/lifecycle.d.ts.map +1 -1
- package/dist/sessionlog/hooks/lifecycle.js +3 -3
- package/dist/sessionlog/hooks/lifecycle.js.map +1 -1
- package/dist/sessionlog/security/redaction.js +1 -1
- package/dist/sessionlog/security/redaction.js.map +1 -1
- package/dist/sessionlog/store/checkpoint-store.d.ts.map +1 -1
- package/dist/sessionlog/store/checkpoint-store.js +2 -2
- package/dist/sessionlog/store/checkpoint-store.js.map +1 -1
- package/dist/sessionlog/store/native-store.d.ts.map +1 -1
- package/dist/sessionlog/store/native-store.js.map +1 -1
- package/dist/sessionlog/store/session-store.d.ts.map +1 -1
- package/dist/sessionlog/store/session-store.js +1 -1
- package/dist/sessionlog/store/session-store.js.map +1 -1
- package/dist/sessionlog/strategy/attribution.js +2 -2
- package/dist/sessionlog/strategy/attribution.js.map +1 -1
- package/dist/sessionlog/strategy/common.d.ts +1 -1
- package/dist/sessionlog/strategy/common.d.ts.map +1 -1
- package/dist/sessionlog/strategy/common.js +3 -3
- package/dist/sessionlog/strategy/common.js.map +1 -1
- package/dist/sessionlog/strategy/content-overlap.d.ts.map +1 -1
- package/dist/sessionlog/strategy/content-overlap.js +1 -1
- package/dist/sessionlog/strategy/content-overlap.js.map +1 -1
- package/dist/sessionlog/strategy/manual-commit.d.ts.map +1 -1
- package/dist/sessionlog/strategy/manual-commit.js +6 -16
- package/dist/sessionlog/strategy/manual-commit.js.map +1 -1
- package/dist/sessionlog/utils/preview-rewind.d.ts.map +1 -1
- package/dist/sessionlog/utils/preview-rewind.js +1 -1
- package/dist/sessionlog/utils/preview-rewind.js.map +1 -1
- package/dist/sessionlog/utils/trailers.d.ts.map +1 -1
- package/dist/sessionlog/utils/trailers.js +0 -1
- package/dist/sessionlog/utils/trailers.js.map +1 -1
- package/dist/storage/interface.d.ts +64 -0
- package/dist/storage/interface.d.ts.map +1 -1
- package/dist/storage/interface.js.map +1 -1
- package/dist/storage/jsonl.js +2 -2
- package/dist/storage/jsonl.js.map +1 -1
- package/dist/storage/sqlite-schema.d.ts +8 -2
- package/dist/storage/sqlite-schema.d.ts.map +1 -1
- package/dist/storage/sqlite-schema.js +10 -1
- package/dist/storage/sqlite-schema.js.map +1 -1
- package/dist/storage/sqlite.d.ts +16 -1
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +134 -2
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/tools/link.js +1 -1
- package/dist/tools/link.js.map +1 -1
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +8 -29
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/task.d.ts.map +1 -1
- package/dist/tools/task.js +115 -5
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/types.d.ts +84 -3
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +44 -0
- package/dist/version.js.map +1 -0
- package/package.json +32 -7
- package/skills/opentasks/SKILL.md +226 -0
- package/skills/opentasks/dependency-management.md +119 -0
- package/skills/opentasks/feedback-and-review.md +100 -0
- package/skills/opentasks/linking-external-data.md +103 -0
- 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
|
-
|
|
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":"AAAA;;;;;;GAMG;
|
|
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
|
-
//
|
|
51
|
+
// Git Syncer Builder (shared by startup + sync.reload)
|
|
51
52
|
// ============================================================================
|
|
52
53
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
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
|
|
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().
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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":"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"}
|
|
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;
|
|
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
|
|
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
|
|
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;
|
|
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
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/daemon/methods/graph.ts"],"names":[],"mappings":"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"}
|