oh-my-opencode 5.0.0-beta.7 → 5.0.0-beta.9
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/.agents/command/publish.md +44 -16
- package/.agents/skills/publish/SKILL.md +44 -16
- package/.agents/skills/work-with-pr/SKILL.md +37 -23
- package/.opencode/command/publish.md +44 -16
- package/.opencode/skills/work-with-pr/SKILL.md +37 -23
- package/dist/agents/atlas/agent.d.ts +0 -1
- package/dist/agents/sisyphus/grok-4.d.ts +20 -0
- package/dist/agents/sisyphus/index.d.ts +2 -0
- package/dist/agents/sisyphus-agent-config.d.ts +6 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/index.js +465 -352
- package/dist/cli/run/on-complete-hook.d.ts +2 -0
- package/dist/cli-node/index.js +465 -352
- package/dist/hooks/atlas/final-wave-approval-gate.test-support.d.ts +50 -0
- package/dist/hooks/atlas/system-reminder-templates.d.ts +0 -1
- package/dist/index.js +283 -38
- package/dist/shared/normalize-sdk-response.d.ts +1 -0
- package/dist/shared/shell-env.d.ts +1 -1
- package/dist/skills/frontend/SKILL.md +10 -7
- package/dist/skills/frontend/references/design/_INDEX.md +1 -0
- package/dist/skills/frontend/references/design/stylegallery.md +80 -0
- package/dist/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
- package/dist/skills/ultimate-browsing/engine/AGENTS.md +110 -0
- package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/dist/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/dist/skills/ulw-plan/SKILL.md +2 -2
- package/dist/skills/ulw-plan/references/full-workflow.md +27 -3
- package/dist/skills/ulw-plan/references/intent-clear.md +2 -1
- package/dist/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/dist/tui.js +77 -9
- package/package.json +20 -19
- package/packages/lsp-core/src/lsp/client-diagnostics-concurrency.integration.test.ts +44 -0
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +0 -28
- 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/codegraph/dist/cli.js +26 -4
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +26 -4
- package/packages/omo-codex/plugin/components/codegraph/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/lazycodex-executor-verify/test/codex-hook.test.ts +3 -17
- 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/rules/test/bundled-rules-priority.test.ts +11 -16
- package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +16 -23
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-budget.test.ts +9 -7
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-context.test.ts +0 -6
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-dedup.test.ts +6 -4
- package/packages/omo-codex/plugin/components/rules/test/codex-hook-post-compact-directive.test.ts +12 -9
- package/packages/omo-codex/plugin/components/rules/test/codex-hook.test.ts +28 -37
- package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +37 -69
- package/packages/omo-codex/plugin/components/rules/test/hook-output.test.ts +2 -3
- package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -15
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/cli.test.ts +0 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +2 -16
- 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/teammode/test/thread-title-hook.test.ts +3 -9
- 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/ultrawork/skills/ulw-plan/SKILL.md +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +27 -3
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +2 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +0 -136
- package/packages/omo-codex/plugin/components/ultrawork/test/skill-pointer.test.ts +0 -2
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +5 -3
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +0 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-hook.test.ts +0 -3
- package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +2 -35
- package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +4 -5
- 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-codegraph-init-guidance.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/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-checking-codegraph-bootstrap.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-start-work-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-checking-start-work-continuation.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 +20 -20
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +10 -7
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/stylegallery.md +80 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +110 -0
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +5 -3
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +27 -3
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +19 -173
- package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +4 -24
- package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +175 -13
- package/packages/omo-codex/plugin/test/aggregate.test.mjs +78 -2
- package/packages/omo-codex/plugin/test/auto-update-release-notes.test.mjs +19 -33
- package/packages/omo-codex/plugin/test/lcx-contribute-bug-fix-template.test.mjs +21 -27
- package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +0 -36
- package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +101 -0
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -119
- package/packages/omo-codex/plugin/test/teammode-archive-ambiguity.test.mjs +0 -40
- package/packages/omo-codex/plugin/test/teammode-communication.test.mjs +6 -62
- package/packages/omo-codex/plugin/test/teammode-thread-links.test.mjs +3 -36
- package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +0 -44
- package/packages/omo-codex/plugin/test/teammode-worktree.test.mjs +2 -6
- package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +0 -3
- package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +0 -3
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +7 -2
- package/packages/shared-skills/skills/frontend/SKILL.md +10 -7
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
- package/packages/shared-skills/skills/frontend/references/design/stylegallery.md +80 -0
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +37 -10
- package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +110 -0
- package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -2
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +27 -3
- package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +2 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +3 -3
- package/dist/tools/call-omo-agent/background-agent-executor.d.ts +0 -5
- package/packages/omo-codex/plugin/test/aggregate-skills.test.mjs +0 -92
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +0 -314
- package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +0 -24
package/dist/tui.js
CHANGED
|
@@ -15197,7 +15197,7 @@ function finalize(ctx, schema) {
|
|
|
15197
15197
|
result.$schema = "http://json-schema.org/draft-07/schema#";
|
|
15198
15198
|
} else if (ctx.target === "draft-04") {
|
|
15199
15199
|
result.$schema = "http://json-schema.org/draft-04/schema#";
|
|
15200
|
-
} else if (ctx.target === "openapi-3.0") {}
|
|
15200
|
+
} else if (ctx.target === "openapi-3.0") {}
|
|
15201
15201
|
if (ctx.external?.uri) {
|
|
15202
15202
|
const id = ctx.external.registry.get(schema)?.id;
|
|
15203
15203
|
if (!id)
|
|
@@ -15458,7 +15458,7 @@ var formatMap, stringProcessor = (schema, ctx, _json, _params) => {
|
|
|
15458
15458
|
if (val === undefined) {
|
|
15459
15459
|
if (ctx.unrepresentable === "throw") {
|
|
15460
15460
|
throw new Error("Literal `undefined` cannot be represented in JSON Schema");
|
|
15461
|
-
}
|
|
15461
|
+
}
|
|
15462
15462
|
} else if (typeof val === "bigint") {
|
|
15463
15463
|
if (ctx.unrepresentable === "throw") {
|
|
15464
15464
|
throw new Error("BigInt literals cannot be represented in JSON Schema");
|
|
@@ -19016,7 +19016,7 @@ function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism
|
|
|
19016
19016
|
residency_max_children: record2["residency_max_children"] ?? Math.max(8, resolveParallelism() * 3)
|
|
19017
19017
|
});
|
|
19018
19018
|
}
|
|
19019
|
-
var ResidencyMaxChildrenInputSchema, OmoTaskWaitSchema, OmoTaskTeamSettingsSchema, OmoTaskWarningsSchema, OmoTaskSettingsSchema, OmoTaskWaitLayerSchema, OmoTaskTeamSettingsLayerSchema, OmoTaskWarningsLayerSchema, OmoTaskSettingsLayerSchema;
|
|
19019
|
+
var ResidencyMaxChildrenInputSchema, OmoTaskWaitSchema, OmoTaskTeamSettingsSchema, OmoTaskWarningsSchema, OmoTaskDagSettingsSchema, OmoTaskSettingsSchema, OmoTaskDagSettingsLayerSchema, OmoTaskWaitLayerSchema, OmoTaskTeamSettingsLayerSchema, OmoTaskWarningsLayerSchema, OmoTaskSettingsLayerSchema;
|
|
19020
19020
|
var init_task = __esm(() => {
|
|
19021
19021
|
init_zod();
|
|
19022
19022
|
ResidencyMaxChildrenInputSchema = union([number2().int().positive(), literal("unlimited")]);
|
|
@@ -19033,6 +19033,16 @@ var init_task = __esm(() => {
|
|
|
19033
19033
|
OmoTaskWarningsSchema = object({
|
|
19034
19034
|
unavailable_categories: boolean2().default(true)
|
|
19035
19035
|
}).strict();
|
|
19036
|
+
OmoTaskDagSettingsSchema = object({
|
|
19037
|
+
max_nodes_per_run: number2().int().positive().default(64),
|
|
19038
|
+
max_runs_per_session: number2().int().positive().default(16),
|
|
19039
|
+
subscriber_ring: number2().int().positive().default(1000),
|
|
19040
|
+
heartbeat_ms: number2().int().positive().default(15000),
|
|
19041
|
+
history_default_limit: number2().int().positive().default(256),
|
|
19042
|
+
history_max_limit: number2().int().positive().default(1000),
|
|
19043
|
+
retention_days: number2().int().positive().default(7),
|
|
19044
|
+
max_prompt_bytes: number2().int().positive().default(262144)
|
|
19045
|
+
}).strict();
|
|
19036
19046
|
OmoTaskSettingsSchema = object({
|
|
19037
19047
|
default_execution_mode: _enum2(["in-process", "process"]).default("in-process"),
|
|
19038
19048
|
default_concurrency: number2().int().positive().default(5),
|
|
@@ -19050,7 +19060,18 @@ var init_task = __esm(() => {
|
|
|
19050
19060
|
max_members: 8,
|
|
19051
19061
|
max_parallel_members: 4,
|
|
19052
19062
|
max_wall_clock_minutes: 120
|
|
19053
|
-
})
|
|
19063
|
+
}),
|
|
19064
|
+
dag: OmoTaskDagSettingsSchema.optional()
|
|
19065
|
+
}).strict();
|
|
19066
|
+
OmoTaskDagSettingsLayerSchema = object({
|
|
19067
|
+
max_nodes_per_run: number2().int().positive().optional(),
|
|
19068
|
+
max_runs_per_session: number2().int().positive().optional(),
|
|
19069
|
+
subscriber_ring: number2().int().positive().optional(),
|
|
19070
|
+
heartbeat_ms: number2().int().positive().optional(),
|
|
19071
|
+
history_default_limit: number2().int().positive().optional(),
|
|
19072
|
+
history_max_limit: number2().int().positive().optional(),
|
|
19073
|
+
retention_days: number2().int().positive().optional(),
|
|
19074
|
+
max_prompt_bytes: number2().int().positive().optional()
|
|
19054
19075
|
}).strict();
|
|
19055
19076
|
OmoTaskWaitLayerSchema = object({
|
|
19056
19077
|
min_ms: number2().int().positive().optional(),
|
|
@@ -19078,7 +19099,8 @@ var init_task = __esm(() => {
|
|
|
19078
19099
|
resume_children: boolean2().optional(),
|
|
19079
19100
|
warnings: OmoTaskWarningsLayerSchema.optional(),
|
|
19080
19101
|
wait: OmoTaskWaitLayerSchema.optional(),
|
|
19081
|
-
team: OmoTaskTeamSettingsLayerSchema.optional()
|
|
19102
|
+
team: OmoTaskTeamSettingsLayerSchema.optional(),
|
|
19103
|
+
dag: OmoTaskDagSettingsLayerSchema.optional()
|
|
19082
19104
|
}).strict();
|
|
19083
19105
|
});
|
|
19084
19106
|
|
|
@@ -21058,10 +21080,10 @@ var init_category_model_requirements = __esm(() => {
|
|
|
21058
21080
|
quick: {
|
|
21059
21081
|
fallbackChain: [
|
|
21060
21082
|
{ providers: ["kimi-for-coding"], model: "kimi-for-coding-highspeed" },
|
|
21061
|
-
{ providers: ["
|
|
21083
|
+
{ providers: ["openai-codex"], model: "gpt-5.6-luna-fast", variant: "low" },
|
|
21062
21084
|
{ providers: ["deepseek"], model: "deepseek-v4-flash", variant: "off" },
|
|
21063
21085
|
{
|
|
21064
|
-
providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan", "
|
|
21086
|
+
providers: ["qwen-token-plan", "alibaba-token-plan", "bailian-coding-plan", "vercel"],
|
|
21065
21087
|
model: "qwen3.6-flash",
|
|
21066
21088
|
variant: "low"
|
|
21067
21089
|
},
|
|
@@ -21077,6 +21099,11 @@ var init_category_model_requirements = __esm(() => {
|
|
|
21077
21099
|
},
|
|
21078
21100
|
"unspecified-low": {
|
|
21079
21101
|
fallbackChain: [
|
|
21102
|
+
{
|
|
21103
|
+
providers: ["xai", "github-copilot", "opencode", "vercel"],
|
|
21104
|
+
model: "grok-4.6",
|
|
21105
|
+
variant: "xhigh"
|
|
21106
|
+
},
|
|
21080
21107
|
{
|
|
21081
21108
|
providers: ["openai", "quotio-openai", "github-copilot", "opencode", "vercel"],
|
|
21082
21109
|
model: "gpt-5.6-terra",
|
|
@@ -77943,6 +77970,47 @@ var init_model_capabilities_generated = __esm(() => {
|
|
|
77943
77970
|
input: 272000,
|
|
77944
77971
|
output: 128000
|
|
77945
77972
|
}
|
|
77973
|
+
},
|
|
77974
|
+
"grok-4.6": {
|
|
77975
|
+
id: "grok-4.6",
|
|
77976
|
+
family: "grok",
|
|
77977
|
+
reasoning: true,
|
|
77978
|
+
temperature: true,
|
|
77979
|
+
toolCall: true,
|
|
77980
|
+
modalities: {
|
|
77981
|
+
input: [
|
|
77982
|
+
"text",
|
|
77983
|
+
"image"
|
|
77984
|
+
],
|
|
77985
|
+
output: [
|
|
77986
|
+
"text"
|
|
77987
|
+
]
|
|
77988
|
+
},
|
|
77989
|
+
limit: {
|
|
77990
|
+
context: 500000,
|
|
77991
|
+
output: 500000
|
|
77992
|
+
}
|
|
77993
|
+
},
|
|
77994
|
+
"xai/grok-4.6": {
|
|
77995
|
+
id: "xai/grok-4.6",
|
|
77996
|
+
family: "grok",
|
|
77997
|
+
reasoning: true,
|
|
77998
|
+
temperature: true,
|
|
77999
|
+
toolCall: true,
|
|
78000
|
+
modalities: {
|
|
78001
|
+
input: [
|
|
78002
|
+
"text",
|
|
78003
|
+
"image",
|
|
78004
|
+
"pdf"
|
|
78005
|
+
],
|
|
78006
|
+
output: [
|
|
78007
|
+
"text"
|
|
78008
|
+
]
|
|
78009
|
+
},
|
|
78010
|
+
limit: {
|
|
78011
|
+
context: 500000,
|
|
78012
|
+
output: 500000
|
|
78013
|
+
}
|
|
77946
78014
|
}
|
|
77947
78015
|
}
|
|
77948
78016
|
};
|
|
@@ -78441,7 +78509,7 @@ This is NOT a default choice - it's for genuinely unclassifiable moderate-effort
|
|
|
78441
78509
|
</Category_Context>
|
|
78442
78510
|
|
|
78443
78511
|
<Caller_Warning>
|
|
78444
|
-
THIS CATEGORY USES
|
|
78512
|
+
THIS CATEGORY USES GROK 4.6 (xhigh).
|
|
78445
78513
|
|
|
78446
78514
|
**PROVIDE CLEAR STRUCTURE:**
|
|
78447
78515
|
1. MUST DO: Enumerate required actions explicitly
|
|
@@ -78473,7 +78541,7 @@ var init_openai_categories = __esm(() => {
|
|
|
78473
78541
|
},
|
|
78474
78542
|
{
|
|
78475
78543
|
name: "unspecified-low",
|
|
78476
|
-
config: { model: "
|
|
78544
|
+
config: { model: "xai/grok-4.6", variant: "xhigh" },
|
|
78477
78545
|
description: "Tasks that don't fit other categories, low effort required",
|
|
78478
78546
|
promptAppend: UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND
|
|
78479
78547
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.9",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -136,6 +136,7 @@
|
|
|
136
136
|
"typecheck:script": "tsgo --noEmit -p script/tsconfig.json",
|
|
137
137
|
"test": "bun test",
|
|
138
138
|
"test:codex": "bun run build:codex-install && bun run build:git-bash-mcp && bun run build:lsp-tools-mcp && bun run build:lsp-daemon && npm --prefix packages/lsp-tools-mcp test && npm --prefix packages/omo-codex/plugin ci && npm --prefix packages/omo-codex/plugin/components/ulw-loop test && bun run --cwd packages/omo-codex/plugin build && npm --prefix packages/omo-codex/plugin/components/codegraph run typecheck && npm --prefix packages/omo-codex/plugin/components/codegraph test && node scripts/check-third-party-notices.mjs --ship && bun test packages/omo-opencode/src/cli/cli-installer.platform.test.ts packages/omo-codex/src/install/codex-cache.test.ts packages/omo-codex/src/install/codex-cleanup.test.ts packages/omo-codex/src/install/codex-config-agent-cleanup.test.ts packages/omo-codex/src/install/codex-config-autonomous-features.test.ts packages/omo-codex/src/install/codex-config-reasoning.test.ts packages/omo-codex/src/install/codex-config-toml.test.ts packages/omo-codex/src/install/codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex-project-local-cleanup.test.ts packages/omo-codex/src/install/install-codex.test.ts packages/omo-codex/src/install/install-codex-packaged.test.ts packages/omo-codex/src/install/link-cached-plugin-agents.test.ts packages/omo-codex/src/**/*.test.ts packages/utils/src/jsonc-parser.test.ts packages/utils/src/frontmatter.test.ts packages/hashline-core/src/hash-computation.test.ts packages/hashline-core/src/smoke-untested-modules.test.ts packages/rules-engine/src/index.test.ts packages/rules-engine/src/security-boundary.test.ts packages/agents-md-core/src/injector.test.ts packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts && node --test packages/omo-codex/plugin/test/*.test.mjs packages/omo-codex/scripts/install-cache-copy.test.mjs packages/omo-codex/scripts/install-cli-args.test.mjs packages/omo-codex/scripts/install-delegated-command.test.mjs packages/omo-codex/scripts/install-config-autonomous-features.test.mjs packages/omo-codex/scripts/install-config-autonomous.test.mjs packages/omo-codex/scripts/install-config-reasoning.test.mjs packages/omo-codex/scripts/install-config.test.mjs packages/omo-codex/scripts/install-hook-targets.test.mjs packages/omo-codex/scripts/install-project-local-cleanup.test.mjs packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs packages/omo-codex/scripts/install-local-entrypoint.test.mjs packages/omo-codex/scripts/install-local-git-bash-preflight.test.mjs packages/omo-codex/scripts/install-local.test.mjs packages/omo-codex/scripts/install-marketplace-cache.test.mjs packages/omo-codex/scripts/install-mcp-context7-runtime.test.mjs packages/omo-codex/scripts/install-mcp-runtime.test.mjs packages/omo-codex/scripts/install-packaged-local.test.mjs packages/omo-codex/scripts/install-generated-bundle.test.mjs packages/omo-codex/scripts/install-agent-links.test.mjs packages/omo-codex/scripts/install-bin-links.test.mjs",
|
|
139
|
+
"test:fast": "bun run script/test-fast.ts",
|
|
139
140
|
"test:senpi": "bun run build:senpi-plugin && tsgo --noEmit -p packages/omo-senpi/tsconfig.json && bun test packages/omo-senpi",
|
|
140
141
|
"test:windows-codex": "bun run test:codex",
|
|
141
142
|
"build:git-bash-mcp": "bun run --cwd packages/git-bash-mcp build",
|
|
@@ -180,7 +181,7 @@
|
|
|
180
181
|
"zod": "^4.4.3"
|
|
181
182
|
},
|
|
182
183
|
"devDependencies": {
|
|
183
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
184
|
+
"@code-yeongyu/senpi": "2026.8.17",
|
|
184
185
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
185
186
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
186
187
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -212,7 +213,7 @@
|
|
|
212
213
|
"@oh-my-opencode/utils": "workspace:*",
|
|
213
214
|
"@types/js-yaml": "^4.0.9",
|
|
214
215
|
"@types/picomatch": "^4.0.3",
|
|
215
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
216
|
+
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
216
217
|
"@xterm/addon-unicode11": "^0.9.0",
|
|
217
218
|
"@xterm/xterm": "^6.0.0",
|
|
218
219
|
"bun-types": "1.3.14",
|
|
@@ -221,24 +222,24 @@
|
|
|
221
222
|
"typescript": "^7.0.2"
|
|
222
223
|
},
|
|
223
224
|
"optionalDependencies": {
|
|
224
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
225
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
226
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
227
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
228
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
229
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
230
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
231
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
232
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
233
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
234
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
235
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
225
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.9",
|
|
226
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.9",
|
|
227
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.9",
|
|
228
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.9",
|
|
229
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.9",
|
|
230
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.9",
|
|
231
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.9",
|
|
232
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.9",
|
|
233
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.9",
|
|
234
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.9",
|
|
235
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.9",
|
|
236
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.9"
|
|
236
237
|
},
|
|
237
238
|
"overrides": {
|
|
238
|
-
"@earendil-works/pi-agent-core": "0.
|
|
239
|
-
"@earendil-works/pi-ai": "0.
|
|
240
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
241
|
-
"@earendil-works/pi-tui": "0.
|
|
239
|
+
"@earendil-works/pi-agent-core": "0.84.2",
|
|
240
|
+
"@earendil-works/pi-ai": "0.84.2",
|
|
241
|
+
"@earendil-works/pi-coding-agent": "0.84.2",
|
|
242
|
+
"@earendil-works/pi-tui": "0.84.2",
|
|
242
243
|
"hono": "^4.12.18",
|
|
243
244
|
"@hono/node-server": "^1.19.13",
|
|
244
245
|
"express-rate-limit": "^8.5.1",
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from "bun:test";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
createWorkspaceEditTestHarness,
|
|
5
|
+
diagnostic,
|
|
6
|
+
readEvents,
|
|
7
|
+
} from "./workspace-apply-edit-test-support.js";
|
|
8
|
+
|
|
9
|
+
const harness = createWorkspaceEditTestHarness();
|
|
10
|
+
|
|
11
|
+
afterEach(async () => {
|
|
12
|
+
await harness.cleanup();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
describe("LspClient diagnostics concurrency", () => {
|
|
16
|
+
it("#given concurrent diagnostics on a cold file and an exact didOpen publish #when pull is not advertised #then one didOpen opens the file and both requests receive the current diagnostics", async () => {
|
|
17
|
+
const context = await harness.makeClient(
|
|
18
|
+
{
|
|
19
|
+
publishDiagnostics: [
|
|
20
|
+
{
|
|
21
|
+
trigger: "didOpen",
|
|
22
|
+
version: 1,
|
|
23
|
+
diagnostics: [diagnostic("exact-current")],
|
|
24
|
+
awaitClientDelivery: true,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{ diagnosticsFreshnessTimeoutMs: 500, versionlessPublishQuiescenceMs: 5 },
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
const [first, second] = await Promise.all([
|
|
32
|
+
context.client.diagnostics(context.source),
|
|
33
|
+
context.client.diagnostics(context.source),
|
|
34
|
+
]);
|
|
35
|
+
|
|
36
|
+
expect(first.items).toEqual([diagnostic("exact-current")]);
|
|
37
|
+
expect(second.items).toEqual([diagnostic("exact-current")]);
|
|
38
|
+
expect(
|
|
39
|
+
readEvents(context.events).filter(
|
|
40
|
+
(event) => event.type === "clientNotification" && event.method === "textDocument/didOpen",
|
|
41
|
+
),
|
|
42
|
+
).toHaveLength(1);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
@@ -16,34 +16,6 @@ afterEach(async () => {
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
describe("LspClient diagnostics freshness", () => {
|
|
19
|
-
it("#given concurrent diagnostics on a cold file and an exact didOpen publish #when pull is not advertised #then one didOpen opens the file and both requests receive the current diagnostics", async () => {
|
|
20
|
-
const context = await harness.makeClient(
|
|
21
|
-
{
|
|
22
|
-
publishDiagnostics: [
|
|
23
|
-
{
|
|
24
|
-
trigger: "didOpen",
|
|
25
|
-
version: 1,
|
|
26
|
-
diagnostics: [diagnostic("exact-current")],
|
|
27
|
-
},
|
|
28
|
-
],
|
|
29
|
-
},
|
|
30
|
-
{ diagnosticsFreshnessTimeoutMs: 50, versionlessPublishQuiescenceMs: 5 },
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
const [first, second] = await Promise.all([
|
|
34
|
-
context.client.diagnostics(context.source),
|
|
35
|
-
context.client.diagnostics(context.source),
|
|
36
|
-
]);
|
|
37
|
-
|
|
38
|
-
expect(first.items).toEqual([diagnostic("exact-current")]);
|
|
39
|
-
expect(second.items).toEqual([diagnostic("exact-current")]);
|
|
40
|
-
expect(
|
|
41
|
-
readEvents(context.events).filter(
|
|
42
|
-
(event) => event.type === "clientNotification" && event.method === "textDocument/didOpen",
|
|
43
|
-
),
|
|
44
|
-
).toHaveLength(1);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
19
|
it("#given a versionless publish that arrives after the current change #when no newer eligible publish arrives before quiescence #then diagnostics wait for that quiescence window and return the versionless payload", async () => {
|
|
48
20
|
const context = await harness.makeClient(
|
|
49
21
|
{
|
|
@@ -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.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.9) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/codex-bootstrap",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.9",
|
|
4
4
|
"description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": true,
|
|
@@ -4003,7 +4003,7 @@ function finalize(ctx, schema) {
|
|
|
4003
4003
|
result.$schema = "http://json-schema.org/draft-07/schema#";
|
|
4004
4004
|
} else if (ctx.target === "draft-04") {
|
|
4005
4005
|
result.$schema = "http://json-schema.org/draft-04/schema#";
|
|
4006
|
-
} else if (ctx.target === "openapi-3.0") {}
|
|
4006
|
+
} else if (ctx.target === "openapi-3.0") {}
|
|
4007
4007
|
if (ctx.external?.uri) {
|
|
4008
4008
|
const id = ctx.external.registry.get(schema)?.id;
|
|
4009
4009
|
if (!id)
|
|
@@ -4212,7 +4212,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
|
|
|
4212
4212
|
if (val === undefined) {
|
|
4213
4213
|
if (ctx.unrepresentable === "throw") {
|
|
4214
4214
|
throw new Error("Literal `undefined` cannot be represented in JSON Schema");
|
|
4215
|
-
}
|
|
4215
|
+
}
|
|
4216
4216
|
} else if (typeof val === "bigint") {
|
|
4217
4217
|
if (ctx.unrepresentable === "throw") {
|
|
4218
4218
|
throw new Error("BigInt literals cannot be represented in JSON Schema");
|
|
@@ -5726,6 +5726,16 @@ var OmoTaskTeamSettingsSchema = object({
|
|
|
5726
5726
|
var OmoTaskWarningsSchema = object({
|
|
5727
5727
|
unavailable_categories: boolean2().default(true)
|
|
5728
5728
|
}).strict();
|
|
5729
|
+
var OmoTaskDagSettingsSchema = object({
|
|
5730
|
+
max_nodes_per_run: number2().int().positive().default(64),
|
|
5731
|
+
max_runs_per_session: number2().int().positive().default(16),
|
|
5732
|
+
subscriber_ring: number2().int().positive().default(1000),
|
|
5733
|
+
heartbeat_ms: number2().int().positive().default(15000),
|
|
5734
|
+
history_default_limit: number2().int().positive().default(256),
|
|
5735
|
+
history_max_limit: number2().int().positive().default(1000),
|
|
5736
|
+
retention_days: number2().int().positive().default(7),
|
|
5737
|
+
max_prompt_bytes: number2().int().positive().default(262144)
|
|
5738
|
+
}).strict();
|
|
5729
5739
|
var OmoTaskSettingsSchema = object({
|
|
5730
5740
|
default_execution_mode: _enum(["in-process", "process"]).default("in-process"),
|
|
5731
5741
|
default_concurrency: number2().int().positive().default(5),
|
|
@@ -5743,7 +5753,18 @@ var OmoTaskSettingsSchema = object({
|
|
|
5743
5753
|
max_members: 8,
|
|
5744
5754
|
max_parallel_members: 4,
|
|
5745
5755
|
max_wall_clock_minutes: 120
|
|
5746
|
-
})
|
|
5756
|
+
}),
|
|
5757
|
+
dag: OmoTaskDagSettingsSchema.optional()
|
|
5758
|
+
}).strict();
|
|
5759
|
+
var OmoTaskDagSettingsLayerSchema = object({
|
|
5760
|
+
max_nodes_per_run: number2().int().positive().optional(),
|
|
5761
|
+
max_runs_per_session: number2().int().positive().optional(),
|
|
5762
|
+
subscriber_ring: number2().int().positive().optional(),
|
|
5763
|
+
heartbeat_ms: number2().int().positive().optional(),
|
|
5764
|
+
history_default_limit: number2().int().positive().optional(),
|
|
5765
|
+
history_max_limit: number2().int().positive().optional(),
|
|
5766
|
+
retention_days: number2().int().positive().optional(),
|
|
5767
|
+
max_prompt_bytes: number2().int().positive().optional()
|
|
5747
5768
|
}).strict();
|
|
5748
5769
|
var OmoTaskWaitLayerSchema = object({
|
|
5749
5770
|
min_ms: number2().int().positive().optional(),
|
|
@@ -5771,7 +5792,8 @@ var OmoTaskSettingsLayerSchema = object({
|
|
|
5771
5792
|
resume_children: boolean2().optional(),
|
|
5772
5793
|
warnings: OmoTaskWarningsLayerSchema.optional(),
|
|
5773
5794
|
wait: OmoTaskWaitLayerSchema.optional(),
|
|
5774
|
-
team: OmoTaskTeamSettingsLayerSchema.optional()
|
|
5795
|
+
team: OmoTaskTeamSettingsLayerSchema.optional(),
|
|
5796
|
+
dag: OmoTaskDagSettingsLayerSchema.optional()
|
|
5775
5797
|
}).strict();
|
|
5776
5798
|
function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
|
|
5777
5799
|
const record2 = record(string2(), unknown()).parse(input);
|
|
@@ -4269,7 +4269,7 @@ function finalize(ctx, schema) {
|
|
|
4269
4269
|
result.$schema = "http://json-schema.org/draft-07/schema#";
|
|
4270
4270
|
} else if (ctx.target === "draft-04") {
|
|
4271
4271
|
result.$schema = "http://json-schema.org/draft-04/schema#";
|
|
4272
|
-
} else if (ctx.target === "openapi-3.0") {}
|
|
4272
|
+
} else if (ctx.target === "openapi-3.0") {}
|
|
4273
4273
|
if (ctx.external?.uri) {
|
|
4274
4274
|
const id = ctx.external.registry.get(schema)?.id;
|
|
4275
4275
|
if (!id)
|
|
@@ -4478,7 +4478,7 @@ var literalProcessor = (schema, ctx, json, _params) => {
|
|
|
4478
4478
|
if (val === undefined) {
|
|
4479
4479
|
if (ctx.unrepresentable === "throw") {
|
|
4480
4480
|
throw new Error("Literal `undefined` cannot be represented in JSON Schema");
|
|
4481
|
-
}
|
|
4481
|
+
}
|
|
4482
4482
|
} else if (typeof val === "bigint") {
|
|
4483
4483
|
if (ctx.unrepresentable === "throw") {
|
|
4484
4484
|
throw new Error("BigInt literals cannot be represented in JSON Schema");
|
|
@@ -5992,6 +5992,16 @@ var OmoTaskTeamSettingsSchema = object({
|
|
|
5992
5992
|
var OmoTaskWarningsSchema = object({
|
|
5993
5993
|
unavailable_categories: boolean2().default(true)
|
|
5994
5994
|
}).strict();
|
|
5995
|
+
var OmoTaskDagSettingsSchema = object({
|
|
5996
|
+
max_nodes_per_run: number2().int().positive().default(64),
|
|
5997
|
+
max_runs_per_session: number2().int().positive().default(16),
|
|
5998
|
+
subscriber_ring: number2().int().positive().default(1000),
|
|
5999
|
+
heartbeat_ms: number2().int().positive().default(15000),
|
|
6000
|
+
history_default_limit: number2().int().positive().default(256),
|
|
6001
|
+
history_max_limit: number2().int().positive().default(1000),
|
|
6002
|
+
retention_days: number2().int().positive().default(7),
|
|
6003
|
+
max_prompt_bytes: number2().int().positive().default(262144)
|
|
6004
|
+
}).strict();
|
|
5995
6005
|
var OmoTaskSettingsSchema = object({
|
|
5996
6006
|
default_execution_mode: _enum(["in-process", "process"]).default("in-process"),
|
|
5997
6007
|
default_concurrency: number2().int().positive().default(5),
|
|
@@ -6009,7 +6019,18 @@ var OmoTaskSettingsSchema = object({
|
|
|
6009
6019
|
max_members: 8,
|
|
6010
6020
|
max_parallel_members: 4,
|
|
6011
6021
|
max_wall_clock_minutes: 120
|
|
6012
|
-
})
|
|
6022
|
+
}),
|
|
6023
|
+
dag: OmoTaskDagSettingsSchema.optional()
|
|
6024
|
+
}).strict();
|
|
6025
|
+
var OmoTaskDagSettingsLayerSchema = object({
|
|
6026
|
+
max_nodes_per_run: number2().int().positive().optional(),
|
|
6027
|
+
max_runs_per_session: number2().int().positive().optional(),
|
|
6028
|
+
subscriber_ring: number2().int().positive().optional(),
|
|
6029
|
+
heartbeat_ms: number2().int().positive().optional(),
|
|
6030
|
+
history_default_limit: number2().int().positive().optional(),
|
|
6031
|
+
history_max_limit: number2().int().positive().optional(),
|
|
6032
|
+
retention_days: number2().int().positive().optional(),
|
|
6033
|
+
max_prompt_bytes: number2().int().positive().optional()
|
|
6013
6034
|
}).strict();
|
|
6014
6035
|
var OmoTaskWaitLayerSchema = object({
|
|
6015
6036
|
min_ms: number2().int().positive().optional(),
|
|
@@ -6037,7 +6058,8 @@ var OmoTaskSettingsLayerSchema = object({
|
|
|
6037
6058
|
resume_children: boolean2().optional(),
|
|
6038
6059
|
warnings: OmoTaskWarningsLayerSchema.optional(),
|
|
6039
6060
|
wait: OmoTaskWaitLayerSchema.optional(),
|
|
6040
|
-
team: OmoTaskTeamSettingsLayerSchema.optional()
|
|
6061
|
+
team: OmoTaskTeamSettingsLayerSchema.optional(),
|
|
6062
|
+
dag: OmoTaskDagSettingsLayerSchema.optional()
|
|
6041
6063
|
}).strict();
|
|
6042
6064
|
function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
|
|
6043
6065
|
const record2 = record(string2(), unknown()).parse(input);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.9) Recommending Git Bash MCP"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
23
|
+
"statusMessage": "(OmO 5.0.0-beta.9) Resetting Git Bash MCP Reminder"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.9) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts
CHANGED
|
@@ -36,10 +36,8 @@ describe("lazycodex executor SubagentStop verifier", () => {
|
|
|
36
36
|
// then
|
|
37
37
|
const parsed = parseBlockOutput(output);
|
|
38
38
|
expect(parsed.decision).toBe("block");
|
|
39
|
-
expect(parsed.reason).toContain("너는 방금 작업을 완료했다고 보고했고, 그건 거짓말이다.");
|
|
40
39
|
expect(parsed.reason).toContain(".omo/evidence/");
|
|
41
40
|
expect(parsed.reason).toContain("EVIDENCE_RECORDED: <path>");
|
|
42
|
-
expect(parsed.reason).not.toContain("2번째");
|
|
43
41
|
});
|
|
44
42
|
|
|
45
43
|
it("#given a prior blocked stop #when lazycodex executor stops again #then escalates the attempt count", () => {
|
|
@@ -51,8 +49,9 @@ describe("lazycodex executor SubagentStop verifier", () => {
|
|
|
51
49
|
const output = runSubagentStopHook(createInput(cwd), nodeFileSystem);
|
|
52
50
|
|
|
53
51
|
// then
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
expect(parseBlockOutput(output).decision).toBe("block");
|
|
53
|
+
const statePath = join(cwd, ".omo", "lazycodex-executor-verify", "sess.1-agent_1.json");
|
|
54
|
+
expect(JSON.parse(readFileSync(statePath, "utf8"))).toEqual({ attempts: 2 });
|
|
56
55
|
});
|
|
57
56
|
|
|
58
57
|
it("#given turn_id is omitted #when lazycodex executor stops #then the hook still parses the payload", () => {
|
|
@@ -394,18 +393,5 @@ describe("tier worker receipt enforcement", () => {
|
|
|
394
393
|
expect(matcher.test("lazycodex-gate-reviewer")).toBe(false);
|
|
395
394
|
}
|
|
396
395
|
});
|
|
397
|
-
|
|
398
|
-
it("#given the tier worker TOMLs #when inspected #then each instructs the EVIDENCE_RECORDED receipt line", () => {
|
|
399
|
-
for (const tier of ["low", "medium", "high"]) {
|
|
400
|
-
// when
|
|
401
|
-
const toml = readFileSync(
|
|
402
|
-
new URL(`../../ultrawork/agents/lazycodex-worker-${tier}.toml`, import.meta.url),
|
|
403
|
-
"utf8",
|
|
404
|
-
);
|
|
405
|
-
|
|
406
|
-
// then
|
|
407
|
-
expect(toml).toContain("EVIDENCE_RECORDED: <path>");
|
|
408
|
-
}
|
|
409
|
-
});
|
|
410
396
|
});
|
|
411
397
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "5.0.0-beta.
|
|
4
|
-
"inputDigest": "sha256:
|
|
3
|
+
"version": "5.0.0-beta.9",
|
|
4
|
+
"inputDigest": "sha256:ee9f0b367eba57b8d9cd84cca99311490d21a41b92331958919a5f289b428f2c",
|
|
5
5
|
"outputs": [
|
|
6
6
|
{
|
|
7
7
|
"path": "cli.d.ts",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 60,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.9) Checking LSP Diagnostics"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"type": "command",
|
|
22
22
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
23
23
|
"timeout": 5,
|
|
24
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
24
|
+
"statusMessage": "(OmO 5.0.0-beta.9) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|