oh-my-opencode 5.0.0-beta.47 → 5.0.0-beta.49
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.ja.md +35 -27
- package/README.ko.md +35 -27
- package/README.md +19 -34
- package/README.ru.md +33 -28
- package/README.zh-cn.md +31 -27
- package/dist/cli/index.js +19 -15
- package/dist/cli-node/index.js +19 -15
- package/dist/features/team-mode/tools/messaging-fallback-wake.d.ts +2 -0
- package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +2 -0
- package/dist/features/team-mode/tools/messaging-runtime.d.ts +6 -0
- package/dist/index.js +30 -18
- package/dist/tui.js +4 -0
- package/package.json +14 -14
- package/packages/lsp-daemon/dist/cli.js +6 -3
- package/packages/lsp-daemon/dist/client.js +6 -3
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +6 -1
- package/packages/lsp-daemon/dist/ensure-daemon.js +9 -2
- package/packages/lsp-daemon/dist/index.js +6 -3
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +2 -2
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +6 -3
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +11 -10
- 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/src/directive-content.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/AGENTS.md +3 -3
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/README.md +3 -3
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +4 -4
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/dist/cli.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -13
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/src/types.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/test/cli.test.ts +3 -7
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/test/codex-hook.test.ts +16 -0
- package/packages/omo-codex/plugin/components/ulw-loop/README.md +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +11 -10
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.js +8 -15
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +88 -67
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +3 -4
- package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +13 -16
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.d.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +47 -26
- package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.js +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +14 -4
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +17 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +2 -2
- 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/src/checkpoint-template.ts +8 -14
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +5 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +3 -4
- package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-fields.ts +4 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +21 -16
- package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +52 -25
- package/packages/omo-codex/plugin/components/ulw-loop/src/status-next-actions.ts +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +16 -4
- package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +11 -12
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-fields-messages.test.ts +98 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-lazycodex-surface.test.ts +93 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +9 -4
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +10 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +70 -7
- 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 +18 -0
- 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 +61 -33
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +4 -2
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +4 -2
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +4 -2
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +13 -3
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +11 -10
- package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +11 -6
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +24 -0
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +4 -2
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +4 -2
- package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +8 -4
- package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +62 -0
- package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +3 -3
- package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +23 -1
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +36 -16
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/prompts-core/prompts/ultrawork/codex.md +11 -10
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +0 -17
package/dist/index.js
CHANGED
|
@@ -26475,6 +26475,10 @@ Design-first mindset (AFTER design system is established):
|
|
|
26475
26475
|
|
|
26476
26476
|
AVOID: Generic fonts, purple gradients on white, predictable layouts, cookie-cutter patterns.
|
|
26477
26477
|
</DESIGN_QUALITY>
|
|
26478
|
+
|
|
26479
|
+
<OBSERVE_EACH_CHANGE>
|
|
26480
|
+
Visual state is not text: after each change, render or screenshot the affected surface and look at it before making the next change. Check desktop and mobile widths for blank, misframed, or overlapping output; check a 3D scene from several angles. Compare what you see with the reference or the stated intent, and ask only where two readings of that intent diverge. A change you have not looked at is not done.
|
|
26481
|
+
</OBSERVE_EACH_CHANGE>
|
|
26478
26482
|
</Category_Context>`;
|
|
26479
26483
|
var ARTISTRY_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
26480
26484
|
You are working on HIGHLY CREATIVE / ARTISTIC tasks.
|
|
@@ -96714,7 +96718,7 @@ function getCachedVersion(options = {}) {
|
|
|
96714
96718
|
// package.json
|
|
96715
96719
|
var package_default = {
|
|
96716
96720
|
name: "oh-my-opencode",
|
|
96717
|
-
version: "5.0.0-beta.
|
|
96721
|
+
version: "5.0.0-beta.49",
|
|
96718
96722
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
96719
96723
|
main: "./dist/index.js",
|
|
96720
96724
|
types: "dist/index.d.ts",
|
|
@@ -96898,7 +96902,7 @@ var package_default = {
|
|
|
96898
96902
|
zod: "^4.4.3"
|
|
96899
96903
|
},
|
|
96900
96904
|
devDependencies: {
|
|
96901
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
96905
|
+
"@code-yeongyu/senpi": "2026.9.8",
|
|
96902
96906
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
96903
96907
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
96904
96908
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -96939,18 +96943,18 @@ var package_default = {
|
|
|
96939
96943
|
typescript: "^7.0.2"
|
|
96940
96944
|
},
|
|
96941
96945
|
optionalDependencies: {
|
|
96942
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
96943
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
96944
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
96945
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
96946
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
96947
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
96948
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
96949
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
96950
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
96951
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
96952
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
96953
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
96946
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.49",
|
|
96947
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.49",
|
|
96948
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.49",
|
|
96949
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.49",
|
|
96950
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.49",
|
|
96951
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.49",
|
|
96952
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.49",
|
|
96953
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.49",
|
|
96954
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.49",
|
|
96955
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.49",
|
|
96956
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.49",
|
|
96957
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.49"
|
|
96954
96958
|
},
|
|
96955
96959
|
overrides: {
|
|
96956
96960
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -133185,6 +133189,9 @@ async function enqueueFallbackMailboxWake(input) {
|
|
|
133185
133189
|
dedupeKey: `team-live-delivery-fallback:${input.messageId}`,
|
|
133186
133190
|
queueBehavior: "enqueue",
|
|
133187
133191
|
durableRetry: true,
|
|
133192
|
+
settleMs: input.dispatchTiming?.fallbackWakeSettleMs,
|
|
133193
|
+
postDispatchHoldMs: input.dispatchTiming?.postDispatchHoldMs,
|
|
133194
|
+
queueRetryMs: input.dispatchTiming?.queueRetryMs,
|
|
133188
133195
|
shouldDispatch: () => shouldDispatchFallbackMailboxWake(input),
|
|
133189
133196
|
retryDispatchFailure: isPreSendConnectionFailure2,
|
|
133190
133197
|
input: {
|
|
@@ -133276,7 +133283,8 @@ async function deliverLiveToRecipient(input) {
|
|
|
133276
133283
|
reservation,
|
|
133277
133284
|
config: config2,
|
|
133278
133285
|
directory,
|
|
133279
|
-
settleMs
|
|
133286
|
+
settleMs,
|
|
133287
|
+
dispatchTiming
|
|
133280
133288
|
} = input;
|
|
133281
133289
|
const recipientSessionId = recipientMember.sessionId;
|
|
133282
133290
|
if (recipientMember.pendingInjectedMessageIds.length > 0) {
|
|
@@ -133294,7 +133302,8 @@ async function deliverLiveToRecipient(input) {
|
|
|
133294
133302
|
teamRunId,
|
|
133295
133303
|
recipientName,
|
|
133296
133304
|
messageId: message.messageId,
|
|
133297
|
-
config: config2
|
|
133305
|
+
config: config2,
|
|
133306
|
+
dispatchTiming
|
|
133298
133307
|
});
|
|
133299
133308
|
}
|
|
133300
133309
|
return;
|
|
@@ -133337,6 +133346,7 @@ async function deliverLiveToRecipient(input) {
|
|
|
133337
133346
|
source: "team-live-delivery",
|
|
133338
133347
|
queueBehavior: "defer",
|
|
133339
133348
|
settleMs,
|
|
133349
|
+
postDispatchHoldMs: dispatchTiming?.postDispatchHoldMs,
|
|
133340
133350
|
input: {
|
|
133341
133351
|
path: { id: recipientSessionId },
|
|
133342
133352
|
body: buildMemberPromptBody(recipientMember, envelope),
|
|
@@ -133383,7 +133393,8 @@ async function deliverLiveToRecipient(input) {
|
|
|
133383
133393
|
teamRunId,
|
|
133384
133394
|
recipientName,
|
|
133385
133395
|
messageId: message.messageId,
|
|
133386
|
-
config: config2
|
|
133396
|
+
config: config2,
|
|
133397
|
+
dispatchTiming
|
|
133387
133398
|
});
|
|
133388
133399
|
return;
|
|
133389
133400
|
}
|
|
@@ -133472,7 +133483,8 @@ async function deliverLive(client3, message, teamRunId, deliveredTo, config2, di
|
|
|
133472
133483
|
reservation,
|
|
133473
133484
|
config: config2,
|
|
133474
133485
|
directory,
|
|
133475
|
-
settleMs: deps.liveDeliverySettleMs
|
|
133486
|
+
settleMs: deps.liveDeliverySettleMs,
|
|
133487
|
+
dispatchTiming: deps.dispatchTiming
|
|
133476
133488
|
});
|
|
133477
133489
|
}
|
|
133478
133490
|
}
|
package/dist/tui.js
CHANGED
|
@@ -4747,6 +4747,10 @@ Design-first mindset (AFTER design system is established):
|
|
|
4747
4747
|
|
|
4748
4748
|
AVOID: Generic fonts, purple gradients on white, predictable layouts, cookie-cutter patterns.
|
|
4749
4749
|
</DESIGN_QUALITY>
|
|
4750
|
+
|
|
4751
|
+
<OBSERVE_EACH_CHANGE>
|
|
4752
|
+
Visual state is not text: after each change, render or screenshot the affected surface and look at it before making the next change. Check desktop and mobile widths for blank, misframed, or overlapping output; check a 3D scene from several angles. Compare what you see with the reference or the stated intent, and ask only where two readings of that intent diverge. A change you have not looked at is not done.
|
|
4753
|
+
</OBSERVE_EACH_CHANGE>
|
|
4750
4754
|
</Category_Context>`, ARTISTRY_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
4751
4755
|
You are working on HIGHLY CREATIVE / ARTISTIC tasks.
|
|
4752
4756
|
|
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.49",
|
|
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",
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"zod": "^4.4.3"
|
|
185
185
|
},
|
|
186
186
|
"devDependencies": {
|
|
187
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
187
|
+
"@code-yeongyu/senpi": "2026.9.8",
|
|
188
188
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
189
189
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
190
190
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -225,18 +225,18 @@
|
|
|
225
225
|
"typescript": "^7.0.2"
|
|
226
226
|
},
|
|
227
227
|
"optionalDependencies": {
|
|
228
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
229
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
230
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
231
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
232
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
233
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
234
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
235
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
236
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
237
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
238
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
239
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
228
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.49",
|
|
229
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.49",
|
|
230
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.49",
|
|
231
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.49",
|
|
232
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.49",
|
|
233
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.49",
|
|
234
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.49",
|
|
235
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.49",
|
|
236
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.49",
|
|
237
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.49",
|
|
238
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.49",
|
|
239
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.49"
|
|
240
240
|
},
|
|
241
241
|
"overrides": {
|
|
242
242
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -6127,14 +6127,17 @@ function pingDaemon(paths, token, timeoutMs = PROBE_TIMEOUT_MS, signal) {
|
|
|
6127
6127
|
socket.connect(paths.socket);
|
|
6128
6128
|
});
|
|
6129
6129
|
}
|
|
6130
|
-
function spawnDaemonProcess(paths) {
|
|
6130
|
+
function spawnDaemonProcess(paths, deps = {}) {
|
|
6131
6131
|
mkdirSync3(dirname10(paths.log), { recursive: true });
|
|
6132
6132
|
const logFd = openSync2(paths.log, "a");
|
|
6133
6133
|
try {
|
|
6134
|
-
const
|
|
6134
|
+
const spawnDaemonChild = deps.spawn ?? spawn2;
|
|
6135
|
+
const executable = deps.resolveExecutable?.() ?? resolveDaemonNodeExecutable();
|
|
6136
|
+
const child = spawnDaemonChild(executable, [paths.cliPath, "daemon"], {
|
|
6135
6137
|
detached: true,
|
|
6136
6138
|
stdio: ["ignore", logFd, logFd],
|
|
6137
|
-
windowsHide: true
|
|
6139
|
+
windowsHide: true,
|
|
6140
|
+
env: { ...process.env, BUN_BE_BUN: "1" }
|
|
6138
6141
|
});
|
|
6139
6142
|
child.once("spawn", () => closeSync2(logFd));
|
|
6140
6143
|
child.once("error", (error) => {
|
|
@@ -719,14 +719,17 @@ function pingDaemon(paths, token, timeoutMs = PROBE_TIMEOUT_MS, signal) {
|
|
|
719
719
|
socket.connect(paths.socket);
|
|
720
720
|
});
|
|
721
721
|
}
|
|
722
|
-
function spawnDaemonProcess(paths) {
|
|
722
|
+
function spawnDaemonProcess(paths, deps = {}) {
|
|
723
723
|
mkdirSync2(dirname3(paths.log), { recursive: true });
|
|
724
724
|
const logFd = openSync2(paths.log, "a");
|
|
725
725
|
try {
|
|
726
|
-
const
|
|
726
|
+
const spawnDaemonChild = deps.spawn ?? spawn;
|
|
727
|
+
const executable = deps.resolveExecutable?.() ?? resolveDaemonNodeExecutable();
|
|
728
|
+
const child = spawnDaemonChild(executable, [paths.cliPath, "daemon"], {
|
|
727
729
|
detached: true,
|
|
728
730
|
stdio: ["ignore", logFd, logFd],
|
|
729
|
-
windowsHide: true
|
|
731
|
+
windowsHide: true,
|
|
732
|
+
env: { ...process.env, BUN_BE_BUN: "1" }
|
|
730
733
|
});
|
|
731
734
|
child.once("spawn", () => closeSync2(logFd));
|
|
732
735
|
child.once("error", (error) => {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ChildProcess, type SpawnOptions } from "node:child_process";
|
|
1
2
|
import type { OwnerPing } from "./ownership.js";
|
|
2
3
|
import { type DaemonPaths } from "./paths.js";
|
|
3
4
|
import { type DaemonRuntimeDefaults } from "./runtime-contract.js";
|
|
@@ -19,7 +20,11 @@ export interface EnsureDaemonOptions {
|
|
|
19
20
|
export declare function ensureDaemonRunning(paths: DaemonPaths, deps?: EnsureDaemonDeps, options?: EnsureDaemonOptions): Promise<void>;
|
|
20
21
|
export declare function probeDaemon(paths: DaemonPaths, timeoutMs?: number, signal?: AbortSignal): Promise<boolean>;
|
|
21
22
|
export declare function pingDaemon(paths: DaemonPaths, token: string, timeoutMs?: number, signal?: AbortSignal): Promise<OwnerPing | null>;
|
|
22
|
-
export
|
|
23
|
+
export interface SpawnDaemonProcessDeps {
|
|
24
|
+
spawn: (executable: string, args: readonly string[], options: SpawnOptions) => ChildProcess;
|
|
25
|
+
resolveExecutable: () => string;
|
|
26
|
+
}
|
|
27
|
+
export declare function spawnDaemonProcess(paths: DaemonPaths, deps?: Partial<SpawnDaemonProcessDeps>): void;
|
|
23
28
|
export declare function resolveDaemonNodeExecutable(cachedExecPath?: string, originalArgv0?: string, pathExists?: (path: string) => boolean): string;
|
|
24
29
|
export declare function resolveDaemonCliPath(env?: NodeJS.ProcessEnv, defaults?: DaemonRuntimeDefaults): string;
|
|
25
30
|
export declare function defaultEnsureDaemonDeps(): EnsureDaemonDeps;
|
|
@@ -81,14 +81,21 @@ export function pingDaemon(paths, token, timeoutMs = PROBE_TIMEOUT_MS, signal) {
|
|
|
81
81
|
socket.connect(paths.socket);
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
|
-
export function spawnDaemonProcess(paths) {
|
|
84
|
+
export function spawnDaemonProcess(paths, deps = {}) {
|
|
85
85
|
mkdirSync(dirname(paths.log), { recursive: true });
|
|
86
86
|
const logFd = openSync(paths.log, "a");
|
|
87
87
|
try {
|
|
88
|
-
const
|
|
88
|
+
const spawnDaemonChild = deps.spawn ?? spawn;
|
|
89
|
+
const executable = deps.resolveExecutable?.() ?? resolveDaemonNodeExecutable();
|
|
90
|
+
const child = spawnDaemonChild(executable, [paths.cliPath, "daemon"], {
|
|
89
91
|
detached: true,
|
|
90
92
|
stdio: ["ignore", logFd, logFd],
|
|
91
93
|
windowsHide: true,
|
|
94
|
+
// Under the packaged runtime execPath is the compiled omo binary, not a
|
|
95
|
+
// node interpreter; without BUN_BE_BUN it runs its embedded entrypoint, so
|
|
96
|
+
// the CLI argv boots a billable agent session instead of the daemon
|
|
97
|
+
// (issue #7914). Inert for node and for the bun interpreter itself.
|
|
98
|
+
env: { ...process.env, BUN_BE_BUN: "1" },
|
|
92
99
|
});
|
|
93
100
|
child.once("spawn", () => closeSync(logFd));
|
|
94
101
|
child.once("error", (error) => {
|
|
@@ -3861,14 +3861,17 @@ function pingDaemon(paths, token, timeoutMs = PROBE_TIMEOUT_MS, signal) {
|
|
|
3861
3861
|
socket.connect(paths.socket);
|
|
3862
3862
|
});
|
|
3863
3863
|
}
|
|
3864
|
-
function spawnDaemonProcess(paths) {
|
|
3864
|
+
function spawnDaemonProcess(paths, deps = {}) {
|
|
3865
3865
|
mkdirSync2(dirname6(paths.log), { recursive: true });
|
|
3866
3866
|
const logFd = openSync2(paths.log, "a");
|
|
3867
3867
|
try {
|
|
3868
|
-
const
|
|
3868
|
+
const spawnDaemonChild = deps.spawn ?? spawn2;
|
|
3869
|
+
const executable = deps.resolveExecutable?.() ?? resolveDaemonNodeExecutable();
|
|
3870
|
+
const child = spawnDaemonChild(executable, [paths.cliPath, "daemon"], {
|
|
3869
3871
|
detached: true,
|
|
3870
3872
|
stdio: ["ignore", logFd, logFd],
|
|
3871
|
-
windowsHide: true
|
|
3873
|
+
windowsHide: true,
|
|
3874
|
+
env: { ...process.env, BUN_BE_BUN: "1" }
|
|
3872
3875
|
});
|
|
3873
3876
|
child.once("spawn", () => closeSync2(logFd));
|
|
3874
3877
|
child.once("error", (error) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omo",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.49",
|
|
4
4
|
"description": "One Codex plugin namespace for Yeongyu's local Codex components.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Yeongyu Kim",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"./hooks/post-tool-use-checking-lsp-diagnostics.json",
|
|
35
35
|
"./hooks/post-tool-use-matching-project-rules.json",
|
|
36
36
|
"./hooks/post-tool-use-checking-thread-title-hygiene.json",
|
|
37
|
+
"./hooks/post-tool-use-recording-spawn-admission.json",
|
|
37
38
|
"./hooks/post-compact-resetting-git-bash-mcp-reminder.json",
|
|
38
39
|
"./hooks/post-compact-resetting-project-rule-cache.json",
|
|
39
40
|
"./hooks/post-compact-resetting-lsp-diagnostics-cache.json",
|
|
40
41
|
"./hooks/stop-checking-ulw-execute-continuation.json",
|
|
41
42
|
"./hooks/stop-checking-ulw-loop-resume.json",
|
|
42
|
-
"./hooks/subagent-stop-checking-ulw-execute-continuation.json",
|
|
43
43
|
"./hooks/subagent-stop-verifying-lazycodex-executor-evidence.json"
|
|
44
44
|
],
|
|
45
45
|
"mcpServers": "./.mcp.json",
|
|
@@ -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.49) 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.49",
|
|
4
4
|
"description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": true,
|
|
@@ -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.49) 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.49) 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.49) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.49",
|
|
4
4
|
"description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -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.49",
|
|
4
|
+
"inputDigest": "sha256:2558d595e0ff9f7b1fe251d3ce11a05dadf64b039021b5a34d5469762671b6de",
|
|
5
5
|
"outputs": [
|
|
6
6
|
{
|
|
7
7
|
"path": "cli.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "cli.js",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "bddbb2f82db0dffb0c2ec7b69778a63e77cac2c6a0f8bfb6d7a62980a49d14bb"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "codex-hook-cli.d.ts",
|
|
@@ -556,14 +556,17 @@ function pingDaemon(paths, token, timeoutMs = PROBE_TIMEOUT_MS, signal) {
|
|
|
556
556
|
socket.connect(paths.socket);
|
|
557
557
|
});
|
|
558
558
|
}
|
|
559
|
-
function spawnDaemonProcess(paths) {
|
|
559
|
+
function spawnDaemonProcess(paths, deps = {}) {
|
|
560
560
|
mkdirSync2(dirname3(paths.log), { recursive: true });
|
|
561
561
|
const logFd = openSync2(paths.log, "a");
|
|
562
562
|
try {
|
|
563
|
-
const
|
|
563
|
+
const spawnDaemonChild = deps.spawn ?? spawn;
|
|
564
|
+
const executable = deps.resolveExecutable?.() ?? resolveDaemonNodeExecutable();
|
|
565
|
+
const child = spawnDaemonChild(executable, [paths.cliPath, "daemon"], {
|
|
564
566
|
detached: true,
|
|
565
567
|
stdio: ["ignore", logFd, logFd],
|
|
566
|
-
windowsHide: true
|
|
568
|
+
windowsHide: true,
|
|
569
|
+
env: { ...process.env, BUN_BE_BUN: "1" }
|
|
567
570
|
});
|
|
568
571
|
child.once("spawn", () => closeSync2(logFd));
|
|
569
572
|
child.once("error", (error) => {
|
|
@@ -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.49) 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.49) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.49) Loading Project Rules"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type": "command",
|
|
20
20
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
|
|
21
21
|
"timeout": 10,
|
|
22
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
22
|
+
"statusMessage": "(OmO 5.0.0-beta.49) Loading Project Rules"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"type": "command",
|
|
33
33
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
34
34
|
"timeout": 10,
|
|
35
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
35
|
+
"statusMessage": "(OmO 5.0.0-beta.49) Matching Project Rules"
|
|
36
36
|
}
|
|
37
37
|
]
|
|
38
38
|
}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"type": "command",
|
|
46
46
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
47
47
|
"timeout": 10,
|
|
48
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
48
|
+
"statusMessage": "(OmO 5.0.0-beta.49) Resetting Project Rule Cache"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.49) Checking Thread Title Hygiene"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-telemetry",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.49",
|
|
4
4
|
"description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -59,8 +59,8 @@ first-class for CLI- or data-shaped work; self-review recorded in the
|
|
|
59
59
|
notepad instead of the reviewer loop.
|
|
60
60
|
HEAVY — anything a fact above names: 3+ success criteria (happy,
|
|
61
61
|
edge, regression, adversarial risk), each with its own channel
|
|
62
|
-
scenario and both evidence pieces;
|
|
63
|
-
approval.
|
|
62
|
+
scenario and both evidence pieces; when the verification gate is
|
|
63
|
+
triggered, run the reviewer loop until unconditional approval.
|
|
64
64
|
|
|
65
65
|
# Manual-QA channels
|
|
66
66
|
Run real-surface proof yourself through the channel that faithfully
|
|
@@ -398,16 +398,17 @@ BLOCKED: <reason>\`. After four silent or ack-only checks, close the lane as
|
|
|
398
398
|
inconclusive, record that it is not approval, and respawn smaller only
|
|
399
399
|
if the deliverable is still required.
|
|
400
400
|
|
|
401
|
-
# Verification gate (TRIGGERED
|
|
401
|
+
# Verification gate (TRIGGERED ONLY ON EXPLICIT DEMAND)
|
|
402
402
|
|
|
403
|
-
Trigger when
|
|
404
|
-
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
403
|
+
Trigger ONLY when the user explicitly demanded strict, rigorous, proper,
|
|
404
|
+
or high-accuracy review of this work, in any language (for example,
|
|
405
|
+
고정밀 or 엄격). The tier alone never triggers the gate. HEAVY without
|
|
406
|
+
such a demand records the same self-review as LIGHT.
|
|
407
|
+
LIGHT and non-triggered HEAVY work records a self-review in the notepad
|
|
408
|
+
instead: re-read the diff, run diagnostics, confirm each criterion's
|
|
409
|
+
evidence, and state in one line why the tier held.
|
|
409
410
|
|
|
410
|
-
|
|
411
|
+
When triggered, follow this procedure (NON-NEGOTIABLE):
|
|
411
412
|
1. Spawn a child with \`fork_context: false\` and a self-contained reviewer
|
|
412
413
|
assignment in \`message\`. The \`multi_agent_v1.spawn_agent\` schema cannot select a
|
|
413
414
|
TOML-backed reviewer role, so paste the reviewer requirements into
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.49) Checking Ultrawork Trigger"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.49",
|
|
4
4
|
"description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|