@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.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/adapters/codex/src/doctorCodexAdapter.d.ts +6 -0
- package/dist/adapters/codex/src/doctorCodexAdapter.js +124 -0
- package/dist/adapters/codex/src/doctorCodexAdapter.js.map +1 -0
- package/dist/adapters/codex/src/generateAgents.d.ts +2 -0
- package/dist/adapters/codex/src/generateAgents.js +40 -0
- package/dist/adapters/codex/src/generateAgents.js.map +1 -0
- package/dist/adapters/codex/src/generateCodexAdapter.d.ts +9 -0
- package/dist/adapters/codex/src/generateCodexAdapter.js +59 -0
- package/dist/adapters/codex/src/generateCodexAdapter.js.map +1 -0
- package/dist/adapters/codex/src/generateCommands.d.ts +6 -0
- package/dist/adapters/codex/src/generateCommands.js +205 -0
- package/dist/adapters/codex/src/generateCommands.js.map +1 -0
- package/dist/adapters/codex/src/generateSkills.d.ts +7 -0
- package/dist/adapters/codex/src/generateSkills.js +60 -0
- package/dist/adapters/codex/src/generateSkills.js.map +1 -0
- package/dist/adapters/codex/src/generatedFiles.d.ts +4 -0
- package/dist/adapters/codex/src/generatedFiles.js +67 -0
- package/dist/adapters/codex/src/generatedFiles.js.map +1 -0
- package/dist/adapters/codex/src/manifest.d.ts +4 -0
- package/dist/adapters/codex/src/manifest.js +40 -0
- package/dist/adapters/codex/src/manifest.js.map +1 -0
- package/dist/adapters/codex/src/templates.d.ts +7 -0
- package/dist/adapters/codex/src/templates.js +6 -0
- package/dist/adapters/codex/src/templates.js.map +1 -0
- package/dist/cli/src/args.d.ts +8 -0
- package/dist/cli/src/args.js +34 -0
- package/dist/cli/src/args.js.map +1 -0
- package/dist/cli/src/commands/doctor.d.ts +1 -0
- package/dist/cli/src/commands/doctor.js +26 -0
- package/dist/cli/src/commands/doctor.js.map +1 -0
- package/dist/cli/src/commands/init.d.ts +1 -0
- package/dist/cli/src/commands/init.js +52 -0
- package/dist/cli/src/commands/init.js.map +1 -0
- package/dist/cli/src/commands/shared.d.ts +4 -0
- package/dist/cli/src/commands/shared.js +19 -0
- package/dist/cli/src/commands/shared.js.map +1 -0
- package/dist/cli/src/commands/sync.d.ts +1 -0
- package/dist/cli/src/commands/sync.js +27 -0
- package/dist/cli/src/commands/sync.js.map +1 -0
- package/dist/cli/src/commands/validate.d.ts +1 -0
- package/dist/cli/src/commands/validate.js +17 -0
- package/dist/cli/src/commands/validate.js.map +1 -0
- package/dist/cli/src/dev/validateRepositoryContractsCli.d.ts +2 -0
- package/dist/cli/src/dev/validateRepositoryContractsCli.js +37 -0
- package/dist/cli/src/dev/validateRepositoryContractsCli.js.map +1 -0
- package/dist/cli/src/dev/verifyRuntimeSurface.d.ts +2 -0
- package/dist/cli/src/dev/verifyRuntimeSurface.js +344 -0
- package/dist/cli/src/dev/verifyRuntimeSurface.js.map +1 -0
- package/dist/cli/src/dev/verifyWorkflowE2E.d.ts +2 -0
- package/dist/cli/src/dev/verifyWorkflowE2E.js +366 -0
- package/dist/cli/src/dev/verifyWorkflowE2E.js.map +1 -0
- package/dist/cli/src/index.d.ts +2 -0
- package/dist/cli/src/index.js +51 -0
- package/dist/cli/src/index.js.map +1 -0
- package/dist/core/src/artifacts/registry.d.ts +53 -0
- package/dist/core/src/artifacts/registry.js +483 -0
- package/dist/core/src/artifacts/registry.js.map +1 -0
- package/dist/core/src/commands/registry.d.ts +36 -0
- package/dist/core/src/commands/registry.js +539 -0
- package/dist/core/src/commands/registry.js.map +1 -0
- package/dist/core/src/contracts/index.d.ts +23 -0
- package/dist/core/src/contracts/index.js +16 -0
- package/dist/core/src/contracts/index.js.map +1 -0
- package/dist/core/src/contracts/yaml.d.ts +2 -0
- package/dist/core/src/contracts/yaml.js +12 -0
- package/dist/core/src/contracts/yaml.js.map +1 -0
- package/dist/core/src/contracts.d.ts +23 -0
- package/dist/core/src/contracts.js +15 -0
- package/dist/core/src/contracts.js.map +1 -0
- package/dist/core/src/fs/index.d.ts +4 -0
- package/dist/core/src/fs/index.js +28 -0
- package/dist/core/src/fs/index.js.map +1 -0
- package/dist/core/src/fs.d.ts +4 -0
- package/dist/core/src/fs.js +28 -0
- package/dist/core/src/fs.js.map +1 -0
- package/dist/core/src/initOpenWorkflow.d.ts +7 -0
- package/dist/core/src/initOpenWorkflow.js +220 -0
- package/dist/core/src/initOpenWorkflow.js.map +1 -0
- package/dist/core/src/validateOpenWorkflow.d.ts +5 -0
- package/dist/core/src/validateOpenWorkflow.js +145 -0
- package/dist/core/src/validateOpenWorkflow.js.map +1 -0
- package/dist/core/src/validators/validateOpenWorkflow.d.ts +5 -0
- package/dist/core/src/validators/validateOpenWorkflow.js +551 -0
- package/dist/core/src/validators/validateOpenWorkflow.js.map +1 -0
- package/dist/core/src/validators/validateRepositoryContracts.d.ts +2 -0
- package/dist/core/src/validators/validateRepositoryContracts.js +827 -0
- package/dist/core/src/validators/validateRepositoryContracts.js.map +1 -0
- package/dist/core/src/workflow/initOpenWorkflow.d.ts +7 -0
- package/dist/core/src/workflow/initOpenWorkflow.js +182 -0
- package/dist/core/src/workflow/initOpenWorkflow.js.map +1 -0
- package/dist/core/src/yaml.d.ts +2 -0
- package/dist/core/src/yaml.js +12 -0
- package/dist/core/src/yaml.js.map +1 -0
- package/package.json +55 -0
- package/references/artifact-authoring-templates.md +78 -0
- package/references/audit-first-discovery-loop.md +85 -0
- package/references/contract-graph.md +129 -0
- package/references/discovery-artifact-contracts.md +155 -0
- package/references/engineering-skill-reference-research.md +204 -0
- package/references/npm-cli-architecture.md +63 -0
- package/references/runtime-command-surface.md +169 -0
- package/schemas/artifact-contracts.schema.json +130 -0
- package/schemas/change.schema.json +71 -0
- package/schemas/contract-graph.schema.json +80 -0
- package/schemas/decision-record.schema.json +92 -0
- package/schemas/disclosure-levels.schema.json +66 -0
- package/schemas/openworkflow-contract.schema.json +88 -0
- package/schemas/product-design.schema.json +356 -0
- package/schemas/prototype-evidence.schema.json +325 -0
- package/schemas/prototype.schema.json +149 -0
- package/schemas/validation-target.schema.json +127 -0
- package/schemas/validation.schema.json +123 -0
- package/schemas/vision-session.schema.json +78 -0
- package/schemas/work-items.schema.json +87 -0
- package/schemas/workflow-index.schema.json +70 -0
- package/skills/build-prototype/SKILL.md +87 -0
- package/skills/build-prototype/agents/openai.yaml +4 -0
- package/skills/build-prototype/references/prototype-protocol.md +56 -0
- package/skills/build-prototype/scripts/init_prototype.py +260 -0
- package/skills/build-team/SKILL.md +292 -0
- package/skills/build-team/agents/openai.yaml +4 -0
- package/skills/build-team/references/runtime-schema.md +275 -0
- package/skills/build-team/references/team-protocol.md +244 -0
- package/skills/build-team/scripts/init_team_runtime.py +431 -0
- package/skills/build-validation/SKILL.md +81 -0
- package/skills/build-validation/agents/openai.yaml +4 -0
- package/skills/build-validation/references/validation-protocol.md +51 -0
- package/skills/build-validation/scripts/init_validation.py +194 -0
- package/skills/build-workflow/SKILL.md +65 -0
- package/skills/build-workflow/agents/openai.yaml +4 -0
- package/skills/build-workflow/references/workflow-layout.md +57 -0
- package/skills/build-workflow/scripts/init_workflow.py +423 -0
- package/skills/run-team/SKILL.md +93 -0
- package/skills/run-team/agents/openai.yaml +4 -0
- package/skills/run-team/references/delegation-and-agent-lifecycle.md +78 -0
- package/skills/run-team/references/run-loop.md +73 -0
- package/skills/run-team/references/runtime-audit.md +56 -0
- package/skills/run-team/references/scope-selection.md +64 -0
- package/skills/run-team/scripts/audit_team_runtime.py +173 -0
- package/skills/run-team/scripts/init_next_scope.py +304 -0
- package/templates/README.md +5 -0
- package/templates/codex/README.md +4 -0
- 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 @@
|
|
|
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,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,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"}
|