@interf/compiler 0.2.4 → 0.3.0

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 (240) hide show
  1. package/README.md +194 -148
  2. package/dist/commands/benchmark.d.ts.map +1 -1
  3. package/dist/commands/benchmark.js +60 -351
  4. package/dist/commands/benchmark.js.map +1 -1
  5. package/dist/commands/compile.d.ts.map +1 -1
  6. package/dist/commands/compile.js +43 -110
  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 +29 -214
  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 +72 -455
  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 +16 -28
  18. package/dist/commands/default.js.map +1 -1
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +71 -337
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/list.d.ts.map +1 -1
  23. package/dist/commands/list.js +12 -22
  24. package/dist/commands/list.js.map +1 -1
  25. package/dist/commands/reset.d.ts.map +1 -1
  26. package/dist/commands/reset.js +27 -124
  27. package/dist/commands/reset.js.map +1 -1
  28. package/dist/commands/source-config-wizard.d.ts +13 -6
  29. package/dist/commands/source-config-wizard.d.ts.map +1 -1
  30. package/dist/commands/source-config-wizard.js +93 -59
  31. package/dist/commands/source-config-wizard.js.map +1 -1
  32. package/dist/commands/status.d.ts.map +1 -1
  33. package/dist/commands/status.js +60 -56
  34. package/dist/commands/status.js.map +1 -1
  35. package/dist/commands/verify.d.ts.map +1 -1
  36. package/dist/commands/verify.js +59 -98
  37. package/dist/commands/verify.js.map +1 -1
  38. package/dist/index.d.ts +7 -7
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/agent-constants.js +1 -1
  43. package/dist/lib/agent-constants.js.map +1 -1
  44. package/dist/lib/benchmark-execution.d.ts.map +1 -1
  45. package/dist/lib/benchmark-execution.js +7 -16
  46. package/dist/lib/benchmark-execution.js.map +1 -1
  47. package/dist/lib/benchmark-targets.d.ts +3 -4
  48. package/dist/lib/benchmark-targets.d.ts.map +1 -1
  49. package/dist/lib/benchmark-targets.js +9 -55
  50. package/dist/lib/benchmark-targets.js.map +1 -1
  51. package/dist/lib/benchmark-types.d.ts +2 -3
  52. package/dist/lib/benchmark-types.d.ts.map +1 -1
  53. package/dist/lib/benchmark.d.ts +1 -1
  54. package/dist/lib/benchmark.d.ts.map +1 -1
  55. package/dist/lib/benchmark.js +1 -1
  56. package/dist/lib/benchmark.js.map +1 -1
  57. package/dist/lib/config.d.ts +1 -2
  58. package/dist/lib/config.d.ts.map +1 -1
  59. package/dist/lib/config.js +2 -4
  60. package/dist/lib/config.js.map +1 -1
  61. package/dist/lib/discovery.d.ts +1 -1
  62. package/dist/lib/discovery.d.ts.map +1 -1
  63. package/dist/lib/discovery.js +7 -2
  64. package/dist/lib/discovery.js.map +1 -1
  65. package/dist/lib/eval-packs.d.ts +6 -52
  66. package/dist/lib/eval-packs.d.ts.map +1 -1
  67. package/dist/lib/eval-packs.js +11 -39
  68. package/dist/lib/eval-packs.js.map +1 -1
  69. package/dist/lib/interf-bootstrap.d.ts +3 -5
  70. package/dist/lib/interf-bootstrap.d.ts.map +1 -1
  71. package/dist/lib/interf-bootstrap.js +10 -57
  72. package/dist/lib/interf-bootstrap.js.map +1 -1
  73. package/dist/lib/interf-detect.d.ts +13 -11
  74. package/dist/lib/interf-detect.d.ts.map +1 -1
  75. package/dist/lib/interf-detect.js +59 -45
  76. package/dist/lib/interf-detect.js.map +1 -1
  77. package/dist/lib/interf-scaffold.d.ts +2 -5
  78. package/dist/lib/interf-scaffold.d.ts.map +1 -1
  79. package/dist/lib/interf-scaffold.js +98 -235
  80. package/dist/lib/interf-scaffold.js.map +1 -1
  81. package/dist/lib/interf-workflow-package.d.ts +1 -2
  82. package/dist/lib/interf-workflow-package.d.ts.map +1 -1
  83. package/dist/lib/interf-workflow-package.js +94 -90
  84. package/dist/lib/interf-workflow-package.js.map +1 -1
  85. package/dist/lib/interf.d.ts +4 -5
  86. package/dist/lib/interf.d.ts.map +1 -1
  87. package/dist/lib/interf.js +3 -6
  88. package/dist/lib/interf.js.map +1 -1
  89. package/dist/lib/local-workflows.d.ts +9 -8
  90. package/dist/lib/local-workflows.d.ts.map +1 -1
  91. package/dist/lib/local-workflows.js +42 -94
  92. package/dist/lib/local-workflows.js.map +1 -1
  93. package/dist/lib/obsidian.d.ts +1 -5
  94. package/dist/lib/obsidian.d.ts.map +1 -1
  95. package/dist/lib/obsidian.js +11 -165
  96. package/dist/lib/obsidian.js.map +1 -1
  97. package/dist/lib/registry.d.ts +6 -17
  98. package/dist/lib/registry.d.ts.map +1 -1
  99. package/dist/lib/registry.js +36 -50
  100. package/dist/lib/registry.js.map +1 -1
  101. package/dist/lib/runtime-contracts.d.ts +2 -3
  102. package/dist/lib/runtime-contracts.d.ts.map +1 -1
  103. package/dist/lib/runtime-contracts.js +10 -9
  104. package/dist/lib/runtime-contracts.js.map +1 -1
  105. package/dist/lib/runtime-reconcile.d.ts +2 -5
  106. package/dist/lib/runtime-reconcile.d.ts.map +1 -1
  107. package/dist/lib/runtime-reconcile.js +23 -176
  108. package/dist/lib/runtime-reconcile.js.map +1 -1
  109. package/dist/lib/runtime-runs.d.ts.map +1 -1
  110. package/dist/lib/runtime-runs.js +52 -57
  111. package/dist/lib/runtime-runs.js.map +1 -1
  112. package/dist/lib/runtime-types.d.ts +5 -6
  113. package/dist/lib/runtime-types.d.ts.map +1 -1
  114. package/dist/lib/runtime.d.ts +2 -2
  115. package/dist/lib/runtime.d.ts.map +1 -1
  116. package/dist/lib/runtime.js +1 -1
  117. package/dist/lib/runtime.js.map +1 -1
  118. package/dist/lib/schema.d.ts +53 -312
  119. package/dist/lib/schema.d.ts.map +1 -1
  120. package/dist/lib/schema.js +39 -206
  121. package/dist/lib/schema.js.map +1 -1
  122. package/dist/lib/source-config.d.ts +7 -7
  123. package/dist/lib/source-config.d.ts.map +1 -1
  124. package/dist/lib/source-config.js +55 -62
  125. package/dist/lib/source-config.js.map +1 -1
  126. package/dist/lib/state-artifacts.d.ts +5 -11
  127. package/dist/lib/state-artifacts.d.ts.map +1 -1
  128. package/dist/lib/state-artifacts.js +8 -18
  129. package/dist/lib/state-artifacts.js.map +1 -1
  130. package/dist/lib/state-health.d.ts +4 -8
  131. package/dist/lib/state-health.d.ts.map +1 -1
  132. package/dist/lib/state-health.js +27 -223
  133. package/dist/lib/state-health.js.map +1 -1
  134. package/dist/lib/state-io.d.ts +7 -12
  135. package/dist/lib/state-io.d.ts.map +1 -1
  136. package/dist/lib/state-io.js +26 -93
  137. package/dist/lib/state-io.js.map +1 -1
  138. package/dist/lib/state-view.d.ts +4 -6
  139. package/dist/lib/state-view.d.ts.map +1 -1
  140. package/dist/lib/state-view.js +62 -101
  141. package/dist/lib/state-view.js.map +1 -1
  142. package/dist/lib/state.d.ts +5 -5
  143. package/dist/lib/state.d.ts.map +1 -1
  144. package/dist/lib/state.js +4 -4
  145. package/dist/lib/state.js.map +1 -1
  146. package/dist/lib/summarize-plan.d.ts +2 -2
  147. package/dist/lib/summarize-plan.d.ts.map +1 -1
  148. package/dist/lib/summarize-plan.js +13 -13
  149. package/dist/lib/summarize-plan.js.map +1 -1
  150. package/dist/lib/{validate-kb.d.ts → validate-workspace.d.ts} +8 -8
  151. package/dist/lib/validate-workspace.d.ts.map +1 -0
  152. package/dist/lib/{validate-kb.js → validate-workspace.js} +44 -46
  153. package/dist/lib/validate-workspace.js.map +1 -0
  154. package/dist/lib/validate.d.ts +5 -7
  155. package/dist/lib/validate.d.ts.map +1 -1
  156. package/dist/lib/validate.js +6 -19
  157. package/dist/lib/validate.js.map +1 -1
  158. package/dist/lib/workflow-definitions.d.ts +14 -50
  159. package/dist/lib/workflow-definitions.d.ts.map +1 -1
  160. package/dist/lib/workflow-definitions.js +74 -349
  161. package/dist/lib/workflow-definitions.js.map +1 -1
  162. package/dist/lib/workflow-helpers.d.ts +3 -4
  163. package/dist/lib/workflow-helpers.d.ts.map +1 -1
  164. package/dist/lib/workflow-helpers.js +15 -49
  165. package/dist/lib/workflow-helpers.js.map +1 -1
  166. package/dist/lib/workflow-stage-runner.d.ts +1 -2
  167. package/dist/lib/workflow-stage-runner.d.ts.map +1 -1
  168. package/dist/lib/workflow-stage-runner.js +4 -6
  169. package/dist/lib/workflow-stage-runner.js.map +1 -1
  170. package/dist/lib/workflow-starter-docs.d.ts +3 -5
  171. package/dist/lib/workflow-starter-docs.d.ts.map +1 -1
  172. package/dist/lib/workflow-starter-docs.js +2 -17
  173. package/dist/lib/workflow-starter-docs.js.map +1 -1
  174. package/dist/lib/workflows.d.ts +9 -14
  175. package/dist/lib/workflows.d.ts.map +1 -1
  176. package/dist/lib/workflows.js +13 -30
  177. package/dist/lib/workflows.js.map +1 -1
  178. package/dist/lib/workspace-compile.d.ts +50 -0
  179. package/dist/lib/workspace-compile.d.ts.map +1 -0
  180. package/dist/lib/{workflows-kb.js → workspace-compile.js} +81 -89
  181. package/dist/lib/workspace-compile.js.map +1 -0
  182. package/package.json +9 -9
  183. package/skills/benchmark/SKILL.md +16 -24
  184. package/skills/workflow/create/SKILL.md +7 -14
  185. package/templates/workspace/README.md +23 -0
  186. package/templates/workspace/interfignore +2 -0
  187. package/dist/lib/bundled-templates.d.ts +0 -5
  188. package/dist/lib/bundled-templates.d.ts.map +0 -1
  189. package/dist/lib/bundled-templates.js +0 -23
  190. package/dist/lib/bundled-templates.js.map +0 -1
  191. package/dist/lib/interf-compile-plan.d.ts +0 -12
  192. package/dist/lib/interf-compile-plan.d.ts.map +0 -1
  193. package/dist/lib/interf-compile-plan.js +0 -143
  194. package/dist/lib/interf-compile-plan.js.map +0 -1
  195. package/dist/lib/validate-interface.d.ts +0 -79
  196. package/dist/lib/validate-interface.d.ts.map +0 -1
  197. package/dist/lib/validate-interface.js +0 -535
  198. package/dist/lib/validate-interface.js.map +0 -1
  199. package/dist/lib/validate-kb.d.ts.map +0 -1
  200. package/dist/lib/validate-kb.js.map +0 -1
  201. package/dist/lib/workflows-interface-contracts.d.ts +0 -24
  202. package/dist/lib/workflows-interface-contracts.d.ts.map +0 -1
  203. package/dist/lib/workflows-interface-contracts.js +0 -304
  204. package/dist/lib/workflows-interface-contracts.js.map +0 -1
  205. package/dist/lib/workflows-interface.d.ts +0 -72
  206. package/dist/lib/workflows-interface.d.ts.map +0 -1
  207. package/dist/lib/workflows-interface.js +0 -377
  208. package/dist/lib/workflows-interface.js.map +0 -1
  209. package/dist/lib/workflows-kb.d.ts +0 -50
  210. package/dist/lib/workflows-kb.d.ts.map +0 -1
  211. package/dist/lib/workflows-kb.js.map +0 -1
  212. package/skills/interface/analyze/SKILL.md +0 -191
  213. package/skills/interface/compile/SKILL.md +0 -152
  214. package/skills/interface/compile/references/output-format.md +0 -48
  215. package/skills/interface/create/SKILL.md +0 -87
  216. package/skills/interface/create/references/compile-plan-format.md +0 -109
  217. package/skills/interface/create/references/workflows.md +0 -35
  218. package/skills/interface/query/SKILL.md +0 -48
  219. package/skills/interface/retrieve/SKILL.md +0 -133
  220. package/skills/knowledge-base/compile/SKILL.md +0 -196
  221. package/skills/knowledge-base/compile/references/output-format.md +0 -48
  222. package/skills/knowledge-base/compile/references/stage-claims.md +0 -60
  223. package/skills/knowledge-base/compile/references/stage-entities.md +0 -46
  224. package/skills/knowledge-base/query/SKILL.md +0 -45
  225. package/skills/knowledge-base/summarize/SKILL.md +0 -152
  226. package/templates/interface/README.md +0 -159
  227. package/templates/interface/interfaces.md +0 -102
  228. package/templates/knowledge-base/README.md +0 -137
  229. package/templates/knowledge-base/interfignore +0 -19
  230. package/templates/knowledge-base/registry.md +0 -118
  231. package/templates/workflow-package/README.md +0 -16
  232. package/templates/workflow-package/create/SKILL.md +0 -8
  233. package/templates/workflow-package/interface-query/SKILL.md +0 -29
  234. package/templates/workflow-package/interface-stage/SKILL.md +0 -13
  235. package/templates/workflow-package/knowledge-base-query/SKILL.md +0 -36
  236. package/templates/workflow-package/knowledge-base-stage/SKILL.md +0 -13
  237. package/templates/workflow-starters/interface/interf/README.md +0 -13
  238. package/templates/workflow-starters/interface/interf/create/SKILL.md +0 -15
  239. package/templates/workflow-starters/knowledge-base/interf/README.md +0 -13
  240. package/templates/workflow-starters/knowledge-base/karpathy/README.md +0 -13
