planfs-core 1.2.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 (70) hide show
  1. package/README.md +125 -0
  2. package/dist/ai.d.ts +98 -0
  3. package/dist/ai.d.ts.map +1 -0
  4. package/dist/ai.js +265 -0
  5. package/dist/ai.js.map +1 -0
  6. package/dist/backlog.d.ts +40 -0
  7. package/dist/backlog.d.ts.map +1 -0
  8. package/dist/backlog.js +206 -0
  9. package/dist/backlog.js.map +1 -0
  10. package/dist/bulk.d.ts +29 -0
  11. package/dist/bulk.d.ts.map +1 -0
  12. package/dist/bulk.js +206 -0
  13. package/dist/bulk.js.map +1 -0
  14. package/dist/files.d.ts +38 -0
  15. package/dist/files.d.ts.map +1 -0
  16. package/dist/files.js +179 -0
  17. package/dist/files.js.map +1 -0
  18. package/dist/git.d.ts +74 -0
  19. package/dist/git.d.ts.map +1 -0
  20. package/dist/git.js +426 -0
  21. package/dist/git.js.map +1 -0
  22. package/dist/graph.d.ts +56 -0
  23. package/dist/graph.d.ts.map +1 -0
  24. package/dist/graph.js +188 -0
  25. package/dist/graph.js.map +1 -0
  26. package/dist/index.d.ts +20 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +36 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/loader.d.ts +26 -0
  31. package/dist/loader.d.ts.map +1 -0
  32. package/dist/loader.js +248 -0
  33. package/dist/loader.js.map +1 -0
  34. package/dist/milestone.d.ts +23 -0
  35. package/dist/milestone.d.ts.map +1 -0
  36. package/dist/milestone.js +60 -0
  37. package/dist/milestone.js.map +1 -0
  38. package/dist/next-work.d.ts +34 -0
  39. package/dist/next-work.d.ts.map +1 -0
  40. package/dist/next-work.js +239 -0
  41. package/dist/next-work.js.map +1 -0
  42. package/dist/parser.d.ts +37 -0
  43. package/dist/parser.d.ts.map +1 -0
  44. package/dist/parser.js +132 -0
  45. package/dist/parser.js.map +1 -0
  46. package/dist/pull-request.d.ts +38 -0
  47. package/dist/pull-request.d.ts.map +1 -0
  48. package/dist/pull-request.js +147 -0
  49. package/dist/pull-request.js.map +1 -0
  50. package/dist/references.d.ts +10 -0
  51. package/dist/references.d.ts.map +1 -0
  52. package/dist/references.js +30 -0
  53. package/dist/references.js.map +1 -0
  54. package/dist/repository.d.ts +85 -0
  55. package/dist/repository.d.ts.map +1 -0
  56. package/dist/repository.js +495 -0
  57. package/dist/repository.js.map +1 -0
  58. package/dist/search.d.ts +25 -0
  59. package/dist/search.d.ts.map +1 -0
  60. package/dist/search.js +150 -0
  61. package/dist/search.js.map +1 -0
  62. package/dist/types.d.ts +119 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +6 -0
  65. package/dist/types.js.map +1 -0
  66. package/dist/validator.d.ts +24 -0
  67. package/dist/validator.d.ts.map +1 -0
  68. package/dist/validator.js +540 -0
  69. package/dist/validator.js.map +1 -0
  70. package/package.json +46 -0
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * Pull request integration helpers
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPullRequestProviderBoundaries = getPullRequestProviderBoundaries;
7
+ exports.generatePullRequestSummary = generatePullRequestSummary;
8
+ exports.getTaskPullRequestRefs = getTaskPullRequestRefs;
9
+ exports.getTaskPullRequestRefsById = getTaskPullRequestRefsById;
10
+ const git_1 = require("./git");
11
+ function getPullRequestProviderBoundaries() {
12
+ return [
13
+ {
14
+ id: 'github',
15
+ name: 'GitHub',
16
+ status: 'local-summary',
17
+ responsibilities: [
18
+ 'Read branch context from local Git',
19
+ 'Generate PR summaries and templates',
20
+ 'Leave hosted API calls to a provider adapter'
21
+ ]
22
+ },
23
+ {
24
+ id: 'gitlab',
25
+ name: 'GitLab',
26
+ status: 'planned',
27
+ responsibilities: [
28
+ 'Map PlanFS PR summaries to merge requests',
29
+ 'Read merge request status through a provider adapter',
30
+ 'Keep GitLab-specific API fields outside core planning models'
31
+ ]
32
+ },
33
+ {
34
+ id: 'azure-devops',
35
+ name: 'Azure DevOps',
36
+ status: 'planned',
37
+ responsibilities: [
38
+ 'Map PlanFS PR summaries to Azure Repos pull requests',
39
+ 'Read pull request status through a provider adapter',
40
+ 'Keep Azure-specific API fields outside core planning models'
41
+ ]
42
+ }
43
+ ];
44
+ }
45
+ async function generatePullRequestSummary(rootPath, options = {}) {
46
+ const provider = options.provider ?? 'github';
47
+ const context = await (0, git_1.getBranchPlanningContext)(rootPath, options);
48
+ const markdown = [
49
+ '## PlanFS',
50
+ '',
51
+ `Branch: \`${context.currentBranch}\``,
52
+ `Base: \`${context.comparisonRef}\``,
53
+ '',
54
+ '### Related Tasks',
55
+ '',
56
+ context.relatedTaskIds.length > 0
57
+ ? context.relatedTaskIds.map(id => `- ${id}`).join('\n')
58
+ : '- No related PlanFS tasks detected.',
59
+ '',
60
+ '### Planning Changes',
61
+ '',
62
+ `- Added tasks: ${context.addedTasks.length}`,
63
+ `- Modified tasks: ${context.modifiedTasks.length}`,
64
+ `- Deleted tasks: ${context.deletedTaskIds.length}`,
65
+ `- Changed PlanFS files: ${context.changedFiles.length}`,
66
+ `- PlanFS conflicts: ${context.conflicts.length}`,
67
+ '',
68
+ '### Added Tasks',
69
+ '',
70
+ renderTaskChanges(context.addedTasks),
71
+ '',
72
+ '### Modified Tasks',
73
+ '',
74
+ renderTaskChanges(context.modifiedTasks),
75
+ '',
76
+ '### Deleted Tasks',
77
+ '',
78
+ context.deletedTaskIds.length > 0
79
+ ? context.deletedTaskIds.map(id => `- ${id}`).join('\n')
80
+ : '- None',
81
+ '',
82
+ '### Validation',
83
+ '',
84
+ '- [ ] `planfs validate --format json` passes',
85
+ '- [ ] Related task IDs are correct',
86
+ '- [ ] Planning changes are intentional'
87
+ ].join('\n');
88
+ return {
89
+ provider,
90
+ title: context.pullRequestPreview.title,
91
+ markdown,
92
+ relatedTaskIds: context.relatedTaskIds,
93
+ branch: context.currentBranch,
94
+ baseRef: context.comparisonRef,
95
+ changedPlanfsFiles: context.changedFiles.length,
96
+ addedTasks: context.addedTasks.length,
97
+ modifiedTasks: context.modifiedTasks.length,
98
+ deletedTasks: context.deletedTaskIds.length,
99
+ conflicts: context.conflicts.length
100
+ };
101
+ }
102
+ function getTaskPullRequestRefs(task) {
103
+ const links = task.links ?? {};
104
+ return Object.values(links).flatMap(link => {
105
+ if (typeof link !== 'string') {
106
+ return [];
107
+ }
108
+ const provider = providerFromUrl(link);
109
+ return provider ? [{ provider, url: link, status: 'linked' }] : [];
110
+ });
111
+ }
112
+ function getTaskPullRequestRefsById(repository) {
113
+ const refs = new Map();
114
+ for (const task of repository.tasks.values()) {
115
+ const taskRefs = getTaskPullRequestRefs(task);
116
+ if (taskRefs.length > 0) {
117
+ refs.set(task.id, taskRefs);
118
+ }
119
+ }
120
+ return refs;
121
+ }
122
+ function renderTaskChanges(tasks) {
123
+ if (tasks.length === 0) {
124
+ return '- None';
125
+ }
126
+ return tasks
127
+ .map(task => {
128
+ const status = task.previous
129
+ ? `${task.previous.status} -> ${task.status}`
130
+ : task.status;
131
+ return `- ${task.id}: ${task.title} (${status})`;
132
+ })
133
+ .join('\n');
134
+ }
135
+ function providerFromUrl(url) {
136
+ if (/github\.com\/.+\/.+\/pull\/\d+/i.test(url)) {
137
+ return 'github';
138
+ }
139
+ if (/gitlab\..+\/.+\/-\/merge_requests\/\d+/i.test(url)) {
140
+ return 'gitlab';
141
+ }
142
+ if (/dev\.azure\.com\/.+\/.+\/_git\/.+\/pullrequest\/\d+/i.test(url)) {
143
+ return 'azure-devops';
144
+ }
145
+ return undefined;
146
+ }
147
+ //# sourceMappingURL=pull-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-request.js","sourceRoot":"","sources":["../src/pull-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared reference semantics for active and archived planning entities.
3
+ */
4
+ import { Entity, Repository, Task } from './types';
5
+ export declare function listArchivedReferenceEntities(repository: Repository): Entity[];
6
+ export declare function findTaskReference(repository: Repository, taskId: string): Task | undefined;
7
+ export declare function isArchivedReference(entity: Entity | undefined): boolean;
8
+ export declare function isTaskReferenceSatisfied(repository: Repository, taskId: string): boolean;
9
+ export declare function isTaskDependencyBlocking(repository: Repository, taskId: string): boolean;
10
+ //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEnD,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAK9E;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAE1F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEvE;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAExF;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGxF"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * Shared reference semantics for active and archived planning entities.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.listArchivedReferenceEntities = listArchivedReferenceEntities;
7
+ exports.findTaskReference = findTaskReference;
8
+ exports.isArchivedReference = isArchivedReference;
9
+ exports.isTaskReferenceSatisfied = isTaskReferenceSatisfied;
10
+ exports.isTaskDependencyBlocking = isTaskDependencyBlocking;
11
+ function listArchivedReferenceEntities(repository) {
12
+ return [
13
+ ...Array.from(repository.archivedTasks?.values() ?? []),
14
+ ...Array.from(repository.archivedEpics?.values() ?? [])
15
+ ];
16
+ }
17
+ function findTaskReference(repository, taskId) {
18
+ return repository.tasks.get(taskId) ?? repository.archivedTasks?.get(taskId);
19
+ }
20
+ function isArchivedReference(entity) {
21
+ return Boolean(entity?.archive);
22
+ }
23
+ function isTaskReferenceSatisfied(repository, taskId) {
24
+ return Boolean(findTaskReference(repository, taskId));
25
+ }
26
+ function isTaskDependencyBlocking(repository, taskId) {
27
+ const task = repository.tasks.get(taskId);
28
+ return Boolean(task && task.status !== 'done');
29
+ }
30
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAIH,sEAKC;AAED,8CAEC;AAED,kDAEC;AAED,4DAEC;AAED,4DAGC;AAtBD,SAAgB,6BAA6B,CAAC,UAAsB;IAClE,OAAO;QACL,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACvD,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,UAAsB,EAAE,MAAc;IACtE,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,wBAAwB,CAAC,UAAsB,EAAE,MAAc;IAC7E,OAAO,OAAO,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,wBAAwB,CAAC,UAAsB,EAAE,MAAc;IAC7E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Repository loader
3
+ * Main API for loading and querying a PlanFS repository
4
+ */
5
+ import { PlanfsInitializationResult } from './files';
6
+ import { Entity, Repository, Task, Epic, Milestone, ValidationResult } from './types';
7
+ /**
8
+ * Load a PlanFS repository
9
+ */
10
+ export declare function loadRepository(rootPath: string): Promise<Repository>;
11
+ /**
12
+ * Get all entities from a repository
13
+ */
14
+ export declare function getAllEntities(repository: Repository, options?: {
15
+ includeArchived?: boolean;
16
+ }): Entity[];
17
+ /**
18
+ * Validate a repository
19
+ */
20
+ export declare function validateRepositoryState(repository: Repository): ValidationResult;
21
+ /**
22
+ * Save an entity to disk
23
+ */
24
+ export declare function saveEntity(rootPath: string, entity: Entity): Promise<void>;
25
+ /**
26
+ * Generate file content from an entity
27
+ */
28
+ export declare function generateEntityContent(entity: Entity): string;
29
+ export interface ArchiveEntityOptions {
30
+ includeChildren?: boolean;
31
+ now?: Date;
32
+ }
33
+ export interface ArchiveEntityResult {
34
+ archived: Entity[];
35
+ }
36
+ export declare function isArchivedEntity(entity: Entity): boolean;
37
+ export declare function listArchivedEntities(repository: Repository): Entity[];
38
+ export declare function archiveEntity(rootPath: string, entityId: string, options?: ArchiveEntityOptions): Promise<ArchiveEntityResult>;
39
+ export interface RestoreArchivedEntityOptions {
40
+ now?: Date;
41
+ recalculateBacklogOrder?: boolean;
42
+ }
43
+ export declare function restoreArchivedEntity(rootPath: string, entityId: string, options?: RestoreArchivedEntityOptions): Promise<Entity>;
44
+ export declare function deleteArchivedEntity(rootPath: string, entityId: string): Promise<Entity>;
45
+ /**
46
+ * Query tasks by status
47
+ */
48
+ export declare function getTasksByStatus(repository: Repository, status: Task['status']): Task[];
49
+ /**
50
+ * Query tasks by assignee
51
+ */
52
+ export declare function getTasksByAssignee(repository: Repository, assignee: string): Task[];
53
+ /**
54
+ * Query tasks by epic
55
+ */
56
+ export declare function getTasksByEpic(repository: Repository, epicId: string): Task[];
57
+ /**
58
+ * Initialize a new repository
59
+ */
60
+ export declare function initializeRepository(rootPath: string): Promise<PlanfsInitializationResult>;
61
+ /**
62
+ * Get next task ID
63
+ */
64
+ export declare function getNextTaskId(repository: Repository): string;
65
+ /**
66
+ * Get an available epic ID from a title
67
+ */
68
+ export declare function getNextEpicId(repository: Repository, title: string): string;
69
+ /**
70
+ * Get an available milestone ID from a title
71
+ */
72
+ export declare function getNextMilestoneId(repository: Repository, title: string): string;
73
+ /**
74
+ * Create a new task template
75
+ */
76
+ export declare function createTaskTemplate(id: string, title: string): Task;
77
+ /**
78
+ * Create a new epic template
79
+ */
80
+ export declare function createEpicTemplate(id: string, title: string): Epic;
81
+ /**
82
+ * Create a new milestone template
83
+ */
84
+ export declare function createMilestoneTemplate(id: string, title: string, targetDate: string): Milestone;
85
+ //# sourceMappingURL=repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../src/repository.ts"],"names":[],"mappings":"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"}