opencode-plugin-flow 4.1.2 → 4.1.4

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/dist/index.js.map CHANGED
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/config-shared.ts", "../src/distribution/sync.ts", "../src/distribution/flow-skill-definitions.ts", "../src/runtime/workspace.ts", "../src/runtime/json/strict-object.ts", "../src/runtime/schema.ts", "../src/adapters/opencode/config.ts", "../src/adapters/opencode/logging.ts", "../src/runtime/api.ts", "../src/runtime/transitions.ts", "../src/runtime/time.ts", "../src/adapters/opencode/sdk.ts", "../src/adapters/opencode/tools.ts", "../src/adapters/opencode/plugin.ts"],
4
4
  "sourcesContent": [
5
- "import flowReviewReviewRubricDoc from \"../skills/flow-review/references/review-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowReviewSkillDoc from \"../skills/flow-review/SKILL.md\" with {\n\ttype: \"text\",\n};\n\nexport type FlowPermissionConfig = {\n\tedit?: string;\n\tbash?: string;\n\ttask?: Record<string, string>;\n\t[toolPattern: string]: string | Record<string, string> | undefined;\n};\n\nexport type FlowAgentConfig = {\n\tmode: \"subagent\";\n\tdescription: string;\n\tprompt: string;\n\thidden?: boolean;\n\tpermission?: FlowPermissionConfig;\n};\n\nexport type FlowCommandConfig = {\n\tdescription: string;\n\ttemplate: string;\n\tagent?: string;\n\tsubtask?: boolean;\n};\n\nexport type MutableFlowConfig = {\n\tagent?: Record<string, unknown>;\n\tcommand?: Record<string, unknown>;\n};\n\nconst FLOW_REVIEW_FALLBACK_PROMPT = [\n\t\"Use Flow review mode. Load `flow-review` when the skill registry is current. If Flow setup reports stale skills or the skill loader reports that `flow-review` is unavailable, continue with the bundled review instructions below instead.\",\n\t\"\",\n\t\"## Bundled Flow review fallback\",\n\t\"\",\n\t\"## Bundled flow-review/SKILL.md\",\n\tflowReviewSkillDoc,\n\t\"## Bundled flow-review/references/review-rubric.md\",\n\tflowReviewReviewRubricDoc,\n].join(\"\\n\\n\");\n\nexport const FLOW_CORE_AGENTS = {\n\t\"flow-reviewer\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription: \"Internal read-only reviewer for Flow-guided work.\",\n\t\tprompt: FLOW_REVIEW_FALLBACK_PROMPT,\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"deny\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-evidence-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal read-only evidence worker for Flow planning and execution support.\",\n\t\tprompt:\n\t\t\t\"Use Flow evidence mode. Inspect only the assigned slice, do not edit files, do not call state-changing Flow tools, and return coverage, evidence inspected, confidence-tagged findings or facts, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"deny\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-validation-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal validation worker for Flow check selection and command evidence.\",\n\t\tprompt:\n\t\t\t\"Use Flow validation mode. Run only manager-specified commands or propose focused checks, do not edit files, do not call state-changing Flow tools, and report exact command, status, raw outcome summary, coverage, confidence, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-audit-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal read-only audit worker for refuted or surviving finding candidates.\",\n\t\tprompt:\n\t\t\t\"Use Flow audit mode. Inspect only the assigned slice, actively refute candidate findings before reporting them, do not edit files, do not call state-changing Flow tools, and return coverage, evidence, guards checked, confidence, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-candidate-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal candidate implementation worker for isolated Flow worktrees or exact non-overlapping path ownership.\",\n\t\tprompt:\n\t\t\t\"Use Flow candidate-implementation mode only when the manager assigned an isolated worktree or exact non-overlapping path ownership. Do not edit .flow/**, do not call state-changing Flow tools, do not complete Flow state, and return changed or proposed patch, verification run, coverage, confidence, merge risks, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"ask\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-verifier-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal verifier worker for checking Flow worker claims against cited evidence.\",\n\t\tprompt:\n\t\t\t\"Use Flow verifier mode. Verify only the assigned claims against the provided sources, commands, counts, or current docs. Do not generate new scope, do not edit files, do not call state-changing Flow tools, and return supported, partly-supported, unsupported, or source-not-found per claim with evidence, confidence, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n} satisfies Record<string, FlowAgentConfig>;\n\nexport const FLOW_CORE_COMMANDS = {\n\t\"flow-auto\": {\n\t\tdescription: \"Drive Flow skills against the minimal runtime ledger\",\n\t\ttemplate:\n\t\t\t\"Load the `flow` skill and drive the Flow loop until completion or a real blocker: $ARGUMENTS\",\n\t},\n\t\"flow-plan\": {\n\t\tdescription: \"Create or approve a Flow plan\",\n\t\ttemplate: \"Load the `flow-plan` skill and plan: $ARGUMENTS\",\n\t},\n\t\"flow-run\": {\n\t\tdescription: \"Run one approved Flow feature\",\n\t\ttemplate:\n\t\t\t\"Load the `flow-run` skill and execute the next approved feature. $ARGUMENTS\",\n\t},\n\t\"flow-review\": {\n\t\tdescription: \"Run a read-only Flow review\",\n\t\tagent: \"flow-reviewer\",\n\t\tsubtask: true,\n\t\ttemplate:\n\t\t\t\"Load `flow-review`; if loading fails because the skill is unavailable, use the bundled review fallback. Review: $ARGUMENTS\",\n\t},\n\t\"flow-status\": {\n\t\tdescription: \"Inspect the active Flow session\",\n\t\ttemplate: \"Call flow_status and report the session state and next action.\",\n\t},\n} satisfies Record<string, FlowCommandConfig>;\n\nexport function createFlowCoreConfigEntries() {\n\treturn {\n\t\tagent: Object.fromEntries(\n\t\t\tObject.entries(FLOW_CORE_AGENTS).map(([name, value]) => {\n\t\t\t\tconst permission = value.permission\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...value.permission,\n\t\t\t\t\t\t\t...(value.permission.task\n\t\t\t\t\t\t\t\t? { task: { ...value.permission.task } }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined;\n\t\t\t\treturn [\n\t\t\t\t\tname,\n\t\t\t\t\t{\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\t...(permission ? { permission } : {}),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t}),\n\t\t),\n\t\tcommand: Object.fromEntries(\n\t\t\tObject.entries(FLOW_CORE_COMMANDS).map(([name, value]) => [\n\t\t\t\tname,\n\t\t\t\t{ ...value },\n\t\t\t]),\n\t\t),\n\t};\n}\n\nexport function applyFlowConfig(config: MutableFlowConfig): void {\n\tconst entries = createFlowCoreConfigEntries();\n\tconfig.agent = { ...(config.agent ?? {}), ...entries.agent };\n\tconfig.command = { ...(config.command ?? {}), ...entries.command };\n}\n",
5
+ "import flowReviewReviewRubricDoc from \"../skills/flow-review/references/review-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowReviewSkillDoc from \"../skills/flow-review/SKILL.md\" with {\n\ttype: \"text\",\n};\n\nexport type FlowPermissionConfig = {\n\tedit?: string;\n\tbash?: string;\n\ttask?: Record<string, string>;\n\t[toolPattern: string]: string | Record<string, string> | undefined;\n};\n\nexport type FlowAgentConfig = {\n\tmode: \"subagent\";\n\tdescription: string;\n\tprompt: string;\n\thidden?: boolean;\n\tpermission?: FlowPermissionConfig;\n};\n\nexport type FlowCommandConfig = {\n\tdescription: string;\n\ttemplate: string;\n\tagent?: string;\n\tsubtask?: boolean;\n};\n\nexport type MutableFlowConfig = {\n\tagent?: Record<string, unknown>;\n\tcommand?: Record<string, unknown>;\n};\n\nconst FLOW_REVIEW_FALLBACK_PROMPT = [\n\t\"Use Flow review mode. Call `flow_status` before loading review skills. If Flow setup reports stale/unavailable skills or the skill loader reports that `flow-review` is unavailable, continue with the bundled review instructions below as advisory review only. Do not present advisory review as Flow-gated `featureReview` or `finalReview` evidence.\",\n\t\"\",\n\t\"## Bundled Flow review fallback\",\n\t\"\",\n\t\"## Bundled flow-review/SKILL.md\",\n\tflowReviewSkillDoc,\n\t\"## Bundled flow-review/references/review-rubric.md\",\n\tflowReviewReviewRubricDoc,\n].join(\"\\n\\n\");\n\nconst FLOW_SKILL_LOAD_PREFLIGHT =\n\t\"Call `flow_status` first. If the result includes `setup.skills`, report the setup status and do not load Flow skills in this startup.\";\n\nfunction flowSkillCommandTemplate(skillName: string, action: string): string {\n\treturn `${FLOW_SKILL_LOAD_PREFLIGHT} Otherwise load the \\`${skillName}\\` skill and ${action}`;\n}\n\nexport const FLOW_CORE_AGENTS = {\n\t\"flow-reviewer\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription: \"Internal read-only reviewer for Flow-guided work.\",\n\t\tprompt: FLOW_REVIEW_FALLBACK_PROMPT,\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"deny\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-evidence-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal read-only evidence worker for Flow planning and execution support.\",\n\t\tprompt:\n\t\t\t\"Use Flow evidence mode. Inspect only the assigned slice, do not edit files, do not call state-changing Flow tools, and return coverage, evidence inspected, confidence-tagged findings or facts, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"deny\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-validation-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal validation worker for Flow check selection and command evidence.\",\n\t\tprompt:\n\t\t\t\"Use Flow validation mode. Run only manager-specified commands or propose focused checks, do not edit files, do not call state-changing Flow tools, and report exact command, status, raw outcome summary, coverage, confidence, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-audit-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal read-only audit worker for refuted or surviving finding candidates.\",\n\t\tprompt:\n\t\t\t\"Use Flow audit mode. Inspect only the assigned slice, actively refute candidate findings before reporting them, do not edit files, do not call state-changing Flow tools, and return coverage, evidence, guards checked, confidence, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-candidate-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal candidate implementation worker for isolated Flow worktrees or exact non-overlapping path ownership.\",\n\t\tprompt:\n\t\t\t\"Use Flow candidate-implementation mode only when the manager assigned an isolated worktree or exact non-overlapping path ownership. Do not edit .flow/**, do not call state-changing Flow tools, do not complete Flow state, and return changed or proposed patch, verification run, coverage, confidence, merge risks, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"ask\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n\t\"flow-verifier-worker\": {\n\t\tmode: \"subagent\",\n\t\thidden: true,\n\t\tdescription:\n\t\t\t\"Internal verifier worker for checking Flow worker claims against cited evidence.\",\n\t\tprompt:\n\t\t\t\"Use Flow verifier mode. Verify only the assigned claims against the provided sources, commands, counts, or current docs. Do not generate new scope, do not edit files, do not call state-changing Flow tools, and return supported, partly-supported, unsupported, or source-not-found per claim with evidence, confidence, gaps, and manager follow-ups.\",\n\t\tpermission: {\n\t\t\tedit: \"deny\",\n\t\t\tbash: \"ask\",\n\t\t\ttask: { \"*\": \"deny\" },\n\t\t\t\"flow_*\": \"deny\",\n\t\t\tflow_status: \"allow\",\n\t\t},\n\t},\n} satisfies Record<string, FlowAgentConfig>;\n\nexport const FLOW_CORE_COMMANDS = {\n\t\"flow-auto\": {\n\t\tdescription: \"Drive Flow skills against the minimal runtime ledger\",\n\t\ttemplate: flowSkillCommandTemplate(\n\t\t\t\"flow\",\n\t\t\t\"drive the Flow loop until completion or a real blocker: $ARGUMENTS\",\n\t\t),\n\t},\n\t\"flow-plan\": {\n\t\tdescription: \"Create or approve a Flow plan\",\n\t\ttemplate: flowSkillCommandTemplate(\"flow-plan\", \"plan: $ARGUMENTS\"),\n\t},\n\t\"flow-run\": {\n\t\tdescription: \"Run one approved Flow feature\",\n\t\ttemplate: flowSkillCommandTemplate(\n\t\t\t\"flow-run\",\n\t\t\t\"execute the next approved feature. $ARGUMENTS\",\n\t\t),\n\t},\n\t\"flow-review\": {\n\t\tdescription: \"Run a read-only Flow review\",\n\t\tagent: \"flow-reviewer\",\n\t\tsubtask: true,\n\t\ttemplate: `${FLOW_SKILL_LOAD_PREFLIGHT} If setup is clear, load \\`flow-review\\`; if loading fails because the skill is unavailable, use the bundled review fallback as advisory review only. Review: $ARGUMENTS`,\n\t},\n\t\"flow-status\": {\n\t\tdescription: \"Inspect the active Flow session\",\n\t\ttemplate: \"Call flow_status and report the session state and next action.\",\n\t},\n} satisfies Record<string, FlowCommandConfig>;\n\nexport function createFlowCoreConfigEntries() {\n\treturn {\n\t\tagent: Object.fromEntries(\n\t\t\tObject.entries(FLOW_CORE_AGENTS).map(([name, value]) => {\n\t\t\t\tconst permission = value.permission\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...value.permission,\n\t\t\t\t\t\t\t...(value.permission.task\n\t\t\t\t\t\t\t\t? { task: { ...value.permission.task } }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined;\n\t\t\t\treturn [\n\t\t\t\t\tname,\n\t\t\t\t\t{\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\t...(permission ? { permission } : {}),\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t}),\n\t\t),\n\t\tcommand: Object.fromEntries(\n\t\t\tObject.entries(FLOW_CORE_COMMANDS).map(([name, value]) => [\n\t\t\t\tname,\n\t\t\t\t{ ...value },\n\t\t\t]),\n\t\t),\n\t};\n}\n\nexport function applyFlowConfig(config: MutableFlowConfig): void {\n\tconst entries = createFlowCoreConfigEntries();\n\tconfig.agent = { ...(config.agent ?? {}), ...entries.agent };\n\tconfig.command = { ...(config.command ?? {}), ...entries.command };\n}\n",
6
6
  "import { createHash } from \"node:crypto\";\nimport { mkdir, readdir, readFile, rm, writeFile } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join, normalize, sep } from \"node:path\";\nimport {\n\tFLOW_SKILL_DEFINITIONS,\n\ttype FlowSkillDefinition,\n} from \"./flow-skill-definitions\";\n\nconst MARKER_FILENAME = \".flow-skill-version\";\n\ntype FlowLog = (level: \"info\" | \"warn\" | \"error\", message: string) => void;\n\nexport type FlowSkillSyncAction =\n\t| \"installed\"\n\t| \"updated\"\n\t| \"updated_with_backup\"\n\t| \"marker_updated\"\n\t| \"unchanged\"\n\t| \"skipped_foreign\";\n\nexport type FlowSkillSyncResult = {\n\tname: string;\n\taction: FlowSkillSyncAction;\n};\n\nexport type FlowSkillSyncHealth = {\n\tstatus: \"ok\" | \"restart_required\" | \"action_required\" | \"error\";\n\tversion: string;\n\troot: string;\n\tcheckedAt: string;\n\texpectedSkills: string[];\n\tresults: FlowSkillSyncResult[];\n\tchangedSkills: string[];\n\tactionRequiredSkills: string[];\n\trestartRequired: boolean;\n\tsummary: string;\n\terror?: string;\n};\n\nexport type FlowSkillSetupStatus = {\n\tstatus: \"restart_required\" | \"action_required\" | \"sync_failed\";\n\tsummary: string;\n\tversion: string;\n\troot: string;\n\tchanged?: string[];\n\tactionRequired?: string[];\n\terror?: string;\n};\n\nexport type FlowSkillDoctorSkill = {\n\tname: string;\n\tpath: string;\n\tstatus: \"ok\" | \"missing\" | \"foreign\" | \"incomplete\" | \"edited\" | \"outdated\";\n\tmarkerVersion: string | null;\n\tmissingFiles: string[];\n\teditedFiles: string[];\n\toutdatedFiles: string[];\n};\n\nexport type FlowSkillDoctorReport = {\n\tstatus: \"ok\" | \"sync_required\" | \"action_required\";\n\tversion: string;\n\troot: string;\n\texpectedSkills: string[];\n\tskills: FlowSkillDoctorSkill[];\n\tsyncRequiredSkills: string[];\n\tactionRequiredSkills: string[];\n\tunmanagedFlowSkills: string[];\n};\n\nlet latestFlowSkillSyncHealth: FlowSkillSyncHealth | null = null;\n\nfunction homeDir(): string {\n\treturn process.env.HOME ?? process.env.USERPROFILE ?? \"\";\n}\n\nexport function resolveFlowSkillsRoot(home = homeDir()): string {\n\treturn join(home, \".config\", \"opencode\", \"skills\");\n}\n\nfunction sha256(value: string): string {\n\treturn createHash(\"sha256\").update(value).digest(\"hex\");\n}\n\nfunction markerFor(definition: FlowSkillDefinition, version: string): string {\n\treturn [\n\t\t`version=${version}`,\n\t\t...definition.files.map(\n\t\t\t(file) => `file=${file.relativePath} sha256=${sha256(file.content)}`,\n\t\t),\n\t\t\"\",\n\t].join(\"\\n\");\n}\n\nasync function optionalRead(path: string): Promise<string | null> {\n\ttry {\n\t\treturn await readFile(path, \"utf8\");\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code === \"ENOENT\") return null;\n\t\tthrow error;\n\t}\n}\n\nfunction parseMarkerFiles(content: string | null): Map<string, string> {\n\tconst files = new Map<string, string>();\n\tif (!content) return files;\n\tfor (const line of content.split(/\\r?\\n/)) {\n\t\tconst match =\n\t\t\t/^file=(.+) sha256=([a-f0-9]{64})$/.exec(line) ??\n\t\t\t/^file=(.+)=sha256:([a-f0-9]{64})$/.exec(line);\n\t\tif (match?.[1] && match[2]) files.set(match[1], match[2]);\n\t\tconst topLevelHash = /^hash=sha256:([a-f0-9]{64})$/.exec(line);\n\t\tif (topLevelHash?.[1] && !files.has(\"SKILL.md\")) {\n\t\t\tfiles.set(\"SKILL.md\", topLevelHash[1]);\n\t\t}\n\t}\n\treturn files;\n}\n\nfunction parseMarkerVersion(content: string | null): string | null {\n\tif (!content) return null;\n\tfor (const line of content.split(/\\r?\\n/)) {\n\t\tconst match = /^version=(.+)$/.exec(line);\n\t\tif (match?.[1]) return match[1];\n\t}\n\treturn null;\n}\n\nfunction resolveSkillFile(folder: string, relativePath: string): string {\n\tconst resolved = normalize(join(folder, ...relativePath.split(\"/\")));\n\tif (resolved !== folder && resolved.startsWith(`${folder}${sep}`)) {\n\t\treturn resolved;\n\t}\n\tthrow new Error(`Unsafe skill file path '${relativePath}'.`);\n}\n\nasync function syncSkill(\n\tdefinition: FlowSkillDefinition,\n\tversion: string,\n\troot: string,\n): Promise<FlowSkillSyncResult> {\n\tconst folder = join(root, definition.name);\n\tconst markerPath = join(folder, MARKER_FILENAME);\n\tconst markerContent = await optionalRead(markerPath);\n\tconst existingMarkerHashes = parseMarkerFiles(markerContent);\n\tconst existingSkill = await optionalRead(join(folder, \"SKILL.md\"));\n\tif (existingSkill !== null && markerContent === null) {\n\t\treturn { name: definition.name, action: \"skipped_foreign\" as const };\n\t}\n\n\tlet changed = false;\n\tlet backedUp = false;\n\tfor (const file of definition.files) {\n\t\tconst path = resolveSkillFile(folder, file.relativePath);\n\t\tconst existing = await optionalRead(path);\n\t\tif (existing === file.content) continue;\n\t\tchanged = true;\n\t\tconst recordedHash = existingMarkerHashes.get(file.relativePath);\n\t\tconst userEdited =\n\t\t\texisting !== null &&\n\t\t\t(recordedHash\n\t\t\t\t? sha256(existing) !== recordedHash\n\t\t\t\t: markerContent !== null);\n\t\tif (userEdited) {\n\t\t\tawait writeFile(`${path}.backup`, existing, \"utf8\");\n\t\t\tbackedUp = true;\n\t\t}\n\t}\n\n\tif (!changed && markerContent === markerFor(definition, version)) {\n\t\treturn { name: definition.name, action: \"unchanged\" };\n\t}\n\n\tif (!changed) {\n\t\tawait writeFile(markerPath, markerFor(definition, version), \"utf8\");\n\t\treturn { name: definition.name, action: \"marker_updated\" };\n\t}\n\n\tconst managedSkillExists = markerContent !== null;\n\tfor (const file of definition.files) {\n\t\tconst path = resolveSkillFile(folder, file.relativePath);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, file.content, \"utf8\");\n\t}\n\tawait writeFile(markerPath, markerFor(definition, version), \"utf8\");\n\treturn {\n\t\tname: definition.name,\n\t\taction: backedUp\n\t\t\t? \"updated_with_backup\"\n\t\t\t: managedSkillExists\n\t\t\t\t? \"updated\"\n\t\t\t\t: \"installed\",\n\t};\n}\n\nfunction expectedSkillNames(): string[] {\n\treturn FLOW_SKILL_DEFINITIONS.map((definition) => definition.name);\n}\n\nfunction createHealth(\n\tversion: string,\n\troot: string,\n\tresults: FlowSkillSyncResult[],\n): FlowSkillSyncHealth {\n\tconst changedSkills = results\n\t\t.filter((result) =>\n\t\t\t[\"installed\", \"updated\", \"updated_with_backup\"].includes(result.action),\n\t\t)\n\t\t.map((result) => result.name);\n\tconst actionRequiredSkills = results\n\t\t.filter((result) => result.action === \"skipped_foreign\")\n\t\t.map((result) => result.name);\n\tconst status =\n\t\tactionRequiredSkills.length > 0\n\t\t\t? \"action_required\"\n\t\t\t: changedSkills.length > 0\n\t\t\t\t? \"restart_required\"\n\t\t\t\t: \"ok\";\n\tconst summary =\n\t\tstatus === \"restart_required\"\n\t\t\t? `Flow installed or updated skills during this startup (${changedSkills.join(\", \")}). Restart OpenCode before loading Flow skills.`\n\t\t\t: status === \"action_required\"\n\t\t\t\t? `Flow found user-owned skill folders for managed skills (${actionRequiredSkills.join(\", \")}). Run ${formatFlowDoctorCommand(version)} for repair guidance.`\n\t\t\t\t: \"Flow skills are synced.\";\n\treturn {\n\t\tstatus,\n\t\tversion,\n\t\troot,\n\t\tcheckedAt: new Date().toISOString(),\n\t\texpectedSkills: expectedSkillNames(),\n\t\tresults,\n\t\tchangedSkills,\n\t\tactionRequiredSkills,\n\t\trestartRequired: status === \"restart_required\",\n\t\tsummary,\n\t};\n}\n\nfunction createErrorHealth(\n\tversion: string,\n\troot: string,\n\terror: unknown,\n): FlowSkillSyncHealth {\n\tconst message = error instanceof Error ? error.message : String(error);\n\treturn {\n\t\tstatus: \"error\",\n\t\tversion,\n\t\troot,\n\t\tcheckedAt: new Date().toISOString(),\n\t\texpectedSkills: expectedSkillNames(),\n\t\tresults: [],\n\t\tchangedSkills: [],\n\t\tactionRequiredSkills: [],\n\t\trestartRequired: false,\n\t\tsummary: `Flow skill sync failed: ${message}`,\n\t\terror: message,\n\t};\n}\n\nexport function getLatestFlowSkillSyncHealth(): FlowSkillSyncHealth | null {\n\treturn latestFlowSkillSyncHealth;\n}\n\nexport function formatFlowDoctorCommand(version: string): string {\n\treturn `npx -y opencode-plugin-flow@${version} doctor`;\n}\n\nexport function getFlowSkillSetupStatus(\n\thealth = latestFlowSkillSyncHealth,\n): FlowSkillSetupStatus | null {\n\tif (!health || health.status === \"ok\") return null;\n\tconst status = health.status === \"error\" ? \"sync_failed\" : health.status;\n\treturn {\n\t\tstatus,\n\t\tsummary: health.summary,\n\t\tversion: health.version,\n\t\troot: health.root,\n\t\t...(health.changedSkills.length > 0\n\t\t\t? { changed: health.changedSkills }\n\t\t\t: {}),\n\t\t...(health.actionRequiredSkills.length > 0\n\t\t\t? { actionRequired: health.actionRequiredSkills }\n\t\t\t: {}),\n\t\t...(health.error ? { error: health.error } : {}),\n\t};\n}\n\nexport function formatFlowSkillSetupWarning(\n\thealth = latestFlowSkillSyncHealth,\n): string | null {\n\tconst setup = getFlowSkillSetupStatus(health);\n\tif (!setup) return null;\n\treturn [\n\t\t\"Flow setup warning:\",\n\t\tsetup.summary,\n\t\t`Skills root: ${setup.root}`,\n\t\t`Use \\`${formatFlowDoctorCommand(setup.version)}\\` for details.`,\n\t].join(\"\\n\");\n}\n\nexport function resolveFlowPluginVersion(): string {\n\tif (process.env.npm_package_version) return process.env.npm_package_version;\n\ttry {\n\t\tconst require = createRequire(import.meta.url);\n\t\tfor (const path of [\"../package.json\", \"../../package.json\"]) {\n\t\t\ttry {\n\t\t\t\tconst manifest = require(path) as { version?: string };\n\t\t\t\tif (manifest.version) return manifest.version;\n\t\t\t} catch {\n\t\t\t\t// Try the next layout: source tree and bundled dist differ.\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// Fall through to sentinel.\n\t}\n\treturn \"0.0.0\";\n}\n\nexport async function syncFlowSkills(version: string, home = homeDir()) {\n\tconst root = resolveFlowSkillsRoot(home);\n\treturn Promise.all(\n\t\tFLOW_SKILL_DEFINITIONS.map((definition) =>\n\t\t\tsyncSkill(definition, version, root),\n\t\t),\n\t);\n}\n\nexport async function runFlowSkillSync(\n\tversion: string,\n\tlog: FlowLog,\n\thome = homeDir(),\n): Promise<void> {\n\tconst root = resolveFlowSkillsRoot(home);\n\ttry {\n\t\tconst results = await syncFlowSkills(version, home);\n\t\tlatestFlowSkillSyncHealth = createHealth(version, root, results);\n\t\tconst changed = results.filter(\n\t\t\t(result) =>\n\t\t\t\tresult.action === \"installed\" ||\n\t\t\t\tresult.action === \"updated\" ||\n\t\t\t\tresult.action === \"updated_with_backup\",\n\t\t);\n\t\tif (changed.length > 0) {\n\t\t\tlog(\n\t\t\t\t\"info\",\n\t\t\t\t`Flow synced skills (${changed.map((item) => `${item.name}:${item.action}`).join(\", \")}). Restart OpenCode if skills were just installed.`,\n\t\t\t);\n\t\t}\n\t\tif (latestFlowSkillSyncHealth.status === \"action_required\") {\n\t\t\tlog(\"warn\", latestFlowSkillSyncHealth.summary);\n\t\t}\n\t} catch (error) {\n\t\tlatestFlowSkillSyncHealth = createErrorHealth(version, root, error);\n\t\tlog(\"warn\", latestFlowSkillSyncHealth.summary);\n\t}\n}\n\nexport async function inspectFlowSkillInstall(\n\tversion = resolveFlowPluginVersion(),\n\thome = homeDir(),\n): Promise<FlowSkillDoctorReport> {\n\tconst root = resolveFlowSkillsRoot(home);\n\tconst expected = new Set(expectedSkillNames());\n\tconst skills = await Promise.all(\n\t\tFLOW_SKILL_DEFINITIONS.map(async (definition) => {\n\t\t\tconst folder = join(root, definition.name);\n\t\t\tconst markerContent = await optionalRead(join(folder, MARKER_FILENAME));\n\t\t\tconst markerVersion = parseMarkerVersion(markerContent);\n\t\t\tconst markerHashes = parseMarkerFiles(markerContent);\n\t\t\tconst existingSkill = await optionalRead(join(folder, \"SKILL.md\"));\n\t\t\tif (existingSkill === null) {\n\t\t\t\treturn {\n\t\t\t\t\tname: definition.name,\n\t\t\t\t\tpath: folder,\n\t\t\t\t\tstatus: \"missing\" as const,\n\t\t\t\t\tmarkerVersion,\n\t\t\t\t\tmissingFiles: definition.files.map((file) => file.relativePath),\n\t\t\t\t\teditedFiles: [],\n\t\t\t\t\toutdatedFiles: [],\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (markerContent === null) {\n\t\t\t\treturn {\n\t\t\t\t\tname: definition.name,\n\t\t\t\t\tpath: folder,\n\t\t\t\t\tstatus: \"foreign\" as const,\n\t\t\t\t\tmarkerVersion,\n\t\t\t\t\tmissingFiles: [],\n\t\t\t\t\teditedFiles: [],\n\t\t\t\t\toutdatedFiles: [],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst missingFiles: string[] = [];\n\t\t\tconst editedFiles: string[] = [];\n\t\t\tconst outdatedFiles: string[] = [];\n\t\t\tfor (const file of definition.files) {\n\t\t\t\tconst existing = await optionalRead(\n\t\t\t\t\tresolveSkillFile(folder, file.relativePath),\n\t\t\t\t);\n\t\t\t\tif (existing === null) {\n\t\t\t\t\tmissingFiles.push(file.relativePath);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (existing === file.content) continue;\n\t\t\t\tconst recordedHash = markerHashes.get(file.relativePath);\n\t\t\t\tif (recordedHash && sha256(existing) !== recordedHash) {\n\t\t\t\t\teditedFiles.push(file.relativePath);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\toutdatedFiles.push(file.relativePath);\n\t\t\t}\n\t\t\tconst markerDrift = markerContent !== markerFor(definition, version);\n\t\t\tconst status: FlowSkillDoctorSkill[\"status\"] =\n\t\t\t\tmissingFiles.length > 0\n\t\t\t\t\t? \"incomplete\"\n\t\t\t\t\t: editedFiles.length > 0\n\t\t\t\t\t\t? \"edited\"\n\t\t\t\t\t\t: markerDrift || outdatedFiles.length > 0\n\t\t\t\t\t\t\t? \"outdated\"\n\t\t\t\t\t\t\t: \"ok\";\n\t\t\treturn {\n\t\t\t\tname: definition.name,\n\t\t\t\tpath: folder,\n\t\t\t\tstatus,\n\t\t\t\tmarkerVersion,\n\t\t\t\tmissingFiles,\n\t\t\t\teditedFiles,\n\t\t\t\toutdatedFiles,\n\t\t\t};\n\t\t}),\n\t);\n\n\tlet entries: string[] = [];\n\ttry {\n\t\tentries = await readdir(root);\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code !== \"ENOENT\") throw error;\n\t}\n\tconst unmanagedFlowSkills = entries\n\t\t.filter(\n\t\t\t(name) =>\n\t\t\t\t(name === \"flow\" || name.startsWith(\"flow-\")) && !expected.has(name),\n\t\t)\n\t\t.map((name) => join(root, name));\n\n\tconst syncRequiredSkills = skills\n\t\t.filter((skill) =>\n\t\t\t[\"missing\", \"incomplete\", \"outdated\"].includes(skill.status),\n\t\t)\n\t\t.map((skill) => skill.name);\n\tconst actionRequiredSkills = skills\n\t\t.filter((skill) => [\"foreign\", \"edited\"].includes(skill.status))\n\t\t.map((skill) => skill.name);\n\tconst actionRequired = actionRequiredSkills.length > 0;\n\tconst syncRequired = syncRequiredSkills.length > 0;\n\treturn {\n\t\tstatus: actionRequired\n\t\t\t? \"action_required\"\n\t\t\t: syncRequired\n\t\t\t\t? \"sync_required\"\n\t\t\t\t: \"ok\",\n\t\tversion,\n\t\troot,\n\t\texpectedSkills: [...expected],\n\t\tskills,\n\t\tsyncRequiredSkills,\n\t\tactionRequiredSkills,\n\t\tunmanagedFlowSkills,\n\t};\n}\n\nfunction appendSkillList(\n\tlines: string[],\n\tlabel: string,\n\tskills: string[],\n): void {\n\tif (skills.length === 0) return;\n\tlines.push(`- ${label}: ${skills.join(\", \")}`);\n}\n\nexport function formatFlowSkillDoctor(report: FlowSkillDoctorReport): string {\n\tconst lines = [\n\t\t\"Flow doctor\",\n\t\t`- status: ${report.status}`,\n\t\t`- plugin version: ${report.version}`,\n\t\t`- skills root: ${report.root}`,\n\t\t`- expected skills: ${report.expectedSkills.join(\", \")}`,\n\t];\n\tappendSkillList(\n\t\tlines,\n\t\t\"startup sync can install/update\",\n\t\treport.syncRequiredSkills,\n\t);\n\tappendSkillList(lines, \"needs user decision\", report.actionRequiredSkills);\n\tlines.push(\"\", \"Skills:\");\n\tfor (const skill of report.skills) {\n\t\tlines.push(\n\t\t\t`- ${skill.name}: ${skill.status} (${skill.path})${\n\t\t\t\tskill.markerVersion ? ` marker=${skill.markerVersion}` : \"\"\n\t\t\t}`,\n\t\t);\n\t\tif (skill.missingFiles.length > 0) {\n\t\t\tlines.push(` missing: ${skill.missingFiles.join(\", \")}`);\n\t\t}\n\t\tif (skill.editedFiles.length > 0) {\n\t\t\tlines.push(` edited: ${skill.editedFiles.join(\", \")}`);\n\t\t}\n\t\tif (skill.outdatedFiles.length > 0) {\n\t\t\tlines.push(` outdated: ${skill.outdatedFiles.join(\", \")}`);\n\t\t}\n\t}\n\tif (report.unmanagedFlowSkills.length > 0) {\n\t\tlines.push(\"\", \"Unmanaged Flow-like skill folders:\");\n\t\tfor (const path of report.unmanagedFlowSkills) lines.push(`- ${path}`);\n\t}\n\tlines.push(\"\", \"Recommendation:\");\n\tif (report.status === \"ok\") {\n\t\tlines.push(\"- Flow skills are present and current.\");\n\t} else if (report.status === \"sync_required\") {\n\t\tlines.push(\n\t\t\t\"- Start or restart OpenCode with opencode-plugin-flow enabled so startup sync can install or update the listed skills. If Flow then reports restart_required, restart OpenCode once more so the refreshed skill registry is used.\",\n\t\t);\n\t} else {\n\t\tlines.push(\n\t\t\t\"- Resolve user-owned or edited managed skill folders, then restart OpenCode. Move a folder aside to let Flow recreate it, or keep it intentionally as a local override.\",\n\t\t);\n\t}\n\tlines.push(`- Details command: ${formatFlowDoctorCommand(report.version)}`);\n\treturn `${lines.join(\"\\n\")}\\n`;\n}\n\nexport async function uninstallFlowSkills(home = homeDir()) {\n\tconst root = resolveFlowSkillsRoot(home);\n\tconst removed: string[] = [];\n\tconst kept: string[] = [];\n\tlet entries: string[];\n\ttry {\n\t\tentries = await readdir(root);\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code === \"ENOENT\") {\n\t\t\treturn { removed, kept };\n\t\t}\n\t\tthrow error;\n\t}\n\tfor (const name of entries) {\n\t\tif (name !== \"flow\" && !name.startsWith(\"flow-\")) continue;\n\t\tconst folder = join(root, name);\n\t\tconst markerContent = await optionalRead(join(folder, MARKER_FILENAME));\n\t\tif (markerContent === null) {\n\t\t\tkept.push(folder);\n\t\t\tcontinue;\n\t\t}\n\t\tconst hashes = parseMarkerFiles(markerContent);\n\t\tlet userEdited = false;\n\t\tfor (const [relativePath, recordedHash] of hashes) {\n\t\t\tconst content = await optionalRead(\n\t\t\t\tresolveSkillFile(folder, relativePath),\n\t\t\t);\n\t\t\tif (content !== null && sha256(content) !== recordedHash) {\n\t\t\t\tuserEdited = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (userEdited) {\n\t\t\tkept.push(folder);\n\t\t\tcontinue;\n\t\t}\n\t\tawait rm(folder, { recursive: true, force: true });\n\t\tremoved.push(folder);\n\t}\n\treturn { removed, kept };\n}\n",
7
7
  "import flowHandoffFormatDoc from \"../../skills/flow/references/handoff-format.md\" with {\n\ttype: \"text\",\n};\nimport flowParallelOrchestrationDoc from \"../../skills/flow/references/parallel-orchestration.md\" with {\n\ttype: \"text\",\n};\nimport flowRecoveryPlaybookDoc from \"../../skills/flow/references/recovery-playbook.md\" with {\n\ttype: \"text\",\n};\nimport flowVerificationGatesDoc from \"../../skills/flow/references/verification-gates.md\" with {\n\ttype: \"text\",\n};\nimport flowSkillDoc from \"../../skills/flow/SKILL.md\" with { type: \"text\" };\nimport flowDeslopRefactorWorkflowDoc from \"../../skills/flow-deslop/references/refactor-workflow.md\" with {\n\ttype: \"text\",\n};\nimport flowDeslopSmellRubricDoc from \"../../skills/flow-deslop/references/smell-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowDeslopSkillDoc from \"../../skills/flow-deslop/SKILL.md\" with {\n\ttype: \"text\",\n};\nimport flowPlanParallelDiscoveryDoc from \"../../skills/flow-plan/references/parallel-discovery.md\" with {\n\ttype: \"text\",\n};\nimport flowPlanPlanningExamplesDoc from \"../../skills/flow-plan/references/planning-examples.md\" with {\n\ttype: \"text\",\n};\nimport flowPlanSkillDoc from \"../../skills/flow-plan/SKILL.md\" with {\n\ttype: \"text\",\n};\nimport flowReviewReviewRubricDoc from \"../../skills/flow-review/references/review-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowReviewSkillDoc from \"../../skills/flow-review/SKILL.md\" with {\n\ttype: \"text\",\n};\nimport flowRunAuditRubricDoc from \"../../skills/flow-run/references/audit-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowRunValidationRubricDoc from \"../../skills/flow-run/references/validation-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowRunSkillDoc from \"../../skills/flow-run/SKILL.md\" with {\n\ttype: \"text\",\n};\nimport flowUiQualityUiRubricDoc from \"../../skills/flow-ui-quality/references/ui-rubric.md\" with {\n\ttype: \"text\",\n};\nimport flowUiQualityVisualVerificationDoc from \"../../skills/flow-ui-quality/references/visual-verification.md\" with {\n\ttype: \"text\",\n};\nimport flowUiQualitySkillDoc from \"../../skills/flow-ui-quality/SKILL.md\" with {\n\ttype: \"text\",\n};\n\nexport type FlowSkillFile = {\n\trelativePath: string;\n\tcontent: string;\n};\n\nexport type FlowSkillDefinition = {\n\tname: string;\n\tfiles: FlowSkillFile[];\n};\n\nexport const FLOW_SKILL_DEFINITIONS: readonly FlowSkillDefinition[] = [\n\t{\n\t\tname: \"flow\",\n\t\tfiles: [\n\t\t\t{ relativePath: \"SKILL.md\", content: flowSkillDoc },\n\t\t\t{\n\t\t\t\trelativePath: \"references/recovery-playbook.md\",\n\t\t\t\tcontent: flowRecoveryPlaybookDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/parallel-orchestration.md\",\n\t\t\t\tcontent: flowParallelOrchestrationDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/handoff-format.md\",\n\t\t\t\tcontent: flowHandoffFormatDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/verification-gates.md\",\n\t\t\t\tcontent: flowVerificationGatesDoc,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tname: \"flow-plan\",\n\t\tfiles: [\n\t\t\t{ relativePath: \"SKILL.md\", content: flowPlanSkillDoc },\n\t\t\t{\n\t\t\t\trelativePath: \"references/planning-examples.md\",\n\t\t\t\tcontent: flowPlanPlanningExamplesDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/parallel-discovery.md\",\n\t\t\t\tcontent: flowPlanParallelDiscoveryDoc,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tname: \"flow-run\",\n\t\tfiles: [\n\t\t\t{ relativePath: \"SKILL.md\", content: flowRunSkillDoc },\n\t\t\t{\n\t\t\t\trelativePath: \"references/validation-rubric.md\",\n\t\t\t\tcontent: flowRunValidationRubricDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/audit-rubric.md\",\n\t\t\t\tcontent: flowRunAuditRubricDoc,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tname: \"flow-review\",\n\t\tfiles: [\n\t\t\t{ relativePath: \"SKILL.md\", content: flowReviewSkillDoc },\n\t\t\t{\n\t\t\t\trelativePath: \"references/review-rubric.md\",\n\t\t\t\tcontent: flowReviewReviewRubricDoc,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tname: \"flow-deslop\",\n\t\tfiles: [\n\t\t\t{ relativePath: \"SKILL.md\", content: flowDeslopSkillDoc },\n\t\t\t{\n\t\t\t\trelativePath: \"references/smell-rubric.md\",\n\t\t\t\tcontent: flowDeslopSmellRubricDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/refactor-workflow.md\",\n\t\t\t\tcontent: flowDeslopRefactorWorkflowDoc,\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tname: \"flow-ui-quality\",\n\t\tfiles: [\n\t\t\t{ relativePath: \"SKILL.md\", content: flowUiQualitySkillDoc },\n\t\t\t{\n\t\t\t\trelativePath: \"references/ui-rubric.md\",\n\t\t\t\tcontent: flowUiQualityUiRubricDoc,\n\t\t\t},\n\t\t\t{\n\t\t\t\trelativePath: \"references/visual-verification.md\",\n\t\t\t\tcontent: flowUiQualityVisualVerificationDoc,\n\t\t\t},\n\t\t],\n\t},\n];\n",
8
8
  "import { randomUUID } from \"node:crypto\";\nimport { mkdir, open, readFile, rename, rm, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, isAbsolute, join, parse, resolve } from \"node:path\";\nimport { setTimeout as sleep } from \"node:timers/promises\";\nimport { parseStrictJsonObject } from \"./json/strict-object\";\nimport { type Session, SessionSchema } from \"./schema\";\n\nexport class InvalidFlowWorkspaceRootError extends Error {\n\treadonly code = \"INVALID_FLOW_WORKSPACE_ROOT\";\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"InvalidFlowWorkspaceRootError\";\n\t}\n}\n\nexport function normalizeWorkspaceRoot(\n\trawPath: string | undefined,\n): string | null {\n\tconst value = rawPath?.trim();\n\tif (!value) return null;\n\tconst normalized = resolve(value);\n\treturn parse(normalized).root === normalized ? null : normalized;\n}\n\nexport function assertMutableWorkspaceRoot(rawPath: string): string {\n\tconst root = normalizeWorkspaceRoot(rawPath);\n\tif (!root) {\n\t\tthrow new InvalidFlowWorkspaceRootError(\n\t\t\t\"Flow requires a non-root workspace path.\",\n\t\t);\n\t}\n\tif (root === resolve(process.env.HOME ?? homedir())) {\n\t\tthrow new InvalidFlowWorkspaceRootError(\n\t\t\t\"Flow refuses to use $HOME itself as a mutable workspace root.\",\n\t\t);\n\t}\n\treturn root;\n}\n\nexport function resolveWorkspaceRoot(context: {\n\tworktree?: string;\n\tdirectory?: string;\n}): string {\n\tconst candidate =\n\t\tnormalizeWorkspaceRoot(context.worktree) ??\n\t\tnormalizeWorkspaceRoot(context.directory);\n\tif (!candidate) {\n\t\tthrow new InvalidFlowWorkspaceRootError(\n\t\t\t\"Flow could not resolve a workspace root from tool context.\",\n\t\t);\n\t}\n\treturn assertMutableWorkspaceRoot(candidate);\n}\n\nexport function flowDir(worktree: string): string {\n\treturn join(worktree, \".flow\");\n}\n\nexport function sessionPath(worktree: string): string {\n\treturn join(flowDir(worktree), \"session.json\");\n}\n\nexport function historyDir(worktree: string): string {\n\treturn join(flowDir(worktree), \"history\");\n}\n\nexport function archivedSessionPath(\n\tworktree: string,\n\tsessionId: string,\n): string {\n\tif (!/^[a-zA-Z0-9_-]+$/.test(sessionId)) {\n\t\tthrow new Error(\"Invalid session id.\");\n\t}\n\treturn join(historyDir(worktree), `${sessionId}.json`);\n}\n\nasync function writeFileAtomically(\n\tpath: string,\n\tcontents: string,\n): Promise<void> {\n\tawait mkdir(dirname(path), { recursive: true });\n\tconst tempPath = `${path}.${process.pid}.${randomUUID()}.tmp`;\n\tconst handle = await open(tempPath, \"w\");\n\ttry {\n\t\tawait handle.writeFile(contents, \"utf8\");\n\t\tawait handle.sync();\n\t} catch (error) {\n\t\tawait handle.close();\n\t\tawait rm(tempPath, { force: true });\n\t\tthrow error;\n\t}\n\tawait handle.close();\n\ttry {\n\t\tawait rename(tempPath, path);\n\t} catch (error) {\n\t\tawait rm(tempPath, { force: true });\n\t\tthrow error;\n\t}\n\tconst directory = await open(dirname(path), \"r\");\n\ttry {\n\t\tawait directory.sync();\n\t} finally {\n\t\tawait directory.close();\n\t}\n}\n\nconst inProcessLocks = new Map<string, Promise<void>>();\nconst LOCK_TIMEOUT_MS = 30_000;\nconst LOCK_RETRY_MS = 25;\n\nasync function acquireLock(worktree: string): Promise<() => Promise<void>> {\n\tconst root = flowDir(worktree);\n\tconst lock = join(root, \"session.lock\");\n\tconst startedAt = Date.now();\n\twhile (true) {\n\t\ttry {\n\t\t\tawait mkdir(lock, { recursive: false });\n\t\t\treturn async () => {\n\t\t\t\tawait rm(lock, { recursive: true, force: true });\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst code = (error as NodeJS.ErrnoException).code;\n\t\t\tif (code === \"ENOENT\") {\n\t\t\t\tawait mkdir(root, { recursive: true });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (code !== \"EEXIST\") throw error;\n\t\t\tif (Date.now() - startedAt > LOCK_TIMEOUT_MS) {\n\t\t\t\tthrow new Error(`Timed out waiting for Flow session lock at ${lock}.`);\n\t\t\t}\n\t\t\tawait sleep(LOCK_RETRY_MS);\n\t\t}\n\t}\n}\n\nexport async function withSessionLock<T>(\n\tworktree: string,\n\ttask: () => Promise<T>,\n): Promise<T> {\n\tconst previous = inProcessLocks.get(worktree) ?? Promise.resolve();\n\tlet releaseQueue = () => {};\n\tconst current = new Promise<void>((resolve) => {\n\t\treleaseQueue = resolve;\n\t});\n\tconst queued = previous.catch(() => undefined).then(() => current);\n\tinProcessLocks.set(worktree, queued);\n\n\tlet releaseFileLock: (() => Promise<void>) | null = null;\n\ttry {\n\t\tawait previous.catch(() => undefined);\n\t\treleaseFileLock = await acquireLock(worktree);\n\t\treturn await task();\n\t} finally {\n\t\ttry {\n\t\t\tawait releaseFileLock?.();\n\t\t} finally {\n\t\t\treleaseQueue();\n\t\t\tif (inProcessLocks.get(worktree) === queued) {\n\t\t\t\tinProcessLocks.delete(worktree);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport async function loadSession(worktree: string): Promise<Session | null> {\n\tconst root = assertMutableWorkspaceRoot(worktree);\n\tlet raw: string;\n\ttry {\n\t\traw = await readFile(sessionPath(root), \"utf8\");\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code === \"ENOENT\") return null;\n\t\tthrow error;\n\t}\n\tconst parsed = parseStrictJsonObject(raw, \"Flow session file\");\n\tif (!parsed.ok) throw new Error(parsed.error);\n\treturn SessionSchema.parse(parsed.value);\n}\n\nexport async function saveSession(\n\tworktree: string,\n\tsession: Session,\n): Promise<Session> {\n\tconst root = assertMutableWorkspaceRoot(worktree);\n\tconst normalized = SessionSchema.parse(session);\n\tawait writeFileAtomically(\n\t\tsessionPath(root),\n\t\t`${JSON.stringify(normalized, null, 2)}\\n`,\n\t);\n\tawait ensureFlowGitignore(root);\n\treturn normalized;\n}\n\nexport async function archiveAndClearSession(\n\tworktree: string,\n\tsession: Session,\n): Promise<void> {\n\tconst root = assertMutableWorkspaceRoot(worktree);\n\tawait mkdir(historyDir(root), { recursive: true });\n\tawait writeFileAtomically(\n\t\tarchivedSessionPath(root, session.id),\n\t\t`${JSON.stringify(SessionSchema.parse(session), null, 2)}\\n`,\n\t);\n\tawait rm(sessionPath(root), { force: true });\n\tawait ensureFlowGitignore(root);\n}\n\nconst FLOW_GITIGNORE_CONTENT = [\n\t\"session.json\",\n\t\"history/\",\n\t\"session.lock/\",\n\t\".gitignore\",\n\t\"\",\n].join(\"\\n\");\n\nasync function ensureFlowGitignore(worktree: string): Promise<void> {\n\tconst path = join(flowDir(worktree), \".gitignore\");\n\ttry {\n\t\tconst existing = await readFile(path, \"utf8\");\n\t\tif (existing.trim() === \"session.lock/\") {\n\t\t\tawait writeFile(path, FLOW_GITIGNORE_CONTENT, \"utf8\");\n\t\t}\n\t} catch (error) {\n\t\tif ((error as NodeJS.ErrnoException).code !== \"ENOENT\") throw error;\n\t\tawait writeFile(path, FLOW_GITIGNORE_CONTENT, \"utf8\");\n\t}\n}\n\nexport function isAbsoluteOrTraversal(value: string): boolean {\n\treturn isAbsolute(value) || value === \"..\" || value.startsWith(\"../\");\n}\n",
@@ -17,7 +17,7 @@
17
17
  "import { getFlowSkillSetupStatus } from \"../../distribution/sync\";\nimport {\n\tflowFeatureComplete,\n\tflowFeatureReset,\n\tflowPlanApprove,\n\tflowPlanSave,\n\tflowRunStart,\n\tflowSessionClose,\n\tflowStatus,\n} from \"../../runtime/api\";\nimport { resolveWorkspaceRoot } from \"../../runtime/workspace\";\nimport { createFlowLog } from \"./logging\";\nimport { type ToolContext, tool } from \"./sdk\";\n\nconst z = tool.schema;\n\nfunction toJson(value: unknown): string {\n\treturn JSON.stringify(value, null, 2);\n}\n\nfunction toolError(error: unknown): string {\n\treturn toJson({\n\t\tstatus: \"error\",\n\t\tsummary: error instanceof Error ? error.message : String(error),\n\t});\n}\n\nasync function execute(\n\tcontext: ToolContext,\n\thandler: (worktree: string) => Promise<Record<string, unknown>>,\n): Promise<string> {\n\ttry {\n\t\treturn toJson(await handler(resolveWorkspaceRoot(context)));\n\t} catch (error) {\n\t\treturn toolError(error);\n\t}\n}\n\nasync function flowStatusWithSetup(\n\tworktree: string,\n): Promise<Record<string, unknown>> {\n\tconst result = await flowStatus(worktree);\n\tconst setup = getFlowSkillSetupStatus();\n\tif (!setup) return result;\n\treturn {\n\t\t...result,\n\t\tsetup: {\n\t\t\tskills: setup,\n\t\t},\n\t};\n}\n\nexport function createTools(ctx: unknown) {\n\tcreateFlowLog(ctx)(\"info\", \"Creating minimal Flow v4 tool surface.\");\n\treturn {\n\t\tflow_status: tool({\n\t\t\tdescription: \"Show the active Flow session and next action\",\n\t\t\targs: {},\n\t\t\texecute: (_args, context) => execute(context, flowStatusWithSetup),\n\t\t}),\n\t\tflow_plan_save: tool({\n\t\t\tdescription: \"Create or update a draft Flow plan for the active goal\",\n\t\t\targs: {\n\t\t\t\tgoal: z.string().optional(),\n\t\t\t\tplan: z.any().optional(),\n\t\t\t},\n\t\t\texecute: (args, context) =>\n\t\t\t\texecute(context, (worktree) => flowPlanSave(worktree, args)),\n\t\t}),\n\t\tflow_plan_approve: tool({\n\t\t\tdescription: \"Approve the current draft Flow plan\",\n\t\t\targs: {},\n\t\t\texecute: (_args, context) => execute(context, flowPlanApprove),\n\t\t}),\n\t\tflow_run_start: tool({\n\t\t\tdescription: \"Start the next runnable approved Flow feature\",\n\t\t\targs: {\n\t\t\t\tfeatureId: z.string().optional(),\n\t\t\t},\n\t\t\texecute: (args, context) =>\n\t\t\t\texecute(context, (worktree) => flowRunStart(worktree, args)),\n\t\t}),\n\t\tflow_feature_complete: tool({\n\t\t\tdescription:\n\t\t\t\t\"Record a completed or blocked active feature with validation and review evidence\",\n\t\t\targs: {\n\t\t\t\tstatus: z.enum([\"ok\", \"needs_input\"]),\n\t\t\t\tfeatureId: z.string(),\n\t\t\t\tsummary: z.string(),\n\t\t\t\tartifactsChanged: z.array(z.object({ path: z.string() })).optional(),\n\t\t\t\tvalidationRun: z\n\t\t\t\t\t.array(\n\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\tcommand: z.string(),\n\t\t\t\t\t\t\tstatus: z.enum([\"passed\", \"failed\"]),\n\t\t\t\t\t\t\tsummary: z.string(),\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t\t.optional(),\n\t\t\t\tvalidationScope: z.enum([\"targeted\", \"broad\"]).optional(),\n\t\t\t\tfeatureReview: z.any().optional(),\n\t\t\t\tfinalReview: z.any().optional(),\n\t\t\t\toutcome: z.any().optional(),\n\t\t\t},\n\t\t\texecute: (args, context) =>\n\t\t\t\texecute(context, (worktree) => flowFeatureComplete(worktree, args)),\n\t\t}),\n\t\tflow_feature_reset: tool({\n\t\t\tdescription: \"Reset one feature and its dependents to pending\",\n\t\t\targs: {\n\t\t\t\tfeatureId: z.string(),\n\t\t\t},\n\t\t\texecute: (args, context) =>\n\t\t\t\texecute(context, (worktree) => flowFeatureReset(worktree, args)),\n\t\t}),\n\t\tflow_session_close: tool({\n\t\t\tdescription: \"Close and archive the active Flow session\",\n\t\t\targs: {\n\t\t\t\tkind: z.enum([\"completed\", \"deferred\", \"abandoned\"]),\n\t\t\t\tsummary: z.string().optional(),\n\t\t\t},\n\t\t\texecute: (args, context) =>\n\t\t\t\texecute(context, (worktree) => flowSessionClose(worktree, args)),\n\t\t}),\n\t};\n}\n",
18
18
  "import { FLOW_CORE_COMMANDS } from \"../../config-shared\";\nimport {\n\tformatFlowSkillSetupWarning,\n\tresolveFlowPluginVersion,\n\trunFlowSkillSync,\n} from \"../../distribution/sync\";\nimport { loadSession } from \"../../runtime/workspace\";\nimport { createConfigHook } from \"./config\";\nimport { createFlowLog } from \"./logging\";\nimport type { Hooks, Plugin, ToolContext } from \"./sdk\";\nimport { createTools } from \"./tools\";\n\nasync function compactSessionFacts(\n\tcontext: Pick<ToolContext, \"worktree\" | \"directory\">,\n): Promise<string | null> {\n\tconst root = context.worktree ?? context.directory;\n\tif (!root) return null;\n\ttry {\n\t\tconst session = await loadSession(root);\n\t\tif (!session) return null;\n\t\treturn [\n\t\t\t\"Flow session facts:\",\n\t\t\t`- goal: ${session.goal}`,\n\t\t\t`- status: ${session.status}`,\n\t\t\t`- approval: ${session.approval}`,\n\t\t\t`- active feature: ${session.activeFeatureId ?? \"none\"}`,\n\t\t\t`- progress: ${\n\t\t\t\tsession.plan?.features.filter(\n\t\t\t\t\t(feature) => feature.status === \"completed\",\n\t\t\t\t).length ?? 0\n\t\t\t}/${session.plan?.features.length ?? 0}`,\n\t\t\t\"Call flow_status before any Flow action.\",\n\t\t].join(\"\\n\");\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction createSystemTransformHook(\n\tctx: Pick<ToolContext, \"worktree\" | \"directory\">,\n): NonNullable<Hooks[\"experimental.chat.system.transform\"]> {\n\treturn async (_input, output) => {\n\t\tconst setupWarning = formatFlowSkillSetupWarning();\n\t\tif (setupWarning) output.system.push(setupWarning);\n\t\tconst facts = await compactSessionFacts(ctx);\n\t\tif (facts) output.system.push(facts);\n\t};\n}\n\nfunction createCommandPreflightHook(): NonNullable<\n\tHooks[\"command.execute.before\"]\n> {\n\tconst flowCommands = new Set(Object.keys(FLOW_CORE_COMMANDS));\n\treturn async (input, output) => {\n\t\tconst command = input.command.replace(/^\\/+/, \"\");\n\t\tif (!flowCommands.has(command)) return;\n\t\tconst setupWarning = formatFlowSkillSetupWarning();\n\t\tif (!setupWarning) return;\n\t\t(\n\t\t\toutput.parts as unknown as Array<{\n\t\t\t\ttype: \"text\";\n\t\t\t\ttext: string;\n\t\t\t\tsynthetic?: boolean;\n\t\t\t}>\n\t\t).push({\n\t\t\ttype: \"text\",\n\t\t\ttext: setupWarning,\n\t\t\tsynthetic: true,\n\t\t});\n\t};\n}\n\nconst FlowPlugin: Plugin = async (ctx) => {\n\tconst log = createFlowLog(ctx);\n\tlog(\"info\", \"Flow v4 plugin initialized.\");\n\tawait runFlowSkillSync(resolveFlowPluginVersion(), log);\n\n\treturn {\n\t\tconfig: createConfigHook(ctx),\n\t\ttool: createTools(ctx),\n\t\t\"command.execute.before\": createCommandPreflightHook(),\n\t\t\"experimental.chat.system.transform\": createSystemTransformHook(ctx),\n\t\t\"experimental.session.compacting\": async (_input, output) => {\n\t\t\tconst setupWarning = formatFlowSkillSetupWarning();\n\t\t\tif (setupWarning)\n\t\t\t\toutput.context = [...(output.context ?? []), setupWarning];\n\t\t\tconst facts = await compactSessionFacts(ctx);\n\t\t\tif (!facts) return;\n\t\t\toutput.context = [...(output.context ?? []), facts];\n\t\t},\n\t};\n};\n\nexport default FlowPlugin;\n"
19
19
  ],
20
- "mappings": "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",
21
- "debugId": "112D83C8D7323A1964756E2164756E21",
20
+ "mappings": "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",
21
+ "debugId": "352FAA7A055D2E0864756E2164756E21",
22
22
  "names": []
23
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-plugin-flow",
3
- "version": "4.1.2",
3
+ "version": "4.1.4",
4
4
  "description": "Stateful planning and execution workflow plugin for OpenCode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",