conductor-bridge 1.0.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 (134) hide show
  1. package/README.md +69 -0
  2. package/dist/bridge/index.d.ts +8 -0
  3. package/dist/bridge/index.d.ts.map +1 -0
  4. package/dist/bridge/index.js +8 -0
  5. package/dist/bridge/index.js.map +1 -0
  6. package/dist/bridge/json-interchange.d.ts +94 -0
  7. package/dist/bridge/json-interchange.d.ts.map +1 -0
  8. package/dist/bridge/json-interchange.js +301 -0
  9. package/dist/bridge/json-interchange.js.map +1 -0
  10. package/dist/cli/commands/amend.d.ts +12 -0
  11. package/dist/cli/commands/amend.d.ts.map +1 -0
  12. package/dist/cli/commands/amend.js +205 -0
  13. package/dist/cli/commands/amend.js.map +1 -0
  14. package/dist/cli/commands/daemon.d.ts +12 -0
  15. package/dist/cli/commands/daemon.d.ts.map +1 -0
  16. package/dist/cli/commands/daemon.js +60 -0
  17. package/dist/cli/commands/daemon.js.map +1 -0
  18. package/dist/cli/commands/dispatch.d.ts +12 -0
  19. package/dist/cli/commands/dispatch.d.ts.map +1 -0
  20. package/dist/cli/commands/dispatch.js +207 -0
  21. package/dist/cli/commands/dispatch.js.map +1 -0
  22. package/dist/cli/commands/handoff.d.ts +31 -0
  23. package/dist/cli/commands/handoff.d.ts.map +1 -0
  24. package/dist/cli/commands/handoff.js +273 -0
  25. package/dist/cli/commands/handoff.js.map +1 -0
  26. package/dist/cli/commands/init.d.ts +12 -0
  27. package/dist/cli/commands/init.d.ts.map +1 -0
  28. package/dist/cli/commands/init.js +301 -0
  29. package/dist/cli/commands/init.js.map +1 -0
  30. package/dist/cli/commands/status.d.ts +12 -0
  31. package/dist/cli/commands/status.d.ts.map +1 -0
  32. package/dist/cli/commands/status.js +206 -0
  33. package/dist/cli/commands/status.js.map +1 -0
  34. package/dist/cli/index.d.ts +17 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +148 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/handoff/encryption.d.ts +85 -0
  39. package/dist/handoff/encryption.d.ts.map +1 -0
  40. package/dist/handoff/encryption.js +308 -0
  41. package/dist/handoff/encryption.js.map +1 -0
  42. package/dist/handoff/index.d.ts +8 -0
  43. package/dist/handoff/index.d.ts.map +1 -0
  44. package/dist/handoff/index.js +10 -0
  45. package/dist/handoff/index.js.map +1 -0
  46. package/dist/handoff/mycelium-arc.d.ts +116 -0
  47. package/dist/handoff/mycelium-arc.d.ts.map +1 -0
  48. package/dist/handoff/mycelium-arc.js +410 -0
  49. package/dist/handoff/mycelium-arc.js.map +1 -0
  50. package/dist/index.d.ts +38 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +71 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/parsers/index.d.ts +10 -0
  55. package/dist/parsers/index.d.ts.map +1 -0
  56. package/dist/parsers/index.js +12 -0
  57. package/dist/parsers/index.js.map +1 -0
  58. package/dist/parsers/plan-parser.d.ts +29 -0
  59. package/dist/parsers/plan-parser.d.ts.map +1 -0
  60. package/dist/parsers/plan-parser.js +503 -0
  61. package/dist/parsers/plan-parser.js.map +1 -0
  62. package/dist/parsers/spec-parser.d.ts +10 -0
  63. package/dist/parsers/spec-parser.d.ts.map +1 -0
  64. package/dist/parsers/spec-parser.js +382 -0
  65. package/dist/parsers/spec-parser.js.map +1 -0
  66. package/dist/parsers/state-parser.d.ts +21 -0
  67. package/dist/parsers/state-parser.d.ts.map +1 -0
  68. package/dist/parsers/state-parser.js +378 -0
  69. package/dist/parsers/state-parser.js.map +1 -0
  70. package/dist/parsers/types.d.ts +190 -0
  71. package/dist/parsers/types.d.ts.map +1 -0
  72. package/dist/parsers/types.js +7 -0
  73. package/dist/parsers/types.js.map +1 -0
  74. package/dist/schemas/cognitive-state.d.ts +1523 -0
  75. package/dist/schemas/cognitive-state.d.ts.map +1 -0
  76. package/dist/schemas/cognitive-state.js +328 -0
  77. package/dist/schemas/cognitive-state.js.map +1 -0
  78. package/dist/schemas/enums.d.ts +124 -0
  79. package/dist/schemas/enums.d.ts.map +1 -0
  80. package/dist/schemas/enums.js +108 -0
  81. package/dist/schemas/enums.js.map +1 -0
  82. package/dist/schemas/index.d.ts +9 -0
  83. package/dist/schemas/index.d.ts.map +1 -0
  84. package/dist/schemas/index.js +9 -0
  85. package/dist/schemas/index.js.map +1 -0
  86. package/dist/sync/adhd-continuity.d.ts +91 -0
  87. package/dist/sync/adhd-continuity.d.ts.map +1 -0
  88. package/dist/sync/adhd-continuity.js +302 -0
  89. package/dist/sync/adhd-continuity.js.map +1 -0
  90. package/dist/sync/convergence-tracker.d.ts +111 -0
  91. package/dist/sync/convergence-tracker.d.ts.map +1 -0
  92. package/dist/sync/convergence-tracker.js +299 -0
  93. package/dist/sync/convergence-tracker.js.map +1 -0
  94. package/dist/sync/index.d.ts +11 -0
  95. package/dist/sync/index.d.ts.map +1 -0
  96. package/dist/sync/index.js +15 -0
  97. package/dist/sync/index.js.map +1 -0
  98. package/dist/sync/state-sync.d.ts +105 -0
  99. package/dist/sync/state-sync.d.ts.map +1 -0
  100. package/dist/sync/state-sync.js +403 -0
  101. package/dist/sync/state-sync.js.map +1 -0
  102. package/dist/sync/watcher.d.ts +90 -0
  103. package/dist/sync/watcher.d.ts.map +1 -0
  104. package/dist/sync/watcher.js +281 -0
  105. package/dist/sync/watcher.js.map +1 -0
  106. package/dist/utils/atomic-write.d.ts +31 -0
  107. package/dist/utils/atomic-write.d.ts.map +1 -0
  108. package/dist/utils/atomic-write.js +69 -0
  109. package/dist/utils/atomic-write.js.map +1 -0
  110. package/dist/utils/error-handling.d.ts +70 -0
  111. package/dist/utils/error-handling.d.ts.map +1 -0
  112. package/dist/utils/error-handling.js +109 -0
  113. package/dist/utils/error-handling.js.map +1 -0
  114. package/dist/utils/file-lock.d.ts +46 -0
  115. package/dist/utils/file-lock.d.ts.map +1 -0
  116. package/dist/utils/file-lock.js +117 -0
  117. package/dist/utils/file-lock.js.map +1 -0
  118. package/dist/utils/index.d.ts +10 -0
  119. package/dist/utils/index.d.ts.map +1 -0
  120. package/dist/utils/index.js +12 -0
  121. package/dist/utils/index.js.map +1 -0
  122. package/dist/utils/rlm-navigator.d.ts +160 -0
  123. package/dist/utils/rlm-navigator.d.ts.map +1 -0
  124. package/dist/utils/rlm-navigator.js +368 -0
  125. package/dist/utils/rlm-navigator.js.map +1 -0
  126. package/dist/utils/safe-path.d.ts +44 -0
  127. package/dist/utils/safe-path.d.ts.map +1 -0
  128. package/dist/utils/safe-path.js +96 -0
  129. package/dist/utils/safe-path.js.map +1 -0
  130. package/dist/utils/timed-io.d.ts +51 -0
  131. package/dist/utils/timed-io.d.ts.map +1 -0
  132. package/dist/utils/timed-io.js +128 -0
  133. package/dist/utils/timed-io.js.map +1 -0
  134. package/package.json +88 -0
