@stoneforge/quarry 0.1.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 +13 -0
- package/README.md +160 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/quarry-api.d.ts +268 -0
- package/dist/api/quarry-api.d.ts.map +1 -0
- package/dist/api/quarry-api.js +3905 -0
- package/dist/api/quarry-api.js.map +1 -0
- package/dist/api/types.d.ts +1359 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +204 -0
- package/dist/api/types.js.map +1 -0
- package/dist/bin/sf.d.ts +3 -0
- package/dist/bin/sf.d.ts.map +1 -0
- package/dist/bin/sf.js +9 -0
- package/dist/bin/sf.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +11 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +465 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/alias.d.ts +8 -0
- package/dist/cli/commands/alias.d.ts.map +1 -0
- package/dist/cli/commands/alias.js +70 -0
- package/dist/cli/commands/alias.js.map +1 -0
- package/dist/cli/commands/channel.d.ts +13 -0
- package/dist/cli/commands/channel.d.ts.map +1 -0
- package/dist/cli/commands/channel.js +680 -0
- package/dist/cli/commands/channel.js.map +1 -0
- package/dist/cli/commands/completion.d.ts +8 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +87 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/config.d.ts +12 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +242 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/crud.d.ts +64 -0
- package/dist/cli/commands/crud.d.ts.map +1 -0
- package/dist/cli/commands/crud.js +805 -0
- package/dist/cli/commands/crud.js.map +1 -0
- package/dist/cli/commands/dep.d.ts +16 -0
- package/dist/cli/commands/dep.d.ts.map +1 -0
- package/dist/cli/commands/dep.js +499 -0
- package/dist/cli/commands/dep.js.map +1 -0
- package/dist/cli/commands/document.d.ts +12 -0
- package/dist/cli/commands/document.d.ts.map +1 -0
- package/dist/cli/commands/document.js +1039 -0
- package/dist/cli/commands/document.js.map +1 -0
- package/dist/cli/commands/embeddings.d.ts +12 -0
- package/dist/cli/commands/embeddings.d.ts.map +1 -0
- package/dist/cli/commands/embeddings.js +273 -0
- package/dist/cli/commands/embeddings.js.map +1 -0
- package/dist/cli/commands/entity.d.ts +16 -0
- package/dist/cli/commands/entity.d.ts.map +1 -0
- package/dist/cli/commands/entity.js +522 -0
- package/dist/cli/commands/entity.js.map +1 -0
- package/dist/cli/commands/gc.d.ts +10 -0
- package/dist/cli/commands/gc.d.ts.map +1 -0
- package/dist/cli/commands/gc.js +257 -0
- package/dist/cli/commands/gc.js.map +1 -0
- package/dist/cli/commands/help.d.ts +11 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +169 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/history.d.ts +9 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +160 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/identity.d.ts +18 -0
- package/dist/cli/commands/identity.d.ts.map +1 -0
- package/dist/cli/commands/identity.js +698 -0
- package/dist/cli/commands/identity.js.map +1 -0
- package/dist/cli/commands/inbox.d.ts +20 -0
- package/dist/cli/commands/inbox.d.ts.map +1 -0
- package/dist/cli/commands/inbox.js +493 -0
- package/dist/cli/commands/inbox.js.map +1 -0
- package/dist/cli/commands/init.d.ts +20 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +144 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +9 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +200 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/library.d.ts +12 -0
- package/dist/cli/commands/library.d.ts.map +1 -0
- package/dist/cli/commands/library.js +665 -0
- package/dist/cli/commands/library.js.map +1 -0
- package/dist/cli/commands/message.d.ts +11 -0
- package/dist/cli/commands/message.d.ts.map +1 -0
- package/dist/cli/commands/message.js +608 -0
- package/dist/cli/commands/message.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +17 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +698 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/playbook.d.ts +12 -0
- package/dist/cli/commands/playbook.d.ts.map +1 -0
- package/dist/cli/commands/playbook.js +730 -0
- package/dist/cli/commands/playbook.js.map +1 -0
- package/dist/cli/commands/reset.d.ts +12 -0
- package/dist/cli/commands/reset.d.ts.map +1 -0
- package/dist/cli/commands/reset.js +306 -0
- package/dist/cli/commands/reset.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +11 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +106 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +8 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +82 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +14 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +370 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/task.d.ts +25 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +1153 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/team.d.ts +13 -0
- package/dist/cli/commands/team.d.ts.map +1 -0
- package/dist/cli/commands/team.js +471 -0
- package/dist/cli/commands/team.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +16 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +753 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/completion.d.ts +28 -0
- package/dist/cli/completion.d.ts.map +1 -0
- package/dist/cli/completion.js +295 -0
- package/dist/cli/completion.js.map +1 -0
- package/dist/cli/db.d.ts +38 -0
- package/dist/cli/db.d.ts.map +1 -0
- package/dist/cli/db.js +90 -0
- package/dist/cli/db.js.map +1 -0
- package/dist/cli/formatter.d.ts +87 -0
- package/dist/cli/formatter.d.ts.map +1 -0
- package/dist/cli/formatter.js +464 -0
- package/dist/cli/formatter.js.map +1 -0
- package/dist/cli/index.d.ts +33 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +38 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parser.d.ts +45 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +256 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/plugin-loader.d.ts +39 -0
- package/dist/cli/plugin-loader.d.ts.map +1 -0
- package/dist/cli/plugin-loader.js +165 -0
- package/dist/cli/plugin-loader.js.map +1 -0
- package/dist/cli/plugin-registry.d.ts +50 -0
- package/dist/cli/plugin-registry.d.ts.map +1 -0
- package/dist/cli/plugin-registry.js +206 -0
- package/dist/cli/plugin-registry.js.map +1 -0
- package/dist/cli/plugin-types.d.ts +106 -0
- package/dist/cli/plugin-types.d.ts.map +1 -0
- package/dist/cli/plugin-types.js +103 -0
- package/dist/cli/plugin-types.js.map +1 -0
- package/dist/cli/runner.d.ts +35 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +340 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/suggest.d.ts +15 -0
- package/dist/cli/suggest.d.ts.map +1 -0
- package/dist/cli/suggest.js +49 -0
- package/dist/cli/suggest.js.map +1 -0
- package/dist/cli/types.d.ts +138 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +63 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/config/config.d.ts +86 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +348 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/defaults.d.ts +66 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +114 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/duration.d.ts +75 -0
- package/dist/config/duration.d.ts.map +1 -0
- package/dist/config/duration.js +190 -0
- package/dist/config/duration.js.map +1 -0
- package/dist/config/env.d.ts +67 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +207 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/file.d.ts +97 -0
- package/dist/config/file.d.ts.map +1 -0
- package/dist/config/file.js +365 -0
- package/dist/config/file.js.map +1 -0
- package/dist/config/index.d.ts +35 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +41 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge.d.ts +53 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +226 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/types.d.ts +257 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +72 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +55 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +251 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/http/index.d.ts +8 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +12 -0
- package/dist/http/index.js.map +1 -0
- package/dist/http/sync-handlers.d.ts +162 -0
- package/dist/http/sync-handlers.d.ts.map +1 -0
- package/dist/http/sync-handlers.js +271 -0
- package/dist/http/sync-handlers.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +34 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +3329 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/static.d.ts +18 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +71 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/ws/broadcaster.d.ts +8 -0
- package/dist/server/ws/broadcaster.d.ts.map +1 -0
- package/dist/server/ws/broadcaster.js +7 -0
- package/dist/server/ws/broadcaster.js.map +1 -0
- package/dist/server/ws/handler.d.ts +55 -0
- package/dist/server/ws/handler.d.ts.map +1 -0
- package/dist/server/ws/handler.js +160 -0
- package/dist/server/ws/handler.js.map +1 -0
- package/dist/services/blocked-cache.d.ts +297 -0
- package/dist/services/blocked-cache.d.ts.map +1 -0
- package/dist/services/blocked-cache.js +755 -0
- package/dist/services/blocked-cache.js.map +1 -0
- package/dist/services/dependency.d.ts +205 -0
- package/dist/services/dependency.d.ts.map +1 -0
- package/dist/services/dependency.js +566 -0
- package/dist/services/dependency.js.map +1 -0
- package/dist/services/embeddings/fusion.d.ts +33 -0
- package/dist/services/embeddings/fusion.d.ts.map +1 -0
- package/dist/services/embeddings/fusion.js +34 -0
- package/dist/services/embeddings/fusion.js.map +1 -0
- package/dist/services/embeddings/index.d.ts +12 -0
- package/dist/services/embeddings/index.d.ts.map +1 -0
- package/dist/services/embeddings/index.js +10 -0
- package/dist/services/embeddings/index.js.map +1 -0
- package/dist/services/embeddings/local-provider.d.ts +31 -0
- package/dist/services/embeddings/local-provider.d.ts.map +1 -0
- package/dist/services/embeddings/local-provider.js +80 -0
- package/dist/services/embeddings/local-provider.js.map +1 -0
- package/dist/services/embeddings/service.d.ts +76 -0
- package/dist/services/embeddings/service.d.ts.map +1 -0
- package/dist/services/embeddings/service.js +153 -0
- package/dist/services/embeddings/service.js.map +1 -0
- package/dist/services/embeddings/types.d.ts +70 -0
- package/dist/services/embeddings/types.d.ts.map +1 -0
- package/dist/services/embeddings/types.js +8 -0
- package/dist/services/embeddings/types.js.map +1 -0
- package/dist/services/id-length-cache.d.ts +156 -0
- package/dist/services/id-length-cache.d.ts.map +1 -0
- package/dist/services/id-length-cache.js +197 -0
- package/dist/services/id-length-cache.js.map +1 -0
- package/dist/services/inbox.d.ts +147 -0
- package/dist/services/inbox.d.ts.map +1 -0
- package/dist/services/inbox.js +428 -0
- package/dist/services/inbox.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +10 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/priority-service.d.ts +145 -0
- package/dist/services/priority-service.d.ts.map +1 -0
- package/dist/services/priority-service.js +272 -0
- package/dist/services/priority-service.js.map +1 -0
- package/dist/services/search-utils.d.ts +47 -0
- package/dist/services/search-utils.d.ts.map +1 -0
- package/dist/services/search-utils.js +83 -0
- package/dist/services/search-utils.js.map +1 -0
- package/dist/sync/hash.d.ts +48 -0
- package/dist/sync/hash.d.ts.map +1 -0
- package/dist/sync/hash.js +136 -0
- package/dist/sync/hash.js.map +1 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +16 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/merge.d.ts +80 -0
- package/dist/sync/merge.d.ts.map +1 -0
- package/dist/sync/merge.js +310 -0
- package/dist/sync/merge.js.map +1 -0
- package/dist/sync/serialization.d.ts +132 -0
- package/dist/sync/serialization.d.ts.map +1 -0
- package/dist/sync/serialization.js +306 -0
- package/dist/sync/serialization.js.map +1 -0
- package/dist/sync/service.d.ts +102 -0
- package/dist/sync/service.d.ts.map +1 -0
- package/dist/sync/service.js +493 -0
- package/dist/sync/service.js.map +1 -0
- package/dist/sync/types.d.ts +275 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +76 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/systems/identity.d.ts +479 -0
- package/dist/systems/identity.d.ts.map +1 -0
- package/dist/systems/identity.js +817 -0
- package/dist/systems/identity.js.map +1 -0
- package/dist/systems/index.d.ts +8 -0
- package/dist/systems/index.d.ts.map +1 -0
- package/dist/systems/index.js +29 -0
- package/dist/systems/index.js.map +1 -0
- package/package.json +121 -0
- package/web/assets/charts-vendor-D1YcbGux.js +55 -0
- package/web/assets/dnd-vendor-DmxE-_ZH.js +5 -0
- package/web/assets/editor-vendor-BxraAWts.js +279 -0
- package/web/assets/index-B77vv208.js +341 -0
- package/web/assets/index-CF_XnVLh.css +1 -0
- package/web/assets/router-vendor-BCKpRBrB.js +41 -0
- package/web/assets/ui-vendor-DUahGnbT.js +45 -0
- package/web/assets/utils-vendor-CfYKiENT.js +813 -0
- package/web/favicon.ico +0 -0
- package/web/index.html +23 -0
- package/web/logo.png +0 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync System Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the JSONL-based synchronization system.
|
|
5
|
+
* Enables bidirectional sync between SQLite and git-friendly JSONL format.
|
|
6
|
+
*/
|
|
7
|
+
import type { Element, ElementId, Timestamp, DependencyType } from '@stoneforge/core';
|
|
8
|
+
/**
|
|
9
|
+
* Serialized element for JSONL export
|
|
10
|
+
* All element fields inline with ISO 8601 timestamps
|
|
11
|
+
*/
|
|
12
|
+
export interface SerializedElement {
|
|
13
|
+
/** Element ID */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Element type discriminator */
|
|
16
|
+
type: string;
|
|
17
|
+
/** ISO 8601 creation timestamp */
|
|
18
|
+
createdAt: string;
|
|
19
|
+
/** ISO 8601 update timestamp */
|
|
20
|
+
updatedAt: string;
|
|
21
|
+
/** Creator entity ID */
|
|
22
|
+
createdBy: string;
|
|
23
|
+
/** Tags array */
|
|
24
|
+
tags: string[];
|
|
25
|
+
/** Metadata object */
|
|
26
|
+
metadata: Record<string, unknown>;
|
|
27
|
+
/** Content hash for conflict detection */
|
|
28
|
+
contentHash?: string;
|
|
29
|
+
/** Document category (for document elements) */
|
|
30
|
+
category?: string;
|
|
31
|
+
/** Document status (for document elements) */
|
|
32
|
+
status?: string;
|
|
33
|
+
/** Document content type (for document elements) */
|
|
34
|
+
contentType?: string;
|
|
35
|
+
/** Document content (for document elements) */
|
|
36
|
+
content?: string;
|
|
37
|
+
/** Document version (for document elements) */
|
|
38
|
+
version?: number;
|
|
39
|
+
/** Type-specific fields */
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Serialized dependency for JSONL export
|
|
44
|
+
*/
|
|
45
|
+
export interface SerializedDependency {
|
|
46
|
+
/** Blocked element ID */
|
|
47
|
+
blockedId: string;
|
|
48
|
+
/** Blocker element ID */
|
|
49
|
+
blockerId: string;
|
|
50
|
+
/** Dependency type */
|
|
51
|
+
type: string;
|
|
52
|
+
/** ISO 8601 creation timestamp */
|
|
53
|
+
createdAt: string;
|
|
54
|
+
/** Creator entity ID */
|
|
55
|
+
createdBy: string;
|
|
56
|
+
/** Optional metadata */
|
|
57
|
+
metadata?: Record<string, unknown>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Fields excluded from content hash computation
|
|
61
|
+
* These fields are identity/attribution rather than content
|
|
62
|
+
*/
|
|
63
|
+
export declare const HASH_EXCLUDED_FIELDS: readonly ["id", "createdAt", "updatedAt", "createdBy", "contentHash"];
|
|
64
|
+
/**
|
|
65
|
+
* Content hash result
|
|
66
|
+
*/
|
|
67
|
+
export interface ContentHashResult {
|
|
68
|
+
/** SHA256 hash of content fields, hex encoded */
|
|
69
|
+
hash: string;
|
|
70
|
+
/** Fields included in hash computation */
|
|
71
|
+
fields: string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Merge resolution result
|
|
75
|
+
*/
|
|
76
|
+
export declare const MergeResolution: {
|
|
77
|
+
/** Local version kept */
|
|
78
|
+
readonly LOCAL_WINS: "local_wins";
|
|
79
|
+
/** Remote version applied */
|
|
80
|
+
readonly REMOTE_WINS: "remote_wins";
|
|
81
|
+
/** Content was identical */
|
|
82
|
+
readonly IDENTICAL: "identical";
|
|
83
|
+
/** Tags merged from both */
|
|
84
|
+
readonly TAGS_MERGED: "tags_merged";
|
|
85
|
+
};
|
|
86
|
+
export type MergeResolution = (typeof MergeResolution)[keyof typeof MergeResolution];
|
|
87
|
+
/**
|
|
88
|
+
* Conflict record for import results
|
|
89
|
+
*/
|
|
90
|
+
export interface ConflictRecord {
|
|
91
|
+
/** Conflicting element ID */
|
|
92
|
+
elementId: ElementId;
|
|
93
|
+
/** Local content hash */
|
|
94
|
+
localHash: string;
|
|
95
|
+
/** Remote content hash */
|
|
96
|
+
remoteHash: string;
|
|
97
|
+
/** How conflict was resolved */
|
|
98
|
+
resolution: MergeResolution;
|
|
99
|
+
/** Local updatedAt */
|
|
100
|
+
localUpdatedAt: Timestamp;
|
|
101
|
+
/** Remote updatedAt */
|
|
102
|
+
remoteUpdatedAt: Timestamp;
|
|
103
|
+
/** When resolved */
|
|
104
|
+
resolvedAt: Timestamp;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Dependency conflict record
|
|
108
|
+
*/
|
|
109
|
+
export interface DependencyConflictRecord {
|
|
110
|
+
/** Blocked element ID */
|
|
111
|
+
blockedId: ElementId;
|
|
112
|
+
/** Blocker element ID */
|
|
113
|
+
blockerId: ElementId;
|
|
114
|
+
/** Dependency type */
|
|
115
|
+
type: DependencyType;
|
|
116
|
+
/** How conflict was resolved */
|
|
117
|
+
resolution: 'added' | 'removed' | 'kept';
|
|
118
|
+
/** When resolved */
|
|
119
|
+
resolvedAt: Timestamp;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Export result
|
|
123
|
+
*/
|
|
124
|
+
export interface ExportResult {
|
|
125
|
+
/** Number of elements exported */
|
|
126
|
+
elementsExported: number;
|
|
127
|
+
/** Number of dependencies exported */
|
|
128
|
+
dependenciesExported: number;
|
|
129
|
+
/** Whether this was an incremental export */
|
|
130
|
+
incremental: boolean;
|
|
131
|
+
/** Path to elements file */
|
|
132
|
+
elementsFile: string;
|
|
133
|
+
/** Path to dependencies file */
|
|
134
|
+
dependenciesFile: string;
|
|
135
|
+
/** Export timestamp */
|
|
136
|
+
exportedAt: Timestamp;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Import result with conflict tracking
|
|
140
|
+
*/
|
|
141
|
+
export interface ImportResult {
|
|
142
|
+
/** Number of elements imported */
|
|
143
|
+
elementsImported: number;
|
|
144
|
+
/** Number of elements skipped (identical) */
|
|
145
|
+
elementsSkipped: number;
|
|
146
|
+
/** Number of dependencies imported */
|
|
147
|
+
dependenciesImported: number;
|
|
148
|
+
/** Number of dependencies skipped */
|
|
149
|
+
dependenciesSkipped: number;
|
|
150
|
+
/** Element conflicts resolved */
|
|
151
|
+
conflicts: ConflictRecord[];
|
|
152
|
+
/** Dependency conflicts resolved */
|
|
153
|
+
dependencyConflicts: DependencyConflictRecord[];
|
|
154
|
+
/** Errors encountered (non-fatal) */
|
|
155
|
+
errors: ImportError[];
|
|
156
|
+
/** Import timestamp */
|
|
157
|
+
importedAt: Timestamp;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Import error record
|
|
161
|
+
*/
|
|
162
|
+
export interface ImportError {
|
|
163
|
+
/** Line number in file (1-indexed) */
|
|
164
|
+
line: number;
|
|
165
|
+
/** File type */
|
|
166
|
+
file: 'elements' | 'dependencies';
|
|
167
|
+
/** Error message */
|
|
168
|
+
message: string;
|
|
169
|
+
/** Raw line content (truncated) */
|
|
170
|
+
content?: string;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Dirty element record
|
|
174
|
+
*/
|
|
175
|
+
export interface DirtyElement {
|
|
176
|
+
/** Element ID that was modified */
|
|
177
|
+
elementId: ElementId;
|
|
178
|
+
/** When it was marked dirty */
|
|
179
|
+
markedAt: Timestamp;
|
|
180
|
+
/** Type of modification */
|
|
181
|
+
operation: 'create' | 'update' | 'delete';
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Dirty dependency record
|
|
185
|
+
*/
|
|
186
|
+
export interface DirtyDependency {
|
|
187
|
+
/** Blocked element ID */
|
|
188
|
+
blockedId: ElementId;
|
|
189
|
+
/** Blocker element ID */
|
|
190
|
+
blockerId: ElementId;
|
|
191
|
+
/** Dependency type */
|
|
192
|
+
type: DependencyType;
|
|
193
|
+
/** When it was marked dirty */
|
|
194
|
+
markedAt: Timestamp;
|
|
195
|
+
/** Type of modification */
|
|
196
|
+
operation: 'create' | 'delete';
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Current sync status
|
|
200
|
+
*/
|
|
201
|
+
export interface SyncStatus {
|
|
202
|
+
/** Number of dirty elements */
|
|
203
|
+
dirtyElementCount: number;
|
|
204
|
+
/** Number of dirty dependencies */
|
|
205
|
+
dirtyDependencyCount: number;
|
|
206
|
+
/** Last export timestamp */
|
|
207
|
+
lastExportAt?: Timestamp;
|
|
208
|
+
/** Last import timestamp */
|
|
209
|
+
lastImportAt?: Timestamp;
|
|
210
|
+
/** Whether there are pending changes */
|
|
211
|
+
hasPendingChanges: boolean;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Options for export operations
|
|
215
|
+
*/
|
|
216
|
+
export interface ExportOptions {
|
|
217
|
+
/** Output directory path */
|
|
218
|
+
outputDir: string;
|
|
219
|
+
/** Perform full export (ignore dirty tracking) */
|
|
220
|
+
full?: boolean;
|
|
221
|
+
/** Include ephemeral elements */
|
|
222
|
+
includeEphemeral?: boolean;
|
|
223
|
+
/** Elements file name override */
|
|
224
|
+
elementsFile?: string;
|
|
225
|
+
/** Dependencies file name override */
|
|
226
|
+
dependenciesFile?: string;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Options for import operations
|
|
230
|
+
*/
|
|
231
|
+
export interface ImportOptions {
|
|
232
|
+
/** Input directory path */
|
|
233
|
+
inputDir: string;
|
|
234
|
+
/** Dry run - show what would change */
|
|
235
|
+
dryRun?: boolean;
|
|
236
|
+
/** Force overwrite conflicts (remote always wins) */
|
|
237
|
+
force?: boolean;
|
|
238
|
+
/** Elements file name override */
|
|
239
|
+
elementsFile?: string;
|
|
240
|
+
/** Dependencies file name override */
|
|
241
|
+
dependenciesFile?: string;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Tombstone status for merge decisions
|
|
245
|
+
*/
|
|
246
|
+
export declare const TombstoneStatus: {
|
|
247
|
+
/** Not a tombstone (live element) */
|
|
248
|
+
readonly LIVE: "live";
|
|
249
|
+
/** Tombstone within TTL */
|
|
250
|
+
readonly FRESH: "fresh";
|
|
251
|
+
/** Tombstone past TTL */
|
|
252
|
+
readonly EXPIRED: "expired";
|
|
253
|
+
};
|
|
254
|
+
export type TombstoneStatus = (typeof TombstoneStatus)[keyof typeof TombstoneStatus];
|
|
255
|
+
/**
|
|
256
|
+
* Element with tombstone status for merge
|
|
257
|
+
*/
|
|
258
|
+
export interface ElementWithTombstoneStatus {
|
|
259
|
+
/** The element data */
|
|
260
|
+
element: Element;
|
|
261
|
+
/** Tombstone status */
|
|
262
|
+
tombstoneStatus: TombstoneStatus;
|
|
263
|
+
/** Deleted timestamp if tombstone */
|
|
264
|
+
deletedAt?: Timestamp;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Element type priority for export ordering
|
|
268
|
+
* Lower number = exported first (entities first for references)
|
|
269
|
+
*/
|
|
270
|
+
export declare const ELEMENT_TYPE_PRIORITY: Record<string, number>;
|
|
271
|
+
/**
|
|
272
|
+
* Get sort priority for an element type
|
|
273
|
+
*/
|
|
274
|
+
export declare function getTypePriority(type: string): number;
|
|
275
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync System Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the JSONL-based synchronization system.
|
|
5
|
+
* Enables bidirectional sync between SQLite and git-friendly JSONL format.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Content Hashing
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Fields excluded from content hash computation
|
|
12
|
+
* These fields are identity/attribution rather than content
|
|
13
|
+
*/
|
|
14
|
+
export const HASH_EXCLUDED_FIELDS = [
|
|
15
|
+
'id',
|
|
16
|
+
'createdAt',
|
|
17
|
+
'updatedAt',
|
|
18
|
+
'createdBy',
|
|
19
|
+
'contentHash',
|
|
20
|
+
];
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Merge Strategy Types
|
|
23
|
+
// ============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Merge resolution result
|
|
26
|
+
*/
|
|
27
|
+
export const MergeResolution = {
|
|
28
|
+
/** Local version kept */
|
|
29
|
+
LOCAL_WINS: 'local_wins',
|
|
30
|
+
/** Remote version applied */
|
|
31
|
+
REMOTE_WINS: 'remote_wins',
|
|
32
|
+
/** Content was identical */
|
|
33
|
+
IDENTICAL: 'identical',
|
|
34
|
+
/** Tags merged from both */
|
|
35
|
+
TAGS_MERGED: 'tags_merged',
|
|
36
|
+
};
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Tombstone Handling
|
|
39
|
+
// ============================================================================
|
|
40
|
+
/**
|
|
41
|
+
* Tombstone status for merge decisions
|
|
42
|
+
*/
|
|
43
|
+
export const TombstoneStatus = {
|
|
44
|
+
/** Not a tombstone (live element) */
|
|
45
|
+
LIVE: 'live',
|
|
46
|
+
/** Tombstone within TTL */
|
|
47
|
+
FRESH: 'fresh',
|
|
48
|
+
/** Tombstone past TTL */
|
|
49
|
+
EXPIRED: 'expired',
|
|
50
|
+
};
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Sort Order for Export
|
|
53
|
+
// ============================================================================
|
|
54
|
+
/**
|
|
55
|
+
* Element type priority for export ordering
|
|
56
|
+
* Lower number = exported first (entities first for references)
|
|
57
|
+
*/
|
|
58
|
+
export const ELEMENT_TYPE_PRIORITY = {
|
|
59
|
+
entity: 0,
|
|
60
|
+
document: 1,
|
|
61
|
+
task: 2,
|
|
62
|
+
message: 3,
|
|
63
|
+
channel: 4,
|
|
64
|
+
plan: 5,
|
|
65
|
+
workflow: 6,
|
|
66
|
+
playbook: 7,
|
|
67
|
+
library: 8,
|
|
68
|
+
team: 9,
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Get sort priority for an element type
|
|
72
|
+
*/
|
|
73
|
+
export function getTypePriority(type) {
|
|
74
|
+
return ELEMENT_TYPE_PRIORITY[type] ?? 100;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sync/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6DH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;CACL,CAAC;AAYX,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,yBAAyB;IACzB,UAAU,EAAE,YAAY;IACxB,6BAA6B;IAC7B,WAAW,EAAE,aAAa;IAC1B,4BAA4B;IAC5B,SAAS,EAAE,WAAW;IACtB,4BAA4B;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AA0LX,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,qCAAqC;IACrC,IAAI,EAAE,MAAM;IACZ,2BAA2B;IAC3B,KAAK,EAAE,OAAO;IACd,yBAAyB;IACzB,OAAO,EAAE,SAAS;CACV,CAAC;AAgBX,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACR,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAC5C,CAAC"}
|