@@ -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,108 @@ 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-layer"
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
+ : [];
93
+ return [
94
+ `# ${stage.label}`,
95
+ "",
96
+ stage.description,
97
+ "",
98
+ `Contract type: \`${stage.contractType}\``,
99
+ "",
100
+ ...(stageSpecificNotes.length > 0
101
+ ? [
102
+ "## Requirements",
103
+ "",
104
+ ...stageSpecificNotes.map((note) => `- ${note}`),
105
+ "",
106
+ ]
107
+ : []),
108
+ ...(notes.length > 0
109
+ ? [
110
+ "## Notes",
111
+ "",
112
+ ...notes.map((note) => `- ${note}`),
113
+ "",
114
+ ]
115
+ : []),
116
+ ].join("\n");
73
117
  }
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);
118
+ export function writeWorkspaceWorkflowPackage(workspacePath, workflow) {
119
+ const workflowDir = workflowPackagePath(workspacePath);
108
120
  mkdirSync(join(workflowDir, "create"), { recursive: true });
109
121
  mkdirSync(join(workflowDir, "use", "query"), { recursive: true });
110
122
  mkdirSync(join(workflowDir, "compile", "stages"), { recursive: true });
111
123
  for (const stage of workflow.stages) {
112
124
  mkdirSync(join(workflowDir, "compile", "stages", stage.skillDir), { recursive: true });
113
125
  }
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"));
126
+ writeWorkflowPackageJson(workflowDir, workflow);
127
+ writeFileSync(join(workflowDir, "README.md"), renderWorkflowReadme(workflow));
128
+ writeFileSync(join(workflowDir, "create", "SKILL.md"), renderCreateSkill(workflow));
129
+ writeFileSync(join(workflowDir, "use", "query", "SKILL.md"), renderQuerySkill());
118
130
  for (const stage of workflow.stages) {
119
- writeFileSync(join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md"), defaultKnowledgeBaseStageSkill(workflow, stage));
131
+ writeFileSync(join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md"), renderStageSkill(workflow, stage));
120
132
  }
121
133
  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
134
  }
131
135
  //# 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;AAqCD,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,CA2DjF;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,20 @@ 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(["workspace-file-evidence", "workspace-knowledge-layer"]);
30
27
  for (const [index, stage] of (value.stages ?? []).entries()) {
31
28
  if (!allowed.has(stage.contract_type)) {
32
29
  ctx.addIssue({
33
30
  code: z.ZodIssueCode.custom,
34
31
  path: ["stages", index, "contract_type"],
35
- message: `contract_type "${stage.contract_type}" is not valid for ${value.type}`,
32
+ message: `contract_type "${stage.contract_type}" is not valid for workspace workflows`,
36
33
  });
37
34
  }
38
35
  }
@@ -40,29 +37,19 @@ const LocalWorkflowDefinitionSchema = z.object({
40
37
  function workflowRootPath(sourcePath) {
41
38
  return join(sourcePath, "interf", "workflows");
42
39
  }
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");
40
+ export function workflowDefinitionPath(sourcePath, id) {
41
+ return join(workflowRootPath(sourcePath), id);
51
42
  }
52
43
  function collectStarterDocs(dirPath) {
53
44
  return listFilesRecursive(dirPath, isMarkdownFile)
54
45
  .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
46
  .map((filePath) => ({
60
47
  relativePath: relative(dirPath, filePath).replaceAll("\\", "/"),
61
48
  content: readFileSync(filePath, "utf8"),
62
49
  }))
63
50
  .sort((a, b) => a.relativePath.localeCompare(b.relativePath));
64
51
  }
65
- export function loadWorkflowDefinitionFromDir(dirPath, type) {
52
+ export function loadWorkflowDefinitionFromDir(dirPath) {
66
53
  const workflowPath = existsSync(join(dirPath, "workflow.json"))
67
54
  ? join(dirPath, "workflow.json")
68
55
  : null;
@@ -71,8 +58,8 @@ export function loadWorkflowDefinitionFromDir(dirPath, type) {
71
58
  const definition = readJsonFileWithSchema(workflowPath, "local workflow definition", LocalWorkflowDefinitionSchema);
72
59
  if (!definition)
73
60
  return null;
74
- if (definition.type !== type) {
75
- warnInterf(`Warning: local workflow definition at ${workflowPath} has type "${definition.type}", expected "${type}".`);
61
+ if (definition.type !== "workspace") {
62
+ warnInterf(`Warning: local workflow definition at ${workflowPath} has unexpected type "${definition.type}".`);
76
63
  return null;
77
64
  }
78
65
  return {
@@ -82,8 +69,8 @@ export function loadWorkflowDefinitionFromDir(dirPath, type) {
82
69
  workflowPath,
83
70
  };
84
71
  }
85
- export function listLocalWorkflowDefinitions(sourcePath, type) {
86
- const root = workflowTypePath(sourcePath, type);
72
+ export function listLocalWorkflowDefinitions(sourcePath) {
73
+ const root = workflowRootPath(sourcePath);
87
74
  if (!existsSync(root))
88
75
  return [];
89
76
  return readdirSync(root)
@@ -96,23 +83,12 @@ export function listLocalWorkflowDefinitions(sourcePath, type) {
96
83
  return false;
97
84
  }
98
85
  })
99
- .map((entryPath) => loadWorkflowDefinitionFromDir(entryPath, type))
86
+ .map((entryPath) => loadWorkflowDefinitionFromDir(entryPath))
100
87
  .filter((definition) => definition !== null)
101
88
  .sort((a, b) => a.label.localeCompare(b.label));
102
89
  }
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
- }
90
+ export function loadLocalWorkflowDefinition(sourcePath, id) {
91
+ return loadWorkflowDefinitionFromDir(workflowDefinitionPath(sourcePath, id));
116
92
  }
117
93
  export function isWorkflowId(value) {
118
94
  return WorkflowIdPattern.test(value);
@@ -123,7 +99,7 @@ export function validateWorkflowPackage(dirPath) {
123
99
  return {
124
100
  ok: false,
125
101
  summary: `No workflow.json found at ${dirPath}`,
126
- errors: [`Missing workflow.json`],
102
+ errors: ["Missing workflow.json"],
127
103
  counts: {},
128
104
  };
129
105
  }
@@ -132,7 +108,7 @@ export function validateWorkflowPackage(dirPath) {
132
108
  return {
133
109
  ok: false,
134
110
  summary: `Failed to parse workflow.json at ${workflowPath}`,
135
- errors: [`Invalid JSON in workflow.json`],
111
+ errors: ["Invalid JSON in workflow.json"],
136
112
  counts: {},
137
113
  };
138
114
  }
@@ -149,70 +125,42 @@ export function validateWorkflowPackage(dirPath) {
149
125
  const def = parsed.data;
150
126
  const errors = [];
151
127
  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
- }
128
+ const contractTypes = def.stages.map((stage) => stage.contract_type);
129
+ const firstCompileStage = contractTypes.findIndex((contractType) => contractType === "workspace-knowledge-layer");
130
+ if (firstCompileStage <= 0) {
131
+ errors.push("Workspace workflows must have at least one workspace-file-evidence stage followed by at least one workspace-knowledge-layer stage.");
159
132
  }
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`);
165
- }
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`);
168
- }
133
+ else if (!contractTypes.slice(0, firstCompileStage).every((contractType) => contractType === "workspace-file-evidence")) {
134
+ errors.push("All stages before the first workspace-knowledge-layer stage must be workspace-file-evidence.");
169
135
  }
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`);
176
- }
136
+ else if (!contractTypes.slice(firstCompileStage).every((contractType) => contractType === "workspace-knowledge-layer")) {
137
+ errors.push("All stages after the first workspace-knowledge-layer stage must be workspace-knowledge-layer.");
177
138
  }
178
139
  }
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
- }
140
+ const stageDirs = listFilesRecursive(join(dirPath, "compile", "stages"), (filePath) => basename(filePath) === "SKILL.md");
141
+ const counts = {
142
+ starter_docs: collectStarterDocs(dirPath).length,
143
+ compile_stage_docs: stageDirs.length,
144
+ };
189
145
  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 },
146
+ ok: errors.length === 0,
147
+ summary: errors.length === 0 ? "Workflow package is valid." : `Workflow package has ${errors.length} issue(s).`,
148
+ errors,
149
+ counts,
194
150
  };
195
151
  }
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);
152
+ export function writeLocalWorkflowDefinition(sourcePath, id, workflowJson, docs) {
153
+ const root = workflowDefinitionPath(sourcePath, id);
154
+ mkdirSync(root, { recursive: true });
155
+ writeFileSync(join(root, "workflow.json"), JSON.stringify(workflowJson, null, 2) + "\n");
156
+ for (const doc of docs) {
157
+ const targetPath = join(root, doc.relativePath);
213
158
  mkdirSync(dirname(targetPath), { recursive: true });
214
159
  writeFileSync(targetPath, doc.content);
215
160
  }
216
- return dirPath;
161
+ return root;
162
+ }
163
+ function basename(filePath) {
164
+ return filePath.split(/[\\/]/).pop() ?? filePath;
217
165
  }
218
166
  //# sourceMappingURL=local-workflows.js.map