@@ -0,0 +1,378 @@
1
+ /**
2
+ * State Parser
3
+ *
4
+ * Parses Conductor state.md files into structured data.
5
+ * Tracks current assignment, context files, and session activity.
6
+ */
7
+ import matter from 'gray-matter';
8
+ import { withFallbackSync } from '../utils/error-handling.js';
9
+ // ============================================================================
10
+ // Patterns
11
+ // ============================================================================
12
+ // Table row: | Field | Value |
13
+ const TABLE_ROW_PATTERN = /^\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|$/;
14
+ // Activity row: | time | agent | action |
15
+ const ACTIVITY_ROW_PATTERN = /^\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|$/;
16
+ // Amendment row: | id | title | status | proposed | reviewer |
17
+ const AMENDMENT_ROW_PATTERN = /^\|\s*\[?(AMEND-\d+)\]?\(?([^|)]*)\)?\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|$/;
18
+ // Section header: ## Name
19
+ const SECTION_PATTERN = /^##\s+(.+)$/;
20
+ // Bullet list item
21
+ const BULLET_PATTERN = /^[-*]\s+(.+)$/;
22
+ // Code block
23
+ const CODE_BLOCK_START = /^```/;
24
+ const CODE_BLOCK_END = /^```$/;
25
+ function extractSections(content) {
26
+ const lines = content.split('\n');
27
+ const sections = [];
28
+ let currentSection = null;
29
+ for (let i = 0; i < lines.length; i++) {
30
+ const line = lines[i] ?? '';
31
+ const match = line.match(SECTION_PATTERN);
32
+ if (match?.[1]) {
33
+ if (currentSection) {
34
+ currentSection.content = lines
35
+ .slice(currentSection.startLine + 1, i)
36
+ .join('\n')
37
+ .trim();
38
+ sections.push(currentSection);
39
+ }
40
+ currentSection = {
41
+ name: match[1].trim(),
42
+ content: '',
43
+ startLine: i,
44
+ };
45
+ }
46
+ }
47
+ if (currentSection) {
48
+ currentSection.content = lines
49
+ .slice(currentSection.startLine + 1)
50
+ .join('\n')
51
+ .trim();
52
+ sections.push(currentSection);
53
+ }
54
+ return sections;
55
+ }
56
+ function findSection(sections, name) {
57
+ return sections.find((s) => s.name.toLowerCase() === name.toLowerCase());
58
+ }
59
+ // ============================================================================
60
+ // Current Assignment Parser
61
+ // ============================================================================
62
+ function parseCurrentAssignment(content) {
63
+ const lines = content.split('\n');
64
+ const data = {};
65
+ for (const line of lines) {
66
+ const match = line.match(TABLE_ROW_PATTERN);
67
+ if (match?.[1] && match[2]) {
68
+ const key = match[1].trim().toLowerCase();
69
+ const value = match[2].trim();
70
+ data[key] = value;
71
+ }
72
+ }
73
+ if (!data.track && !data.task) {
74
+ return null;
75
+ }
76
+ return {
77
+ track: data.track ?? '',
78
+ task: data.task ?? '',
79
+ subtask: data.subtask,
80
+ iteration: parseInt(data.iteration ?? '0', 10) || 0,
81
+ started: data.started ?? new Date().toISOString(),
82
+ };
83
+ }
84
+ // ============================================================================
85
+ // Context Files Parser
86
+ // ============================================================================
87
+ function parseContextFiles(content) {
88
+ const lines = content.split('\n');
89
+ const files = [];
90
+ for (const line of lines) {
91
+ const match = line.match(BULLET_PATTERN);
92
+ if (match?.[1]) {
93
+ // Extract path, removing any trailing comments in parentheses
94
+ const path = match[1].replace(/\s*\([^)]*\)\s*$/, '').trim();
95
+ // Remove backticks if present
96
+ files.push(path.replace(/`/g, ''));
97
+ }
98
+ }
99
+ return files;
100
+ }
101
+ // ============================================================================
102
+ // Recent Activity Parser
103
+ // ============================================================================
104
+ function parseRecentActivity(content) {
105
+ const lines = content.split('\n');
106
+ const activities = [];
107
+ for (const line of lines) {
108
+ const match = line.match(ACTIVITY_ROW_PATTERN);
109
+ if (match?.[1] && match[2] && match[3]) {
110
+ const time = match[1].trim();
111
+ const agent = match[2].trim();
112
+ const action = match[3].trim();
113
+ // Skip header row
114
+ if (time.toLowerCase() === 'time')
115
+ continue;
116
+ activities.push({ time, agent, action });
117
+ }
118
+ }
119
+ return activities;
120
+ }
121
+ // ============================================================================
122
+ // Scratchpad Parser
123
+ // ============================================================================
124
+ function parseScratchpad(content) {
125
+ const lines = content.split('\n');
126
+ let inCodeBlock = false;
127
+ const scratchpadLines = [];
128
+ for (const line of lines) {
129
+ if (CODE_BLOCK_START.test(line)) {
130
+ if (inCodeBlock) {
131
+ // End of code block
132
+ break;
133
+ }
134
+ else {
135
+ inCodeBlock = true;
136
+ continue;
137
+ }
138
+ }
139
+ if (inCodeBlock) {
140
+ scratchpadLines.push(line);
141
+ }
142
+ }
143
+ return scratchpadLines.join('\n').trim();
144
+ }
145
+ // ============================================================================
146
+ // Pending Amendments Parser
147
+ // ============================================================================
148
+ function parsePendingAmendments(content) {
149
+ const lines = content.split('\n');
150
+ const amendments = [];
151
+ for (const line of lines) {
152
+ // Try to parse as table row first
153
+ const tableMatch = line.match(/^\|\s*\[(AMEND-\d+)\]\(([^)]+)\)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|\s*([^|]+)\s*\|$/);
154
+ if (tableMatch) {
155
+ const [, id, path, title, status, proposed, reviewer] = tableMatch;
156
+ if (id && path && title && status && proposed && reviewer) {
157
+ // Skip header row
158
+ if (id.toLowerCase() === 'id')
159
+ continue;
160
+ amendments.push({
161
+ id: id.trim(),
162
+ title: title.trim(),
163
+ status: status.trim(),
164
+ proposed: proposed.trim(),
165
+ reviewer: reviewer.trim(),
166
+ path: path.trim(),
167
+ });
168
+ }
169
+ continue;
170
+ }
171
+ // Also try simpler format: | [AMEND-001](path) | Title | status | date | reviewer |
172
+ const simpleMatch = line.match(AMENDMENT_ROW_PATTERN);
173
+ if (simpleMatch) {
174
+ const [, id, path, title, status, proposed, reviewer] = simpleMatch;
175
+ if (id && title && status && proposed && reviewer) {
176
+ // Skip header
177
+ if (id.toLowerCase() === 'id')
178
+ continue;
179
+ amendments.push({
180
+ id: id.trim(),
181
+ title: title.trim(),
182
+ status: status.trim(),
183
+ proposed: proposed.trim(),
184
+ reviewer: reviewer.trim(),
185
+ path: (path || '').trim(),
186
+ });
187
+ }
188
+ }
189
+ }
190
+ return amendments;
191
+ }
192
+ // ============================================================================
193
+ // Warnings Parser
194
+ // ============================================================================
195
+ function parseWarnings(content) {
196
+ const lines = content.split('\n');
197
+ const warnings = [];
198
+ for (const line of lines) {
199
+ const match = line.match(BULLET_PATTERN);
200
+ if (match?.[1]) {
201
+ const warning = match[1].trim();
202
+ // Skip "(none currently)" or similar
203
+ if (warning.startsWith('(') && warning.endsWith(')'))
204
+ continue;
205
+ warnings.push(warning);
206
+ }
207
+ }
208
+ return warnings;
209
+ }
210
+ // ============================================================================
211
+ // Main Parser
212
+ // ============================================================================
213
+ export function parseState(content) {
214
+ const errors = [];
215
+ const warnings = [];
216
+ try {
217
+ // Parse frontmatter
218
+ const { data: frontmatter, content: body } = matter(content);
219
+ // Validate required frontmatter
220
+ if (!frontmatter.conductor) {
221
+ errors.push({
222
+ message: 'Missing required frontmatter field: conductor',
223
+ severity: 'error',
224
+ });
225
+ }
226
+ if (!frontmatter.session_id) {
227
+ errors.push({
228
+ message: 'Missing required frontmatter field: session_id',
229
+ severity: 'error',
230
+ });
231
+ }
232
+ // Extract sections
233
+ const sections = extractSections(body);
234
+ // Parse Current Assignment
235
+ const assignmentSection = findSection(sections, 'Current Assignment');
236
+ const currentAssignment = assignmentSection
237
+ ? parseCurrentAssignment(assignmentSection.content)
238
+ : null;
239
+ // Parse Context Files
240
+ const contextSection = findSection(sections, 'Context Files');
241
+ const contextFiles = contextSection
242
+ ? parseContextFiles(contextSection.content)
243
+ : [];
244
+ // Parse Recent Activity
245
+ const activitySection = findSection(sections, 'Recent Activity');
246
+ const recentActivity = activitySection
247
+ ? parseRecentActivity(activitySection.content)
248
+ : [];
249
+ // Parse Agent Scratchpad
250
+ const scratchpadSection = findSection(sections, 'Agent Scratchpad');
251
+ const scratchpad = scratchpadSection
252
+ ? parseScratchpad(scratchpadSection.content)
253
+ : '';
254
+ // Parse Pending Amendments
255
+ const amendmentsSection = findSection(sections, 'Pending Amendments');
256
+ const pendingAmendments = amendmentsSection
257
+ ? parsePendingAmendments(amendmentsSection.content)
258
+ : [];
259
+ // Parse Warnings
260
+ const warningsSection = findSection(sections, 'Warnings');
261
+ const stateWarnings = warningsSection
262
+ ? parseWarnings(warningsSection.content)
263
+ : [];
264
+ // Add warnings from parsed state
265
+ if (stateWarnings.length > 0) {
266
+ for (const w of stateWarnings) {
267
+ warnings.push({ message: w, severity: 'warning' });
268
+ }
269
+ }
270
+ if (errors.length > 0) {
271
+ return { success: false, errors, warnings };
272
+ }
273
+ return {
274
+ success: true,
275
+ data: {
276
+ frontmatter: {
277
+ conductor: frontmatter.conductor ?? '1.0',
278
+ spec: frontmatter.spec ?? '',
279
+ plan: frontmatter.plan ?? '',
280
+ track_id: frontmatter.track_id,
281
+ session_id: frontmatter.session_id ?? '',
282
+ agent: frontmatter.agent ?? '',
283
+ created: frontmatter.created ?? '',
284
+ updated: frontmatter.updated ?? '',
285
+ },
286
+ currentAssignment,
287
+ contextFiles,
288
+ recentActivity,
289
+ scratchpad,
290
+ pendingAmendments,
291
+ warnings: stateWarnings,
292
+ raw: content,
293
+ },
294
+ errors: [],
295
+ warnings,
296
+ };
297
+ }
298
+ catch (error) {
299
+ return {
300
+ success: false,
301
+ errors: [
302
+ {
303
+ message: `Failed to parse state: ${error instanceof Error ? error.message : String(error)}`,
304
+ severity: 'error',
305
+ },
306
+ ],
307
+ warnings: [],
308
+ };
309
+ }
310
+ }
311
+ // ============================================================================
312
+ // State Operations
313
+ // ============================================================================
314
+ /**
315
+ * Check if session is stale (no activity for specified duration)
316
+ */
317
+ export function isSessionStale(state, maxIdleMinutes = 120) {
318
+ if (state.recentActivity.length === 0) {
319
+ return true;
320
+ }
321
+ const lastActivity = state.recentActivity[0];
322
+ if (!lastActivity)
323
+ return true;
324
+ return withFallbackSync(() => {
325
+ const lastTime = new Date(lastActivity.time);
326
+ const now = new Date();
327
+ const idleMinutes = (now.getTime() - lastTime.getTime()) / (1000 * 60);
328
+ return idleMinutes > maxIdleMinutes;
329
+ }, false, { operation: 'parseActivityTime', details: { time: lastActivity.time } });
330
+ }
331
+ /**
332
+ * Get session duration in minutes
333
+ */
334
+ export function getSessionDuration(state) {
335
+ if (!state.frontmatter.created)
336
+ return 0;
337
+ return withFallbackSync(() => {
338
+ const start = new Date(state.frontmatter.created);
339
+ const end = state.frontmatter.updated
340
+ ? new Date(state.frontmatter.updated)
341
+ : new Date();
342
+ return Math.round((end.getTime() - start.getTime()) / (1000 * 60));
343
+ }, 0, {
344
+ operation: 'parseSessionDuration',
345
+ details: {
346
+ created: state.frontmatter.created,
347
+ updated: state.frontmatter.updated,
348
+ },
349
+ });
350
+ }
351
+ /**
352
+ * Generate a quick status summary
353
+ */
354
+ export function getStatusSummary(state) {
355
+ const parts = [];
356
+ // Current assignment
357
+ if (state.currentAssignment) {
358
+ parts.push(`Track: ${state.currentAssignment.track}`);
359
+ parts.push(`Task: ${state.currentAssignment.task}`);
360
+ if (state.currentAssignment.subtask) {
361
+ parts.push(`Subtask: ${state.currentAssignment.subtask}`);
362
+ }
363
+ parts.push(`Iteration: ${state.currentAssignment.iteration}`);
364
+ }
365
+ else {
366
+ parts.push('No current assignment');
367
+ }
368
+ // Warnings
369
+ if (state.warnings.length > 0) {
370
+ parts.push(`Warnings: ${state.warnings.length}`);
371
+ }
372
+ // Pending amendments
373
+ if (state.pendingAmendments.length > 0) {
374
+ parts.push(`Pending amendments: ${state.pendingAmendments.length}`);
375
+ }
376
+ return parts.join(' | ');
377
+ }
378
+ //# sourceMappingURL=state-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-parser.js","sourceRoot":"","sources":["../../src/parsers/state-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Conductor Parser Types
3
+ *
4
+ * TypeScript types for all parsed Conductor documents.
5
+ */
6
+ export interface Frontmatter {
7
+ conductor: string;
8
+ [key: string]: unknown;
9
+ }
10
+ export type CheckboxState = 'pending' | 'in_progress' | 'complete' | 'blocked';
11
+ export interface Checkbox {
12
+ state: CheckboxState;
13
+ content: string;
14
+ line: number;
15
+ }
16
+ export interface SpecFrontmatter extends Frontmatter {
17
+ id: string;
18
+ version: string;
19
+ status: 'draft' | 'active' | 'superseded';
20
+ author: string;
21
+ created: string;
22
+ updated: string;
23
+ tags?: string[];
24
+ }
25
+ export interface SuccessCriterion {
26
+ id: string;
27
+ content: string;
28
+ completed: boolean;
29
+ line: number;
30
+ }
31
+ export type ADRStatus = 'proposed' | 'accepted' | 'deprecated' | 'superseded';
32
+ export interface ADR {
33
+ id: string;
34
+ title: string;
35
+ status: ADRStatus;
36
+ context: string;
37
+ decision: string;
38
+ consequences: string[];
39
+ line: number;
40
+ }
41
+ export interface ParsedSpec {
42
+ frontmatter: SpecFrontmatter;
43
+ title: string;
44
+ problemStatement: string;
45
+ successCriteria: SuccessCriterion[];
46
+ constraints: string[];
47
+ nonGoals: string[];
48
+ adrs: ADR[];
49
+ interfaces: {
50
+ name: string;
51
+ code: string;
52
+ language: string;
53
+ }[];
54
+ dependencies: string[];
55
+ references: string[];
56
+ raw: string;
57
+ }
58
+ export interface PlanFrontmatter extends Frontmatter {
59
+ spec: string;
60
+ spec_version: string;
61
+ plan_version: number;
62
+ status: 'pending' | 'active' | 'blocked' | 'complete';
63
+ created: string;
64
+ updated: string;
65
+ }
66
+ export interface Task {
67
+ id: string;
68
+ content: string;
69
+ state: CheckboxState;
70
+ subtasks: Task[];
71
+ line: number;
72
+ indent: number;
73
+ }
74
+ export interface Track {
75
+ id: string;
76
+ name: string;
77
+ description: string;
78
+ agent: string;
79
+ status: CheckboxState;
80
+ dependencies: string[];
81
+ tasks: Task[];
82
+ artifacts: string[];
83
+ notes: string;
84
+ started?: string;
85
+ completed?: string;
86
+ line: number;
87
+ }
88
+ export interface PlanSummary {
89
+ totalTracks: number;
90
+ completedTracks: number;
91
+ progress: number;
92
+ }
93
+ export interface ParsedPlan {
94
+ frontmatter: PlanFrontmatter;
95
+ title: string;
96
+ summary: string;
97
+ metrics: PlanSummary;
98
+ tracks: Track[];
99
+ pendingAmendments: {
100
+ id: string;
101
+ title: string;
102
+ path: string;
103
+ }[];
104
+ changelog: {
105
+ version: number;
106
+ date: string;
107
+ agent: string;
108
+ summary: string;
109
+ }[];
110
+ raw: string;
111
+ }
112
+ export interface StateFrontmatter extends Frontmatter {
113
+ spec: string;
114
+ plan: string;
115
+ track_id?: string;
116
+ session_id: string;
117
+ agent: string;
118
+ created: string;
119
+ updated: string;
120
+ }
121
+ export interface CurrentAssignment {
122
+ track: string;
123
+ task: string;
124
+ subtask?: string;
125
+ iteration: number;
126
+ started: string;
127
+ }
128
+ export interface RecentActivity {
129
+ time: string;
130
+ agent: string;
131
+ action: string;
132
+ }
133
+ export interface PendingAmendment {
134
+ id: string;
135
+ title: string;
136
+ status: string;
137
+ proposed: string;
138
+ reviewer: string;
139
+ path: string;
140
+ }
141
+ export interface ParsedState {
142
+ frontmatter: StateFrontmatter;
143
+ currentAssignment: CurrentAssignment | null;
144
+ contextFiles: string[];
145
+ recentActivity: RecentActivity[];
146
+ scratchpad: string;
147
+ pendingAmendments: PendingAmendment[];
148
+ warnings: string[];
149
+ raw: string;
150
+ }
151
+ export interface AmendmentFrontmatter extends Frontmatter {
152
+ id: string;
153
+ status: 'proposed' | 'accepted' | 'rejected' | 'withdrawn' | 'applied';
154
+ proposed_by: string;
155
+ proposed_at: string;
156
+ reviewed_by?: string;
157
+ reviewed_at?: string;
158
+ affects: {
159
+ file: string;
160
+ section: string;
161
+ };
162
+ }
163
+ export interface ParsedAmendment {
164
+ frontmatter: AmendmentFrontmatter;
165
+ title: string;
166
+ summary: string;
167
+ rationale: string;
168
+ currentText: string;
169
+ proposedText: string;
170
+ impactAssessment: Record<string, string>;
171
+ discussion: {
172
+ timestamp: string;
173
+ agent: string;
174
+ content: string;
175
+ }[];
176
+ raw: string;
177
+ }
178
+ export interface ParseError {
179
+ line?: number;
180
+ column?: number;
181
+ message: string;
182
+ severity: 'error' | 'warning';
183
+ }
184
+ export interface ParseResult<T> {
185
+ success: boolean;
186
+ data?: T;
187
+ errors: ParseError[];
188
+ warnings: ParseError[];
189
+ }
190
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/parsers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Conductor Parser Types
3
+ *
4
+ * TypeScript types for all parsed Conductor documents.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parsers/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}