@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.
Files changed (144) hide show
  1. package/README.md +77 -71
  2. package/dist/bin.js +3 -3
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/compile.d.ts +1 -0
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +42 -68
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
  9. package/dist/commands/create-workflow-wizard.js +17 -8
  10. package/dist/commands/create-workflow-wizard.js.map +1 -1
  11. package/dist/commands/create.d.ts.map +1 -1
  12. package/dist/commands/create.js +35 -45
  13. package/dist/commands/create.js.map +1 -1
  14. package/dist/commands/default.d.ts.map +1 -1
  15. package/dist/commands/default.js +27 -31
  16. package/dist/commands/default.js.map +1 -1
  17. package/dist/commands/doctor.js +2 -2
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/executor-flow.d.ts +9 -0
  20. package/dist/commands/executor-flow.d.ts.map +1 -0
  21. package/dist/commands/executor-flow.js +55 -0
  22. package/dist/commands/executor-flow.js.map +1 -0
  23. package/dist/commands/init.d.ts +1 -0
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +332 -64
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/list.js +1 -1
  28. package/dist/commands/list.js.map +1 -1
  29. package/dist/commands/source-config-wizard.d.ts +5 -6
  30. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  31. package/dist/commands/source-config-wizard.js +86 -82
  32. package/dist/commands/source-config-wizard.js.map +1 -1
  33. package/dist/commands/test-flow.d.ts +21 -0
  34. package/dist/commands/test-flow.d.ts.map +1 -0
  35. package/dist/commands/test-flow.js +106 -0
  36. package/dist/commands/test-flow.js.map +1 -0
  37. package/dist/commands/test.d.ts +4 -0
  38. package/dist/commands/test.d.ts.map +1 -0
  39. package/dist/commands/test.js +131 -0
  40. package/dist/commands/test.js.map +1 -0
  41. package/dist/commands/verify.d.ts.map +1 -1
  42. package/dist/commands/verify.js +7 -3
  43. package/dist/commands/verify.js.map +1 -1
  44. package/dist/commands/workspace-flow.d.ts +21 -0
  45. package/dist/commands/workspace-flow.d.ts.map +1 -0
  46. package/dist/commands/workspace-flow.js +90 -0
  47. package/dist/commands/workspace-flow.js.map +1 -0
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/lib/agent-detection.js +4 -4
  53. package/dist/lib/agent-detection.js.map +1 -1
  54. package/dist/lib/agent-skills.js +6 -6
  55. package/dist/lib/agent-skills.js.map +1 -1
  56. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  57. package/dist/lib/benchmark-execution.js +39 -17
  58. package/dist/lib/benchmark-execution.js.map +1 -1
  59. package/dist/lib/benchmark-sandbox.d.ts +10 -0
  60. package/dist/lib/benchmark-sandbox.d.ts.map +1 -0
  61. package/dist/lib/benchmark-sandbox.js +75 -0
  62. package/dist/lib/benchmark-sandbox.js.map +1 -0
  63. package/dist/lib/benchmark-targets.d.ts +1 -0
  64. package/dist/lib/benchmark-targets.d.ts.map +1 -1
  65. package/dist/lib/benchmark-targets.js +12 -0
  66. package/dist/lib/benchmark-targets.js.map +1 -1
  67. package/dist/lib/benchmark-types.d.ts +1 -1
  68. package/dist/lib/benchmark-types.d.ts.map +1 -1
  69. package/dist/lib/benchmark.d.ts +1 -1
  70. package/dist/lib/benchmark.d.ts.map +1 -1
  71. package/dist/lib/benchmark.js +1 -1
  72. package/dist/lib/benchmark.js.map +1 -1
  73. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  74. package/dist/lib/interf-scaffold.js +2 -1
  75. package/dist/lib/interf-scaffold.js.map +1 -1
  76. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  77. package/dist/lib/interf-workflow-package.js +7 -2
  78. package/dist/lib/interf-workflow-package.js.map +1 -1
  79. package/dist/lib/local-workflows.d.ts.map +1 -1
  80. package/dist/lib/local-workflows.js +24 -8
  81. package/dist/lib/local-workflows.js.map +1 -1
  82. package/dist/lib/runtime-contracts.d.ts +3 -1
  83. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  84. package/dist/lib/runtime-contracts.js +115 -0
  85. package/dist/lib/runtime-contracts.js.map +1 -1
  86. package/dist/lib/runtime-reconcile.d.ts +2 -1
  87. package/dist/lib/runtime-reconcile.d.ts.map +1 -1
  88. package/dist/lib/runtime-reconcile.js +71 -15
  89. package/dist/lib/runtime-reconcile.js.map +1 -1
  90. package/dist/lib/runtime-runs.js +12 -3
  91. package/dist/lib/runtime-runs.js.map +1 -1
  92. package/dist/lib/runtime-types.d.ts +11 -0
  93. package/dist/lib/runtime-types.d.ts.map +1 -1
  94. package/dist/lib/runtime.d.ts +1 -1
  95. package/dist/lib/runtime.d.ts.map +1 -1
  96. package/dist/lib/runtime.js +1 -1
  97. package/dist/lib/runtime.js.map +1 -1
  98. package/dist/lib/schema.d.ts +26 -9
  99. package/dist/lib/schema.d.ts.map +1 -1
  100. package/dist/lib/schema.js +13 -7
  101. package/dist/lib/schema.js.map +1 -1
  102. package/dist/lib/source-config.d.ts +2 -1
  103. package/dist/lib/source-config.d.ts.map +1 -1
  104. package/dist/lib/source-config.js +7 -4
  105. package/dist/lib/source-config.js.map +1 -1
  106. package/dist/lib/state-health.d.ts +2 -2
  107. package/dist/lib/state-health.d.ts.map +1 -1
  108. package/dist/lib/state-health.js +34 -19
  109. package/dist/lib/state-health.js.map +1 -1
  110. package/dist/lib/state-io.d.ts.map +1 -1
  111. package/dist/lib/state-io.js +6 -0
  112. package/dist/lib/state-io.js.map +1 -1
  113. package/dist/lib/validate-workspace.d.ts +41 -0
  114. package/dist/lib/validate-workspace.d.ts.map +1 -1
  115. package/dist/lib/validate-workspace.js +152 -4
  116. package/dist/lib/validate-workspace.js.map +1 -1
  117. package/dist/lib/validate.d.ts +2 -2
  118. package/dist/lib/validate.d.ts.map +1 -1
  119. package/dist/lib/validate.js +17 -2
  120. package/dist/lib/validate.js.map +1 -1
  121. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  122. package/dist/lib/workflow-definitions.js +42 -20
  123. package/dist/lib/workflow-definitions.js.map +1 -1
  124. package/dist/lib/workflow-helpers.d.ts.map +1 -1
  125. package/dist/lib/workflow-helpers.js +4 -2
  126. package/dist/lib/workflow-helpers.js.map +1 -1
  127. package/dist/lib/workflows.d.ts +2 -2
  128. package/dist/lib/workflows.d.ts.map +1 -1
  129. package/dist/lib/workflows.js +3 -1
  130. package/dist/lib/workflows.js.map +1 -1
  131. package/dist/lib/workspace-compile.d.ts +4 -3
  132. package/dist/lib/workspace-compile.d.ts.map +1 -1
  133. package/dist/lib/workspace-compile.js +199 -100
  134. package/dist/lib/workspace-compile.js.map +1 -1
  135. package/package.json +1 -1
  136. package/skills/benchmark/SKILL.md +4 -3
  137. package/skills/workflow/create/SKILL.md +4 -1
  138. package/skills/workspace/shape/SKILL.md +15 -0
  139. package/skills/workspace/structure/SKILL.md +15 -0
  140. package/skills/workspace/summarize/SKILL.md +15 -0
  141. package/dist/commands/benchmark.d.ts +0 -3
  142. package/dist/commands/benchmark.d.ts.map +0 -1
  143. package/dist/commands/benchmark.js +0 -83
  144. 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 changed in full-year guidance?";
