@backlog-md/core 0.2.2 → 0.3.1

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 (39) hide show
  1. package/README.md +14 -14
  2. package/dist/abstractions/index.d.ts +2 -2
  3. package/dist/abstractions/index.d.ts.map +1 -1
  4. package/dist/core/Core.d.ts +151 -1
  5. package/dist/core/Core.d.ts.map +1 -1
  6. package/dist/core/Core.js +672 -21
  7. package/dist/core/Core.js.map +1 -1
  8. package/dist/core/index.d.ts +1 -1
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +1 -1
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/index.d.ts +5 -6
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +7 -4
  15. package/dist/index.js.map +1 -1
  16. package/dist/markdown/index.d.ts +56 -1
  17. package/dist/markdown/index.d.ts.map +1 -1
  18. package/dist/markdown/index.js +179 -5
  19. package/dist/markdown/index.js.map +1 -1
  20. package/dist/test-adapters/MockGitAdapter.d.ts +1 -1
  21. package/dist/test-adapters/MockGitAdapter.d.ts.map +1 -1
  22. package/dist/test-adapters/index.d.ts +5 -4
  23. package/dist/test-adapters/index.d.ts.map +1 -1
  24. package/dist/test-adapters/index.js +4 -6
  25. package/dist/test-adapters/index.js.map +1 -1
  26. package/dist/types/index.d.ts +52 -0
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/utils/index.d.ts +2 -1
  29. package/dist/utils/index.d.ts.map +1 -1
  30. package/dist/utils/index.js +2 -1
  31. package/dist/utils/index.js.map +1 -1
  32. package/dist/utils/milestones.d.ts +65 -0
  33. package/dist/utils/milestones.d.ts.map +1 -0
  34. package/dist/utils/milestones.js +187 -0
  35. package/dist/utils/milestones.js.map +1 -0
  36. package/dist/utils/sorting.d.ts.map +1 -1
  37. package/dist/utils/sorting.js +2 -3
  38. package/dist/utils/sorting.js.map +1 -1
  39. package/package.json +10 -18
package/README.md CHANGED
@@ -15,10 +15,10 @@ Runtime-agnostic core package for Backlog.md task management.
15
15
 
16
16
  ## Documentation
17
17
 
18
- | Document | Description |
19
- |----------|-------------|
20
- | [Core Package Extraction Design](docs/doc-003%20-%20Core-Package-Extraction-Design.md) | Architecture and migration plan |
21
- | [Test Adapter Specification](docs/test-adapter-specification.md) | Functionality requirements for test adapters |
18
+ | Document | Description |
19
+ | -------------------------------------------------------------------------------------- | -------------------------------------------- |
20
+ | [Core Package Extraction Design](docs/doc-003%20-%20Core-Package-Extraction-Design.md) | Architecture and migration plan |
21
+ | [Test Adapter Specification](docs/test-adapter-specification.md) | Functionality requirements for test adapters |
22
22
 
23
23
  ## Architecture Diagrams
24
24
 
@@ -41,25 +41,25 @@ The core package will expose these adapter interfaces:
41
41
  ```typescript
42
42
  // FileSystemAdapter - file operations
43
43
  interface FileSystemAdapter {
44
- readFile(path: string): Promise<string>
45
- writeFile(path: string, content: string): Promise<void>
46
- exists(path: string): Promise<boolean>
47
- createDir(path: string, options?: { recursive?: boolean }): Promise<void>
48
- deleteFile(path: string): Promise<void>
49
- rename(from: string, to: string): Promise<void>
44
+ readFile(path: string): Promise<string>;
45
+ writeFile(path: string, content: string): Promise<void>;
46
+ exists(path: string): Promise<boolean>;
47
+ createDir(path: string, options?: { recursive?: boolean }): Promise<void>;
48
+ deleteFile(path: string): Promise<void>;
49
+ rename(from: string, to: string): Promise<void>;
50
50
  // ...
51
51
  }
52
52
 
53
53
  // GlobAdapter - pattern matching
54
54
  interface GlobAdapter {
55
- scan(pattern: string, options?: { cwd?: string }): AsyncIterable<string>
55
+ scan(pattern: string, options?: { cwd?: string }): AsyncIterable<string>;
56
56
  }
57
57
 
58
58
  // GitAdapter - git operations
59
59
  interface GitAdapter {
60
- exec(args: string[], options?: { cwd?: string }): Promise<ExecResult>
61
- isGitRepository(root: string): Promise<boolean>
62
- initRepository(root: string): Promise<void>
60
+ exec(args: string[], options?: { cwd?: string }): Promise<ExecResult>;
61
+ isGitRepository(root: string): Promise<boolean>;
62
+ initRepository(root: string): Promise<void>;
63
63
  }
64
64
  ```
