obsidian-accomplishments-mcp 0.1.10 → 0.1.12
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/README.md +156 -184
- package/dist/index.js +207 -38
- package/dist/index.js.map +1 -1
- package/dist/integration.test.d.ts +8 -0
- package/dist/integration.test.d.ts.map +1 -0
- package/dist/integration.test.js +979 -0
- package/dist/integration.test.js.map +1 -0
- package/dist/models/types.d.ts +1 -2
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/models/v2-types.d.ts +460 -0
- package/dist/models/v2-types.d.ts.map +1 -0
- package/dist/models/v2-types.js +137 -0
- package/dist/models/v2-types.js.map +1 -0
- package/dist/models/v2-types.test.d.ts +5 -0
- package/dist/models/v2-types.test.d.ts.map +1 -0
- package/dist/models/v2-types.test.js +133 -0
- package/dist/models/v2-types.test.js.map +1 -0
- package/dist/parsers/canvas-parser.d.ts +1 -1
- package/dist/parsers/canvas-parser.d.ts.map +1 -1
- package/dist/parsers/canvas-parser.js +1 -1
- package/dist/parsers/canvas-parser.js.map +1 -1
- package/dist/parsers/markdown-parser.js +9 -9
- package/dist/parsers/markdown-parser.js.map +1 -1
- package/dist/services/v2/archive-manager.d.ts +96 -0
- package/dist/services/v2/archive-manager.d.ts.map +1 -0
- package/dist/services/v2/archive-manager.js +281 -0
- package/dist/services/v2/archive-manager.js.map +1 -0
- package/dist/services/v2/canvas-manager.d.ts +155 -0
- package/dist/services/v2/canvas-manager.d.ts.map +1 -0
- package/dist/services/v2/canvas-manager.js +540 -0
- package/dist/services/v2/canvas-manager.js.map +1 -0
- package/dist/services/v2/canvas-manager.test.d.ts +5 -0
- package/dist/services/v2/canvas-manager.test.d.ts.map +1 -0
- package/dist/services/v2/canvas-manager.test.js +327 -0
- package/dist/services/v2/canvas-manager.test.js.map +1 -0
- package/dist/services/v2/cascade-manager.d.ts +54 -0
- package/dist/services/v2/cascade-manager.d.ts.map +1 -0
- package/dist/services/v2/cascade-manager.js +220 -0
- package/dist/services/v2/cascade-manager.js.map +1 -0
- package/dist/services/v2/cycle-detector.d.ts +76 -0
- package/dist/services/v2/cycle-detector.d.ts.map +1 -0
- package/dist/services/v2/cycle-detector.js +183 -0
- package/dist/services/v2/cycle-detector.js.map +1 -0
- package/dist/services/v2/cycle-detector.test.d.ts +7 -0
- package/dist/services/v2/cycle-detector.test.d.ts.map +1 -0
- package/dist/services/v2/cycle-detector.test.js +125 -0
- package/dist/services/v2/cycle-detector.test.js.map +1 -0
- package/dist/services/v2/entity-parser.d.ts +54 -0
- package/dist/services/v2/entity-parser.d.ts.map +1 -0
- package/dist/services/v2/entity-parser.js +418 -0
- package/dist/services/v2/entity-parser.js.map +1 -0
- package/dist/services/v2/entity-parser.test.d.ts +5 -0
- package/dist/services/v2/entity-parser.test.d.ts.map +1 -0
- package/dist/services/v2/entity-parser.test.js +637 -0
- package/dist/services/v2/entity-parser.test.js.map +1 -0
- package/dist/services/v2/entity-serializer.d.ts +94 -0
- package/dist/services/v2/entity-serializer.d.ts.map +1 -0
- package/dist/services/v2/entity-serializer.js +583 -0
- package/dist/services/v2/entity-serializer.js.map +1 -0
- package/dist/services/v2/entity-serializer.test.d.ts +5 -0
- package/dist/services/v2/entity-serializer.test.d.ts.map +1 -0
- package/dist/services/v2/entity-serializer.test.js +241 -0
- package/dist/services/v2/entity-serializer.test.js.map +1 -0
- package/dist/services/v2/entity-validator.d.ts +65 -0
- package/dist/services/v2/entity-validator.d.ts.map +1 -0
- package/dist/services/v2/entity-validator.js +573 -0
- package/dist/services/v2/entity-validator.js.map +1 -0
- package/dist/services/v2/entity-validator.test.d.ts +5 -0
- package/dist/services/v2/entity-validator.test.d.ts.map +1 -0
- package/dist/services/v2/entity-validator.test.js +519 -0
- package/dist/services/v2/entity-validator.test.js.map +1 -0
- package/dist/services/v2/file-manager.d.ts +73 -0
- package/dist/services/v2/file-manager.d.ts.map +1 -0
- package/dist/services/v2/file-manager.js +310 -0
- package/dist/services/v2/file-manager.js.map +1 -0
- package/dist/services/v2/file-manager.test.d.ts +5 -0
- package/dist/services/v2/file-manager.test.d.ts.map +1 -0
- package/dist/services/v2/file-manager.test.js +339 -0
- package/dist/services/v2/file-manager.test.js.map +1 -0
- package/dist/services/v2/index-manager.d.ts +68 -0
- package/dist/services/v2/index-manager.d.ts.map +1 -0
- package/dist/services/v2/index-manager.js +228 -0
- package/dist/services/v2/index-manager.js.map +1 -0
- package/dist/services/v2/index-manager.test.d.ts +5 -0
- package/dist/services/v2/index-manager.test.d.ts.map +1 -0
- package/dist/services/v2/index-manager.test.js +386 -0
- package/dist/services/v2/index-manager.test.js.map +1 -0
- package/dist/services/v2/index-service.d.ts +82 -0
- package/dist/services/v2/index-service.d.ts.map +1 -0
- package/dist/services/v2/index-service.js +274 -0
- package/dist/services/v2/index-service.js.map +1 -0
- package/dist/services/v2/index-service.test.d.ts +5 -0
- package/dist/services/v2/index-service.test.d.ts.map +1 -0
- package/dist/services/v2/index-service.test.js +117 -0
- package/dist/services/v2/index-service.test.js.map +1 -0
- package/dist/services/v2/lifecycle-manager.d.ts +59 -0
- package/dist/services/v2/lifecycle-manager.d.ts.map +1 -0
- package/dist/services/v2/lifecycle-manager.js +310 -0
- package/dist/services/v2/lifecycle-manager.js.map +1 -0
- package/dist/services/v2/lifecycle-manager.test.d.ts +5 -0
- package/dist/services/v2/lifecycle-manager.test.d.ts.map +1 -0
- package/dist/services/v2/lifecycle-manager.test.js +141 -0
- package/dist/services/v2/lifecycle-manager.test.js.map +1 -0
- package/dist/services/v2/path-resolver.d.ts +64 -0
- package/dist/services/v2/path-resolver.d.ts.map +1 -0
- package/dist/services/v2/path-resolver.js +174 -0
- package/dist/services/v2/path-resolver.js.map +1 -0
- package/dist/services/v2/progress-computer.d.ts +46 -0
- package/dist/services/v2/progress-computer.d.ts.map +1 -0
- package/dist/services/v2/progress-computer.js +200 -0
- package/dist/services/v2/progress-computer.js.map +1 -0
- package/dist/services/v2/search-service.d.ts +68 -0
- package/dist/services/v2/search-service.d.ts.map +1 -0
- package/dist/services/v2/search-service.js +194 -0
- package/dist/services/v2/search-service.js.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.d.ts +54 -0
- package/dist/services/v2/transitive-dependency-remover.d.ts.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.js +156 -0
- package/dist/services/v2/transitive-dependency-remover.js.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.test.d.ts +7 -0
- package/dist/services/v2/transitive-dependency-remover.test.d.ts.map +1 -0
- package/dist/services/v2/transitive-dependency-remover.test.js +119 -0
- package/dist/services/v2/transitive-dependency-remover.test.js.map +1 -0
- package/dist/services/v2/v2-runtime.d.ts +374 -0
- package/dist/services/v2/v2-runtime.d.ts.map +1 -0
- package/dist/services/v2/v2-runtime.js +1908 -0
- package/dist/services/v2/v2-runtime.js.map +1 -0
- package/dist/services/v2/v2-runtime.test.d.ts +5 -0
- package/dist/services/v2/v2-runtime.test.d.ts.map +1 -0
- package/dist/services/v2/v2-runtime.test.js +658 -0
- package/dist/services/v2/v2-runtime.test.js.map +1 -0
- package/dist/services/v2/workstream-normalizer.d.ts +59 -0
- package/dist/services/v2/workstream-normalizer.d.ts.map +1 -0
- package/dist/services/v2/workstream-normalizer.js +137 -0
- package/dist/services/v2/workstream-normalizer.js.map +1 -0
- package/dist/services/v2/workstream-normalizer.test.d.ts +7 -0
- package/dist/services/v2/workstream-normalizer.test.d.ts.map +1 -0
- package/dist/services/v2/workstream-normalizer.test.js +130 -0
- package/dist/services/v2/workstream-normalizer.test.js.map +1 -0
- package/dist/test-runner.d.ts +4 -1
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +44 -249
- package/dist/test-runner.js.map +1 -1
- package/dist/tools/batch-operations-tools.d.ts +54 -0
- package/dist/tools/batch-operations-tools.d.ts.map +1 -0
- package/dist/tools/batch-operations-tools.js +370 -0
- package/dist/tools/batch-operations-tools.js.map +1 -0
- package/dist/tools/decision-document-tools.d.ts +78 -0
- package/dist/tools/decision-document-tools.d.ts.map +1 -0
- package/dist/tools/decision-document-tools.js +260 -0
- package/dist/tools/decision-document-tools.js.map +1 -0
- package/dist/tools/entity-management-tools.d.ts +79 -0
- package/dist/tools/entity-management-tools.d.ts.map +1 -0
- package/dist/tools/entity-management-tools.js +851 -0
- package/dist/tools/entity-management-tools.js.map +1 -0
- package/dist/tools/entity-management-tools.test.d.ts +5 -0
- package/dist/tools/entity-management-tools.test.d.ts.map +1 -0
- package/dist/tools/entity-management-tools.test.js +530 -0
- package/dist/tools/entity-management-tools.test.js.map +1 -0
- package/dist/tools/index.d.ts +15 -331
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +510 -47
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/index.test.d.ts +8 -0
- package/dist/tools/index.test.d.ts.map +1 -0
- package/dist/tools/index.test.js +429 -0
- package/dist/tools/index.test.js.map +1 -0
- package/dist/tools/project-understanding-tools.d.ts +75 -0
- package/dist/tools/project-understanding-tools.d.ts.map +1 -0
- package/dist/tools/project-understanding-tools.js +751 -0
- package/dist/tools/project-understanding-tools.js.map +1 -0
- package/dist/tools/search-navigation-tools.d.ts +77 -0
- package/dist/tools/search-navigation-tools.d.ts.map +1 -0
- package/dist/tools/search-navigation-tools.js +379 -0
- package/dist/tools/search-navigation-tools.js.map +1 -0
- package/dist/tools/tool-types.d.ts +703 -0
- package/dist/tools/tool-types.d.ts.map +1 -0
- package/dist/tools/tool-types.js +7 -0
- package/dist/tools/tool-types.js.map +1 -0
- package/dist/utils/config.d.ts +0 -4
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +2 -19
- package/dist/utils/config.js.map +1 -1
- package/package.json +16 -1
- package/dist/services/accomplishment-service.d.ts +0 -33
- package/dist/services/accomplishment-service.d.ts.map +0 -1
- package/dist/services/accomplishment-service.js +0 -296
- package/dist/services/accomplishment-service.js.map +0 -1
- package/dist/services/canvas-service.d.ts +0 -96
- package/dist/services/canvas-service.d.ts.map +0 -1
- package/dist/services/canvas-service.js +0 -231
- package/dist/services/canvas-service.js.map +0 -1
- package/dist/services/context-doc-service.d.ts +0 -70
- package/dist/services/context-doc-service.d.ts.map +0 -1
- package/dist/services/context-doc-service.js +0 -229
- package/dist/services/context-doc-service.js.map +0 -1
- package/dist/services/dependency-service.d.ts +0 -22
- package/dist/services/dependency-service.d.ts.map +0 -1
- package/dist/services/dependency-service.js +0 -99
- package/dist/services/dependency-service.js.map +0 -1
- package/dist/services/status-indicator-service.d.ts +0 -40
- package/dist/services/status-indicator-service.d.ts.map +0 -1
- package/dist/services/status-indicator-service.js +0 -173
- package/dist/services/status-indicator-service.js.map +0 -1
- package/dist/services/task-service.d.ts +0 -32
- package/dist/services/task-service.d.ts.map +0 -1
- package/dist/services/task-service.js +0 -152
- package/dist/services/task-service.js.map +0 -1
- package/dist/test-real-vault.d.ts +0 -6
- package/dist/test-real-vault.d.ts.map +0 -1
- package/dist/test-real-vault.js +0 -30
- package/dist/test-real-vault.js.map +0 -1
- package/dist/tools/batch-operations.d.ts +0 -246
- package/dist/tools/batch-operations.d.ts.map +0 -1
- package/dist/tools/batch-operations.js +0 -235
- package/dist/tools/batch-operations.js.map +0 -1
- package/dist/tools/get-accomplishment.d.ts +0 -42
- package/dist/tools/get-accomplishment.d.ts.map +0 -1
- package/dist/tools/get-accomplishment.js +0 -93
- package/dist/tools/get-accomplishment.js.map +0 -1
- package/dist/tools/get-accomplishments-graph.d.ts +0 -26
- package/dist/tools/get-accomplishments-graph.d.ts.map +0 -1
- package/dist/tools/get-accomplishments-graph.js +0 -137
- package/dist/tools/get-accomplishments-graph.js.map +0 -1
- package/dist/tools/get-blocked-items.d.ts +0 -15
- package/dist/tools/get-blocked-items.d.ts.map +0 -1
- package/dist/tools/get-blocked-items.js +0 -73
- package/dist/tools/get-blocked-items.js.map +0 -1
- package/dist/tools/get-current-work.d.ts +0 -15
- package/dist/tools/get-current-work.d.ts.map +0 -1
- package/dist/tools/get-current-work.js +0 -68
- package/dist/tools/get-current-work.js.map +0 -1
- package/dist/tools/get-project-status.d.ts +0 -26
- package/dist/tools/get-project-status.d.ts.map +0 -1
- package/dist/tools/get-project-status.js +0 -98
- package/dist/tools/get-project-status.js.map +0 -1
- package/dist/tools/get-ready-to-start.d.ts +0 -15
- package/dist/tools/get-ready-to-start.d.ts.map +0 -1
- package/dist/tools/get-ready-to-start.js +0 -47
- package/dist/tools/get-ready-to-start.js.map +0 -1
- package/dist/tools/list-accomplishments.d.ts +0 -42
- package/dist/tools/list-accomplishments.d.ts.map +0 -1
- package/dist/tools/list-accomplishments.js +0 -40
- package/dist/tools/list-accomplishments.js.map +0 -1
- package/dist/tools/manage-accomplishment.d.ts +0 -147
- package/dist/tools/manage-accomplishment.d.ts.map +0 -1
- package/dist/tools/manage-accomplishment.js +0 -153
- package/dist/tools/manage-accomplishment.js.map +0 -1
- package/dist/tools/manage-dependency.d.ts +0 -41
- package/dist/tools/manage-dependency.d.ts.map +0 -1
- package/dist/tools/manage-dependency.js +0 -66
- package/dist/tools/manage-dependency.js.map +0 -1
- package/dist/tools/manage-task.d.ts +0 -119
- package/dist/tools/manage-task.d.ts.map +0 -1
- package/dist/tools/manage-task.js +0 -126
- package/dist/tools/manage-task.js.map +0 -1
- package/dist/tools/reconcile-canvas.d.ts +0 -33
- package/dist/tools/reconcile-canvas.d.ts.map +0 -1
- package/dist/tools/reconcile-canvas.js +0 -41
- package/dist/tools/reconcile-canvas.js.map +0 -1
- package/dist/tools/set-work-focus.d.ts +0 -48
- package/dist/tools/set-work-focus.d.ts.map +0 -1
- package/dist/tools/set-work-focus.js +0 -78
- package/dist/tools/set-work-focus.js.map +0 -1
- package/dist/tools/sync-dependencies.d.ts +0 -33
- package/dist/tools/sync-dependencies.d.ts.map +0 -1
- package/dist/tools/sync-dependencies.js +0 -144
- package/dist/tools/sync-dependencies.js.map +0 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 Entity Types and Interfaces
|
|
3
|
+
*
|
|
4
|
+
* This file defines the hierarchical entity system for the Obsidian MCP Server V2.
|
|
5
|
+
* Entity types: Milestone, Story, Task, Decision, Document
|
|
6
|
+
*
|
|
7
|
+
* @version 2.0
|
|
8
|
+
*/
|
|
9
|
+
/** Valid entity type values */
|
|
10
|
+
export const ENTITY_TYPES = ['milestone', 'story', 'task', 'decision', 'document', 'feature'];
|
|
11
|
+
/** Type guard for EntityType */
|
|
12
|
+
export function isEntityType(value) {
|
|
13
|
+
return typeof value === 'string' && ENTITY_TYPES.includes(value);
|
|
14
|
+
}
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// ID Validation Patterns
|
|
17
|
+
// =============================================================================
|
|
18
|
+
/** Regex patterns for validating entity IDs */
|
|
19
|
+
export const ID_PATTERNS = {
|
|
20
|
+
milestone: /^M-(\d{3,})$/,
|
|
21
|
+
story: /^S-(\d{3,})$/,
|
|
22
|
+
task: /^T-(\d{3,})$/,
|
|
23
|
+
decision: /^DEC-(\d{3,})$/,
|
|
24
|
+
document: /^DOC-(\d{3,})$/,
|
|
25
|
+
feature: /^F-(\d{3,})$/,
|
|
26
|
+
};
|
|
27
|
+
/** ID prefixes by entity type */
|
|
28
|
+
export const ID_PREFIXES = {
|
|
29
|
+
milestone: 'M',
|
|
30
|
+
story: 'S',
|
|
31
|
+
task: 'T',
|
|
32
|
+
decision: 'DEC',
|
|
33
|
+
document: 'DOC',
|
|
34
|
+
feature: 'F',
|
|
35
|
+
};
|
|
36
|
+
// =============================================================================
|
|
37
|
+
// Type Guards
|
|
38
|
+
// =============================================================================
|
|
39
|
+
/** Check if a string is a valid Milestone ID */
|
|
40
|
+
export function isMilestoneId(id) {
|
|
41
|
+
return ID_PATTERNS.milestone.test(id);
|
|
42
|
+
}
|
|
43
|
+
/** Check if a string is a valid Story ID */
|
|
44
|
+
export function isStoryId(id) {
|
|
45
|
+
return ID_PATTERNS.story.test(id);
|
|
46
|
+
}
|
|
47
|
+
/** Check if a string is a valid Task ID */
|
|
48
|
+
export function isTaskId(id) {
|
|
49
|
+
return ID_PATTERNS.task.test(id);
|
|
50
|
+
}
|
|
51
|
+
/** Check if a string is a valid Decision ID */
|
|
52
|
+
export function isDecisionId(id) {
|
|
53
|
+
return ID_PATTERNS.decision.test(id);
|
|
54
|
+
}
|
|
55
|
+
/** Check if a string is a valid Document ID */
|
|
56
|
+
export function isDocumentId(id) {
|
|
57
|
+
return ID_PATTERNS.document.test(id);
|
|
58
|
+
}
|
|
59
|
+
/** Check if a string is a valid Feature ID */
|
|
60
|
+
export function isFeatureId(id) {
|
|
61
|
+
return ID_PATTERNS.feature.test(id);
|
|
62
|
+
}
|
|
63
|
+
/** Check if a string is any valid Entity ID */
|
|
64
|
+
export function isEntityId(id) {
|
|
65
|
+
return isMilestoneId(id) || isStoryId(id) || isTaskId(id) || isDecisionId(id) || isDocumentId(id) || isFeatureId(id);
|
|
66
|
+
}
|
|
67
|
+
/** Get entity type from ID */
|
|
68
|
+
export function getEntityTypeFromId(id) {
|
|
69
|
+
if (isMilestoneId(id))
|
|
70
|
+
return 'milestone';
|
|
71
|
+
if (isStoryId(id))
|
|
72
|
+
return 'story';
|
|
73
|
+
if (isTaskId(id))
|
|
74
|
+
return 'task';
|
|
75
|
+
if (isDecisionId(id))
|
|
76
|
+
return 'decision';
|
|
77
|
+
if (isDocumentId(id))
|
|
78
|
+
return 'document';
|
|
79
|
+
if (isFeatureId(id))
|
|
80
|
+
return 'feature';
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/** Parse numeric part from entity ID */
|
|
84
|
+
export function parseIdNumber(id) {
|
|
85
|
+
const match = id.match(/\d+$/);
|
|
86
|
+
return match ? parseInt(match[0], 10) : 0;
|
|
87
|
+
}
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// Error Types
|
|
90
|
+
// =============================================================================
|
|
91
|
+
/** Base MCP error class */
|
|
92
|
+
export class MCPError extends Error {
|
|
93
|
+
code;
|
|
94
|
+
statusCode;
|
|
95
|
+
constructor(message, code, statusCode = 500) {
|
|
96
|
+
super(message);
|
|
97
|
+
this.code = code;
|
|
98
|
+
this.statusCode = statusCode;
|
|
99
|
+
this.name = 'MCPError';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Entity not found error */
|
|
103
|
+
export class NotFoundError extends MCPError {
|
|
104
|
+
constructor(message) {
|
|
105
|
+
super(message, 'NOT_FOUND', 404);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** Validation error */
|
|
109
|
+
export class ValidationError extends MCPError {
|
|
110
|
+
constructor(message) {
|
|
111
|
+
super(message, 'VALIDATION_ERROR', 400);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Conflict error (e.g., duplicate ID) */
|
|
115
|
+
export class ConflictError extends MCPError {
|
|
116
|
+
constructor(message) {
|
|
117
|
+
super(message, 'CONFLICT', 409);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Invalid state transition error */
|
|
121
|
+
export class StateTransitionError extends MCPError {
|
|
122
|
+
constructor(message) {
|
|
123
|
+
super(message, 'INVALID_STATE_TRANSITION', 400);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/** File operation error */
|
|
127
|
+
export class FileOperationError extends MCPError {
|
|
128
|
+
operation;
|
|
129
|
+
path;
|
|
130
|
+
constructor(message, operation, path) {
|
|
131
|
+
super(message, 'FILE_OPERATION_ERROR', 500);
|
|
132
|
+
this.operation = operation;
|
|
133
|
+
this.path = path;
|
|
134
|
+
this.name = 'FileOperationError';
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=v2-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v2-types.js","sourceRoot":"","sources":["../../src/models/v2-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v2-types.test.d.ts","sourceRoot":"","sources":["../../src/models/v2-types.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for V2 Entity Types
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from 'vitest';
|
|
5
|
+
import { isEntityType, isMilestoneId, isStoryId, isTaskId, isDecisionId, isDocumentId, getEntityTypeFromId, } from './v2-types.js';
|
|
6
|
+
describe('v2-types', () => {
|
|
7
|
+
describe('isEntityType', () => {
|
|
8
|
+
it('should return true for valid entity types', () => {
|
|
9
|
+
expect(isEntityType('milestone')).toBe(true);
|
|
10
|
+
expect(isEntityType('story')).toBe(true);
|
|
11
|
+
expect(isEntityType('task')).toBe(true);
|
|
12
|
+
expect(isEntityType('decision')).toBe(true);
|
|
13
|
+
expect(isEntityType('document')).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it('should return false for invalid entity types', () => {
|
|
16
|
+
expect(isEntityType('invalid')).toBe(false);
|
|
17
|
+
expect(isEntityType('')).toBe(false);
|
|
18
|
+
expect(isEntityType('accomplishment')).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe('ID type guards', () => {
|
|
22
|
+
describe('isMilestoneId', () => {
|
|
23
|
+
it('should return true for valid milestone IDs', () => {
|
|
24
|
+
expect(isMilestoneId('M-001')).toBe(true);
|
|
25
|
+
expect(isMilestoneId('M-999')).toBe(true);
|
|
26
|
+
expect(isMilestoneId('M-12345')).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
it('should return false for invalid milestone IDs', () => {
|
|
29
|
+
expect(isMilestoneId('S-001')).toBe(false);
|
|
30
|
+
expect(isMilestoneId('M001')).toBe(false);
|
|
31
|
+
expect(isMilestoneId('m-001')).toBe(false);
|
|
32
|
+
expect(isMilestoneId('')).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('isStoryId', () => {
|
|
36
|
+
it('should return true for valid story IDs', () => {
|
|
37
|
+
expect(isStoryId('S-001')).toBe(true);
|
|
38
|
+
expect(isStoryId('S-999')).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
it('should return false for invalid story IDs', () => {
|
|
41
|
+
expect(isStoryId('M-001')).toBe(false);
|
|
42
|
+
expect(isStoryId('s-001')).toBe(false);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('isTaskId', () => {
|
|
46
|
+
it('should return true for valid task IDs', () => {
|
|
47
|
+
expect(isTaskId('T-001')).toBe(true);
|
|
48
|
+
expect(isTaskId('T-999')).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
it('should return false for invalid task IDs', () => {
|
|
51
|
+
expect(isTaskId('M-001')).toBe(false);
|
|
52
|
+
expect(isTaskId('t-001')).toBe(false);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe('isDecisionId', () => {
|
|
56
|
+
it('should return true for valid decision IDs', () => {
|
|
57
|
+
expect(isDecisionId('DEC-001')).toBe(true);
|
|
58
|
+
expect(isDecisionId('DEC-999')).toBe(true);
|
|
59
|
+
});
|
|
60
|
+
it('should return false for invalid decision IDs', () => {
|
|
61
|
+
expect(isDecisionId('M-001')).toBe(false);
|
|
62
|
+
expect(isDecisionId('dec-001')).toBe(false);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('isDocumentId', () => {
|
|
66
|
+
it('should return true for valid document IDs', () => {
|
|
67
|
+
expect(isDocumentId('DOC-001')).toBe(true);
|
|
68
|
+
expect(isDocumentId('DOC-999')).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
it('should return false for invalid document IDs', () => {
|
|
71
|
+
expect(isDocumentId('M-001')).toBe(false);
|
|
72
|
+
expect(isDocumentId('doc-001')).toBe(false);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('getEntityTypeFromId', () => {
|
|
77
|
+
it('should return correct entity type for valid IDs', () => {
|
|
78
|
+
expect(getEntityTypeFromId('M-001')).toBe('milestone');
|
|
79
|
+
expect(getEntityTypeFromId('S-001')).toBe('story');
|
|
80
|
+
expect(getEntityTypeFromId('T-001')).toBe('task');
|
|
81
|
+
expect(getEntityTypeFromId('DEC-001')).toBe('decision');
|
|
82
|
+
expect(getEntityTypeFromId('DOC-001')).toBe('document');
|
|
83
|
+
});
|
|
84
|
+
it('should return null for invalid IDs', () => {
|
|
85
|
+
expect(getEntityTypeFromId('invalid')).toBeNull();
|
|
86
|
+
expect(getEntityTypeFromId('ACC-001')).toBeNull();
|
|
87
|
+
expect(getEntityTypeFromId('')).toBeNull();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe('Entity interfaces', () => {
|
|
91
|
+
it('should allow creating valid Milestone objects', () => {
|
|
92
|
+
const milestone = {
|
|
93
|
+
id: 'M-001',
|
|
94
|
+
type: 'milestone',
|
|
95
|
+
title: 'Q1 Release',
|
|
96
|
+
workstream: 'engineering',
|
|
97
|
+
status: 'In Progress',
|
|
98
|
+
archived: false,
|
|
99
|
+
created_at: '2024-01-01',
|
|
100
|
+
updated_at: '2024-01-15',
|
|
101
|
+
vault_path: '/milestones/M-001.md',
|
|
102
|
+
canvas_source: '/canvas.canvas',
|
|
103
|
+
cssclasses: [],
|
|
104
|
+
target_date: '2024-03-31',
|
|
105
|
+
priority: 'High',
|
|
106
|
+
depends_on: [],
|
|
107
|
+
};
|
|
108
|
+
expect(milestone.type).toBe('milestone');
|
|
109
|
+
expect(milestone.status).toBe('In Progress');
|
|
110
|
+
});
|
|
111
|
+
it('should allow creating valid Story objects', () => {
|
|
112
|
+
const story = {
|
|
113
|
+
id: 'S-001',
|
|
114
|
+
type: 'story',
|
|
115
|
+
title: 'User Authentication',
|
|
116
|
+
workstream: 'engineering',
|
|
117
|
+
status: 'In Progress',
|
|
118
|
+
archived: false,
|
|
119
|
+
created_at: '2024-01-01',
|
|
120
|
+
updated_at: '2024-01-15',
|
|
121
|
+
vault_path: '/stories/S-001.md',
|
|
122
|
+
canvas_source: '/canvas.canvas',
|
|
123
|
+
cssclasses: [],
|
|
124
|
+
parent: 'M-001',
|
|
125
|
+
priority: 'Medium',
|
|
126
|
+
depends_on: [],
|
|
127
|
+
};
|
|
128
|
+
expect(story.type).toBe('story');
|
|
129
|
+
expect(story.parent).toBe('M-001');
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=v2-types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v2-types.test.js","sourceRoot":"","sources":["../../src/models/v2-types.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export declare function findNodeByFile(canvas: CanvasFile, filePath: string): Ca
|
|
|
14
14
|
/**
|
|
15
15
|
* Find a node by accomplishment ID (searches file paths for the ID)
|
|
16
16
|
*/
|
|
17
|
-
export declare function findNodeByAccomplishmentId(canvas: CanvasFile,
|
|
17
|
+
export declare function findNodeByAccomplishmentId(canvas: CanvasFile, _accomplishmentId: string): CanvasNode | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* Get all edges where the given node is the source (blocker)
|
|
20
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/canvas-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAY,MAAM,oBAAoB,CAAC;AAElF;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAUvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE3F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"canvas-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/canvas-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAY,MAAM,oBAAoB,CAAC;AAElF;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAUvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE3F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAShH;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAKxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAKzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAOvG;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAKxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAO/F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAIzG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAyBlG"}
|
|
@@ -29,7 +29,7 @@ export function findNodeByFile(canvas, filePath) {
|
|
|
29
29
|
/**
|
|
30
30
|
* Find a node by accomplishment ID (searches file paths for the ID)
|
|
31
31
|
*/
|
|
32
|
-
export function findNodeByAccomplishmentId(canvas,
|
|
32
|
+
export function findNodeByAccomplishmentId(canvas, _accomplishmentId) {
|
|
33
33
|
// We need to look at the actual file content to match by ID
|
|
34
34
|
// For now, we'll search by checking if the file path contains the ID pattern
|
|
35
35
|
// This is a simplified approach - in practice, we'd need to read the files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-parser.js","sourceRoot":"","sources":["../../src/parsers/canvas-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAElF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,gCAAgC,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAkB;IAChD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,QAAgB;IACjE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"canvas-parser.js","sourceRoot":"","sources":["../../src/parsers/canvas-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,8 +41,8 @@ function parseBodySections(body) {
|
|
|
41
41
|
const lines = body.split('\n');
|
|
42
42
|
let currentSection = '';
|
|
43
43
|
let outcome = '';
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const acceptance_criteria = [];
|
|
45
|
+
const tasks = [];
|
|
46
46
|
let notes = '';
|
|
47
47
|
let currentTask = null;
|
|
48
48
|
let taskLines = [];
|
|
@@ -81,7 +81,7 @@ function parseBodySections(body) {
|
|
|
81
81
|
currentTask = {
|
|
82
82
|
number: parseInt(taskMatch[1], 10),
|
|
83
83
|
name: taskMatch[2],
|
|
84
|
-
status: '
|
|
84
|
+
status: 'Not Started',
|
|
85
85
|
};
|
|
86
86
|
continue;
|
|
87
87
|
}
|
|
@@ -131,7 +131,7 @@ function finalizeTask(partial, lines) {
|
|
|
131
131
|
name: partial.name || '',
|
|
132
132
|
goal: '',
|
|
133
133
|
description: '',
|
|
134
|
-
status: '
|
|
134
|
+
status: 'Not Started',
|
|
135
135
|
};
|
|
136
136
|
for (const line of lines) {
|
|
137
137
|
const match = line.match(TASK_FIELD_REGEX);
|
|
@@ -169,15 +169,15 @@ function finalizeTask(partial, lines) {
|
|
|
169
169
|
function parseTaskStatus(value) {
|
|
170
170
|
const normalized = value.toLowerCase().replace(/[^a-z]/g, '');
|
|
171
171
|
if (normalized.includes('inprogress') || normalized.includes('progress')) {
|
|
172
|
-
return '
|
|
172
|
+
return 'In Progress';
|
|
173
173
|
}
|
|
174
174
|
else if (normalized.includes('complete') || normalized.includes('done')) {
|
|
175
|
-
return '
|
|
175
|
+
return 'Completed';
|
|
176
176
|
}
|
|
177
|
-
else if (normalized.includes('hold') || normalized.includes('paused')) {
|
|
178
|
-
return '
|
|
177
|
+
else if (normalized.includes('hold') || normalized.includes('paused') || normalized.includes('block')) {
|
|
178
|
+
return 'Blocked';
|
|
179
179
|
}
|
|
180
|
-
return '
|
|
180
|
+
return 'Not Started';
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
183
183
|
* Serialize an accomplishment to markdown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/parsers/markdown-parser.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAKL,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,MAAM,iBAAiB,GAAG,mCAAmC,CAAC;AAC9D,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AACnD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,8CAA8C,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAExC,oBAAoB;IACpB,IAAI,WAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAA8B,CAAC;IACzE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,qCAAqC,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACnF,CAAC;IAED,gCAAgC;IAChC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC5B,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,sBAAsB;IACtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEzC,OAAO;QACL,WAAW;QACX,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC;AASD;;GAEG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/parsers/markdown-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V2 Archive Manager
|
|
3
|
+
*
|
|
4
|
+
* Handles archive and restore operations for entities.
|
|
5
|
+
* Archives are organized by entity type in a flat structure: archive/{type}/
|
|
6
|
+
* Supports reading from legacy quarter-based structure for backwards compatibility.
|
|
7
|
+
*/
|
|
8
|
+
import { Entity, EntityId, EntityType } from '../../models/v2-types.js';
|
|
9
|
+
export interface ArchiveResult {
|
|
10
|
+
archived_entities: EntityId[];
|
|
11
|
+
archive_path: string;
|
|
12
|
+
timestamp: string;
|
|
13
|
+
}
|
|
14
|
+
export interface RestoreResult {
|
|
15
|
+
restored_entities: EntityId[];
|
|
16
|
+
restore_path: string;
|
|
17
|
+
timestamp: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ArchiveMetadata {
|
|
20
|
+
entity_id: EntityId;
|
|
21
|
+
entity_type: EntityType;
|
|
22
|
+
archived_at: string;
|
|
23
|
+
archive_path: string;
|
|
24
|
+
original_path: string;
|
|
25
|
+
milestone_id?: EntityId;
|
|
26
|
+
/** @deprecated Quarter is no longer used in new flat archive structure */
|
|
27
|
+
quarter?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Manages entity archival and restoration.
|
|
31
|
+
*/
|
|
32
|
+
export declare class ArchiveManager {
|
|
33
|
+
private basePath;
|
|
34
|
+
private getEntity;
|
|
35
|
+
private getChildren;
|
|
36
|
+
private moveFile;
|
|
37
|
+
private getEntityPath;
|
|
38
|
+
constructor(basePath: string);
|
|
39
|
+
setEntityCallback(fn: (id: EntityId) => Entity | undefined): void;
|
|
40
|
+
setChildrenCallback(fn: (id: EntityId, type?: EntityType) => Entity[]): void;
|
|
41
|
+
setMoveFileCallback(fn: (from: string, to: string) => Promise<void>): void;
|
|
42
|
+
setEntityPathCallback(fn: (id: EntityId) => string | undefined): void;
|
|
43
|
+
/** Archive a milestone and all its children */
|
|
44
|
+
archiveMilestone(milestoneId: EntityId): Promise<ArchiveResult>;
|
|
45
|
+
/** Archive a single entity to the flat archive structure: archive/{type}/ */
|
|
46
|
+
archiveEntity(entityId: EntityId, archivePath?: string): Promise<ArchiveMetadata>;
|
|
47
|
+
/** Restore an entity from archive */
|
|
48
|
+
restoreFromArchive(entityId: EntityId, archivePath: string): Promise<RestoreResult>;
|
|
49
|
+
/** Restore a single entity */
|
|
50
|
+
private restoreEntity;
|
|
51
|
+
/**
|
|
52
|
+
* Get archive path for entity type using flat structure: archive/{type}/
|
|
53
|
+
* This is the new archive structure aligned with the Canvas Project Manager Plugin.
|
|
54
|
+
*/
|
|
55
|
+
private getArchivePathForType;
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Use getArchivePathForType instead.
|
|
58
|
+
* Get current quarter string (e.g., "2024-Q1") - kept for backwards compatibility
|
|
59
|
+
*/
|
|
60
|
+
private getQuarter;
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Use getArchivePathForType instead.
|
|
63
|
+
* Get archive path for a quarter and optional milestone - kept for backwards compatibility
|
|
64
|
+
*/
|
|
65
|
+
private getLegacyArchivePath;
|
|
66
|
+
/** Get restore path for an entity */
|
|
67
|
+
private getRestorePath;
|
|
68
|
+
/**
|
|
69
|
+
* Try to find an entity in the archive, checking both new flat structure
|
|
70
|
+
* and legacy quarter-based structure for backwards compatibility.
|
|
71
|
+
*/
|
|
72
|
+
findInArchive(entityId: EntityId, entityType: EntityType): string | null;
|
|
73
|
+
/** Get filename for an entity */
|
|
74
|
+
private getFilename;
|
|
75
|
+
/** Check if an entity is eligible for archival */
|
|
76
|
+
canArchive(entity: Entity): {
|
|
77
|
+
eligible: boolean;
|
|
78
|
+
reason?: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated Use getArchivedEntitiesByType instead.
|
|
82
|
+
* List archived entities for a quarter (legacy structure)
|
|
83
|
+
*/
|
|
84
|
+
getArchivedEntities(_quarter: string): ArchiveMetadata[];
|
|
85
|
+
/**
|
|
86
|
+
* List archived entities by type from the flat archive structure.
|
|
87
|
+
* This is the preferred method for the new archive structure.
|
|
88
|
+
*/
|
|
89
|
+
getArchivedEntitiesByType(_type: EntityType): ArchiveMetadata[];
|
|
90
|
+
/**
|
|
91
|
+
* Get all possible archive paths for an entity (both new and legacy structures).
|
|
92
|
+
* Useful for finding entities that may have been archived with either structure.
|
|
93
|
+
*/
|
|
94
|
+
getPossibleArchivePaths(entityId: EntityId, entityType: EntityType): string[];
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=archive-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-manager.d.ts","sourceRoot":"","sources":["../../../src/services/v2/archive-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACX,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,SAAS,CAAyD;IAC1E,OAAO,CAAC,WAAW,CAA2D;IAC9E,OAAO,CAAC,QAAQ,CAA+D;IAC/E,OAAO,CAAC,aAAa,CAAyD;gBAElE,QAAQ,EAAE,MAAM;IAQ5B,iBAAiB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjE,mBAAmB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,UAAU,KAAK,MAAM,EAAE,GAAG,IAAI;IAI5E,mBAAmB,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI1E,qBAAqB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI;IAQrE,+CAA+C;IACzC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;IAoDrE,6EAA6E;IACvE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA8BvF,qCAAqC;IAC/B,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCzF,8BAA8B;YAChB,aAAa;IAiB3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAMlB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAK5B,qCAAqC;IACrC,OAAO,CAAC,cAAc;IAiBtB;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAUxE,iCAAiC;IACjC,OAAO,CAAC,WAAW;IAQnB,kDAAkD;IAClD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA+BlE;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IAMxD;;;OAGG;IACH,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,EAAE;IAM/D;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE;CAW9E"}
|