@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.
Files changed (330) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +160 -0
  3. package/dist/api/index.d.ts +8 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +8 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/quarry-api.d.ts +268 -0
  8. package/dist/api/quarry-api.d.ts.map +1 -0
  9. package/dist/api/quarry-api.js +3905 -0
  10. package/dist/api/quarry-api.js.map +1 -0
  11. package/dist/api/types.d.ts +1359 -0
  12. package/dist/api/types.d.ts.map +1 -0
  13. package/dist/api/types.js +204 -0
  14. package/dist/api/types.js.map +1 -0
  15. package/dist/bin/sf.d.ts +3 -0
  16. package/dist/bin/sf.d.ts.map +1 -0
  17. package/dist/bin/sf.js +9 -0
  18. package/dist/bin/sf.js.map +1 -0
  19. package/dist/cli/commands/admin.d.ts +11 -0
  20. package/dist/cli/commands/admin.d.ts.map +1 -0
  21. package/dist/cli/commands/admin.js +465 -0
  22. package/dist/cli/commands/admin.js.map +1 -0
  23. package/dist/cli/commands/alias.d.ts +8 -0
  24. package/dist/cli/commands/alias.d.ts.map +1 -0
  25. package/dist/cli/commands/alias.js +70 -0
  26. package/dist/cli/commands/alias.js.map +1 -0
  27. package/dist/cli/commands/channel.d.ts +13 -0
  28. package/dist/cli/commands/channel.d.ts.map +1 -0
  29. package/dist/cli/commands/channel.js +680 -0
  30. package/dist/cli/commands/channel.js.map +1 -0
  31. package/dist/cli/commands/completion.d.ts +8 -0
  32. package/dist/cli/commands/completion.d.ts.map +1 -0
  33. package/dist/cli/commands/completion.js +87 -0
  34. package/dist/cli/commands/completion.js.map +1 -0
  35. package/dist/cli/commands/config.d.ts +12 -0
  36. package/dist/cli/commands/config.d.ts.map +1 -0
  37. package/dist/cli/commands/config.js +242 -0
  38. package/dist/cli/commands/config.js.map +1 -0
  39. package/dist/cli/commands/crud.d.ts +64 -0
  40. package/dist/cli/commands/crud.d.ts.map +1 -0
  41. package/dist/cli/commands/crud.js +805 -0
  42. package/dist/cli/commands/crud.js.map +1 -0
  43. package/dist/cli/commands/dep.d.ts +16 -0
  44. package/dist/cli/commands/dep.d.ts.map +1 -0
  45. package/dist/cli/commands/dep.js +499 -0
  46. package/dist/cli/commands/dep.js.map +1 -0
  47. package/dist/cli/commands/document.d.ts +12 -0
  48. package/dist/cli/commands/document.d.ts.map +1 -0
  49. package/dist/cli/commands/document.js +1039 -0
  50. package/dist/cli/commands/document.js.map +1 -0
  51. package/dist/cli/commands/embeddings.d.ts +12 -0
  52. package/dist/cli/commands/embeddings.d.ts.map +1 -0
  53. package/dist/cli/commands/embeddings.js +273 -0
  54. package/dist/cli/commands/embeddings.js.map +1 -0
  55. package/dist/cli/commands/entity.d.ts +16 -0
  56. package/dist/cli/commands/entity.d.ts.map +1 -0
  57. package/dist/cli/commands/entity.js +522 -0
  58. package/dist/cli/commands/entity.js.map +1 -0
  59. package/dist/cli/commands/gc.d.ts +10 -0
  60. package/dist/cli/commands/gc.d.ts.map +1 -0
  61. package/dist/cli/commands/gc.js +257 -0
  62. package/dist/cli/commands/gc.js.map +1 -0
  63. package/dist/cli/commands/help.d.ts +11 -0
  64. package/dist/cli/commands/help.d.ts.map +1 -0
  65. package/dist/cli/commands/help.js +169 -0
  66. package/dist/cli/commands/help.js.map +1 -0
  67. package/dist/cli/commands/history.d.ts +9 -0
  68. package/dist/cli/commands/history.d.ts.map +1 -0
  69. package/dist/cli/commands/history.js +160 -0
  70. package/dist/cli/commands/history.js.map +1 -0
  71. package/dist/cli/commands/identity.d.ts +18 -0
  72. package/dist/cli/commands/identity.d.ts.map +1 -0
  73. package/dist/cli/commands/identity.js +698 -0
  74. package/dist/cli/commands/identity.js.map +1 -0
  75. package/dist/cli/commands/inbox.d.ts +20 -0
  76. package/dist/cli/commands/inbox.d.ts.map +1 -0
  77. package/dist/cli/commands/inbox.js +493 -0
  78. package/dist/cli/commands/inbox.js.map +1 -0
  79. package/dist/cli/commands/init.d.ts +20 -0
  80. package/dist/cli/commands/init.d.ts.map +1 -0
  81. package/dist/cli/commands/init.js +144 -0
  82. package/dist/cli/commands/init.js.map +1 -0
  83. package/dist/cli/commands/install.d.ts +9 -0
  84. package/dist/cli/commands/install.d.ts.map +1 -0
  85. package/dist/cli/commands/install.js +200 -0
  86. package/dist/cli/commands/install.js.map +1 -0
  87. package/dist/cli/commands/library.d.ts +12 -0
  88. package/dist/cli/commands/library.d.ts.map +1 -0
  89. package/dist/cli/commands/library.js +665 -0
  90. package/dist/cli/commands/library.js.map +1 -0
  91. package/dist/cli/commands/message.d.ts +11 -0
  92. package/dist/cli/commands/message.d.ts.map +1 -0
  93. package/dist/cli/commands/message.js +608 -0
  94. package/dist/cli/commands/message.js.map +1 -0
  95. package/dist/cli/commands/plan.d.ts +17 -0
  96. package/dist/cli/commands/plan.d.ts.map +1 -0
  97. package/dist/cli/commands/plan.js +698 -0
  98. package/dist/cli/commands/plan.js.map +1 -0
  99. package/dist/cli/commands/playbook.d.ts +12 -0
  100. package/dist/cli/commands/playbook.d.ts.map +1 -0
  101. package/dist/cli/commands/playbook.js +730 -0
  102. package/dist/cli/commands/playbook.js.map +1 -0
  103. package/dist/cli/commands/reset.d.ts +12 -0
  104. package/dist/cli/commands/reset.d.ts.map +1 -0
  105. package/dist/cli/commands/reset.js +306 -0
  106. package/dist/cli/commands/reset.js.map +1 -0
  107. package/dist/cli/commands/serve.d.ts +11 -0
  108. package/dist/cli/commands/serve.d.ts.map +1 -0
  109. package/dist/cli/commands/serve.js +106 -0
  110. package/dist/cli/commands/serve.js.map +1 -0
  111. package/dist/cli/commands/stats.d.ts +8 -0
  112. package/dist/cli/commands/stats.d.ts.map +1 -0
  113. package/dist/cli/commands/stats.js +82 -0
  114. package/dist/cli/commands/stats.js.map +1 -0
  115. package/dist/cli/commands/sync.d.ts +14 -0
  116. package/dist/cli/commands/sync.d.ts.map +1 -0
  117. package/dist/cli/commands/sync.js +370 -0
  118. package/dist/cli/commands/sync.js.map +1 -0
  119. package/dist/cli/commands/task.d.ts +25 -0
  120. package/dist/cli/commands/task.d.ts.map +1 -0
  121. package/dist/cli/commands/task.js +1153 -0
  122. package/dist/cli/commands/task.js.map +1 -0
  123. package/dist/cli/commands/team.d.ts +13 -0
  124. package/dist/cli/commands/team.d.ts.map +1 -0
  125. package/dist/cli/commands/team.js +471 -0
  126. package/dist/cli/commands/team.js.map +1 -0
  127. package/dist/cli/commands/workflow.d.ts +16 -0
  128. package/dist/cli/commands/workflow.d.ts.map +1 -0
  129. package/dist/cli/commands/workflow.js +753 -0
  130. package/dist/cli/commands/workflow.js.map +1 -0
  131. package/dist/cli/completion.d.ts +28 -0
  132. package/dist/cli/completion.d.ts.map +1 -0
  133. package/dist/cli/completion.js +295 -0
  134. package/dist/cli/completion.js.map +1 -0
  135. package/dist/cli/db.d.ts +38 -0
  136. package/dist/cli/db.d.ts.map +1 -0
  137. package/dist/cli/db.js +90 -0
  138. package/dist/cli/db.js.map +1 -0
  139. package/dist/cli/formatter.d.ts +87 -0
  140. package/dist/cli/formatter.d.ts.map +1 -0
  141. package/dist/cli/formatter.js +464 -0
  142. package/dist/cli/formatter.js.map +1 -0
  143. package/dist/cli/index.d.ts +33 -0
  144. package/dist/cli/index.d.ts.map +1 -0
  145. package/dist/cli/index.js +38 -0
  146. package/dist/cli/index.js.map +1 -0
  147. package/dist/cli/parser.d.ts +45 -0
  148. package/dist/cli/parser.d.ts.map +1 -0
  149. package/dist/cli/parser.js +256 -0
  150. package/dist/cli/parser.js.map +1 -0
  151. package/dist/cli/plugin-loader.d.ts +39 -0
  152. package/dist/cli/plugin-loader.d.ts.map +1 -0
  153. package/dist/cli/plugin-loader.js +165 -0
  154. package/dist/cli/plugin-loader.js.map +1 -0
  155. package/dist/cli/plugin-registry.d.ts +50 -0
  156. package/dist/cli/plugin-registry.d.ts.map +1 -0
  157. package/dist/cli/plugin-registry.js +206 -0
  158. package/dist/cli/plugin-registry.js.map +1 -0
  159. package/dist/cli/plugin-types.d.ts +106 -0
  160. package/dist/cli/plugin-types.d.ts.map +1 -0
  161. package/dist/cli/plugin-types.js +103 -0
  162. package/dist/cli/plugin-types.js.map +1 -0
  163. package/dist/cli/runner.d.ts +35 -0
  164. package/dist/cli/runner.d.ts.map +1 -0
  165. package/dist/cli/runner.js +340 -0
  166. package/dist/cli/runner.js.map +1 -0
  167. package/dist/cli/suggest.d.ts +15 -0
  168. package/dist/cli/suggest.d.ts.map +1 -0
  169. package/dist/cli/suggest.js +49 -0
  170. package/dist/cli/suggest.js.map +1 -0
  171. package/dist/cli/types.d.ts +138 -0
  172. package/dist/cli/types.d.ts.map +1 -0
  173. package/dist/cli/types.js +63 -0
  174. package/dist/cli/types.js.map +1 -0
  175. package/dist/config/config.d.ts +86 -0
  176. package/dist/config/config.d.ts.map +1 -0
  177. package/dist/config/config.js +348 -0
  178. package/dist/config/config.js.map +1 -0
  179. package/dist/config/defaults.d.ts +66 -0
  180. package/dist/config/defaults.d.ts.map +1 -0
  181. package/dist/config/defaults.js +114 -0
  182. package/dist/config/defaults.js.map +1 -0
  183. package/dist/config/duration.d.ts +75 -0
  184. package/dist/config/duration.d.ts.map +1 -0
  185. package/dist/config/duration.js +190 -0
  186. package/dist/config/duration.js.map +1 -0
  187. package/dist/config/env.d.ts +67 -0
  188. package/dist/config/env.d.ts.map +1 -0
  189. package/dist/config/env.js +207 -0
  190. package/dist/config/env.js.map +1 -0
  191. package/dist/config/file.d.ts +97 -0
  192. package/dist/config/file.d.ts.map +1 -0
  193. package/dist/config/file.js +365 -0
  194. package/dist/config/file.js.map +1 -0
  195. package/dist/config/index.d.ts +35 -0
  196. package/dist/config/index.d.ts.map +1 -0
  197. package/dist/config/index.js +41 -0
  198. package/dist/config/index.js.map +1 -0
  199. package/dist/config/merge.d.ts +53 -0
  200. package/dist/config/merge.d.ts.map +1 -0
  201. package/dist/config/merge.js +226 -0
  202. package/dist/config/merge.js.map +1 -0
  203. package/dist/config/types.d.ts +257 -0
  204. package/dist/config/types.d.ts.map +1 -0
  205. package/dist/config/types.js +72 -0
  206. package/dist/config/types.js.map +1 -0
  207. package/dist/config/validation.d.ts +55 -0
  208. package/dist/config/validation.d.ts.map +1 -0
  209. package/dist/config/validation.js +251 -0
  210. package/dist/config/validation.js.map +1 -0
  211. package/dist/http/index.d.ts +8 -0
  212. package/dist/http/index.d.ts.map +1 -0
  213. package/dist/http/index.js +12 -0
  214. package/dist/http/index.js.map +1 -0
  215. package/dist/http/sync-handlers.d.ts +162 -0
  216. package/dist/http/sync-handlers.d.ts.map +1 -0
  217. package/dist/http/sync-handlers.js +271 -0
  218. package/dist/http/sync-handlers.js.map +1 -0
  219. package/dist/index.d.ts +25 -0
  220. package/dist/index.d.ts.map +1 -0
  221. package/dist/index.js +69 -0
  222. package/dist/index.js.map +1 -0
  223. package/dist/server/index.d.ts +34 -0
  224. package/dist/server/index.d.ts.map +1 -0
  225. package/dist/server/index.js +3329 -0
  226. package/dist/server/index.js.map +1 -0
  227. package/dist/server/static.d.ts +18 -0
  228. package/dist/server/static.d.ts.map +1 -0
  229. package/dist/server/static.js +71 -0
  230. package/dist/server/static.js.map +1 -0
  231. package/dist/server/ws/broadcaster.d.ts +8 -0
  232. package/dist/server/ws/broadcaster.d.ts.map +1 -0
  233. package/dist/server/ws/broadcaster.js +7 -0
  234. package/dist/server/ws/broadcaster.js.map +1 -0
  235. package/dist/server/ws/handler.d.ts +55 -0
  236. package/dist/server/ws/handler.d.ts.map +1 -0
  237. package/dist/server/ws/handler.js +160 -0
  238. package/dist/server/ws/handler.js.map +1 -0
  239. package/dist/services/blocked-cache.d.ts +297 -0
  240. package/dist/services/blocked-cache.d.ts.map +1 -0
  241. package/dist/services/blocked-cache.js +755 -0
  242. package/dist/services/blocked-cache.js.map +1 -0
  243. package/dist/services/dependency.d.ts +205 -0
  244. package/dist/services/dependency.d.ts.map +1 -0
  245. package/dist/services/dependency.js +566 -0
  246. package/dist/services/dependency.js.map +1 -0
  247. package/dist/services/embeddings/fusion.d.ts +33 -0
  248. package/dist/services/embeddings/fusion.d.ts.map +1 -0
  249. package/dist/services/embeddings/fusion.js +34 -0
  250. package/dist/services/embeddings/fusion.js.map +1 -0
  251. package/dist/services/embeddings/index.d.ts +12 -0
  252. package/dist/services/embeddings/index.d.ts.map +1 -0
  253. package/dist/services/embeddings/index.js +10 -0
  254. package/dist/services/embeddings/index.js.map +1 -0
  255. package/dist/services/embeddings/local-provider.d.ts +31 -0
  256. package/dist/services/embeddings/local-provider.d.ts.map +1 -0
  257. package/dist/services/embeddings/local-provider.js +80 -0
  258. package/dist/services/embeddings/local-provider.js.map +1 -0
  259. package/dist/services/embeddings/service.d.ts +76 -0
  260. package/dist/services/embeddings/service.d.ts.map +1 -0
  261. package/dist/services/embeddings/service.js +153 -0
  262. package/dist/services/embeddings/service.js.map +1 -0
  263. package/dist/services/embeddings/types.d.ts +70 -0
  264. package/dist/services/embeddings/types.d.ts.map +1 -0
  265. package/dist/services/embeddings/types.js +8 -0
  266. package/dist/services/embeddings/types.js.map +1 -0
  267. package/dist/services/id-length-cache.d.ts +156 -0
  268. package/dist/services/id-length-cache.d.ts.map +1 -0
  269. package/dist/services/id-length-cache.js +197 -0
  270. package/dist/services/id-length-cache.js.map +1 -0
  271. package/dist/services/inbox.d.ts +147 -0
  272. package/dist/services/inbox.d.ts.map +1 -0
  273. package/dist/services/inbox.js +428 -0
  274. package/dist/services/inbox.js.map +1 -0
  275. package/dist/services/index.d.ts +10 -0
  276. package/dist/services/index.d.ts.map +1 -0
  277. package/dist/services/index.js +10 -0
  278. package/dist/services/index.js.map +1 -0
  279. package/dist/services/priority-service.d.ts +145 -0
  280. package/dist/services/priority-service.d.ts.map +1 -0
  281. package/dist/services/priority-service.js +272 -0
  282. package/dist/services/priority-service.js.map +1 -0
  283. package/dist/services/search-utils.d.ts +47 -0
  284. package/dist/services/search-utils.d.ts.map +1 -0
  285. package/dist/services/search-utils.js +83 -0
  286. package/dist/services/search-utils.js.map +1 -0
  287. package/dist/sync/hash.d.ts +48 -0
  288. package/dist/sync/hash.d.ts.map +1 -0
  289. package/dist/sync/hash.js +136 -0
  290. package/dist/sync/hash.js.map +1 -0
  291. package/dist/sync/index.d.ts +11 -0
  292. package/dist/sync/index.d.ts.map +1 -0
  293. package/dist/sync/index.js +16 -0
  294. package/dist/sync/index.js.map +1 -0
  295. package/dist/sync/merge.d.ts +80 -0
  296. package/dist/sync/merge.d.ts.map +1 -0
  297. package/dist/sync/merge.js +310 -0
  298. package/dist/sync/merge.js.map +1 -0
  299. package/dist/sync/serialization.d.ts +132 -0
  300. package/dist/sync/serialization.d.ts.map +1 -0
  301. package/dist/sync/serialization.js +306 -0
  302. package/dist/sync/serialization.js.map +1 -0
  303. package/dist/sync/service.d.ts +102 -0
  304. package/dist/sync/service.d.ts.map +1 -0
  305. package/dist/sync/service.js +493 -0
  306. package/dist/sync/service.js.map +1 -0
  307. package/dist/sync/types.d.ts +275 -0
  308. package/dist/sync/types.d.ts.map +1 -0
  309. package/dist/sync/types.js +76 -0
  310. package/dist/sync/types.js.map +1 -0
  311. package/dist/systems/identity.d.ts +479 -0
  312. package/dist/systems/identity.d.ts.map +1 -0
  313. package/dist/systems/identity.js +817 -0
  314. package/dist/systems/identity.js.map +1 -0
  315. package/dist/systems/index.d.ts +8 -0
  316. package/dist/systems/index.d.ts.map +1 -0
  317. package/dist/systems/index.js +29 -0
  318. package/dist/systems/index.js.map +1 -0
  319. package/package.json +121 -0
  320. package/web/assets/charts-vendor-D1YcbGux.js +55 -0
  321. package/web/assets/dnd-vendor-DmxE-_ZH.js +5 -0
  322. package/web/assets/editor-vendor-BxraAWts.js +279 -0
  323. package/web/assets/index-B77vv208.js +341 -0
  324. package/web/assets/index-CF_XnVLh.css +1 -0
  325. package/web/assets/router-vendor-BCKpRBrB.js +41 -0
  326. package/web/assets/ui-vendor-DUahGnbT.js +45 -0
  327. package/web/assets/utils-vendor-CfYKiENT.js +813 -0
  328. package/web/favicon.ico +0 -0
  329. package/web/index.html +23 -0
  330. 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"}