65
65
 
@@ -4,6 +4,6 @@
4
4
  * Re-exports common adapters from @principal-ai/repository-abstraction
5
5
  * and adds backlog-specific adapters (GitAdapter).
6
6
  */
7
- export type { FileSystemAdapter, FileStats, GlobAdapter, GlobOptions, } from "@principal-ai/repository-abstraction";
8
- export type { GitAdapter, GitExecResult, GitExecOptions, GitOperationsInterface, } from "./GitAdapter";
7
+ export type { FileStats, FileSystemAdapter, GlobAdapter, GlobOptions, } from "@principal-ai/repository-abstraction";
8
+ export type { GitAdapter, GitExecOptions, GitExecResult, GitOperationsInterface, } from "./GitAdapter";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAG9C,YAAY,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * by accepting adapter implementations for I/O operations.
6
6
  */
7
7
  import type { FileSystemAdapter } from "@principal-ai/repository-abstraction";
8
- import type { Task, BacklogConfig, TaskListFilter, PaginationOptions, PaginatedResult, PaginatedTasksByStatus, PaginatedTasksBySource, TaskIndexEntry, SourcePaginationOptions } from "../types";
8
+ import type { BacklogConfig, Milestone, MilestoneSummary, PaginatedResult, PaginatedTasksBySource, PaginatedTasksByStatus, PaginationOptions, SourcePaginationOptions, Task, TaskCreateInput, TaskIndexEntry, TaskListFilter, TaskUpdateInput } from "../types";
9
9
  /**
10
10
  * Options for initializing a new Backlog.md project
11
11
  */
@@ -31,6 +31,24 @@ export interface CoreOptions {
31
31
  fs: FileSystemAdapter;
32
32
  };
33
33
  }
34
+ /**
35
+ * Input for creating a new milestone
36
+ */
37
+ export interface MilestoneCreateInput {
38
+ /** Milestone title (required) */
39
+ title: string;
40
+ /** Optional description */
41
+ description?: string;
42
+ }
43
+ /**
44
+ * Input for updating an existing milestone
45
+ */
46
+ export interface MilestoneUpdateInput {
47
+ /** New title (optional) */
48
+ title?: string;
49
+ /** New description (optional) */
50
+ description?: string;
51
+ }
34
52
  /**
35
53
  * Core class for Backlog.md operations
36
54
  *
@@ -169,6 +187,65 @@ export declare class Core {
169
187
  * The Map preserves the order of statuses from config.
170
188
  */
171
189
  getTasksByStatus(): Map<string, Task[]>;
