@stoneforge/quarry 1.13.0 → 1.14.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 (124) hide show
  1. package/dist/api/quarry-api.d.ts +9 -1
  2. package/dist/api/quarry-api.d.ts.map +1 -1
  3. package/dist/api/quarry-api.js +21 -2
  4. package/dist/api/quarry-api.js.map +1 -1
  5. package/dist/api/types.d.ts +8 -1
  6. package/dist/api/types.d.ts.map +1 -1
  7. package/dist/api/types.js.map +1 -1
  8. package/dist/cli/commands/auto-link-helper.d.ts.map +1 -1
  9. package/dist/cli/commands/auto-link-helper.js +1 -0
  10. package/dist/cli/commands/auto-link-helper.js.map +1 -1
  11. package/dist/cli/commands/crud.d.ts +2 -0
  12. package/dist/cli/commands/crud.d.ts.map +1 -1
  13. package/dist/cli/commands/crud.js +100 -10
  14. package/dist/cli/commands/crud.js.map +1 -1
  15. package/dist/cli/commands/docs.js +2 -2
  16. package/dist/cli/commands/docs.js.map +1 -1
  17. package/dist/cli/commands/document.js +1 -1
  18. package/dist/cli/commands/document.js.map +1 -1
  19. package/dist/cli/commands/entity.js +1 -1
  20. package/dist/cli/commands/entity.js.map +1 -1
  21. package/dist/cli/commands/external-sync.d.ts +6 -5
  22. package/dist/cli/commands/external-sync.d.ts.map +1 -1
  23. package/dist/cli/commands/external-sync.js +1032 -180
  24. package/dist/cli/commands/external-sync.js.map +1 -1
  25. package/dist/cli/commands/library.js +1 -1
  26. package/dist/cli/commands/library.js.map +1 -1
  27. package/dist/cli/commands/message.js +2 -2
  28. package/dist/cli/commands/message.js.map +1 -1
  29. package/dist/cli/commands/serve.d.ts.map +1 -1
  30. package/dist/cli/commands/serve.js +2 -0
  31. package/dist/cli/commands/serve.js.map +1 -1
  32. package/dist/cli/commands/task.d.ts.map +1 -1
  33. package/dist/cli/commands/task.js +7 -4
  34. package/dist/cli/commands/task.js.map +1 -1
  35. package/dist/cli/commands/team.js +1 -1
  36. package/dist/cli/commands/team.js.map +1 -1
  37. package/dist/cli/commands/workflow.js +1 -1
  38. package/dist/cli/commands/workflow.js.map +1 -1
  39. package/dist/cli/utils/progress.d.ts +30 -0
  40. package/dist/cli/utils/progress.d.ts.map +1 -0
  41. package/dist/cli/utils/progress.js +47 -0
  42. package/dist/cli/utils/progress.js.map +1 -0
  43. package/dist/config/config.d.ts.map +1 -1
  44. package/dist/config/config.js +6 -0
  45. package/dist/config/config.js.map +1 -1
  46. package/dist/config/defaults.d.ts.map +1 -1
  47. package/dist/config/defaults.js +1 -0
  48. package/dist/config/defaults.js.map +1 -1
  49. package/dist/config/file.d.ts.map +1 -1
  50. package/dist/config/file.js +10 -0
  51. package/dist/config/file.js.map +1 -1
  52. package/dist/config/merge.d.ts.map +1 -1
  53. package/dist/config/merge.js +7 -1
  54. package/dist/config/merge.js.map +1 -1
  55. package/dist/config/types.d.ts +7 -2
  56. package/dist/config/types.d.ts.map +1 -1
  57. package/dist/config/types.js +3 -0
  58. package/dist/config/types.js.map +1 -1
  59. package/dist/config/validation.d.ts.map +1 -1
  60. package/dist/config/validation.js +13 -0
  61. package/dist/config/validation.js.map +1 -1
  62. package/dist/external-sync/adapters/document-sync-adapter.d.ts +150 -0
  63. package/dist/external-sync/adapters/document-sync-adapter.d.ts.map +1 -0
  64. package/dist/external-sync/adapters/document-sync-adapter.js +325 -0
  65. package/dist/external-sync/adapters/document-sync-adapter.js.map +1 -0
  66. package/dist/external-sync/index.d.ts +3 -0
  67. package/dist/external-sync/index.d.ts.map +1 -1
  68. package/dist/external-sync/index.js +4 -0
  69. package/dist/external-sync/index.js.map +1 -1
  70. package/dist/external-sync/provider-registry.d.ts +7 -3
  71. package/dist/external-sync/provider-registry.d.ts.map +1 -1
  72. package/dist/external-sync/provider-registry.js +20 -3
  73. package/dist/external-sync/provider-registry.js.map +1 -1
  74. package/dist/external-sync/providers/folder/folder-document-adapter.d.ts +97 -0
  75. package/dist/external-sync/providers/folder/folder-document-adapter.d.ts.map +1 -0
  76. package/dist/external-sync/providers/folder/folder-document-adapter.js +261 -0
  77. package/dist/external-sync/providers/folder/folder-document-adapter.js.map +1 -0
  78. package/dist/external-sync/providers/folder/folder-fs.d.ts +146 -0
  79. package/dist/external-sync/providers/folder/folder-fs.d.ts.map +1 -0
  80. package/dist/external-sync/providers/folder/folder-fs.js +300 -0
  81. package/dist/external-sync/providers/folder/folder-fs.js.map +1 -0
  82. package/dist/external-sync/providers/folder/folder-provider.d.ts +28 -0
  83. package/dist/external-sync/providers/folder/folder-provider.d.ts.map +1 -0
  84. package/dist/external-sync/providers/folder/folder-provider.js +87 -0
  85. package/dist/external-sync/providers/folder/folder-provider.js.map +1 -0
  86. package/dist/external-sync/providers/folder/index.d.ts +11 -0
  87. package/dist/external-sync/providers/folder/index.d.ts.map +1 -0
  88. package/dist/external-sync/providers/folder/index.js +13 -0
  89. package/dist/external-sync/providers/folder/index.js.map +1 -0
  90. package/dist/external-sync/providers/index.d.ts +4 -0
  91. package/dist/external-sync/providers/index.d.ts.map +1 -1
  92. package/dist/external-sync/providers/index.js +5 -0
  93. package/dist/external-sync/providers/index.js.map +1 -1
  94. package/dist/external-sync/providers/notion/index.d.ts +19 -0
  95. package/dist/external-sync/providers/notion/index.d.ts.map +1 -0
  96. package/dist/external-sync/providers/notion/index.js +20 -0
  97. package/dist/external-sync/providers/notion/index.js.map +1 -0
  98. package/dist/external-sync/providers/notion/notion-api.d.ts +253 -0
  99. package/dist/external-sync/providers/notion/notion-api.d.ts.map +1 -0
  100. package/dist/external-sync/providers/notion/notion-api.js +492 -0
  101. package/dist/external-sync/providers/notion/notion-api.js.map +1 -0
  102. package/dist/external-sync/providers/notion/notion-blocks.d.ts +93 -0
  103. package/dist/external-sync/providers/notion/notion-blocks.d.ts.map +1 -0
  104. package/dist/external-sync/providers/notion/notion-blocks.js +773 -0
  105. package/dist/external-sync/providers/notion/notion-blocks.js.map +1 -0
  106. package/dist/external-sync/providers/notion/notion-document-adapter.d.ts +176 -0
  107. package/dist/external-sync/providers/notion/notion-document-adapter.d.ts.map +1 -0
  108. package/dist/external-sync/providers/notion/notion-document-adapter.js +413 -0
  109. package/dist/external-sync/providers/notion/notion-document-adapter.js.map +1 -0
  110. package/dist/external-sync/providers/notion/notion-provider.d.ts +57 -0
  111. package/dist/external-sync/providers/notion/notion-provider.d.ts.map +1 -0
  112. package/dist/external-sync/providers/notion/notion-provider.js +159 -0
  113. package/dist/external-sync/providers/notion/notion-provider.js.map +1 -0
  114. package/dist/external-sync/providers/notion/notion-types.d.ts +388 -0
  115. package/dist/external-sync/providers/notion/notion-types.d.ts.map +1 -0
  116. package/dist/external-sync/providers/notion/notion-types.js +47 -0
  117. package/dist/external-sync/providers/notion/notion-types.js.map +1 -0
  118. package/dist/external-sync/sync-engine.d.ts +70 -4
  119. package/dist/external-sync/sync-engine.d.ts.map +1 -1
  120. package/dist/external-sync/sync-engine.js +436 -67
  121. package/dist/external-sync/sync-engine.js.map +1 -1
  122. package/dist/server/index.js +8 -8
  123. package/dist/server/index.js.map +1 -1
  124. package/package.json +4 -12
