@interf/compiler 0.2.5 → 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 +192 -187
- 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 +45 -138
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/create-workflow-wizard.d.ts +4 -25
- package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
- package/dist/commands/create-workflow-wizard.js +46 -222
- package/dist/commands/create-workflow-wizard.js.map +1 -1
- package/dist/commands/create.d.ts +2 -11
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +78 -477
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/default.d.ts.map +1 -1
- package/dist/commands/default.js +27 -43
- 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 +320 -321
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +12 -22
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/reset.d.ts.map +1 -1
- package/dist/commands/reset.js +27 -124
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/source-config-wizard.d.ts +10 -11
- package/dist/commands/source-config-wizard.d.ts.map +1 -1
- package/dist/commands/source-config-wizard.js +100 -97
- package/dist/commands/source-config-wizard.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +60 -56
- package/dist/commands/status.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 +63 -98
- 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 +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-constants.js +1 -1
- package/dist/lib/agent-constants.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 +32 -19
- 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 +4 -4
- package/dist/lib/benchmark-targets.d.ts.map +1 -1
- package/dist/lib/benchmark-targets.js +20 -54
- package/dist/lib/benchmark-targets.js.map +1 -1
- package/dist/lib/benchmark-types.d.ts +2 -3
- 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/config.d.ts +1 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +2 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/discovery.d.ts +1 -1
- package/dist/lib/discovery.d.ts.map +1 -1
- package/dist/lib/discovery.js +7 -2
- package/dist/lib/discovery.js.map +1 -1
- package/dist/lib/eval-packs.d.ts +6 -52
- package/dist/lib/eval-packs.d.ts.map +1 -1
- package/dist/lib/eval-packs.js +11 -39
- package/dist/lib/eval-packs.js.map +1 -1
- package/dist/lib/interf-bootstrap.d.ts +3 -5
- package/dist/lib/interf-bootstrap.d.ts.map +1 -1
- package/dist/lib/interf-bootstrap.js +10 -57
- package/dist/lib/interf-bootstrap.js.map +1 -1
- package/dist/lib/interf-detect.d.ts +13 -11
- package/dist/lib/interf-detect.d.ts.map +1 -1
- package/dist/lib/interf-detect.js +59 -45
- package/dist/lib/interf-detect.js.map +1 -1
- package/dist/lib/interf-scaffold.d.ts +2 -5
- package/dist/lib/interf-scaffold.d.ts.map +1 -1
- package/dist/lib/interf-scaffold.js +99 -235
- package/dist/lib/interf-scaffold.js.map +1 -1
- package/dist/lib/interf-workflow-package.d.ts +1 -2
- package/dist/lib/interf-workflow-package.d.ts.map +1 -1
- package/dist/lib/interf-workflow-package.js +99 -90
- package/dist/lib/interf-workflow-package.js.map +1 -1
- package/dist/lib/interf.d.ts +4 -5
- package/dist/lib/interf.d.ts.map +1 -1
- package/dist/lib/interf.js +3 -6
- package/dist/lib/interf.js.map +1 -1
- package/dist/lib/local-workflows.d.ts +9 -8
- package/dist/lib/local-workflows.d.ts.map +1 -1
- package/dist/lib/local-workflows.js +56 -92
- package/dist/lib/local-workflows.js.map +1 -1
- package/dist/lib/obsidian.d.ts +1 -3
- package/dist/lib/obsidian.d.ts.map +1 -1
- package/dist/lib/obsidian.js +10 -81
- package/dist/lib/obsidian.js.map +1 -1
- package/dist/lib/registry.d.ts +6 -17
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +36 -50
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/runtime-contracts.d.ts +4 -3
- package/dist/lib/runtime-contracts.d.ts.map +1 -1
- package/dist/lib/runtime-contracts.js +125 -9
- package/dist/lib/runtime-contracts.js.map +1 -1
- package/dist/lib/runtime-reconcile.d.ts +3 -5
- package/dist/lib/runtime-reconcile.d.ts.map +1 -1
- package/dist/lib/runtime-reconcile.js +70 -167
- package/dist/lib/runtime-reconcile.js.map +1 -1
- package/dist/lib/runtime-runs.d.ts.map +1 -1
- package/dist/lib/runtime-runs.js +61 -57
- package/dist/lib/runtime-runs.js.map +1 -1
- package/dist/lib/runtime-types.d.ts +16 -6
- package/dist/lib/runtime-types.d.ts.map +1 -1
- package/dist/lib/runtime.d.ts +2 -2
- 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 +69 -311
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/schema.js +49 -210
- package/dist/lib/schema.js.map +1 -1
- package/dist/lib/source-config.d.ts +8 -7
- package/dist/lib/source-config.d.ts.map +1 -1
- package/dist/lib/source-config.js +59 -63
- package/dist/lib/source-config.js.map +1 -1
- package/dist/lib/state-artifacts.d.ts +5 -11
- package/dist/lib/state-artifacts.d.ts.map +1 -1
- package/dist/lib/state-artifacts.js +8 -18
- package/dist/lib/state-artifacts.js.map +1 -1
- package/dist/lib/state-health.d.ts +4 -8
- package/dist/lib/state-health.d.ts.map +1 -1
- package/dist/lib/state-health.js +52 -233
- package/dist/lib/state-health.js.map +1 -1
- package/dist/lib/state-io.d.ts +7 -12
- package/dist/lib/state-io.d.ts.map +1 -1
- package/dist/lib/state-io.js +32 -93
- package/dist/lib/state-io.js.map +1 -1
- package/dist/lib/state-view.d.ts +4 -6
- package/dist/lib/state-view.d.ts.map +1 -1
- package/dist/lib/state-view.js +62 -101
- package/dist/lib/state-view.js.map +1 -1
- package/dist/lib/state.d.ts +5 -5
- package/dist/lib/state.d.ts.map +1 -1
- package/dist/lib/state.js +4 -4
- package/dist/lib/state.js.map +1 -1
- package/dist/lib/summarize-plan.d.ts +2 -2
- package/dist/lib/summarize-plan.d.ts.map +1 -1
- package/dist/lib/summarize-plan.js +13 -13
- package/dist/lib/summarize-plan.js.map +1 -1
- package/dist/lib/{validate-kb.d.ts → validate-workspace.d.ts} +49 -8
- package/dist/lib/validate-workspace.d.ts.map +1 -0
- package/dist/lib/validate-workspace.js +398 -0
- package/dist/lib/validate-workspace.js.map +1 -0
- package/dist/lib/validate.d.ts +5 -7
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +22 -20
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/workflow-definitions.d.ts +14 -50
- package/dist/lib/workflow-definitions.d.ts.map +1 -1
- package/dist/lib/workflow-definitions.js +100 -353
- package/dist/lib/workflow-definitions.js.map +1 -1
- package/dist/lib/workflow-helpers.d.ts +3 -4
- package/dist/lib/workflow-helpers.d.ts.map +1 -1
- package/dist/lib/workflow-helpers.js +17 -49
- package/dist/lib/workflow-helpers.js.map +1 -1
- package/dist/lib/workflow-stage-runner.d.ts +1 -2
- package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
- package/dist/lib/workflow-stage-runner.js +4 -6
- package/dist/lib/workflow-stage-runner.js.map +1 -1
- package/dist/lib/workflow-starter-docs.d.ts +3 -5
- package/dist/lib/workflow-starter-docs.d.ts.map +1 -1
- package/dist/lib/workflow-starter-docs.js +2 -17
- package/dist/lib/workflow-starter-docs.js.map +1 -1
- package/dist/lib/workflows.d.ts +9 -14
- package/dist/lib/workflows.d.ts.map +1 -1
- package/dist/lib/workflows.js +15 -30
- package/dist/lib/workflows.js.map +1 -1
- package/dist/lib/workspace-compile.d.ts +51 -0
- package/dist/lib/workspace-compile.d.ts.map +1 -0
- package/dist/lib/workspace-compile.js +397 -0
- package/dist/lib/workspace-compile.js.map +1 -0
- package/package.json +9 -9
- package/skills/benchmark/SKILL.md +20 -27
- package/skills/workflow/create/SKILL.md +10 -14
- 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/templates/workspace/README.md +23 -0
- package/templates/workspace/interfignore +2 -0
- package/dist/commands/benchmark.d.ts +0 -3
- package/dist/commands/benchmark.d.ts.map +0 -1
- package/dist/commands/benchmark.js +0 -374
- package/dist/commands/benchmark.js.map +0 -1
- package/dist/lib/bundled-templates.d.ts +0 -5
- package/dist/lib/bundled-templates.d.ts.map +0 -1
- package/dist/lib/bundled-templates.js +0 -23
- package/dist/lib/bundled-templates.js.map +0 -1
- package/dist/lib/interf-compile-plan.d.ts +0 -12
- package/dist/lib/interf-compile-plan.d.ts.map +0 -1
- package/dist/lib/interf-compile-plan.js +0 -143
- package/dist/lib/interf-compile-plan.js.map +0 -1
- package/dist/lib/validate-interface.d.ts +0 -79
- package/dist/lib/validate-interface.d.ts.map +0 -1
- package/dist/lib/validate-interface.js +0 -535
- package/dist/lib/validate-interface.js.map +0 -1
- package/dist/lib/validate-kb.d.ts.map +0 -1
- package/dist/lib/validate-kb.js +0 -252
- package/dist/lib/validate-kb.js.map +0 -1
- package/dist/lib/workflows-interface-contracts.d.ts +0 -24
- package/dist/lib/workflows-interface-contracts.d.ts.map +0 -1
- package/dist/lib/workflows-interface-contracts.js +0 -304
- package/dist/lib/workflows-interface-contracts.js.map +0 -1
- package/dist/lib/workflows-interface.d.ts +0 -72
- package/dist/lib/workflows-interface.d.ts.map +0 -1
- package/dist/lib/workflows-interface.js +0 -377
- package/dist/lib/workflows-interface.js.map +0 -1
- package/dist/lib/workflows-kb.d.ts +0 -50
- package/dist/lib/workflows-kb.d.ts.map +0 -1
- package/dist/lib/workflows-kb.js +0 -306
- package/dist/lib/workflows-kb.js.map +0 -1
- package/skills/interface/analyze/SKILL.md +0 -191
- package/skills/interface/compile/SKILL.md +0 -152
- package/skills/interface/compile/references/output-format.md +0 -48
- package/skills/interface/create/SKILL.md +0 -87
- package/skills/interface/create/references/compile-plan-format.md +0 -109
- package/skills/interface/create/references/workflows.md +0 -35
- package/skills/interface/query/SKILL.md +0 -48
- package/skills/interface/retrieve/SKILL.md +0 -133
- package/skills/knowledge-base/compile/SKILL.md +0 -196
- package/skills/knowledge-base/compile/references/output-format.md +0 -48
- package/skills/knowledge-base/compile/references/stage-claims.md +0 -60
- package/skills/knowledge-base/compile/references/stage-entities.md +0 -46
- package/skills/knowledge-base/query/SKILL.md +0 -45
- package/skills/knowledge-base/summarize/SKILL.md +0 -152
- package/templates/interface/README.md +0 -159
- package/templates/interface/interfaces.md +0 -102
- package/templates/knowledge-base/README.md +0 -137
- package/templates/knowledge-base/interfignore +0 -19
- package/templates/knowledge-base/registry.md +0 -118
- package/templates/workflow-package/README.md +0 -16
- package/templates/workflow-package/create/SKILL.md +0 -8
- package/templates/workflow-package/interface-query/SKILL.md +0 -29
- package/templates/workflow-package/interface-stage/SKILL.md +0 -13
- package/templates/workflow-package/knowledge-base-query/SKILL.md +0 -36
- package/templates/workflow-package/knowledge-base-stage/SKILL.md +0 -13
- package/templates/workflow-starters/interface/interf/README.md +0 -13
- package/templates/workflow-starters/interface/interf/create/SKILL.md +0 -15
- package/templates/workflow-starters/knowledge-base/interf/README.md +0 -13
- package/templates/workflow-starters/knowledge-base/karpathy/README.md +0 -13
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
2
|
import { slugify } from "../lib/util.js";
|
|
3
|
-
export const
|
|
4
|
-
export const
|
|
5
|
-
export const
|
|
6
|
-
export
|
|
7
|
-
export const DEFAULT_INTERFACE_EVAL_ANSWER_PLACEHOLDER = "Watch guidance, gross margin, and any demand changes mentioned in the report.";
|
|
8
|
-
export async function promptEvalCases(options) {
|
|
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.";
|
|
6
|
+
export async function promptCheckCases(options) {
|
|
9
7
|
p.log.info(options.heading);
|
|
10
8
|
const cases = [];
|
|
11
9
|
const startIndex = options.startIndex ?? 1;
|
|
@@ -13,7 +11,7 @@ export async function promptEvalCases(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 promptEvalCases(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
|
});
|
|
@@ -42,99 +40,110 @@ export async function promptEvalCases(options) {
|
|
|
42
40
|
return cases;
|
|
43
41
|
}
|
|
44
42
|
}
|
|
45
|
-
async function
|
|
46
|
-
if (!options.
|
|
43
|
+
async function promptWorkspaceChecks(options) {
|
|
44
|
+
if (!options.initialChecks?.length) {
|
|
47
45
|
if (options.initialAbout) {
|
|
48
|
-
p.log.info(`
|
|
46
|
+
p.log.info(`Focus: ${options.initialAbout}`);
|
|
49
47
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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 [];
|
|
58
|
+
return promptCheckCases({
|
|
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
|
});
|
|
83
96
|
if (p.isCancel(mode))
|
|
84
97
|
return null;
|
|
85
98
|
if (mode === "keep") {
|
|
86
|
-
return options.
|
|
99
|
+
return options.initialChecks;
|
|
100
|
+
}
|
|
101
|
+
if (mode === "clear") {
|
|
102
|
+
return [];
|
|
87
103
|
}
|
|
88
|
-
const
|
|
89
|
-
heading: mode === "add" ?
|
|
104
|
+
const nextChecks = await promptCheckCases({
|
|
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:
|
|
99
|
-
startIndex: mode === "add" ? options.
|
|
111
|
+
? `Expected answer ${options.initialChecks.length + 1}?`
|
|
112
|
+
: "Expected answer 1?",
|
|
113
|
+
answerPlaceholder: DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER,
|
|
114
|
+
addAnotherMessage: "Add another question?",
|
|
115
|
+
startIndex: mode === "add" ? options.initialChecks.length + 1 : 1,
|
|
100
116
|
});
|
|
101
|
-
if (
|
|
117
|
+
if (nextChecks === null)
|
|
102
118
|
return null;
|
|
103
|
-
return mode === "add" ? [...options.
|
|
119
|
+
return mode === "add" ? [...options.initialChecks, ...nextChecks] : nextChecks;
|
|
104
120
|
}
|
|
105
|
-
export async function
|
|
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 recurring job should this interface be built for?",
|
|
118
|
-
placeholder: DEFAULT_INTERFACE_ABOUT_PLACEHOLDER,
|
|
119
|
-
initialValue: initial?.about,
|
|
120
|
-
validate: (value) => (value.trim().length === 0 ? "Describe the job for this interface" : 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
|
-
p.log.error("Current
|
|
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
|
-
message: "
|
|
146
|
+
message: "Workspace name?",
|
|
138
147
|
placeholder: suggestedName,
|
|
139
148
|
initialValue: suggestedName,
|
|
140
149
|
validate: (value) => (value.trim().length === 0 ? "Name is required" : undefined),
|
|
@@ -143,49 +152,43 @@ export async function promptSingleInterfaceConfig(options = {}) {
|
|
|
143
152
|
return null;
|
|
144
153
|
name = slugify(String(rawName));
|
|
145
154
|
if (!name) {
|
|
146
|
-
p.log.error("
|
|
155
|
+
p.log.error("Workspace name needs letters, numbers, or dashes.");
|
|
147
156
|
return null;
|
|
148
157
|
}
|
|
149
158
|
if (name !== rawName) {
|
|
150
|
-
p.log.info(`
|
|
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
|
-
evals,
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
export async function promptInterfaceConfigs() {
|
|
167
|
-
const interfaces = [];
|
|
168
|
-
p.log.info("Start with the main compiled workspace first.");
|
|
169
|
-
p.log.info("An interface is a second compiled workspace for one recurring job on top of the main compiled workspace.");
|
|
170
|
-
p.log.info("Create one when the agent needs narrower retrieval, job-specific outputs, or extra task-specific evals.");
|
|
171
|
-
let addInterface = await p.confirm({
|
|
172
|
-
message: "Add an interface for one specific job?",
|
|
173
|
-
initialValue: false,
|
|
174
|
-
});
|
|
175
|
-
if (p.isCancel(addInterface))
|
|
176
|
-
return null;
|
|
177
|
-
while (addInterface) {
|
|
178
|
-
const interfaceConfig = await promptSingleInterfaceConfig();
|
|
179
|
-
if (interfaceConfig === 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)
|
|
180
169
|
return null;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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,
|
|
185
184
|
});
|
|
186
|
-
if (
|
|
185
|
+
if (checks === null)
|
|
187
186
|
return null;
|
|
188
187
|
}
|
|
189
|
-
return
|
|
188
|
+
return {
|
|
189
|
+
name,
|
|
190
|
+
...(String(about).trim().length > 0 ? { about: String(about).trim() } : {}),
|
|
191
|
+
checks,
|
|
192
|
+
};
|
|
190
193
|
}
|
|
191
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,
|
|
1
|
+
{"version":3,"file":"source-config-wizard.js","sourceRoot":"","sources":["../../src/commands/source-config-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAe3C,eAAO,MAAM,aAAa,EAAE,aAqD3B,CAAC"}
|
package/dist/commands/status.js
CHANGED
|
@@ -1,67 +1,71 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
import { detectInterf, listWorkspacesForSourceFolder, } from "../lib/interf.js";
|
|
4
|
+
import { computeWorkspaceHealth } from "../lib/state.js";
|
|
5
|
+
import { listWorkspaceEntries } from "../lib/registry.js";
|
|
6
|
+
function statusColor(status) {
|
|
7
|
+
switch (status) {
|
|
8
|
+
case "compiled":
|
|
9
|
+
return chalk.green;
|
|
10
|
+
case "running":
|
|
11
|
+
return chalk.yellow;
|
|
12
|
+
case "failed":
|
|
13
|
+
return chalk.red;
|
|
14
|
+
default:
|
|
15
|
+
return chalk.dim;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
7
18
|
export const statusCommand = {
|
|
8
19
|
command: "status",
|
|
9
|
-
describe: "Show
|
|
20
|
+
describe: "Show deterministic workspace health",
|
|
10
21
|
handler: async () => {
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
console.log(chalk.dim(" Nothing found. Run: interf create knowledge-base"));
|
|
16
|
-
console.log();
|
|
17
|
-
return;
|
|
22
|
+
let workspacePath = null;
|
|
23
|
+
const detected = detectInterf(process.cwd());
|
|
24
|
+
if (detected) {
|
|
25
|
+
workspacePath = detected.path;
|
|
18
26
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
: health.status === "failed"
|
|
33
|
-
? chalk.red("failed")
|
|
34
|
-
: chalk.dim("idle");
|
|
35
|
-
console.log(` ${knowledgeBase.name.padEnd(16)} ${status} src:${String(health.metrics.source_total).padStart(4)} summ:${String(health.metrics.to_summarize).padStart(4)} compile:${String(health.metrics.to_compile).padStart(4)} out:${String(health.metrics.outputs).padStart(3)} w:${String(health.metrics.warnings).padStart(3)} e:${String(health.metrics.errors).padStart(2)}`);
|
|
27
|
+
else {
|
|
28
|
+
const local = listWorkspacesForSourceFolder(process.cwd()).map(({ path, config }) => ({
|
|
29
|
+
path,
|
|
30
|
+
name: config.name,
|
|
31
|
+
}));
|
|
32
|
+
const all = local.length > 0 ? local : listWorkspaceEntries().map((entry) => ({
|
|
33
|
+
path: entry.path,
|
|
34
|
+
name: entry.name,
|
|
35
|
+
}));
|
|
36
|
+
if (all.length === 0) {
|
|
37
|
+
process.exitCode = 1;
|
|
38
|
+
console.log(chalk.red(" No workspaces found."));
|
|
39
|
+
return;
|
|
36
40
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
: health.status === "compiled"
|
|
49
|
-
? chalk.green(`compiled ${health.metrics.knowledge_base_compiled}/${health.metrics.knowledge_base_total}`)
|
|
50
|
-
: health.status === "stale"
|
|
51
|
-
? chalk.yellow(`stale (${health.metrics.to_compile} new)`)
|
|
52
|
-
: health.status === "running"
|
|
53
|
-
? chalk.blue(`running (${health.stage})`)
|
|
54
|
-
: health.status === "failed"
|
|
55
|
-
? chalk.red("failed")
|
|
56
|
-
: chalk.dim("idle");
|
|
57
|
-
console.log(` ${i.name.padEnd(16)} → ${i.knowledgeBase.padEnd(12)} ${status} compile:${String(health.metrics.to_compile).padStart(4)} rel:${String(health.metrics.relevant).padStart(4)} out:${String(health.metrics.outputs).padStart(3)} w:${String(health.metrics.warnings).padStart(3)} e:${String(health.metrics.errors).padStart(2)}`);
|
|
41
|
+
if (all.length === 1) {
|
|
42
|
+
workspacePath = all[0].path;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const selected = await p.select({
|
|
46
|
+
message: "Which workspace?",
|
|
47
|
+
options: all.map((entry) => ({ value: entry.path, label: entry.name })),
|
|
48
|
+
});
|
|
49
|
+
if (p.isCancel(selected))
|
|
50
|
+
return;
|
|
51
|
+
workspacePath = selected;
|
|
58
52
|
}
|
|
59
|
-
console.log();
|
|
60
|
-
}
|
|
61
|
-
if (agents.length > 0) {
|
|
62
|
-
console.log(chalk.dim(" Agents: " + agents.map((a) => a.displayName).join(", ")));
|
|
63
|
-
console.log();
|
|
64
53
|
}
|
|
54
|
+
const health = computeWorkspaceHealth(workspacePath);
|
|
55
|
+
const color = statusColor(health.status);
|
|
56
|
+
console.log();
|
|
57
|
+
console.log(color(` ${health.target_name}`));
|
|
58
|
+
console.log(chalk.dim(` status: ${health.status}`));
|
|
59
|
+
console.log(chalk.dim(` stage: ${health.stage}`));
|
|
60
|
+
console.log(chalk.dim(` ${health.summary}`));
|
|
61
|
+
console.log();
|
|
62
|
+
console.log(chalk.dim(` source coverage: ${health.metrics.source_covered}/${health.metrics.source_total}`));
|
|
63
|
+
console.log(chalk.dim(` summarized: ${health.metrics.summarized}`));
|
|
64
|
+
console.log(chalk.dim(` compiled: ${health.metrics.compiled}`));
|
|
65
|
+
console.log(chalk.dim(` entities: ${health.metrics.entities}`));
|
|
66
|
+
console.log(chalk.dim(` claims: ${health.metrics.claims}`));
|
|
67
|
+
console.log(chalk.dim(` warnings: ${health.metrics.warnings}`));
|
|
68
|
+
console.log(chalk.dim(` errors: ${health.metrics.errors}`));
|
|
65
69
|
},
|
|
66
70
|
};
|
|
67
71
|
//# sourceMappingURL=status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.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
|