@interf/compiler 0.3.0 → 0.3.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/README.md +77 -71
- package/dist/bin.js +3 -3
- package/dist/bin.js.map +1 -1
- package/dist/commands/compile.d.ts +1 -0
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +42 -68
- 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 +35 -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 +9 -0
- package/dist/commands/executor-flow.d.ts.map +1 -0
- package/dist/commands/executor-flow.js +55 -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 +332 -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/source-config-wizard.d.ts +5 -6
- package/dist/commands/source-config-wizard.d.ts.map +1 -1
- package/dist/commands/source-config-wizard.js +86 -82
- package/dist/commands/source-config-wizard.js.map +1 -1
- package/dist/commands/test-flow.d.ts +21 -0
- package/dist/commands/test-flow.d.ts.map +1 -0
- package/dist/commands/test-flow.js +106 -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 +131 -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 +26 -9
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/schema.js +13 -7
- package/dist/lib/schema.js.map +1 -1
- package/dist/lib/source-config.d.ts +2 -1
- package/dist/lib/source-config.d.ts.map +1 -1
- package/dist/lib/source-config.js +7 -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/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,8 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
2
|
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.";
|
|
3
|
+
export const DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER = "What was Central London under offers in Q1 2021?";
|
|
4
|
+
export const DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER = "About 2.0 to 2.1 million sq ft.";
|
|
5
|
+
export const DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER = "Quarterly results workspace for finance reporting and strategy questions.";
|
|
8
6
|
export async function promptCheckCases(options) {
|
|
9
7
|
p.log.info(options.heading);
|
|
10
8
|
const cases = [];
|
|
@@ -13,7 +11,7 @@ export async function promptCheckCases(options) {
|
|
|
13
11
|
const question = await p.text({
|
|
14
12
|
message: cases.length === 0
|
|
15
13
|
? options.questionMessage
|
|
16
|
-
: `
|
|
14
|
+
: `Question ${startIndex + cases.length}?`,
|
|
17
15
|
placeholder: options.questionPlaceholder,
|
|
18
16
|
validate: (value) => (value.trim().length === 0 ? "Question is required" : undefined),
|
|
19
17
|
});
|
|
@@ -22,7 +20,7 @@ export async function promptCheckCases(options) {
|
|
|
22
20
|
const answer = await p.text({
|
|
23
21
|
message: cases.length === 0
|
|
24
22
|
? options.answerMessage
|
|
25
|
-
: `
|
|
23
|
+
: `Expected answer ${startIndex + cases.length}?`,
|
|
26
24
|
placeholder: options.answerPlaceholder,
|
|
27
25
|
validate: (value) => (value.trim().length === 0 ? "Answer is required" : undefined),
|
|
28
26
|
});
|
|
@@ -45,38 +43,53 @@ export async function promptCheckCases(options) {
|
|
|
45
43
|
async function promptWorkspaceChecks(options) {
|
|
46
44
|
if (!options.initialChecks?.length) {
|
|
47
45
|
if (options.initialAbout) {
|
|
48
|
-
p.log.info(`
|
|
46
|
+
p.log.info(`Focus: ${options.initialAbout}`);
|
|
49
47
|
}
|
|
48
|
+
p.log.info("Questions where you already know the correct answer");
|
|
49
|
+
p.log.info("Start with simple facts, comparisons, or conclusions you can verify in the files.");
|
|
50
|
+
const addNow = await p.confirm({
|
|
51
|
+
message: "Add a few questions you already know the correct answers to? (Recommended)",
|
|
52
|
+
initialValue: true,
|
|
53
|
+
});
|
|
54
|
+
if (p.isCancel(addNow))
|
|
55
|
+
return null;
|
|
56
|
+
if (!addNow)
|
|
57
|
+
return [];
|
|
50
58
|
return promptCheckCases({
|
|
51
|
-
heading:
|
|
52
|
-
questionMessage:
|
|
53
|
-
questionPlaceholder:
|
|
54
|
-
answerMessage:
|
|
55
|
-
answerPlaceholder:
|
|
56
|
-
addAnotherMessage:
|
|
59
|
+
heading: "Questions and expected answers",
|
|
60
|
+
questionMessage: "Question 1?",
|
|
61
|
+
questionPlaceholder: DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER,
|
|
62
|
+
answerMessage: "Expected answer 1?",
|
|
63
|
+
answerPlaceholder: DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER,
|
|
64
|
+
addAnotherMessage: "Add another question?",
|
|
57
65
|
});
|
|
58
66
|
}
|
|
59
67
|
if (options.initialAbout) {
|
|
60
|
-
p.log.info(`
|
|
68
|
+
p.log.info(`Focus: ${options.initialAbout}`);
|
|
61
69
|
}
|
|
62
|
-
p.log.info(`Current
|
|
70
|
+
p.log.info(`Current questions: ${options.initialChecks.length}`);
|
|
63
71
|
const mode = await p.select({
|
|
64
|
-
message:
|
|
72
|
+
message: "What do you want to do with them?",
|
|
65
73
|
options: [
|
|
66
74
|
{
|
|
67
75
|
value: "keep",
|
|
68
|
-
label: "Keep
|
|
69
|
-
hint: "Leave the
|
|
76
|
+
label: "Keep them",
|
|
77
|
+
hint: "Leave the current questions as-is",
|
|
70
78
|
},
|
|
71
79
|
{
|
|
72
80
|
value: "add",
|
|
73
|
-
label: "Add more
|
|
74
|
-
hint: "Append more
|
|
81
|
+
label: "Add more",
|
|
82
|
+
hint: "Append more questions",
|
|
75
83
|
},
|
|
76
84
|
{
|
|
77
85
|
value: "replace",
|
|
78
|
-
label: "Replace
|
|
79
|
-
hint: "Rewrite the
|
|
86
|
+
label: "Replace all",
|
|
87
|
+
hint: "Rewrite the questions from scratch",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
value: "clear",
|
|
91
|
+
label: "Clear them for now",
|
|
92
|
+
hint: "Keep this workspace without saved questions",
|
|
80
93
|
},
|
|
81
94
|
],
|
|
82
95
|
});
|
|
@@ -85,17 +98,20 @@ async function promptWorkspaceChecks(options) {
|
|
|
85
98
|
if (mode === "keep") {
|
|
86
99
|
return options.initialChecks;
|
|
87
100
|
}
|
|
101
|
+
if (mode === "clear") {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
88
104
|
const nextChecks = await promptCheckCases({
|
|
89
|
-
heading: mode === "add" ?
|
|
105
|
+
heading: mode === "add" ? "Add more questions" : "Replace questions",
|
|
90
106
|
questionMessage: mode === "add"
|
|
91
|
-
? `
|
|
92
|
-
:
|
|
93
|
-
questionPlaceholder:
|
|
107
|
+
? `Question ${options.initialChecks.length + 1}?`
|
|
108
|
+
: "Question 1?",
|
|
109
|
+
questionPlaceholder: DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER,
|
|
94
110
|
answerMessage: mode === "add"
|
|
95
|
-
? `
|
|
96
|
-
:
|
|
97
|
-
answerPlaceholder:
|
|
98
|
-
addAnotherMessage:
|
|
111
|
+
? `Expected answer ${options.initialChecks.length + 1}?`
|
|
112
|
+
: "Expected answer 1?",
|
|
113
|
+
answerPlaceholder: DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER,
|
|
114
|
+
addAnotherMessage: "Add another question?",
|
|
99
115
|
startIndex: mode === "add" ? options.initialChecks.length + 1 : 1,
|
|
100
116
|
});
|
|
101
117
|
if (nextChecks === null)
|
|
@@ -104,35 +120,28 @@ async function promptWorkspaceChecks(options) {
|
|
|
104
120
|
}
|
|
105
121
|
export async function promptSingleWorkspaceConfig(options = {}) {
|
|
106
122
|
const initial = options.initial;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
123
|
+
const introStyle = options.introStyle ?? "first";
|
|
124
|
+
const collectChecksFirst = introStyle === "first" && options.skipNamePrompt && !options.fixedName;
|
|
125
|
+
if (introStyle === "first") {
|
|
126
|
+
p.log.info("Write a few questions where you already know the correct answer from the files.");
|
|
127
|
+
p.log.info("Add an optional focus only if you want this workspace especially good at one kind of work.");
|
|
110
128
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
about = initial.about;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
about = await p.text({
|
|
117
|
-
message: "What should this workspace help the agent do?",
|
|
118
|
-
placeholder: DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER,
|
|
119
|
-
initialValue: initial?.about,
|
|
120
|
-
validate: (value) => (value.trim().length === 0 ? "Describe the context this workspace should prepare for" : undefined),
|
|
121
|
-
});
|
|
122
|
-
if (p.isCancel(about))
|
|
123
|
-
return null;
|
|
129
|
+
else if (introStyle === "additional") {
|
|
130
|
+
p.log.info("Add another workspace only if this folder needs a separate focus or a separate set of questions.");
|
|
124
131
|
}
|
|
125
132
|
const fixedName = options.fixedName ? slugify(String(options.fixedName)) : undefined;
|
|
126
133
|
if (options.fixedName && !fixedName) {
|
|
127
134
|
p.log.error("Current workspace folder name needs letters, numbers, or dashes.");
|
|
128
135
|
return null;
|
|
129
136
|
}
|
|
130
|
-
let name = fixedName;
|
|
137
|
+
let name = fixedName ?? (options.skipNamePrompt ? slugify(String(initial?.name ?? "default")) : undefined);
|
|
131
138
|
if (name) {
|
|
132
|
-
|
|
139
|
+
if (options.fixedName) {
|
|
140
|
+
p.log.info(`Editing checks for workspace "${name}".`);
|
|
141
|
+
}
|
|
133
142
|
}
|
|
134
143
|
else {
|
|
135
|
-
const suggestedName = initial?.name ?? slugify(String(about)) ?? "
|
|
144
|
+
const suggestedName = initial?.name ?? slugify(String(initial?.about ?? "")) ?? "default";
|
|
136
145
|
const rawName = await p.text({
|
|
137
146
|
message: "Workspace name?",
|
|
138
147
|
placeholder: suggestedName,
|
|
@@ -150,41 +159,36 @@ export async function promptSingleWorkspaceConfig(options = {}) {
|
|
|
150
159
|
p.log.info(`Workspace name: ${name}`);
|
|
151
160
|
}
|
|
152
161
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return {
|
|
161
|
-
name,
|
|
162
|
-
about: String(about).trim(),
|
|
163
|
-
checks,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
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)
|
|
162
|
+
let about = initial?.about ?? "";
|
|
163
|
+
let checks = null;
|
|
164
|
+
if (collectChecksFirst) {
|
|
165
|
+
checks = await promptWorkspaceChecks({
|
|
166
|
+
initialChecks: initial?.checks,
|
|
167
|
+
});
|
|
168
|
+
if (checks === null)
|
|
179
169
|
return null;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
170
|
+
}
|
|
171
|
+
if (!(options.skipAboutPrompt && initial?.about)) {
|
|
172
|
+
about = await p.text({
|
|
173
|
+
message: "Anything specific you want this workspace to be especially good at? (optional)",
|
|
174
|
+
placeholder: DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER,
|
|
175
|
+
initialValue: initial?.about,
|
|
176
|
+
});
|
|
177
|
+
if (p.isCancel(about))
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
if (!checks) {
|
|
181
|
+
checks = await promptWorkspaceChecks({
|
|
182
|
+
initialAbout: String(about).trim(),
|
|
183
|
+
initialChecks: initial?.checks,
|
|
184
184
|
});
|
|
185
|
-
if (
|
|
185
|
+
if (checks === null)
|
|
186
186
|
return null;
|
|
187
187
|
}
|
|
188
|
-
return
|
|
188
|
+
return {
|
|
189
|
+
name,
|
|
190
|
+
...(String(about).trim().length > 0 ? { about: String(about).trim() } : {}),
|
|
191
|
+
checks,
|
|
192
|
+
};
|
|
189
193
|
}
|
|
190
194
|
//# 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,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,MAAM,CAAC,MAAM,4CAA4C,GACvD,
|
|
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,21 @@
|
|
|
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 printSavedTestComparison(rawOutcome: SavedTestOutcome | null, workspaceOutcome: SavedTestOutcome | null): void;
|
|
10
|
+
export declare function runSavedRawTest(options: {
|
|
11
|
+
sourcePath: string;
|
|
12
|
+
workspaceConfig: SourceWorkspaceConfig;
|
|
13
|
+
executionProfile?: WorkflowExecutionProfile;
|
|
14
|
+
}): Promise<SavedTestOutcome | null>;
|
|
15
|
+
export declare function runSavedWorkspaceTest(options: {
|
|
16
|
+
sourcePath: string;
|
|
17
|
+
workspaceConfig: SourceWorkspaceConfig;
|
|
18
|
+
executionProfile?: WorkflowExecutionProfile;
|
|
19
|
+
workspacePath?: string | null;
|
|
20
|
+
}): Promise<SavedTestOutcome | null>;
|
|
21
|
+
//# 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;AA8BD,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,gBAAgB,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,GACxC,IAAI,CAwBN;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,CA2BnC;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,CAqCnC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function printOutcomeSummary(prefix, outcome) {
|
|
19
|
+
const color = outcome.result.ok ? chalk.green : chalk.red;
|
|
20
|
+
console.log(color(` ${prefix}: ${outcome.result.passedCases}/${outcome.result.totalCases} cases, ${outcome.result.passedChecks}/${outcome.result.totalChecks} checks`));
|
|
21
|
+
console.log(chalk.dim(` Saved run: ${outcome.runPath}`));
|
|
22
|
+
}
|
|
23
|
+
export function printSavedTestComparison(rawOutcome, workspaceOutcome) {
|
|
24
|
+
if (!rawOutcome && !workspaceOutcome)
|
|
25
|
+
return;
|
|
26
|
+
console.log();
|
|
27
|
+
if (rawOutcome) {
|
|
28
|
+
printOutcomeSummary("Raw files", rawOutcome);
|
|
29
|
+
}
|
|
30
|
+
if (workspaceOutcome) {
|
|
31
|
+
printOutcomeSummary("Compiled workspace", workspaceOutcome);
|
|
32
|
+
}
|
|
33
|
+
if (rawOutcome && workspaceOutcome) {
|
|
34
|
+
const rawChecks = rawOutcome.result.totalChecks > 0
|
|
35
|
+
? Math.round((rawOutcome.result.passedChecks / rawOutcome.result.totalChecks) * 100)
|
|
36
|
+
: 0;
|
|
37
|
+
const workspaceChecks = workspaceOutcome.result.totalChecks > 0
|
|
38
|
+
? Math.round((workspaceOutcome.result.passedChecks / workspaceOutcome.result.totalChecks) * 100)
|
|
39
|
+
: 0;
|
|
40
|
+
const delta = workspaceChecks - rawChecks;
|
|
41
|
+
const color = delta >= 0 ? chalk.green : chalk.red;
|
|
42
|
+
const direction = delta >= 0 ? "improved" : "decreased";
|
|
43
|
+
console.log();
|
|
44
|
+
console.log(color(` Accuracy ${direction} from ${rawChecks}% to ${workspaceChecks}%.`));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export async function runSavedRawTest(options) {
|
|
48
|
+
const spec = buildBenchmarkSpecFromSourceFolderConfig({
|
|
49
|
+
sourcePath: options.sourcePath,
|
|
50
|
+
targetName: options.workspaceConfig.name,
|
|
51
|
+
targetType: "raw",
|
|
52
|
+
});
|
|
53
|
+
if (!spec) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const { executor, error } = await resolveExecutorForSpec(spec, options.executionProfile);
|
|
57
|
+
if (!executor && error) {
|
|
58
|
+
process.exitCode = 1;
|
|
59
|
+
console.log(chalk.red(error));
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const target = createRawBenchmarkTarget(options.sourcePath);
|
|
63
|
+
const run = await runBenchmarkAuto(options.sourcePath, spec, [target], { executor });
|
|
64
|
+
const result = run.results[0];
|
|
65
|
+
if (!result)
|
|
66
|
+
return null;
|
|
67
|
+
return {
|
|
68
|
+
runPath: saveBenchmarkRun(options.sourcePath, run),
|
|
69
|
+
target,
|
|
70
|
+
result,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export async function runSavedWorkspaceTest(options) {
|
|
74
|
+
const spec = buildBenchmarkSpecFromSourceFolderConfig({
|
|
75
|
+
sourcePath: options.sourcePath,
|
|
76
|
+
targetName: options.workspaceConfig.name,
|
|
77
|
+
targetType: "workspace",
|
|
78
|
+
});
|
|
79
|
+
if (!spec) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const workspacePath = options.workspacePath ?? findBuiltWorkspacePath(options.sourcePath, options.workspaceConfig.name);
|
|
83
|
+
if (!workspacePath) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const target = listBenchmarkTargets(options.sourcePath).find((entry) => entry.path === workspacePath && entry.eligible);
|
|
87
|
+
if (!target) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const { executor, error } = await resolveExecutorForSpec(spec, options.executionProfile);
|
|
91
|
+
if (!executor && error) {
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
console.log(chalk.red(error));
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const run = await runBenchmarkAuto(options.sourcePath, spec, [target], { executor });
|
|
97
|
+
const result = run.results[0];
|
|
98
|
+
if (!result)
|
|
99
|
+
return null;
|
|
100
|
+
return {
|
|
101
|
+
runPath: saveBenchmarkRun(options.sourcePath, run),
|
|
102
|
+
target,
|
|
103
|
+
result,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# 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,CA8EtF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
import { detectInterf, resolveSourceFolderPath, } from "../lib/interf.js";
|
|
4
|
+
import { loadSourceFolderConfig } from "../lib/source-config.js";
|
|
5
|
+
import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
|
|
6
|
+
import { chooseWorkspaceConfigToBuild, findBuiltWorkspacePath, findSavedWorkspaceConfig, } from "./workspace-flow.js";
|
|
7
|
+
import { printSavedTestComparison, runSavedRawTest, runSavedWorkspaceTest, } from "./test-flow.js";
|
|
8
|
+
export const testCommand = {
|
|
9
|
+
command: "test",
|
|
10
|
+
aliases: ["benchmark"],
|
|
11
|
+
describe: "Run your saved questions on raw files or a workspace",
|
|
12
|
+
builder: (yargs) => addExecutionProfileOptions(yargs),
|
|
13
|
+
handler: async (argv) => {
|
|
14
|
+
await runTestCommand(argv);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
async function chooseTestMode(options) {
|
|
18
|
+
if (!options.hasBuiltWorkspace) {
|
|
19
|
+
const selected = await p.select({
|
|
20
|
+
message: `Test "${options.workspaceName}" against what?`,
|
|
21
|
+
options: [
|
|
22
|
+
{
|
|
23
|
+
value: "raw",
|
|
24
|
+
label: "Raw files",
|
|
25
|
+
hint: "Run a baseline test on the raw files only",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
value: "workspace",
|
|
29
|
+
label: "Compiled workspace",
|
|
30
|
+
hint: "Build it first with `interf compile`",
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
});
|
|
34
|
+
if (p.isCancel(selected))
|
|
35
|
+
return null;
|
|
36
|
+
return selected;
|
|
37
|
+
}
|
|
38
|
+
const selected = await p.select({
|
|
39
|
+
message: `Test "${options.workspaceName}" against what?`,
|
|
40
|
+
options: [
|
|
41
|
+
{
|
|
42
|
+
value: "both",
|
|
43
|
+
label: "Raw files and compiled workspace (Recommended)",
|
|
44
|
+
hint: "Run the same questions against both and compare",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
value: "raw",
|
|
48
|
+
label: "Raw files",
|
|
49
|
+
hint: "Run the baseline only",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
value: "workspace",
|
|
53
|
+
label: "Compiled workspace",
|
|
54
|
+
hint: "Run the saved test against the workspace only",
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
});
|
|
58
|
+
if (p.isCancel(selected))
|
|
59
|
+
return null;
|
|
60
|
+
return selected;
|
|
61
|
+
}
|
|
62
|
+
export async function runTestCommand(argv = {}) {
|
|
63
|
+
const cwd = process.cwd();
|
|
64
|
+
const detected = detectInterf(cwd);
|
|
65
|
+
const sourcePath = detected ? resolveSourceFolderPath(detected.path, detected.config) : cwd;
|
|
66
|
+
const config = loadSourceFolderConfig(sourcePath);
|
|
67
|
+
if (!config) {
|
|
68
|
+
process.exitCode = 1;
|
|
69
|
+
console.log(chalk.red(" This folder does not have any saved workspace setup yet."));
|
|
70
|
+
console.log(chalk.dim(" Start with `interf` or `interf init`."));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const selectedWorkspace = detected
|
|
74
|
+
? (findSavedWorkspaceConfig(sourcePath, detected.config.name) ?? null)
|
|
75
|
+
: await chooseWorkspaceConfigToBuild({
|
|
76
|
+
sourcePath,
|
|
77
|
+
selectMessage: "Which workspace do you want to test?",
|
|
78
|
+
});
|
|
79
|
+
if (!selectedWorkspace) {
|
|
80
|
+
process.exitCode = 1;
|
|
81
|
+
console.log(chalk.red(" No workspaces are set up for this folder yet."));
|
|
82
|
+
console.log(chalk.dim(" Start with `interf` or `interf init`."));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (selectedWorkspace.checks.length === 0) {
|
|
86
|
+
process.exitCode = 1;
|
|
87
|
+
console.log(chalk.red(` Workspace "${selectedWorkspace.name}" does not have any saved questions yet.`));
|
|
88
|
+
console.log(chalk.dim(" Run `interf` or `interf init` to add a few first."));
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const executionProfile = executionProfileFromArgv(argv);
|
|
92
|
+
const builtWorkspacePath = detected?.path ?? findBuiltWorkspacePath(sourcePath, selectedWorkspace.name);
|
|
93
|
+
const hasBuiltWorkspace = Boolean(builtWorkspacePath);
|
|
94
|
+
const mode = detected
|
|
95
|
+
? "workspace"
|
|
96
|
+
: await chooseTestMode({
|
|
97
|
+
workspaceName: selectedWorkspace.name,
|
|
98
|
+
hasBuiltWorkspace,
|
|
99
|
+
});
|
|
100
|
+
if (!mode)
|
|
101
|
+
return;
|
|
102
|
+
if (mode === "workspace" && !hasBuiltWorkspace) {
|
|
103
|
+
process.exitCode = 1;
|
|
104
|
+
console.log(chalk.red(` Workspace "${selectedWorkspace.name}" is not compiled yet.`));
|
|
105
|
+
console.log(chalk.dim(" Run `interf compile` first."));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const rawOutcome = mode === "raw" || mode === "both"
|
|
109
|
+
? await runSavedRawTest({
|
|
110
|
+
sourcePath,
|
|
111
|
+
workspaceConfig: selectedWorkspace,
|
|
112
|
+
executionProfile,
|
|
113
|
+
})
|
|
114
|
+
: null;
|
|
115
|
+
const workspaceOutcome = mode === "workspace" || mode === "both"
|
|
116
|
+
? await runSavedWorkspaceTest({
|
|
117
|
+
sourcePath,
|
|
118
|
+
workspaceConfig: selectedWorkspace,
|
|
119
|
+
executionProfile,
|
|
120
|
+
workspacePath: builtWorkspacePath,
|
|
121
|
+
})
|
|
122
|
+
: null;
|
|
123
|
+
if ((mode === "workspace" || mode === "both") && !workspaceOutcome) {
|
|
124
|
+
process.exitCode = 1;
|
|
125
|
+
console.log(chalk.red(` Workspace "${selectedWorkspace.name}" is not compiled yet.`));
|
|
126
|
+
console.log(chalk.dim(" Run `interf compile` first."));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
printSavedTestComparison(rawOutcome, workspaceOutcome);
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAa3C,eAAO,MAAM,aAAa,EAAE,aAsE3B,CAAC"}
|
package/dist/commands/verify.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { detectInterf } from "../lib/interf.js";
|
|
3
|
-
import { validateWorkspaceSummarize, validateWorkspaceCompile, } from "../lib/validate.js";
|
|
3
|
+
import { validateWorkspaceSummarize, validateWorkspaceStructure, validateWorkspaceCompile, } from "../lib/validate.js";
|
|
4
4
|
import { validateWorkflowPackage } from "../lib/local-workflows.js";
|
|
5
5
|
function normalizeVerifyCheck(value) {
|
|
6
6
|
if (!value)
|
|
7
7
|
return null;
|
|
8
8
|
if (value === "summarize")
|
|
9
9
|
return "summarize";
|
|
10
|
+
if (value === "structure")
|
|
11
|
+
return "structure";
|
|
10
12
|
if (value === "compile")
|
|
11
13
|
return "compile";
|
|
12
14
|
if (value === "workflow")
|
|
@@ -19,7 +21,7 @@ export const verifyCommand = {
|
|
|
19
21
|
builder: (yargs) => yargs
|
|
20
22
|
.positional("check", {
|
|
21
23
|
type: "string",
|
|
22
|
-
describe: "Check to run (`summarize`, `compile`, or `workflow`)",
|
|
24
|
+
describe: "Check to run (`summarize`, `structure`, `compile`, or `workflow`)",
|
|
23
25
|
})
|
|
24
26
|
.option("path", {
|
|
25
27
|
type: "string",
|
|
@@ -56,7 +58,9 @@ export const verifyCommand = {
|
|
|
56
58
|
}
|
|
57
59
|
result = check === "summarize"
|
|
58
60
|
? validateWorkspaceSummarize(detected.path)
|
|
59
|
-
:
|
|
61
|
+
: check === "structure"
|
|
62
|
+
? validateWorkspaceStructure(detected.path)
|
|
63
|
+
: validateWorkspaceCompile(detected.path);
|
|
60
64
|
}
|
|
61
65
|
if (argv.json) {
|
|
62
66
|
console.log(JSON.stringify(result, null, 2));
|