@@ -25,8 +25,8 @@
25
25
  * const result = await engine.sync({ dryRun: true });
26
26
  * ```
27
27
  */
28
- import type { ExternalSyncResult, ExternalTask, ConflictStrategy, ProviderConfig } from '@stoneforge/core';
29
- import type { Element, ElementId, Timestamp, EventFilter } from '@stoneforge/core';
28
+ import type { ExternalSyncResult, ExternalTask, ExternalDocument, ConflictStrategy, SyncAdapterType, ProviderConfig } from '@stoneforge/core';
29
+ import type { Element, ElementId, Timestamp, EventFilter, Dependency, DependencyType } from '@stoneforge/core';
30
30
  import type { ProviderRegistry } from './provider-registry.js';
31
31
  /**
32
32
  * Options for sync operations (push, pull, sync)
@@ -40,6 +40,28 @@ export interface SyncOptions {
40
40
  readonly all?: boolean;
41
41
  /** Force push all linked tasks, skipping hash comparison and event query guards */
42
42
  readonly force?: boolean;
43
+ /**
44
+ * Filter sync operations to specific adapter types.
45
+ * When set, only elements matching these adapter types will be processed.
46
+ * When omitted or empty, all adapter types are processed (tasks + documents).
47
+ */
48
+ readonly adapterTypes?: readonly SyncAdapterType[];
49
+ /**
50
+ * Include documents that are not in any library.
51
+ * By default, documents without a library parent are excluded from push.
52
+ * Set to true to include them.
53
+ */
54
+ readonly includeNoLibrary?: boolean;
55
+ /**
56
+ * Callback invoked with the total element count before processing begins.
57
+ * Useful for showing progress information or warnings about large sets.
58
+ */
59
+ readonly onBeforeProcess?: (count: number) => void;
60
+ /**
61
+ * Optional progress callback invoked after each batch completes during push.
62
+ * Receives the current count of processed elements and the total count.
63
+ */
64
+ readonly onProgress?: (current: number, total: number) => void;
43
65
  }
44
66
  /**
45
67
  * Minimal QuarryAPI interface — only the methods the sync engine needs.
@@ -60,6 +82,8 @@ export interface SyncEngineAPI {
60
82
  eventType: string;
61
83
  createdAt: Timestamp;
62
84
  }>>;
85
+ /** Get all dependencies for an element, optionally filtered by type */
86
+ getDependencies(id: ElementId, types?: DependencyType[]): Promise<Dependency[]>;
63
87
  }
64
88
  /**
65
89
  * Minimal settings interface for sync cursor storage.
@@ -85,11 +109,11 @@ export interface SyncConflictResolver {
85
109
  * Resolve a conflict between local and remote versions.
86
110
  *
87
111
  * @param localElement - The local Stoneforge element
88
- * @param remoteItem - The external task/item
112
+ * @param remoteItem - The external task/document/item (must have updatedAt)
89
113
  * @param strategy - The conflict strategy to apply
90
114
  * @returns Resolution result indicating which side wins, or 'manual' for unresolved
91
115
  */
92
- resolve(localElement: Element, remoteItem: ExternalTask, strategy: ConflictStrategy): ConflictResolution;
116
+ resolve(localElement: Element, remoteItem: ExternalTask | ExternalDocument, strategy: ConflictStrategy): ConflictResolution;
93
117
  }
94
118
  /**
95
119
  * Result of conflict resolution
@@ -117,6 +141,8 @@ export interface SyncEngineConfig {
117
141
  /** Default provider config (for pull — specifies which provider/project to sync) */
118
142
  readonly providerConfigs?: readonly ProviderConfig[];
119
143
  }
144
+ /** Number of documents to push concurrently (balances throughput vs API rate limits) */
145
+ declare const PUSH_CONCURRENCY = 3;
120
146
  /**
121
147
  * Sync Engine — coordinates push/pull operations between Stoneforge and external services.
122
148
  *
@@ -146,12 +172,30 @@ export declare class SyncEngine {
146
172
  * @returns Aggregated sync result across all providers
147
173
  */
148
174
  push(options?: SyncOptions): Promise<ExternalSyncResult>;
175
+ /**
176
+ * Process a single element for push — validates sync state, checks skip conditions,
177
+ * and routes to the appropriate push method (pushElement or pushDocument).
178
+ *
179
+ * Extracted from the push() loop body to enable concurrent execution via Promise.allSettled.
180
+ *
181
+ * @returns 'pushed' if changes were sent, 'skipped' if element was skipped
182
+ */
183
+ private pushSingleElement;
149
184
  /**
150
185
  * Push a single element to its external service.
151
186
  *
152
187
  * @returns 'pushed' if changes were sent, 'skipped' if no changes detected
153
188
  */
154
189
  private pushElement;
190
+ /**
191
+ * Push a single document to its external service.
192
+ *
193
+ * Parallel to pushElement(), but uses document-specific conversion
194
+ * (documentToExternalDocumentInput) and the DocumentSyncAdapter.
195
+ *
196
+ * @returns 'pushed' if changes were sent, 'skipped' if no changes detected
197
+ */
198
+ private pushDocument;
155
199
  /**
156
200
  * Pull externally-changed items into Stoneforge.
157
201
  *
@@ -179,6 +223,23 @@ export declare class SyncEngine {
179
223
  * 'created' if a new task was created
180
224
  */
181
225
  private pullItem;
226
+ /**
227
+ * Pull document changes from a specific provider.
228
+ * Parallel to pullFromProvider(), but uses the DocumentSyncAdapter.
229
+ */
230
+ private pullDocumentsFromProvider;
231
+ /**
232
+ * Pull a single external document into Stoneforge.
233
+ * Parallel to pullItem(), but uses document-specific conversion.
234
+ *
235
+ * @returns 'pulled' if local element was updated, 'skipped' if no changes,
236
+ * 'created' if a new document was created
237
+ */
238
+ private pullDocumentItem;
239
+ /**
240
+ * Create a new Stoneforge document from an unlinked external document.
241
+ */
242
+ private createDocumentFromExternal;
182
243
  /**
183
244
  * Bidirectional sync — push then pull.
184
245
  *
@@ -257,6 +318,10 @@ export declare class SyncEngine {
257
318
  * Get a TaskSyncAdapter for a given provider name.
258
319
  */
259
320
  private getTaskAdapter;
321
+ /**
322
+ * Get a DocumentSyncAdapter for a given provider name.
323
+ */
324
+ private getDocumentAdapter;
260
325
  /**
261
326
  * Get the ProviderConfig for a given provider name.
262
327
  */
@@ -295,4 +360,5 @@ export declare class SyncEngine {
295
360
  * ```
296
361
  */
297
362
  export declare function createSyncEngine(config: SyncEngineConfig): SyncEngine;
363
+ export { PUSH_CONCURRENCY };
298
364
  //# sourceMappingURL=sync-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/external-sync/sync-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/external-sync/sync-engine.ts"],"names":[],"mappings":"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"}