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
package/dist/search.js ADDED
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ /**
3
+ * Search and filtering helpers
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.searchEntities = searchEntities;
40
+ exports.searchTasks = searchTasks;
41
+ exports.matchesCriteria = matchesCriteria;
42
+ exports.loadSavedFilters = loadSavedFilters;
43
+ const fs_1 = require("fs");
44
+ const path = __importStar(require("path"));
45
+ const repository_1 = require("./repository");
46
+ function searchEntities(repository, criteria = {}) {
47
+ return (0, repository_1.getAllEntities)(repository).filter(entity => matchesCriteria(entity, criteria));
48
+ }
49
+ function searchTasks(repository, criteria = {}) {
50
+ return Array.from(repository.tasks.values()).filter(task => matchesCriteria(task, criteria));
51
+ }
52
+ function matchesCriteria(entity, criteria = {}) {
53
+ if (criteria.query && !matchesFullText(entity, criteria.query)) {
54
+ return false;
55
+ }
56
+ if (criteria.status && !matchesValue(entity.status, criteria.status)) {
57
+ return false;
58
+ }
59
+ if (entity.type !== 'task') {
60
+ return !criteria.assignee
61
+ && !criteria.epic
62
+ && !criteria.milestone
63
+ && !criteria.priority
64
+ && !criteria.refinementState
65
+ && !criteria.tags?.length;
66
+ }
67
+ const task = entity;
68
+ if (criteria.assignee && task.assignee !== criteria.assignee) {
69
+ return false;
70
+ }
71
+ if (criteria.epic && task.epic !== criteria.epic) {
72
+ return false;
73
+ }
74
+ if (criteria.milestone && task.milestone !== criteria.milestone) {
75
+ return false;
76
+ }
77
+ if (criteria.priority && task.priority !== criteria.priority) {
78
+ return false;
79
+ }
80
+ if (criteria.refinementState && (task.refinementState ?? 'ready') !== criteria.refinementState) {
81
+ return false;
82
+ }
83
+ if (criteria.tags?.length) {
84
+ const taskTags = new Set(task.tags ?? []);
85
+ if (!criteria.tags.every(tag => taskTags.has(tag))) {
86
+ return false;
87
+ }
88
+ }
89
+ return true;
90
+ }
91
+ async function loadSavedFilters(rootPath) {
92
+ const filtersDir = path.join(rootPath, '.planfs', 'filters');
93
+ try {
94
+ const entries = await fs_1.promises.readdir(filtersDir, { withFileTypes: true });
95
+ const filters = [];
96
+ for (const entry of entries) {
97
+ if (!entry.isFile() || !entry.name.endsWith('.json')) {
98
+ continue;
99
+ }
100
+ const filePath = path.join(filtersDir, entry.name);
101
+ const content = await fs_1.promises.readFile(filePath, 'utf-8');
102
+ const parsed = JSON.parse(content);
103
+ filters.push(normalizeSavedFilter(parsed, entry.name));
104
+ }
105
+ return filters.sort((a, b) => a.name.localeCompare(b.name));
106
+ }
107
+ catch (error) {
108
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
109
+ return [];
110
+ }
111
+ throw error;
112
+ }
113
+ }
114
+ function normalizeSavedFilter(filter, filename) {
115
+ if (!filter.id) {
116
+ filter.id = filename.replace(/\.json$/, '');
117
+ }
118
+ if (!filter.name) {
119
+ filter.name = filter.id;
120
+ }
121
+ filter.criteria = filter.criteria ?? {};
122
+ const tags = filter.criteria.tags;
123
+ if (typeof tags === 'string') {
124
+ filter.criteria.tags = [tags];
125
+ }
126
+ return filter;
127
+ }
128
+ function matchesValue(value, expected) {
129
+ return Array.isArray(expected) ? expected.includes(value) : value === expected;
130
+ }
131
+ function matchesFullText(entity, query) {
132
+ const normalizedQuery = query.trim().toLowerCase();
133
+ if (!normalizedQuery) {
134
+ return true;
135
+ }
136
+ return searchableText(entity).includes(normalizedQuery);
137
+ }
138
+ function searchableText(entity) {
139
+ return [
140
+ entity.id,
141
+ entity.title,
142
+ entity.status,
143
+ JSON.stringify(entity.metadata),
144
+ entity.body
145
+ ]
146
+ .filter(Boolean)
147
+ .join(' ')
148
+ .toLowerCase();
149
+ }
150
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Core entity types for PlanFS
3
+ */
4
+ export type EntityType = 'task' | 'epic' | 'milestone' | 'decision';
5
+ export type TaskStatus = 'todo' | 'in-progress' | 'review' | 'done';
6
+ export type TaskPriority = 'low' | 'medium' | 'high' | 'critical';
7
+ export type RefinementState = 'captured' | 'needs-refinement' | 'ready' | 'deferred' | 'discarded';
8
+ export type EpicStatus = 'active' | 'completed' | 'on-hold' | 'archived';
9
+ export type MilestoneStatus = 'active' | 'completed' | 'delayed';
10
+ export type DecisionStatus = 'proposed' | 'accepted' | 'rejected' | 'superseded';
11
+ export interface ArchiveMetadata {
12
+ archivedAt: string;
13
+ originalPath: string;
14
+ }
15
+ /**
16
+ * Base entity interface
17
+ */
18
+ export interface BaseEntity {
19
+ id: string;
20
+ type: EntityType;
21
+ filePath: string;
22
+ metadata: Record<string, unknown>;
23
+ body: string;
24
+ diagnostics?: ValidationError[];
25
+ createdAt?: string;
26
+ updatedAt?: string;
27
+ archive?: ArchiveMetadata;
28
+ }
29
+ /**
30
+ * Task entity
31
+ */
32
+ export interface Task extends BaseEntity {
33
+ type: 'task';
34
+ title: string;
35
+ status: TaskStatus;
36
+ priority?: TaskPriority;
37
+ assignee?: string;
38
+ epic?: string;
39
+ milestone?: string;
40
+ dependsOn?: string[];
41
+ tags?: string[];
42
+ dueDate?: string;
43
+ estimate?: string;
44
+ refinementState?: RefinementState;
45
+ backlogOrder?: number;
46
+ links?: Record<string, string>;
47
+ }
48
+ /**
49
+ * Epic entity
50
+ */
51
+ export interface Epic extends BaseEntity {
52
+ type: 'epic';
53
+ title: string;
54
+ status: EpicStatus;
55
+ priority?: TaskPriority;
56
+ owner?: string;
57
+ description?: string;
58
+ targetDate?: string;
59
+ tags?: string[];
60
+ links?: Record<string, string>;
61
+ }
62
+ /**
63
+ * Milestone entity
64
+ */
65
+ export interface Milestone extends BaseEntity {
66
+ type: 'milestone';
67
+ title: string;
68
+ status: MilestoneStatus;
69
+ targetDate: string;
70
+ description?: string;
71
+ owner?: string;
72
+ links?: Record<string, string>;
73
+ }
74
+ /**
75
+ * Decision entity
76
+ */
77
+ export interface Decision extends BaseEntity {
78
+ type: 'decision';
79
+ title: string;
80
+ status: DecisionStatus;
81
+ date?: string;
82
+ context?: string;
83
+ decision?: string;
84
+ consequences?: string;
85
+ author?: string;
86
+ supersedes?: string;
87
+ supersededBy?: string;
88
+ }
89
+ /**
90
+ * Union type for all entities
91
+ */
92
+ export type Entity = Task | Epic | Milestone | Decision;
93
+ /**
94
+ * Repository snapshot containing all loaded entities
95
+ */
96
+ export interface Repository {
97
+ root: string;
98
+ tasks: Map<string, Task>;
99
+ epics: Map<string, Epic>;
100
+ milestones: Map<string, Milestone>;
101
+ decisions: Map<string, Decision>;
102
+ archivedTasks?: Map<string, Task>;
103
+ archivedEpics?: Map<string, Epic>;
104
+ diagnostics?: ValidationError[];
105
+ }
106
+ /**
107
+ * Validation result
108
+ */
109
+ export interface ValidationError {
110
+ id?: string;
111
+ path?: string;
112
+ message: string;
113
+ severity: 'error' | 'warning';
114
+ }
115
+ export interface ValidationResult {
116
+ valid: boolean;
117
+ errors: ValidationError[];
118
+ }
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core entity types for PlanFS
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Validation module
3
+ * Validates entities against schemas
4
+ */
5
+ import { Entity, ValidationError, ValidationResult } from './types';
6
+ /**
7
+ * Validate a single entity
8
+ */
9
+ export declare function validateEntity(entity: Entity): ValidationError[];
10
+ export interface ValidateRepositoryOptions {
11
+ referenceEntities?: Entity[];
12
+ }
13
+ /**
14
+ * Validate a collection of entities for global constraints.
15
+ *
16
+ * referenceEntities can satisfy references without participating in duplicate
17
+ * ID or circular dependency checks for the active collection.
18
+ */
19
+ export declare function validateRepository(entities: Entity[], options?: ValidateRepositoryOptions): ValidationError[];
20
+ /**
21
+ * Validate all entities and return comprehensive result
22
+ */
23
+ export declare function validateAll(entities: Entity[]): ValidationResult;
24
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EACL,MAAM,EAKN,eAAe,EACf,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAwEjB;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CA+ChE;AA6QD,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,yBAA8B,GACtC,eAAe,EAAE,CAsCnB;AAsJD;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAehE"}