lazycodex-ai 5.1.44 → 5.1.46
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/README.de.md +0 -5
- package/README.es.md +0 -5
- package/README.fr.md +0 -5
- package/README.it.md +0 -5
- package/README.ja.md +0 -5
- package/README.ko.md +0 -5
- package/README.md +4 -5
- package/README.pt-br.md +0 -5
- package/README.ru.md +0 -6
- package/README.zh-cn.md +0 -5
- package/dist/cli/index.js +865 -413
- package/dist/cli/service-auth/keystore.d.ts +4 -2
- package/dist/cli-node/index.js +865 -413
- package/docs/reference/web-terminal-visual-qa.md +8 -0
- package/package.json +1 -1
- package/packages/lsp-daemon/dist/cli.js +7 -7
- package/packages/lsp-daemon/dist/client.js +7 -7
- package/packages/lsp-daemon/dist/index.js +7 -7
- package/packages/lsp-daemon/package.json +3 -3
- package/packages/lsp-tools-mcp/dist/cli.js +7 -7
- package/packages/lsp-tools-mcp/dist/mcp.js +7 -7
- package/packages/lsp-tools-mcp/dist/tools.js +4 -4
- package/packages/lsp-tools-mcp/package.json +3 -3
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +77 -26
- 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/bootstrap/src/hook.ts +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/biome.json +1 -21
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +4 -4
- 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/biome.json +1 -21
- 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 +4 -4
- package/packages/omo-codex/plugin/components/lsp/biome.json +1 -21
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +4 -4
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +4 -4
- package/packages/omo-codex/plugin/components/lsp/scripts/build-runtime.mjs +0 -1
- package/packages/omo-codex/plugin/components/lsp/test/codex-hook-not-installed.test.ts +1 -1
- package/packages/omo-codex/plugin/components/rules/biome.json +1 -21
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +4 -4
- 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/biome.json +1 -21
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +90 -1
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +91 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +4 -4
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/biome.json +1 -21
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/biome.json +1 -21
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +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 +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/biome.json +1 -21
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +7 -7
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +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 +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-mutations.mjs +2 -0
- 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/scripts/sync-skills.mjs +14 -9
- package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/skills/browser/SKILL.md +21 -22
- package/packages/omo-codex/plugin/skills/browser/references/commands.md +2 -9
- package/packages/omo-codex/plugin/skills/browser/references/install.md +1 -2
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/scripts/browser-doctor.mjs +2 -2
- package/packages/omo-codex/plugin/skills/browser/scripts/browser-engine-guard.mjs +63 -487
- package/packages/omo-codex/plugin/skills/browser/scripts/browser-install.mjs +1 -1
- package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +1 -10
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +2 -2
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +79 -118
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +75 -224
- package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +32 -27
- package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -2
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/collect-files.ts +53 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
- package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +10 -7
- package/packages/omo-codex/plugin/skills/programming/references/typescript/README.md +10 -7
- package/packages/omo-codex/plugin/skills/programming/references/typescript/bootstrap.md +9 -23
- package/packages/omo-codex/plugin/skills/programming/references/typescript/oxc-lint.md +130 -0
- package/packages/omo-codex/plugin/skills/programming/references/typescript/tsconfig-strict.md +6 -62
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/new-project.ts +20 -81
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +14 -14
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +21 -3
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +37 -12
- package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +77 -16
- package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger-grammar.md +134 -0
- package/packages/omo-codex/plugin/skills/ulw-research/references/fact-ledger.md +95 -0
- package/packages/omo-codex/plugin/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
- package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +68 -3
- package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +2 -0
- package/packages/omo-codex/plugin/skills/ulw-research/references/unit-rules.md +157 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/claims-index.mjs +125 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/cli-support.mjs +19 -5
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +89 -3
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +239 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-derive.mjs +66 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-expr.mjs +108 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-fill.mjs +194 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-kinds.mjs +250 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger-schema.mjs +221 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-ledger.mjs +123 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-locate.mjs +231 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-brief.mjs +150 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-state.mjs +64 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +29 -9
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-structure.mjs +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-text.mjs +1 -27
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +2 -2
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-markup.mjs +182 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/lexicon.mjs +47 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/md-lite.mjs +193 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/meaning-check.mjs +196 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/numerals.mjs +226 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +8 -8
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/particles-ko.mjs +108 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/placeholder.mjs +184 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-apply.mjs +115 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-diff.mjs +31 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-project.mjs +125 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/polish-rules.mjs +170 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/rational.mjs +139 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +21 -10
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +15 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/sentence-split.mjs +77 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-commands.mjs +140 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/text-normalize.mjs +82 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/text-similarity.mjs +28 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-errors.mjs +23 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-precision.mjs +44 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/unit-rules.mjs +173 -0
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/units.mjs +105 -0
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +71 -64
- package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +4 -1
- package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +19 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +12 -8
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +169 -30
- package/packages/shared-skills/skills/ast-grep/AGENTS.md +1 -1
- package/packages/shared-skills/skills/browser/SKILL.md +21 -22
- package/packages/shared-skills/skills/browser/references/commands.md +2 -9
- package/packages/shared-skills/skills/browser/references/install.md +1 -2
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/browser/scripts/browser-doctor.mjs +2 -2
- package/packages/shared-skills/skills/browser/scripts/browser-engine-guard.mjs +63 -487
- package/packages/shared-skills/skills/browser/scripts/browser-install.mjs +1 -1
- package/packages/shared-skills/skills/browser/scripts/omowright.mjs +1 -10
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +2 -2
- package/packages/shared-skills/skills/frontend/SKILL.md +79 -118
- package/packages/shared-skills/skills/frontend/references/design/README.md +75 -224
- package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +32 -27
- package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -2
- package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +8 -24
- package/packages/shared-skills/skills/frontend/scripts/perfection/check-draft-guard.test.ts +101 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/check-draft-guard.ts +40 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/collect-files.test.ts +50 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/collect-files.ts +53 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/findings.ts +16 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/lint.ts +38 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/rules.ts +69 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/draft-guard/text-nodes.ts +121 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/attr-lookalikes.tsx +10 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/bound-values.tsx +12 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/const-generics.tsx +3 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/generics.tsx +7 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/measured-stats.html +6 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/plain-copy.html +9 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/negative/state-copy.html +11 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/attribute-edges.html +7 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/components.tsx +16 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/decorative-badge.vue +7 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/emoji-icons.tsx +9 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/jsx-edges.tsx +1 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.html +6 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/promo-copy.tsx +8 -0
- package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/draft-guard/positive/vanity-stats.html +5 -0
- package/packages/shared-skills/skills/programming/SKILL.md +10 -7
- package/packages/shared-skills/skills/programming/references/typescript/README.md +10 -7
- package/packages/shared-skills/skills/programming/references/typescript/bootstrap.md +9 -23
- package/packages/shared-skills/skills/programming/references/typescript/oxc-lint.md +130 -0
- package/packages/shared-skills/skills/programming/references/typescript/tsconfig-strict.md +6 -62
- package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +12 -12
- package/packages/shared-skills/skills/programming/scripts/typescript/new-project.test.ts +162 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/new-project.ts +20 -81
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/.oxfmtrc.json +9 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/.oxlintrc.json +46 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/LICENSE +21 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/index.js +10 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/no-em-dash-copy.js +28 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/lint/oxlint-plugin/require-suppression-reason.js +62 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/oxc/tsconfig.json +29 -0
- package/packages/shared-skills/skills/refactor/SKILL.md +13 -13
- package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +1 -1
- package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-research/AGENTS.md +21 -3
- package/packages/shared-skills/skills/ulw-research/SKILL.md +37 -12
- package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +77 -16
- package/packages/shared-skills/skills/ulw-research/references/fact-ledger-grammar.md +134 -0
- package/packages/shared-skills/skills/ulw-research/references/fact-ledger.md +95 -0
- package/packages/shared-skills/skills/ulw-research/references/fidelity-claim-kinds.md +19 -0
- package/packages/shared-skills/skills/ulw-research/references/report-gates.md +68 -3
- package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +2 -0
- package/packages/shared-skills/skills/ulw-research/references/unit-rules.md +157 -0
- package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.mjs +116 -0
- package/packages/shared-skills/skills/ulw-research/scripts/claim-kinds.test.ts +193 -0
- package/packages/shared-skills/skills/ulw-research/scripts/claims-index.mjs +125 -0
- package/packages/shared-skills/skills/ulw-research/scripts/claims-index.test.ts +149 -0
- package/packages/shared-skills/skills/ulw-research/scripts/cli-support.mjs +19 -5
- package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +13 -2
- package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +89 -3
- package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +100 -12
- package/packages/shared-skills/skills/ulw-research/scripts/copy-returns.test.ts +183 -0
- package/packages/shared-skills/skills/ulw-research/scripts/delivery-barrier.test.ts +245 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +191 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +164 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +239 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.mjs +66 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-derive.test.ts +375 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-expr.mjs +108 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.mjs +194 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-fill.test.ts +221 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-grammar.test.ts +197 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.mjs +250 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-kinds.test.ts +156 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-legacy.test.ts +160 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.mjs +221 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger-schema.test.ts +43 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.mjs +123 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-ledger.test.ts +254 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.mjs +231 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-locate.test.ts +118 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.mjs +187 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.test.ts +167 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-recompute.mjs +89 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-dimensions.test.ts +409 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fact-unit-rules.test.ts +388 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.mjs +130 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-binding.test.ts +81 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.mjs +150 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-brief.test.ts +179 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-claims.mjs +89 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.mjs +145 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-lexicon.test.ts +117 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-records.mjs +163 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.mjs +64 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-state.test.ts +46 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.mjs +85 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-trace.test.ts +58 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.mjs +229 -0
- package/packages/shared-skills/skills/ulw-research/scripts/fidelity-values.test.ts +270 -0
- package/packages/shared-skills/skills/ulw-research/scripts/gates-context.test.ts +64 -0
- package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.mjs +113 -0
- package/packages/shared-skills/skills/ulw-research/scripts/gates-fidelity.test.ts +73 -0
- package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +29 -9
- package/packages/shared-skills/skills/ulw-research/scripts/gates-structure.mjs +1 -1
- package/packages/shared-skills/skills/ulw-research/scripts/gates-text.mjs +1 -27
- package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +2 -2
- package/packages/shared-skills/skills/ulw-research/scripts/html-markup.mjs +182 -0
- package/packages/shared-skills/skills/ulw-research/scripts/lexicon.mjs +47 -0
- package/packages/shared-skills/skills/ulw-research/scripts/lexicon.test.ts +57 -0
- package/packages/shared-skills/skills/ulw-research/scripts/md-lite.mjs +193 -0
- package/packages/shared-skills/skills/ulw-research/scripts/md-lite.test.ts +271 -0
- package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.mjs +196 -0
- package/packages/shared-skills/skills/ulw-research/scripts/meaning-check.test.ts +228 -0
- package/packages/shared-skills/skills/ulw-research/scripts/numerals.mjs +226 -0
- package/packages/shared-skills/skills/ulw-research/scripts/numerals.test.ts +120 -0
- package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +8 -8
- package/packages/shared-skills/skills/ulw-research/scripts/outcome.test.ts +29 -0
- package/packages/shared-skills/skills/ulw-research/scripts/particles-ko.mjs +108 -0
- package/packages/shared-skills/skills/ulw-research/scripts/particles-ko.test.ts +86 -0
- package/packages/shared-skills/skills/ulw-research/scripts/placeholder.mjs +184 -0
- package/packages/shared-skills/skills/ulw-research/scripts/placeholder.test.ts +77 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.mjs +115 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-apply.test.ts +363 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.mjs +31 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-diff.test.ts +168 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-markup.test.ts +187 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-project.mjs +125 -0
- package/packages/shared-skills/skills/ulw-research/scripts/polish-rules.mjs +170 -0
- package/packages/shared-skills/skills/ulw-research/scripts/rational.mjs +139 -0
- package/packages/shared-skills/skills/ulw-research/scripts/rational.test.ts +46 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +21 -10
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +15 -0
- package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +458 -2
- package/packages/shared-skills/skills/ulw-research/scripts/sentence-split.mjs +77 -0
- package/packages/shared-skills/skills/ulw-research/scripts/sentence-split.test.ts +109 -0
- package/packages/shared-skills/skills/ulw-research/scripts/source-commands.mjs +140 -0
- package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.mjs +176 -0
- package/packages/shared-skills/skills/ulw-research/scripts/source-snapshot.test.ts +113 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/assets/share.csv +3 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/claim-graph.md +13 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/gen-legacy-dev.mjs +89 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-basic.json +223 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-legacy-dev.json +859 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/ledger-verify.json +420 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-bad.html +19 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/report-good.html +39 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/acronyms.json +3 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/meta.json +9 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/sentences.jsonl +7 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4/text.txt +7 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S4.html +19 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/acronyms.json +1 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/meta.json +9 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/sentences.jsonl +1 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S5/text.txt +1 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/sources/S9.txt +1 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-locked.md +17 -0
- package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity-brief-pending.md +17 -0
- package/packages/shared-skills/skills/ulw-research/scripts/text-normalize.mjs +82 -0
- package/packages/shared-skills/skills/ulw-research/scripts/text-normalize.test.ts +73 -0
- package/packages/shared-skills/skills/ulw-research/scripts/text-similarity.mjs +28 -0
- package/packages/shared-skills/skills/ulw-research/scripts/text-similarity.test.ts +38 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-algebra.mjs +101 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-errors.mjs +23 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-metadata.mjs +31 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-pairs.mjs +72 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-precision.mjs +44 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-rules-shapes.mjs +64 -0
- package/packages/shared-skills/skills/ulw-research/scripts/unit-rules.mjs +173 -0
- package/packages/shared-skills/skills/ulw-research/scripts/units.mjs +105 -0
- package/packages/shared-skills/skills/ulw-research/scripts/units.test.ts +83 -0
- package/packages/shared-skills/skills/visual-qa/SKILL.md +70 -63
- package/packages/shared-skills/skills/visual-qa/scripts/skill-doc-fields.test.ts +34 -0
- package/script/qa/web-terminal-visual-qa.mjs +6 -2
- package/script/qa/xterm-live-terminal.mjs +26 -3
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
ulwExecuteOriginalCompletion,
|
|
17
17
|
ulwExecuteOriginalHardRule,
|
|
18
18
|
} from "../scripts/sync-skills.mjs";
|
|
19
|
+
import { removeCodexSkillOverlays } from "./sync-skills-test-support.mjs";
|
|
19
20
|
|
|
20
21
|
const frontmatter = "---\nname: fixture-sentinel\n---\n\n";
|
|
21
22
|
const opencodeExample = "# SENTINEL_SECTION\ntask(SENTINEL_INPUT)\n";
|
|
@@ -177,3 +178,21 @@ test("#given the shared ulw-research skill #when the Codex overlay runs #then th
|
|
|
177
178
|
// then
|
|
178
179
|
assert.notEqual(actual, shared, "the ulw-research overlay anchor no longer matches the shared SKILL.md");
|
|
179
180
|
});
|
|
181
|
+
|
|
182
|
+
test("#given the ulw-research delivery gates are renumbered #when the Codex overlay runs #then only the proofread gate is dropped", async () => {
|
|
183
|
+
// given
|
|
184
|
+
const shared = await readFile(join(sharedSkillsRoot, "ulw-research", "SKILL.md"), "utf8");
|
|
185
|
+
const renumbered = shared
|
|
186
|
+
.replace(/^(\d+)(\. \*\*Proofread gate:)/m, (_, numeral, rest) => `${Number(numeral) + 1}${rest}`)
|
|
187
|
+
.replace(/^(\d+)(\. \*\*Visual QA\.\*\*)/m, (_, numeral, rest) => `${Number(numeral) + 1}${rest}`);
|
|
188
|
+
assert.notEqual(renumbered, shared, "the renumbering fixture must change the delivery gates");
|
|
189
|
+
|
|
190
|
+
// when
|
|
191
|
+
const actual = applyCodexSkillOverlays("ulw-research", renumbered);
|
|
192
|
+
|
|
193
|
+
// then: generated Codex edition contract (no `task(category="writing")` gate; tool-based gates kept)
|
|
194
|
+
assert.doesNotMatch(actual, /\*\*Proofread gate:/);
|
|
195
|
+
assert.match(actual, /\*\*Fidelity gate\.\*\*/);
|
|
196
|
+
assert.match(actual, /inspect the pixels\.\n\n/);
|
|
197
|
+
assert.equal(removeCodexSkillOverlays("ulw-research", actual), renumbered);
|
|
198
|
+
});
|
|
@@ -58,8 +58,8 @@ export const canonicalUltraworkDirectiveRelativePath = join(
|
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
const codexCompatibilityEndMarkers = [
|
|
61
|
-
"Omit optional keys you do not set. Never send `items: []`, `message: \"\"`, `model: \"\"`, `reasoning_effort: \"\"`, or `service_tier: \"\"
|
|
62
|
-
"On the v2 surface `agent_type` may be ABSENT from the spawn schema (verified 2026-07-11: only `fork_turns`/`message`/`task_name`)
|
|
61
|
+
"Omit optional keys you do not set. Never send `items: []`, `message: \"\"`, `model: \"\"`, `reasoning_effort: \"\"`, or `service_tier: \"\"`. Codex rejects them (`Items can't be empty`, `reasoning_effort must not be empty`).\n\nFor work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `multi_agent_v1.wait_agent` timeout only means no new mailbox update arrived; back off between waits (double the timeout up to ~5 minutes) instead of spinning short cycles. Treat a running child as alive. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.\n\n",
|
|
62
|
+
"On the v2 surface `agent_type` may be ABSENT from the spawn schema (verified 2026-07-11: only `fork_turns`/`message`/`task_name`). When absent, omit it and describe the role inside `message`; installed role TOMLs cannot be selected on that surface. If a code block below conflicts with this section, this section wins. `fork_context` is rejected on `multi_agent_v2` (`fork_context is not supported in MultiAgentV2; use fork_turns instead`).\n\n",
|
|
63
63
|
"For work likely to exceed one wait cycle, require the child to send `WORKING: <task> - <current phase>` before long passes and `BLOCKED: <reason>` only when progress stops. A `multi_agent_v1.wait_agent` timeout only means no new mailbox update arrived. Treat a running child as alive. Fallback only when the child is completed without the deliverable, ack-only after followup, explicitly `BLOCKED:`, or no longer running.\n\n",
|
|
64
64
|
"On `multi_agent_v2` sessions the same `agent_type` applies (the OMO installer exposes it) with `fork_turns` instead of `fork_context`. If a code block below conflicts with this section, this section wins.\n\n",
|
|
65
65
|
"Role-specific behavior must be described in a self-contained `message`. Use `fork_context: false` to start the child with only the initial prompt (no parent history); use `fork_context: true` only when full parent history is truly required. Include any required conversation context, files, diffs, constraints, and requested skill names directly in the spawned agent's `message`. If a code block below conflicts with this section, this section wins.\n\n",
|
|
@@ -101,7 +101,7 @@ const ulwExecuteCodexCompletion = `When all top-level checkboxes in \`## TODOs\`
|
|
|
101
101
|
const ulwExecuteOriginalHardRule = `- No production change before the tests covering that behavior were read and a bug's reproduction captured; existing tests are green on the unchanged code first, and one that contradicts the intent is a FINDING, never edited green.
|
|
102
102
|
- No \`--dry-run\` as completion evidence.
|
|
103
103
|
- No tests-only completion claim. A Manual-QA artifact is required.
|
|
104
|
-
- **NO DIRECT IMPLEMENTATION BY THE ORCHESTRATOR.** Root NEVER edits product files, writes tests, or runs QA itself
|
|
104
|
+
- **NO DIRECT IMPLEMENTATION BY THE ORCHESTRATOR.** Root NEVER edits product files, writes tests, or runs QA itself; a spawned worker does.
|
|
105
105
|
- No completion claim while an applicable ultraqa adversarial class was never probed. Each applicable class needs a captured observable result; each skipped class needs a one-line not-applicable reason in the ledger.
|
|
106
106
|
- No implementation, review, or merge in the main checkout; every phase works in its task-owned worktree.
|
|
107
107
|
- No unprefixed session ids in Boulder state. Sessions are always recorded as \`codex:<session_id>\`.
|
|
@@ -110,7 +110,7 @@ const ulwExecuteOriginalHardRule = `- No production change before the tests cove
|
|
|
110
110
|
const ulwExecuteCodexHardRule = `- No production change before the tests covering that behavior were read and a bug's reproduction captured; existing tests are green on the unchanged code first, and one that contradicts the intent is a FINDING, never edited green.
|
|
111
111
|
- No \`--dry-run\` as completion evidence.
|
|
112
112
|
- No tests-only completion claim. A Manual-QA artifact is required.
|
|
113
|
-
- **NO DIRECT IMPLEMENTATION BY THE ORCHESTRATOR.** Root NEVER edits product files, writes tests, or runs QA itself
|
|
113
|
+
- **NO DIRECT IMPLEMENTATION BY THE ORCHESTRATOR.** Root NEVER edits product files, writes tests, or runs QA itself; a spawned worker does.
|
|
114
114
|
- No completion claim while an applicable ultraqa adversarial class was never probed. Each applicable class needs a captured observable result; each skipped class needs a one-line not-applicable reason in the ledger.
|
|
115
115
|
- No implementation, review, or merge in the main checkout; every phase works in a task-owned worktree.
|
|
116
116
|
- No unprefixed session ids in Boulder state. Sessions are always recorded as \`codex:<session_id>\`.
|
|
@@ -140,7 +140,7 @@ compaction, re-read that record and require the exact lane/SHA pair. Memory,
|
|
|
140
140
|
chat history, or an unstamped report is not coverage; a new commit requires
|
|
141
141
|
fresh applicable lane records.
|
|
142
142
|
|
|
143
|
-
A rejecting lane must name its blockers inline in its final message
|
|
143
|
+
A rejecting lane must name its blockers inline in its final message; each
|
|
144
144
|
blocker cites the violated goal criterion or requirement plus an evidence
|
|
145
145
|
pointer. A bare REJECT/FAIL token without findings is not a verdict; treat it
|
|
146
146
|
as an inconclusive lane (one bounded respawn, then record it inconclusive with
|
|
@@ -158,12 +158,16 @@ prefixes when identity is needed.
|
|
|
158
158
|
`;
|
|
159
159
|
const reviewWorkCodexGatePattern = new RegExp(reviewWorkCodexGate.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
160
160
|
|
|
161
|
-
const
|
|
162
|
-
|
|
161
|
+
const ulwResearchProofreadGate = "**Proofread gate: `task(category=\"writing\", ...)`.** Hand the final text to a dedicated `writing` worker whose only job is language: grammar, spelling, punctuation, terminology consistency, and whether the prose reads NATIVELY in the report's own language. It proofreads only and never composes. It returns a defect list; fix every item and re-run the gate on the delta. Deliver only on a clean pass. This gate runs BEFORE the first delivery, not after the user finds the typo.";
|
|
162
|
+
// The shared skill numbers the proofread gate right after the Visual QA item the Codex edition ends on.
|
|
163
|
+
const ulwResearchVisualQaItemPattern = /^(\d+)\. \*\*Visual QA\.\*\*[^\n]*inspect the pixels\.$/m;
|
|
163
164
|
|
|
164
165
|
export function removeCodexSkillOverlays(skillName, content) {
|
|
165
166
|
if (skillName === "ulw-research") {
|
|
166
|
-
return content.replace(
|
|
167
|
+
return content.replace(
|
|
168
|
+
ulwResearchVisualQaItemPattern,
|
|
169
|
+
(item, numeral) => `${item}\n${Number(numeral) + 1}. ${ulwResearchProofreadGate}`,
|
|
170
|
+
);
|
|
167
171
|
}
|
|
168
172
|
if (skillName === "ulw-execute") {
|
|
169
173
|
return content
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// omo-codex-install:
|
|
2
|
+
// omo-codex-install:1d099ec7e89e45d9a749b3119fafbd06726b589bba756c5a72ea56b563a2b9ea:0766ee449be1f634fa5ed2f988eb9b3473567708af6ab5bb8a716ce419ce101f
|
|
3
3
|
var __esm = (fn, res, err) => () => {
|
|
4
4
|
if (fn)
|
|
5
5
|
try {
|
|
@@ -453,13 +453,13 @@ var init_event_id = __esm(() => {
|
|
|
453
453
|
});
|
|
454
454
|
|
|
455
455
|
// packages/telemetry-core/src/machine-id.ts
|
|
456
|
-
import { createHash as
|
|
456
|
+
import { createHash as createHash5 } from "node:crypto";
|
|
457
457
|
import os2 from "node:os";
|
|
458
458
|
function getDefaultTelemetryOsProvider() {
|
|
459
459
|
return os2;
|
|
460
460
|
}
|
|
461
461
|
function getTelemetryDistinctId(machineIdPrefix, osProvider = getDefaultTelemetryOsProvider()) {
|
|
462
|
-
return
|
|
462
|
+
return createHash5("sha256").update(`${machineIdPrefix}${osProvider.hostname()}`).digest("hex");
|
|
463
463
|
}
|
|
464
464
|
var init_machine_id = () => {};
|
|
465
465
|
|
|
@@ -9982,20 +9982,98 @@ var init_index_node = __esm(() => {
|
|
|
9982
9982
|
};
|
|
9983
9983
|
});
|
|
9984
9984
|
|
|
9985
|
+
// packages/telemetry-core/src/telemetry-delivery-error.ts
|
|
9986
|
+
var PERMANENT_STATUSES, TelemetryDeliveryError;
|
|
9987
|
+
var init_telemetry_delivery_error = __esm(() => {
|
|
9988
|
+
PERMANENT_STATUSES = new Set([400, 413]);
|
|
9989
|
+
TelemetryDeliveryError = class TelemetryDeliveryError extends Error {
|
|
9990
|
+
permanent;
|
|
9991
|
+
status;
|
|
9992
|
+
constructor(status, cause) {
|
|
9993
|
+
super(status === undefined ? "telemetry event was not delivered (no response)" : `telemetry event was rejected with HTTP ${status}`, { cause });
|
|
9994
|
+
this.name = "TelemetryDeliveryError";
|
|
9995
|
+
this.status = status;
|
|
9996
|
+
this.permanent = status !== undefined && PERMANENT_STATUSES.has(status);
|
|
9997
|
+
}
|
|
9998
|
+
};
|
|
9999
|
+
});
|
|
10000
|
+
|
|
10001
|
+
// packages/telemetry-core/src/posthog-immediate-send.ts
|
|
10002
|
+
function createImmediateSender(apiKey, options, PostHogClient) {
|
|
10003
|
+
const baseFetch = options.fetch ?? ((url, init) => fetch(url, init));
|
|
10004
|
+
let current;
|
|
10005
|
+
const trackedFetch = async (url, init) => {
|
|
10006
|
+
const attempt = current;
|
|
10007
|
+
try {
|
|
10008
|
+
const response = await baseFetch(url, init);
|
|
10009
|
+
if (attempt !== undefined)
|
|
10010
|
+
attempt.status = response.status;
|
|
10011
|
+
return response;
|
|
10012
|
+
} catch (error) {
|
|
10013
|
+
if (attempt !== undefined)
|
|
10014
|
+
attempt.error = error;
|
|
10015
|
+
throw error;
|
|
10016
|
+
}
|
|
10017
|
+
};
|
|
10018
|
+
const client = new PostHogClient(apiKey, { ...options, fetch: trackedFetch, fetchRetryCount: 0 });
|
|
10019
|
+
let queue = Promise.resolve();
|
|
10020
|
+
const sendOne = async (message) => {
|
|
10021
|
+
const attempt = {};
|
|
10022
|
+
current = attempt;
|
|
10023
|
+
try {
|
|
10024
|
+
await client.captureImmediate(message);
|
|
10025
|
+
} finally {
|
|
10026
|
+
current = undefined;
|
|
10027
|
+
}
|
|
10028
|
+
const { status } = attempt;
|
|
10029
|
+
if (status === undefined || status < 200 || status >= 300)
|
|
10030
|
+
throw new TelemetryDeliveryError(status, attempt.error);
|
|
10031
|
+
};
|
|
10032
|
+
return {
|
|
10033
|
+
send(message) {
|
|
10034
|
+
const result = queue.then(() => sendOne(message));
|
|
10035
|
+
queue = result.catch(() => {
|
|
10036
|
+
return;
|
|
10037
|
+
});
|
|
10038
|
+
return result;
|
|
10039
|
+
},
|
|
10040
|
+
async shutdown() {
|
|
10041
|
+
await client.shutdown();
|
|
10042
|
+
}
|
|
10043
|
+
};
|
|
10044
|
+
}
|
|
10045
|
+
var init_posthog_immediate_send = __esm(() => {
|
|
10046
|
+
init_telemetry_delivery_error();
|
|
10047
|
+
});
|
|
10048
|
+
|
|
9985
10049
|
// packages/telemetry-core/src/posthog-transport.ts
|
|
9986
10050
|
class PostHogTelemetryTransport {
|
|
9987
10051
|
#client;
|
|
10052
|
+
#apiKey;
|
|
10053
|
+
#options;
|
|
10054
|
+
#immediate;
|
|
9988
10055
|
constructor(apiKey, options) {
|
|
9989
10056
|
this.#client = new PostHog(apiKey, options);
|
|
10057
|
+
this.#apiKey = apiKey;
|
|
10058
|
+
this.#options = options;
|
|
9990
10059
|
}
|
|
9991
10060
|
capture(message) {
|
|
9992
10061
|
this.#client.capture(message);
|
|
9993
10062
|
}
|
|
10063
|
+
captureImmediate(message) {
|
|
10064
|
+
this.#immediate ??= Promise.resolve().then(() => (init_posthog_immediate_send(), {})).then(({}) => createImmediateSender(this.#apiKey, this.#options, PostHog)).catch((error) => {
|
|
10065
|
+
this.#immediate = undefined;
|
|
10066
|
+
throw error;
|
|
10067
|
+
});
|
|
10068
|
+
return this.#immediate.then((sender) => sender.send(message));
|
|
10069
|
+
}
|
|
9994
10070
|
async flush() {
|
|
9995
10071
|
await this.#client.flush();
|
|
9996
10072
|
}
|
|
9997
10073
|
async shutdown() {
|
|
9998
|
-
await this.#client.shutdown()
|
|
10074
|
+
await Promise.all([this.#client.shutdown(), this.#immediate?.then((sender) => sender.shutdown(), () => {
|
|
10075
|
+
return;
|
|
10076
|
+
})]);
|
|
9999
10077
|
}
|
|
10000
10078
|
}
|
|
10001
10079
|
function createDefaultPostHogTransport(apiKey, options) {
|
|
@@ -10020,6 +10098,12 @@ var init_posthog_client = __esm(() => {
|
|
|
10020
10098
|
// packages/telemetry-core/src/record-daily-active.ts
|
|
10021
10099
|
var init_record_daily_active = () => {};
|
|
10022
10100
|
|
|
10101
|
+
// packages/telemetry-core/src/turn-trace-bridge.ts
|
|
10102
|
+
var REGISTRY;
|
|
10103
|
+
var init_turn_trace_bridge = __esm(() => {
|
|
10104
|
+
REGISTRY = Symbol.for("omo.telemetry.turn-traceparent.v1");
|
|
10105
|
+
});
|
|
10106
|
+
|
|
10023
10107
|
// packages/telemetry-core/src/index.ts
|
|
10024
10108
|
var init_src = __esm(() => {
|
|
10025
10109
|
init_activity_state();
|
|
@@ -10031,6 +10115,7 @@ var init_src = __esm(() => {
|
|
|
10031
10115
|
init_machine_id();
|
|
10032
10116
|
init_posthog_client();
|
|
10033
10117
|
init_record_daily_active();
|
|
10118
|
+
init_turn_trace_bridge();
|
|
10034
10119
|
});
|
|
10035
10120
|
|
|
10036
10121
|
// packages/omo-codex/package.json
|
|
@@ -10038,7 +10123,7 @@ var package_default;
|
|
|
10038
10123
|
var init_package = __esm(() => {
|
|
10039
10124
|
package_default = {
|
|
10040
10125
|
name: "@oh-my-opencode/omo-codex",
|
|
10041
|
-
version: "5.1.
|
|
10126
|
+
version: "5.1.46",
|
|
10042
10127
|
type: "module",
|
|
10043
10128
|
private: true,
|
|
10044
10129
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -10069,6 +10154,7 @@ var init_package = __esm(() => {
|
|
|
10069
10154
|
"sync:skills": "node plugin/scripts/sync-skills.mjs"
|
|
10070
10155
|
},
|
|
10071
10156
|
dependencies: {
|
|
10157
|
+
"@oh-my-opencode/model-core": "workspace:*",
|
|
10072
10158
|
"@oh-my-opencode/shared-skills": "workspace:*",
|
|
10073
10159
|
"@oh-my-opencode/utils": "workspace:*"
|
|
10074
10160
|
},
|
|
@@ -12917,9 +13003,27 @@ function isRootSetting(line, key) {
|
|
|
12917
13003
|
// packages/omo-codex/src/install/codex-model-catalog.ts
|
|
12918
13004
|
import { readFile as readFile10 } from "node:fs/promises";
|
|
12919
13005
|
import { join as join15 } from "node:path";
|
|
13006
|
+
|
|
13007
|
+
// packages/model-core/src/latest-models.ts
|
|
13008
|
+
var LATEST_MODEL_BY_FAMILY = {
|
|
13009
|
+
claudeOpus: "claude-opus-5-5",
|
|
13010
|
+
claudeSonnet: "claude-sonnet-5-5",
|
|
13011
|
+
claudeHaiku: "claude-haiku-5-5",
|
|
13012
|
+
claudeFable: "claude-fable-5-1",
|
|
13013
|
+
gptAstra: "gpt-6-astra",
|
|
13014
|
+
gptSol: "gpt-6.1-sol",
|
|
13015
|
+
gptSolFast: "gpt-6.1-sol-fast",
|
|
13016
|
+
gptLunaFast: "gpt-6-luna-fast",
|
|
13017
|
+
glm: "glm-5.3",
|
|
13018
|
+
glmFlash: "glm-5.3-flash",
|
|
13019
|
+
kimi: "kimi-k3",
|
|
13020
|
+
geminiPro: "gemini-4-argon"
|
|
13021
|
+
};
|
|
13022
|
+
|
|
13023
|
+
// packages/omo-codex/src/install/codex-model-catalog.ts
|
|
12920
13024
|
var FALLBACK_CODEX_MODEL_CATALOG = {
|
|
12921
13025
|
current: {
|
|
12922
|
-
model:
|
|
13026
|
+
model: LATEST_MODEL_BY_FAMILY.gptAstra,
|
|
12923
13027
|
modelContextWindow: 600000,
|
|
12924
13028
|
modelReasoningEffort: "high",
|
|
12925
13029
|
planModeReasoningEffort: "xhigh"
|
|
@@ -19477,7 +19581,7 @@ var OmoGitMasterSettingsShape = {
|
|
|
19477
19581
|
var OmoGitMasterSettingsLayerSchema = object(OmoGitMasterSettingsShape).partial().strict();
|
|
19478
19582
|
var OmoGitMasterSettingsSchema = OmoGitMasterSettingsLayerSchema.extend({
|
|
19479
19583
|
commit_footer: union([boolean2(), string2()]).default(false),
|
|
19480
|
-
include_co_authored_by: boolean2().default(
|
|
19584
|
+
include_co_authored_by: boolean2().default(true),
|
|
19481
19585
|
git_env_prefix: GitEnvPrefixSchema.default("GIT_MASTER=1")
|
|
19482
19586
|
}).strict();
|
|
19483
19587
|
|
|
@@ -19512,6 +19616,7 @@ var OmoMemoryReflectionSchema = object({
|
|
|
19512
19616
|
merge: _enum(["auto", "integration"]).default("auto"),
|
|
19513
19617
|
category: string2().min(1).default("quick"),
|
|
19514
19618
|
timeout_minutes: number2().int().positive().default(15),
|
|
19619
|
+
max_concurrent_runs: number2().int().positive().default(1),
|
|
19515
19620
|
sandbox: _enum(["auto", "required", "off"]).default("auto")
|
|
19516
19621
|
}).strict();
|
|
19517
19622
|
var OmoMemorySyncSchema = object({
|
|
@@ -19537,6 +19642,14 @@ var OmoMemoryRecallSchema = object({
|
|
|
19537
19642
|
tool_budget: number2().int().positive().default(8),
|
|
19538
19643
|
query_expansion: boolean2().default(false)
|
|
19539
19644
|
}).strict();
|
|
19645
|
+
var OmoMemoryProjectScopeSchema = object({
|
|
19646
|
+
nudge: boolean2().default(true),
|
|
19647
|
+
recall: boolean2().default(true)
|
|
19648
|
+
}).strict();
|
|
19649
|
+
var OmoMemoryProjectScopeLayerSchema = object({
|
|
19650
|
+
nudge: boolean2().optional(),
|
|
19651
|
+
recall: boolean2().optional()
|
|
19652
|
+
}).strict();
|
|
19540
19653
|
var OmoMemoryNudgeSchema = object({
|
|
19541
19654
|
enabled: boolean2().default(true),
|
|
19542
19655
|
every_user_turns: number2().int().min(1).default(10)
|
|
@@ -19575,6 +19688,7 @@ var OmoMemoryReflectionLayerSchema = object({
|
|
|
19575
19688
|
merge: _enum(["auto", "integration"]).optional(),
|
|
19576
19689
|
category: string2().min(1).optional(),
|
|
19577
19690
|
timeout_minutes: number2().int().positive().optional(),
|
|
19691
|
+
max_concurrent_runs: number2().int().positive().optional(),
|
|
19578
19692
|
sandbox: _enum(["auto", "required", "off"]).optional()
|
|
19579
19693
|
}).strict();
|
|
19580
19694
|
var OmoMemorySyncLayerSchema = object({
|
|
@@ -19639,7 +19753,7 @@ var OmoMemoryProjectionLayerSchema = object({
|
|
|
19639
19753
|
var OmoMemoryAgentOverridesSchema = object({
|
|
19640
19754
|
enabled: boolean2().optional(),
|
|
19641
19755
|
agent: string2().min(1).optional(),
|
|
19642
|
-
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
19756
|
+
reflection: OmoMemoryReflectionLayerSchema.omit({ max_concurrent_runs: true }).optional(),
|
|
19643
19757
|
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
19644
19758
|
facts: OmoMemoryFactsLayerSchema.optional(),
|
|
19645
19759
|
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
@@ -19664,6 +19778,7 @@ var OmoMemorySettingsSchema = object({
|
|
|
19664
19778
|
merge: "auto",
|
|
19665
19779
|
category: "quick",
|
|
19666
19780
|
timeout_minutes: 15,
|
|
19781
|
+
max_concurrent_runs: 1,
|
|
19667
19782
|
sandbox: "auto"
|
|
19668
19783
|
}),
|
|
19669
19784
|
nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
|
|
@@ -19692,6 +19807,7 @@ var OmoMemorySettingsSchema = object({
|
|
|
19692
19807
|
tool_budget: 8,
|
|
19693
19808
|
query_expansion: false
|
|
19694
19809
|
}),
|
|
19810
|
+
project_scope: OmoMemoryProjectScopeSchema.default({ nudge: true, recall: true }),
|
|
19695
19811
|
projection: OmoMemoryProjectionSchema.default({ max_entries_per_directory: 40, max_bytes: 24576 }),
|
|
19696
19812
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
19697
19813
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
|
|
@@ -19711,6 +19827,7 @@ var OmoMemorySettingsLayerSchema = object({
|
|
|
19711
19827
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
19712
19828
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
19713
19829
|
recall: OmoMemoryRecallLayerSchema.optional(),
|
|
19830
|
+
project_scope: OmoMemoryProjectScopeLayerSchema.optional(),
|
|
19714
19831
|
projection: OmoMemoryProjectionLayerSchema.optional(),
|
|
19715
19832
|
compile_warn_tokens: number2().int().positive().optional(),
|
|
19716
19833
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).optional()
|
|
@@ -19982,7 +20099,8 @@ var OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
|
|
|
19982
20099
|
|
|
19983
20100
|
// packages/omo-config-core/src/schema/telemetry.ts
|
|
19984
20101
|
var OmoTelemetrySettingsShape = {
|
|
19985
|
-
enabled: boolean2()
|
|
20102
|
+
enabled: boolean2(),
|
|
20103
|
+
rawTurnSampleRate: number2().min(0).max(1)
|
|
19986
20104
|
};
|
|
19987
20105
|
var OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
|
|
19988
20106
|
var OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
|
|
@@ -20004,16 +20122,22 @@ var OmoFormatOnMutationSchema = OmoFormatOnMutationLayerSchema.extend({
|
|
|
20004
20122
|
timeoutMs: number2().int().positive().default(3000)
|
|
20005
20123
|
}).strict();
|
|
20006
20124
|
|
|
20007
|
-
// packages/omo-config-core/src/schema/
|
|
20008
|
-
var
|
|
20125
|
+
// packages/omo-config-core/src/schema/provenance.ts
|
|
20126
|
+
var OmoProvenanceSettingsSchema = object({
|
|
20127
|
+
workspaces: array(object({
|
|
20128
|
+
name: string2().trim().min(1).regex(/\S/),
|
|
20129
|
+
git_owners: array(string2().trim().min(1).regex(/\S/)).optional(),
|
|
20130
|
+
paths: array(string2().trim().min(1).regex(/\S/)).optional()
|
|
20131
|
+
}).strict()).optional()
|
|
20132
|
+
}).strict();
|
|
20009
20133
|
|
|
20010
20134
|
// packages/omo-config-core/src/schema/config.ts
|
|
20011
20135
|
var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
|
|
20012
20136
|
var OmoDisabledSkillsSchema = array(string2());
|
|
20013
20137
|
var OmoExcludedModelsSchema = array(string2());
|
|
20014
20138
|
var OmoTypedHarnessConfigSchema = object({
|
|
20139
|
+
provenance: OmoProvenanceSettingsSchema.optional(),
|
|
20015
20140
|
formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
|
|
20016
|
-
gateway: OmoGatewaySectionSchema.optional(),
|
|
20017
20141
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20018
20142
|
agents: OmoAgentsConfigSchema.optional(),
|
|
20019
20143
|
git_master: OmoGitMasterSettingsLayerSchema.optional(),
|
|
@@ -20030,6 +20154,7 @@ var OmoTypedHarnessConfigSchema = object({
|
|
|
20030
20154
|
exclude_models: OmoExcludedModelsSchema.optional()
|
|
20031
20155
|
}).strict();
|
|
20032
20156
|
var OmoConfigProfileSchema = object({
|
|
20157
|
+
provenance: OmoProvenanceSettingsSchema.optional(),
|
|
20033
20158
|
formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
|
|
20034
20159
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20035
20160
|
agents: OmoAgentsConfigSchema.optional(),
|
|
@@ -20051,8 +20176,8 @@ var OmoConfigProfileSchema = object({
|
|
|
20051
20176
|
"[codex]": OmoTypedHarnessConfigSchema.optional()
|
|
20052
20177
|
}).strict();
|
|
20053
20178
|
var OmoConfigSchema = object({
|
|
20179
|
+
provenance: OmoProvenanceSettingsSchema.optional(),
|
|
20054
20180
|
formatOnMutation: OmoFormatOnMutationSchema.optional(),
|
|
20055
|
-
gateway: OmoGatewaySectionSchema.optional(),
|
|
20056
20181
|
$schema: string2().optional(),
|
|
20057
20182
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20058
20183
|
agents: OmoAgentsConfigSchema.optional(),
|
|
@@ -20077,8 +20202,8 @@ var OmoConfigSchema = object({
|
|
|
20077
20202
|
legacy_migrations: record(string2(), unknown()).optional()
|
|
20078
20203
|
}).strict();
|
|
20079
20204
|
var OmoConfigLayerSchema = object({
|
|
20205
|
+
provenance: OmoProvenanceSettingsSchema.optional(),
|
|
20080
20206
|
formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
|
|
20081
|
-
gateway: OmoGatewaySectionSchema.optional(),
|
|
20082
20207
|
$schema: string2().optional(),
|
|
20083
20208
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20084
20209
|
agents: OmoAgentsConfigSchema.optional(),
|
|
@@ -21102,6 +21227,9 @@ function printParseErrorCode(code) {
|
|
|
21102
21227
|
return "<unknown ParseErrorCode>";
|
|
21103
21228
|
}
|
|
21104
21229
|
|
|
21230
|
+
// packages/omo-config-core/src/loader/layer-validation.ts
|
|
21231
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
21232
|
+
|
|
21105
21233
|
// packages/omo-config-core/src/loader/merge.ts
|
|
21106
21234
|
var DANGEROUS_KEYS = new Set(["__proto__", "constructor", "prototype"]);
|
|
21107
21235
|
function isUnsafeObjectKey(key) {
|
|
@@ -21275,6 +21403,14 @@ function unrecognizedKeyIssues(issues) {
|
|
|
21275
21403
|
function isRecord9(value) {
|
|
21276
21404
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21277
21405
|
}
|
|
21406
|
+
var RETIRED_SECTION_DIGESTS = new Set([
|
|
21407
|
+
"447f75a8ebdbdb79a57f0b8cebbfba183820cf54a8119ac01449b30499e5ef0e",
|
|
21408
|
+
"4ea5ee68fea05586106890ded5733820bb77d919cda27bc4b8139b7cd33b8889"
|
|
21409
|
+
]);
|
|
21410
|
+
function isRetiredSection(key) {
|
|
21411
|
+
return RETIRED_SECTION_DIGESTS.has(createHash2("sha256").update(key.toLowerCase()).digest("hex"));
|
|
21412
|
+
}
|
|
21413
|
+
var HARNESS_BLOCKS = new Set(["[opencode]", "[native]", "[senpi]", "[codex]"]);
|
|
21278
21414
|
function sanitizeUnsafeKeys(value, path = []) {
|
|
21279
21415
|
if (Array.isArray(value)) {
|
|
21280
21416
|
const issues = [];
|
|
@@ -21293,6 +21429,9 @@ function sanitizeUnsafeKeys(value, path = []) {
|
|
|
21293
21429
|
}
|
|
21294
21430
|
const sanitized = {};
|
|
21295
21431
|
for (const [key, entry] of Object.entries(value)) {
|
|
21432
|
+
const isConfigContainer = path.length === 0 || path.length === 1 && HARNESS_BLOCKS.has(path[0] ?? "") || path.length === 2 && path[0] === "profiles" || path.length === 3 && path[0] === "profiles" && HARNESS_BLOCKS.has(path[2] ?? "");
|
|
21433
|
+
if (isConfigContainer && isRetiredSection(key))
|
|
21434
|
+
continue;
|
|
21296
21435
|
if (isUnsafeObjectKey(key)) {
|
|
21297
21436
|
issues.push({ keys: [key], path });
|
|
21298
21437
|
continue;
|
|
@@ -21827,7 +21966,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21827
21966
|
},
|
|
21828
21967
|
{
|
|
21829
21968
|
previous: { model: "gpt-5.6-luna", effort: "low" },
|
|
21830
|
-
current: { model:
|
|
21969
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "low" }
|
|
21831
21970
|
}
|
|
21832
21971
|
]
|
|
21833
21972
|
],
|
|
@@ -21844,7 +21983,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21844
21983
|
},
|
|
21845
21984
|
{
|
|
21846
21985
|
previous: { model: "gpt-5.6-luna", effort: "low" },
|
|
21847
|
-
current: { model:
|
|
21986
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "low" }
|
|
21848
21987
|
}
|
|
21849
21988
|
]
|
|
21850
21989
|
],
|
|
@@ -21853,7 +21992,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21853
21992
|
[
|
|
21854
21993
|
{
|
|
21855
21994
|
previous: { model: "gpt-5.6-sol", effort: "high" },
|
|
21856
|
-
current: { model:
|
|
21995
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21857
21996
|
}
|
|
21858
21997
|
]
|
|
21859
21998
|
],
|
|
@@ -21862,7 +22001,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21862
22001
|
[
|
|
21863
22002
|
{
|
|
21864
22003
|
previous: { model: "gpt-5.6-luna", effort: "high" },
|
|
21865
|
-
current: { model:
|
|
22004
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21866
22005
|
}
|
|
21867
22006
|
]
|
|
21868
22007
|
],
|
|
@@ -21879,7 +22018,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21879
22018
|
},
|
|
21880
22019
|
{
|
|
21881
22020
|
previous: { model: "gpt-5.6-terra", effort: "high" },
|
|
21882
|
-
current: { model:
|
|
22021
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21883
22022
|
}
|
|
21884
22023
|
]
|
|
21885
22024
|
],
|
|
@@ -21896,7 +22035,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21896
22035
|
},
|
|
21897
22036
|
{
|
|
21898
22037
|
previous: { model: "gpt-5.6-sol", effort: "high" },
|
|
21899
|
-
current: { model:
|
|
22038
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21900
22039
|
}
|
|
21901
22040
|
]
|
|
21902
22041
|
],
|
|
@@ -21913,7 +22052,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21913
22052
|
},
|
|
21914
22053
|
{
|
|
21915
22054
|
previous: { model: "gpt-5.6-terra", effort: "high" },
|
|
21916
|
-
current: { model:
|
|
22055
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21917
22056
|
}
|
|
21918
22057
|
]
|
|
21919
22058
|
],
|
|
@@ -21926,7 +22065,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21926
22065
|
},
|
|
21927
22066
|
{
|
|
21928
22067
|
previous: { model: "gpt-5.6-sol", effort: "medium" },
|
|
21929
|
-
current: { model:
|
|
22068
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "medium" }
|
|
21930
22069
|
}
|
|
21931
22070
|
]
|
|
21932
22071
|
],
|
|
@@ -21939,7 +22078,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21939
22078
|
},
|
|
21940
22079
|
{
|
|
21941
22080
|
previous: { model: "gpt-5.6-terra", effort: "medium" },
|
|
21942
|
-
current: { model:
|
|
22081
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "medium" }
|
|
21943
22082
|
}
|
|
21944
22083
|
]
|
|
21945
22084
|
],
|
|
@@ -21952,7 +22091,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21952
22091
|
},
|
|
21953
22092
|
{
|
|
21954
22093
|
previous: { model: "gpt-5.6-terra", effort: "high" },
|
|
21955
|
-
current: { model:
|
|
22094
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21956
22095
|
}
|
|
21957
22096
|
]
|
|
21958
22097
|
],
|
|
@@ -21965,7 +22104,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21965
22104
|
},
|
|
21966
22105
|
{
|
|
21967
22106
|
previous: { model: "gpt-5.6-luna", effort: "high" },
|
|
21968
|
-
current: { model:
|
|
22107
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "high" }
|
|
21969
22108
|
}
|
|
21970
22109
|
]
|
|
21971
22110
|
],
|
|
@@ -21982,7 +22121,7 @@ var MANAGED_REASONING_DEFAULT_UPGRADES = new Map([
|
|
|
21982
22121
|
},
|
|
21983
22122
|
{
|
|
21984
22123
|
previous: { model: "gpt-5.6-sol", effort: "low" },
|
|
21985
|
-
current: { model:
|
|
22124
|
+
current: { model: LATEST_MODEL_BY_FAMILY.gptAstra, effort: "low" }
|
|
21986
22125
|
}
|
|
21987
22126
|
]
|
|
21988
22127
|
]
|
|
@@ -22312,7 +22451,7 @@ function nodeErrorCode2(error) {
|
|
|
22312
22451
|
}
|
|
22313
22452
|
|
|
22314
22453
|
// packages/omo-codex/src/install/default-agent-role.ts
|
|
22315
|
-
import { createHash as
|
|
22454
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
22316
22455
|
import { lstat as lstat9, readFile as readFile16, rm as rm10 } from "node:fs/promises";
|
|
22317
22456
|
import { join as join23 } from "node:path";
|
|
22318
22457
|
var REGISTRATION = { name: "default", configFile: "./agents/default.toml" };
|
|
@@ -22368,7 +22507,7 @@ async function readIfPresent(path) {
|
|
|
22368
22507
|
}
|
|
22369
22508
|
}
|
|
22370
22509
|
function hash(content) {
|
|
22371
|
-
return
|
|
22510
|
+
return createHash3("sha256").update(content).digest("hex");
|
|
22372
22511
|
}
|
|
22373
22512
|
|
|
22374
22513
|
// packages/omo-codex/src/install/link-cached-plugin-agents.ts
|
|
@@ -23005,7 +23144,7 @@ function formatUnknownError(error) {
|
|
|
23005
23144
|
}
|
|
23006
23145
|
|
|
23007
23146
|
// packages/omo-codex/src/install/lsp-daemon-reaper.ts
|
|
23008
|
-
import { createHash as
|
|
23147
|
+
import { createHash as createHash4 } from "node:crypto";
|
|
23009
23148
|
import { lstat as lstat12, readFile as readFile22, readdir as readdir10, rm as rm12 } from "node:fs/promises";
|
|
23010
23149
|
import { tmpdir } from "node:os";
|
|
23011
23150
|
import { join as join28, posix as posix2 } from "node:path";
|
|
@@ -23283,7 +23422,7 @@ async function readRegularTrimmedFile(path) {
|
|
|
23283
23422
|
return content.length > 0 ? content : null;
|
|
23284
23423
|
}
|
|
23285
23424
|
function shortDigest(value) {
|
|
23286
|
-
return
|
|
23425
|
+
return createHash4("sha256").update(value).digest("hex").slice(0, 16);
|
|
23287
23426
|
}
|
|
23288
23427
|
async function removeVersionDir(path) {
|
|
23289
23428
|
await rm12(path, { recursive: true, force: true });
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## OVERVIEW
|
|
6
6
|
|
|
7
|
-
Vendored skill teaching agents ast-grep (`sg`) structural search/rewrite, plus a stdlib-Python helper CLI that wraps the `sg` binary.
|
|
7
|
+
Vendored skill teaching agents ast-grep (`sg`) structural search/rewrite, plus a stdlib-Python helper CLI that wraps the `sg` binary. Upstream pin in `SOURCE`: upstream `code-yeongyu/ast-grep-skill @ 3148c69` (ast-grep 0.45.0), "vendored as a sync; do not fork-drift". Earned this file: own executable surface (749-LOC helper + installers + smoke tests) and a no-fork-drift upstream contract that has no analogue elsewhere in `shared-skills`.
|
|
8
8
|
|
|
9
9
|
## STRUCTURE
|
|
10
10
|
|
|
@@ -18,29 +18,28 @@ one where a human is a single call away. Never substitute one engine for the oth
|
|
|
18
18
|
the attached engine is not set up, run the onboarding script and tell the user its one remaining
|
|
19
19
|
step.
|
|
20
20
|
|
|
21
|
-
## Step 0 —
|
|
21
|
+
## Step 0 — inside OmO Desktop: everything above, plus the app's built-in browser
|
|
22
22
|
|
|
23
|
-
When `OMO_BROWSER_ENGINE` is set (the OmO desktop app sets it for every session),
|
|
23
|
+
When `OMO_BROWSER_ENGINE` is set (the OmO desktop app sets it for every session), everything above works exactly
|
|
24
|
+
as in the terminal: `connectBrowserSkill()` for the user's own browser, `connectPipe()` / `connectCloakProfile()` /
|
|
25
|
+
`connect()` for a browser of your own, with the same table to choose between them. The app adds one more option:
|
|
24
26
|
|
|
25
|
-
|
|
|
26
|
-
|
|
27
|
-
| `
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
The guard prevents mistakes by a cooperating agent. It is not a security boundary: code that imports the raw
|
|
42
|
-
entry (`resolveOmowrightEntry()`) is not guarded, and a host without the `omo_browser_bridge` tool cannot show state or
|
|
43
|
-
honor Stop, though questions are still asked.
|
|
27
|
+
| Option | What it is | Use it when |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| `connectBuiltinBrowser()` | OmO's built-in browser for this thread: the tab the user sees beside the chat, which they can watch, take over and share | the user should see the page while you work, the task is QA of something in the app, or a sign-in the user should do themselves in a visible tab |
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
const browser = await omowright.connectBuiltinBrowser()
|
|
33
|
+
const [tab] = await browser.listTargets()
|
|
34
|
+
const page = await browser.attachPage(tab.id)
|
|
35
|
+
await page.goto(url)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
It is an OmOWright connection like `connect()`. Work in few calls: take `page.snapshot()` once, act on its refs,
|
|
39
|
+
and chain several actions in one eval cell (`page.locator(ref).fill()`, `.click()`, `.selectOption(value)`,
|
|
40
|
+
`.setInputFiles(path)`), snapshotting again only after the page changed. It has one tab: navigate it rather than
|
|
41
|
+
opening new ones. `BuiltinBrowserUnavailableError` permits another engine only for `unavailable`, `timeout`, or
|
|
42
|
+
`invalid_grant`. For `user_stopped` or any other app refusal, stop browser work and report it; do not open another browser.
|
|
44
43
|
|
|
45
44
|
## Step 1 — load omowright and prove the stack
|
|
46
45
|
|
|
@@ -118,7 +117,7 @@ changing the extension's automation settings.
|
|
|
118
117
|
out everywhere. No flow here needs it.
|
|
119
118
|
- **`focused: false` by default.** The browser belongs to someone who is probably using it.
|
|
120
119
|
- **One short, named session per task,** always stopped.
|
|
121
|
-
- **Bot-scored or WAF targets go to the owned engine
|
|
120
|
+
- **Bot-scored or WAF targets go to the owned engine**, in the terminal and inside OmO Desktop alike. The attached engine's daemon enables console
|
|
122
121
|
capture on every tab it drives, which is a known automation signal; CloakBrowser through
|
|
123
122
|
`connectCloakProfile()` is the stealth path.
|
|
124
123
|
|