@tiic-tech/openworkflow 0.1.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 (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/adapters/codex/src/doctorCodexAdapter.d.ts +6 -0
  4. package/dist/adapters/codex/src/doctorCodexAdapter.js +124 -0
  5. package/dist/adapters/codex/src/doctorCodexAdapter.js.map +1 -0
  6. package/dist/adapters/codex/src/generateAgents.d.ts +2 -0
  7. package/dist/adapters/codex/src/generateAgents.js +40 -0
  8. package/dist/adapters/codex/src/generateAgents.js.map +1 -0
  9. package/dist/adapters/codex/src/generateCodexAdapter.d.ts +9 -0
  10. package/dist/adapters/codex/src/generateCodexAdapter.js +59 -0
  11. package/dist/adapters/codex/src/generateCodexAdapter.js.map +1 -0
  12. package/dist/adapters/codex/src/generateCommands.d.ts +6 -0
  13. package/dist/adapters/codex/src/generateCommands.js +205 -0
  14. package/dist/adapters/codex/src/generateCommands.js.map +1 -0
  15. package/dist/adapters/codex/src/generateSkills.d.ts +7 -0
  16. package/dist/adapters/codex/src/generateSkills.js +60 -0
  17. package/dist/adapters/codex/src/generateSkills.js.map +1 -0
  18. package/dist/adapters/codex/src/generatedFiles.d.ts +4 -0
  19. package/dist/adapters/codex/src/generatedFiles.js +67 -0
  20. package/dist/adapters/codex/src/generatedFiles.js.map +1 -0
  21. package/dist/adapters/codex/src/manifest.d.ts +4 -0
  22. package/dist/adapters/codex/src/manifest.js +40 -0
  23. package/dist/adapters/codex/src/manifest.js.map +1 -0
  24. package/dist/adapters/codex/src/templates.d.ts +7 -0
  25. package/dist/adapters/codex/src/templates.js +6 -0
  26. package/dist/adapters/codex/src/templates.js.map +1 -0
  27. package/dist/cli/src/args.d.ts +8 -0
  28. package/dist/cli/src/args.js +34 -0
  29. package/dist/cli/src/args.js.map +1 -0
  30. package/dist/cli/src/commands/doctor.d.ts +1 -0
  31. package/dist/cli/src/commands/doctor.js +26 -0
  32. package/dist/cli/src/commands/doctor.js.map +1 -0
  33. package/dist/cli/src/commands/init.d.ts +1 -0
  34. package/dist/cli/src/commands/init.js +52 -0
  35. package/dist/cli/src/commands/init.js.map +1 -0
  36. package/dist/cli/src/commands/shared.d.ts +4 -0
  37. package/dist/cli/src/commands/shared.js +19 -0
  38. package/dist/cli/src/commands/shared.js.map +1 -0
  39. package/dist/cli/src/commands/sync.d.ts +1 -0
  40. package/dist/cli/src/commands/sync.js +27 -0
  41. package/dist/cli/src/commands/sync.js.map +1 -0
  42. package/dist/cli/src/commands/validate.d.ts +1 -0
  43. package/dist/cli/src/commands/validate.js +17 -0
  44. package/dist/cli/src/commands/validate.js.map +1 -0
  45. package/dist/cli/src/dev/validateRepositoryContractsCli.d.ts +2 -0
  46. package/dist/cli/src/dev/validateRepositoryContractsCli.js +37 -0
  47. package/dist/cli/src/dev/validateRepositoryContractsCli.js.map +1 -0
  48. package/dist/cli/src/dev/verifyRuntimeSurface.d.ts +2 -0
  49. package/dist/cli/src/dev/verifyRuntimeSurface.js +344 -0
  50. package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -0
  51. package/dist/cli/src/dev/verifyWorkflowE2E.d.ts +2 -0
  52. package/dist/cli/src/dev/verifyWorkflowE2E.js +366 -0
  53. package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -0
  54. package/dist/cli/src/index.d.ts +2 -0
  55. package/dist/cli/src/index.js +51 -0
  56. package/dist/cli/src/index.js.map +1 -0
  57. package/dist/core/src/artifacts/registry.d.ts +53 -0
  58. package/dist/core/src/artifacts/registry.js +483 -0
  59. package/dist/core/src/artifacts/registry.js.map +1 -0
  60. package/dist/core/src/commands/registry.d.ts +36 -0
  61. package/dist/core/src/commands/registry.js +539 -0
  62. package/dist/core/src/commands/registry.js.map +1 -0
  63. package/dist/core/src/contracts/index.d.ts +23 -0
  64. package/dist/core/src/contracts/index.js +16 -0
  65. package/dist/core/src/contracts/index.js.map +1 -0
  66. package/dist/core/src/contracts/yaml.d.ts +2 -0
  67. package/dist/core/src/contracts/yaml.js +12 -0
  68. package/dist/core/src/contracts/yaml.js.map +1 -0
  69. package/dist/core/src/contracts.d.ts +23 -0
  70. package/dist/core/src/contracts.js +15 -0
  71. package/dist/core/src/contracts.js.map +1 -0
  72. package/dist/core/src/fs/index.d.ts +4 -0
  73. package/dist/core/src/fs/index.js +28 -0
  74. package/dist/core/src/fs/index.js.map +1 -0
  75. package/dist/core/src/fs.d.ts +4 -0
  76. package/dist/core/src/fs.js +28 -0
  77. package/dist/core/src/fs.js.map +1 -0
  78. package/dist/core/src/initOpenWorkflow.d.ts +7 -0
  79. package/dist/core/src/initOpenWorkflow.js +220 -0
  80. package/dist/core/src/initOpenWorkflow.js.map +1 -0
  81. package/dist/core/src/validateOpenWorkflow.d.ts +5 -0
  82. package/dist/core/src/validateOpenWorkflow.js +145 -0
  83. package/dist/core/src/validateOpenWorkflow.js.map +1 -0
  84. package/dist/core/src/validators/validateOpenWorkflow.d.ts +5 -0
  85. package/dist/core/src/validators/validateOpenWorkflow.js +551 -0
  86. package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -0
  87. package/dist/core/src/validators/validateRepositoryContracts.d.ts +2 -0
  88. package/dist/core/src/validators/validateRepositoryContracts.js +827 -0
  89. package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -0
  90. package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
  91. package/dist/core/src/workflow/initOpenWorkflow.js +182 -0
  92. package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -0
  93. package/dist/core/src/yaml.d.ts +2 -0
  94. package/dist/core/src/yaml.js +12 -0
  95. package/dist/core/src/yaml.js.map +1 -0
  96. package/package.json +55 -0
  97. package/references/artifact-authoring-templates.md +78 -0
  98. package/references/audit-first-discovery-loop.md +85 -0
  99. package/references/contract-graph.md +129 -0
  100. package/references/discovery-artifact-contracts.md +155 -0
  101. package/references/engineering-skill-reference-research.md +204 -0
  102. package/references/npm-cli-architecture.md +63 -0
  103. package/references/runtime-command-surface.md +169 -0
  104. package/schemas/artifact-contracts.schema.json +130 -0
  105. package/schemas/change.schema.json +71 -0
  106. package/schemas/contract-graph.schema.json +80 -0
  107. package/schemas/decision-record.schema.json +92 -0
  108. package/schemas/disclosure-levels.schema.json +66 -0
  109. package/schemas/openworkflow-contract.schema.json +88 -0
  110. package/schemas/product-design.schema.json +356 -0
  111. package/schemas/prototype-evidence.schema.json +325 -0
  112. package/schemas/prototype.schema.json +149 -0
  113. package/schemas/validation-target.schema.json +127 -0
  114. package/schemas/validation.schema.json +123 -0
  115. package/schemas/vision-session.schema.json +78 -0
  116. package/schemas/work-items.schema.json +87 -0
  117. package/schemas/workflow-index.schema.json +70 -0
  118. package/skills/build-prototype/SKILL.md +87 -0
  119. package/skills/build-prototype/agents/openai.yaml +4 -0
  120. package/skills/build-prototype/references/prototype-protocol.md +56 -0
  121. package/skills/build-prototype/scripts/init_prototype.py +260 -0
  122. package/skills/build-team/SKILL.md +292 -0
  123. package/skills/build-team/agents/openai.yaml +4 -0
  124. package/skills/build-team/references/runtime-schema.md +275 -0
  125. package/skills/build-team/references/team-protocol.md +244 -0
  126. package/skills/build-team/scripts/init_team_runtime.py +431 -0
  127. package/skills/build-validation/SKILL.md +81 -0
  128. package/skills/build-validation/agents/openai.yaml +4 -0
  129. package/skills/build-validation/references/validation-protocol.md +51 -0
  130. package/skills/build-validation/scripts/init_validation.py +194 -0
  131. package/skills/build-workflow/SKILL.md +65 -0
  132. package/skills/build-workflow/agents/openai.yaml +4 -0
  133. package/skills/build-workflow/references/workflow-layout.md +57 -0
  134. package/skills/build-workflow/scripts/init_workflow.py +423 -0
  135. package/skills/run-team/SKILL.md +93 -0
  136. package/skills/run-team/agents/openai.yaml +4 -0
  137. package/skills/run-team/references/delegation-and-agent-lifecycle.md +78 -0
  138. package/skills/run-team/references/run-loop.md +73 -0
  139. package/skills/run-team/references/runtime-audit.md +56 -0
  140. package/skills/run-team/references/scope-selection.md +64 -0
  141. package/skills/run-team/scripts/audit_team_runtime.py +173 -0
  142. package/skills/run-team/scripts/init_next_scope.py +304 -0
  143. package/templates/README.md +5 -0
  144. package/templates/codex/README.md +4 -0
  145. package/templates/openworkflow/README.md +4 -0
@@ -0,0 +1,344 @@
1
+ #!/usr/bin/env node
2
+ import { mkdtemp, readdir, readFile, rm, stat } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { dirname, join, relative, resolve } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { spawn } from "node:child_process";
7
+ const CURRENT_FILE = fileURLToPath(import.meta.url);
8
+ const REPO_ROOT = resolve(dirname(CURRENT_FILE), "../../../..");
9
+ const CLI = join(REPO_ROOT, "dist", "cli", "src", "index.js");
10
+ async function main() {
11
+ await assertFile(CLI);
12
+ const tempRoot = await mkdtemp(join(tmpdir(), "openworkflow-runtime-surface-"));
13
+ try {
14
+ const target = join(tempRoot, "target");
15
+ const codexHome = join(tempRoot, "codex-home");
16
+ const env = { ...process.env, CODEX_HOME: codexHome };
17
+ await run(["node", CLI, "init", target, "--tools", "codex", "--force"], env);
18
+ await run(["node", CLI, "sync", "--root", target, "--tools", "codex"], env);
19
+ await run(["node", CLI, "doctor", "--root", target, "--tools", "codex"], env);
20
+ await run(["node", CLI, "validate", "--root", target], env);
21
+ await verifyMinimalOpenWorkflow(target);
22
+ await verifyConfig(target);
23
+ await verifySkills(target);
24
+ await verifyNoDefaultPrompts(codexHome);
25
+ await verifyDesignContract(target);
26
+ await verifyTuneDecisionSurface(target);
27
+ await verifyNoDefaultCodexCommands(target);
28
+ }
29
+ finally {
30
+ await rm(tempRoot, { recursive: true, force: true });
31
+ }
32
+ console.log("OpenWorkflow runtime surface verification passed.");
33
+ return 0;
34
+ }
35
+ async function run(command, env) {
36
+ await new Promise((resolvePromise, reject) => {
37
+ const child = spawn(command[0] ?? "", command.slice(1), {
38
+ cwd: REPO_ROOT,
39
+ env,
40
+ stdio: "inherit",
41
+ });
42
+ child.on("error", reject);
43
+ child.on("close", (code) => {
44
+ if (code === 0) {
45
+ resolvePromise();
46
+ }
47
+ else {
48
+ reject(new Error(`command failed (${code ?? "signal"}): ${command.join(" ")}`));
49
+ }
50
+ });
51
+ });
52
+ }
53
+ async function verifyMinimalOpenWorkflow(root) {
54
+ const actualFiles = new Set((await collectPaths(join(root, ".openworkflow"), "file")).map((path) => relative(root, path)));
55
+ assertSetEqual(actualFiles, new Set([
56
+ ".openworkflow/config.yaml",
57
+ ".openworkflow/workflow/WORKFLOW_INDEX.yaml",
58
+ ".openworkflow/audit/COMMAND_AUDIT_INDEX.yaml",
59
+ ".openworkflow/audit/CONTEXT_PACKETS.yaml",
60
+ ".openworkflow/audit/ARTIFACT_CONTRACTS.yaml",
61
+ ".openworkflow/audit/DISCLOSURE_LEVELS.yaml",
62
+ ".openworkflow/decisions/_templates/DECISION.yaml",
63
+ ".openworkflow/design/_templates/PRODUCT_DESIGN.yaml",
64
+ ".openworkflow/prototypes/_templates/EVIDENCE.yaml",
65
+ ".openworkflow/validation/_templates/VALIDATION.yaml",
66
+ ".openworkflow/vision/_templates/VISION_SESSION.yaml",
67
+ ]), "unexpected .openworkflow files");
68
+ const actualDirs = new Set([".openworkflow", ...(await collectPaths(join(root, ".openworkflow"), "directory")).map((path) => relative(root, path))]);
69
+ assertSetEqual(actualDirs, new Set([
70
+ ".openworkflow",
71
+ ".openworkflow/audit",
72
+ ".openworkflow/decisions",
73
+ ".openworkflow/decisions/_templates",
74
+ ".openworkflow/design",
75
+ ".openworkflow/design/_templates",
76
+ ".openworkflow/prototypes",
77
+ ".openworkflow/prototypes/_templates",
78
+ ".openworkflow/validation",
79
+ ".openworkflow/validation/_templates",
80
+ ".openworkflow/vision",
81
+ ".openworkflow/vision/_templates",
82
+ ".openworkflow/workflow",
83
+ ]), "unexpected .openworkflow dirs");
84
+ }
85
+ async function verifyConfig(root) {
86
+ const config = await read(join(root, ".openworkflow", "config.yaml"));
87
+ assert(config.includes("default_command_delivery: codex-repo-skills"), "config missing Codex skill delivery");
88
+ assert(config.includes(".agents/skills"), "config missing Codex skill surface");
89
+ assert(config.includes("explicit_invocation: $ow-<id>"), "config missing explicit skill invocation policy");
90
+ }
91
+ async function verifyNoDefaultPrompts(codexHome) {
92
+ for (const name of ["ow-vision.md", "ow-validation.md", "ow-proto.md", "ow-tune.md", "ow-design.md", "ow-spec.md"]) {
93
+ assert(!(await exists(join(codexHome, "prompts", name))), `default global prompt generated unexpectedly: ${name}`);
94
+ }
95
+ }
96
+ async function verifySkills(root) {
97
+ for (const name of ["ow-vision", "ow-validation", "ow-proto", "ow-tune", "ow-decision", "ow-design", "ow-spec"]) {
98
+ const skill = join(root, ".agents", "skills", name, "SKILL.md");
99
+ const interfaceFile = join(root, ".agents", "skills", name, "agents", "openai.yaml");
100
+ await assertFile(skill);
101
+ await assertFile(interfaceFile);
102
+ const skillContent = await read(skill);
103
+ const interfaceContent = await read(interfaceFile);
104
+ assert(skillContent.startsWith("---\n"), `${name} missing SKILL.md frontmatter`);
105
+ assert(skillContent.includes(`name: "${name}"`), `${name} missing skill name`);
106
+ assert(skillContent.includes("description:"), `${name} missing skill description`);
107
+ assert(skillContent.includes("generated-by: openworkflow"), `${name} missing generated marker`);
108
+ assert(skillContent.includes("<user_behavior>"), `${name} missing user behavior block`);
109
+ assert(skillContent.includes("<agent_protocol>"), `${name} missing agent protocol block`);
110
+ assert(skillContent.includes("<inner_thinking>"), `${name} missing inner thinking block`);
111
+ assert(skillContent.includes("<artifact_checkpoint>"), `${name} missing artifact checkpoint block`);
112
+ assert(skillContent.includes("<handoff>"), `${name} missing handoff block`);
113
+ if (name === "ow-vision") {
114
+ verifyVisionSkill(skillContent);
115
+ }
116
+ if (name === "ow-proto") {
117
+ verifyProtoSkill(skillContent);
118
+ }
119
+ if (name === "ow-tune") {
120
+ verifyTuneSkill(skillContent);
121
+ }
122
+ if (name === "ow-decision") {
123
+ verifyDecisionSkill(skillContent);
124
+ }
125
+ if (name === "ow-design") {
126
+ verifyDesignSkill(skillContent);
127
+ }
128
+ const semanticCommand = `/${name.replace("ow-", "ow:")}`;
129
+ const displayName = semanticCommand.slice(1);
130
+ assert(hasYamlScalar(interfaceContent, "display_name", displayName), `${name} missing slashless display name`);
131
+ assert(!hasYamlScalar(interfaceContent, "display_name", semanticCommand), `${name} display name includes semantic slash`);
132
+ assert(skillContent.includes(`Semantic command: ${semanticCommand}`), `${name} missing semantic command`);
133
+ assert(interfaceContent.includes("default_prompt:"), `${name} missing default prompt`);
134
+ }
135
+ }
136
+ function hasYamlScalar(content, key, value) {
137
+ return content.includes(`${key}: ${value}`) || content.includes(`${key}: "${value}"`);
138
+ }
139
+ function verifyVisionSkill(content) {
140
+ for (const required of [
141
+ "conversation-first-sustained-grill",
142
+ "<conversation_first>",
143
+ "<mandatory_coverage>",
144
+ "Cover target user and beneficiary.",
145
+ "Cover the problem, motivation, and emotional or quality bar.",
146
+ "Cover AI-native role, boundaries, and failure modes.",
147
+ "Cover privacy, data, sharing, and retention assumptions.",
148
+ "Cover success signals and failure signals.",
149
+ "<readiness_gate>",
150
+ "Do not hand off to /ow:validation until mandatory coverage is addressed",
151
+ "Vision readiness is based on coverage and user confirmation, not on a fixed number of turns.",
152
+ "Write VISION_SESSION.yaml, VISION_CONTRACT.yaml, VISION.md, or context updates only after stable answers",
153
+ ]) {
154
+ assert(content.includes(required), `ow-vision missing M15 guidance: ${required}`);
155
+ }
156
+ }
157
+ function verifyProtoSkill(content) {
158
+ for (const required of [
159
+ "<prototype_classification>",
160
+ "prototype mode",
161
+ "visual, interaction, technical feasibility, 3D/material, workflow, or data/logic",
162
+ "<reference_extraction>",
163
+ "reference-pattern extraction",
164
+ "target image, URL, screenshot, HTML/CSS",
165
+ "<visual_first_path>",
166
+ "high-fidelity static concept",
167
+ "image generation",
168
+ "visual_concept_policy.image_generation",
169
+ "<design_seed_protocol>",
170
+ "design system, template seed",
171
+ "<verification_protocol>",
172
+ "browser verification",
173
+ "screenshot",
174
+ "<self_critique>",
175
+ "philosophy, hierarchy, execution, specificity, restraint, accessibility, and responsive behavior",
176
+ "repair pass before evidence handoff",
177
+ ]) {
178
+ assert(content.includes(required), `ow-proto missing M16 guidance: ${required}`);
179
+ }
180
+ }
181
+ function verifyTuneSkill(content) {
182
+ for (const required of [
183
+ "<target_resolution>",
184
+ "/ow:tune resolves to the current prototype by default.",
185
+ "/ow:tune:proto is an explicit alias",
186
+ "<proto_orchestration>",
187
+ "no current prototype exists but a current validation target exists",
188
+ "<revision_protocol>",
189
+ "<internal_decision_audit>",
190
+ "Every tune pass must write or update a decision audit record internally.",
191
+ "Do not expose /ow:decision as the next manual user step",
192
+ ]) {
193
+ assert(content.includes(required), `ow-tune missing M17 guidance: ${required}`);
194
+ }
195
+ }
196
+ function verifyDecisionSkill(content) {
197
+ for (const required of [
198
+ "<command_visibility>internal</command_visibility>",
199
+ "<internal_audit_only>",
200
+ "/ow:decision is preserved for durable audit records, not as a normal user-facing workflow step.",
201
+ ]) {
202
+ assert(content.includes(required), `ow-decision missing internal audit guidance: ${required}`);
203
+ }
204
+ }
205
+ function verifyDesignSkill(content) {
206
+ for (const required of [
207
+ "conversation-first-product-design",
208
+ "<conversation_first>",
209
+ "<mandatory_coverage>",
210
+ "Cover journey map and key flows.",
211
+ "Cover UX states, state transitions, and feedback timing.",
212
+ "Cover edge cases and failure states.",
213
+ "Cover responsive behavior and accessibility expectations.",
214
+ "Cover spec readiness and blockers.",
215
+ "<readiness_gate>",
216
+ "Do not hand off to /ow:spec until design coverage is sufficient",
217
+ "If accepted prototype evidence is thin, ask targeted design questions or hand back to /ow:tune.",
218
+ "Persist PRODUCT_DESIGN.yaml after stable design answers or explicit checkpoint request.",
219
+ ]) {
220
+ assert(content.includes(required), `ow-design missing M15 guidance: ${required}`);
221
+ }
222
+ }
223
+ async function verifyDesignContract(root) {
224
+ const commandIndex = await read(join(root, ".openworkflow", "audit", "COMMAND_AUDIT_INDEX.yaml"));
225
+ assert(commandIndex.includes("trigger: /ow:design"), "command audit missing /ow:design");
226
+ const designSection = commandIndex.split("trigger: /ow:design", 2)[1]?.split(" - id:", 1)[0] ?? "";
227
+ assert(designSection.includes("PRODUCT_DESIGN.yaml"), "design allowed outputs missing PRODUCT_DESIGN");
228
+ assert(!extractBlock(designSection, "allowed_outputs").includes("TECH_SPEC.yaml"), "design allowed outputs include TECH_SPEC");
229
+ assert(extractBlock(designSection, "conditional_outputs").includes("TECH_SPEC.yaml"), "design conditional outputs missing TECH_SPEC");
230
+ const artifacts = await read(join(root, ".openworkflow", "audit", "ARTIFACT_CONTRACTS.yaml"));
231
+ assert(artifacts.includes("artifact_type: product_design"), "artifact contracts missing product_design");
232
+ assert(artifacts.includes("conditional_packets:"), "artifact contracts missing conditional packets");
233
+ }
234
+ async function verifyTuneDecisionSurface(root) {
235
+ const commandIndex = await read(join(root, ".openworkflow", "audit", "COMMAND_AUDIT_INDEX.yaml"));
236
+ assert(commandIndex.includes("trigger: /ow:tune"), "command audit missing /ow:tune");
237
+ assert(commandIndex.includes("visibility: internal"), "command audit missing internal command visibility");
238
+ const protoSection = commandIndex.split("trigger: /ow:proto", 2)[1]?.split(" - id:", 1)[0] ?? "";
239
+ const tuneSection = commandIndex.split("trigger: /ow:tune", 2)[1]?.split(" - id:", 1)[0] ?? "";
240
+ const decisionSection = commandIndex.split("trigger: /ow:decision", 2)[1]?.split(" - id:", 1)[0] ?? "";
241
+ const designSection = commandIndex.split("trigger: /ow:design", 2)[1]?.split(" - id:", 1)[0] ?? "";
242
+ assert(!extractBlock(protoSection, "handoff_commands").includes("/ow:decision"), "proto exposes manual decision handoff");
243
+ assert(!extractBlock(tuneSection, "handoff_commands").includes("/ow:decision"), "tune exposes manual decision handoff");
244
+ assert(!extractBlock(designSection, "handoff_commands").includes("/ow:decision"), "design exposes manual decision handoff");
245
+ assert(decisionSection.includes("visibility: internal"), "decision command is not internal");
246
+ assert(extractBlock(tuneSection, "allowed_outputs").includes(".openworkflow/decisions/"), "tune cannot write decision audit");
247
+ const contextPackets = await read(join(root, ".openworkflow", "audit", "CONTEXT_PACKETS.yaml"));
248
+ const tunePacket = contextPackets.split("command: /ow:tune", 2)[1]?.split(" - packet_id:", 1)[0] ?? "";
249
+ assert(!extractBlock(tunePacket, "required").includes("PROTOTYPE_INDEX.yaml"), "tune requires prototype index");
250
+ assert(extractBlock(tunePacket, "optional").includes("PROTOTYPE_INDEX.yaml"), "tune optional context missing prototype index");
251
+ const artifacts = await read(join(root, ".openworkflow", "audit", "ARTIFACT_CONTRACTS.yaml"));
252
+ assert(artifacts.includes("revision_scope"), "decision artifact contracts missing revision_scope");
253
+ for (const templatePath of [
254
+ ".openworkflow/vision/_templates/VISION_SESSION.yaml",
255
+ ".openworkflow/validation/_templates/VALIDATION.yaml",
256
+ ".openworkflow/prototypes/_templates/EVIDENCE.yaml",
257
+ ".openworkflow/decisions/_templates/DECISION.yaml",
258
+ ".openworkflow/design/_templates/PRODUCT_DESIGN.yaml",
259
+ ]) {
260
+ await assertFile(join(root, templatePath));
261
+ }
262
+ }
263
+ async function verifyNoDefaultCodexCommands(root) {
264
+ assert(!(await exists(join(root, ".codex", "commands", "ow"))), ".codex command references generated unexpectedly");
265
+ assert(!(await exists(join(root, ".codex", "skills"))), ".codex skills generated unexpectedly");
266
+ }
267
+ function extractBlock(content, key) {
268
+ const marker = `${key}:`;
269
+ if (content.includes(marker)) {
270
+ const block = [];
271
+ let collecting = false;
272
+ for (const line of content.split("\n")) {
273
+ if (line.trim() === marker) {
274
+ collecting = true;
275
+ continue;
276
+ }
277
+ if (collecting && line.startsWith(" ") && !line.startsWith(" ")) {
278
+ break;
279
+ }
280
+ if (collecting) {
281
+ block.push(line);
282
+ }
283
+ }
284
+ return block.join("\n");
285
+ }
286
+ const openTag = `<${key}>`;
287
+ const closeTag = `</${key}>`;
288
+ if (content.includes(openTag) && content.includes(closeTag)) {
289
+ return content.split(openTag, 2)[1]?.split(closeTag, 1)[0] ?? "";
290
+ }
291
+ return "";
292
+ }
293
+ async function collectPaths(root, kind) {
294
+ const found = [];
295
+ const entries = await readdir(root, { withFileTypes: true });
296
+ for (const entry of entries) {
297
+ const path = join(root, entry.name);
298
+ if (entry.isDirectory()) {
299
+ if (kind === "directory") {
300
+ found.push(path);
301
+ }
302
+ found.push(...(await collectPaths(path, kind)));
303
+ }
304
+ else if (kind === "file" && entry.isFile()) {
305
+ found.push(path);
306
+ }
307
+ }
308
+ return found.sort();
309
+ }
310
+ async function read(path) {
311
+ return readFile(path, "utf8");
312
+ }
313
+ async function assertFile(path) {
314
+ const info = await stat(path);
315
+ assert(info.isFile(), `missing file: ${path}`);
316
+ }
317
+ async function exists(path) {
318
+ try {
319
+ await stat(path);
320
+ return true;
321
+ }
322
+ catch {
323
+ return false;
324
+ }
325
+ }
326
+ function assertSetEqual(actual, expected, label) {
327
+ const actualList = [...actual].sort();
328
+ const expectedList = [...expected].sort();
329
+ assert(JSON.stringify(actualList) === JSON.stringify(expectedList), `${label}: ${actualList.join(", ")}`);
330
+ }
331
+ function assert(condition, message) {
332
+ if (!condition) {
333
+ throw new Error(message);
334
+ }
335
+ }
336
+ main()
337
+ .then((code) => {
338
+ process.exitCode = code;
339
+ })
340
+ .catch((error) => {
341
+ console.error(error instanceof Error ? error.message : String(error));
342
+ process.exitCode = 1;
343
+ });
344
+ //# sourceMappingURL=verifyRuntimeSurface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyRuntimeSurface.js","sourceRoot":"","sources":["../../../../packages/cli/src/dev/verifyRuntimeSurface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};