oh-my-opencode 5.1.58 → 5.1.60
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/index.js +17 -17
- package/dist/cli-node/index.js +17 -17
- package/dist/index.js +307 -244
- package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
- package/dist/skills/eval-integrity/SKILL.md +107 -0
- package/dist/skills/ulw-research/scripts/fidelity-values.mjs +5 -2
- package/dist/skills/ulw-research/scripts/fidelity-values.test.ts +26 -0
- package/dist/skills/ulw-research/scripts/html-foreign-object.mjs +61 -0
- package/dist/skills/ulw-research/scripts/html-lite.mjs +7 -3
- package/dist/skills/ulw-research/scripts/html-lite.test.ts +19 -0
- package/dist/tui.js +14 -14
- package/package.json +14 -14
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/eval-integrity/SKILL.md +107 -0
- package/packages/omo-codex/plugin/skills/eval-integrity/agents/openai.yaml +2 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-values.mjs +5 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-foreign-object.mjs +61 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +7 -3
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/eval-integrity/SKILL.md +107 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.mjs +5 -2
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.test.ts +26 -0
- package/packages/shared-skills/skills/ulw-research/scripts/html-foreign-object.mjs +61 -0
- package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +7 -3
- package/packages/shared-skills/skills/ulw-research/scripts/html-lite.test.ts +19 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Ulw-Execute Continuation"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Ulw-Loop Steering"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use-spawn",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 5.1.
|
|
23
|
+
"statusMessage": "(OmO 5.1.60) Recording Spawn Admission"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"type": "command",
|
|
34
34
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
35
35
|
"timeout": 5,
|
|
36
|
-
"statusMessage": "(OmO 5.1.
|
|
36
|
+
"statusMessage": "(OmO 5.1.60) Enforcing Unlimited Ulw-Loop Budget"
|
|
37
37
|
}
|
|
38
38
|
]
|
|
39
39
|
},
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"type": "command",
|
|
45
45
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
|
|
46
46
|
"timeout": 5,
|
|
47
|
-
"statusMessage": "(OmO 5.1.
|
|
47
|
+
"statusMessage": "(OmO 5.1.60) Guarding Ulw-Loop Spawns"
|
|
48
48
|
}
|
|
49
49
|
]
|
|
50
50
|
}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"type": "command",
|
|
57
57
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
|
|
58
58
|
"timeout": 10,
|
|
59
|
-
"statusMessage": "(OmO 5.1.
|
|
59
|
+
"statusMessage": "(OmO 5.1.60) Checking Ulw-Loop Resume"
|
|
60
60
|
}
|
|
61
61
|
]
|
|
62
62
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.60",
|
|
4
4
|
"description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Resetting Git Bash MCP Reminder",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Resetting LSP Diagnostics Cache",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Resetting Project Rule Cache",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-compact"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 30,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Comments",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\comment-checker\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 60,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking LSP Diagnostics",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.60) Checking Thread Title Hygiene",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Matching Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook post-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.60) Recording Spawn Admission",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook post-tool-use-spawn"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Enforcing Unlimited Goal Budget",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.60) Guarding Ulw-Loop Spawns",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use-spawn"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Recommending Git Bash MCP",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
|
|
9
9
|
"timeout": 15,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Auto Update",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
|
|
9
9
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
|
|
10
10
|
"timeout": 30,
|
|
11
|
-
"statusMessage": "(OmO 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.60) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 15,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Recording Session Telemetry",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Ulw-Execute Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-execute-continuation\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Ulw-Loop Resume",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Verifying LazyCodex Executor Evidence",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Ultrawork Trigger",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ultrawork\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Checking Ulw-Loop Steering",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.60) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.60",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
9
|
-
"version": "5.1.
|
|
9
|
+
"version": "5.1.60",
|
|
10
10
|
"workspaces": [
|
|
11
11
|
"components/comment-checker",
|
|
12
12
|
"components/git-bash",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
},
|
|
101
101
|
"components/comment-checker": {
|
|
102
102
|
"name": "@code-yeongyu/codex-comment-checker",
|
|
103
|
-
"version": "5.1.
|
|
103
|
+
"version": "5.1.60",
|
|
104
104
|
"license": "MIT",
|
|
105
105
|
"bin": {
|
|
106
106
|
"omo-comment-checker": "dist/cli.js"
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
},
|
|
123
123
|
"components/git-bash": {
|
|
124
124
|
"name": "@sisyphuslabs/codex-git-bash-hook",
|
|
125
|
-
"version": "5.1.
|
|
125
|
+
"version": "5.1.60",
|
|
126
126
|
"bin": {
|
|
127
127
|
"omo-git-bash-hook": "dist/cli.js"
|
|
128
128
|
},
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
},
|
|
137
137
|
"components/lazycodex-executor-verify": {
|
|
138
138
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
139
|
-
"version": "5.1.
|
|
139
|
+
"version": "5.1.60",
|
|
140
140
|
"license": "MIT",
|
|
141
141
|
"bin": {
|
|
142
142
|
"lazycodex-executor-verify": "dist/cli.js"
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
},
|
|
155
155
|
"components/lsp": {
|
|
156
156
|
"name": "@code-yeongyu/codex-lsp",
|
|
157
|
-
"version": "5.1.
|
|
157
|
+
"version": "5.1.60",
|
|
158
158
|
"license": "MIT",
|
|
159
159
|
"dependencies": {
|
|
160
160
|
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
},
|
|
177
177
|
"components/rules": {
|
|
178
178
|
"name": "@code-yeongyu/codex-rules",
|
|
179
|
-
"version": "5.1.
|
|
179
|
+
"version": "5.1.60",
|
|
180
180
|
"license": "MIT",
|
|
181
181
|
"dependencies": {
|
|
182
182
|
"picomatch": "^4.0.7"
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
},
|
|
200
200
|
"components/teammode": {
|
|
201
201
|
"name": "@sisyphuslabs/codex-teammode",
|
|
202
|
-
"version": "5.1.
|
|
202
|
+
"version": "5.1.60",
|
|
203
203
|
"devDependencies": {
|
|
204
204
|
"@types/node": "^26.6.2",
|
|
205
205
|
"@vitest/coverage-v8": "5.0.1",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
},
|
|
214
214
|
"components/telemetry": {
|
|
215
215
|
"name": "@code-yeongyu/codex-telemetry",
|
|
216
|
-
"version": "5.1.
|
|
216
|
+
"version": "5.1.60",
|
|
217
217
|
"license": "MIT",
|
|
218
218
|
"bin": {
|
|
219
219
|
"omo-telemetry": "dist/cli.js"
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
},
|
|
233
233
|
"components/ultrawork": {
|
|
234
234
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
235
|
-
"version": "5.1.
|
|
235
|
+
"version": "5.1.60",
|
|
236
236
|
"license": "MIT",
|
|
237
237
|
"bin": {
|
|
238
238
|
"omo-ultrawork": "dist/cli.js"
|
|
@@ -251,7 +251,7 @@
|
|
|
251
251
|
},
|
|
252
252
|
"components/ulw-execute-continuation": {
|
|
253
253
|
"name": "@code-yeongyu/codex-ulw-execute-continuation",
|
|
254
|
-
"version": "5.1.
|
|
254
|
+
"version": "5.1.60",
|
|
255
255
|
"license": "MIT",
|
|
256
256
|
"bin": {
|
|
257
257
|
"omo-ulw-execute-continuation": "dist/cli.js"
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
},
|
|
270
270
|
"components/ulw-loop": {
|
|
271
271
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
272
|
-
"version": "5.1.
|
|
272
|
+
"version": "5.1.60",
|
|
273
273
|
"license": "MIT",
|
|
274
274
|
"bin": {
|
|
275
275
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eval-integrity
|
|
3
|
+
description: "Assess integrity of an eval, benchmark, metric, A/B test, holdout, LLM-judge, or user-study claim when the question is whether measurement, comparison, or evidence is independent and trustworthy."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Evaluation Integrity
|
|
7
|
+
|
|
8
|
+
Provide a read-only audit of whether an evaluation can support its stated claim. Do not alter code,
|
|
9
|
+
data, prompts, labels, or study operations. Begin with exactly one verdict line in the form
|
|
10
|
+
`**Verdict: PASS**`, `**Verdict: FAIL**`, or `**Verdict: INCONCLUSIVE**`. Emit no other verdict
|
|
11
|
+
line and do not restate the verdict later in the report. A favorable score is not itself evidence
|
|
12
|
+
of integrity.
|
|
13
|
+
|
|
14
|
+
## Route correctly
|
|
15
|
+
|
|
16
|
+
- **NOT for code review:** route implementation, correctness, security, or maintainability review to
|
|
17
|
+
`review-work`.
|
|
18
|
+
- **NOT for data processing:** route cleaning, transforming, joining, modeling, or analyzing data to
|
|
19
|
+
`data-scientist`.
|
|
20
|
+
- Use this skill for the independence and validity of the measurement setup, not for producing a
|
|
21
|
+
result from it.
|
|
22
|
+
|
|
23
|
+
## Audit method
|
|
24
|
+
|
|
25
|
+
### 1. State the claim and map the evaluation
|
|
26
|
+
|
|
27
|
+
Write the claim in testable form: what comparison, metric, threshold, or causal statement is being
|
|
28
|
+
made; for which population; and under which decision rule. Map every role before judging it:
|
|
29
|
+
|
|
30
|
+
| Element | Record |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| Claim | The conclusion and decision it is meant to justify. |
|
|
33
|
+
| System under test | Exact model, version, configuration, prompt, policy, or treatment. |
|
|
34
|
+
| Dataset and split | Sources, collection dates, inclusion rules, train/dev/test or holdout assignment. |
|
|
35
|
+
| Designer | Who selected the task, data, prompts, treatments, metric, and stopping rule. |
|
|
36
|
+
| Evaluator or judge | Who or what assigns quality judgments, including model and prompt versions. |
|
|
37
|
+
| Scorer | The rule or system that turns outputs or judgments into the reported metric. |
|
|
38
|
+
| Subjects | Humans, records, tasks, or units exposed to treatment or observation. |
|
|
39
|
+
|
|
40
|
+
Trace shared ownership, shared data, shared prompts, shared labels, and shared selection decisions
|
|
41
|
+
across this map. Several models do **not** establish independence merely because there are several
|
|
42
|
+
of them; identify distinct training, tuning, prompt design, labels, data, and decision authority.
|
|
43
|
+
|
|
44
|
+
### 2. Check the ground truth
|
|
45
|
+
|
|
46
|
+
Identify the independent ground truth that could confirm the claim without reusing the system's own
|
|
47
|
+
preferences, outputs, labels, or optimization target. Test whether it is:
|
|
48
|
+
|
|
49
|
+
- external to the system under test and its designer;
|
|
50
|
+
- collected or adjudicated without seeing the treatment identity when blinding is feasible;
|
|
51
|
+
- appropriate to the claim rather than a proxy selected because it favors one arm; and
|
|
52
|
+
- fixed before comparison, or accompanied by a disclosed multiplicity and selection procedure.
|
|
53
|
+
|
|
54
|
+
If no independent ground truth exists, do not substitute agreement among related systems. Mark the
|
|
55
|
+
claim **INCONCLUSIVE** unless the stated claim is explicitly limited to that related system's score.
|
|
56
|
+
|
|
57
|
+
### 3. Probe independence failures
|
|
58
|
+
|
|
59
|
+
Check only risks relevant to the mapped design:
|
|
60
|
+
|
|
61
|
+
- **Contamination:** benchmark items, answers, or near duplicates reached training, prompt design,
|
|
62
|
+
retrieval, tuning, or post-hoc selection.
|
|
63
|
+
- **Invalid controls:** arms differ beyond the intended treatment, allocation is biased, exposure is
|
|
64
|
+
unequal, or the control cannot answer the causal comparison.
|
|
65
|
+
- **Circular judging:** the evaluated system, its designer, or a derived rubric defines its own
|
|
66
|
+
success without external confirmation.
|
|
67
|
+
- **Scorer-label coupling:** labels, thresholds, reward signals, or rubric choices are reused by the
|
|
68
|
+
scorer in a way that makes agreement self-fulfilling.
|
|
69
|
+
- **Evaluator-designer coupling:** the evaluator, judge prompt, or adjudication process is selected,
|
|
70
|
+
tuned, or influenced by the comparison designer without an independent safeguard.
|
|
71
|
+
- **Split or annotator dependence:** overlapping sources, duplicates, temporal leakage, shared
|
|
72
|
+
annotators, or correlated annotation policies invalidate assumed independence.
|
|
73
|
+
- **Hypothesis priming:** task framing, examples, pre-registration gaps, or interim results steer
|
|
74
|
+
evaluators or analysts toward the expected outcome.
|
|
75
|
+
- **Observer and demand effects:** subjects or observers infer the desired treatment or outcome, and
|
|
76
|
+
behavior or ratings change because of that knowledge.
|
|
77
|
+
|
|
78
|
+
For each concern, distinguish documented evidence from an assumption. Missing provenance for data,
|
|
79
|
+
splits, labels, prompts, evaluator selection, or scoring is **INCONCLUSIVE**, not evidence that the
|
|
80
|
+
design was independent.
|
|
81
|
+
|
|
82
|
+
### 4. Reach the verdict
|
|
83
|
+
|
|
84
|
+
- **PASS:** evidence supports an independent, valid measurement path for the stated claim, with no
|
|
85
|
+
material unresolved dependency.
|
|
86
|
+
- **FAIL:** evidence shows a dependency or invalid design that materially invalidates or overstates
|
|
87
|
+
the stated claim.
|
|
88
|
+
- **INCONCLUSIVE:** provenance or evidence is missing, the ground truth is not independently
|
|
89
|
+
established, or remaining uncertainty prevents either result.
|
|
90
|
+
|
|
91
|
+
Do not convert uncertainty into PASS because a metric looks plausible, a result is statistically
|
|
92
|
+
significant, or multiple related evaluators agree.
|
|
93
|
+
|
|
94
|
+
## Report
|
|
95
|
+
|
|
96
|
+
Report the verdict first. Then report only findings that fired; do not pad the report with risks
|
|
97
|
+
that were checked and did not fire. For each fired finding include:
|
|
98
|
+
|
|
99
|
+
1. **Evidence:** the observed artifact, provenance record, or explicit absence of one.
|
|
100
|
+
2. **Impact:** which claim or inference the issue weakens or invalidates.
|
|
101
|
+
3. **Minimal independence fix:** the smallest separation, blind, held-out source, external
|
|
102
|
+
adjudication, or control change that would address it.
|
|
103
|
+
4. **Missing evidence:** what must be supplied to resolve the finding, if applicable.
|
|
104
|
+
5. **Residual risk:** what remains uncertain after the minimal fix.
|
|
105
|
+
|
|
106
|
+
Keep conclusions bounded to the evidence. This audit advises; it does not certify a system,
|
|
107
|
+
recompute results, or approve deployment.
|
|
@@ -82,13 +82,16 @@ export function exportRows(ledger) {
|
|
|
82
82
|
|
|
83
83
|
const walk = (node) => node.children.filter((child) => child.tag !== "#text").flatMap((child) => [child, ...walk(child)])
|
|
84
84
|
|
|
85
|
-
/** SVG text nodes of a chart: data labels, or ticks with their declared grid. */
|
|
85
|
+
/** SVG text nodes of a chart: data labels, or ticks with their declared grid; foreignObject HTML counts as unticked labels. */
|
|
86
86
|
function svgLabels(raw) {
|
|
87
|
-
|
|
87
|
+
const nodes = walk(parseHtml(raw))
|
|
88
|
+
const texts = nodes.filter((node) => node.tag === "text").map((node) => {
|
|
88
89
|
let tick = null
|
|
89
90
|
for (let cur = node.parent; cur && !tick; cur = cur.parent) if (cur.tag === "g" && /(?:^|\s)ticks(?:\s|$)/.test(cur.attrs.class ?? "")) tick = cur.attrs
|
|
90
91
|
return { text: proseText(node), tick }
|
|
91
92
|
})
|
|
93
|
+
const foreign = nodes.filter((node) => node.tag === "foreignobject").map((node) => ({ text: proseText(node), tick: null }))
|
|
94
|
+
return [...texts, ...foreign]
|
|
92
95
|
}
|
|
93
96
|
|
|
94
97
|
function onGrid(value, tick) {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// html-foreign-object.mjs - the <foreignObject> carve-out for the html-lite tokenizer.
|
|
2
|
+
//
|
|
3
|
+
// An <svg> element is raw drawing markup, except <foreignObject>, which by definition holds
|
|
4
|
+
// HTML. The tokenizer keeps the svg's inner source in `raw` and additionally parses each
|
|
5
|
+
// foreignObject subtree into real children of the svg node, so the fidelity checks read chart
|
|
6
|
+
// HTML exactly like prose while the rest of the svg stays raw. Plain Node ESM, no dependencies.
|
|
7
|
+
|
|
8
|
+
import { makeNode, readTag } from "./html-lite.mjs"
|
|
9
|
+
|
|
10
|
+
/** Newlines in text before offset `to`. */
|
|
11
|
+
function newlinesBefore(text, to) {
|
|
12
|
+
let count = 0
|
|
13
|
+
for (let at = text.indexOf("\n"); at !== -1 && at < to; at = text.indexOf("\n", at + 1)) count++
|
|
14
|
+
return count
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Shift a parsed subtree's line numbers by `delta` (fragment lines are relative to the fragment). */
|
|
18
|
+
function shiftLines(node, delta) {
|
|
19
|
+
node.line += delta
|
|
20
|
+
for (const child of node.children) shiftLines(child, delta)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const isLetter = (ch) => (ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z")
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Parse an svg node's <foreignObject> subtrees into real children; the rest of the svg stays raw.
|
|
27
|
+
* @param {object} node an <svg> LiteNode whose `raw` holds its inner source
|
|
28
|
+
* @param {number} rawStartLine document line of the first raw character
|
|
29
|
+
* @param {(source: string) => object} parseHtml the tokenizer, passed in so this module never imports it back
|
|
30
|
+
*/
|
|
31
|
+
export function attachForeignObjects(node, rawStartLine, parseHtml) {
|
|
32
|
+
const raw = node.raw ?? ""
|
|
33
|
+
for (let lt = raw.indexOf("<"); lt !== -1; lt = raw.indexOf("<", lt + 1)) {
|
|
34
|
+
if (raw[lt + 1] === "/" || !isLetter(raw[lt + 1] ?? "")) continue
|
|
35
|
+
const open = readTag(raw, lt + 1)
|
|
36
|
+
if (open.name !== "foreignobject" || open.selfClosing) continue
|
|
37
|
+
let depth = 0
|
|
38
|
+
let innerEnd = raw.length
|
|
39
|
+
let resume = raw.length
|
|
40
|
+
for (let at = raw.indexOf("<", open.end); at !== -1; at = raw.indexOf("<", at + 1)) {
|
|
41
|
+
const closing = raw[at + 1] === "/"
|
|
42
|
+
if (!closing && !isLetter(raw[at + 1] ?? "")) continue
|
|
43
|
+
if (readTag(raw, at + (closing ? 2 : 1)).name !== "foreignobject") continue
|
|
44
|
+
if (closing) {
|
|
45
|
+
if (depth === 0) { innerEnd = at; const gt = raw.indexOf(">", at); resume = gt === -1 ? raw.length : gt + 1; break }
|
|
46
|
+
depth--
|
|
47
|
+
} else depth++
|
|
48
|
+
}
|
|
49
|
+
// Tags are lowercased by readTag, so the attached node is "foreignobject" like any parsed tag.
|
|
50
|
+
const fo = makeNode("foreignobject", open.attrs, node, rawStartLine + newlinesBefore(raw, lt))
|
|
51
|
+
const frag = parseHtml(raw.slice(open.end, innerEnd))
|
|
52
|
+
const body = frag.children.find((child) => child.tag === "body") ?? frag
|
|
53
|
+
for (const child of body.children) {
|
|
54
|
+
child.parent = fo
|
|
55
|
+
shiftLines(child, rawStartLine + newlinesBefore(raw, open.end) - 1)
|
|
56
|
+
fo.children.push(child)
|
|
57
|
+
}
|
|
58
|
+
node.children.push(fo)
|
|
59
|
+
lt = resume - 1
|
|
60
|
+
}
|
|
61
|
+
}
|