@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,67 @@
1
+ import { rm } from "node:fs/promises";
2
+ import { readTextFile, writeTextFile, isNotFound } from "../../../core/src/fs/index.js";
3
+ import { CODEX_ADAPTER_VERSION } from "./templates.js";
4
+ export function renderGeneratedFile(path, content, templateId) {
5
+ const marker = `generated-by: openworkflow; adapter: codex; adapter-version: ${CODEX_ADAPTER_VERSION}; template-id: ${templateId}`;
6
+ if (path.endsWith(".yaml") || path.endsWith(".yml")) {
7
+ return `# ${marker}\n${content}`;
8
+ }
9
+ if (content.startsWith("---\n")) {
10
+ const frontmatterEnd = content.indexOf("\n---\n", 4);
11
+ if (frontmatterEnd !== -1) {
12
+ const endOffset = frontmatterEnd + "\n---\n".length;
13
+ return `${content.slice(0, endOffset)}<!-- ${marker} -->\n${content.slice(endOffset)}`;
14
+ }
15
+ }
16
+ return `<!-- ${marker} -->\n${content}`;
17
+ }
18
+ export function hasGeneratedMarker(content) {
19
+ return content.includes("generated-by: openworkflow");
20
+ }
21
+ export async function writeGenerated(path, content, force, written, skipped, unchanged, warnings) {
22
+ let existing = null;
23
+ try {
24
+ existing = await readTextFile(path);
25
+ }
26
+ catch (error) {
27
+ if (!isNotFound(error)) {
28
+ throw error;
29
+ }
30
+ }
31
+ if (existing === content) {
32
+ unchanged.push(path);
33
+ return;
34
+ }
35
+ if (existing && !force && !hasGeneratedMarker(existing)) {
36
+ skipped.push(path);
37
+ warnings.push(`Skipped non-generated file: ${path}`);
38
+ return;
39
+ }
40
+ const action = await writeTextFile(path, content, true);
41
+ if (action === "write") {
42
+ written.push(path);
43
+ }
44
+ else {
45
+ skipped.push(path);
46
+ }
47
+ }
48
+ export async function removeGenerated(path, force, removed, skipped, warnings) {
49
+ let existing;
50
+ try {
51
+ existing = await readTextFile(path);
52
+ }
53
+ catch (error) {
54
+ if (isNotFound(error)) {
55
+ return;
56
+ }
57
+ throw error;
58
+ }
59
+ if (!hasGeneratedMarker(existing) && !force) {
60
+ skipped.push(path);
61
+ warnings.push(`Skipped legacy non-generated file: ${path}`);
62
+ return;
63
+ }
64
+ await rm(path);
65
+ removed.push(path);
66
+ }
67
+ //# sourceMappingURL=generatedFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedFiles.js","sourceRoot":"","sources":["../../../../packages/adapters/codex/src/generatedFiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const CODEX_MANIFEST_PATH = ".agents/openworkflow-adapter.yaml";
2
+ export declare const LEGACY_CODEX_MANIFEST_PATHS: readonly [".openworkflow/adapters/codex.yaml", ".codex/openworkflow-adapter.yaml"];
3
+ export declare const CODEX_MANIFEST_TEMPLATE_ID = "codex.manifest";
4
+ export declare function codexManifest(root: string, files: string[]): string;
@@ -0,0 +1,40 @@
1
+ import { join, relative } from "node:path";
2
+ import { COMMAND_NAMESPACE, getWorkflowCommands } from "../../../core/src/commands/registry.js";
3
+ import { dumpYaml } from "../../../core/src/contracts/yaml.js";
4
+ import { codexSkillInterfacePath, codexSkillName, codexSkillPath } from "./generateSkills.js";
5
+ import { CODEX_ADAPTER_VERSION } from "./templates.js";
6
+ export const CODEX_MANIFEST_PATH = ".agents/openworkflow-adapter.yaml";
7
+ export const LEGACY_CODEX_MANIFEST_PATHS = [
8
+ ".openworkflow/adapters/codex.yaml",
9
+ ".codex/openworkflow-adapter.yaml",
10
+ ];
11
+ export const CODEX_MANIFEST_TEMPLATE_ID = "codex.manifest";
12
+ export function codexManifest(root, files) {
13
+ return dumpYaml({
14
+ adapter: "codex",
15
+ adapter_version: CODEX_ADAPTER_VERSION,
16
+ generated_by: "openworkflow",
17
+ delivery: "repo-local-skills",
18
+ source_of_truth: ".openworkflow",
19
+ command_namespace: COMMAND_NAMESPACE,
20
+ skill_surface: {
21
+ directory: ".agents/skills",
22
+ path_pattern: ".agents/skills/ow-<id>/SKILL.md",
23
+ interface_metadata: "agents/openai.yaml",
24
+ frontmatter: ["name", "description"],
25
+ },
26
+ commands: getWorkflowCommands().map((command) => ({
27
+ id: command.id,
28
+ trigger: command.trigger,
29
+ visibility: command.visibility,
30
+ skill_name: codexSkillName(command),
31
+ explicit_invocation: `$${codexSkillName(command)}`,
32
+ skill_path: codexSkillPath(command),
33
+ interface_path: codexSkillInterfacePath(command),
34
+ legacy_triggers: command.legacyTriggers,
35
+ })),
36
+ generated_files: files.map((path) => relative(root, join(root, path))),
37
+ sync_command: "openworkflow sync --tools codex",
38
+ });
39
+ }
40
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../packages/adapters/codex/src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AACvE,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,mCAAmC;IACnC,kCAAkC;CAC1B,CAAC;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;AAE3D,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAe;IACzD,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,qBAAqB;QACtC,YAAY,EAAE,cAAc;QAC5B,QAAQ,EAAE,mBAAmB;QAC7B,eAAe,EAAE,eAAe;QAChC,iBAAiB,EAAE,iBAAiB;QACpC,aAAa,EAAE;YACb,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,iCAAiC;YAC/C,kBAAkB,EAAE,oBAAoB;YACxC,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC;QACD,QAAQ,EAAE,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChD,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC;YACnC,mBAAmB,EAAE,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAClD,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC;YACnC,cAAc,EAAE,uBAAuB,CAAC,OAAO,CAAC;YAChD,eAAe,EAAE,OAAO,CAAC,cAAc;SACxC,CAAC,CAAC;QACH,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,YAAY,EAAE,iCAAiC;KAChD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const CODEX_ADAPTER_VERSION = "0.1.0";
2
+ export interface CodexTemplate {
3
+ id: string;
4
+ path: string;
5
+ content: string;
6
+ }
7
+ export declare function getCodexTemplates(): CodexTemplate[];
@@ -0,0 +1,6 @@
1
+ import { generateSkillTemplates } from "./generateSkills.js";
2
+ export const CODEX_ADAPTER_VERSION = "0.1.0";
3
+ export function getCodexTemplates() {
4
+ return generateSkillTemplates();
5
+ }
6
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../packages/adapters/codex/src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAQ7C,MAAM,UAAU,iBAAiB;IAC/B,OAAO,sBAAsB,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface ParsedArgs {
2
+ command: string | undefined;
3
+ positional: string[];
4
+ flags: Map<string, string | boolean>;
5
+ }
6
+ export declare function parseArgs(argv: string[]): ParsedArgs;
7
+ export declare function stringFlag(flags: Map<string, string | boolean>, name: string, fallback?: string): string | undefined;
8
+ export declare function booleanFlag(flags: Map<string, string | boolean>, name: string): boolean;
@@ -0,0 +1,34 @@
1
+ export function parseArgs(argv) {
2
+ const [command, ...rest] = argv;
3
+ const positional = [];
4
+ const flags = new Map();
5
+ for (let index = 0; index < rest.length; index += 1) {
6
+ const value = rest[index];
7
+ if (value === "-h") {
8
+ flags.set("help", true);
9
+ }
10
+ else if (value?.startsWith("--")) {
11
+ const key = value.slice(2);
12
+ const next = rest[index + 1];
13
+ if (next && !next.startsWith("--")) {
14
+ flags.set(key, next);
15
+ index += 1;
16
+ }
17
+ else {
18
+ flags.set(key, true);
19
+ }
20
+ }
21
+ else if (value) {
22
+ positional.push(value);
23
+ }
24
+ }
25
+ return { command, positional, flags };
26
+ }
27
+ export function stringFlag(flags, name, fallback) {
28
+ const value = flags.get(name);
29
+ return typeof value === "string" ? value : fallback;
30
+ }
31
+ export function booleanFlag(flags, name) {
32
+ return flags.get(name) === true || flags.get(name) === "true";
33
+ }
34
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../packages/cli/src/args.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAElD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACrB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAoC,EAAE,IAAY,EAAE,QAAiB;IAC9F,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAoC,EAAE,IAAY;IAC5E,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;AAChE,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function doctorCommand(flags: Map<string, string | boolean>): Promise<number>;
@@ -0,0 +1,26 @@
1
+ import { resolve } from "node:path";
2
+ import { doctorCodexAdapter } from "../../../adapters/codex/src/doctorCodexAdapter.js";
3
+ import { stringFlag } from "../args.js";
4
+ import { parseTools } from "./shared.js";
5
+ export async function doctorCommand(flags) {
6
+ const root = resolve(stringFlag(flags, "root", ".") ?? ".");
7
+ const tools = parseTools(stringFlag(flags, "tools", "codex"));
8
+ if (!tools.includes("codex")) {
9
+ console.error("No supported tools selected. M06 supports --tools codex.");
10
+ return 1;
11
+ }
12
+ const adapter = await doctorCodexAdapter(root);
13
+ for (const warning of adapter.warnings) {
14
+ console.warn(`Warning: ${warning}`);
15
+ }
16
+ if (!adapter.ok) {
17
+ console.error("OpenWorkflow doctor found adapter issues:");
18
+ for (const error of adapter.errors) {
19
+ console.error(`- ${error}`);
20
+ }
21
+ return 1;
22
+ }
23
+ console.log(adapter.warnings.length > 0 ? "OpenWorkflow doctor passed with warnings." : "OpenWorkflow doctor passed.");
24
+ return 0;
25
+ }
26
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../../packages/cli/src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAoC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC/C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;IACvH,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function initCommand(positional: string[], flags: Map<string, string | boolean>): Promise<number>;
@@ -0,0 +1,52 @@
1
+ import { mkdir } from "node:fs/promises";
2
+ import { resolve } from "node:path";
3
+ import { generateCodexAdapter } from "../../../adapters/codex/src/generateCodexAdapter.js";
4
+ import { initOpenWorkflow } from "../../../core/src/workflow/initOpenWorkflow.js";
5
+ import { booleanFlag, stringFlag } from "../args.js";
6
+ import { basenameForTitle, parseTools, printWarnings, slugify } from "./shared.js";
7
+ export async function initCommand(positional, flags) {
8
+ const folder = positional[0];
9
+ if (!folder) {
10
+ console.error("Missing folder argument.");
11
+ console.error("Usage: openworkflow init <folder> --tools codex");
12
+ return 1;
13
+ }
14
+ const root = resolve(folder);
15
+ const tools = parseTools(stringFlag(flags, "tools", ""));
16
+ const force = booleanFlag(flags, "force");
17
+ const projectTitle = stringFlag(flags, "project-title") ?? basenameForTitle(folder);
18
+ const projectSlug = slugify(stringFlag(flags, "project-slug") ?? projectTitle);
19
+ await mkdir(root, { recursive: true });
20
+ const result = await initOpenWorkflow({
21
+ root,
22
+ projectTitle,
23
+ projectSlug,
24
+ tools,
25
+ force,
26
+ });
27
+ let adapterWritten = 0;
28
+ let adapterSkipped = 0;
29
+ let adapterUnchanged = 0;
30
+ let adapterRemoved = 0;
31
+ if (tools.includes("codex")) {
32
+ const adapter = await generateCodexAdapter({
33
+ root,
34
+ projectTitle,
35
+ projectSlug,
36
+ tools,
37
+ force,
38
+ });
39
+ adapterWritten = adapter.written.length;
40
+ adapterSkipped = adapter.skipped.length;
41
+ adapterUnchanged = adapter.unchanged.length;
42
+ adapterRemoved = adapter.removed.length;
43
+ printWarnings(adapter.warnings);
44
+ }
45
+ console.log(`Initialized OpenWorkflow at ${root}`);
46
+ console.log(`.openworkflow written: ${result.written.length}, skipped: ${result.skipped.length}`);
47
+ if (tools.includes("codex")) {
48
+ console.log(`Codex adapter written: ${adapterWritten}, skipped: ${adapterSkipped}, unchanged: ${adapterUnchanged}, removed: ${adapterRemoved}`);
49
+ }
50
+ return 0;
51
+ }
52
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../packages/cli/src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAoB,EAAE,KAAoC;IAC1F,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC;IAE/E,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;QACpC,IAAI;QACJ,YAAY;QACZ,WAAW;QACX,KAAK;QACL,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;YACzC,IAAI;YACJ,YAAY;YACZ,WAAW;YACX,KAAK;YACL,KAAK;SACN,CAAC,CAAC;QACH,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;QAC5C,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,OAAO,CAAC,MAAM,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,cAAc,cAAc,gBAAgB,gBAAgB,cAAc,cAAc,EAAE,CAAC,CAAC;IAClJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function parseTools(raw: string | undefined): string[];
2
+ export declare function basenameForTitle(path: string): string;
3
+ export declare function slugify(value: string): string;
4
+ export declare function printWarnings(warnings: string[]): void;
@@ -0,0 +1,19 @@
1
+ export function parseTools(raw) {
2
+ if (!raw) {
3
+ return [];
4
+ }
5
+ return raw.split(",").map((tool) => tool.trim()).filter(Boolean);
6
+ }
7
+ export function basenameForTitle(path) {
8
+ const parts = path.split(/[\\/]/).filter(Boolean);
9
+ return parts.at(-1) ?? "OpenWorkflow Project";
10
+ }
11
+ export function slugify(value) {
12
+ return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "project";
13
+ }
14
+ export function printWarnings(warnings) {
15
+ for (const warning of warnings) {
16
+ console.warn(`Warning: ${warning}`);
17
+ }
18
+ }
19
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../packages/cli/src/commands/shared.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAuB;IAChD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function syncCommand(flags: Map<string, string | boolean>): Promise<number>;
@@ -0,0 +1,27 @@
1
+ import { resolve } from "node:path";
2
+ import { generateCodexAdapter } from "../../../adapters/codex/src/generateCodexAdapter.js";
3
+ import { booleanFlag, stringFlag } from "../args.js";
4
+ import { basenameForTitle, parseTools, printWarnings, slugify } from "./shared.js";
5
+ export async function syncCommand(flags) {
6
+ const root = resolve(stringFlag(flags, "root", ".") ?? ".");
7
+ const tools = parseTools(stringFlag(flags, "tools", "codex"));
8
+ const force = booleanFlag(flags, "force");
9
+ const projectTitle = stringFlag(flags, "project-title") ?? basenameForTitle(root);
10
+ const projectSlug = slugify(stringFlag(flags, "project-slug") ?? projectTitle);
11
+ if (!tools.includes("codex")) {
12
+ console.error("No supported tools selected. M06 supports --tools codex.");
13
+ return 1;
14
+ }
15
+ const adapter = await generateCodexAdapter({
16
+ root,
17
+ projectTitle,
18
+ projectSlug,
19
+ tools,
20
+ force,
21
+ });
22
+ printWarnings(adapter.warnings);
23
+ console.log(`Synced Codex adapter at ${root}`);
24
+ console.log(`written: ${adapter.written.length}, skipped: ${adapter.skipped.length}, unchanged: ${adapter.unchanged.length}, removed: ${adapter.removed.length}`);
25
+ return adapter.skipped.length > 0 ? 1 : 0;
26
+ }
27
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../packages/cli/src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAoC;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC;IAE/E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;QACzC,IAAI;QACJ,YAAY;QACZ,WAAW;QACX,KAAK;QACL,KAAK;KACN,CAAC,CAAC;IAEH,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,OAAO,CAAC,MAAM,cAAc,OAAO,CAAC,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,SAAS,CAAC,MAAM,cAAc,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClK,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function validateCommand(flags: Map<string, string | boolean>): Promise<number>;
@@ -0,0 +1,17 @@
1
+ import { resolve } from "node:path";
2
+ import { validateOpenWorkflow } from "../../../core/src/validators/validateOpenWorkflow.js";
3
+ import { stringFlag } from "../args.js";
4
+ export async function validateCommand(flags) {
5
+ const root = resolve(stringFlag(flags, "root", ".") ?? ".");
6
+ const result = await validateOpenWorkflow(root);
7
+ if (!result.ok) {
8
+ console.error("OpenWorkflow validation failed:");
9
+ for (const error of result.errors) {
10
+ console.error(`- ${error}`);
11
+ }
12
+ return 1;
13
+ }
14
+ console.log("OpenWorkflow validation passed.");
15
+ return 0;
16
+ }
17
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../packages/cli/src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAoC;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ import { resolve } from "node:path";
3
+ import { validateRepositoryContracts } from "../../../core/src/validators/validateRepositoryContracts.js";
4
+ async function main() {
5
+ const root = resolve(stringOption(process.argv.slice(2), "root", "."));
6
+ const result = await validateRepositoryContracts(root);
7
+ if (!result.ok) {
8
+ console.error("OpenWorkflow repository validation failed:");
9
+ for (const error of result.errors) {
10
+ console.error(`- ${error}`);
11
+ }
12
+ return 1;
13
+ }
14
+ console.log("OpenWorkflow repository validation passed.");
15
+ return 0;
16
+ }
17
+ function stringOption(args, name, defaultValue) {
18
+ const flag = `--${name}`;
19
+ const index = args.indexOf(flag);
20
+ if (index === -1) {
21
+ return defaultValue;
22
+ }
23
+ const value = args[index + 1];
24
+ if (!value || value.startsWith("--")) {
25
+ return defaultValue;
26
+ }
27
+ return value;
28
+ }
29
+ main()
30
+ .then((code) => {
31
+ process.exitCode = code;
32
+ })
33
+ .catch((error) => {
34
+ console.error(error instanceof Error ? error.message : String(error));
35
+ process.exitCode = 1;
36
+ });
37
+ //# sourceMappingURL=validateRepositoryContractsCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateRepositoryContractsCli.js","sourceRoot":"","sources":["../../../../packages/cli/src/dev/validateRepositoryContractsCli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,6DAA6D,CAAC;AAE1G,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,IAAY,EAAE,YAAoB;IACtE,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};