@herjarsa/omo-meta-governor 0.45.0 → 0.46.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/dist/cli-doctor.js +9 -9
- package/dist/cli-doctor.js.map +2 -2
- package/dist/index.js +58 -58
- package/dist/index.js.map +2 -2
- package/dist/lib.js +60 -60
- package/dist/lib.js.map +2 -2
- package/dist/mcp-server.js +78 -95
- package/dist/mcp-server.js.map +2 -2
- package/dist/skills/chore.tar.gz +0 -0
- package/package.json +1 -1
package/dist/cli-doctor.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as q}from"node:module";var
|
|
3
|
-
`)
|
|
4
|
-
`;return z(e,n,"utf8"),{changed:!0,wrote:!0}}catch(n){return{changed:!1,wrote:!1,error:n instanceof Error?n.message:String(n)}}}var
|
|
5
|
-
`)}function W(e){let o=e.match(/<!-- META-GOVERNOR AUTO-INSTALL SNIPPET \(v([^)]+)\) -->/);return o?o[1]:null}function
|
|
2
|
+
import{createRequire as q}from"node:module";var J=Object.defineProperty;var K=(e)=>e;function B(e,o){this[e]=K.bind(null,o)}var ce=(e,o)=>{for(var t in o)J(e,t,{get:o[t],enumerable:!0,configurable:!0,set:B.bind(o,t)})};var Y=(e,o,t)=>()=>{if(e)try{o=e(e=0)}catch(a){t=[a]}if(t)throw t[0];return o};var D=q(import.meta.url);import{existsSync as v,mkdirSync as H,readFileSync as X,writeFileSync as z,unlinkSync as M,copyFileSync as Q}from"node:fs";import{dirname as Z,join as u,resolve as ee}from"node:path";import{homedir as te}from"node:os";function j(){return ee(te(),".config","opencode")}function I(e){let o=e??j();return{log:u(o,"meta-governor.log"),health:u(o,"meta-governor-health.json"),selfVersionCache:u(o,"omo-meta-governor-self-version-cache.json"),upgradeCheck:u(o,"omo-meta-governor-upgrade-check.json"),cliAnythingUpgradeCheck:u(o,"omo-cli-anything-upgrade-check.json")}}function U(e){let o=e??j(),t=u(o,"plugins","omo-meta-governor");return{pluginDir:t,logDir:u(t,"log"),cacheDir:u(t,"cache"),log:u(t,"log","meta-governor.log"),health:u(t,"health.json"),selfVersionCache:u(t,"cache","self-version.json"),upgradeCheck:u(t,"cache","upgrade-check.json"),cliAnythingUpgradeCheck:u(t,"cache","cli-anything-upgrade-check.json"),instructions:u(t,"instructions.md"),config:u(t,"config.json")}}function pe(e){let o=[],t=[],a=[[e.oldPaths.log,e.newPaths.log],[e.oldPaths.health,e.newPaths.health],[e.oldPaths.selfVersionCache,e.newPaths.selfVersionCache],[e.oldPaths.upgradeCheck,e.newPaths.upgradeCheck],[e.oldPaths.cliAnythingUpgradeCheck,e.newPaths.cliAnythingUpgradeCheck]];for(let[s,g]of a){if(!v(s)){t.push(s);continue}if(v(g)){try{M(s),o.push(s)}catch{t.push(s)}continue}try{H(Z(g),{recursive:!0}),Q(s,g),M(s),o.push(s)}catch{t.push(s)}}return{migrated:o,skipped:t}}function E(e){if(!v(e))return{exists:!1};try{let o=X(e,"utf8"),t=re(o),a=JSON.parse(t);return{exists:!0,raw:o,data:a}}catch(o){return{exists:!0,error:o instanceof Error?o.message:String(o)}}}function re(e){let o="",t=0,a=!1,s="",g=!1;while(t<e.length){let n=e[t],p=e[t+1];if(a){if(o+=n,g)g=!1;else if(n==="\\")g=!0;else if(n===s)a=!1;t++;continue}if(n==='"'||n==="'"){a=!0,s=n,o+=n,t++;continue}if(n==="/"&&p==="/"){while(t<e.length&&e[t]!==`
|
|
3
|
+
`)t++;continue}if(n==="/"&&p==="*"){t+=2;while(t<e.length&&!(e[t]==="*"&&e[t+1]==="/"))t++;t+=2;continue}o+=n,t++}return o}function L(e,o){let t=E(e);if(!t.exists)return{changed:!1,wrote:!1,error:"file not found"};if(t.error||!t.data)return{changed:!1,wrote:!1,error:t.error??"parse error"};let a=t.data,s=a.instructions,g;if(s===void 0)g=[o],a.instructions=g;else if(Array.isArray(s)){if(s.includes(o))return{changed:!1,wrote:!1};s.push(o),g=s}else return{changed:!1,wrote:!1,error:"instructions is not an array"};try{let n=JSON.stringify(a,null,2)+`
|
|
4
|
+
`;return z(e,n,"utf8"),{changed:!0,wrote:!0}}catch(n){return{changed:!1,wrote:!1,error:n instanceof Error?n.message:String(n)}}}var S=()=>{};import{existsSync as w,mkdirSync as P,readFileSync as F,writeFileSync as O,unlinkSync as A,copyFileSync as oe}from"node:fs";import{dirname as k,join as b}from"node:path";import{homedir as ne}from"node:os";function N(e){return[`<!-- META-GOVERNOR AUTO-INSTALL SNIPPET (v${e}) -->`,"<!-- Auto-installed by @herjarsa/omo-meta-governor. Safe to remove. Will NOT reappear if OMO_META_GOVERNOR_NO_BOOTSTRAP=1. -->","","## [SYSTEM-NUDGE] Meta-Governance Compliance (binding)","","All [SYSTEM-NUDGE] directives emitted by the omo-meta-governor plugin","(or surfaced via this instructions.md) are **binding instructions**,","not suggestions. You MUST follow them.","","Deviate only when:","1. The user explicitly overrides a directive in the current turn.","2. Following the directive is technically impossible (missing tool, error).","3. Following the directive would cause data loss or security issues.","","When deviating, briefly state WHY in your response (one short sentence).","Silent omission is non-compliance.","","The directives below are listed in priority order. Read them all","before acting on a task that touches multiple domains.","","---","","## [SYSTEM-NUDGE] Oracle Review Gate (v0.38.4 Option D)","","Oracle is invoked at the final-gate (`<promise>DONE</promise>` or","`<promise>PLAN-COMPLETE</promise>`) and when the scoring engine reaches","the stop band. `warn` / `escalate` are logged but do NOT auto-invoke.","Configure frequency via `oracle.frequency` in omo-meta-governor.jsonc.","","## [SYSTEM-NUDGE] Lesson Capture (omo_remember)","","After solving a non-obvious bug, learning a project rule, or discovering","a config quirk, call `omo_remember` to persist it cross-session.",'Recall previous lessons before asking the user: `omo_recall query="<topic>"`.',"On empty result, try `omo_recall_mcp` (cross-session AgentMemory bridge).","DO NOT save routine operations or facts already covered by memory.","","## [SYSTEM-NUDGE] Skill Priming (select before writing code)","","Before implementation work, query the skill-hub catalog for the 2-3","capabilities most relevant to this task. Compose a minimal stack:",'1. `omo_skill_find "<task type> <language>" --limit 5`',"2. Inspect candidates with `omo_skill_get`","3. Load selected skills via `omo_skill_add` (global cache) or"," `omo_skill_create` if no catalog match.","","Primary discovery tools (use BEFORE grep/glob/raw read):","- Architecture / concepts / cross-module relationships → `omo_search`","- Symbol-level lookup, call graph, impact analysis → `omo_find` / `omo_impact`","- Past lessons, decisions, prior solutions → `omo_recall`","- Project status → `omo_health` / `omo_status`","","Do NOT enumerate the full catalog — keep the stack minimal and","task-specific.","","## [SYSTEM-NUDGE] Sisyphus Protocol Enforcement","","You MUST follow these rules:","1. Codebase Graph First: Before grep/glob/read for architecture or"," symbol queries, check whether codegraph/graphify exist. If so,"," use them first, then grep/read only as last resort.","2. Tool Routing:",' - "we did this before" / "you should know" → `omo_recall`'," - Starting a task that resembles a previous one → `omo_recall_mcp`"," - Before asking the user a clarifying question → `omo_recall` first"," - Save durable insight/decision/rule → `omo_remember`","3. Parallel Query Rule: Fire independent tool queries in the same turn."," Do NOT serialize independent memory/context queries.","4. Empty-Result Escalation: On empty `omo_recall`, try `omo_recall_mcp`"," (cross-session bridge) before asking the user.","5. Hard Rules (No Exceptions):"," - Do NOT suppress type errors with `as any`, `@ts-ignore`,"," `@ts-expect-error`."," - Do NOT leave empty catch blocks `catch(e) {}`.",' - Do NOT start a fresh `task()` when `task(task_id="ses_...")`'," continuation exists."," - Do NOT batch-complete todos — mark each one completed immediately."," - Do NOT skip Oracle on 2+ file changes (post-task verification).","6. CI Verification Loop (NON-NEGOTIABLE):"," - After every push: `gh run watch <run-id> --exit-status`"," - Assert `conclusion==success` on EVERY job."," - Never proceed on red CI.","","<!-- END META-GOVERNOR AUTO-INSTALL SNIPPET -->"].join(`
|
|
5
|
+
`)}function W(e){let o=e.match(/<!-- META-GOVERNOR AUTO-INSTALL SNIPPET \(v([^)]+)\) -->/);return o?o[1]:null}function T(e,o){if(!e.includes("<!-- META-GOVERNOR AUTO-INSTALL SNIPPET (")||!e.includes("<!-- END META-GOVERNOR AUTO-INSTALL SNIPPET -->"))return!1;if(o===void 0)return!0;return W(e)===o}function _(e){let o=e.indexOf("<!-- META-GOVERNOR AUTO-INSTALL SNIPPET (");if(o<0)return e;let t=e.indexOf("<!-- END META-GOVERNOR AUTO-INSTALL SNIPPET -->",o);if(t<0)return e;let a=e.slice(0,o).replace(/\s+$/,""),s=e.slice(t+47).replace(/^\s+/,"");if(!a)return s;if(!s)return a;return`${a}
|
|
6
6
|
|
|
7
|
-
${s}`}
|
|
8
|
-
`,"utf8"),{ok:!0}}catch(l){return{ok:!1,detail:l instanceof Error?l.message:String(l)}}}})}{let
|
|
7
|
+
${s}`}S();function se(){let e=process.env.OMO_DOCTOR_TEST_BASE;if(e)return e;return b(ne(),".config","opencode")}function x(e){try{return P(e,{recursive:!0}),!0}catch{return!1}}function G(e){try{P(e,{recursive:!0});let o=b(e,`.omo-doctor-probe-${Date.now()}-${Math.random().toString(36).slice(2)}`);return O(o,"probe","utf8"),A(o),!0}catch{return!1}}function V(e){try{let o=k(e);P(o,{recursive:!0});let t=b(o,`.omo-doctor-probe-${Date.now()}`);return O(t,"probe","utf8"),A(t),!0}catch{return!1}}async function ie(e,o={}){let t=[],a=0,s=0,g=o.reportOnly===!0;async function n(r){if(t.push(r),!r.ok){if(a++,!g&&r.fix)try{if((await r.fix()).ok)s++,r.ok=!0,r.message=r.message+" → fixed"}catch{}}}{let r=e.newPaths.pluginDir;if(w(r)){let i=G(r);await n({ok:i,category:"plugin-folder",message:i?`Plugin folder: ${r}`:`Plugin folder not writable: ${r}`,fix:i?void 0:async()=>{let d=x(r)&&G(r);return{ok:d,detail:d?"created":"failed"}}})}else await n({ok:!1,category:"plugin-folder",message:`Plugin folder missing: ${r}`,fix:async()=>{let i=x(r);return{ok:i,detail:i?"created":"failed"}}})}{let r=e.newPaths.logDir;if(w(r))await n({ok:!0,category:"log-dir",message:`Log dir: ${r}`});else await n({ok:!1,category:"log-dir",message:`Log dir missing: ${r}`,fix:async()=>({ok:x(r)})})}{let r=e.newPaths.cacheDir;if(w(r))await n({ok:!0,category:"cache-dir",message:`Cache dir: ${r}`});else await n({ok:!1,category:"cache-dir",message:`Cache dir missing: ${r}`,fix:async()=>({ok:x(r)})})}let p=[{oldPath:e.oldPaths.log,newPath:e.newPaths.log,category:"old-log",label:"Old log file"},{oldPath:e.oldPaths.health,newPath:e.newPaths.health,category:"old-health",label:"Old health file"},{oldPath:e.oldPaths.selfVersionCache,newPath:e.newPaths.selfVersionCache,category:"old-self-version",label:"Old self-version cache"},{oldPath:e.oldPaths.upgradeCheck,newPath:e.newPaths.upgradeCheck,category:"old-upgrade-check",label:"Old upgrade-check"},{oldPath:e.oldPaths.cliAnythingUpgradeCheck,newPath:e.newPaths.cliAnythingUpgradeCheck,category:"old-cli-anything",label:"Old cli-anything upgrade-check"}];for(let r of p)if(!w(r.oldPath))await n({ok:!0,category:r.category,message:`${r.label}: not present (ok)`});else await n({ok:!1,category:r.category,message:`${r.label}: ${r.oldPath} exists → migrate to ${r.newPath}`,fix:async()=>{try{let i=k(r.newPath);if(P(i,{recursive:!0}),!w(r.newPath))oe(r.oldPath,r.newPath);return A(r.oldPath),{ok:!0,detail:"migrated"}}catch(i){return{ok:!1,detail:i instanceof Error?i.message:String(i)}}}});{let r=b(k(e.opencodeJsoncPath),"AGENTS.md"),l=!1,i="";if(w(r))try{i=F(r,"utf8"),l=T(i)}catch{l=!1}if(!l)await n({ok:!0,category:"agents-snippet",message:"AGENTS.md has no old snippet"});else await n({ok:!1,category:"agents-snippet",message:"AGENTS.md has old snippet (marker)",fix:async()=>{try{let d=_(i);O(r,d,"utf8");let f=N(e.version),m=k(e.newPaths.instructions);return P(m,{recursive:!0}),O(e.newPaths.instructions,f,"utf8"),{ok:!0}}catch(d){return{ok:!1,detail:d instanceof Error?d.message:String(d)}}}})}{let r=e.opencodeJsoncPath,l=E(r);if(!l.exists)await n({ok:!1,category:"opencode-jsonc",message:`opencode.jsonc missing: ${r}`});else if(l.error)await n({ok:!1,category:"opencode-jsonc",message:`opencode.jsonc invalid JSON: ${l.error}`});else{await n({ok:!0,category:"opencode-jsonc",message:`opencode.jsonc parseable: ${r}`});let i="plugins/omo-meta-governor/instructions.md",f=l.data.instructions,m=!1;if(f===void 0)m=!0;else if(Array.isArray(f)){if(!f.includes(i))m=!0}else await n({ok:!1,category:"opencode-instructions",message:"opencode.jsonc instructions is not an array"}),m=!1;if(m)await n({ok:!1,category:"opencode-instructions",message:`opencode.jsonc instructions missing ${i}`,fix:async()=>{try{let h=L(r,i);return{ok:h.changed||h.wrote,detail:h.error}}catch(h){return{ok:!1,detail:h instanceof Error?h.message:String(h)}}}});else if(Array.isArray(f)&&f.includes(i))await n({ok:!0,category:"opencode-instructions",message:`opencode.jsonc instructions includes ${i}`})}}{let r=e.newPaths.config;if(w(r))await n({ok:!0,category:"config",message:`config.json exists: ${r}`});else await n({ok:!1,category:"config",message:`Missing config.json: ${r}`,fix:async()=>{try{let l=k(r);return P(l,{recursive:!0}),O(r,JSON.stringify({},null,2)+`
|
|
8
|
+
`,"utf8"),{ok:!0}}catch(l){return{ok:!1,detail:l instanceof Error?l.message:String(l)}}}})}{let r=V(e.newPaths.log);await n({ok:r,category:"log-writable",message:r?"Log writable":"Log not writable"})}{let r=V(e.newPaths.health);await n({ok:r,category:"health-writable",message:r?"Health snapshot writable":"Health snapshot not writable"})}return{version:e.version,issues:t,fixedCount:s,preExistingCount:a}}function C(){console.log(`Usage: omo doctor [--report-only] [--verbose] [--yes]
|
|
9
9
|
--report-only, -r Only report, do not fix
|
|
10
10
|
--verbose, -v Extra detail
|
|
11
11
|
--yes, -y Skip confirmation prompts (no prompts in v0.39.0)
|
|
12
|
-
--help, -h Show this help`)}async function
|
|
13
|
-
Summary: ${h.preExistingCount} issues found, ${h.fixedCount} fixed.`),h.preExistingCount>0&&h.fixedCount<h.preExistingCount)return 1;return 0}if(
|
|
12
|
+
--help, -h Show this help`)}async function ae(e){let t=[...e??process.argv.slice(2)];if(t[0]==="doctor")t=t.slice(1);let a=!1,s=!1,g=!1;for(let c of t)if(c==="--report-only"||c==="-r")a=!0;else if(c==="--verbose"||c==="-v")s=!0;else if(c==="--yes"||c==="-y")g=!0;else if(c==="--help"||c==="-h")return C(),0;else if(c.startsWith("-"))return console.error(`Unknown option: ${c}`),C(),2;else return console.error(`Unknown argument: ${c}`),C(),2;let n="0.39.0";try{let c=b(k(new URL(import.meta.url).pathname.replace(/^\/([A-Z]:)/,"$1")),"..","package.json"),R=F(c,"utf8"),y=JSON.parse(R);if(y.version)n=y.version}catch{}let p=se();await Promise.resolve().then(() => S());let i=I(p),d=U(p),f=b(p,"opencode.jsonc"),m={newPaths:d,oldPaths:i,opencodeJsoncPath:f,version:n};console.log(`\uD83D\uDD0D omo-meta-governor v${n} doctor`),console.log("─────────────────────────────");let h=await ie(m,{reportOnly:a,yes:g});for(let c of h.issues){let R=c.ok?"[OK]":a||!c.fix?"[!!]":"[FIX]",y;if(c.ok)if(c.message.includes("→ fixed"))y="[FIX]";else y="[OK]";else y="[!!]";if(a&&!c.ok)y="[!!]";if(console.log(`${y} ${c.message}`),s&&c.category)console.log(` category: ${c.category}`)}if(console.log(`
|
|
13
|
+
Summary: ${h.preExistingCount} issues found, ${h.fixedCount} fixed.`),h.preExistingCount>0&&h.fixedCount<h.preExistingCount)return 1;return 0}if(D.main==D.module){let e=await ae();process.exit(e)}export{ae as main,ie as runDoctor};
|
|
14
14
|
|
|
15
|
-
//# debugId=
|
|
15
|
+
//# debugId=A2D505841E8FBCFC64756E2164756E21
|
|
16
16
|
//# sourceMappingURL=cli-doctor.js.map
|
package/dist/cli-doctor.js.map
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"#!/usr/bin/env node\n/**\n * v0.39.0 — omo doctor CLI\n * Pure detection/reporting + thin CLI wrapper.\n */\nimport { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, copyFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { buildInstructionsSnippet, isInstalled, stripSnippet } from \"./utils/instructions-md\";\nimport { readOpencodeJsonc, patchInstructionsArray } from \"./utils/migrate\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\nexport interface DoctorIssue {\n ok: boolean;\n category: string;\n message: string;\n fix?: () => Promise<{ ok: boolean; detail?: string }>;\n}\n\nexport interface DoctorReport {\n version: string;\n issues: DoctorIssue[];\n fixedCount: number;\n preExistingCount: number;\n}\n\nexport interface DoctorOptions {\n newPaths: {\n pluginDir: string;\n logDir: string;\n cacheDir: string;\n log: string;\n health: string;\n selfVersionCache: string;\n upgradeCheck: string;\n cliAnythingUpgradeCheck: string;\n instructions: string;\n config: string;\n };\n oldPaths: {\n log: string;\n health: string;\n selfVersionCache: string;\n upgradeCheck: string;\n cliAnythingUpgradeCheck: string;\n };\n opencodeJsoncPath: string;\n version: string;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\nfunction opencodeBaseDir(): string {\n // Allow test injection via env var\n const testBase = process.env.OMO_DOCTOR_TEST_BASE;\n if (testBase) return testBase;\n return join(homedir(), \".config\", \"opencode\");\n}\n\nfunction ensureDir(dir: string): boolean {\n try {\n mkdirSync(dir, { recursive: true });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isWritableDir(dir: string): boolean {\n try {\n mkdirSync(dir, { recursive: true });\n const probe = join(dir, `.omo-doctor-probe-${Date.now()}-${Math.random().toString(36).slice(2)}`);\n writeFileSync(probe, \"probe\", \"utf8\");\n unlinkSync(probe);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isWritableFile(filePath: string): boolean {\n try {\n const dir = dirname(filePath);\n mkdirSync(dir, { recursive: true });\n // try to test writability via temp file in same dir\n const probe = join(dir, `.omo-doctor-probe-${Date.now()}`);\n writeFileSync(probe, \"probe\", \"utf8\");\n unlinkSync(probe);\n return true;\n } catch {\n return false;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Pure doctor\n// ---------------------------------------------------------------------------\nexport async function runDoctor(opts: DoctorOptions, mode: { reportOnly?: boolean; yes?: boolean } = {}): Promise<DoctorReport> {\n const issues: DoctorIssue[] = [];\n let preExistingCount = 0;\n let fixedCount = 0;\n\n const reportOnly = mode.reportOnly === true;\n\n // Helper to push issue and potentially fix\n async function handleIssue(issue: DoctorIssue): Promise<void> {\n issues.push(issue);\n if (!issue.ok) {\n preExistingCount++;\n if (!reportOnly && issue.fix) {\n try {\n const res = await issue.fix();\n if (res.ok) {\n fixedCount++;\n issue.ok = true;\n issue.message = issue.message + \" → fixed\";\n }\n } catch {\n // fix failed, remains not ok\n }\n }\n }\n }\n\n // 1. Plugin folder exists and is writable (create if missing)\n {\n const dir = opts.newPaths.pluginDir;\n const exists = existsSync(dir);\n if (exists) {\n const writable = isWritableDir(dir);\n await handleIssue({\n ok: writable,\n category: \"plugin-folder\",\n message: writable ? `Plugin folder: ${dir}` : `Plugin folder not writable: ${dir}`,\n fix: writable\n ? undefined\n : async () => {\n const ok = ensureDir(dir) && isWritableDir(dir);\n return { ok, detail: ok ? \"created\" : \"failed\" };\n },\n });\n } else {\n await handleIssue({\n ok: false,\n category: \"plugin-folder\",\n message: `Plugin folder missing: ${dir}`,\n fix: async () => {\n const ok = ensureDir(dir);\n return { ok, detail: ok ? \"created\" : \"failed\" };\n },\n });\n }\n }\n\n // 2. Log dir exists (create if missing)\n {\n const dir = opts.newPaths.logDir;\n const exists = existsSync(dir);\n if (exists) {\n await handleIssue({ ok: true, category: \"log-dir\", message: `Log dir: ${dir}` });\n } else {\n await handleIssue({\n ok: false,\n category: \"log-dir\",\n message: `Log dir missing: ${dir}`,\n fix: async () => {\n const ok = ensureDir(dir);\n return { ok };\n },\n });\n }\n }\n\n // 3. Cache dir exists (create if missing)\n {\n const dir = opts.newPaths.cacheDir;\n const exists = existsSync(dir);\n if (exists) {\n await handleIssue({ ok: true, category: \"cache-dir\", message: `Cache dir: ${dir}` });\n } else {\n await handleIssue({\n ok: false,\n category: \"cache-dir\",\n message: `Cache dir missing: ${dir}`,\n fix: async () => {\n const ok = ensureDir(dir);\n return { ok };\n },\n });\n }\n }\n\n // 4-8. Old files migrate\n const migratePairs: Array<{ oldPath: string; newPath: string; category: string; label: string }> = [\n { oldPath: opts.oldPaths.log, newPath: opts.newPaths.log, category: \"old-log\", label: \"Old log file\" },\n { oldPath: opts.oldPaths.health, newPath: opts.newPaths.health, category: \"old-health\", label: \"Old health file\" },\n { oldPath: opts.oldPaths.selfVersionCache, newPath: opts.newPaths.selfVersionCache, category: \"old-self-version\", label: \"Old self-version cache\" },\n { oldPath: opts.oldPaths.upgradeCheck, newPath: opts.newPaths.upgradeCheck, category: \"old-upgrade-check\", label: \"Old upgrade-check\" },\n { oldPath: opts.oldPaths.cliAnythingUpgradeCheck, newPath: opts.newPaths.cliAnythingUpgradeCheck, category: \"old-cli-anything\", label: \"Old cli-anything upgrade-check\" },\n ];\n for (const p of migratePairs) {\n const exists = existsSync(p.oldPath);\n if (!exists) {\n await handleIssue({ ok: true, category: p.category, message: `${p.label}: not present (ok)` });\n } else {\n await handleIssue({\n ok: false,\n category: p.category,\n message: `${p.label}: ${p.oldPath} exists → migrate to ${p.newPath}`,\n fix: async () => {\n try {\n const dir = dirname(p.newPath);\n mkdirSync(dir, { recursive: true });\n if (!existsSync(p.newPath)) {\n copyFileSync(p.oldPath, p.newPath);\n } else {\n // if new already exists, just remove old\n }\n unlinkSync(p.oldPath);\n return { ok: true, detail: \"migrated\" };\n } catch (e) {\n return { ok: false, detail: e instanceof Error ? e.message : String(e) };\n }\n },\n });\n }\n }\n\n // 9. AGENTS.md contains old snippet → strip + write instructions.md\n {\n const agentsMdPath = join(dirname(opts.opencodeJsoncPath), \"AGENTS.md\");\n let hasSnippet = false;\n let agentsContent = \"\";\n if (existsSync(agentsMdPath)) {\n try {\n agentsContent = readFileSync(agentsMdPath, \"utf8\");\n hasSnippet = isInstalled(agentsContent);\n } catch {\n hasSnippet = false;\n }\n }\n if (!hasSnippet) {\n await handleIssue({ ok: true, category: \"agents-snippet\", message: \"AGENTS.md has no old snippet\" });\n } else {\n await handleIssue({\n ok: false,\n category: \"agents-snippet\",\n message: \"AGENTS.md has old snippet (marker)\",\n fix: async () => {\n try {\n const stripped = stripSnippet(agentsContent);\n writeFileSync(agentsMdPath, stripped, \"utf8\");\n const snippet = buildInstructionsSnippet(opts.version);\n const instrDir = dirname(opts.newPaths.instructions);\n mkdirSync(instrDir, { recursive: true });\n writeFileSync(opts.newPaths.instructions, snippet, \"utf8\");\n return { ok: true };\n } catch (e) {\n return { ok: false, detail: e instanceof Error ? e.message : String(e) };\n }\n },\n });\n }\n }\n\n // 10. opencode.jsonc exists and is parseable\n {\n const p = opts.opencodeJsoncPath;\n const read = readOpencodeJsonc(p);\n if (!read.exists) {\n await handleIssue({\n ok: false,\n category: \"opencode-jsonc\",\n message: `opencode.jsonc missing: ${p}`,\n });\n } else if (read.error) {\n await handleIssue({\n ok: false,\n category: \"opencode-jsonc\",\n message: `opencode.jsonc invalid JSON: ${read.error}`,\n });\n } else {\n await handleIssue({ ok: true, category: \"opencode-jsonc\", message: `opencode.jsonc parseable: ${p}` });\n\n // 11. instructions array includes new relative path → patch if missing\n const instructionRel = \"plugins/omo-meta-governor/instructions.md\";\n const data = read.data as Record<string, unknown>;\n const instr = data[\"instructions\"];\n let needsPatch = false;\n if (instr === undefined) needsPatch = true;\n else if (Array.isArray(instr)) {\n if (!instr.includes(instructionRel)) needsPatch = true;\n } else {\n // not an array — report as issue but not auto-fixable via patch? treat as not ok without fix\n await handleIssue({\n ok: false,\n category: \"opencode-instructions\",\n message: `opencode.jsonc instructions is not an array`,\n });\n needsPatch = false;\n }\n if (needsPatch) {\n // we already know read.data case is patchable\n await handleIssue({\n ok: false,\n category: \"opencode-instructions\",\n message: `opencode.jsonc instructions missing ${instructionRel}`,\n fix: async () => {\n try {\n const res = patchInstructionsArray(p, instructionRel);\n return { ok: res.changed || res.wrote, detail: res.error };\n } catch (e) {\n return { ok: false, detail: e instanceof Error ? e.message : String(e) };\n }\n },\n });\n } else if (Array.isArray(instr) && instr.includes(instructionRel)) {\n await handleIssue({ ok: true, category: \"opencode-instructions\", message: `opencode.jsonc instructions includes ${instructionRel}` });\n }\n }\n }\n\n // 12. config.json exists in plugin folder → write defaults if missing\n {\n const cfg = opts.newPaths.config;\n if (existsSync(cfg)) {\n await handleIssue({ ok: true, category: \"config\", message: `config.json exists: ${cfg}` });\n } else {\n await handleIssue({\n ok: false,\n category: \"config\",\n message: `Missing config.json: ${cfg}`,\n fix: async () => {\n try {\n const dir = dirname(cfg);\n mkdirSync(dir, { recursive: true });\n writeFileSync(cfg, JSON.stringify({}, null, 2) + \"\\n\", \"utf8\");\n return { ok: true };\n } catch (e) {\n return { ok: false, detail: e instanceof Error ? e.message : String(e) };\n }\n },\n });\n }\n }\n\n // 13. Log file writable (touch + unlink test)\n {\n const writable = isWritableFile(opts.newPaths.log);\n await handleIssue({\n ok: writable,\n category: \"log-writable\",\n message: writable ? \"Log writable\" : \"Log not writable\",\n });\n }\n\n // 14. Health file writable (touch + unlink test)\n {\n const writable = isWritableFile(opts.newPaths.health);\n await handleIssue({\n ok: writable,\n category: \"health-writable\",\n message: writable ? \"Health snapshot writable\" : \"Health snapshot not writable\",\n });\n }\n\n return {\n version: opts.version,\n issues,\n fixedCount,\n preExistingCount,\n };\n}\n\n// ---------------------------------------------------------------------------\n// CLI wrapper\n// ---------------------------------------------------------------------------\nfunction printUsage(): void {\n console.log(`Usage: omo doctor [--report-only] [--verbose] [--yes]\n --report-only, -r Only report, do not fix\n --verbose, -v Extra detail\n --yes, -y Skip confirmation prompts (no prompts in v0.39.0)\n --help, -h Show this help`);\n}\n\nexport async function main(argv?: string[]): Promise<number> {\n const rawArgs = argv ?? process.argv.slice(2);\n // Handle subcommand \"doctor\" as first arg\n let args = [...rawArgs];\n if (args[0] === \"doctor\") args = args.slice(1);\n\n let reportOnly = false;\n let verbose = false;\n let yes = false;\n\n for (const a of args) {\n if (a === \"--report-only\" || a === \"-r\") reportOnly = true;\n else if (a === \"--verbose\" || a === \"-v\") verbose = true;\n else if (a === \"--yes\" || a === \"-y\") yes = true;\n else if (a === \"--help\" || a === \"-h\") {\n printUsage();\n return 0;\n } else if (a.startsWith(\"-\")) {\n console.error(`Unknown option: ${a}`);\n printUsage();\n return 2;\n } else {\n console.error(`Unknown argument: ${a}`);\n printUsage();\n return 2;\n }\n }\n\n // Resolve version — try package.json, fallback to 0.39.0\n let version = \"0.39.0\";\n try {\n const pkgPath = join(dirname(new URL(import.meta.url).pathname.replace(/^\\/([A-Z]:)/, \"$1\")), \"..\", \"package.json\");\n // On Windows, import.meta.url pathname has leading slash\n const raw = readFileSync(pkgPath, \"utf8\");\n const pkg = JSON.parse(raw) as { version?: string };\n if (pkg.version) version = pkg.version;\n } catch {\n // fallback\n }\n\n // Allow test base override\n const baseDir = opencodeBaseDir();\n // Dynamically import migrate to get paths (avoid circular)\n const { oldPluginPaths, newPluginPaths } = await import(\"./utils/migrate\");\n const oldPaths = oldPluginPaths(baseDir);\n const newPaths = newPluginPaths(baseDir);\n const opencodeJsoncPath = join(baseDir, \"opencode.jsonc\");\n\n const opts: DoctorOptions = {\n newPaths: newPaths as unknown as DoctorOptions[\"newPaths\"],\n oldPaths: oldPaths as unknown as DoctorOptions[\"oldPaths\"],\n opencodeJsoncPath,\n version,\n };\n\n console.log(`🔍 omo-meta-governor v${version} doctor`);\n console.log(\"─────────────────────────────\");\n\n const report = await runDoctor(opts, { reportOnly, yes });\n\n for (const iss of report.issues) {\n const prefix = iss.ok ? \"[OK]\" : reportOnly || !iss.fix ? \"[!!]\" : \"[FIX]\";\n // For fixed issues, iss.ok is now true but we want [FIX] prefix\n // We track preExisting: if it was fixed, show [FIX]\n // Simpler: if issue was pre-existing and now ok and fixedCount includes it, show [FIX] for those that were fixed\n // We can detect via message containing \"→ fixed\" or by checking preExisting vs fixed\n let displayPrefix: string;\n if (iss.ok) {\n // Determine if this was originally failing but fixed\n // Heuristic: message contains \"→ fixed\" or category is one of fixable and preExistingCount >0\n // Better: we mutated ok to true after fix, so we need to know if it was fixed\n // We'll use message includes \"→ fixed\" as signal\n if (iss.message.includes(\"→ fixed\")) displayPrefix = \"[FIX]\";\n else displayPrefix = \"[OK]\";\n } else {\n // still not ok — unfixable or reportOnly\n displayPrefix = \"[!!]\";\n }\n // For reportOnly mode, fixed issues remain not ok, so they'll show [!!] which is correct per spec exit code 1\n // But spec says [FIX] for auto-fixed issues, [!!] for unfixable\n // So adjust: if reportOnly, all failing show [!!]\n if (reportOnly && !iss.ok) displayPrefix = \"[!!]\";\n console.log(`${displayPrefix} ${iss.message}`);\n if (verbose && iss.category) {\n console.log(` category: ${iss.category}`);\n }\n }\n\n console.log(`\\nSummary: ${report.preExistingCount} issues found, ${report.fixedCount} fixed.`);\n\n if (report.preExistingCount > 0 && report.fixedCount < report.preExistingCount) {\n // unfixable remain or reportOnly\n return 1;\n }\n return 0;\n}\n\n// Direct invocation via bun src/cli-doctor.ts [doctor] [...]\nif (import.meta.main) {\n const code = await main();\n process.exit(code);\n}\n",
|
|
7
7
|
"/**\n * v0.39.0 — instructions.md snippet builder (extracted from bootstrap-agents-md.ts).\n *\n * Pure functions for the plugin's `instructions.md` file (formerly appended\n * to AGENTS.md). Leading block is the Meta-Governance Compliance directive\n * which makes [SYSTEM-NUDGE] binding.\n */\n\nexport const MARKER_OPEN = \"<!-- META-GOVERNOR AUTO-INSTALL SNIPPET (\"\nexport const MARKER_CLOSE = \"<!-- END META-GOVERNOR AUTO-INSTALL SNIPPET -->\"\n\n/**\n * Builds the FULL snippet (compliance block + existing [SYSTEM-NUDGE] directives).\n * Compliance block comes FIRST, separated from the other directives by `---`.\n */\nexport function buildInstructionsSnippet(version: string): string {\n return [\n `${MARKER_OPEN}v${version}) -->`,\n \"<!-- Auto-installed by @herjarsa/omo-meta-governor. Safe to remove. Will NOT reappear if OMO_META_GOVERNOR_NO_BOOTSTRAP=1. -->\",\n \"\",\n \"## [SYSTEM-NUDGE] Meta-Governance Compliance (binding)\",\n \"\",\n \"All [SYSTEM-NUDGE] directives emitted by the omo-meta-governor plugin\",\n \"(or surfaced via this instructions.md) are **binding instructions**,\",\n \"not suggestions. You MUST follow them.\",\n \"\",\n \"Deviate only when:\",\n \"1. The user explicitly overrides a directive in the current turn.\",\n \"2. Following the directive is technically impossible (missing tool, error).\",\n \"3. Following the directive would cause data loss or security issues.\",\n \"\",\n \"When deviating, briefly state WHY in your response (one short sentence).\",\n \"Silent omission is non-compliance.\",\n \"\",\n \"The directives below are listed in priority order. Read them all\",\n \"before acting on a task that touches multiple domains.\",\n \"\",\n \"---\",\n \"\",\n \"## [SYSTEM-NUDGE] Oracle Review Gate (v0.38.4 Option D)\",\n \"\",\n \"Oracle is invoked at the final-gate (`<promise>DONE</promise>` or\",\n \"`<promise>PLAN-COMPLETE</promise>`) and when the scoring engine reaches\",\n \"the stop band. `warn` / `escalate` are logged but do NOT auto-invoke.\",\n \"Configure frequency via `oracle.frequency` in omo-meta-governor.jsonc.\",\n \"\",\n \"## [SYSTEM-NUDGE] Lesson Capture (omo_remember)\",\n \"\",\n \"After solving a non-obvious bug, learning a project rule, or discovering\",\n \"a config quirk, call `omo_remember` to persist it cross-session.\",\n \"Recall previous lessons before asking the user: `omo_recall query=\\\"<topic>\\\"`.\",\n \"On empty result, try `omo_recall_mcp` (cross-session AgentMemory bridge).\",\n \"DO NOT save routine operations or facts already covered by memory.\",\n \"\",\n \"## [SYSTEM-NUDGE] Skill Priming (select before writing code)\",\n \"\",\n \"Before implementation work, query the skill-hub catalog for the 2-3\",\n \"capabilities most relevant to this task. Compose a minimal stack:\",\n \"1. `omo_skill_find \\\"<task type> <language>\\\" --limit 5`\",\n \"2. Inspect candidates with `omo_skill_get`\",\n \"3. Load selected skills via `omo_skill_add` (global cache) or\",\n \" `omo_skill_create` if no catalog match.\",\n \"\",\n \"Primary discovery tools (use BEFORE grep/glob/raw read):\",\n \"- Architecture / concepts / cross-module relationships → `omo_search`\",\n \"- Symbol-level lookup, call graph, impact analysis → `omo_find` / `omo_impact`\",\n \"- Past lessons, decisions, prior solutions → `omo_recall`\",\n \"- Project status → `omo_health` / `omo_status`\",\n \"\",\n \"Do NOT enumerate the full catalog — keep the stack minimal and\",\n \"task-specific.\",\n \"\",\n \"## [SYSTEM-NUDGE] Sisyphus Protocol Enforcement\",\n \"\",\n \"You MUST follow these rules:\",\n \"1. Codebase Graph First: Before grep/glob/read for architecture or\",\n \" symbol queries, check whether codegraph/graphify exist. If so,\",\n \" use them first, then grep/read only as last resort.\",\n \"2. Tool Routing:\",\n \" - \\\"we did this before\\\" / \\\"you should know\\\" → `omo_recall`\",\n \" - Starting a task that resembles a previous one → `omo_recall_mcp`\",\n \" - Before asking the user a clarifying question → `omo_recall` first\",\n \" - Save durable insight/decision/rule → `omo_remember`\",\n \"3. Parallel Query Rule: Fire independent tool queries in the same turn.\",\n \" Do NOT serialize independent memory/context queries.\",\n \"4. Empty-Result Escalation: On empty `omo_recall`, try `omo_recall_mcp`\",\n \" (cross-session bridge) before asking the user.\",\n \"5. Hard Rules (No Exceptions):\",\n \" - Do NOT suppress type errors with `as any`, `@ts-ignore`,\",\n \" `@ts-expect-error`.\",\n \" - Do NOT leave empty catch blocks `catch(e) {}`.\",\n \" - Do NOT start a fresh `task()` when `task(task_id=\\\"ses_...\\\")`\",\n \" continuation exists.\",\n \" - Do NOT batch-complete todos — mark each one completed immediately.\",\n \" - Do NOT skip Oracle on 2+ file changes (post-task verification).\",\n \"6. CI Verification Loop (NON-NEGOTIABLE):\",\n \" - After every push: `gh run watch <run-id> --exit-status`\",\n \" - Assert `conclusion==success` on EVERY job.\",\n \" - Never proceed on red CI.\",\n \"\",\n MARKER_CLOSE,\n ].join(\"\\n\")\n}\n\n/**\n * Returns the stamped version inside the open marker, or null if not present.\n */\nexport function installedVersion(content: string): string | null {\n const m = content.match(/<!-- META-GOVERNOR AUTO-INSTALL SNIPPET \\(v([^)]+)\\) -->/)\n return m ? m[1] : null\n}\n\n/**\n * True iff `content` already contains a snippet at `version` (or any\n * snippet when `version` is omitted). Both markers must appear.\n */\nexport function isInstalled(content: string, version?: string): boolean {\n if (!content.includes(MARKER_OPEN) || !content.includes(MARKER_CLOSE)) return false\n if (version === undefined) return true\n return installedVersion(content) === version\n}\n\n/**\n * Removes the meta-governor snippet block (open marker through close\n * marker, inclusive) from `content`. Preserves everything before the\n * open marker and everything after the close marker.\n */\nexport function stripSnippet(content: string): string {\n const openIdx = content.indexOf(MARKER_OPEN)\n if (openIdx < 0) return content\n const closeIdx = content.indexOf(MARKER_CLOSE, openIdx)\n if (closeIdx < 0) return content\n const before = content.slice(0, openIdx).replace(/\\s+$/, \"\")\n const after = content.slice(closeIdx + MARKER_CLOSE.length).replace(/^\\s+/, \"\")\n if (!before) return after\n if (!after) return before\n return `${before}\\n\\n${after}`\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "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",
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "A2D505841E8FBCFC64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|