@interf/compiler 0.3.0 → 0.3.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/README.md +120 -83
- package/dist/bin.js +3 -3
- package/dist/bin.js.map +1 -1
- package/dist/commands/compile.d.ts +11 -0
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +216 -70
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
- package/dist/commands/create-workflow-wizard.js +17 -8
- package/dist/commands/create-workflow-wizard.js.map +1 -1
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +44 -45
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/default.d.ts.map +1 -1
- package/dist/commands/default.js +27 -31
- package/dist/commands/default.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/executor-flow.d.ts +11 -0
- package/dist/commands/executor-flow.d.ts.map +1 -0
- package/dist/commands/executor-flow.js +104 -0
- package/dist/commands/executor-flow.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +374 -64
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/reset.d.ts.map +1 -1
- package/dist/commands/reset.js +2 -18
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/source-config-wizard.d.ts +6 -7
- package/dist/commands/source-config-wizard.d.ts.map +1 -1
- package/dist/commands/source-config-wizard.js +151 -78
- package/dist/commands/source-config-wizard.js.map +1 -1
- package/dist/commands/test-flow.d.ts +22 -0
- package/dist/commands/test-flow.d.ts.map +1 -0
- package/dist/commands/test-flow.js +129 -0
- package/dist/commands/test-flow.js.map +1 -0
- package/dist/commands/test.d.ts +4 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +133 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +7 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/workspace-flow.d.ts +21 -0
- package/dist/commands/workspace-flow.d.ts.map +1 -0
- package/dist/commands/workspace-flow.js +90 -0
- package/dist/commands/workspace-flow.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-detection.js +4 -4
- package/dist/lib/agent-detection.js.map +1 -1
- package/dist/lib/agent-skills.js +6 -6
- package/dist/lib/agent-skills.js.map +1 -1
- package/dist/lib/benchmark-execution.d.ts.map +1 -1
- package/dist/lib/benchmark-execution.js +39 -17
- package/dist/lib/benchmark-execution.js.map +1 -1
- package/dist/lib/benchmark-sandbox.d.ts +10 -0
- package/dist/lib/benchmark-sandbox.d.ts.map +1 -0
- package/dist/lib/benchmark-sandbox.js +75 -0
- package/dist/lib/benchmark-sandbox.js.map +1 -0
- package/dist/lib/benchmark-targets.d.ts +1 -0
- package/dist/lib/benchmark-targets.d.ts.map +1 -1
- package/dist/lib/benchmark-targets.js +12 -0
- package/dist/lib/benchmark-targets.js.map +1 -1
- package/dist/lib/benchmark-types.d.ts +1 -1
- package/dist/lib/benchmark-types.d.ts.map +1 -1
- package/dist/lib/benchmark.d.ts +1 -1
- package/dist/lib/benchmark.d.ts.map +1 -1
- package/dist/lib/benchmark.js +1 -1
- package/dist/lib/benchmark.js.map +1 -1
- package/dist/lib/interf-scaffold.d.ts.map +1 -1
- package/dist/lib/interf-scaffold.js +2 -1
- package/dist/lib/interf-scaffold.js.map +1 -1
- package/dist/lib/interf-workflow-package.d.ts.map +1 -1
- package/dist/lib/interf-workflow-package.js +7 -2
- package/dist/lib/interf-workflow-package.js.map +1 -1
- package/dist/lib/local-workflows.d.ts.map +1 -1
- package/dist/lib/local-workflows.js +24 -8
- package/dist/lib/local-workflows.js.map +1 -1
- package/dist/lib/runtime-contracts.d.ts +3 -1
- package/dist/lib/runtime-contracts.d.ts.map +1 -1
- package/dist/lib/runtime-contracts.js +115 -0
- package/dist/lib/runtime-contracts.js.map +1 -1
- package/dist/lib/runtime-reconcile.d.ts +2 -1
- package/dist/lib/runtime-reconcile.d.ts.map +1 -1
- package/dist/lib/runtime-reconcile.js +71 -15
- package/dist/lib/runtime-reconcile.js.map +1 -1
- package/dist/lib/runtime-runs.js +12 -3
- package/dist/lib/runtime-runs.js.map +1 -1
- package/dist/lib/runtime-types.d.ts +11 -0
- package/dist/lib/runtime-types.d.ts.map +1 -1
- package/dist/lib/runtime.d.ts +1 -1
- package/dist/lib/runtime.d.ts.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/runtime.js.map +1 -1
- package/dist/lib/schema.d.ts +36 -9
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/schema.js +29 -7
- package/dist/lib/schema.js.map +1 -1
- package/dist/lib/source-config.d.ts +4 -1
- package/dist/lib/source-config.d.ts.map +1 -1
- package/dist/lib/source-config.js +23 -4
- package/dist/lib/source-config.js.map +1 -1
- package/dist/lib/state-health.d.ts +2 -2
- package/dist/lib/state-health.d.ts.map +1 -1
- package/dist/lib/state-health.js +34 -19
- package/dist/lib/state-health.js.map +1 -1
- package/dist/lib/state-io.d.ts.map +1 -1
- package/dist/lib/state-io.js +6 -0
- package/dist/lib/state-io.js.map +1 -1
- package/dist/lib/validate-workspace.d.ts +41 -0
- package/dist/lib/validate-workspace.d.ts.map +1 -1
- package/dist/lib/validate-workspace.js +152 -4
- package/dist/lib/validate-workspace.js.map +1 -1
- package/dist/lib/validate.d.ts +2 -2
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +17 -2
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/workflow-definitions.d.ts.map +1 -1
- package/dist/lib/workflow-definitions.js +42 -20
- package/dist/lib/workflow-definitions.js.map +1 -1
- package/dist/lib/workflow-helpers.d.ts.map +1 -1
- package/dist/lib/workflow-helpers.js +4 -2
- package/dist/lib/workflow-helpers.js.map +1 -1
- package/dist/lib/workflows.d.ts +2 -2
- package/dist/lib/workflows.d.ts.map +1 -1
- package/dist/lib/workflows.js +3 -1
- package/dist/lib/workflows.js.map +1 -1
- package/dist/lib/workspace-compile.d.ts +4 -3
- package/dist/lib/workspace-compile.d.ts.map +1 -1
- package/dist/lib/workspace-compile.js +199 -100
- package/dist/lib/workspace-compile.js.map +1 -1
- package/dist/lib/workspace-reset.d.ts +2 -0
- package/dist/lib/workspace-reset.d.ts.map +1 -0
- package/dist/lib/workspace-reset.js +21 -0
- package/dist/lib/workspace-reset.js.map +1 -0
- package/package.json +1 -1
- package/skills/benchmark/SKILL.md +4 -3
- package/skills/workflow/create/SKILL.md +4 -1
- package/skills/workspace/shape/SKILL.md +15 -0
- package/skills/workspace/structure/SKILL.md +15 -0
- package/skills/workspace/summarize/SKILL.md +15 -0
- package/dist/commands/benchmark.d.ts +0 -3
- package/dist/commands/benchmark.d.ts.map +0 -1
- package/dist/commands/benchmark.js +0 -83
- package/dist/commands/benchmark.js.map +0 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
|
+
import { workspaceRetryPolicy } from "../lib/source-config.js";
|
|
2
3
|
import { slugify } from "../lib/util.js";
|
|
3
|
-
export const DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER = "What
|
|
4
|
-
export const DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER = "
|
|
5
|
-
export const DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER = "
|
|
6
|
-
export const DEFAULT_WORKSPACE_FOLLOWUP_CHECK_QUESTION_PLACEHOLDER = "Which metric should this workspace make easy to flag for the operator?";
|
|
7
|
-
export const DEFAULT_WORKSPACE_FOLLOWUP_CHECK_ANSWER_PLACEHOLDER = "Gross margin should be easy to flag because it declined year over year.";
|
|
4
|
+
export const DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER = "What was Central London under offers in Q1 2021?";
|
|
5
|
+
export const DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER = "About 2.0 to 2.1 million sq ft.";
|
|
6
|
+
export const DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER = "Quarterly results workspace for finance reporting and strategy questions.";
|
|
8
7
|
export async function promptCheckCases(options) {
|
|
9
8
|
p.log.info(options.heading);
|
|
10
9
|
const cases = [];
|
|
@@ -13,7 +12,7 @@ export async function promptCheckCases(options) {
|
|
|
13
12
|
const question = await p.text({
|
|
14
13
|
message: cases.length === 0
|
|
15
14
|
? options.questionMessage
|
|
16
|
-
: `
|
|
15
|
+
: `Question ${startIndex + cases.length}?`,
|
|
17
16
|
placeholder: options.questionPlaceholder,
|
|
18
17
|
validate: (value) => (value.trim().length === 0 ? "Question is required" : undefined),
|
|
19
18
|
});
|
|
@@ -22,7 +21,7 @@ export async function promptCheckCases(options) {
|
|
|
22
21
|
const answer = await p.text({
|
|
23
22
|
message: cases.length === 0
|
|
24
23
|
? options.answerMessage
|
|
25
|
-
: `
|
|
24
|
+
: `Expected answer ${startIndex + cases.length}?`,
|
|
26
25
|
placeholder: options.answerPlaceholder,
|
|
27
26
|
validate: (value) => (value.trim().length === 0 ? "Answer is required" : undefined),
|
|
28
27
|
});
|
|
@@ -45,38 +44,53 @@ export async function promptCheckCases(options) {
|
|
|
45
44
|
async function promptWorkspaceChecks(options) {
|
|
46
45
|
if (!options.initialChecks?.length) {
|
|
47
46
|
if (options.initialAbout) {
|
|
48
|
-
p.log.info(`
|
|
47
|
+
p.log.info(`Focus: ${options.initialAbout}`);
|
|
49
48
|
}
|
|
49
|
+
p.log.info("Questions where you already know the correct answer");
|
|
50
|
+
p.log.info("Start with simple facts, comparisons, or conclusions you can verify in the files.");
|
|
51
|
+
const addNow = await p.confirm({
|
|
52
|
+
message: "Add a few questions you already know the correct answers to? (Recommended)",
|
|
53
|
+
initialValue: true,
|
|
54
|
+
});
|
|
55
|
+
if (p.isCancel(addNow))
|
|
56
|
+
return null;
|
|
57
|
+
if (!addNow)
|
|
58
|
+
return [];
|
|
50
59
|
return promptCheckCases({
|
|
51
|
-
heading:
|
|
52
|
-
questionMessage:
|
|
53
|
-
questionPlaceholder:
|
|
54
|
-
answerMessage:
|
|
55
|
-
answerPlaceholder:
|
|
56
|
-
addAnotherMessage:
|
|
60
|
+
heading: "Questions and expected answers",
|
|
61
|
+
questionMessage: "Question 1?",
|
|
62
|
+
questionPlaceholder: DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER,
|
|
63
|
+
answerMessage: "Expected answer 1?",
|
|
64
|
+
answerPlaceholder: DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER,
|
|
65
|
+
addAnotherMessage: "Add another question?",
|
|
57
66
|
});
|
|
58
67
|
}
|
|
59
68
|
if (options.initialAbout) {
|
|
60
|
-
p.log.info(`
|
|
69
|
+
p.log.info(`Focus: ${options.initialAbout}`);
|
|
61
70
|
}
|
|
62
|
-
p.log.info(`Current
|
|
71
|
+
p.log.info(`Current questions: ${options.initialChecks.length}`);
|
|
63
72
|
const mode = await p.select({
|
|
64
|
-
message:
|
|
73
|
+
message: "What do you want to do with them?",
|
|
65
74
|
options: [
|
|
66
75
|
{
|
|
67
76
|
value: "keep",
|
|
68
|
-
label: "Keep
|
|
69
|
-
hint: "Leave the
|
|
77
|
+
label: "Keep them",
|
|
78
|
+
hint: "Leave the current questions as-is",
|
|
70
79
|
},
|
|
71
80
|
{
|
|
72
81
|
value: "add",
|
|
73
|
-
label: "Add more
|
|
74
|
-
hint: "Append more
|
|
82
|
+
label: "Add more",
|
|
83
|
+
hint: "Append more questions",
|
|
75
84
|
},
|
|
76
85
|
{
|
|
77
86
|
value: "replace",
|
|
78
|
-
label: "Replace
|
|
79
|
-
hint: "Rewrite the
|
|
87
|
+
label: "Replace all",
|
|
88
|
+
hint: "Rewrite the questions from scratch",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
value: "clear",
|
|
92
|
+
label: "Clear them for now",
|
|
93
|
+
hint: "Keep this workspace without saved questions",
|
|
80
94
|
},
|
|
81
95
|
],
|
|
82
96
|
});
|
|
@@ -85,54 +99,110 @@ async function promptWorkspaceChecks(options) {
|
|
|
85
99
|
if (mode === "keep") {
|
|
86
100
|
return options.initialChecks;
|
|
87
101
|
}
|
|
102
|
+
if (mode === "clear") {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
88
105
|
const nextChecks = await promptCheckCases({
|
|
89
|
-
heading: mode === "add" ?
|
|
106
|
+
heading: mode === "add" ? "Add more questions" : "Replace questions",
|
|
90
107
|
questionMessage: mode === "add"
|
|
91
|
-
? `
|
|
92
|
-
:
|
|
93
|
-
questionPlaceholder:
|
|
108
|
+
? `Question ${options.initialChecks.length + 1}?`
|
|
109
|
+
: "Question 1?",
|
|
110
|
+
questionPlaceholder: DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER,
|
|
94
111
|
answerMessage: mode === "add"
|
|
95
|
-
? `
|
|
96
|
-
:
|
|
97
|
-
answerPlaceholder:
|
|
98
|
-
addAnotherMessage:
|
|
112
|
+
? `Expected answer ${options.initialChecks.length + 1}?`
|
|
113
|
+
: "Expected answer 1?",
|
|
114
|
+
answerPlaceholder: DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER,
|
|
115
|
+
addAnotherMessage: "Add another question?",
|
|
99
116
|
startIndex: mode === "add" ? options.initialChecks.length + 1 : 1,
|
|
100
117
|
});
|
|
101
118
|
if (nextChecks === null)
|
|
102
119
|
return null;
|
|
103
120
|
return mode === "add" ? [...options.initialChecks, ...nextChecks] : nextChecks;
|
|
104
121
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
p.log.info("An additional workspace is a compiled workspace optimized for one recurring context, role, or job.");
|
|
109
|
-
p.log.info("Use it only when the default workspace is too broad and the agent needs a narrower setup.");
|
|
122
|
+
async function promptWorkspaceRetryPolicy(options) {
|
|
123
|
+
if (!options.hasChecks) {
|
|
124
|
+
return undefined;
|
|
110
125
|
}
|
|
111
|
-
|
|
112
|
-
if (
|
|
113
|
-
|
|
126
|
+
const currentMaxAttempts = options.initialRetryPolicy?.max_attempts ?? null;
|
|
127
|
+
if (currentMaxAttempts) {
|
|
128
|
+
p.log.info(`Self-improving compile loop: up to ${currentMaxAttempts} attempts.`);
|
|
129
|
+
const mode = await p.select({
|
|
130
|
+
message: "What do you want to do with the compile loop?",
|
|
131
|
+
options: [
|
|
132
|
+
{
|
|
133
|
+
value: "keep",
|
|
134
|
+
label: "Keep it",
|
|
135
|
+
hint: "Reuse the current attempt budget",
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
value: "change",
|
|
139
|
+
label: "Change it",
|
|
140
|
+
hint: "Use a different attempt budget",
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
value: "disable",
|
|
144
|
+
label: "Turn it off",
|
|
145
|
+
hint: "Compile once without the retry loop",
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
});
|
|
149
|
+
if (p.isCancel(mode))
|
|
150
|
+
return null;
|
|
151
|
+
if (mode === "keep")
|
|
152
|
+
return options.initialRetryPolicy;
|
|
153
|
+
if (mode === "disable")
|
|
154
|
+
return undefined;
|
|
114
155
|
}
|
|
115
156
|
else {
|
|
116
|
-
|
|
117
|
-
message: "
|
|
118
|
-
|
|
119
|
-
initialValue: initial?.about,
|
|
120
|
-
validate: (value) => (value.trim().length === 0 ? "Describe the context this workspace should prepare for" : undefined),
|
|
157
|
+
const enable = await p.confirm({
|
|
158
|
+
message: "Keep recompiling and retesting until this workspace passes or reaches the attempt limit? (optional)",
|
|
159
|
+
initialValue: false,
|
|
121
160
|
});
|
|
122
|
-
if (p.isCancel(
|
|
161
|
+
if (p.isCancel(enable))
|
|
123
162
|
return null;
|
|
163
|
+
if (!enable)
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
const maxAttempts = await p.text({
|
|
167
|
+
message: "Maximum compile attempts?",
|
|
168
|
+
placeholder: "3",
|
|
169
|
+
initialValue: String(currentMaxAttempts ?? 3),
|
|
170
|
+
validate: (value) => {
|
|
171
|
+
const parsed = Number.parseInt(value.trim(), 10);
|
|
172
|
+
if (!Number.isInteger(parsed) || parsed < 1 || parsed > 5) {
|
|
173
|
+
return "Enter a whole number from 1 to 5";
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
if (p.isCancel(maxAttempts))
|
|
179
|
+
return null;
|
|
180
|
+
return workspaceRetryPolicy(Number.parseInt(String(maxAttempts).trim(), 10));
|
|
181
|
+
}
|
|
182
|
+
export async function promptSingleWorkspaceConfig(options = {}) {
|
|
183
|
+
const initial = options.initial;
|
|
184
|
+
const introStyle = options.introStyle ?? "first";
|
|
185
|
+
const collectChecksFirst = introStyle === "first" && options.skipNamePrompt && !options.fixedName;
|
|
186
|
+
if (introStyle === "first") {
|
|
187
|
+
p.log.info("Write a few questions where you already know the correct answer from the files.");
|
|
188
|
+
p.log.info("Add an optional focus only if you want this workspace especially good at one kind of work.");
|
|
189
|
+
}
|
|
190
|
+
else if (introStyle === "additional") {
|
|
191
|
+
p.log.info("Add another workspace only if this folder needs a separate focus or a separate set of questions.");
|
|
124
192
|
}
|
|
125
193
|
const fixedName = options.fixedName ? slugify(String(options.fixedName)) : undefined;
|
|
126
194
|
if (options.fixedName && !fixedName) {
|
|
127
195
|
p.log.error("Current workspace folder name needs letters, numbers, or dashes.");
|
|
128
196
|
return null;
|
|
129
197
|
}
|
|
130
|
-
let name = fixedName;
|
|
198
|
+
let name = fixedName ?? (options.skipNamePrompt ? slugify(String(initial?.name ?? "default")) : undefined);
|
|
131
199
|
if (name) {
|
|
132
|
-
|
|
200
|
+
if (options.fixedName) {
|
|
201
|
+
p.log.info(`Editing checks for workspace "${name}".`);
|
|
202
|
+
}
|
|
133
203
|
}
|
|
134
204
|
else {
|
|
135
|
-
const suggestedName = initial?.name ?? slugify(String(about)) ?? "
|
|
205
|
+
const suggestedName = initial?.name ?? slugify(String(initial?.about ?? "")) ?? "default";
|
|
136
206
|
const rawName = await p.text({
|
|
137
207
|
message: "Workspace name?",
|
|
138
208
|
placeholder: suggestedName,
|
|
@@ -150,41 +220,44 @@ export async function promptSingleWorkspaceConfig(options = {}) {
|
|
|
150
220
|
p.log.info(`Workspace name: ${name}`);
|
|
151
221
|
}
|
|
152
222
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
223
|
+
let about = initial?.about ?? "";
|
|
224
|
+
let checks = null;
|
|
225
|
+
let retryPolicy = initial?.retry_policy;
|
|
226
|
+
if (collectChecksFirst) {
|
|
227
|
+
checks = await promptWorkspaceChecks({
|
|
228
|
+
initialChecks: initial?.checks,
|
|
229
|
+
});
|
|
230
|
+
if (checks === null)
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
if (!(options.skipAboutPrompt && initial?.about)) {
|
|
234
|
+
about = await p.text({
|
|
235
|
+
message: "Anything specific you want this workspace to be especially good at? (optional)",
|
|
236
|
+
placeholder: DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER,
|
|
237
|
+
initialValue: initial?.about,
|
|
238
|
+
});
|
|
239
|
+
if (p.isCancel(about))
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
if (!checks) {
|
|
243
|
+
checks = await promptWorkspaceChecks({
|
|
244
|
+
initialAbout: String(about).trim(),
|
|
245
|
+
initialChecks: initial?.checks,
|
|
246
|
+
});
|
|
247
|
+
if (checks === null)
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
retryPolicy = await promptWorkspaceRetryPolicy({
|
|
251
|
+
initialRetryPolicy: initial?.retry_policy,
|
|
252
|
+
hasChecks: checks.length > 0,
|
|
157
253
|
});
|
|
158
|
-
if (
|
|
254
|
+
if (retryPolicy === null)
|
|
159
255
|
return null;
|
|
160
256
|
return {
|
|
161
257
|
name,
|
|
162
|
-
about: String(about).trim(),
|
|
258
|
+
...(String(about).trim().length > 0 ? { about: String(about).trim() } : {}),
|
|
259
|
+
...(retryPolicy ? { retry_policy: retryPolicy } : {}),
|
|
163
260
|
checks,
|
|
164
261
|
};
|
|
165
262
|
}
|
|
166
|
-
export async function promptWorkspaceConfigs() {
|
|
167
|
-
const workspaces = [];
|
|
168
|
-
p.log.info("Start with one default workspace for the folder.");
|
|
169
|
-
p.log.info("Add another workspace only when one recurring context needs a narrower setup.");
|
|
170
|
-
let addWorkspace = await p.confirm({
|
|
171
|
-
message: "Add another workspace?",
|
|
172
|
-
initialValue: false,
|
|
173
|
-
});
|
|
174
|
-
if (p.isCancel(addWorkspace))
|
|
175
|
-
return null;
|
|
176
|
-
while (addWorkspace) {
|
|
177
|
-
const workspaceConfig = await promptSingleWorkspaceConfig();
|
|
178
|
-
if (workspaceConfig === null)
|
|
179
|
-
return null;
|
|
180
|
-
workspaces.push(workspaceConfig);
|
|
181
|
-
addWorkspace = await p.confirm({
|
|
182
|
-
message: "Add another workspace?",
|
|
183
|
-
initialValue: false,
|
|
184
|
-
});
|
|
185
|
-
if (p.isCancel(addWorkspace))
|
|
186
|
-
return null;
|
|
187
|
-
}
|
|
188
|
-
return workspaces;
|
|
189
|
-
}
|
|
190
263
|
//# sourceMappingURL=source-config-wizard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-config-wizard.js","sourceRoot":"","sources":["../../src/commands/source-config-wizard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"source-config-wizard.js","sourceRoot":"","sources":["../../src/commands/source-config-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type BenchmarkTargetCandidate, type BenchmarkTargetResult } from "../lib/benchmark.js";
|
|
2
|
+
import type { WorkflowExecutionProfile } from "../lib/executors.js";
|
|
3
|
+
import type { SourceWorkspaceConfig } from "../lib/schema.js";
|
|
4
|
+
export interface SavedTestOutcome {
|
|
5
|
+
runPath: string;
|
|
6
|
+
target: BenchmarkTargetCandidate;
|
|
7
|
+
result: BenchmarkTargetResult;
|
|
8
|
+
}
|
|
9
|
+
export declare function printSavedTestOutcome(prefix: string, outcome: SavedTestOutcome): void;
|
|
10
|
+
export declare function printSavedTestComparison(rawOutcome: SavedTestOutcome | null, workspaceOutcome: SavedTestOutcome | null): void;
|
|
11
|
+
export declare function runSavedRawTest(options: {
|
|
12
|
+
sourcePath: string;
|
|
13
|
+
workspaceConfig: SourceWorkspaceConfig;
|
|
14
|
+
executionProfile?: WorkflowExecutionProfile;
|
|
15
|
+
}): Promise<SavedTestOutcome | null>;
|
|
16
|
+
export declare function runSavedWorkspaceTest(options: {
|
|
17
|
+
sourcePath: string;
|
|
18
|
+
workspaceConfig: SourceWorkspaceConfig;
|
|
19
|
+
executionProfile?: WorkflowExecutionProfile;
|
|
20
|
+
workspacePath?: string | null;
|
|
21
|
+
}): Promise<SavedTestOutcome | null>;
|
|
22
|
+
//# sourceMappingURL=test-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-flow.d.ts","sourceRoot":"","sources":["../../src/commands/test-flow.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAK9D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAqBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAwBrF;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,gBAAgB,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC,IAAI,CAyBN;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;CAC7C,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8BnC;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAwCnC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { createRawBenchmarkTarget, listBenchmarkTargets, runBenchmarkAuto, saveBenchmarkRun, } from "../lib/benchmark.js";
|
|
3
|
+
import { buildBenchmarkSpecFromSourceFolderConfig } from "../lib/source-config.js";
|
|
4
|
+
import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
|
|
5
|
+
import { findBuiltWorkspacePath } from "./workspace-flow.js";
|
|
6
|
+
function specNeedsExecutor(spec) {
|
|
7
|
+
return spec.cases.some((entry) => !entry.file || Boolean(entry.answer));
|
|
8
|
+
}
|
|
9
|
+
async function resolveExecutorForSpec(spec, executionProfile) {
|
|
10
|
+
if (!specNeedsExecutor(spec)) {
|
|
11
|
+
return { executor: null, error: undefined };
|
|
12
|
+
}
|
|
13
|
+
return resolveOrConfigureLocalExecutor({
|
|
14
|
+
preflight: true,
|
|
15
|
+
executionProfile,
|
|
16
|
+
purpose: "test",
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export function printSavedTestOutcome(prefix, outcome) {
|
|
20
|
+
const color = outcome.result.ok ? chalk.green : chalk.red;
|
|
21
|
+
const status = outcome.result.ok ? chalk.green("PASS") : chalk.red("FAIL");
|
|
22
|
+
console.log(chalk.bold(` ${prefix}`));
|
|
23
|
+
console.log();
|
|
24
|
+
console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases} cases · ${outcome.result.passedChecks}/${outcome.result.totalChecks} checks`));
|
|
25
|
+
console.log();
|
|
26
|
+
for (const [index, caseResult] of outcome.result.caseResults.entries()) {
|
|
27
|
+
const caseStatus = caseResult.ok ? chalk.green("PASS") : chalk.red("FAIL");
|
|
28
|
+
console.log(` ${caseStatus} Question ${index + 1} · ${caseResult.passedChecks}/${caseResult.totalChecks} checks`);
|
|
29
|
+
console.log(chalk.dim(` ${caseResult.question}`));
|
|
30
|
+
const failedChecks = caseResult.checks.filter((entry) => !entry.ok).slice(0, 3);
|
|
31
|
+
for (const failedCheck of failedChecks) {
|
|
32
|
+
console.log(chalk.dim(` - ${failedCheck.label}: ${failedCheck.detail}`));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
console.log();
|
|
36
|
+
console.log(chalk.dim(` Saved run: ${outcome.runPath}`));
|
|
37
|
+
}
|
|
38
|
+
export function printSavedTestComparison(rawOutcome, workspaceOutcome) {
|
|
39
|
+
if (!rawOutcome && !workspaceOutcome)
|
|
40
|
+
return;
|
|
41
|
+
console.log();
|
|
42
|
+
if (rawOutcome) {
|
|
43
|
+
printSavedTestOutcome("Raw files", rawOutcome);
|
|
44
|
+
}
|
|
45
|
+
if (workspaceOutcome) {
|
|
46
|
+
if (rawOutcome)
|
|
47
|
+
console.log();
|
|
48
|
+
printSavedTestOutcome("Compiled workspace", workspaceOutcome);
|
|
49
|
+
}
|
|
50
|
+
if (rawOutcome && workspaceOutcome) {
|
|
51
|
+
const rawChecks = rawOutcome.result.totalChecks > 0
|
|
52
|
+
? Math.round((rawOutcome.result.passedChecks / rawOutcome.result.totalChecks) * 100)
|
|
53
|
+
: 0;
|
|
54
|
+
const workspaceChecks = workspaceOutcome.result.totalChecks > 0
|
|
55
|
+
? Math.round((workspaceOutcome.result.passedChecks / workspaceOutcome.result.totalChecks) * 100)
|
|
56
|
+
: 0;
|
|
57
|
+
const delta = workspaceChecks - rawChecks;
|
|
58
|
+
const color = delta >= 0 ? chalk.green : chalk.red;
|
|
59
|
+
const direction = delta >= 0 ? "improved" : "decreased";
|
|
60
|
+
console.log();
|
|
61
|
+
console.log(color(` Accuracy ${direction} from ${rawChecks}% to ${workspaceChecks}%.`));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export async function runSavedRawTest(options) {
|
|
65
|
+
const spec = buildBenchmarkSpecFromSourceFolderConfig({
|
|
66
|
+
sourcePath: options.sourcePath,
|
|
67
|
+
targetName: options.workspaceConfig.name,
|
|
68
|
+
targetType: "raw",
|
|
69
|
+
});
|
|
70
|
+
if (!spec) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const { executor, error } = await resolveExecutorForSpec(spec, options.executionProfile);
|
|
74
|
+
if (!executor && !error) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
if (!executor && error) {
|
|
78
|
+
process.exitCode = 1;
|
|
79
|
+
console.log(chalk.red(error));
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const target = createRawBenchmarkTarget(options.sourcePath);
|
|
83
|
+
const run = await runBenchmarkAuto(options.sourcePath, spec, [target], { executor });
|
|
84
|
+
const result = run.results[0];
|
|
85
|
+
if (!result)
|
|
86
|
+
return null;
|
|
87
|
+
return {
|
|
88
|
+
runPath: saveBenchmarkRun(options.sourcePath, run),
|
|
89
|
+
target,
|
|
90
|
+
result,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export async function runSavedWorkspaceTest(options) {
|
|
94
|
+
const spec = buildBenchmarkSpecFromSourceFolderConfig({
|
|
95
|
+
sourcePath: options.sourcePath,
|
|
96
|
+
targetName: options.workspaceConfig.name,
|
|
97
|
+
targetType: "workspace",
|
|
98
|
+
});
|
|
99
|
+
if (!spec) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const workspacePath = options.workspacePath ?? findBuiltWorkspacePath(options.sourcePath, options.workspaceConfig.name);
|
|
103
|
+
if (!workspacePath) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
const target = listBenchmarkTargets(options.sourcePath).find((entry) => entry.path === workspacePath && entry.eligible);
|
|
107
|
+
if (!target) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
const { executor, error } = await resolveExecutorForSpec(spec, options.executionProfile);
|
|
111
|
+
if (!executor && !error) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (!executor && error) {
|
|
115
|
+
process.exitCode = 1;
|
|
116
|
+
console.log(chalk.red(error));
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const run = await runBenchmarkAuto(options.sourcePath, spec, [target], { executor });
|
|
120
|
+
const result = run.results[0];
|
|
121
|
+
if (!result)
|
|
122
|
+
return null;
|
|
123
|
+
return {
|
|
124
|
+
runPath: saveBenchmarkRun(options.sourcePath, run),
|
|
125
|
+
target,
|
|
126
|
+
result,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=test-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-flow.js","sourceRoot":"","sources":["../../src/commands/test-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAuB3C,eAAO,MAAM,WAAW,EAAE,aAQzB,CAAC;AAkDF,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EtF"}
|