@sudocode-ai/cli 0.1.12 → 0.1.13
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/dist/cli/init-commands.d.ts.map +1 -1
- package/dist/cli/init-commands.js +6 -2
- package/dist/cli/init-commands.js.map +1 -1
- package/dist/cli/plugin-commands.d.ts +62 -0
- package/dist/cli/plugin-commands.d.ts.map +1 -0
- package/dist/cli/plugin-commands.js +595 -0
- package/dist/cli/plugin-commands.js.map +1 -0
- package/dist/cli.js +73 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +35 -0
- package/dist/config.js.map +1 -1
- package/dist/export.d.ts +10 -5
- package/dist/export.d.ts.map +1 -1
- package/dist/export.js +88 -18
- package/dist/export.js.map +1 -1
- package/dist/import.d.ts.map +1 -1
- package/dist/import.js +20 -0
- package/dist/import.js.map +1 -1
- package/dist/integrations/base-provider.d.ts +108 -0
- package/dist/integrations/base-provider.d.ts.map +1 -0
- package/dist/integrations/base-provider.js +80 -0
- package/dist/integrations/base-provider.js.map +1 -0
- package/dist/integrations/config-resolver.d.ts +62 -0
- package/dist/integrations/config-resolver.d.ts.map +1 -0
- package/dist/integrations/config-resolver.js +69 -0
- package/dist/integrations/config-resolver.js.map +1 -0
- package/dist/integrations/config-validator.d.ts +75 -0
- package/dist/integrations/config-validator.d.ts.map +1 -0
- package/dist/integrations/config-validator.js +129 -0
- package/dist/integrations/config-validator.js.map +1 -0
- package/dist/integrations/index.d.ts +14 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +20 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/plugin-loader.d.ts +69 -0
- package/dist/integrations/plugin-loader.d.ts.map +1 -0
- package/dist/integrations/plugin-loader.js +172 -0
- package/dist/integrations/plugin-loader.js.map +1 -0
- package/dist/integrations/registry.d.ts +67 -0
- package/dist/integrations/registry.d.ts.map +1 -0
- package/dist/integrations/registry.js +77 -0
- package/dist/integrations/registry.js.map +1 -0
- package/dist/integrations/sync-coordinator.d.ts +186 -0
- package/dist/integrations/sync-coordinator.d.ts.map +1 -0
- package/dist/integrations/sync-coordinator.js +776 -0
- package/dist/integrations/sync-coordinator.js.map +1 -0
- package/dist/integrations/types.d.ts +142 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +6 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/integrations/utils/conflict-resolver.d.ts +79 -0
- package/dist/integrations/utils/conflict-resolver.d.ts.map +1 -0
- package/dist/integrations/utils/conflict-resolver.js +106 -0
- package/dist/integrations/utils/conflict-resolver.js.map +1 -0
- package/dist/operations/external-links.d.ts +106 -0
- package/dist/operations/external-links.d.ts.map +1 -0
- package/dist/operations/external-links.js +300 -0
- package/dist/operations/external-links.js.map +1 -0
- package/dist/operations/feedback.d.ts.map +1 -1
- package/dist/operations/feedback.js +3 -1
- package/dist/operations/feedback.js.map +1 -1
- package/dist/operations/index.d.ts +1 -0
- package/dist/operations/index.d.ts.map +1 -1
- package/dist/operations/index.js +1 -0
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/issues.d.ts +2 -0
- package/dist/operations/issues.d.ts.map +1 -1
- package/dist/operations/issues.js +34 -5
- package/dist/operations/issues.js.map +1 -1
- package/dist/operations/relationships.d.ts.map +1 -1
- package/dist/operations/relationships.js +6 -2
- package/dist/operations/relationships.js.map +1 -1
- package/dist/operations/specs.d.ts +2 -0
- package/dist/operations/specs.d.ts.map +1 -1
- package/dist/operations/specs.js +32 -4
- package/dist/operations/specs.js.map +1 -1
- package/dist/sync.d.ts +3 -3
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +2 -0
- package/dist/sync.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +11 -6
- package/dist/watcher.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-coordinator.js","sourceRoot":"","sources":["../../src/integrations/sync-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration provider types for sudocode
|
|
3
|
+
* Defines interfaces for integration providers and the provider registry
|
|
4
|
+
*/
|
|
5
|
+
import type { Spec, Issue, ExternalEntity, ExternalChange, IntegrationConfig } from "@sudocode-ai/types";
|
|
6
|
+
/**
|
|
7
|
+
* Interface that all integration providers must implement
|
|
8
|
+
*
|
|
9
|
+
* Providers handle communication with external systems (Jira, Beads, etc.)
|
|
10
|
+
* and provide bidirectional sync capabilities.
|
|
11
|
+
*/
|
|
12
|
+
export interface IntegrationProvider {
|
|
13
|
+
/** Unique name of this provider (e.g., "jira", "beads") */
|
|
14
|
+
readonly name: string;
|
|
15
|
+
/** Whether this provider supports real-time watching for changes */
|
|
16
|
+
readonly supportsWatch: boolean;
|
|
17
|
+
/** Whether this provider supports polling for changes */
|
|
18
|
+
readonly supportsPolling: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the provider with configuration
|
|
21
|
+
* Called once before any other methods are used
|
|
22
|
+
*/
|
|
23
|
+
initialize(config: IntegrationConfig): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Validate that the provider is properly configured and can connect
|
|
26
|
+
* @returns Validation result with validity flag and any errors
|
|
27
|
+
*/
|
|
28
|
+
validate(): Promise<{
|
|
29
|
+
valid: boolean;
|
|
30
|
+
errors: string[];
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Clean up resources when the provider is no longer needed
|
|
34
|
+
*/
|
|
35
|
+
dispose(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Fetch a single entity from the external system
|
|
38
|
+
* @param externalId - The ID in the external system
|
|
39
|
+
* @returns The external entity, or null if not found
|
|
40
|
+
*/
|
|
41
|
+
fetchEntity(externalId: string): Promise<ExternalEntity | null>;
|
|
42
|
+
/**
|
|
43
|
+
* Search for entities in the external system
|
|
44
|
+
* @param query - Optional search query
|
|
45
|
+
* @returns Array of matching external entities
|
|
46
|
+
*/
|
|
47
|
+
searchEntities(query?: string): Promise<ExternalEntity[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Create a new entity in the external system
|
|
50
|
+
* @param entity - The sudocode entity to create externally
|
|
51
|
+
* @returns The ID of the newly created external entity
|
|
52
|
+
*/
|
|
53
|
+
createEntity(entity: Partial<Spec | Issue>): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Update an existing entity in the external system
|
|
56
|
+
* @param externalId - The ID in the external system
|
|
57
|
+
* @param entity - The updated sudocode entity data
|
|
58
|
+
*/
|
|
59
|
+
updateEntity(externalId: string, entity: Partial<Spec | Issue>): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Delete an entity from the external system (optional)
|
|
62
|
+
* @param externalId - The ID in the external system
|
|
63
|
+
*/
|
|
64
|
+
deleteEntity?(externalId: string): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Get changes that have occurred since a given timestamp
|
|
67
|
+
* Used for polling-based sync
|
|
68
|
+
* @param timestamp - Get changes after this time
|
|
69
|
+
* @returns Array of changes detected
|
|
70
|
+
*/
|
|
71
|
+
getChangesSince(timestamp: Date): Promise<ExternalChange[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Start watching for real-time changes (optional)
|
|
74
|
+
* @param callback - Function to call when changes are detected
|
|
75
|
+
*/
|
|
76
|
+
startWatching?(callback: (changes: ExternalChange[]) => void): void;
|
|
77
|
+
/**
|
|
78
|
+
* Stop watching for real-time changes (optional)
|
|
79
|
+
*/
|
|
80
|
+
stopWatching?(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Map an external entity to sudocode format
|
|
83
|
+
* @param external - The external entity
|
|
84
|
+
* @returns Partial spec and/or issue data
|
|
85
|
+
*/
|
|
86
|
+
mapToSudocode(external: ExternalEntity): {
|
|
87
|
+
spec?: Partial<Spec>;
|
|
88
|
+
issue?: Partial<Issue>;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Map a sudocode entity to external format
|
|
92
|
+
* @param entity - The sudocode spec or issue
|
|
93
|
+
* @returns Partial external entity data
|
|
94
|
+
*/
|
|
95
|
+
mapFromSudocode(entity: Spec | Issue): Partial<ExternalEntity>;
|
|
96
|
+
/**
|
|
97
|
+
* Parse an external ID into provider and ID components
|
|
98
|
+
* @param id - The external ID (may include provider prefix)
|
|
99
|
+
* @returns Object with provider name and ID
|
|
100
|
+
*/
|
|
101
|
+
parseExternalId(id: string): {
|
|
102
|
+
provider: string;
|
|
103
|
+
id: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Format an ID with the provider prefix
|
|
107
|
+
* @param id - The raw external ID
|
|
108
|
+
* @returns Formatted ID with provider prefix (e.g., "jira:PROJ-123")
|
|
109
|
+
*/
|
|
110
|
+
formatExternalId(id: string): string;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Registry for managing integration providers
|
|
114
|
+
*
|
|
115
|
+
* Provides a central place to register and look up providers by name.
|
|
116
|
+
*/
|
|
117
|
+
export interface ProviderRegistry {
|
|
118
|
+
/**
|
|
119
|
+
* Register a provider in the registry
|
|
120
|
+
* @param provider - The provider to register
|
|
121
|
+
* @throws Error if a provider with the same name is already registered
|
|
122
|
+
*/
|
|
123
|
+
register(provider: IntegrationProvider): void;
|
|
124
|
+
/**
|
|
125
|
+
* Get a provider by name
|
|
126
|
+
* @param name - The provider name
|
|
127
|
+
* @returns The provider, or undefined if not found
|
|
128
|
+
*/
|
|
129
|
+
get(name: string): IntegrationProvider | undefined;
|
|
130
|
+
/**
|
|
131
|
+
* Get all registered providers
|
|
132
|
+
* @returns Array of all providers
|
|
133
|
+
*/
|
|
134
|
+
getAll(): IntegrationProvider[];
|
|
135
|
+
/**
|
|
136
|
+
* Check if a provider is registered
|
|
137
|
+
* @param name - The provider name
|
|
138
|
+
* @returns True if registered
|
|
139
|
+
*/
|
|
140
|
+
has(name: string): boolean;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/integrations/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,KAAK,EACL,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,yDAAyD;IACzD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAMlC;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAMzB;;;;OAIG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEhE;;;;OAIG;IACH,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE1D;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7D;;;;OAIG;IACH,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAMjD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAM5D;;;OAGG;IACH,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAEpE;;OAEG;IACH,YAAY,CAAC,IAAI,IAAI,CAAC;IAMtB;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG;QACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;KACxB,CAAC;IAEF;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAM/D;;;;OAIG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAE9D;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE9C;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAEnD;;;OAGG;IACH,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAEhC;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/integrations/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conflict resolution utilities for sync operations
|
|
3
|
+
*
|
|
4
|
+
* Provides strategies for resolving conflicts when both sudocode
|
|
5
|
+
* and an external system have modified the same entity since last sync.
|
|
6
|
+
*/
|
|
7
|
+
import type { SyncConflict, ConflictResolution } from "@sudocode-ai/types";
|
|
8
|
+
/**
|
|
9
|
+
* Log entry for conflict resolution audit trail
|
|
10
|
+
*/
|
|
11
|
+
export interface ConflictLog {
|
|
12
|
+
/** When the conflict was resolved */
|
|
13
|
+
timestamp: string;
|
|
14
|
+
/** The conflict details */
|
|
15
|
+
conflict: SyncConflict;
|
|
16
|
+
/** How the conflict was resolved */
|
|
17
|
+
resolution: "sudocode" | "external" | "skip";
|
|
18
|
+
/** The strategy used to resolve */
|
|
19
|
+
strategy: ConflictResolution;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolve a conflict using the specified strategy
|
|
23
|
+
*
|
|
24
|
+
* @param conflict - The sync conflict to resolve
|
|
25
|
+
* @param strategy - The resolution strategy to use
|
|
26
|
+
* @returns The resolution decision
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const conflict = {
|
|
31
|
+
* sudocode_entity_id: 'i-abc',
|
|
32
|
+
* external_id: 'PROJ-123',
|
|
33
|
+
* provider: 'jira',
|
|
34
|
+
* sudocode_updated_at: '2025-01-01T12:00:00Z',
|
|
35
|
+
* external_updated_at: '2025-01-01T11:00:00Z',
|
|
36
|
+
* };
|
|
37
|
+
*
|
|
38
|
+
* // Sudocode is newer, so newest-wins returns 'sudocode'
|
|
39
|
+
* const resolution = resolveByStrategy(conflict, 'newest-wins');
|
|
40
|
+
* console.log(resolution); // 'sudocode'
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function resolveByStrategy(conflict: SyncConflict, strategy: ConflictResolution): "sudocode" | "external" | "skip";
|
|
44
|
+
/**
|
|
45
|
+
* Log a conflict resolution for audit purposes
|
|
46
|
+
*
|
|
47
|
+
* @param log - The conflict log entry
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* logConflict({
|
|
52
|
+
* timestamp: new Date().toISOString(),
|
|
53
|
+
* conflict: { ... },
|
|
54
|
+
* resolution: 'sudocode',
|
|
55
|
+
* strategy: 'newest-wins',
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function logConflict(log: ConflictLog): void;
|
|
60
|
+
/**
|
|
61
|
+
* Create a conflict log entry
|
|
62
|
+
*
|
|
63
|
+
* @param conflict - The sync conflict
|
|
64
|
+
* @param resolution - The resolution decision
|
|
65
|
+
* @param strategy - The strategy used
|
|
66
|
+
* @returns A complete conflict log entry
|
|
67
|
+
*/
|
|
68
|
+
export declare function createConflictLog(conflict: SyncConflict, resolution: "sudocode" | "external" | "skip", strategy: ConflictResolution): ConflictLog;
|
|
69
|
+
/**
|
|
70
|
+
* Determine if two timestamps represent a conflict
|
|
71
|
+
* (both updated since a reference time)
|
|
72
|
+
*
|
|
73
|
+
* @param sudocodeUpdated - When sudocode entity was updated
|
|
74
|
+
* @param externalUpdated - When external entity was updated
|
|
75
|
+
* @param lastSynced - When entities were last synced
|
|
76
|
+
* @returns True if both were updated since last sync
|
|
77
|
+
*/
|
|
78
|
+
export declare function isConflict(sudocodeUpdated: Date | string, externalUpdated: Date | string, lastSynced: Date | string): boolean;
|
|
79
|
+
//# sourceMappingURL=conflict-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict-resolver.d.ts","sourceRoot":"","sources":["../../../src/integrations/utils/conflict-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,oCAAoC;IACpC,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,mCAAmC;IACnC,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,kBAAkB,GAC3B,UAAU,GAAG,UAAU,GAAG,MAAM,CAqBlC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAYlD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,EAC5C,QAAQ,EAAE,kBAAkB,GAC3B,WAAW,CAOb;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,eAAe,EAAE,IAAI,GAAG,MAAM,EAC9B,eAAe,EAAE,IAAI,GAAG,MAAM,EAC9B,UAAU,EAAE,IAAI,GAAG,MAAM,GACxB,OAAO,CAMT"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conflict resolution utilities for sync operations
|
|
3
|
+
*
|
|
4
|
+
* Provides strategies for resolving conflicts when both sudocode
|
|
5
|
+
* and an external system have modified the same entity since last sync.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a conflict using the specified strategy
|
|
9
|
+
*
|
|
10
|
+
* @param conflict - The sync conflict to resolve
|
|
11
|
+
* @param strategy - The resolution strategy to use
|
|
12
|
+
* @returns The resolution decision
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const conflict = {
|
|
17
|
+
* sudocode_entity_id: 'i-abc',
|
|
18
|
+
* external_id: 'PROJ-123',
|
|
19
|
+
* provider: 'jira',
|
|
20
|
+
* sudocode_updated_at: '2025-01-01T12:00:00Z',
|
|
21
|
+
* external_updated_at: '2025-01-01T11:00:00Z',
|
|
22
|
+
* };
|
|
23
|
+
*
|
|
24
|
+
* // Sudocode is newer, so newest-wins returns 'sudocode'
|
|
25
|
+
* const resolution = resolveByStrategy(conflict, 'newest-wins');
|
|
26
|
+
* console.log(resolution); // 'sudocode'
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function resolveByStrategy(conflict, strategy) {
|
|
30
|
+
switch (strategy) {
|
|
31
|
+
case "sudocode-wins":
|
|
32
|
+
return "sudocode";
|
|
33
|
+
case "external-wins":
|
|
34
|
+
return "external";
|
|
35
|
+
case "newest-wins": {
|
|
36
|
+
const sudocodeTime = new Date(conflict.sudocode_updated_at).getTime();
|
|
37
|
+
const externalTime = new Date(conflict.external_updated_at).getTime();
|
|
38
|
+
// If timestamps are equal, prefer sudocode (arbitrary but consistent)
|
|
39
|
+
return sudocodeTime >= externalTime ? "sudocode" : "external";
|
|
40
|
+
}
|
|
41
|
+
case "manual":
|
|
42
|
+
default:
|
|
43
|
+
// Manual resolution requires external callback; skip by default
|
|
44
|
+
return "skip";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Log a conflict resolution for audit purposes
|
|
49
|
+
*
|
|
50
|
+
* @param log - The conflict log entry
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* logConflict({
|
|
55
|
+
* timestamp: new Date().toISOString(),
|
|
56
|
+
* conflict: { ... },
|
|
57
|
+
* resolution: 'sudocode',
|
|
58
|
+
* strategy: 'newest-wins',
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export function logConflict(log) {
|
|
63
|
+
// In a production system, this could write to a log file or emit events
|
|
64
|
+
// For now, just log to console in a structured format
|
|
65
|
+
console.warn("[Sync Conflict]", {
|
|
66
|
+
provider: log.conflict.provider,
|
|
67
|
+
entity: log.conflict.sudocode_entity_id,
|
|
68
|
+
external: log.conflict.external_id,
|
|
69
|
+
resolution: log.resolution,
|
|
70
|
+
strategy: log.strategy,
|
|
71
|
+
sudocode_updated: log.conflict.sudocode_updated_at,
|
|
72
|
+
external_updated: log.conflict.external_updated_at,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a conflict log entry
|
|
77
|
+
*
|
|
78
|
+
* @param conflict - The sync conflict
|
|
79
|
+
* @param resolution - The resolution decision
|
|
80
|
+
* @param strategy - The strategy used
|
|
81
|
+
* @returns A complete conflict log entry
|
|
82
|
+
*/
|
|
83
|
+
export function createConflictLog(conflict, resolution, strategy) {
|
|
84
|
+
return {
|
|
85
|
+
timestamp: new Date().toISOString(),
|
|
86
|
+
conflict,
|
|
87
|
+
resolution,
|
|
88
|
+
strategy,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Determine if two timestamps represent a conflict
|
|
93
|
+
* (both updated since a reference time)
|
|
94
|
+
*
|
|
95
|
+
* @param sudocodeUpdated - When sudocode entity was updated
|
|
96
|
+
* @param externalUpdated - When external entity was updated
|
|
97
|
+
* @param lastSynced - When entities were last synced
|
|
98
|
+
* @returns True if both were updated since last sync
|
|
99
|
+
*/
|
|
100
|
+
export function isConflict(sudocodeUpdated, externalUpdated, lastSynced) {
|
|
101
|
+
const sudocodeTime = new Date(sudocodeUpdated).getTime();
|
|
102
|
+
const externalTime = new Date(externalUpdated).getTime();
|
|
103
|
+
const syncTime = new Date(lastSynced).getTime();
|
|
104
|
+
return sudocodeTime > syncTime && externalTime > syncTime;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=conflict-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict-resolver.js","sourceRoot":"","sources":["../../../src/integrations/utils/conflict-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAsB,EACtB,QAA4B;IAE5B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,eAAe;YAClB,OAAO,UAAU,CAAC;QAEpB,KAAK,eAAe;YAClB,OAAO,UAAU,CAAC;QAEpB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;YACtE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;YAEtE,sEAAsE;YACtE,OAAO,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QAChE,CAAC;QAED,KAAK,QAAQ,CAAC;QACd;YACE,gEAAgE;YAChE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,GAAgB;IAC1C,wEAAwE;IACxE,sDAAsD;IACtD,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ;QAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,kBAAkB;QACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW;QAClC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB;QAClD,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB;KACnD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAsB,EACtB,UAA4C,EAC5C,QAA4B;IAE5B,OAAO;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ;QACR,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,eAA8B,EAC9B,eAA8B,EAC9B,UAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IAEhD,OAAO,YAAY,GAAG,QAAQ,IAAI,YAAY,GAAG,QAAQ,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External link operations for Specs and Issues
|
|
3
|
+
* External links are stored in JSONL (not SQLite), so these operations
|
|
4
|
+
* work directly with JSONL files.
|
|
5
|
+
*/
|
|
6
|
+
import type { ExternalLink, SpecJSONL, IssueJSONL, IntegrationProviderName, IssueStatus, SyncDirection } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Get a spec from JSONL by ID
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSpecFromJsonl(sudocodeDir: string, specId: string): SpecJSONL | null;
|
|
11
|
+
/**
|
|
12
|
+
* Add an external link to a spec
|
|
13
|
+
*/
|
|
14
|
+
export declare function addExternalLinkToSpec(sudocodeDir: string, specId: string, link: ExternalLink): SpecJSONL;
|
|
15
|
+
/**
|
|
16
|
+
* Remove an external link from a spec
|
|
17
|
+
*/
|
|
18
|
+
export declare function removeExternalLinkFromSpec(sudocodeDir: string, specId: string, externalId: string): SpecJSONL;
|
|
19
|
+
/**
|
|
20
|
+
* Update sync metadata for an external link on a spec
|
|
21
|
+
*/
|
|
22
|
+
export declare function updateSpecExternalLinkSync(sudocodeDir: string, specId: string, externalId: string, updates: Partial<Pick<ExternalLink, "last_synced_at" | "external_updated_at" | "sync_enabled">>): SpecJSONL;
|
|
23
|
+
/**
|
|
24
|
+
* Find specs by external link
|
|
25
|
+
*/
|
|
26
|
+
export declare function findSpecsByExternalLink(sudocodeDir: string, provider: IntegrationProviderName, externalId: string): SpecJSONL[];
|
|
27
|
+
/**
|
|
28
|
+
* Get all external links for a spec
|
|
29
|
+
*/
|
|
30
|
+
export declare function getSpecExternalLinks(sudocodeDir: string, specId: string): ExternalLink[];
|
|
31
|
+
/**
|
|
32
|
+
* Get an issue from JSONL by ID
|
|
33
|
+
*/
|
|
34
|
+
export declare function getIssueFromJsonl(sudocodeDir: string, issueId: string): IssueJSONL | null;
|
|
35
|
+
/**
|
|
36
|
+
* Add an external link to an issue
|
|
37
|
+
*/
|
|
38
|
+
export declare function addExternalLinkToIssue(sudocodeDir: string, issueId: string, link: ExternalLink): IssueJSONL;
|
|
39
|
+
/**
|
|
40
|
+
* Remove an external link from an issue
|
|
41
|
+
*/
|
|
42
|
+
export declare function removeExternalLinkFromIssue(sudocodeDir: string, issueId: string, externalId: string): IssueJSONL;
|
|
43
|
+
/**
|
|
44
|
+
* Update sync metadata for an external link on an issue
|
|
45
|
+
*/
|
|
46
|
+
export declare function updateIssueExternalLinkSync(sudocodeDir: string, issueId: string, externalId: string, updates: Partial<Pick<ExternalLink, "last_synced_at" | "external_updated_at" | "sync_enabled">>): IssueJSONL;
|
|
47
|
+
/**
|
|
48
|
+
* Find issues by external link
|
|
49
|
+
*/
|
|
50
|
+
export declare function findIssuesByExternalLink(sudocodeDir: string, provider: IntegrationProviderName, externalId: string): IssueJSONL[];
|
|
51
|
+
/**
|
|
52
|
+
* Get all external links for an issue
|
|
53
|
+
*/
|
|
54
|
+
export declare function getIssueExternalLinks(sudocodeDir: string, issueId: string): ExternalLink[];
|
|
55
|
+
/**
|
|
56
|
+
* Find all entities (specs and issues) by external link
|
|
57
|
+
*/
|
|
58
|
+
export declare function findEntitiesByExternalLink(sudocodeDir: string, provider: IntegrationProviderName, externalId: string): {
|
|
59
|
+
specs: SpecJSONL[];
|
|
60
|
+
issues: IssueJSONL[];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Input for creating an issue from an external entity
|
|
64
|
+
*/
|
|
65
|
+
export interface CreateIssueFromExternalInput {
|
|
66
|
+
/** Issue title */
|
|
67
|
+
title: string;
|
|
68
|
+
/** Issue content/description */
|
|
69
|
+
content?: string;
|
|
70
|
+
/** Issue status */
|
|
71
|
+
status?: IssueStatus;
|
|
72
|
+
/** Priority (0-4) */
|
|
73
|
+
priority?: number;
|
|
74
|
+
/** External system info for auto-linking */
|
|
75
|
+
external: {
|
|
76
|
+
provider: IntegrationProviderName;
|
|
77
|
+
external_id: string;
|
|
78
|
+
sync_direction?: SyncDirection;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create a new sudocode issue from an external entity
|
|
83
|
+
* Automatically establishes the external_link
|
|
84
|
+
*
|
|
85
|
+
* @param sudocodeDir - Path to .sudocode directory
|
|
86
|
+
* @param input - Issue data and external link info
|
|
87
|
+
* @returns The created issue
|
|
88
|
+
*/
|
|
89
|
+
export declare function createIssueFromExternal(sudocodeDir: string, input: CreateIssueFromExternalInput): IssueJSONL;
|
|
90
|
+
/**
|
|
91
|
+
* Delete an issue by ID
|
|
92
|
+
*
|
|
93
|
+
* @param sudocodeDir - Path to .sudocode directory
|
|
94
|
+
* @param issueId - ID of issue to delete
|
|
95
|
+
* @returns true if deleted, false if not found
|
|
96
|
+
*/
|
|
97
|
+
export declare function deleteIssueFromJsonl(sudocodeDir: string, issueId: string): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Close an issue (set status to 'closed')
|
|
100
|
+
*
|
|
101
|
+
* @param sudocodeDir - Path to .sudocode directory
|
|
102
|
+
* @param issueId - ID of issue to close
|
|
103
|
+
* @returns The closed issue, or null if not found
|
|
104
|
+
*/
|
|
105
|
+
export declare function closeIssueInJsonl(sudocodeDir: string, issueId: string): IssueJSONL | null;
|
|
106
|
+
//# sourceMappingURL=external-links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-links.d.ts","sourceRoot":"","sources":["../../src/operations/external-links.ts"],"names":[],"mappings":"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"}
|