@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.
Files changed (276) hide show
  1. package/README.md +192 -187
  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 +45 -138
  7. package/dist/commands/compile.js.map +1 -1
  8. package/dist/commands/create-workflow-wizard.d.ts +4 -25
  9. package/dist/commands/create-workflow-wizard.d.ts.map +1 -1
  10. package/dist/commands/create-workflow-wizard.js +46 -222
  11. package/dist/commands/create-workflow-wizard.js.map +1 -1
  12. package/dist/commands/create.d.ts +2 -11
  13. package/dist/commands/create.d.ts.map +1 -1
  14. package/dist/commands/create.js +78 -477
  15. package/dist/commands/create.js.map +1 -1
  16. package/dist/commands/default.d.ts.map +1 -1
  17. package/dist/commands/default.js +27 -43
  18. package/dist/commands/default.js.map +1 -1
  19. package/dist/commands/doctor.js +2 -2
  20. package/dist/commands/doctor.js.map +1 -1
  21. package/dist/commands/executor-flow.d.ts +9 -0
  22. package/dist/commands/executor-flow.d.ts.map +1 -0
  23. package/dist/commands/executor-flow.js +55 -0
  24. package/dist/commands/executor-flow.js.map +1 -0
  25. package/dist/commands/init.d.ts +1 -0
  26. package/dist/commands/init.d.ts.map +1 -1
  27. package/dist/commands/init.js +320 -321
  28. package/dist/commands/init.js.map +1 -1
  29. package/dist/commands/list.d.ts.map +1 -1
  30. package/dist/commands/list.js +12 -22
  31. package/dist/commands/list.js.map +1 -1
  32. package/dist/commands/reset.d.ts.map +1 -1
  33. package/dist/commands/reset.js +27 -124
  34. package/dist/commands/reset.js.map +1 -1
  35. package/dist/commands/source-config-wizard.d.ts +10 -11
  36. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  37. package/dist/commands/source-config-wizard.js +100 -97
  38. package/dist/commands/source-config-wizard.js.map +1 -1
  39. package/dist/commands/status.d.ts.map +1 -1
  40. package/dist/commands/status.js +60 -56
  41. package/dist/commands/status.js.map +1 -1
  42. package/dist/commands/test-flow.d.ts +21 -0
  43. package/dist/commands/test-flow.d.ts.map +1 -0
  44. package/dist/commands/test-flow.js +106 -0
  45. package/dist/commands/test-flow.js.map +1 -0
  46. package/dist/commands/test.d.ts +4 -0
  47. package/dist/commands/test.d.ts.map +1 -0
  48. package/dist/commands/test.js +131 -0
  49. package/dist/commands/test.js.map +1 -0
  50. package/dist/commands/verify.d.ts.map +1 -1
  51. package/dist/commands/verify.js +63 -98
  52. package/dist/commands/verify.js.map +1 -1
  53. package/dist/commands/workspace-flow.d.ts +21 -0
  54. package/dist/commands/workspace-flow.d.ts.map +1 -0
  55. package/dist/commands/workspace-flow.js +90 -0
  56. package/dist/commands/workspace-flow.js.map +1 -0
  57. package/dist/index.d.ts +8 -8
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +5 -7
  60. package/dist/index.js.map +1 -1
  61. package/dist/lib/agent-constants.js +1 -1
  62. package/dist/lib/agent-constants.js.map +1 -1
  63. package/dist/lib/agent-detection.js +4 -4
  64. package/dist/lib/agent-detection.js.map +1 -1
  65. package/dist/lib/agent-skills.js +6 -6
  66. package/dist/lib/agent-skills.js.map +1 -1
  67. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  68. package/dist/lib/benchmark-execution.js +32 -19
  69. package/dist/lib/benchmark-execution.js.map +1 -1
  70. package/dist/lib/benchmark-sandbox.d.ts +10 -0
  71. package/dist/lib/benchmark-sandbox.d.ts.map +1 -0
  72. package/dist/lib/benchmark-sandbox.js +75 -0
  73. package/dist/lib/benchmark-sandbox.js.map +1 -0
  74. package/dist/lib/benchmark-targets.d.ts +4 -4
  75. package/dist/lib/benchmark-targets.d.ts.map +1 -1
  76. package/dist/lib/benchmark-targets.js +20 -54
  77. package/dist/lib/benchmark-targets.js.map +1 -1
  78. package/dist/lib/benchmark-types.d.ts +2 -3
  79. package/dist/lib/benchmark-types.d.ts.map +1 -1
  80. package/dist/lib/benchmark.d.ts +1 -1
  81. package/dist/lib/benchmark.d.ts.map +1 -1
  82. package/dist/lib/benchmark.js +1 -1
  83. package/dist/lib/benchmark.js.map +1 -1
  84. package/dist/lib/config.d.ts +1 -2
  85. package/dist/lib/config.d.ts.map +1 -1
  86. package/dist/lib/config.js +2 -4
  87. package/dist/lib/config.js.map +1 -1
  88. package/dist/lib/discovery.d.ts +1 -1
  89. package/dist/lib/discovery.d.ts.map +1 -1
  90. package/dist/lib/discovery.js +7 -2
  91. package/dist/lib/discovery.js.map +1 -1
  92. package/dist/lib/eval-packs.d.ts +6 -52
  93. package/dist/lib/eval-packs.d.ts.map +1 -1
  94. package/dist/lib/eval-packs.js +11 -39
  95. package/dist/lib/eval-packs.js.map +1 -1
  96. package/dist/lib/interf-bootstrap.d.ts +3 -5
  97. package/dist/lib/interf-bootstrap.d.ts.map +1 -1
  98. package/dist/lib/interf-bootstrap.js +10 -57
  99. package/dist/lib/interf-bootstrap.js.map +1 -1
  100. package/dist/lib/interf-detect.d.ts +13 -11
  101. package/dist/lib/interf-detect.d.ts.map +1 -1
  102. package/dist/lib/interf-detect.js +59 -45
  103. package/dist/lib/interf-detect.js.map +1 -1
  104. package/dist/lib/interf-scaffold.d.ts +2 -5
  105. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  106. package/dist/lib/interf-scaffold.js +99 -235
  107. package/dist/lib/interf-scaffold.js.map +1 -1
  108. package/dist/lib/interf-workflow-package.d.ts +1 -2
  109. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  110. package/dist/lib/interf-workflow-package.js +99 -90
  111. package/dist/lib/interf-workflow-package.js.map +1 -1
  112. package/dist/lib/interf.d.ts +4 -5
  113. package/dist/lib/interf.d.ts.map +1 -1
  114. package/dist/lib/interf.js +3 -6
  115. package/dist/lib/interf.js.map +1 -1
  116. package/dist/lib/local-workflows.d.ts +9 -8
  117. package/dist/lib/local-workflows.d.ts.map +1 -1
  118. package/dist/lib/local-workflows.js +56 -92
  119. package/dist/lib/local-workflows.js.map +1 -1
  120. package/dist/lib/obsidian.d.ts +1 -3
  121. package/dist/lib/obsidian.d.ts.map +1 -1
  122. package/dist/lib/obsidian.js +10 -81
  123. package/dist/lib/obsidian.js.map +1 -1
  124. package/dist/lib/registry.d.ts +6 -17
  125. package/dist/lib/registry.d.ts.map +1 -1
  126. package/dist/lib/registry.js +36 -50
  127. package/dist/lib/registry.js.map +1 -1
  128. package/dist/lib/runtime-contracts.d.ts +4 -3
  129. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  130. package/dist/lib/runtime-contracts.js +125 -9
  131. package/dist/lib/runtime-contracts.js.map +1 -1
  132. package/dist/lib/runtime-reconcile.d.ts +3 -5
  133. package/dist/lib/runtime-reconcile.d.ts.map +1 -1
  134. package/dist/lib/runtime-reconcile.js +70 -167
  135. package/dist/lib/runtime-reconcile.js.map +1 -1
  136. package/dist/lib/runtime-runs.d.ts.map +1 -1
  137. package/dist/lib/runtime-runs.js +61 -57
  138. package/dist/lib/runtime-runs.js.map +1 -1
  139. package/dist/lib/runtime-types.d.ts +16 -6
  140. package/dist/lib/runtime-types.d.ts.map +1 -1
  141. package/dist/lib/runtime.d.ts +2 -2
  142. package/dist/lib/runtime.d.ts.map +1 -1
  143. package/dist/lib/runtime.js +1 -1
  144. package/dist/lib/runtime.js.map +1 -1
  145. package/dist/lib/schema.d.ts +69 -311
  146. package/dist/lib/schema.d.ts.map +1 -1
  147. package/dist/lib/schema.js +49 -210
  148. package/dist/lib/schema.js.map +1 -1
  149. package/dist/lib/source-config.d.ts +8 -7
  150. package/dist/lib/source-config.d.ts.map +1 -1
  151. package/dist/lib/source-config.js +59 -63
  152. package/dist/lib/source-config.js.map +1 -1
  153. package/dist/lib/state-artifacts.d.ts +5 -11
  154. package/dist/lib/state-artifacts.d.ts.map +1 -1
  155. package/dist/lib/state-artifacts.js +8 -18
  156. package/dist/lib/state-artifacts.js.map +1 -1
  157. package/dist/lib/state-health.d.ts +4 -8
  158. package/dist/lib/state-health.d.ts.map +1 -1
  159. package/dist/lib/state-health.js +52 -233
  160. package/dist/lib/state-health.js.map +1 -1
  161. package/dist/lib/state-io.d.ts +7 -12
  162. package/dist/lib/state-io.d.ts.map +1 -1
  163. package/dist/lib/state-io.js +32 -93
  164. package/dist/lib/state-io.js.map +1 -1
  165. package/dist/lib/state-view.d.ts +4 -6
  166. package/dist/lib/state-view.d.ts.map +1 -1
  167. package/dist/lib/state-view.js +62 -101
  168. package/dist/lib/state-view.js.map +1 -1
  169. package/dist/lib/state.d.ts +5 -5
  170. package/dist/lib/state.d.ts.map +1 -1
  171. package/dist/lib/state.js +4 -4
  172. package/dist/lib/state.js.map +1 -1
  173. package/dist/lib/summarize-plan.d.ts +2 -2
  174. package/dist/lib/summarize-plan.d.ts.map +1 -1
  175. package/dist/lib/summarize-plan.js +13 -13
  176. package/dist/lib/summarize-plan.js.map +1 -1
  177. package/dist/lib/{validate-kb.d.ts → validate-workspace.d.ts} +49 -8
  178. package/dist/lib/validate-workspace.d.ts.map +1 -0
  179. package/dist/lib/validate-workspace.js +398 -0
  180. package/dist/lib/validate-workspace.js.map +1 -0
  181. package/dist/lib/validate.d.ts +5 -7
  182. package/dist/lib/validate.d.ts.map +1 -1
  183. package/dist/lib/validate.js +22 -20
  184. package/dist/lib/validate.js.map +1 -1
  185. package/dist/lib/workflow-definitions.d.ts +14 -50
  186. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  187. package/dist/lib/workflow-definitions.js +100 -353
  188. package/dist/lib/workflow-definitions.js.map +1 -1
  189. package/dist/lib/workflow-helpers.d.ts +3 -4
  190. package/dist/lib/workflow-helpers.d.ts.map +1 -1
  191. package/dist/lib/workflow-helpers.js +17 -49
  192. package/dist/lib/workflow-helpers.js.map +1 -1
  193. package/dist/lib/workflow-stage-runner.d.ts +1 -2
  194. package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
  195. package/dist/lib/workflow-stage-runner.js +4 -6
  196. package/dist/lib/workflow-stage-runner.js.map +1 -1
  197. package/dist/lib/workflow-starter-docs.d.ts +3 -5
  198. package/dist/lib/workflow-starter-docs.d.ts.map +1 -1
  199. package/dist/lib/workflow-starter-docs.js +2 -17
  200. package/dist/lib/workflow-starter-docs.js.map +1 -1
  201. package/dist/lib/workflows.d.ts +9 -14
  202. package/dist/lib/workflows.d.ts.map +1 -1
  203. package/dist/lib/workflows.js +15 -30
  204. package/dist/lib/workflows.js.map +1 -1
  205. package/dist/lib/workspace-compile.d.ts +51 -0
  206. package/dist/lib/workspace-compile.d.ts.map +1 -0
  207. package/dist/lib/workspace-compile.js +397 -0
  208. package/dist/lib/workspace-compile.js.map +1 -0
  209. package/package.json +9 -9
  210. package/skills/benchmark/SKILL.md +20 -27
  211. package/skills/workflow/create/SKILL.md +10 -14
  212. package/skills/workspace/shape/SKILL.md +15 -0
  213. package/skills/workspace/structure/SKILL.md +15 -0
  214. package/skills/workspace/summarize/SKILL.md +15 -0
  215. package/templates/workspace/README.md +23 -0
  216. package/templates/workspace/interfignore +2 -0
  217. package/dist/commands/benchmark.d.ts +0 -3
  218. package/dist/commands/benchmark.d.ts.map +0 -1
  219. package/dist/commands/benchmark.js +0 -374
  220. package/dist/commands/benchmark.js.map +0 -1
  221. package/dist/lib/bundled-templates.d.ts +0 -5
  222. package/dist/lib/bundled-templates.d.ts.map +0 -1
  223. package/dist/lib/bundled-templates.js +0 -23
  224. package/dist/lib/bundled-templates.js.map +0 -1
  225. package/dist/lib/interf-compile-plan.d.ts +0 -12
  226. package/dist/lib/interf-compile-plan.d.ts.map +0 -1
  227. package/dist/lib/interf-compile-plan.js +0 -143
  228. package/dist/lib/interf-compile-plan.js.map +0 -1
  229. package/dist/lib/validate-interface.d.ts +0 -79
  230. package/dist/lib/validate-interface.d.ts.map +0 -1
  231. package/dist/lib/validate-interface.js +0 -535
  232. package/dist/lib/validate-interface.js.map +0 -1
  233. package/dist/lib/validate-kb.d.ts.map +0 -1
  234. package/dist/lib/validate-kb.js +0 -252
  235. package/dist/lib/validate-kb.js.map +0 -1
  236. package/dist/lib/workflows-interface-contracts.d.ts +0 -24
  237. package/dist/lib/workflows-interface-contracts.d.ts.map +0 -1
  238. package/dist/lib/workflows-interface-contracts.js +0 -304
  239. package/dist/lib/workflows-interface-contracts.js.map +0 -1
  240. package/dist/lib/workflows-interface.d.ts +0 -72
  241. package/dist/lib/workflows-interface.d.ts.map +0 -1
  242. package/dist/lib/workflows-interface.js +0 -377
  243. package/dist/lib/workflows-interface.js.map +0 -1
  244. package/dist/lib/workflows-kb.d.ts +0 -50
  245. package/dist/lib/workflows-kb.d.ts.map +0 -1
  246. package/dist/lib/workflows-kb.js +0 -306
  247. package/dist/lib/workflows-kb.js.map +0 -1
  248. package/skills/interface/analyze/SKILL.md +0 -191
  249. package/skills/interface/compile/SKILL.md +0 -152
  250. package/skills/interface/compile/references/output-format.md +0 -48
  251. package/skills/interface/create/SKILL.md +0 -87
  252. package/skills/interface/create/references/compile-plan-format.md +0 -109
  253. package/skills/interface/create/references/workflows.md +0 -35
  254. package/skills/interface/query/SKILL.md +0 -48
  255. package/skills/interface/retrieve/SKILL.md +0 -133
  256. package/skills/knowledge-base/compile/SKILL.md +0 -196
  257. package/skills/knowledge-base/compile/references/output-format.md +0 -48
  258. package/skills/knowledge-base/compile/references/stage-claims.md +0 -60
  259. package/skills/knowledge-base/compile/references/stage-entities.md +0 -46
  260. package/skills/knowledge-base/query/SKILL.md +0 -45
  261. package/skills/knowledge-base/summarize/SKILL.md +0 -152
  262. package/templates/interface/README.md +0 -159
  263. package/templates/interface/interfaces.md +0 -102
  264. package/templates/knowledge-base/README.md +0 -137
  265. package/templates/knowledge-base/interfignore +0 -19
  266. package/templates/knowledge-base/registry.md +0 -118
  267. package/templates/workflow-package/README.md +0 -16
  268. package/templates/workflow-package/create/SKILL.md +0 -8
  269. package/templates/workflow-package/interface-query/SKILL.md +0 -29
  270. package/templates/workflow-package/interface-stage/SKILL.md +0 -13
  271. package/templates/workflow-package/knowledge-base-query/SKILL.md +0 -36
  272. package/templates/workflow-package/knowledge-base-stage/SKILL.md +0 -13
  273. package/templates/workflow-starters/interface/interf/README.md +0 -13
  274. package/templates/workflow-starters/interface/interf/create/SKILL.md +0 -15
  275. package/templates/workflow-starters/knowledge-base/interf/README.md +0 -13
  276. 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 DEFAULT_SHARED_EVAL_QUESTION_PLACEHOLDER = "What changed in full-year guidance?";