190
+ /**
191
+ * Get tasks grouped by milestone
192
+ *
193
+ * Returns a MilestoneSummary with:
194
+ * - milestones: List of milestone IDs in display order
195
+ * - buckets: Array of MilestoneBucket with tasks, progress, status counts
196
+ *
197
+ * The first bucket is always "Tasks without milestone".
198
+ * Each bucket includes progress percentage based on done status.
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * const summary = core.getTasksByMilestone();
203
+ * for (const bucket of summary.buckets) {
204
+ * console.log(`${bucket.label}: ${bucket.progress}% complete`);
205
+ * console.log(` ${bucket.doneCount}/${bucket.total} tasks done`);
206
+ * }
207
+ * ```
208
+ */
209
+ getTasksByMilestone(): MilestoneSummary;
210
+ /**
211
+ * Get the milestones directory path
212
+ */
213
+ private getMilestonesDir;
214
+ /**
215
+ * List all milestones from the milestones directory
216
+ *
217
+ * @returns Array of Milestone objects sorted by ID
218
+ */
219
+ listMilestones(): Promise<Milestone[]>;
220
+ /**
221
+ * Load a single milestone by ID
222
+ *
223
+ * @param id - Milestone ID (e.g., "m-0")
224
+ * @returns Milestone or null if not found
225
+ */
226
+ loadMilestone(id: string): Promise<Milestone | null>;
227
+ /**
228
+ * Create a new milestone
229
+ *
230
+ * @param input - Milestone creation input
231
+ * @returns Created milestone
232
+ */
233
+ createMilestone(input: MilestoneCreateInput): Promise<Milestone>;
234
+ /**
235
+ * Update an existing milestone
236
+ *
237
+ * @param id - Milestone ID to update
238
+ * @param input - Fields to update
239
+ * @returns Updated milestone or null if not found
240
+ */
241
+ updateMilestone(id: string, input: MilestoneUpdateInput): Promise<Milestone | null>;
242
+ /**
243
+ * Delete a milestone
244
+ *
245
+ * @param id - Milestone ID to delete
246
+ * @returns true if deleted, false if not found
247
+ */
248
+ deleteMilestone(id: string): Promise<boolean>;
172
249
  /**
173
250
  * Get a single task by ID
174
251
  *
@@ -206,7 +283,80 @@ export declare class Core {
206
283
  */
207
284
  reload(): Promise<void>;
208
285
  private ensureInitialized;
286
+ /**
287
+ * Get config with type safety (use after ensureInitialized)
288
+ */
289
+ private get safeConfig();
209
290
  private applyFilters;
210
291
  private loadTasksFromDirectory;
292
+ /**
293
+ * Add a task ID to a milestone's tasks array
294
+ *
295
+ * @param taskId - Task ID to add
296
+ * @param milestoneId - Milestone ID to update
297
+ */
298
+ private addTaskToMilestone;
299
+ /**
300
+ * Remove a task ID from a milestone's tasks array
301
+ *
302
+ * @param taskId - Task ID to remove
303
+ * @param milestoneId - Milestone ID to update
304
+ */
305
+ private removeTaskFromMilestone;
306
+ /**
307
+ * Write a milestone to disk
308
+ */
309
+ private writeMilestoneFile;
310
+ /**
311
+ * Get the tasks directory path
312
+ */
313
+ private getTasksDir;
314
+ /**
315
+ * Get the completed directory path
316
+ */
317
+ private getCompletedDir;
318
+ /**
319
+ * Create a new task
320
+ *
321
+ * @param input - Task creation input
322
+ * @returns Created task
323
+ */
324
+ createTask(input: TaskCreateInput): Promise<Task>;
325
+ /**
326
+ * Update an existing task
327
+ *
328
+ * @param id - Task ID to update
329
+ * @param input - Fields to update
330
+ * @returns Updated task or null if not found
331
+ */
332
+ updateTask(id: string, input: TaskUpdateInput): Promise<Task | null>;
333
+ /**
334
+ * Delete a task
335
+ *
336
+ * @param id - Task ID to delete
337
+ * @returns true if deleted, false if not found
338
+ */
339
+ deleteTask(id: string): Promise<boolean>;
340
+ /**
341
+ * Archive a task (move from tasks/ to completed/)
342
+ *
343
+ * @param id - Task ID to archive
344
+ * @returns Archived task or null if not found or already archived
345
+ */
346
+ archiveTask(id: string): Promise<Task | null>;
347
+ /**
348
+ * Restore a task (move from completed/ to tasks/)
349
+ *
350
+ * @param id - Task ID to restore
351
+ * @returns Restored task or null if not found or not archived
352
+ */
353
+ restoreTask(id: string): Promise<Task | null>;
354
+ /**
355
+ * Load specific tasks by their IDs (for lazy loading milestone tasks)
356
+ *
357
+ * @param ids - Array of task IDs to load
358
+ * @returns Array of loaded tasks (missing tasks excluded)
359
+ */
360
+ loadTasksByIds(ids: string[]): Promise<Task[]>;
211
361
  }
212
362
  //# sourceMappingURL=Core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../../src/core/Core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Core.d.ts","sourceRoot":"","sources":["../../src/core/Core.ts"],"names":[],"mappings":"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"}