flanders 0.0.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.
- package/lib/Claude.d.ts +129 -0
- package/lib/Claude.js +390 -0
- package/lib/ClaudeSession.d.ts +34 -0
- package/lib/ClaudeSession.js +293 -0
- package/lib/Flanders.d.ts +21 -0
- package/lib/Flanders.js +64 -0
- package/lib/Git.d.ts +12 -0
- package/lib/Git.js +128 -0
- package/lib/PlanFile.d.ts +38 -0
- package/lib/PlanFile.js +167 -0
- package/lib/ScriptRunner.d.ts +26 -0
- package/lib/ScriptRunner.js +109 -0
- package/lib/Workspace.d.ts +32 -0
- package/lib/Workspace.js +78 -0
- package/lib/cli.d.ts +2 -0
- package/lib/cli.js +328 -0
- package/lib/commands/Implement.d.ts +64 -0
- package/lib/commands/Implement.js +696 -0
- package/lib/commands/Install.d.ts +20 -0
- package/lib/commands/Install.js +126 -0
- package/lib/contexts.d.ts +77 -0
- package/lib/contexts.js +3 -0
- package/lib/fsUtils.d.ts +5 -0
- package/lib/fsUtils.js +51 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +6 -0
- package/lib/prompts.d.ts +18 -0
- package/lib/prompts.js +222 -0
- package/lib/skills.d.ts +3 -0
- package/lib/skills.js +207 -0
- package/lib/ui/BottomBlock.d.ts +70 -0
- package/lib/ui/BottomBlock.js +193 -0
- package/lib/ui/formatters.d.ts +29 -0
- package/lib/ui/formatters.js +222 -0
- package/lib/wait.d.ts +2 -0
- package/lib/wait.js +36 -0
- package/package.json +41 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SEPARATOR_GLYPH = exports.RESET = exports.DIM = exports.BLUE = exports.GREEN = exports.MAGENTA = exports.YELLOW = exports.CYAN = void 0;
|
|
4
|
+
exports.colorize = colorize;
|
|
5
|
+
exports.renderSegments = renderSegments;
|
|
6
|
+
exports.renderSegmentsToWidth = renderSegmentsToWidth;
|
|
7
|
+
exports.formatCountdown = formatCountdown;
|
|
8
|
+
exports.formatDateTime = formatDateTime;
|
|
9
|
+
exports.truncateToWidth = truncateToWidth;
|
|
10
|
+
exports.formatTokens = formatTokens;
|
|
11
|
+
exports.formatActiveTime = formatActiveTime;
|
|
12
|
+
exports.formatHeaderLine = formatHeaderLine;
|
|
13
|
+
exports.formatMetricsLine = formatMetricsLine;
|
|
14
|
+
exports.formatSnapshotHeader = formatSnapshotHeader;
|
|
15
|
+
exports.formatSnapshotMetrics = formatSnapshotMetrics;
|
|
16
|
+
exports.formatSnapshotBlock = formatSnapshotBlock;
|
|
17
|
+
exports.CYAN = "\x1b[36m";
|
|
18
|
+
exports.YELLOW = "\x1b[33m";
|
|
19
|
+
exports.MAGENTA = "\x1b[35m";
|
|
20
|
+
exports.GREEN = "\x1b[32m";
|
|
21
|
+
exports.BLUE = "\x1b[34m";
|
|
22
|
+
exports.DIM = "\x1b[2m";
|
|
23
|
+
exports.RESET = "\x1b[0m";
|
|
24
|
+
exports.SEPARATOR_GLYPH = "─";
|
|
25
|
+
function colorize(text, code) {
|
|
26
|
+
return code + text + exports.RESET;
|
|
27
|
+
}
|
|
28
|
+
function renderSegments(segments) {
|
|
29
|
+
let result = "";
|
|
30
|
+
for (const seg of segments) {
|
|
31
|
+
if (seg.color) {
|
|
32
|
+
result += seg.color + seg.text + exports.RESET;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
result += seg.text;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
function renderSegmentsToWidth(segments, cols) {
|
|
41
|
+
let plainLen = 0;
|
|
42
|
+
for (const seg of segments)
|
|
43
|
+
plainLen += seg.text.length;
|
|
44
|
+
if (plainLen <= cols)
|
|
45
|
+
return renderSegments(segments);
|
|
46
|
+
let result = "";
|
|
47
|
+
let remaining = Math.max(0, cols - 1);
|
|
48
|
+
for (const seg of segments) {
|
|
49
|
+
if (remaining <= 0)
|
|
50
|
+
break;
|
|
51
|
+
const chunk = seg.text.slice(0, remaining);
|
|
52
|
+
if (seg.color) {
|
|
53
|
+
result += seg.color + chunk + exports.RESET;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
result += chunk;
|
|
57
|
+
}
|
|
58
|
+
remaining -= chunk.length;
|
|
59
|
+
}
|
|
60
|
+
result += "…";
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
function formatCountdown(remainingMs) {
|
|
64
|
+
const totalMinutes = Math.max(1, Math.ceil(remainingMs / 60000));
|
|
65
|
+
if (totalMinutes >= 24 * 60) {
|
|
66
|
+
const days = Math.floor(totalMinutes / (24 * 60));
|
|
67
|
+
const remainder = totalMinutes - days * 24 * 60;
|
|
68
|
+
const hours = Math.floor(remainder / 60);
|
|
69
|
+
const minutes = remainder % 60;
|
|
70
|
+
return `${days} days, ${hours} hours, ${minutes} minutes`;
|
|
71
|
+
}
|
|
72
|
+
if (totalMinutes >= 60) {
|
|
73
|
+
const hours = Math.floor(totalMinutes / 60);
|
|
74
|
+
const minutes = totalMinutes % 60;
|
|
75
|
+
return `${hours} hours ${minutes} minutes`;
|
|
76
|
+
}
|
|
77
|
+
return `${totalMinutes} minutes`;
|
|
78
|
+
}
|
|
79
|
+
function formatDateTime(date) {
|
|
80
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
81
|
+
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
|
|
82
|
+
}
|
|
83
|
+
function truncateToWidth(text, cols) {
|
|
84
|
+
if (text.length <= cols)
|
|
85
|
+
return text;
|
|
86
|
+
return text.slice(0, Math.max(0, cols - 1)) + "…";
|
|
87
|
+
}
|
|
88
|
+
function formatTokens(n) {
|
|
89
|
+
if (n >= 1_000_000)
|
|
90
|
+
return (n / 1_000_000).toFixed(1) + "M";
|
|
91
|
+
if (n >= 1000)
|
|
92
|
+
return (n / 1000).toFixed(1) + "k";
|
|
93
|
+
return String(Math.floor(n));
|
|
94
|
+
}
|
|
95
|
+
function formatActiveTime(seconds) {
|
|
96
|
+
const s = Math.max(0, Math.floor(seconds));
|
|
97
|
+
if (s < 60)
|
|
98
|
+
return `${s}s`;
|
|
99
|
+
const pad2 = (n) => String(n).padStart(2, "0");
|
|
100
|
+
if (s < 3600) {
|
|
101
|
+
const m = Math.floor(s / 60);
|
|
102
|
+
return `${m}m${pad2(s % 60)}s`;
|
|
103
|
+
}
|
|
104
|
+
const h = Math.floor(s / 3600);
|
|
105
|
+
const m = Math.floor((s % 3600) / 60);
|
|
106
|
+
return `${h}h${pad2(m)}m${pad2(s % 60)}s`;
|
|
107
|
+
}
|
|
108
|
+
const LIVE_ACTIVITIES = new Set(["implementing", "reviewing", "building", "testing"]);
|
|
109
|
+
function formatHeaderLine(indexLabel, iteration, activity, taskNumber, title, cols) {
|
|
110
|
+
const segments = [];
|
|
111
|
+
if (indexLabel != null) {
|
|
112
|
+
segments.push({ text: indexLabel, color: exports.CYAN });
|
|
113
|
+
}
|
|
114
|
+
if (iteration != null) {
|
|
115
|
+
if (segments.length > 0)
|
|
116
|
+
segments.push({ text: " " });
|
|
117
|
+
segments.push({ text: `iter ${iteration}`, color: exports.YELLOW });
|
|
118
|
+
}
|
|
119
|
+
if (activity != null) {
|
|
120
|
+
const activityColor = activity === "done" ? exports.GREEN : LIVE_ACTIVITIES.has(activity) ? exports.MAGENTA : undefined;
|
|
121
|
+
if (segments.length > 0)
|
|
122
|
+
segments.push({ text: " " });
|
|
123
|
+
segments.push({ text: activity, color: activityColor });
|
|
124
|
+
}
|
|
125
|
+
if (taskNumber) {
|
|
126
|
+
if (segments.length > 0)
|
|
127
|
+
segments.push({ text: " " });
|
|
128
|
+
segments.push({ text: taskNumber, color: exports.GREEN });
|
|
129
|
+
}
|
|
130
|
+
if (title != null) {
|
|
131
|
+
if (segments.length > 0)
|
|
132
|
+
segments.push({ text: " " });
|
|
133
|
+
segments.push({ text: title });
|
|
134
|
+
}
|
|
135
|
+
if (segments.length === 0)
|
|
136
|
+
return "";
|
|
137
|
+
return renderSegmentsToWidth(segments, cols);
|
|
138
|
+
}
|
|
139
|
+
function buildFullMetricsSegments(tTok, tTime, pTok, pTime) {
|
|
140
|
+
return [
|
|
141
|
+
{ text: "task", color: exports.DIM },
|
|
142
|
+
{ text: " " },
|
|
143
|
+
{ text: tTok, color: exports.GREEN },
|
|
144
|
+
{ text: " " },
|
|
145
|
+
{ text: tTime, color: exports.BLUE },
|
|
146
|
+
{ text: " " },
|
|
147
|
+
{ text: "│", color: exports.DIM },
|
|
148
|
+
{ text: " " },
|
|
149
|
+
{ text: "plan", color: exports.DIM },
|
|
150
|
+
{ text: " " },
|
|
151
|
+
{ text: pTok, color: exports.GREEN },
|
|
152
|
+
{ text: " " },
|
|
153
|
+
{ text: pTime, color: exports.BLUE },
|
|
154
|
+
];
|
|
155
|
+
}
|
|
156
|
+
function buildPairFullSegments(label, tok, time) {
|
|
157
|
+
return [
|
|
158
|
+
{ text: label, color: exports.DIM },
|
|
159
|
+
{ text: " " },
|
|
160
|
+
{ text: tok, color: exports.GREEN },
|
|
161
|
+
{ text: " " },
|
|
162
|
+
{ text: time, color: exports.BLUE },
|
|
163
|
+
];
|
|
164
|
+
}
|
|
165
|
+
function buildPairCompactSegments(label, tok, time) {
|
|
166
|
+
return [
|
|
167
|
+
{ text: label, color: exports.DIM },
|
|
168
|
+
{ text: tok, color: exports.GREEN },
|
|
169
|
+
{ text: " " },
|
|
170
|
+
{ text: time, color: exports.BLUE },
|
|
171
|
+
];
|
|
172
|
+
}
|
|
173
|
+
function formatMetricsLine(task, plan, cols) {
|
|
174
|
+
if (!task && !plan)
|
|
175
|
+
return "";
|
|
176
|
+
const tTok = task ? formatTokens(task.tokens) : undefined;
|
|
177
|
+
const tTime = task ? formatActiveTime(task.seconds) : undefined;
|
|
178
|
+
const pTok = plan ? formatTokens(plan.tokens) : undefined;
|
|
179
|
+
const pTime = plan ? formatActiveTime(plan.seconds) : undefined;
|
|
180
|
+
const fullSegments = [];
|
|
181
|
+
if (task)
|
|
182
|
+
fullSegments.push(...buildPairFullSegments("task", tTok, tTime));
|
|
183
|
+
if (task && plan)
|
|
184
|
+
fullSegments.push({ text: " " }, { text: "│", color: exports.DIM }, { text: " " });
|
|
185
|
+
if (plan)
|
|
186
|
+
fullSegments.push(...buildPairFullSegments("plan", pTok, pTime));
|
|
187
|
+
let fullPlainLen = 0;
|
|
188
|
+
for (const seg of fullSegments)
|
|
189
|
+
fullPlainLen += seg.text.length;
|
|
190
|
+
if (fullPlainLen <= cols)
|
|
191
|
+
return renderSegments(fullSegments);
|
|
192
|
+
const compactSegments = [];
|
|
193
|
+
if (task)
|
|
194
|
+
compactSegments.push(...buildPairCompactSegments("t:", tTok, tTime));
|
|
195
|
+
if (task && plan)
|
|
196
|
+
compactSegments.push({ text: "│", color: exports.DIM });
|
|
197
|
+
if (plan)
|
|
198
|
+
compactSegments.push(...buildPairCompactSegments("p:", pTok, pTime));
|
|
199
|
+
let compactPlainLen = 0;
|
|
200
|
+
for (const seg of compactSegments)
|
|
201
|
+
compactPlainLen += seg.text.length;
|
|
202
|
+
if (compactPlainLen <= cols)
|
|
203
|
+
return renderSegments(compactSegments);
|
|
204
|
+
return renderSegmentsToWidth(compactSegments, cols);
|
|
205
|
+
}
|
|
206
|
+
function formatSnapshotHeader(indexLabel, iteration, taskNumber, title) {
|
|
207
|
+
return formatHeaderLine(indexLabel, iteration, "done", taskNumber, title, Number.MAX_SAFE_INTEGER);
|
|
208
|
+
}
|
|
209
|
+
function formatSnapshotMetrics(taskTokens, taskSeconds, planTokens, planSeconds) {
|
|
210
|
+
const tTok = formatTokens(taskTokens);
|
|
211
|
+
const tTime = formatActiveTime(taskSeconds);
|
|
212
|
+
const pTok = formatTokens(planTokens);
|
|
213
|
+
const pTime = formatActiveTime(planSeconds);
|
|
214
|
+
return renderSegments(buildFullMetricsSegments(tTok, tTime, pTok, pTime));
|
|
215
|
+
}
|
|
216
|
+
function formatSnapshotBlock(indexLabel, iteration, taskNumber, title, taskTokens, taskSeconds, planTokens, planSeconds, cols) {
|
|
217
|
+
const sep = exports.SEPARATOR_GLYPH.repeat(cols);
|
|
218
|
+
const header = formatSnapshotHeader(indexLabel, iteration, taskNumber, title);
|
|
219
|
+
const metrics = formatSnapshotMetrics(taskTokens, taskSeconds, planTokens, planSeconds);
|
|
220
|
+
return sep + "\n" + header + "\n" + metrics + "\n" + sep + "\n";
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91aS9mb3JtYXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLDRCQUVDO0FBT0Qsd0NBVUM7QUFFRCxzREFtQkM7QUFFRCwwQ0FlQztBQUVELHdDQUdDO0FBRUQsMENBR0M7QUFFRCxvQ0FJQztBQUVELDRDQVdDO0FBSUQsNENBd0JDO0FBeUNELDhDQTJCQztBQUVELG9EQUVDO0FBRUQsc0RBTUM7QUFFRCxrREFLQztBQW5OWSxRQUFBLElBQUksR0FBRyxVQUFVLENBQUM7QUFDbEIsUUFBQSxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQ3BCLFFBQUEsT0FBTyxHQUFHLFVBQVUsQ0FBQztBQUNyQixRQUFBLEtBQUssR0FBRyxVQUFVLENBQUM7QUFDbkIsUUFBQSxJQUFJLEdBQUcsVUFBVSxDQUFDO0FBQ2xCLFFBQUEsR0FBRyxHQUFHLFNBQVMsQ0FBQztBQUNoQixRQUFBLEtBQUssR0FBRyxTQUFTLENBQUM7QUFFbEIsUUFBQSxlQUFlLEdBQUcsR0FBRyxDQUFDO0FBRW5DLFNBQWdCLFFBQVEsQ0FBQyxJQUFXLEVBQUUsSUFBVztJQUM3QyxPQUFPLElBQUksR0FBRyxJQUFJLEdBQUcsYUFBSyxDQUFDO0FBQy9CLENBQUM7QUFPRCxTQUFnQixjQUFjLENBQUMsUUFBa0I7SUFDN0MsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLGFBQUssQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7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QztBQUlELFNBQVMsd0JBQXdCLENBQUMsSUFBVyxFQUFFLEtBQVksRUFBRSxJQUFXLEVBQUUsS0FBWTtJQUNsRixPQUFPO1FBQ0gsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFHLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxhQUFLLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFJLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQ2QsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFHLEVBQUU7UUFDekIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQ2QsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFHLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxhQUFLLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2IsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFJLEVBQUU7S0FDL0IsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEtBQVksRUFBRSxHQUFVLEVBQUUsSUFBVztJQUNoRSxPQUFPO1FBQ0gsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFHLEVBQUU7UUFDM0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2IsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFLLEVBQUU7UUFDM0IsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ2IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFJLEVBQUU7S0FD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
|
package/lib/wait.d.ts
ADDED
package/lib/wait.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wait = wait;
|
|
4
|
+
function wait(durationMs, chunkMs, time, signal) {
|
|
5
|
+
return new Promise(resolve => {
|
|
6
|
+
if (signal.aborted) {
|
|
7
|
+
return resolve();
|
|
8
|
+
}
|
|
9
|
+
const start = time.now();
|
|
10
|
+
let currentHandle = null;
|
|
11
|
+
const done = () => {
|
|
12
|
+
signal.removeEventListener("abort", onAbort);
|
|
13
|
+
currentHandle = null;
|
|
14
|
+
resolve();
|
|
15
|
+
};
|
|
16
|
+
const onAbort = () => {
|
|
17
|
+
currentHandle?.cancel();
|
|
18
|
+
done();
|
|
19
|
+
};
|
|
20
|
+
const tick = () => {
|
|
21
|
+
if (signal.aborted) {
|
|
22
|
+
return done();
|
|
23
|
+
}
|
|
24
|
+
const elapsed = time.now() - start;
|
|
25
|
+
const remaining = durationMs - elapsed;
|
|
26
|
+
if (remaining <= 0) {
|
|
27
|
+
return done();
|
|
28
|
+
}
|
|
29
|
+
const chunk = Math.min(remaining, chunkMs);
|
|
30
|
+
currentHandle = time.setTimeout(tick, chunk);
|
|
31
|
+
};
|
|
32
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
33
|
+
tick();
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy93YWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0JBZ0NDO0FBaENELFNBQWdCLElBQUksQ0FBQyxVQUFpQixFQUFFLE9BQWMsRUFBRSxJQUFnQixFQUFFLE1BQWtCO0lBQ3hGLE9BQU8sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUU7UUFDL0IsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxPQUFPLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksYUFBYSxHQUE4QyxJQUFJLENBQUM7UUFDcEUsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ2QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3QyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLEVBQUUsQ0FBQztRQUNYLENBQUMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtZQUVkLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQixPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDdkMsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDbEIsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksRUFBRSxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIn0=
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "flanders",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Stubborn and smart plan implementation looper using AI",
|
|
5
|
+
"main": "lib/",
|
|
6
|
+
"types": "lib/types",
|
|
7
|
+
"files": [
|
|
8
|
+
"lib/",
|
|
9
|
+
"!lib/**/*.test.*",
|
|
10
|
+
"LICENSE"
|
|
11
|
+
],
|
|
12
|
+
"bin": {
|
|
13
|
+
"flanders": "lib/cli.js"
|
|
14
|
+
},
|
|
15
|
+
"private": false,
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"clean": "node -e \"require('fs').rm('lib', { recursive: true, force: true }, () => {})\"",
|
|
21
|
+
"watch": "npm run clean && npx tsc -p tsconfig.json -watch",
|
|
22
|
+
"build": "npm run clean && npx tsc -p tsconfig.build.json",
|
|
23
|
+
"build-debug": "npm run clean && npx tsc -p tsconfig.json",
|
|
24
|
+
"test": "npm run build-debug && npx aaa"
|
|
25
|
+
},
|
|
26
|
+
"author": "Llorx",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+https://github.com/Llorx/flanders.git"
|
|
31
|
+
},
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/Llorx/flanders/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/Llorx/flanders#readme",
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "^22.7.8",
|
|
38
|
+
"arrange-act-assert": "^2.11.1",
|
|
39
|
+
"typescript": "^6.0.3"
|
|
40
|
+
}
|
|
41
|
+
}
|