4
- export const DEFAULT_SHARED_EVAL_ANSWER_PLACEHOLDER = "Guidance was maintained at $4.8B to $5.0B in revenue.";
5
- export const DEFAULT_INTERFACE_ABOUT_PLACEHOLDER = "Prepare a briefing for tomorrow's operator meeting.";
6
- export const DEFAULT_INTERFACE_EVAL_QUESTION_PLACEHOLDER = "What should the operator pay attention to next?";
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
- : `Eval ${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 promptEvalCases(options) {
22
20
  const answer = await p.text({
23
21
  message: cases.length === 0
24
22
  ? options.answerMessage
25
- : `Eval ${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
  });
@@ -42,99 +40,110 @@ export async function promptEvalCases(options) {
42
40
  return cases;
43
41
  }
44
42
  }
45
- async function promptInterfaceEvals(options) {
46
- if (!options.initialEvals?.length) {
43
+ async function promptWorkspaceChecks(options) {
44
+ if (!options.initialChecks?.length) {
47
45
  if (options.initialAbout) {
48
- p.log.info(`Interface purpose: ${options.initialAbout}`);
46
+ p.log.info(`Focus: ${options.initialAbout}`);
49
47
  }
50
- return promptEvalCases({
51
- heading: `Interface evals for ${options.name}`,
52
- questionMessage: `Interface "${options.name}" eval 1 question?`,
53
- questionPlaceholder: DEFAULT_INTERFACE_EVAL_QUESTION_PLACEHOLDER,
54
- answerMessage: `Interface "${options.name}" eval 1 expected answer?`,
55
- answerPlaceholder: DEFAULT_INTERFACE_EVAL_ANSWER_PLACEHOLDER,
56
- addAnotherMessage: `Add another eval for "${options.name}"?`,
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(`Interface purpose: ${options.initialAbout}`);
68
+ p.log.info(`Focus: ${options.initialAbout}`);
61
69
  }
62
- p.log.info(`Current interface "${options.name}" has ${options.initialEvals.length} eval${options.initialEvals.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 interface evals 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 interface evals",
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 interface evals",
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 interface evals",
79
- hint: "Rewrite the interface 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
  });
83
96
  if (p.isCancel(mode))
84
97
  return null;
85
98
  if (mode === "keep") {
86
- return options.initialEvals;
99
+ return options.initialChecks;
100
+ }
101
+ if (mode === "clear") {
102
+ return [];
87
103
  }
88
- const nextEvals = await promptEvalCases({
89
- heading: mode === "add" ? `Add interface evals for ${options.name}` : `Replace interface evals for ${options.name}`,
104
+ const nextChecks = await promptCheckCases({
105
+ heading: mode === "add" ? "Add more questions" : "Replace questions",
90
106
  questionMessage: mode === "add"
91
- ? `Interface "${options.name}" eval ${options.initialEvals.length + 1} question?`
92
- : `Interface "${options.name}" eval 1 question?`,
93
- questionPlaceholder: DEFAULT_INTERFACE_EVAL_QUESTION_PLACEHOLDER,
107
+ ? `Question ${options.initialChecks.length + 1}?`
108
+ : "Question 1?",
109
+ questionPlaceholder: DEFAULT_WORKSPACE_CHECK_QUESTION_PLACEHOLDER,
94
110
  answerMessage: mode === "add"
95
- ? `Interface "${options.name}" eval ${options.initialEvals.length + 1} expected answer?`
96
- : `Interface "${options.name}" eval 1 expected answer?`,
97
- answerPlaceholder: DEFAULT_INTERFACE_EVAL_ANSWER_PLACEHOLDER,
98
- addAnotherMessage: `Add another eval for "${options.name}"?`,
99
- startIndex: mode === "add" ? options.initialEvals.length + 1 : 1,
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 (nextEvals === null)
117
+ if (nextChecks === null)
102
118
  return null;
103
- return mode === "add" ? [...options.initialEvals, ...nextEvals] : nextEvals;
119
+ return mode === "add" ? [...options.initialChecks, ...nextChecks] : nextChecks;
104
120
  }
105
- export async function promptSingleInterfaceConfig(options = {}) {
121
+ export async function promptSingleWorkspaceConfig(options = {}) {
106
122
  const initial = options.initial;
107
- if (!initial?.about || !options.skipAboutPrompt) {
108
- p.log.info("An interface is a second compiled workspace for one recurring job.");
109
- p.log.info("Use it when the main compiled workspace is too broad and the agent needs a narrower task-shaped surface.");
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 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 interface folder name needs letters, numbers, or dashes.");
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(`Interface name stays "${name}" because this folder is already that interface.`);
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
- message: "Interface name?",
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("Interface name needs letters, numbers, or dashes.");
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(`Interface name: ${name}`);
159
+ p.log.info(`Workspace name: ${name}`);
151
160
  }
152
161
  }
153
- const evals = await promptInterfaceEvals({
154
- name,
155
- initialAbout: String(about).trim(),
156
- initialEvals: initial?.evals,
157
- });
158
- if (evals === null)
159
- return null;
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
- interfaces.push(interfaceConfig);
182
- addInterface = await p.confirm({
183
- message: "Add another interface?",
184
- 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,
185
184
  });
186
- if (p.isCancel(addInterface))
185
+ if (checks === null)
187
186
  return null;
188
187
  }
189
- return interfaces;
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":"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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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,eAAO,MAAM,aAAa,EAAE,aAwE3B,CAAC"}
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"}
@@ -1,67 +1,71 @@
1
1
  import chalk from "chalk";
2
- import { loadRegistry } from "../lib/registry.js";
3
- import { refreshWorkspaceBootstrapGuidance } from "../lib/interf.js";
4
- import { computeKnowledgeBaseHealth, computeInterfaceHealth, } from "../lib/state.js";
5
- import { detectAgents } from "../lib/agents.js";
6
- import { loadRuntimeRun } from "../lib/runtime.js";
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 knowledge-base and interface status",
20
+ describe: "Show deterministic workspace health",
10
21
  handler: async () => {
11
- const reg = loadRegistry();
12
- const agents = detectAgents();
13
- console.log();
14
- if (reg.knowledgeBases.length === 0 && reg.interfaces.length === 0) {
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
- if (reg.knowledgeBases.length > 0) {
20
- console.log(chalk.bold(" Knowledge Bases"));
21
- console.log(chalk.dim(" " + "─".repeat(50)));
22
- for (const knowledgeBase of reg.knowledgeBases) {
23
- refreshWorkspaceBootstrapGuidance(knowledgeBase.path);
24
- const health = computeKnowledgeBaseHealth(knowledgeBase.path);
25
- const run = loadRuntimeRun(knowledgeBase.path);
26
- const status = health.status === "running" && run
27
- ? chalk.blue(`running/${run.stage_label} via ${run.executor.display_name}`)
28
- : health.status === "compiled"
29
- ? chalk.green(`compiled ${health.metrics.compiled}/${health.metrics.summarized}`)
30
- : health.status === "stale"
31
- ? chalk.yellow(`stale/${health.stage} (${health.stage === "summarize" ? health.metrics.to_summarize : health.metrics.to_compile} pending)`)
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
- console.log();
38
- }
39
- if (reg.interfaces.length > 0) {
40
- console.log(chalk.bold(" Interfaces"));
41
- console.log(chalk.dim(" " + "─".repeat(50)));
42
- for (const i of reg.interfaces) {
43
- refreshWorkspaceBootstrapGuidance(i.path);
44
- const health = computeInterfaceHealth(i.path);
45
- const run = loadRuntimeRun(i.path);
46
- const status = health.status === "running" && run
47
- ? chalk.blue(`running/${run.stage_label} via ${run.executor.display_name}`)
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":"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"}
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