4
- export const DEFAULT_WORKSPACE_CHECK_ANSWER_PLACEHOLDER = "Guidance was maintained at $4.8B to $5.0B in revenue.";
5
- export const DEFAULT_WORKSPACE_ABOUT_PLACEHOLDER = "Board meeting workspace for the quarterly results folder.";
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
- : `Check ${startIndex + cases.length} question?`,
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
- : `Check ${startIndex + cases.length} expected answer?`,
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(`Workspace purpose: ${options.initialAbout}`);
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: `Workspace checks for ${options.name}`,
52
- questionMessage: `Workspace "${options.name}" check 1 question?`,
53
- questionPlaceholder: DEFAULT_WORKSPACE_FOLLOWUP_CHECK_QUESTION_PLACEHOLDER,
54
- answerMessage: `Workspace "${options.name}" check 1 expected answer?`,
55
- answerPlaceholder: DEFAULT_WORKSPACE_FOLLOWUP_CHECK_ANSWER_PLACEHOLDER,
56
- addAnotherMessage: `Add another check for "${options.name}"?`,
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(`Workspace purpose: ${options.initialAbout}`);
68
+ p.log.info(`Focus: ${options.initialAbout}`);
61
69
  }
62
- p.log.info(`Current workspace "${options.name}" has ${options.initialChecks.length} check${options.initialChecks.length === 1 ? "" : "s"}.`);
70
+ p.log.info(`Current questions: ${options.initialChecks.length}`);
63
71
  const mode = await p.select({
64
- message: `What should happen to checks for "${options.name}"?`,
72
+ message: "What do you want to do with them?",
65
73
  options: [
66
74
  {
67
75
  value: "keep",
68
- label: "Keep current checks",
69
- hint: "Leave the existing checks as-is",
76
+ label: "Keep them",
77
+ hint: "Leave the current questions as-is",
70
78
  },
71
79
  {
72
80
  value: "add",
73
- label: "Add more checks",
74
- hint: "Append more checks for this job",
81
+ label: "Add more",
82
+ hint: "Append more questions",
75
83
  },
76
84
  {
77
85
  value: "replace",
78
- label: "Replace checks",
79
- hint: "Rewrite the checks from scratch",
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" ? `Add checks for ${options.name}` : `Replace checks for ${options.name}`,
105
+ heading: mode === "add" ? "Add more questions" : "Replace questions",
90
106
  questionMessage: mode === "add"
91
- ? `Workspace "${options.name}" check ${options.initialChecks.length + 1} question?`
92
- : `Workspace "${options.name}" check 1 question?`,
93
- questionPlaceholder: DEFAULT_WORKSPACE_FOLLOWUP_CHECK_QUESTION_PLACEHOLDER,
107
+ ? `Question ${options.initialChecks.length + 1}?`
108
+ : "Question 1?",
109
+ questionPlaceholder: DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER,
94
110
  answerMessage: mode === "add"
95
- ? `Workspace "${options.name}" check ${options.initialChecks.length + 1} expected answer?`
96
- : `Workspace "${options.name}" check 1 expected answer?`,
97
- answerPlaceholder: DEFAULT_WORKSPACE_FOLLOWUP_CHECK_ANSWER_PLACEHOLDER,
98
- addAnotherMessage: `Add another check for "${options.name}"?`,
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
- if (!initial?.about || !options.skipAboutPrompt) {
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.");
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
- let about;
112
- if (options.skipAboutPrompt && initial?.about) {
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
- p.log.info(`Workspace name stays "${name}" because this folder already maps to that workspace.`);
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)) ?? "weekly-briefing";
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
- const checks = await promptWorkspaceChecks({
154
- name,
155
- initialAbout: String(about).trim(),
156
- initialChecks: initial?.checks,
157
- });
158
- if (checks === null)
159
- return null;
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
- workspaces.push(workspaceConfig);
181
- addWorkspace = await p.confirm({
182
- message: "Add another workspace?",
183
- initialValue: false,
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 (p.isCancel(addWorkspace))
185
+ if (checks === null)
186
186
  return null;
187
187
  }
188
- return workspaces;
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":"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"}
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,4 @@
1
+ import type { CommandModule } from "yargs";
2
+ export declare const testCommand: CommandModule;
3
+ export declare function runTestCommand(argv?: Record<string, unknown>): Promise<void>;
4
+ //# sourceMappingURL=test.d.ts.map
@@ -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":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAY3C,eAAO,MAAM,aAAa,EAAE,aAoE3B,CAAC"}
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"}
@@ -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
- : validateWorkspaceCompile(detected.path);
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));