@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,4 +1,3 @@
1
1
  import { type WorkflowDefinition } from "./workflow-definitions.js";
2
- export declare function writeKnowledgeBaseWorkflowPackage(knowledgeBasePath: string, workflow: WorkflowDefinition<string>, interfaceTemplates: WorkflowDefinition<string>[]): void;
3
- export declare function writeInterfaceWorkflowPackage(interfacePath: string, workflow: WorkflowDefinition<string>): void;
2
+ export declare function writeWorkspaceWorkflowPackage(workspacePath: string, workflow: WorkflowDefinition<string>): void;
4
3
  //# sourceMappingURL=interf-workflow-package.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interf-workflow-package.d.ts","sourceRoot":"","sources":["../../src/lib/interf-workflow-package.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,2BAA2B,CAAC;AAsJnC,wBAAgB,iCAAiC,CAC/C,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACpC,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAC/C,IAAI,CAyBN;AAED,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,GACnC,IAAI,CAEN"}
1
+ {"version":3,"file":"interf-workflow-package.d.ts","sourceRoot":"","sources":["../../src/lib/interf-workflow-package.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,2BAA2B,CAAC;AAgJnC,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,GACnC,IAAI,CAuBN"}
@@ -1,8 +1,9 @@
1
1
  import { mkdirSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { WORKFLOW_PACKAGE_DIR } from "./interf-detect.js";
4
- import { renderBundledTemplate } from "./bundled-templates.js";
5
- import { buildManualQueryFirstReplyRule, topKnowledgeBaseManualPreflightBlock, topInterfaceManualPreflightBlock, } from "./interf-bootstrap.js";
4
+ function workflowPackagePath(dirPath) {
5
+ return join(dirPath, WORKFLOW_PACKAGE_DIR);
6
+ }
6
7
  function writeWorkflowStarterDocs(dirPath, docs) {
7
8
  for (const doc of docs ?? []) {
8
9
  const targetPath = join(dirPath, doc.relativePath);
@@ -10,19 +11,12 @@ function writeWorkflowStarterDocs(dirPath, docs) {
10
11
  writeFileSync(targetPath, doc.content);
11
12
  }
12
13
  }
13
- function workflowPackagePath(dirPath) {
14
- return join(dirPath, WORKFLOW_PACKAGE_DIR);
15
- }
16
- function workflowInterfacesPath(knowledgeBasePath) {
17
- return join(workflowPackagePath(knowledgeBasePath), "interfaces");
18
- }
19
- function writeWorkflowPackageJson(rootPath, targetType, workflow) {
14
+ function writeWorkflowPackageJson(rootPath, workflow) {
20
15
  writeFileSync(join(rootPath, "workflow.json"), `${JSON.stringify({
21
16
  id: workflow.id,
22
- type: targetType,
17
+ type: "workspace",
23
18
  label: workflow.label,
24
19
  hint: workflow.hint,
25
- ...(workflow.placeholder ? { placeholder: workflow.placeholder } : {}),
26
20
  stages: workflow.stages.map((stage) => ({
27
21
  id: stage.id,
28
22
  label: stage.label,
@@ -34,98 +28,113 @@ function writeWorkflowPackageJson(rootPath, targetType, workflow) {
34
28
  ...(workflow.stagePolicyNotes ? { stage_policy_notes: workflow.stagePolicyNotes } : {}),
35
29
  }, null, 2)}\n`);
36
30
  }
37
- function defaultWorkflowReadme(targetType, workflow) {
38
- const stageLines = workflow.stages.map((stage) => `- \`${stage.id}\` — ${stage.description} (${stage.contractType})`);
39
- return renderBundledTemplate("workflow-package/README.md", {
40
- workflow_label: workflow.label,
41
- target_type: targetType,
42
- workflow_id: workflow.id,
43
- workflow_hint: workflow.hint,
44
- stage_lines: stageLines,
45
- });
31
+ function renderWorkflowReadme(workflow) {
32
+ const stageLines = workflow.stages
33
+ .map((stage) => `- \`${stage.id}\` — ${stage.description} (${stage.contractType})`)
34
+ .join("\n");
35
+ return [
36
+ `# ${workflow.label}`,
37
+ "",
38
+ workflow.hint,
39
+ "",
40
+ "## Stages",
41
+ "",
42
+ stageLines,
43
+ "",
44
+ "This workflow package lives under `workflow/` and controls how Interf builds this compiled workspace.",
45
+ "",
46
+ ].join("\n");
46
47
  }
47
- function defaultWorkflowCreateSkill(targetType, workflow) {
48
- return renderBundledTemplate("workflow-package/create/SKILL.md", {
49
- target_type: targetType,
50
- workflow_id: workflow.id,
51
- workflow_hint: workflow.hint,
52
- });
48
+ function renderCreateSkill(workflow) {
49
+ return [
50
+ "# Workspace Create Notes",
51
+ "",
52
+ `Workflow: ${workflow.id}`,
53
+ "",
54
+ "This workspace uses the built-in Interf structure. Edit these notes only if you want local create-time guidance for agents or maintainers.",
55
+ "",
56
+ ].join("\n");
53
57
  }
54
- function defaultKnowledgeBaseStageSkill(workflow, stage) {
55
- const notes = workflow.stagePolicyNotes?.[stage.id] ?? [];
56
- return renderBundledTemplate("workflow-package/knowledge-base-stage/SKILL.md", {
57
- stage_label: stage.label,
58
- contract_type: stage.contractType,
59
- workflow_id: workflow.id,
60
- stage_description: stage.description,
61
- stage_notes: notes.map((note) => `- ${note}`),
62
- });
58
+ function renderQuerySkill() {
59
+ return [
60
+ "# Manual Query Loop",
61
+ "",
62
+ "Default loop:",
63
+ "1. Read `home.md` first.",
64
+ "2. Browse `knowledge/` before raw files.",
65
+ "3. Use `summaries/` for source-grounded evidence.",
66
+ "4. Inspect `.interf/source-access.json` before claiming raw verification.",
67
+ "",
68
+ "First-reply rule:",
69
+ "- on the first substantive manual question, inspect `.interf/source-access.json` immediately and open one `suggested_checks` path",
70
+ "- if the environment asks for permission, request it immediately instead of guessing",
71
+ "- the first line of the answer must be exactly `Raw access: confirmed` or `Raw access: unavailable`",
72
+ "- use `Raw access: confirmed` only after you actually open and inspect a suggested raw path from this session; a plain existence check is not enough",
73
+ "- use `Raw access: unavailable` only after a raw check fails or permission is denied",
74
+ "",
75
+ "You can edit this file to bias manual question-answering behavior for this workspace.",
76
+ "",
77
+ ].join("\n");
63
78
  }
64
- function defaultInterfaceStageSkill(workflow, stage) {
79
+ function renderStageSkill(workflow, stage) {
65
80
  const notes = workflow.stagePolicyNotes?.[stage.id] ?? [];
66
- return renderBundledTemplate("workflow-package/interface-stage/SKILL.md", {
67
- stage_label: stage.label,
68
- contract_type: stage.contractType,
69
- workflow_id: workflow.id,
70
- stage_description: stage.description,
71
- stage_notes: notes.map((note) => `- ${note}`),
72
- });
81
+ const stageSpecificNotes = stage.contractType === "workspace-file-evidence"
82
+ ? [
83
+ "Each summary must use JSON frontmatter and include `source`, `source_kind`, `evidence_tier`, `truth_mode`, `state`, and a non-empty `abstract`.",
84
+ "Include a clear abstract block in the body so a human can skim the summary quickly.",
85
+ "Do not skip the abstract just because the overview section is present.",
86
+ ]
87
+ : stage.contractType === "workspace-knowledge-structure"
88
+ ? [
89
+ "Treat the knowledge layer as retrieval structure, not final truth.",
90
+ "Prefer durable entity, claim, and index notes over one giant catch-all file.",
91
+ ]
92
+ : stage.contractType === "workspace-query-shape"
93
+ ? [
94
+ "Use the workspace focus plus saved question text to shape `home.md` and retrieval routes.",
95
+ "Do not copy expected answers into the workspace.",
96
+ ]
97
+ : [];
98
+ return [
99
+ `# ${stage.label}`,
100
+ "",
101
+ stage.description,
102
+ "",
103
+ `Contract type: \`${stage.contractType}\``,
104
+ "",
105
+ ...(stageSpecificNotes.length > 0
106
+ ? [
107
+ "## Requirements",
108
+ "",
109
+ ...stageSpecificNotes.map((note) => `- ${note}`),
110
+ "",
111
+ ]
112
+ : []),
113
+ ...(notes.length > 0
114
+ ? [
115
+ "## Notes",
116
+ "",
117
+ ...notes.map((note) => `- ${note}`),
118
+ "",
119
+ ]
120
+ : []),
121
+ ].join("\n");
73
122
  }
74
- function defaultQuerySkill(scope) {
75
- const isInterface = scope === "interface";
76
- const topPreflight = isInterface
77
- ? topInterfaceManualPreflightBlock()
78
- : topKnowledgeBaseManualPreflightBlock();
79
- if (isInterface) {
80
- return renderBundledTemplate("workflow-package/interface-query/SKILL.md", {
81
- top_preflight: topPreflight,
82
- first_reply_rule: buildManualQueryFirstReplyRule(scope),
83
- });
84
- }
85
- return renderBundledTemplate("workflow-package/knowledge-base-query/SKILL.md", {
86
- top_preflight: topPreflight,
87
- first_reply_rule: buildManualQueryFirstReplyRule(scope),
88
- });
89
- }
90
- function writeInterfaceWorkflowTemplate(targetDir, workflow) {
91
- mkdirSync(join(targetDir, "create"), { recursive: true });
92
- mkdirSync(join(targetDir, "use", "query"), { recursive: true });
93
- mkdirSync(join(targetDir, "compile", "stages"), { recursive: true });
94
- for (const stage of workflow.stages) {
95
- mkdirSync(join(targetDir, "compile", "stages", stage.skillDir), { recursive: true });
96
- }
97
- writeWorkflowPackageJson(targetDir, "interface", workflow);
98
- writeFileSync(join(targetDir, "README.md"), defaultWorkflowReadme("interface", workflow));
99
- writeFileSync(join(targetDir, "create", "SKILL.md"), defaultWorkflowCreateSkill("interface", workflow));
100
- writeFileSync(join(targetDir, "use", "query", "SKILL.md"), defaultQuerySkill("interface"));
101
- for (const stage of workflow.stages) {
102
- writeFileSync(join(targetDir, "compile", "stages", stage.skillDir, "SKILL.md"), defaultInterfaceStageSkill(workflow, stage));
103
- }
104
- writeWorkflowStarterDocs(targetDir, workflow.starterDocs);
105
- }
106
- export function writeKnowledgeBaseWorkflowPackage(knowledgeBasePath, workflow, interfaceTemplates) {
107
- const workflowDir = workflowPackagePath(knowledgeBasePath);
123
+ export function writeWorkspaceWorkflowPackage(workspacePath, workflow) {
124
+ const workflowDir = workflowPackagePath(workspacePath);
108
125
  mkdirSync(join(workflowDir, "create"), { recursive: true });
109
126
  mkdirSync(join(workflowDir, "use", "query"), { recursive: true });
110
127
  mkdirSync(join(workflowDir, "compile", "stages"), { recursive: true });
111
128
  for (const stage of workflow.stages) {
112
129
  mkdirSync(join(workflowDir, "compile", "stages", stage.skillDir), { recursive: true });
113
130
  }
114
- writeWorkflowPackageJson(workflowDir, "knowledge-base", workflow);
115
- writeFileSync(join(workflowDir, "README.md"), defaultWorkflowReadme("knowledge-base", workflow));
116
- writeFileSync(join(workflowDir, "create", "SKILL.md"), defaultWorkflowCreateSkill("knowledge-base", workflow));
117
- writeFileSync(join(workflowDir, "use", "query", "SKILL.md"), defaultQuerySkill("knowledge-base"));
131
+ writeWorkflowPackageJson(workflowDir, workflow);
132
+ writeFileSync(join(workflowDir, "README.md"), renderWorkflowReadme(workflow));
133
+ writeFileSync(join(workflowDir, "create", "SKILL.md"), renderCreateSkill(workflow));
134
+ writeFileSync(join(workflowDir, "use", "query", "SKILL.md"), renderQuerySkill());
118
135
  for (const stage of workflow.stages) {
119
- writeFileSync(join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md"), defaultKnowledgeBaseStageSkill(workflow, stage));
136
+ writeFileSync(join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md"), renderStageSkill(workflow, stage));
120
137
  }
121
138
  writeWorkflowStarterDocs(workflowDir, workflow.starterDocs);
122
- const interfacesDir = workflowInterfacesPath(knowledgeBasePath);
123
- mkdirSync(interfacesDir, { recursive: true });
124
- for (const template of interfaceTemplates) {
125
- writeInterfaceWorkflowTemplate(join(interfacesDir, template.id), template);
126
- }
127
- }
128
- export function writeInterfaceWorkflowPackage(interfacePath, workflow) {
129
- writeInterfaceWorkflowTemplate(workflowPackagePath(interfacePath), workflow);
130
139
  }
131
140
  //# sourceMappingURL=interf-workflow-package.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interf-workflow-package.js","sourceRoot":"","sources":["../../src/lib/interf-workflow-package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interf-workflow-package.js","sourceRoot":"","sources":["../../src/lib/interf-workflow-package.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- export { INTERF_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, BENCHMARK_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, readInterfConfig, detectInterf, resolveKnowledgeBase, resolveInterfaceKnowledgeBasePath, resolveKnowledgeBaseSourcePath, listKnowledgeBasesForSourceFolder, assertKnowledgeBaseContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
2
- export type { InterfConfig, ResolvedKnowledgeBase } from "./interf-detect.js";
3
- export { syncClaudeBootstrap, refreshWorkspaceBootstrapGuidance, refreshLegacyAgentsBootstrap, refreshLegacyKnowledgeBaseQuerySkill, refreshLegacyInterfaceQuerySkill, insertLineAfterFirstMatch, insertBlockBeforeFirstMatch, renderClaudeBootstrap, topKnowledgeBaseManualPreflightBlock, topInterfaceManualPreflightBlock, buildWorkspaceRuntimeControlLines, buildWorkspaceAgentLayerLines, } from "./interf-bootstrap.js";
4
- export { buildInterfaceStagePolicySection, formatWorkflowStageFolders, formatWorkflowStageSequence, writeInterfaceCompilePlanTemplate, } from "./interf-compile-plan.js";
5
- export { createKnowledgeBase, createKnowledgeBaseWithWorkflow, createInterface, createInterfaceWithWorkflow, } from "./interf-scaffold.js";
1
+ export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, BENCHMARK_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
2
+ export type { InterfConfig, ResolvedWorkspace } from "./interf-detect.js";
3
+ export { syncClaudeBootstrap, refreshWorkspaceBootstrapGuidance, refreshLegacyAgentsBootstrap, insertLineAfterFirstMatch, insertBlockBeforeFirstMatch, renderClaudeBootstrap, buildWorkspaceRuntimeControlLines, buildWorkspaceAgentLayerLines, } from "./interf-bootstrap.js";
4
+ export { createWorkspace, defaultWorkspaceNameForSource, } from "./interf-scaffold.js";
6
5
  //# sourceMappingURL=interf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interf.d.ts","sourceRoot":"","sources":["../../src/lib/interf.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,oCAAoC,EACpC,gCAAgC,EAChC,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,oCAAoC,EACpC,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,eAAe,EACf,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"interf.d.ts","sourceRoot":"","sources":["../../src/lib/interf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC"}
@@ -1,7 +1,4 @@
1
- // Barrel re-exports from the three focused sub-modules.
2
- // Every symbol previously exported from this file is still importable here.
3
- export { INTERF_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, BENCHMARK_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, readInterfConfig, detectInterf, resolveKnowledgeBase, resolveInterfaceKnowledgeBasePath, resolveKnowledgeBaseSourcePath, listKnowledgeBasesForSourceFolder, assertKnowledgeBaseContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
4
- export { syncClaudeBootstrap, refreshWorkspaceBootstrapGuidance, refreshLegacyAgentsBootstrap, refreshLegacyKnowledgeBaseQuerySkill, refreshLegacyInterfaceQuerySkill, insertLineAfterFirstMatch, insertBlockBeforeFirstMatch, renderClaudeBootstrap, topKnowledgeBaseManualPreflightBlock, topInterfaceManualPreflightBlock, buildWorkspaceRuntimeControlLines, buildWorkspaceAgentLayerLines, } from "./interf-bootstrap.js";
5
- export { buildInterfaceStagePolicySection, formatWorkflowStageFolders, formatWorkflowStageSequence, writeInterfaceCompilePlanTemplate, } from "./interf-compile-plan.js";
6
- export { createKnowledgeBase, createKnowledgeBaseWithWorkflow, createInterface, createInterfaceWithWorkflow, } from "./interf-scaffold.js";
1
+ export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, BENCHMARK_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
2
+ export { syncClaudeBootstrap, refreshWorkspaceBootstrapGuidance, refreshLegacyAgentsBootstrap, insertLineAfterFirstMatch, insertBlockBeforeFirstMatch, renderClaudeBootstrap, buildWorkspaceRuntimeControlLines, buildWorkspaceAgentLayerLines, } from "./interf-bootstrap.js";
3
+ export { createWorkspace, defaultWorkspaceNameForSource, } from "./interf-scaffold.js";
7
4
  //# sourceMappingURL=interf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interf.js","sourceRoot":"","sources":["../../src/lib/interf.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,4EAA4E;AAE5E,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,iCAAiC,EACjC,8BAA8B,EAC9B,iCAAiC,EACjC,4BAA4B,EAC5B,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,oCAAoC,EACpC,gCAAgC,EAChC,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,oCAAoC,EACpC,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,eAAe,EACf,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"interf.js","sourceRoot":"","sources":["../../src/lib/interf.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,6BAA6B,EAC7B,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,EACrB,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,eAAe,EACf,6BAA6B,GAC9B,MAAM,sBAAsB,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { z } from "zod";
2
2
  import { RuntimeContractTypeSchema, RuntimeStageAcceptanceSchema } from "./schema.js";
3
- export type WorkflowTargetType = "knowledge-base" | "interface";
4
3
  export interface LocalWorkflowStarterDoc {
5
4
  relativePath: string;
6
5
  content: string;
@@ -15,21 +14,20 @@ export interface LocalWorkflowStageDefinition {
15
14
  }
16
15
  export interface LocalWorkflowDefinition {
17
16
  id: string;
18
- type: WorkflowTargetType;
17
+ type: "workspace";
19
18
  label: string;
20
19
  hint: string;
21
20
  extends?: string;
22
- placeholder?: string;
23
21
  stages?: LocalWorkflowStageDefinition[];
24
22
  stage_policy_notes?: Record<string, string[]>;
25
23
  starter_docs: LocalWorkflowStarterDoc[];
26
24
  directoryPath: string;
27
25
  workflowPath: string;
28
26
  }
29
- export declare function workflowDefinitionPath(sourcePath: string, type: WorkflowTargetType, id: string): string;
30
- export declare function loadWorkflowDefinitionFromDir(dirPath: string, type: WorkflowTargetType): LocalWorkflowDefinition | null;
31
- export declare function listLocalWorkflowDefinitions(sourcePath: string, type: WorkflowTargetType): LocalWorkflowDefinition[];
32
- export declare function loadLocalWorkflowDefinition(sourcePath: string, type: WorkflowTargetType, id: string): LocalWorkflowDefinition | null;
27
+ export declare function workflowDefinitionPath(sourcePath: string, id: string): string;
28
+ export declare function loadWorkflowDefinitionFromDir(dirPath: string): LocalWorkflowDefinition | null;
29
+ export declare function listLocalWorkflowDefinitions(sourcePath: string): LocalWorkflowDefinition[];
30
+ export declare function loadLocalWorkflowDefinition(sourcePath: string, id: string): LocalWorkflowDefinition | null;
33
31
  export declare function isWorkflowId(value: string): boolean;
34
32
  export interface WorkflowValidationResult {
35
33
  ok: boolean;
@@ -38,5 +36,8 @@ export interface WorkflowValidationResult {
38
36
  counts: Record<string, number>;
39
37
  }
40
38
  export declare function validateWorkflowPackage(dirPath: string): WorkflowValidationResult;
41
- export declare function writeLocalWorkflowDefinition(sourcePath: string, definition: Omit<LocalWorkflowDefinition, "directoryPath" | "workflowPath">): string;
39
+ export declare function writeLocalWorkflowDefinition(sourcePath: string, id: string, workflowJson: Record<string, unknown>, docs: Array<{
40
+ relativePath: string;
41
+ content: string;
42
+ }>): string;
42
43
  //# sourceMappingURL=local-workflows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-workflows.d.ts","sourceRoot":"","sources":["../../src/lib/local-workflows.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAE7B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AA6CD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,GACT,MAAM,CAER;AAwBD,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GACvB,uBAAuB,GAAG,IAAI,CAyBhC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,kBAAkB,GACvB,uBAAuB,EAAE,CAgB3B;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,kBAAkB,EACxB,EAAE,EAAE,MAAM,GACT,uBAAuB,GAAG,IAAI,CAEhC;AAaD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CAqFjF;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,IAAI,CAAC,uBAAuB,EAAE,eAAe,GAAG,cAAc,CAAC,GAC1E,MAAM,CA4BR"}
1
+ {"version":3,"file":"local-workflows.d.ts","sourceRoot":"","sources":["../../src/lib/local-workflows.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAE7B,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAyCD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,MAAM,CAER;AAYD,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,GACd,uBAAuB,GAAG,IAAI,CAyBhC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,GACjB,uBAAuB,EAAE,CAgB3B;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,uBAAuB,GAAG,IAAI,CAEhC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CAyEjF;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACrD,MAAM,CAUR"}
@@ -16,23 +16,24 @@ const LocalWorkflowStageDefinitionSchema = z.object({
16
16
  });
17
17
  const LocalWorkflowDefinitionSchema = z.object({
18
18
  id: z.string().regex(WorkflowIdPattern),
19
- type: z.enum(["knowledge-base", "interface"]),
19
+ type: z.literal("workspace"),
20
20
  label: z.string().min(1),
21
21
  hint: z.string().min(1),
22
22
  extends: z.string().regex(WorkflowIdPattern).optional(),
23
- placeholder: z.string().min(1).optional(),
24
23
  stages: z.array(LocalWorkflowStageDefinitionSchema).min(1).optional(),
25
24
  stage_policy_notes: z.record(z.string(), z.array(z.string())).optional(),
26
25
  }).superRefine((value, ctx) => {
27
- const allowed = value.type === "knowledge-base"
28
- ? new Set(["kb-file-evidence", "kb-knowledge-layer"])
29
- : new Set(["interface-retrieval", "interface-analysis", "interface-output"]);
26
+ const allowed = new Set([
27
+ "workspace-file-evidence",
28
+ "workspace-knowledge-structure",
29
+ "workspace-query-shape",
30
+ ]);
30
31
  for (const [index, stage] of (value.stages ?? []).entries()) {
31
32
  if (!allowed.has(stage.contract_type)) {
32
33
  ctx.addIssue({
33
34
  code: z.ZodIssueCode.custom,
34
35
  path: ["stages", index, "contract_type"],
35
- message: `contract_type "${stage.contract_type}" is not valid for ${value.type}`,
36
+ message: `contract_type "${stage.contract_type}" is not valid for workspace workflows`,
36
37
  });
37
38
  }
38
39
  }
@@ -40,29 +41,19 @@ const LocalWorkflowDefinitionSchema = z.object({
40
41
  function workflowRootPath(sourcePath) {
41
42
  return join(sourcePath, "interf", "workflows");
42
43
  }
43
- function workflowTypePath(sourcePath, type) {
44
- return join(workflowRootPath(sourcePath), type);
45
- }
46
- export function workflowDefinitionPath(sourcePath, type, id) {
47
- return join(workflowTypePath(sourcePath, type), id);
48
- }
49
- function workflowJsonPath(sourcePath, type, id) {
50
- return join(workflowDefinitionPath(sourcePath, type, id), "workflow.json");
44
+ export function workflowDefinitionPath(sourcePath, id) {
45
+ return join(workflowRootPath(sourcePath), id);
51
46
  }
52
47
  function collectStarterDocs(dirPath) {
53
48
  return listFilesRecursive(dirPath, isMarkdownFile)
54
49
  .filter((filePath) => relative(dirPath, filePath).replaceAll("\\", "/") !== "workflow.json")
55
- .filter((filePath) => {
56
- const relativePath = relative(dirPath, filePath).replaceAll("\\", "/");
57
- return !relativePath.startsWith("interfaces/");
58
- })
59
50
  .map((filePath) => ({
60
51
  relativePath: relative(dirPath, filePath).replaceAll("\\", "/"),
61
52
  content: readFileSync(filePath, "utf8"),
62
53
  }))
63
54
  .sort((a, b) => a.relativePath.localeCompare(b.relativePath));
64
55
  }
65
- export function loadWorkflowDefinitionFromDir(dirPath, type) {
56
+ export function loadWorkflowDefinitionFromDir(dirPath) {
66
57
  const workflowPath = existsSync(join(dirPath, "workflow.json"))
67
58
  ? join(dirPath, "workflow.json")
68
59
  : null;
@@ -71,8 +62,8 @@ export function loadWorkflowDefinitionFromDir(dirPath, type) {
71
62
  const definition = readJsonFileWithSchema(workflowPath, "local workflow definition", LocalWorkflowDefinitionSchema);
72
63
  if (!definition)
73
64
  return null;
74
- if (definition.type !== type) {
75
- warnInterf(`Warning: local workflow definition at ${workflowPath} has type "${definition.type}", expected "${type}".`);
65
+ if (definition.type !== "workspace") {
66
+ warnInterf(`Warning: local workflow definition at ${workflowPath} has unexpected type "${definition.type}".`);
76
67
  return null;
77
68
  }
78
69
  return {
@@ -82,8 +73,8 @@ export function loadWorkflowDefinitionFromDir(dirPath, type) {
82
73
  workflowPath,
83
74
  };
84
75
  }
85
- export function listLocalWorkflowDefinitions(sourcePath, type) {
86
- const root = workflowTypePath(sourcePath, type);
76
+ export function listLocalWorkflowDefinitions(sourcePath) {
77
+ const root = workflowRootPath(sourcePath);
87
78
  if (!existsSync(root))
88
79
  return [];
89
80
  return readdirSync(root)
@@ -96,23 +87,12 @@ export function listLocalWorkflowDefinitions(sourcePath, type) {
96
87
  return false;
97
88
  }
98
89
  })
99
- .map((entryPath) => loadWorkflowDefinitionFromDir(entryPath, type))
90
+ .map((entryPath) => loadWorkflowDefinitionFromDir(entryPath))
100
91
  .filter((definition) => definition !== null)
101
92
  .sort((a, b) => a.label.localeCompare(b.label));
102
93
  }
103
- export function loadLocalWorkflowDefinition(sourcePath, type, id) {
104
- return loadWorkflowDefinitionFromDir(workflowDefinitionPath(sourcePath, type, id), type);
105
- }
106
- function assertEmptyWorkflowDir(dirPath) {
107
- if (!existsSync(dirPath))
108
- return;
109
- const stat = statSync(dirPath);
110
- if (!stat.isDirectory()) {
111
- throw new Error(`Workflow target exists and is not a directory: ${dirPath}`);
112
- }
113
- if (readdirSync(dirPath).length > 0) {
114
- throw new Error(`Workflow target already exists and is not empty: ${dirPath}`);
115
- }
94
+ export function loadLocalWorkflowDefinition(sourcePath, id) {
95
+ return loadWorkflowDefinitionFromDir(workflowDefinitionPath(sourcePath, id));
116
96
  }
117
97
  export function isWorkflowId(value) {
118
98
  return WorkflowIdPattern.test(value);
@@ -123,7 +103,7 @@ export function validateWorkflowPackage(dirPath) {
123
103
  return {
124
104
  ok: false,
125
105
  summary: `No workflow.json found at ${dirPath}`,
126
- errors: [`Missing workflow.json`],
106
+ errors: ["Missing workflow.json"],
127
107
  counts: {},
128
108
  };
129
109
  }
@@ -132,7 +112,7 @@ export function validateWorkflowPackage(dirPath) {
132
112
  return {
133
113
  ok: false,
134
114
  summary: `Failed to parse workflow.json at ${workflowPath}`,
135
- errors: [`Invalid JSON in workflow.json`],
115
+ errors: ["Invalid JSON in workflow.json"],
136
116
  counts: {},
137
117
  };
138
118
  }
@@ -149,70 +129,54 @@ export function validateWorkflowPackage(dirPath) {
149
129
  const def = parsed.data;
150
130
  const errors = [];
151
131
  if (def.stages && def.stages.length > 0) {
152
- const allowed = def.type === "knowledge-base"
153
- ? new Set(["kb-file-evidence", "kb-knowledge-layer"])
154
- : new Set(["interface-retrieval", "interface-analysis", "interface-output"]);
155
- for (const stage of def.stages) {
156
- if (!allowed.has(stage.contract_type)) {
157
- errors.push(`Stage "${stage.id}" uses contract_type "${stage.contract_type}" which is not valid for ${def.type} workflows`);
158
- }
132
+ const order = new Map([
133
+ ["workspace-file-evidence", 0],
134
+ ["workspace-knowledge-structure", 1],
135
+ ["workspace-query-shape", 2],
136
+ ]);
137
+ const contractTypes = def.stages.map((stage) => stage.contract_type);
138
+ if (def.stages.length < 3) {
139
+ errors.push("Workspace workflows must include summarize, structure, and shape stages in order.");
140
+ }
141
+ else if (!contractTypes.every((contractType, index) => index === 0 || (order.get(contractType) ?? -1) >= (order.get(contractTypes[index - 1]) ?? -1))) {
142
+ errors.push("Workspace workflow stages must keep non-decreasing order: file-evidence -> knowledge-structure -> query-shape.");
159
143
  }
160
- if (def.type === "knowledge-base") {
161
- const types = def.stages.map((s) => s.contract_type);
162
- const firstKnowledge = types.findIndex((t) => t === "kb-knowledge-layer");
163
- if (firstKnowledge <= 0) {
164
- errors.push(`KB workflows must have at least one kb-file-evidence stage followed by at least one kb-knowledge-layer stage`);
144
+ else {
145
+ if (!contractTypes.includes("workspace-file-evidence")) {
146
+ errors.push("Workspace workflows must include at least one workspace-file-evidence stage.");
165
147
  }
166
- else if (!types.slice(0, firstKnowledge).every((t) => t === "kb-file-evidence")) {
167
- errors.push(`All stages before the first kb-knowledge-layer must be kb-file-evidence`);
148
+ if (!contractTypes.includes("workspace-knowledge-structure")) {
149
+ errors.push("Workspace workflows must include at least one workspace-knowledge-structure stage.");
168
150
  }
169
- }
170
- if (def.type === "interface") {
171
- const types = def.stages.map((s) => s.contract_type);
172
- const firstAnalysis = types.findIndex((t) => t === "interface-analysis");
173
- const firstOutput = types.findIndex((t) => t === "interface-output");
174
- if (firstAnalysis <= 0 || firstOutput <= firstAnalysis) {
175
- errors.push(`Interface workflows must have retrieval stages, then analysis stages, then output stages`);
151
+ if (!contractTypes.includes("workspace-query-shape")) {
152
+ errors.push("Workspace workflows must include at least one workspace-query-shape stage.");
176
153
  }
177
154
  }
178
155
  }
179
- const stageCount = def.stages?.length ?? 0;
180
- const starterDocs = listFilesRecursive(dirPath, isMarkdownFile).length;
181
- if (errors.length > 0) {
182
- return {
183
- ok: false,
184
- summary: `Workflow "${def.id}" has ${errors.length} issue(s)`,
185
- errors,
186
- counts: { stages: stageCount, docs: starterDocs },
187
- };
188
- }
156
+ const stageDirs = listFilesRecursive(join(dirPath, "compile", "stages"), (filePath) => basename(filePath) === "SKILL.md");
157
+ const counts = {
158
+ starter_docs: collectStarterDocs(dirPath).length,
159
+ compile_stage_docs: stageDirs.length,
160
+ };
189
161
  return {
190
- ok: true,
191
- summary: `Workflow "${def.id}" (${def.type}) is valid: ${stageCount} stage(s), ${starterDocs} doc(s)`,
192
- errors: [],
193
- counts: { stages: stageCount, docs: starterDocs },
162
+ ok: errors.length === 0,
163
+ summary: errors.length === 0 ? "Workflow package is valid." : `Workflow package has ${errors.length} issue(s).`,
164
+ errors,
165
+ counts,
194
166
  };
195
167
  }
196
- export function writeLocalWorkflowDefinition(sourcePath, definition) {
197
- const dirPath = workflowDefinitionPath(sourcePath, definition.type, definition.id);
198
- assertEmptyWorkflowDir(dirPath);
199
- mkdirSync(dirPath, { recursive: true });
200
- const workflowJson = {
201
- id: definition.id,
202
- type: definition.type,
203
- label: definition.label,
204
- hint: definition.hint,
205
- ...(definition.extends ? { extends: definition.extends } : {}),
206
- ...(definition.placeholder ? { placeholder: definition.placeholder } : {}),
207
- ...(definition.stages ? { stages: definition.stages } : {}),
208
- ...(definition.stage_policy_notes ? { stage_policy_notes: definition.stage_policy_notes } : {}),
209
- };
210
- writeFileSync(workflowJsonPath(sourcePath, definition.type, definition.id), `${JSON.stringify(workflowJson, null, 2)}\n`);
211
- for (const doc of definition.starter_docs) {
212
- const targetPath = join(dirPath, doc.relativePath);
168
+ export function writeLocalWorkflowDefinition(sourcePath, id, workflowJson, docs) {
169
+ const root = workflowDefinitionPath(sourcePath, id);
170
+ mkdirSync(root, { recursive: true });
171
+ writeFileSync(join(root, "workflow.json"), JSON.stringify(workflowJson, null, 2) + "\n");
172
+ for (const doc of docs) {
173
+ const targetPath = join(root, doc.relativePath);
213
174
  mkdirSync(dirname(targetPath), { recursive: true });
214
175
  writeFileSync(targetPath, doc.content);
215
176
  }
216
- return dirPath;
177
+ return root;
178
+ }
179
+ function basename(filePath) {
180
+ return filePath.split(/[\\/]/).pop() ?? filePath;
217
181
  }
218
182
  //# sourceMappingURL=local-workflows.js.map