@sudocode-ai/cli 0.1.0 → 0.1.2
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/dist/cli/feedback-commands.d.ts.map +1 -0
- package/dist/cli/feedback-commands.js +274 -0
- package/dist/cli/feedback-commands.js.map +1 -0
- package/dist/cli/init-commands.d.ts.map +1 -0
- package/dist/cli/init-commands.js +148 -0
- package/dist/cli/init-commands.js.map +1 -0
- package/dist/cli/issue-commands.d.ts.map +1 -0
- package/dist/cli/issue-commands.js +310 -0
- package/dist/cli/issue-commands.js.map +1 -0
- package/dist/cli/query-commands.d.ts.map +1 -0
- package/dist/cli/query-commands.js +61 -0
- package/dist/cli/query-commands.js.map +1 -0
- package/dist/cli/reference-commands.d.ts.map +1 -0
- package/dist/cli/reference-commands.js +136 -0
- package/dist/cli/reference-commands.js.map +1 -0
- package/dist/cli/relationship-commands.d.ts.map +1 -0
- package/dist/cli/relationship-commands.js +76 -0
- package/dist/cli/relationship-commands.js.map +1 -0
- package/dist/cli/server-commands.d.ts.map +1 -0
- package/dist/cli/server-commands.js +99 -0
- package/dist/cli/server-commands.js.map +1 -0
- package/dist/cli/spec-commands.d.ts.map +1 -0
- package/dist/cli/spec-commands.js +321 -0
- package/dist/cli/spec-commands.js.map +1 -0
- package/dist/cli/status-commands.d.ts.map +1 -0
- package/dist/cli/status-commands.js +131 -0
- package/dist/cli/status-commands.js.map +1 -0
- package/dist/cli/sync-commands.d.ts.map +1 -0
- package/dist/cli/sync-commands.js +416 -0
- package/dist/cli/sync-commands.js.map +1 -0
- package/dist/cli/update-commands.d.ts.map +1 -0
- package/dist/cli/update-commands.js +78 -0
- package/dist/cli/update-commands.js.map +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +425 -195
- package/dist/cli.js.map +1 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +54 -0
- package/dist/db.js.map +1 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +195 -0
- package/dist/export.js.map +1 -0
- package/dist/filename-generator.d.ts.map +1 -0
- package/dist/filename-generator.js +93 -0
- package/dist/filename-generator.js.map +1 -0
- package/dist/id-generator.d.ts.map +1 -0
- package/dist/id-generator.js +123 -0
- package/dist/id-generator.js.map +1 -0
- package/dist/import.d.ts.map +1 -0
- package/dist/import.js +608 -0
- package/dist/import.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -189
- package/dist/index.js.map +1 -0
- package/dist/jsonl.d.ts.map +1 -0
- package/dist/jsonl.js +333 -0
- package/dist/jsonl.js.map +1 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +357 -0
- package/dist/markdown.js.map +1 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +57 -0
- package/dist/migrations.js.map +1 -0
- package/dist/operations/events.d.ts.map +1 -0
- package/dist/operations/events.js +108 -0
- package/dist/operations/events.js.map +1 -0
- package/dist/operations/feedback-anchors.d.ts.map +1 -0
- package/dist/operations/feedback-anchors.js +444 -0
- package/dist/operations/feedback-anchors.js.map +1 -0
- package/dist/operations/feedback.d.ts.map +1 -0
- package/dist/operations/feedback.js +234 -0
- package/dist/operations/feedback.js.map +1 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +10 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/issues.d.ts.map +1 -0
- package/dist/operations/issues.js +411 -0
- package/dist/operations/issues.js.map +1 -0
- package/dist/operations/references.d.ts.map +1 -0
- package/dist/operations/references.js +117 -0
- package/dist/operations/references.js.map +1 -0
- package/dist/operations/relationships.d.ts.map +1 -0
- package/dist/operations/relationships.js +236 -0
- package/dist/operations/relationships.js.map +1 -0
- package/dist/operations/specs.d.ts.map +1 -0
- package/dist/operations/specs.js +290 -0
- package/dist/operations/specs.js.map +1 -0
- package/dist/operations/tags.d.ts.map +1 -0
- package/dist/operations/tags.js +127 -0
- package/dist/operations/tags.js.map +1 -0
- package/dist/operations/transactions.d.ts.map +1 -0
- package/dist/operations/transactions.js +111 -0
- package/dist/operations/transactions.js.map +1 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.js +442 -0
- package/dist/sync.js.map +1 -0
- package/dist/test-schema.d.ts.map +1 -0
- package/dist/test-schema.js +46 -0
- package/dist/test-schema.js.map +1 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/update-checker.d.ts.map +1 -0
- package/dist/update-checker.js +151 -0
- package/dist/update-checker.js.map +1 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +438 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +4 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../src/jsonl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
|
package/dist/markdown.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown parser with frontmatter support
|
|
3
|
+
*/
|
|
4
|
+
import matter from "gray-matter";
|
|
5
|
+
import * as fs from "fs";
|
|
6
|
+
import { getSpec } from "./operations/specs.js";
|
|
7
|
+
import { getIssue } from "./operations/issues.js";
|
|
8
|
+
import { getConfig } from "./id-generator.js";
|
|
9
|
+
import { createFeedbackAnchor } from "./operations/feedback-anchors.js";
|
|
10
|
+
/**
|
|
11
|
+
* Parse markdown file with YAML frontmatter
|
|
12
|
+
* @param content - Markdown content to parse
|
|
13
|
+
* @param db - Optional database for validating cross-references
|
|
14
|
+
* @param outputDir - Optional output directory for loading config metadata
|
|
15
|
+
*/
|
|
16
|
+
export function parseMarkdown(content, db, outputDir) {
|
|
17
|
+
const parsed = matter(content);
|
|
18
|
+
// Load metadata if outputDir is provided
|
|
19
|
+
let config;
|
|
20
|
+
if (outputDir && db) {
|
|
21
|
+
try {
|
|
22
|
+
config = getConfig(outputDir);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
// Ignore - will fall back to default heuristics
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Extract cross-references from content
|
|
29
|
+
const references = extractCrossReferences(parsed.content, db, config);
|
|
30
|
+
return {
|
|
31
|
+
data: parsed.data,
|
|
32
|
+
content: parsed.content,
|
|
33
|
+
raw: content,
|
|
34
|
+
references,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse markdown file from disk
|
|
39
|
+
* @param filePath - Path to markdown file
|
|
40
|
+
* @param db - Optional database for validating cross-references
|
|
41
|
+
* @param outputDir - Optional output directory for loading config metadata
|
|
42
|
+
*/
|
|
43
|
+
export function parseMarkdownFile(filePath, db, outputDir) {
|
|
44
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
45
|
+
return parseMarkdown(content, db, outputDir);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Convert character index to line number
|
|
49
|
+
*/
|
|
50
|
+
function getLineNumber(content, charIndex) {
|
|
51
|
+
const beforeMatch = content.substring(0, charIndex);
|
|
52
|
+
return beforeMatch.split("\n").length;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Convert FeedbackAnchor to LocationAnchor (strips tracking fields)
|
|
56
|
+
*/
|
|
57
|
+
function feedbackAnchorToLocationAnchor(feedbackAnchor) {
|
|
58
|
+
return {
|
|
59
|
+
section_heading: feedbackAnchor.section_heading,
|
|
60
|
+
section_level: feedbackAnchor.section_level,
|
|
61
|
+
line_number: feedbackAnchor.line_number,
|
|
62
|
+
line_offset: feedbackAnchor.line_offset,
|
|
63
|
+
text_snippet: feedbackAnchor.text_snippet,
|
|
64
|
+
context_before: feedbackAnchor.context_before,
|
|
65
|
+
context_after: feedbackAnchor.context_after,
|
|
66
|
+
content_hash: feedbackAnchor.content_hash,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Extract cross-references from markdown content
|
|
71
|
+
* Supports formats:
|
|
72
|
+
* - [[entity-001]] - entity reference (type determined by database lookup)
|
|
73
|
+
* - [[@entity-042]] - entity reference with @ prefix (for clarity)
|
|
74
|
+
* - [[entity-001|Display Text]] - with custom display text
|
|
75
|
+
* - [[entity-001]]{ blocks } - with relationship type (shorthand)
|
|
76
|
+
* - [[entity-001]]{ type: blocks } - with relationship type (explicit)
|
|
77
|
+
* - [[entity-001|Display]]{ blocks } - combination of display text and type
|
|
78
|
+
*
|
|
79
|
+
* If db is provided, validates references against the database and determines entity type.
|
|
80
|
+
* Only returns references to entities that actually exist.
|
|
81
|
+
*
|
|
82
|
+
* If metadata is provided (but no db), uses configured ID prefixes for type detection.
|
|
83
|
+
*/
|
|
84
|
+
export function extractCrossReferences(content, db, config) {
|
|
85
|
+
const references = [];
|
|
86
|
+
// Pattern: [[optional-@][entity-id][|display-text]]optional-metadata
|
|
87
|
+
// Matches:
|
|
88
|
+
// - [[entity-001]]
|
|
89
|
+
// - [[entity-001|Display Text]]
|
|
90
|
+
// - [[entity-001]]{ blocks }
|
|
91
|
+
// - [[entity-001]]{ type: depends-on }
|
|
92
|
+
// - [[entity-001|Auth Flow]]{ implements }
|
|
93
|
+
const refPattern = /\[\[(@)?([a-z]+-\d+)(?:\|([^\]]+))?\]\](?:\{\s*(?:type:\s*)?([a-z-]+)\s*\})?/gi;
|
|
94
|
+
let match;
|
|
95
|
+
while ((match = refPattern.exec(content)) !== null) {
|
|
96
|
+
const hasAt = match[1] === "@";
|
|
97
|
+
const id = match[2];
|
|
98
|
+
const displayText = match[3]?.trim();
|
|
99
|
+
const relationshipType = match[4]?.trim();
|
|
100
|
+
// Create location anchor for this reference
|
|
101
|
+
let anchor;
|
|
102
|
+
try {
|
|
103
|
+
const lineNumber = getLineNumber(content, match.index);
|
|
104
|
+
const feedbackAnchor = createFeedbackAnchor(content, lineNumber, match.index);
|
|
105
|
+
anchor = feedbackAnchorToLocationAnchor(feedbackAnchor);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
// If anchor creation fails, continue without it
|
|
109
|
+
anchor = undefined;
|
|
110
|
+
}
|
|
111
|
+
if (db) {
|
|
112
|
+
let entityType = null;
|
|
113
|
+
try {
|
|
114
|
+
const spec = getSpec(db, id);
|
|
115
|
+
if (spec) {
|
|
116
|
+
entityType = "spec";
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (error) { }
|
|
120
|
+
if (!entityType) {
|
|
121
|
+
try {
|
|
122
|
+
const issue = getIssue(db, id);
|
|
123
|
+
if (issue) {
|
|
124
|
+
entityType = "issue";
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (error) { }
|
|
128
|
+
}
|
|
129
|
+
if (entityType) {
|
|
130
|
+
references.push({
|
|
131
|
+
match: match[0],
|
|
132
|
+
id,
|
|
133
|
+
type: entityType,
|
|
134
|
+
index: match.index,
|
|
135
|
+
displayText,
|
|
136
|
+
relationshipType,
|
|
137
|
+
anchor,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
let type;
|
|
143
|
+
if (config) {
|
|
144
|
+
const specPrefix = config.id_prefix.spec.toLowerCase();
|
|
145
|
+
const issuePrefix = config.id_prefix.issue.toLowerCase();
|
|
146
|
+
if (hasAt || id.toLowerCase().startsWith(issuePrefix + "-")) {
|
|
147
|
+
type = "issue";
|
|
148
|
+
}
|
|
149
|
+
else if (id.toLowerCase().startsWith(specPrefix + "-")) {
|
|
150
|
+
type = "spec";
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// TODO: Check the actual entity ID.
|
|
154
|
+
// TODO: No issue resolved - skip the reference.
|
|
155
|
+
type = "spec";
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
type = hasAt || id.startsWith("issue-") ? "issue" : "spec";
|
|
160
|
+
}
|
|
161
|
+
references.push({
|
|
162
|
+
match: match[0],
|
|
163
|
+
id,
|
|
164
|
+
type,
|
|
165
|
+
index: match.index,
|
|
166
|
+
displayText,
|
|
167
|
+
relationshipType,
|
|
168
|
+
anchor,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return references;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Stringify frontmatter and content back to markdown
|
|
176
|
+
*/
|
|
177
|
+
export function stringifyMarkdown(data, content) {
|
|
178
|
+
return matter.stringify(content, data);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Update frontmatter in an existing markdown file
|
|
182
|
+
* Preserves content unchanged
|
|
183
|
+
*/
|
|
184
|
+
export function updateFrontmatter(originalContent, updates) {
|
|
185
|
+
const parsed = matter(originalContent);
|
|
186
|
+
// Merge updates into existing frontmatter
|
|
187
|
+
const merged = {
|
|
188
|
+
...parsed.data,
|
|
189
|
+
...updates,
|
|
190
|
+
};
|
|
191
|
+
// Remove keys with undefined values (allows explicit removal of fields)
|
|
192
|
+
const newData = Object.fromEntries(Object.entries(merged).filter(([_, value]) => value !== undefined));
|
|
193
|
+
return matter.stringify(parsed.content, newData);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Update frontmatter in a file
|
|
197
|
+
*/
|
|
198
|
+
export function updateFrontmatterFile(filePath, updates) {
|
|
199
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
200
|
+
const updated = updateFrontmatter(content, updates);
|
|
201
|
+
fs.writeFileSync(filePath, updated, "utf8");
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Check if a file has frontmatter
|
|
205
|
+
*/
|
|
206
|
+
export function hasFrontmatter(content) {
|
|
207
|
+
return content.trimStart().startsWith("---");
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Create markdown with frontmatter
|
|
211
|
+
*/
|
|
212
|
+
export function createMarkdown(data, content) {
|
|
213
|
+
return stringifyMarkdown(data, content);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Write markdown file with frontmatter
|
|
217
|
+
*/
|
|
218
|
+
export function writeMarkdownFile(filePath, data, content) {
|
|
219
|
+
const markdown = createMarkdown(data, content);
|
|
220
|
+
fs.writeFileSync(filePath, markdown, "utf8");
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Remove frontmatter from markdown content
|
|
224
|
+
*/
|
|
225
|
+
export function removeFrontmatter(content) {
|
|
226
|
+
const parsed = matter(content);
|
|
227
|
+
return parsed.content;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get only frontmatter data from markdown
|
|
231
|
+
*/
|
|
232
|
+
export function getFrontmatter(content) {
|
|
233
|
+
const parsed = matter(content);
|
|
234
|
+
return parsed.data;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Parse feedback section from issue markdown content
|
|
238
|
+
* Looks for "## Spec Feedback Provided" section
|
|
239
|
+
*/
|
|
240
|
+
export function parseFeedbackSection(content) {
|
|
241
|
+
const feedback = [];
|
|
242
|
+
// Look for "## Spec Feedback Provided" section
|
|
243
|
+
const feedbackSectionMatch = content.match(/^## Spec Feedback Provided\s*$/m);
|
|
244
|
+
if (!feedbackSectionMatch) {
|
|
245
|
+
return feedback;
|
|
246
|
+
}
|
|
247
|
+
const startIndex = feedbackSectionMatch.index + feedbackSectionMatch[0].length;
|
|
248
|
+
// Find the end of this section (next ## heading or end of content)
|
|
249
|
+
const remainingContent = content.slice(startIndex);
|
|
250
|
+
const endMatch = remainingContent.match(/^## /m);
|
|
251
|
+
const sectionContent = endMatch
|
|
252
|
+
? remainingContent.slice(0, endMatch.index)
|
|
253
|
+
: remainingContent;
|
|
254
|
+
// Parse individual feedback items (### heading for each)
|
|
255
|
+
const feedbackPattern = /^### (FB-\d+) → ([a-z]+-\d+)(?: \((.*?)\))?\s*\n\*\*Type:\*\* (.+?)\s*\n\*\*Location:\*\* (.*?)\s*\n\*\*Status:\*\* (.+?)\s*\n\n([\s\S]*?)(?=\n###|$)/gm;
|
|
256
|
+
let match;
|
|
257
|
+
while ((match = feedbackPattern.exec(sectionContent)) !== null) {
|
|
258
|
+
const [, id, specId, specTitle, type, locationStr, status, content] = match;
|
|
259
|
+
// Parse location string: "## Section Name, line 45 ✓" or "line 45 ⚠" or "Unknown ✗"
|
|
260
|
+
const locationMatch = locationStr.match(/(?:(.+?),\s+)?line (\d+)\s*([✓⚠✗])/);
|
|
261
|
+
const feedbackData = {
|
|
262
|
+
id,
|
|
263
|
+
specId,
|
|
264
|
+
specTitle: specTitle || undefined,
|
|
265
|
+
type: type.trim(),
|
|
266
|
+
location: {
|
|
267
|
+
section: locationMatch?.[1]?.trim(),
|
|
268
|
+
line: locationMatch?.[2] ? parseInt(locationMatch[2]) : undefined,
|
|
269
|
+
status: locationMatch?.[3] === "✓"
|
|
270
|
+
? "valid"
|
|
271
|
+
: locationMatch?.[3] === "⚠"
|
|
272
|
+
? "relocated"
|
|
273
|
+
: "stale",
|
|
274
|
+
},
|
|
275
|
+
status: status.trim(),
|
|
276
|
+
content: content.trim(),
|
|
277
|
+
createdAt: "", // Would need to parse from content or get from DB
|
|
278
|
+
};
|
|
279
|
+
// Check for resolution
|
|
280
|
+
const resolutionMatch = content.match(/\*\*Resolution:\*\* (.+)/);
|
|
281
|
+
if (resolutionMatch) {
|
|
282
|
+
feedbackData.resolution = resolutionMatch[1].trim();
|
|
283
|
+
}
|
|
284
|
+
feedback.push(feedbackData);
|
|
285
|
+
}
|
|
286
|
+
return feedback;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Format feedback data for inclusion in issue markdown
|
|
290
|
+
*/
|
|
291
|
+
export function formatFeedbackForIssue(feedback) {
|
|
292
|
+
if (feedback.length === 0) {
|
|
293
|
+
return "";
|
|
294
|
+
}
|
|
295
|
+
let output = "\n## Spec Feedback Provided\n\n";
|
|
296
|
+
for (const fb of feedback) {
|
|
297
|
+
// Determine status indicator
|
|
298
|
+
const statusIndicator = fb.location.status === "valid"
|
|
299
|
+
? "✓"
|
|
300
|
+
: fb.location.status === "relocated"
|
|
301
|
+
? "⚠"
|
|
302
|
+
: "✗";
|
|
303
|
+
// Format location
|
|
304
|
+
let locationStr = "";
|
|
305
|
+
if (fb.location.section && fb.location.line) {
|
|
306
|
+
locationStr = `${fb.location.section}, line ${fb.location.line} ${statusIndicator}`;
|
|
307
|
+
}
|
|
308
|
+
else if (fb.location.line) {
|
|
309
|
+
locationStr = `line ${fb.location.line} ${statusIndicator}`;
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
locationStr = `Unknown ${statusIndicator}`;
|
|
313
|
+
}
|
|
314
|
+
const titlePart = fb.specTitle ? ` (${fb.specTitle})` : "";
|
|
315
|
+
output += `### ${fb.id} → ${fb.specId}${titlePart}\n`;
|
|
316
|
+
output += `**Type:** ${fb.type} \n`;
|
|
317
|
+
output += `**Location:** ${locationStr} \n`;
|
|
318
|
+
output += `**Status:** ${fb.status}\n\n`;
|
|
319
|
+
output += `${fb.content}\n`;
|
|
320
|
+
if (fb.resolution) {
|
|
321
|
+
output += `\n**Resolution:** ${fb.resolution}\n`;
|
|
322
|
+
}
|
|
323
|
+
output += "\n";
|
|
324
|
+
}
|
|
325
|
+
return output;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Append or update feedback section in issue markdown
|
|
329
|
+
*/
|
|
330
|
+
export function updateFeedbackInIssue(issueContent, feedback) {
|
|
331
|
+
// Remove existing feedback section if present
|
|
332
|
+
const feedbackSectionMatch = issueContent.match(/^## Spec Feedback Provided\s*$/m);
|
|
333
|
+
if (feedbackSectionMatch) {
|
|
334
|
+
const startIndex = feedbackSectionMatch.index;
|
|
335
|
+
// Find the end of this section (next ## heading or end of content)
|
|
336
|
+
const remainingContent = issueContent.slice(startIndex);
|
|
337
|
+
const endMatch = remainingContent.match(/^## /m);
|
|
338
|
+
if (endMatch && endMatch.index > 0) {
|
|
339
|
+
// There's another section after feedback
|
|
340
|
+
const endIndex = startIndex + endMatch.index;
|
|
341
|
+
issueContent =
|
|
342
|
+
issueContent.slice(0, startIndex) + issueContent.slice(endIndex);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
// Feedback section is at the end
|
|
346
|
+
issueContent = issueContent.slice(0, startIndex);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// Append new feedback section
|
|
350
|
+
const feedbackMarkdown = formatFeedbackForIssue(feedback);
|
|
351
|
+
if (feedbackMarkdown) {
|
|
352
|
+
// Ensure there's a blank line before the new section
|
|
353
|
+
issueContent = issueContent.trimEnd() + "\n" + feedbackMarkdown;
|
|
354
|
+
}
|
|
355
|
+
return issueContent;
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;CACxC;AAOD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAaxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,SAAS,GACnB,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAwBzD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database migration utilities for sudocode
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* All migrations in order
|
|
6
|
+
*/
|
|
7
|
+
const MIGRATIONS = [];
|
|
8
|
+
/**
|
|
9
|
+
* Get the current migration version from the database
|
|
10
|
+
*/
|
|
11
|
+
export function getCurrentMigrationVersion(db) {
|
|
12
|
+
// Create migrations table if it doesn't exist
|
|
13
|
+
db.exec(`
|
|
14
|
+
CREATE TABLE IF NOT EXISTS migrations (
|
|
15
|
+
version INTEGER PRIMARY KEY,
|
|
16
|
+
name TEXT NOT NULL,
|
|
17
|
+
applied_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
18
|
+
)
|
|
19
|
+
`);
|
|
20
|
+
const stmt = db.prepare("SELECT MAX(version) as version FROM migrations");
|
|
21
|
+
const result = stmt.get();
|
|
22
|
+
return result.version ?? 0;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Record a migration as applied
|
|
26
|
+
*/
|
|
27
|
+
export function recordMigration(db, migration) {
|
|
28
|
+
const stmt = db.prepare(`
|
|
29
|
+
INSERT OR REPLACE INTO migrations (version, name)
|
|
30
|
+
VALUES (?, ?)
|
|
31
|
+
`);
|
|
32
|
+
stmt.run(migration.version, migration.name);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Run all pending migrations
|
|
36
|
+
*/
|
|
37
|
+
export function runMigrations(db) {
|
|
38
|
+
const currentVersion = getCurrentMigrationVersion(db);
|
|
39
|
+
const pendingMigrations = MIGRATIONS.filter((m) => m.version > currentVersion);
|
|
40
|
+
if (pendingMigrations.length === 0) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
console.log(`Running ${pendingMigrations.length} pending migration(s)...`);
|
|
44
|
+
for (const migration of pendingMigrations) {
|
|
45
|
+
console.log(` Applying migration ${migration.version}: ${migration.name}`);
|
|
46
|
+
try {
|
|
47
|
+
migration.up(db);
|
|
48
|
+
recordMigration(db, migration);
|
|
49
|
+
console.log(` ✓ Migration ${migration.version} applied successfully`);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error(` ✗ Migration ${migration.version} failed:`, error);
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,UAAU,GAAgB,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAAqB;IAC9D,8CAA8C;IAC9C,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAgC,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,EAAqB,EACrB,SAAoB;IAEpB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;GAGvB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAqB;IACjD,MAAM,cAAc,GAAG,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAEtD,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAClC,CAAC;IAEF,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,iBAAiB,CAAC,MAAM,0BAA0B,CAAC,CAAC;IAE3E,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,OAAO,uBAAuB,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,SAAS,CAAC,OAAO,UAAU,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/operations/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,gBAAgB,GACtB,KAAK,CA6BP;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAGxE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,GAAE,kBAAuB,GAC/B,KAAK,EAAE,CAsCT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,UAAU,EACvB,KAAK,CAAC,EAAE,MAAM,GACb,KAAK,EAAE,CAET;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,GAAE,MAAW,GACjB,KAAK,EAAE,CAET;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,KAAK,EAAE,CAET;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,UAAU,GACtB,MAAM,CAQR"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operations for Events (audit trail)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Insert an event
|
|
6
|
+
*/
|
|
7
|
+
export function insertEvent(db, input) {
|
|
8
|
+
const stmt = db.prepare(`
|
|
9
|
+
INSERT INTO events (
|
|
10
|
+
entity_id, entity_type, event_type, actor,
|
|
11
|
+
old_value, new_value, comment, git_commit_sha, source
|
|
12
|
+
) VALUES (
|
|
13
|
+
@entity_id, @entity_type, @event_type, @actor,
|
|
14
|
+
@old_value, @new_value, @comment, @git_commit_sha, @source
|
|
15
|
+
)
|
|
16
|
+
`);
|
|
17
|
+
const result = stmt.run({
|
|
18
|
+
entity_id: input.entity_id,
|
|
19
|
+
entity_type: input.entity_type,
|
|
20
|
+
event_type: input.event_type,
|
|
21
|
+
actor: input.actor,
|
|
22
|
+
old_value: input.old_value || null,
|
|
23
|
+
new_value: input.new_value || null,
|
|
24
|
+
comment: input.comment || null,
|
|
25
|
+
git_commit_sha: input.git_commit_sha || null,
|
|
26
|
+
source: input.source || null,
|
|
27
|
+
});
|
|
28
|
+
const event = getEvent(db, Number(result.lastInsertRowid));
|
|
29
|
+
if (!event) {
|
|
30
|
+
throw new Error('Failed to create event');
|
|
31
|
+
}
|
|
32
|
+
return event;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get an event by ID
|
|
36
|
+
*/
|
|
37
|
+
export function getEvent(db, id) {
|
|
38
|
+
const stmt = db.prepare('SELECT * FROM events WHERE id = ?');
|
|
39
|
+
return stmt.get(id) ?? null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Query events with filters
|
|
43
|
+
*/
|
|
44
|
+
export function queryEvents(db, options = {}) {
|
|
45
|
+
const conditions = [];
|
|
46
|
+
const params = {};
|
|
47
|
+
if (options.entity_id !== undefined) {
|
|
48
|
+
conditions.push('entity_id = @entity_id');
|
|
49
|
+
params.entity_id = options.entity_id;
|
|
50
|
+
}
|
|
51
|
+
if (options.entity_type !== undefined) {
|
|
52
|
+
conditions.push('entity_type = @entity_type');
|
|
53
|
+
params.entity_type = options.entity_type;
|
|
54
|
+
}
|
|
55
|
+
if (options.event_type !== undefined) {
|
|
56
|
+
conditions.push('event_type = @event_type');
|
|
57
|
+
params.event_type = options.event_type;
|
|
58
|
+
}
|
|
59
|
+
if (options.actor !== undefined) {
|
|
60
|
+
conditions.push('actor = @actor');
|
|
61
|
+
params.actor = options.actor;
|
|
62
|
+
}
|
|
63
|
+
let query = 'SELECT * FROM events';
|
|
64
|
+
if (conditions.length > 0) {
|
|
65
|
+
query += ' WHERE ' + conditions.join(' AND ');
|
|
66
|
+
}
|
|
67
|
+
query += ' ORDER BY created_at DESC';
|
|
68
|
+
if (options.limit !== undefined) {
|
|
69
|
+
query += ' LIMIT @limit';
|
|
70
|
+
params.limit = options.limit;
|
|
71
|
+
}
|
|
72
|
+
if (options.offset !== undefined) {
|
|
73
|
+
query += ' OFFSET @offset';
|
|
74
|
+
params.offset = options.offset;
|
|
75
|
+
}
|
|
76
|
+
const stmt = db.prepare(query);
|
|
77
|
+
return stmt.all(params);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get all events for a specific entity
|
|
81
|
+
*/
|
|
82
|
+
export function getEntityEvents(db, entity_id, entity_type, limit) {
|
|
83
|
+
return queryEvents(db, { entity_id, entity_type, limit });
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get recent events across all entities
|
|
87
|
+
*/
|
|
88
|
+
export function getRecentEvents(db, limit = 50) {
|
|
89
|
+
return queryEvents(db, { limit });
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get events by actor
|
|
93
|
+
*/
|
|
94
|
+
export function getEventsByActor(db, actor, limit) {
|
|
95
|
+
return queryEvents(db, { actor, limit });
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Delete events for an entity (cleanup)
|
|
99
|
+
*/
|
|
100
|
+
export function deleteEntityEvents(db, entity_id, entity_type) {
|
|
101
|
+
const stmt = db.prepare(`
|
|
102
|
+
DELETE FROM events
|
|
103
|
+
WHERE entity_id = ? AND entity_type = ?
|
|
104
|
+
`);
|
|
105
|
+
const result = stmt.run(entity_id, entity_type);
|
|
106
|
+
return result.changes;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/operations/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-anchors.d.ts","sourceRoot":"","sources":["../../src/operations/feedback-anchors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAwChB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,cAAc,GAAG,IAAI,CAiBvB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,GACjB,WAAW,GAAG,IAAI,CAmBpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,GAAE,MAAW,GACrB,MAAM,CAmCR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CA+CR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,OAAO,CAiCT;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,EAAE,CAmBjE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAyCnD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA8BtE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,MAAU,GACtB,WAAW,GAAG,IAAI,CAwBpB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,GACrB,cAAc,CAsGhB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,UAAU,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,GAC1D,iBAAiB,CA0CnB"}
|