oh-my-opencode 5.0.0-beta.1 → 5.0.0-beta.11
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/README.md +12 -1
- 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/sisyphus-runtime-prompt-reconciler.d.ts +15 -4
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/index.js +805 -534
- package/dist/cli/run/on-complete-hook.d.ts +2 -0
- package/dist/cli-node/index.js +805 -534
- 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 +1566 -1217
- package/dist/shared/normalize-sdk-response.d.ts +1 -0
- package/dist/shared/shell-env.d.ts +1 -1
- package/dist/skills/coding-agent-sessions/SKILL.md +3 -2
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +1 -1
- package/dist/skills/coding-agent-sessions/references/senpi.md +4 -4
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +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 +179 -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/tools/delegate-task/builtin-categories.d.ts +1 -0
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
- package/dist/tools/delegate-task/tool-description.d.ts +3 -1
- package/dist/tui.js +184 -83
- package/package.json +21 -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/lsp-core/src/lsp/client-wrapper-outside-cwd.test.ts +78 -0
- package/packages/lsp-core/src/lsp/client-wrapper.test.ts +66 -13
- package/packages/lsp-core/src/lsp/client-wrapper.ts +70 -18
- package/packages/lsp-core/src/lsp/outside-context-workspace.ts +33 -0
- package/packages/lsp-core/src/lsp/workspace-edit-adversarial.test.ts +20 -1
- package/packages/lsp-core/src/lsp/workspace-markers.ts +1 -0
- package/packages/lsp-core/src/tools/diagnostics.ts +3 -3
- package/packages/lsp-core/src/tools/navigation.ts +4 -2
- package/packages/lsp-core/src/tools/rename.ts +4 -2
- package/packages/lsp-core/src/tools/symbols.ts +1 -1
- package/packages/lsp-daemon/dist/cli.js +160 -71
- package/packages/lsp-daemon/dist/client.js +135 -46
- package/packages/lsp-daemon/dist/index.js +143 -54
- package/packages/lsp-tools-mcp/dist/cli.js +131 -42
- package/packages/lsp-tools-mcp/dist/mcp.js +131 -42
- package/packages/lsp-tools-mcp/dist/tools.js +131 -42
- 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 +118 -8
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +118 -8
- 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 +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +147 -64
- 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/AGENTS.md +3 -2
- 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/dist/cli.js +24 -12
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +24 -12
- 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/directive.md +6 -0
- 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/ultrawork/SKILL.md +6 -0
- 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/directive.md +6 -0
- 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/SKILL.md +3 -2
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +108 -0
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -0
- 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/coding-agent-sessions/SKILL.md +3 -2
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +1 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +4 -4
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +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 +179 -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/ultrawork/SKILL.md +6 -0
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +3 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +108 -0
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -0
- 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 +57 -19
- package/packages/omo-codex/scripts/install-lazycodex-version-stamp.test.mjs +7 -2
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +3 -2
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +1 -1
- package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +4 -4
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +1 -1
- 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 +179 -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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// ../lsp-core/src/lsp/client-wrapper.ts
|
|
2
|
-
import { existsSync as
|
|
3
|
-
import { dirname as
|
|
2
|
+
import { existsSync as existsSync10, realpathSync as realpathSync5, statSync as statSync3 } from "node:fs";
|
|
3
|
+
import { basename as basename3, dirname as dirname7, join as join5, resolve as resolve7 } from "node:path";
|
|
4
4
|
|
|
5
5
|
// ../lsp-core/src/request-context.ts
|
|
6
6
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -3194,15 +3194,52 @@ async function disposeDefaultLspManager() {
|
|
|
3194
3194
|
}
|
|
3195
3195
|
}
|
|
3196
3196
|
|
|
3197
|
+
// ../lsp-core/src/lsp/outside-context-workspace.ts
|
|
3198
|
+
import { existsSync as existsSync6, realpathSync as realpathSync4 } from "node:fs";
|
|
3199
|
+
import { dirname as dirname5, join as join3 } from "node:path";
|
|
3200
|
+
|
|
3201
|
+
// ../lsp-core/src/lsp/workspace-markers.ts
|
|
3202
|
+
var WORKSPACE_MARKERS = [".git", "package.json", "pyproject.toml", "Cargo.toml", "go.mod", "pom.xml", "build.gradle"];
|
|
3203
|
+
|
|
3204
|
+
// ../lsp-core/src/lsp/outside-context-workspace.ts
|
|
3205
|
+
function findWorkspaceRootOutsideContext(directory) {
|
|
3206
|
+
const marked = nearestMarkedAncestor(directory);
|
|
3207
|
+
if (marked !== undefined)
|
|
3208
|
+
return marked;
|
|
3209
|
+
return realpathSync4(nearestExistingAncestor(directory));
|
|
3210
|
+
}
|
|
3211
|
+
function nearestMarkedAncestor(directory) {
|
|
3212
|
+
let current = directory;
|
|
3213
|
+
for (;; ) {
|
|
3214
|
+
if (existsSync6(current) && WORKSPACE_MARKERS.some((marker) => existsSync6(join3(current, marker)))) {
|
|
3215
|
+
return realpathSync4(current);
|
|
3216
|
+
}
|
|
3217
|
+
const parent = dirname5(current);
|
|
3218
|
+
if (parent === current)
|
|
3219
|
+
return;
|
|
3220
|
+
current = parent;
|
|
3221
|
+
}
|
|
3222
|
+
}
|
|
3223
|
+
function nearestExistingAncestor(directory) {
|
|
3224
|
+
let current = directory;
|
|
3225
|
+
while (!existsSync6(current)) {
|
|
3226
|
+
const parent = dirname5(current);
|
|
3227
|
+
if (parent === current)
|
|
3228
|
+
return current;
|
|
3229
|
+
current = parent;
|
|
3230
|
+
}
|
|
3231
|
+
return current;
|
|
3232
|
+
}
|
|
3233
|
+
|
|
3197
3234
|
// ../lsp-core/src/lsp/server-install-state.ts
|
|
3198
|
-
import { existsSync as
|
|
3199
|
-
import { dirname as
|
|
3235
|
+
import { existsSync as existsSync7, mkdirSync, readFileSync as readFileSync3, renameSync as renameSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
3236
|
+
import { dirname as dirname6 } from "node:path";
|
|
3200
3237
|
function getInstallDecisionsPath() {
|
|
3201
3238
|
return lspRequestContext().installDecisionsPath;
|
|
3202
3239
|
}
|
|
3203
3240
|
function loadInstallDecisions() {
|
|
3204
3241
|
const path = getInstallDecisionsPath();
|
|
3205
|
-
if (!
|
|
3242
|
+
if (!existsSync7(path))
|
|
3206
3243
|
return {};
|
|
3207
3244
|
try {
|
|
3208
3245
|
const parsed = JSON.parse(readFileSync3(path, "utf8"));
|
|
@@ -3224,7 +3261,7 @@ function isInstallDecision(value) {
|
|
|
3224
3261
|
}
|
|
3225
3262
|
function writeInstallDecisions(decisions) {
|
|
3226
3263
|
const path = getInstallDecisionsPath();
|
|
3227
|
-
mkdirSync(
|
|
3264
|
+
mkdirSync(dirname6(path), { recursive: true });
|
|
3228
3265
|
const tmpPath = `${path}.tmp`;
|
|
3229
3266
|
writeFileSync2(tmpPath, `${JSON.stringify(decisions, null, 2)}
|
|
3230
3267
|
`, "utf8");
|
|
@@ -3243,7 +3280,7 @@ function isRecord5(value) {
|
|
|
3243
3280
|
}
|
|
3244
3281
|
|
|
3245
3282
|
// ../lsp-core/src/lsp/config-loader.ts
|
|
3246
|
-
import { existsSync as
|
|
3283
|
+
import { existsSync as existsSync8, readFileSync as readFileSync4 } from "node:fs";
|
|
3247
3284
|
|
|
3248
3285
|
// ../lsp-core/src/lsp/server-definitions.ts
|
|
3249
3286
|
var LSP_INSTALL_HINTS = {
|
|
@@ -3400,7 +3437,7 @@ function getUserConfigPath() {
|
|
|
3400
3437
|
return lspRequestContext().userConfigPath;
|
|
3401
3438
|
}
|
|
3402
3439
|
function loadJsonFile(path) {
|
|
3403
|
-
if (!
|
|
3440
|
+
if (!existsSync8(path))
|
|
3404
3441
|
return null;
|
|
3405
3442
|
try {
|
|
3406
3443
|
const parsed = JSON.parse(readFileSync4(path, "utf-8"));
|
|
@@ -3588,8 +3625,8 @@ function getDisabledServerIds() {
|
|
|
3588
3625
|
}
|
|
3589
3626
|
|
|
3590
3627
|
// ../lsp-core/src/lsp/server-installation.ts
|
|
3591
|
-
import { existsSync as
|
|
3592
|
-
import { delimiter as delimiter3, join as
|
|
3628
|
+
import { existsSync as existsSync9 } from "node:fs";
|
|
3629
|
+
import { delimiter as delimiter3, join as join4 } from "node:path";
|
|
3593
3630
|
function isServerInstalled(command, _workingDirectory) {
|
|
3594
3631
|
if (command.length === 0)
|
|
3595
3632
|
return false;
|
|
@@ -3597,7 +3634,7 @@ function isServerInstalled(command, _workingDirectory) {
|
|
|
3597
3634
|
if (!cmd)
|
|
3598
3635
|
return false;
|
|
3599
3636
|
if (cmd.includes("/") || cmd.includes("\\")) {
|
|
3600
|
-
if (
|
|
3637
|
+
if (existsSync9(cmd))
|
|
3601
3638
|
return true;
|
|
3602
3639
|
}
|
|
3603
3640
|
const isWindows = process.platform === "win32";
|
|
@@ -3618,7 +3655,7 @@ function isServerInstalled(command, _workingDirectory) {
|
|
|
3618
3655
|
const paths = pathEnv.split(delimiter3);
|
|
3619
3656
|
for (const p of paths) {
|
|
3620
3657
|
for (const suffix of exts) {
|
|
3621
|
-
if (
|
|
3658
|
+
if (existsSync9(join4(p, cmd + suffix))) {
|
|
3622
3659
|
return true;
|
|
3623
3660
|
}
|
|
3624
3661
|
}
|
|
@@ -3714,7 +3751,6 @@ function getAllServers() {
|
|
|
3714
3751
|
}
|
|
3715
3752
|
|
|
3716
3753
|
// ../lsp-core/src/lsp/client-wrapper.ts
|
|
3717
|
-
var WORKSPACE_MARKERS = [".git", "package.json", "pyproject.toml", "Cargo.toml", "go.mod", "pom.xml", "build.gradle"];
|
|
3718
3754
|
function isDirectoryPath(filePath) {
|
|
3719
3755
|
try {
|
|
3720
3756
|
return statSync3(filePath).isDirectory();
|
|
@@ -3723,32 +3759,85 @@ function isDirectoryPath(filePath) {
|
|
|
3723
3759
|
}
|
|
3724
3760
|
}
|
|
3725
3761
|
function findWorkspaceRoot(filePath) {
|
|
3726
|
-
const
|
|
3762
|
+
const cwd = contextCwd();
|
|
3763
|
+
const abs = resolveReadablePathInsideContext(filePath);
|
|
3727
3764
|
let dir = abs;
|
|
3728
3765
|
if (!isDirectoryPath(dir)) {
|
|
3729
|
-
dir =
|
|
3730
|
-
}
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3766
|
+
dir = dirname7(dir);
|
|
3767
|
+
}
|
|
3768
|
+
if (!isPathInside(cwd, abs))
|
|
3769
|
+
return findWorkspaceRootOutsideContext(dir);
|
|
3770
|
+
const fallbackRoot = nearestExistingDirectoryInsideContext(dir, cwd) ?? cwd;
|
|
3771
|
+
while (isPathInside(cwd, dir)) {
|
|
3772
|
+
const canonicalDir = existingDirectoryInsideContext(dir, cwd);
|
|
3773
|
+
if (canonicalDir !== undefined) {
|
|
3774
|
+
for (const marker of WORKSPACE_MARKERS) {
|
|
3775
|
+
if (existsSync10(join5(dir, marker))) {
|
|
3776
|
+
return canonicalDir;
|
|
3777
|
+
}
|
|
3736
3778
|
}
|
|
3737
3779
|
}
|
|
3738
|
-
|
|
3739
|
-
|
|
3780
|
+
if (dir === cwd)
|
|
3781
|
+
break;
|
|
3782
|
+
dir = dirname7(dir);
|
|
3740
3783
|
}
|
|
3741
|
-
return
|
|
3784
|
+
return fallbackRoot;
|
|
3742
3785
|
}
|
|
3743
|
-
function
|
|
3786
|
+
function resolveReadablePathInsideContext(filePath) {
|
|
3744
3787
|
const cwd = contextCwd();
|
|
3745
3788
|
const abs = resolve7(cwd, filePath);
|
|
3789
|
+
if (isPathInside(cwd, abs))
|
|
3790
|
+
return abs;
|
|
3791
|
+
const rebased = rebaseThroughCanonicalAncestor(abs, cwd);
|
|
3792
|
+
if (rebased !== undefined)
|
|
3793
|
+
return rebased;
|
|
3794
|
+
return canonicalizeExistingOrNearestAncestor(abs);
|
|
3795
|
+
}
|
|
3796
|
+
function resolvePathInsideContext(filePath) {
|
|
3797
|
+
const cwd = contextCwd();
|
|
3798
|
+
const abs = resolveReadablePathInsideContext(filePath);
|
|
3746
3799
|
const canonical = canonicalizeExistingOrNearestAncestor(abs);
|
|
3747
3800
|
if (!isPathInside(cwd, canonical)) {
|
|
3748
3801
|
throw new LspInvalidPathError(`LSP file path must be inside request cwd: ${filePath}`);
|
|
3749
3802
|
}
|
|
3750
3803
|
return canonical;
|
|
3751
3804
|
}
|
|
3805
|
+
function rebaseThroughCanonicalAncestor(path, cwd) {
|
|
3806
|
+
let current = path;
|
|
3807
|
+
const suffix = [];
|
|
3808
|
+
while (true) {
|
|
3809
|
+
if (existsSync10(current)) {
|
|
3810
|
+
const canonical = realpathSync5(current);
|
|
3811
|
+
if (isPathInside(cwd, canonical))
|
|
3812
|
+
return suffix.length === 0 ? canonical : join5(canonical, ...suffix);
|
|
3813
|
+
}
|
|
3814
|
+
const parent = dirname7(current);
|
|
3815
|
+
if (parent === current)
|
|
3816
|
+
return;
|
|
3817
|
+
suffix.unshift(basename3(current));
|
|
3818
|
+
current = parent;
|
|
3819
|
+
}
|
|
3820
|
+
}
|
|
3821
|
+
function existingDirectoryInsideContext(directory, cwd) {
|
|
3822
|
+
if (!existsSync10(directory))
|
|
3823
|
+
return;
|
|
3824
|
+
const canonical = realpathSync5(directory);
|
|
3825
|
+
if (!statSync3(canonical).isDirectory())
|
|
3826
|
+
return;
|
|
3827
|
+
return isPathInside(cwd, canonical) ? canonical : undefined;
|
|
3828
|
+
}
|
|
3829
|
+
function nearestExistingDirectoryInsideContext(directory, cwd) {
|
|
3830
|
+
let current = directory;
|
|
3831
|
+
while (isPathInside(cwd, current)) {
|
|
3832
|
+
const canonical = existingDirectoryInsideContext(current, cwd);
|
|
3833
|
+
if (canonical !== undefined)
|
|
3834
|
+
return canonical;
|
|
3835
|
+
if (current === cwd)
|
|
3836
|
+
return;
|
|
3837
|
+
current = dirname7(current);
|
|
3838
|
+
}
|
|
3839
|
+
return;
|
|
3840
|
+
}
|
|
3752
3841
|
function formatServerLookupError(result) {
|
|
3753
3842
|
if (result.status === "not_installed") {
|
|
3754
3843
|
return formatNotInstalled(result);
|
|
@@ -3819,7 +3908,7 @@ function formatNotInstalled(result) {
|
|
|
3819
3908
|
].join(`
|
|
3820
3909
|
`);
|
|
3821
3910
|
}
|
|
3822
|
-
var
|
|
3911
|
+
var READ_ONLY_TOOLS = new Set([
|
|
3823
3912
|
"diagnostics",
|
|
3824
3913
|
"definition",
|
|
3825
3914
|
"references",
|
|
@@ -3828,7 +3917,7 @@ var READ_ONLY_RETRY_TOOLS = new Set([
|
|
|
3828
3917
|
"prepareRename"
|
|
3829
3918
|
]);
|
|
3830
3919
|
async function withLspClient(filePath, fn, toolName, options = {}) {
|
|
3831
|
-
const absPath = resolvePathInsideContext(filePath);
|
|
3920
|
+
const absPath = READ_ONLY_TOOLS.has(toolName) ? resolveReadablePathInsideContext(filePath) : resolvePathInsideContext(filePath);
|
|
3832
3921
|
if (isDirectoryPath(absPath)) {
|
|
3833
3922
|
throw new LspInvalidPathError("Directory paths are not supported by this LSP tool. " + "Use lsp.diagnostics with a directory path for directory diagnostics.");
|
|
3834
3923
|
}
|
|
@@ -3843,9 +3932,9 @@ async function withLspClient(filePath, fn, toolName, options = {}) {
|
|
|
3843
3932
|
const acquireAndCall = async (allowRetry) => {
|
|
3844
3933
|
const client = await manager.getClient(root, server, options.signal);
|
|
3845
3934
|
try {
|
|
3846
|
-
return await fn(client, root);
|
|
3935
|
+
return await fn(client, root, absPath);
|
|
3847
3936
|
} catch (err) {
|
|
3848
|
-
if (allowRetry &&
|
|
3937
|
+
if (allowRetry && READ_ONLY_TOOLS.has(toolName) && isLspDeadConnectionError(err)) {
|
|
3849
3938
|
manager.invalidateClient(root, server.id, client);
|
|
3850
3939
|
return acquireAndCall(false);
|
|
3851
3940
|
}
|
|
@@ -3863,8 +3952,8 @@ async function withLspClient(filePath, fn, toolName, options = {}) {
|
|
|
3863
3952
|
}
|
|
3864
3953
|
|
|
3865
3954
|
// ../lsp-core/src/lsp/directory-diagnostics.ts
|
|
3866
|
-
import { existsSync as
|
|
3867
|
-
import { join as
|
|
3955
|
+
import { existsSync as existsSync11, lstatSync as lstatSync4, readdirSync as readdirSync3 } from "node:fs";
|
|
3956
|
+
import { join as join6, resolve as resolve8 } from "node:path";
|
|
3868
3957
|
|
|
3869
3958
|
// ../lsp-core/src/lsp/formatters.ts
|
|
3870
3959
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
@@ -3994,7 +4083,7 @@ function collectFilesWithExtension(dir, extension, maxFiles) {
|
|
|
3994
4083
|
for (const entry of entries) {
|
|
3995
4084
|
if (files.length >= maxFiles)
|
|
3996
4085
|
return;
|
|
3997
|
-
const fullPath =
|
|
4086
|
+
const fullPath = join6(currentDir, entry);
|
|
3998
4087
|
let stat;
|
|
3999
4088
|
try {
|
|
4000
4089
|
stat = lstatSync4(fullPath);
|
|
@@ -4020,7 +4109,7 @@ async function aggregateDiagnosticsForDirectory(directory, extension, severity,
|
|
|
4020
4109
|
throw new LspInvalidPathError(`Extension must start with a dot (e.g., ".ts", not "${extension}"). Use ".${extension}" instead.`);
|
|
4021
4110
|
}
|
|
4022
4111
|
const absDir = resolve8(options.workspaceRoot ?? contextCwd(), directory);
|
|
4023
|
-
if (!
|
|
4112
|
+
if (!existsSync11(absDir)) {
|
|
4024
4113
|
throw new LspInvalidPathError(`Directory does not exist: ${absDir}`);
|
|
4025
4114
|
}
|
|
4026
4115
|
const serverResult = options.server === undefined ? findServerForExtension(extension) : { status: "found", server: options.server };
|
|
@@ -4107,7 +4196,7 @@ async function aggregateDiagnosticsForDirectory(directory, extension, severity,
|
|
|
4107
4196
|
|
|
4108
4197
|
// ../lsp-core/src/lsp/infer-extension.ts
|
|
4109
4198
|
import { lstatSync as lstatSync5, readdirSync as readdirSync4 } from "node:fs";
|
|
4110
|
-
import { join as
|
|
4199
|
+
import { join as join7 } from "node:path";
|
|
4111
4200
|
var SKIP_DIRECTORIES2 = new Set(["node_modules", ".git", "dist", "build", ".next", "out"]);
|
|
4112
4201
|
var MAX_SCAN_ENTRIES = 500;
|
|
4113
4202
|
function inferExtensionFromDirectory(directory) {
|
|
@@ -4125,7 +4214,7 @@ function inferExtensionFromDirectory(directory) {
|
|
|
4125
4214
|
for (const entry of entries) {
|
|
4126
4215
|
if (scanned >= MAX_SCAN_ENTRIES)
|
|
4127
4216
|
return;
|
|
4128
|
-
const fullPath =
|
|
4217
|
+
const fullPath = join7(dir, entry);
|
|
4129
4218
|
let stat;
|
|
4130
4219
|
try {
|
|
4131
4220
|
stat = lstatSync5(fullPath);
|
|
@@ -4300,7 +4389,7 @@ async function executeLspDiagnostics(params, signal) {
|
|
|
4300
4389
|
const filePath = requireString(params, "filePath");
|
|
4301
4390
|
const severity = severityFilter(params);
|
|
4302
4391
|
try {
|
|
4303
|
-
const absPath =
|
|
4392
|
+
const absPath = resolveReadablePathInsideContext(filePath);
|
|
4304
4393
|
if (isDirectoryPath(absPath)) {
|
|
4305
4394
|
const extension = inferExtensionFromDirectory(absPath);
|
|
4306
4395
|
if (!extension) {
|
|
@@ -4329,7 +4418,7 @@ async function executeLspDiagnostics(params, signal) {
|
|
|
4329
4418
|
};
|
|
4330
4419
|
return text(output2.output, details2);
|
|
4331
4420
|
}
|
|
4332
|
-
const result = await withLspClient(filePath, async (client) => client.diagnostics(
|
|
4421
|
+
const result = await withLspClient(filePath, async (client, _workspaceRoot, resolvedFilePath) => client.diagnostics(resolvedFilePath, signal), "diagnostics", clientOptions(signal));
|
|
4333
4422
|
if (result.transientError) {
|
|
4334
4423
|
const message = result.transientError.message;
|
|
4335
4424
|
const details2 = {
|
|
@@ -4404,7 +4493,7 @@ async function executeLspGotoDefinition(params, signal) {
|
|
|
4404
4493
|
const line = requireNumber(params, "line");
|
|
4405
4494
|
const character = requireNumber(params, "character");
|
|
4406
4495
|
try {
|
|
4407
|
-
const result = await withLspClient(filePath, async (client) => client.definition(
|
|
4496
|
+
const result = await withLspClient(filePath, async (client, _workspaceRoot, resolvedFilePath) => client.definition(resolvedFilePath, line, character, signal), "definition", clientOptions(signal));
|
|
4408
4497
|
const locations = !result ? [] : Array.isArray(result) ? result : [result];
|
|
4409
4498
|
const details = { filePath, line, character, locations };
|
|
4410
4499
|
if (locations.length === 0)
|
|
@@ -4429,7 +4518,7 @@ async function executeLspFindReferences(params, signal) {
|
|
|
4429
4518
|
const character = requireNumber(params, "character");
|
|
4430
4519
|
const includeDeclaration = optionalBoolean(params, "includeDeclaration") ?? true;
|
|
4431
4520
|
try {
|
|
4432
|
-
const result = await withLspClient(filePath, async (client) => client.references(
|
|
4521
|
+
const result = await withLspClient(filePath, async (client, _workspaceRoot, resolvedFilePath) => client.references(resolvedFilePath, line, character, includeDeclaration, signal), "references", clientOptions(signal));
|
|
4433
4522
|
const references = Array.isArray(result) ? result : [];
|
|
4434
4523
|
const total = references.length;
|
|
4435
4524
|
const truncated = total > DEFAULT_MAX_REFERENCES;
|
|
@@ -4471,7 +4560,7 @@ async function executeLspPrepareRename(params, signal) {
|
|
|
4471
4560
|
const line = requireNumber(params, "line");
|
|
4472
4561
|
const character = requireNumber(params, "character");
|
|
4473
4562
|
try {
|
|
4474
|
-
const result = await withLspClient(filePath, async (client) => client.prepareRename(
|
|
4563
|
+
const result = await withLspClient(filePath, async (client, _workspaceRoot, resolvedFilePath) => client.prepareRename(resolvedFilePath, line, character, signal), "prepareRename", clientOptions(signal));
|
|
4475
4564
|
const details = { filePath, line, character, result };
|
|
4476
4565
|
return text(formatPrepareRenameResult(result), details);
|
|
4477
4566
|
} catch (error) {
|
|
@@ -4492,7 +4581,7 @@ async function executeLspRename(params, signal) {
|
|
|
4492
4581
|
const character = requireNumber(params, "character");
|
|
4493
4582
|
const newName = requireString(params, "newName");
|
|
4494
4583
|
try {
|
|
4495
|
-
const result = await withLspClient(filePath, async (client) => client.rename(
|
|
4584
|
+
const result = await withLspClient(filePath, async (client, _workspaceRoot, resolvedFilePath) => client.rename(resolvedFilePath, line, character, newName, signal), "rename", clientOptions(signal));
|
|
4496
4585
|
const details = { filePath, line, character, newName, apply: result.apply, edit: result.edit };
|
|
4497
4586
|
return text(formatApplyResult(result.apply), details, !result.apply.success);
|
|
4498
4587
|
} catch (error) {
|
|
@@ -4572,7 +4661,7 @@ async function executeLspSymbols(params, signal) {
|
|
|
4572
4661
|
const symbols2 = await withLspClient(filePath, async (client) => client.workspaceSymbols(query, signal), "workspaceSymbols", clientOptions(signal));
|
|
4573
4662
|
return formatSymbolsResult(filePath, scope, symbols2, limit, query);
|
|
4574
4663
|
}
|
|
4575
|
-
const symbols = await withLspClient(filePath, async (client) => client.documentSymbols(
|
|
4664
|
+
const symbols = await withLspClient(filePath, async (client, _workspaceRoot, resolvedFilePath) => client.documentSymbols(resolvedFilePath, signal), "documentSymbols", clientOptions(signal));
|
|
4576
4665
|
return formatSymbolsResult(filePath, scope, symbols, limit);
|
|
4577
4666
|
} catch (error) {
|
|
4578
4667
|
const query = optionalString(params, "query");
|
|
@@ -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.11) 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.11",
|
|
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");
|
|
@@ -5551,11 +5551,12 @@ var OmoCodegraphSettingsSchema = OmoCodegraphSettingsLayerSchema.extend({
|
|
|
5551
5551
|
|
|
5552
5552
|
// ../../omo-config-core/src/schema/memory.ts
|
|
5553
5553
|
var OmoMemoryReflectionTriggerSchema = object({
|
|
5554
|
-
step_count: number2().int().nonnegative().default(
|
|
5554
|
+
step_count: number2().int().nonnegative().default(25),
|
|
5555
5555
|
on_compaction: boolean2().default(true)
|
|
5556
5556
|
}).strict();
|
|
5557
5557
|
var OmoMemoryReflectionSchema = object({
|
|
5558
|
-
|
|
5558
|
+
enabled: boolean2().default(true),
|
|
5559
|
+
trigger: OmoMemoryReflectionTriggerSchema.default({ step_count: 25, on_compaction: true }),
|
|
5559
5560
|
merge: _enum(["auto", "integration"]).default("auto"),
|
|
5560
5561
|
category: string2().min(1).default("quick"),
|
|
5561
5562
|
timeout_minutes: number2().int().positive().default(15),
|
|
@@ -5568,11 +5569,36 @@ var OmoMemorySyncSchema = object({
|
|
|
5568
5569
|
var OmoMemorySearchSchema = object({
|
|
5569
5570
|
enabled: boolean2().default(true)
|
|
5570
5571
|
}).strict();
|
|
5572
|
+
var OmoMemoryNudgeSchema = object({
|
|
5573
|
+
enabled: boolean2().default(true),
|
|
5574
|
+
every_user_turns: number2().int().min(1).default(10)
|
|
5575
|
+
}).strict();
|
|
5576
|
+
var OmoMemoryFactsSchema = object({
|
|
5577
|
+
enabled: boolean2().default(true),
|
|
5578
|
+
debounce_settles: number2().int().min(1).default(4)
|
|
5579
|
+
}).strict();
|
|
5580
|
+
var OmoMemoryDreamSchema = object({
|
|
5581
|
+
enabled: boolean2().default(true),
|
|
5582
|
+
idle_minutes: number2().int().min(0).default(30),
|
|
5583
|
+
min_hours_between: number2().int().min(1).default(24),
|
|
5584
|
+
shutdown_launch: boolean2().default(true),
|
|
5585
|
+
auto_select_max: number2().int().min(1).max(10).default(5),
|
|
5586
|
+
auto_select_max_chars: number2().int().min(1e4).default(150000)
|
|
5587
|
+
}).strict();
|
|
5588
|
+
var OmoMemoryPeopleSchema = object({
|
|
5589
|
+
enabled: boolean2().default(true),
|
|
5590
|
+
max_entries: number2().int().min(1).max(100).default(40),
|
|
5591
|
+
max_entry_chars: number2().int().min(50).max(500).default(200)
|
|
5592
|
+
}).strict();
|
|
5593
|
+
var OmoMemorySoulSchema = object({
|
|
5594
|
+
edit_notice: boolean2().default(true)
|
|
5595
|
+
}).strict();
|
|
5571
5596
|
var OmoMemoryReflectionTriggerLayerSchema = object({
|
|
5572
5597
|
step_count: number2().int().nonnegative().optional(),
|
|
5573
5598
|
on_compaction: boolean2().optional()
|
|
5574
5599
|
}).strict();
|
|
5575
5600
|
var OmoMemoryReflectionLayerSchema = object({
|
|
5601
|
+
enabled: boolean2().optional(),
|
|
5576
5602
|
trigger: OmoMemoryReflectionTriggerLayerSchema.optional(),
|
|
5577
5603
|
merge: _enum(["auto", "integration"]).optional(),
|
|
5578
5604
|
category: string2().min(1).optional(),
|
|
@@ -5586,10 +5612,39 @@ var OmoMemorySyncLayerSchema = object({
|
|
|
5586
5612
|
var OmoMemorySearchLayerSchema = object({
|
|
5587
5613
|
enabled: boolean2().optional()
|
|
5588
5614
|
}).strict();
|
|
5615
|
+
var OmoMemoryNudgeLayerSchema = object({
|
|
5616
|
+
enabled: boolean2().optional(),
|
|
5617
|
+
every_user_turns: number2().int().min(1).optional()
|
|
5618
|
+
}).strict();
|
|
5619
|
+
var OmoMemoryFactsLayerSchema = object({
|
|
5620
|
+
enabled: boolean2().optional(),
|
|
5621
|
+
debounce_settles: number2().int().min(1).optional()
|
|
5622
|
+
}).strict();
|
|
5623
|
+
var OmoMemoryDreamLayerSchema = object({
|
|
5624
|
+
enabled: boolean2().optional(),
|
|
5625
|
+
idle_minutes: number2().int().min(0).optional(),
|
|
5626
|
+
min_hours_between: number2().int().min(1).optional(),
|
|
5627
|
+
shutdown_launch: boolean2().optional(),
|
|
5628
|
+
auto_select_max: number2().int().min(1).max(10).optional(),
|
|
5629
|
+
auto_select_max_chars: number2().int().min(1e4).optional()
|
|
5630
|
+
}).strict();
|
|
5631
|
+
var OmoMemoryPeopleLayerSchema = object({
|
|
5632
|
+
enabled: boolean2().optional(),
|
|
5633
|
+
max_entries: number2().int().min(1).max(100).optional(),
|
|
5634
|
+
max_entry_chars: number2().int().min(50).max(500).optional()
|
|
5635
|
+
}).strict();
|
|
5636
|
+
var OmoMemorySoulLayerSchema = object({
|
|
5637
|
+
edit_notice: boolean2().optional()
|
|
5638
|
+
}).strict();
|
|
5589
5639
|
var OmoMemoryAgentOverridesSchema = object({
|
|
5590
5640
|
enabled: boolean2().optional(),
|
|
5591
5641
|
agent: string2().min(1).optional(),
|
|
5592
5642
|
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
5643
|
+
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
5644
|
+
facts: OmoMemoryFactsLayerSchema.optional(),
|
|
5645
|
+
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
5646
|
+
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
5647
|
+
soul: OmoMemorySoulLayerSchema.optional(),
|
|
5593
5648
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
5594
5649
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
5595
5650
|
compile_warn_tokens: number2().int().positive().optional()
|
|
@@ -5597,13 +5652,27 @@ var OmoMemoryAgentOverridesSchema = object({
|
|
|
5597
5652
|
var OmoMemorySettingsSchema = object({
|
|
5598
5653
|
enabled: boolean2().default(true),
|
|
5599
5654
|
agent: string2().min(1).default("auto"),
|
|
5655
|
+
tool_exposure: _enum(["direct", "search"]).default("direct"),
|
|
5600
5656
|
reflection: OmoMemoryReflectionSchema.default({
|
|
5601
|
-
|
|
5657
|
+
enabled: true,
|
|
5658
|
+
trigger: { step_count: 25, on_compaction: true },
|
|
5602
5659
|
merge: "auto",
|
|
5603
5660
|
category: "quick",
|
|
5604
5661
|
timeout_minutes: 15,
|
|
5605
5662
|
sandbox: "auto"
|
|
5606
5663
|
}),
|
|
5664
|
+
nudge: OmoMemoryNudgeSchema.default({ enabled: true, every_user_turns: 10 }),
|
|
5665
|
+
facts: OmoMemoryFactsSchema.default({ enabled: true, debounce_settles: 4 }),
|
|
5666
|
+
dream: OmoMemoryDreamSchema.default({
|
|
5667
|
+
enabled: true,
|
|
5668
|
+
idle_minutes: 30,
|
|
5669
|
+
min_hours_between: 24,
|
|
5670
|
+
shutdown_launch: true,
|
|
5671
|
+
auto_select_max: 5,
|
|
5672
|
+
auto_select_max_chars: 150000
|
|
5673
|
+
}),
|
|
5674
|
+
people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
|
|
5675
|
+
soul: OmoMemorySoulSchema.default({ edit_notice: true }),
|
|
5607
5676
|
sync: OmoMemorySyncSchema.default({ enabled: true }),
|
|
5608
5677
|
search: OmoMemorySearchSchema.default({ enabled: true }),
|
|
5609
5678
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
@@ -5612,7 +5681,13 @@ var OmoMemorySettingsSchema = object({
|
|
|
5612
5681
|
var OmoMemorySettingsLayerSchema = object({
|
|
5613
5682
|
enabled: boolean2().optional(),
|
|
5614
5683
|
agent: string2().min(1).optional(),
|
|
5684
|
+
tool_exposure: _enum(["direct", "search"]).optional(),
|
|
5615
5685
|
reflection: OmoMemoryReflectionLayerSchema.optional(),
|
|
5686
|
+
nudge: OmoMemoryNudgeLayerSchema.optional(),
|
|
5687
|
+
facts: OmoMemoryFactsLayerSchema.optional(),
|
|
5688
|
+
dream: OmoMemoryDreamLayerSchema.optional(),
|
|
5689
|
+
people: OmoMemoryPeopleLayerSchema.optional(),
|
|
5690
|
+
soul: OmoMemorySoulLayerSchema.optional(),
|
|
5616
5691
|
sync: OmoMemorySyncLayerSchema.optional(),
|
|
5617
5692
|
search: OmoMemorySearchLayerSchema.optional(),
|
|
5618
5693
|
compile_warn_tokens: number2().int().positive().optional(),
|
|
@@ -5651,6 +5726,16 @@ var OmoTaskTeamSettingsSchema = object({
|
|
|
5651
5726
|
var OmoTaskWarningsSchema = object({
|
|
5652
5727
|
unavailable_categories: boolean2().default(true)
|
|
5653
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();
|
|
5654
5739
|
var OmoTaskSettingsSchema = object({
|
|
5655
5740
|
default_execution_mode: _enum(["in-process", "process"]).default("in-process"),
|
|
5656
5741
|
default_concurrency: number2().int().positive().default(5),
|
|
@@ -5668,7 +5753,18 @@ var OmoTaskSettingsSchema = object({
|
|
|
5668
5753
|
max_members: 8,
|
|
5669
5754
|
max_parallel_members: 4,
|
|
5670
5755
|
max_wall_clock_minutes: 120
|
|
5671
|
-
})
|
|
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()
|
|
5672
5768
|
}).strict();
|
|
5673
5769
|
var OmoTaskWaitLayerSchema = object({
|
|
5674
5770
|
min_ms: number2().int().positive().optional(),
|
|
@@ -5696,7 +5792,8 @@ var OmoTaskSettingsLayerSchema = object({
|
|
|
5696
5792
|
resume_children: boolean2().optional(),
|
|
5697
5793
|
warnings: OmoTaskWarningsLayerSchema.optional(),
|
|
5698
5794
|
wait: OmoTaskWaitLayerSchema.optional(),
|
|
5699
|
-
team: OmoTaskTeamSettingsLayerSchema.optional()
|
|
5795
|
+
team: OmoTaskTeamSettingsLayerSchema.optional(),
|
|
5796
|
+
dag: OmoTaskDagSettingsLayerSchema.optional()
|
|
5700
5797
|
}).strict();
|
|
5701
5798
|
function resolveOmoTaskSettings(input, resolveParallelism = availableParallelism) {
|
|
5702
5799
|
const record2 = record(string2(), unknown()).parse(input);
|
|
@@ -5753,6 +5850,15 @@ var OmoTeamSpecLayerSchema = OmoTeamSpecBaseSchema.partial();
|
|
|
5753
5850
|
var OmoTeamsConfigSchema = record(string2(), OmoTeamSpecSchema);
|
|
5754
5851
|
var OmoTeamsConfigLayerSchema = record(string2(), OmoTeamSpecLayerSchema);
|
|
5755
5852
|
|
|
5853
|
+
// ../../omo-config-core/src/schema/telemetry.ts
|
|
5854
|
+
var OmoTelemetrySettingsShape = {
|
|
5855
|
+
enabled: boolean2()
|
|
5856
|
+
};
|
|
5857
|
+
var OmoTelemetrySettingsLayerSchema = object(OmoTelemetrySettingsShape).partial().strict();
|
|
5858
|
+
var OmoTelemetrySettingsSchema = OmoTelemetrySettingsLayerSchema.extend({
|
|
5859
|
+
enabled: boolean2().default(true)
|
|
5860
|
+
}).strict();
|
|
5861
|
+
|
|
5756
5862
|
// ../../omo-config-core/src/schema/config.ts
|
|
5757
5863
|
var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
|
|
5758
5864
|
var OmoTypedHarnessConfigSchema = object({
|
|
@@ -5762,7 +5868,8 @@ var OmoTypedHarnessConfigSchema = object({
|
|
|
5762
5868
|
task: OmoTaskSettingsLayerSchema.optional(),
|
|
5763
5869
|
teams: OmoTeamsConfigLayerSchema.optional(),
|
|
5764
5870
|
models: OmoModelCatalogLayerSchema.optional(),
|
|
5765
|
-
memory: OmoMemorySettingsLayerSchema.optional()
|
|
5871
|
+
memory: OmoMemorySettingsLayerSchema.optional(),
|
|
5872
|
+
telemetry: OmoTelemetrySettingsLayerSchema.optional()
|
|
5766
5873
|
}).strict();
|
|
5767
5874
|
var OmoConfigProfileSchema = object({
|
|
5768
5875
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
@@ -5772,6 +5879,7 @@ var OmoConfigProfileSchema = object({
|
|
|
5772
5879
|
teams: OmoTeamsConfigLayerSchema.optional(),
|
|
5773
5880
|
models: OmoModelCatalogLayerSchema.optional(),
|
|
5774
5881
|
memory: OmoMemorySettingsLayerSchema.optional(),
|
|
5882
|
+
telemetry: OmoTelemetrySettingsLayerSchema.optional(),
|
|
5775
5883
|
"[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
|
|
5776
5884
|
"[senpi]": OmoTypedHarnessConfigSchema.optional(),
|
|
5777
5885
|
"[codex]": OmoTypedHarnessConfigSchema.optional()
|
|
@@ -5785,6 +5893,7 @@ var OmoConfigSchema = object({
|
|
|
5785
5893
|
teams: OmoTeamsConfigSchema.optional(),
|
|
5786
5894
|
models: OmoModelCatalogSchema.optional(),
|
|
5787
5895
|
memory: OmoMemorySettingsSchema.optional(),
|
|
5896
|
+
telemetry: OmoTelemetrySettingsSchema.optional(),
|
|
5788
5897
|
"[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
|
|
5789
5898
|
"[senpi]": OmoTypedHarnessConfigSchema.optional(),
|
|
5790
5899
|
"[codex]": OmoTypedHarnessConfigSchema.optional(),
|
|
@@ -5801,6 +5910,7 @@ var OmoConfigLayerSchema = object({
|
|
|
5801
5910
|
teams: OmoTeamsConfigLayerSchema.optional(),
|
|
5802
5911
|
models: OmoModelCatalogLayerSchema.optional(),
|
|
5803
5912
|
memory: OmoMemorySettingsLayerSchema.optional(),
|
|
5913
|
+
telemetry: OmoTelemetrySettingsLayerSchema.optional(),
|
|
5804
5914
|
"[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
|
|
5805
5915
|
"[senpi]": OmoTypedHarnessConfigSchema.optional(),
|
|
5806
5916
|
"[codex]": OmoTypedHarnessConfigSchema.optional(),
|