lazycodex-ai 5.1.40 → 5.1.42

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.
Files changed (118) hide show
  1. package/README.de.md +118 -0
  2. package/README.es.md +118 -0
  3. package/README.fr.md +118 -0
  4. package/README.it.md +118 -0
  5. package/README.ja.md +2 -1
  6. package/README.ko.md +2 -1
  7. package/README.md +3 -2
  8. package/README.pt-br.md +118 -0
  9. package/README.ru.md +2 -1
  10. package/README.zh-cn.md +2 -1
  11. package/dist/cli/index.js +115 -27
  12. package/dist/cli/service-auth/index.d.ts +3 -0
  13. package/dist/cli-node/index.js +115 -27
  14. package/package.json +1 -1
  15. package/packages/lsp-daemon/dist/cli.js +10 -0
  16. package/packages/lsp-daemon/dist/client.js +10 -0
  17. package/packages/lsp-daemon/dist/index.js +10 -0
  18. package/packages/lsp-tools-mcp/dist/cli.js +10 -0
  19. package/packages/lsp-tools-mcp/dist/lsp/manager.js +10 -0
  20. package/packages/lsp-tools-mcp/dist/mcp.js +10 -0
  21. package/packages/lsp-tools-mcp/dist/tools.js +10 -0
  22. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  23. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +84 -9
  24. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  29. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  30. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  31. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  32. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  33. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +10 -0
  34. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  35. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  36. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  37. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  38. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  39. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  40. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  41. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  42. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  43. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  44. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  45. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  46. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  47. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  51. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  52. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  53. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  54. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  55. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  56. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  57. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  58. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  59. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  60. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  61. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  62. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  63. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  64. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  69. package/packages/omo-codex/plugin/package-lock.json +12 -12
  70. package/packages/omo-codex/plugin/package.json +1 -1
  71. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  72. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +6 -6
  73. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +2 -2
  74. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +2 -2
  75. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +22 -13
  76. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/findings.ts +7 -6
  77. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/lint.ts +18 -24
  78. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/markup.ts +14 -7
  79. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/selector.ts +5 -1
  80. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +32 -14
  81. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/check-accent-stripes.ts +1 -1
  82. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +1 -0
  83. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +1 -1
  84. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +5 -2
  85. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +2 -2
  86. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.css +4 -0
  87. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.tsx +8 -0
  88. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/{negative → positive}/flat-stripe-side.tsx +3 -1
  89. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/report-callouts.html +8 -0
  90. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/square-surfaces.css +8 -0
  91. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +10 -2
  92. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +10 -0
  93. package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +23 -0
  94. package/packages/omo-codex/scripts/install-dist/install-local.mjs +86 -11
  95. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  96. package/packages/shared-skills/skills/frontend/SKILL.md +6 -6
  97. package/packages/shared-skills/skills/frontend/references/design/README.md +2 -2
  98. package/packages/shared-skills/skills/frontend/references/perfection/README.md +2 -2
  99. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/declarations.ts +22 -13
  100. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/findings.ts +7 -6
  101. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/lint.ts +18 -24
  102. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/markup.ts +14 -7
  103. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/selector.ts +5 -1
  104. package/packages/shared-skills/skills/frontend/scripts/perfection/accent-stripes/tailwind.ts +32 -14
  105. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.test.ts +15 -6
  106. package/packages/shared-skills/skills/frontend/scripts/perfection/check-accent-stripes.ts +1 -1
  107. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/inline-ok.tsx +1 -0
  108. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/neutral-and-flat.css +1 -1
  109. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/tailwind-ok.tsx +5 -2
  110. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/negative/uniform-and-rings.css +2 -2
  111. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.css +4 -0
  112. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/accent-outlines.tsx +8 -0
  113. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/{negative → positive}/flat-stripe-side.tsx +3 -1
  114. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/report-callouts.html +8 -0
  115. package/packages/shared-skills/skills/frontend/scripts/perfection/fixtures/accent-stripes/positive/square-surfaces.css +8 -0
  116. package/packages/shared-skills/skills/ulw-research/SKILL.md +10 -2
  117. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +10 -0
  118. package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +23 -0
@@ -7123,6 +7123,19 @@ var OmoHarnessIdSchema = _enum(OMO_CONFIG_HARNESS_IDS);
7123
7123
  var OMO_CONFIG_LEGACY_HARNESS_ALIASES = { senpi: "native" };
7124
7124
  var OMO_CONFIG_LEGACY_HARNESS_IDS = Object.keys(OMO_CONFIG_LEGACY_HARNESS_ALIASES);
7125
7125
 
7126
+ // ../../omo-config-core/src/schema/memory-agreements.ts
7127
+ var OMO_MEMORY_AGREEMENTS_DEFAULTS = { enabled: true, needs_human_threshold: 3, max_items: 64 };
7128
+ var OmoMemoryAgreementsSchema = object({
7129
+ enabled: boolean2().default(OMO_MEMORY_AGREEMENTS_DEFAULTS.enabled),
7130
+ needs_human_threshold: number2().int().min(1).default(OMO_MEMORY_AGREEMENTS_DEFAULTS.needs_human_threshold),
7131
+ max_items: number2().int().min(8).max(256).default(OMO_MEMORY_AGREEMENTS_DEFAULTS.max_items)
7132
+ }).strict();
7133
+ var OmoMemoryAgreementsLayerSchema = object({
7134
+ enabled: boolean2().optional(),
7135
+ needs_human_threshold: number2().int().min(1).optional(),
7136
+ max_items: number2().int().min(8).max(256).optional()
7137
+ }).strict();
7138
+
7126
7139
  // ../../omo-config-core/src/schema/memory.ts
7127
7140
  var OmoMemoryReflectionTriggerSchema = object({
7128
7141
  step_count: number2().int().nonnegative().default(25),
@@ -7266,6 +7279,7 @@ var OmoMemoryAgentOverridesSchema = object({
7266
7279
  facts: OmoMemoryFactsLayerSchema.optional(),
7267
7280
  dream: OmoMemoryDreamLayerSchema.optional(),
7268
7281
  people: OmoMemoryPeopleLayerSchema.optional(),
7282
+ agreements: OmoMemoryAgreementsLayerSchema.optional(),
7269
7283
  soul: OmoMemorySoulLayerSchema.optional(),
7270
7284
  write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
7271
7285
  sync: OmoMemorySyncLayerSchema.optional(),
@@ -7274,9 +7288,11 @@ var OmoMemoryAgentOverridesSchema = object({
7274
7288
  projection: OmoMemoryProjectionLayerSchema.optional(),
7275
7289
  compile_warn_tokens: number2().int().positive().optional()
7276
7290
  }).strict();
7291
+ var OmoMemoryAutoIdentitySchema = _enum(["path", "git"]);
7277
7292
  var OmoMemorySettingsSchema = object({
7278
7293
  enabled: boolean2().default(true),
7279
7294
  agent: string2().min(1).default("auto"),
7295
+ auto_identity: OmoMemoryAutoIdentitySchema.default("path"),
7280
7296
  reflection: OmoMemoryReflectionSchema.default({
7281
7297
  enabled: true,
7282
7298
  trigger: { step_count: 25, on_compaction: true },
@@ -7296,6 +7312,7 @@ var OmoMemorySettingsSchema = object({
7296
7312
  auto_select_max_chars: 150000
7297
7313
  }),
7298
7314
  people: OmoMemoryPeopleSchema.default({ enabled: true, max_entries: 40, max_entry_chars: 200 }),
7315
+ agreements: OmoMemoryAgreementsSchema.default(OMO_MEMORY_AGREEMENTS_DEFAULTS),
7299
7316
  soul: OmoMemorySoulSchema.default({ edit_notice: true }),
7300
7317
  write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
7301
7318
  sync: OmoMemorySyncSchema.default({ enabled: true }),
@@ -7317,11 +7334,13 @@ var OmoMemorySettingsSchema = object({
7317
7334
  var OmoMemorySettingsLayerSchema = object({
7318
7335
  enabled: boolean2().optional(),
7319
7336
  agent: string2().min(1).optional(),
7337
+ auto_identity: OmoMemoryAutoIdentitySchema.optional(),
7320
7338
  reflection: OmoMemoryReflectionLayerSchema.optional(),
7321
7339
  nudge: OmoMemoryNudgeLayerSchema.optional(),
7322
7340
  facts: OmoMemoryFactsLayerSchema.optional(),
7323
7341
  dream: OmoMemoryDreamLayerSchema.optional(),
7324
7342
  people: OmoMemoryPeopleLayerSchema.optional(),
7343
+ agreements: OmoMemoryAgreementsLayerSchema.optional(),
7325
7344
  soul: OmoMemorySoulLayerSchema.optional(),
7326
7345
  write_notice: OmoMemoryWriteNoticeLayerSchema.optional(),
7327
7346
  sync: OmoMemorySyncLayerSchema.optional(),
@@ -7354,6 +7373,7 @@ function isRecord6(value) {
7354
7373
  }
7355
7374
  var OmoModelProfileInputSchema = object({
7356
7375
  display_name: string2().optional(),
7376
+ caution: string2().optional(),
7357
7377
  family: _enum(["daily", "geeky"]).optional(),
7358
7378
  tier: _enum(["normal", "heavy"]).optional(),
7359
7379
  models: array(union([string2(), OmoFallbackModelObjectSchema])).optional()
@@ -7625,6 +7645,7 @@ var OmoGatewaySectionSchema = record(string2(), unknown()).describe("Chat-surfac
7625
7645
  // ../../omo-config-core/src/schema/config.ts
7626
7646
  var OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
7627
7647
  var OmoDisabledSkillsSchema = array(string2());
7648
+ var OmoExcludedModelsSchema = array(string2());
7628
7649
  var OmoTypedHarnessConfigSchema = object({
7629
7650
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
7630
7651
  gateway: OmoGatewaySectionSchema.optional(),
@@ -7640,7 +7661,8 @@ var OmoTypedHarnessConfigSchema = object({
7640
7661
  telemetry: OmoTelemetrySettingsLayerSchema.optional(),
7641
7662
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
7642
7663
  computer: OmoComputerSettingsLayerSchema.optional(),
7643
- disabled_skills: OmoDisabledSkillsSchema.optional()
7664
+ disabled_skills: OmoDisabledSkillsSchema.optional(),
7665
+ exclude_models: OmoExcludedModelsSchema.optional()
7644
7666
  }).strict();
7645
7667
  var OmoConfigProfileSchema = object({
7646
7668
  formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
@@ -7657,6 +7679,7 @@ var OmoConfigProfileSchema = object({
7657
7679
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
7658
7680
  computer: OmoComputerSettingsLayerSchema.optional(),
7659
7681
  disabled_skills: OmoDisabledSkillsSchema.optional(),
7682
+ exclude_models: OmoExcludedModelsSchema.optional(),
7660
7683
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
7661
7684
  "[native]": OmoTypedHarnessConfigSchema.optional(),
7662
7685
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -7679,6 +7702,7 @@ var OmoConfigSchema = object({
7679
7702
  side_panel: OmoSidePanelSettingsSchema.optional(),
7680
7703
  computer: OmoComputerSettingsSchema.optional(),
7681
7704
  disabled_skills: OmoDisabledSkillsSchema.optional(),
7705
+ exclude_models: OmoExcludedModelsSchema.optional(),
7682
7706
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
7683
7707
  "[native]": OmoTypedHarnessConfigSchema.optional(),
7684
7708
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -7704,6 +7728,7 @@ var OmoConfigLayerSchema = object({
7704
7728
  side_panel: OmoSidePanelSettingsLayerSchema.optional(),
7705
7729
  computer: OmoComputerSettingsLayerSchema.optional(),
7706
7730
  disabled_skills: OmoDisabledSkillsSchema.optional(),
7731
+ exclude_models: OmoExcludedModelsSchema.optional(),
7707
7732
  "[opencode]": OmoOpenCodeHarnessConfigSchema.optional(),
7708
7733
  "[native]": OmoTypedHarnessConfigSchema.optional(),
7709
7734
  "[senpi]": OmoTypedHarnessConfigSchema.optional(),
@@ -7827,6 +7852,50 @@ var DEFAULT_READ_FILE_SYSTEM = {
7827
7852
  realpathSync
7828
7853
  };
7829
7854
 
7855
+ // ../../omo-config-core/src/loader/disabled-skills.ts
7856
+ function toRecord(value) {
7857
+ if (value === null || typeof value !== "object" || Array.isArray(value))
7858
+ return;
7859
+ return value;
7860
+ }
7861
+ function namesAt(record, key) {
7862
+ const value = record?.[key];
7863
+ if (!Array.isArray(value))
7864
+ return [];
7865
+ return value.filter((entry) => typeof entry === "string" && entry.trim() !== "");
7866
+ }
7867
+ function harnessBlockKeys(harness) {
7868
+ const canonical = canonicalHarnessName(harness);
7869
+ const legacy = Object.entries(OMO_CONFIG_LEGACY_HARNESS_ALIASES).filter(([, target]) => target === canonical).map(([name]) => harnessBlockKey(name));
7870
+ return [harnessBlockKey(canonical), ...legacy];
7871
+ }
7872
+ function scopesOf(config, harness) {
7873
+ if (harness === undefined)
7874
+ return [config];
7875
+ return [config, ...harnessBlockKeys(harness).map((key) => toRecord(config[key]))];
7876
+ }
7877
+ function collectExcludedModels(options) {
7878
+ return collectUnionedList("exclude_models", options);
7879
+ }
7880
+ function collectUnionedList(key, options) {
7881
+ const names = new Set;
7882
+ for (const layer of options.layers) {
7883
+ const config = toRecord(layer.config);
7884
+ if (config === undefined)
7885
+ continue;
7886
+ const profile = options.profile === undefined ? undefined : toRecord(toRecord(config["profiles"])?.[options.profile]);
7887
+ const scopes = [
7888
+ ...scopesOf(config, options.harness),
7889
+ ...profile === undefined ? [] : scopesOf(profile, options.harness)
7890
+ ];
7891
+ for (const scope of scopes) {
7892
+ for (const name of namesAt(scope, key))
7893
+ names.add(name.trim());
7894
+ }
7895
+ }
7896
+ return [...names];
7897
+ }
7898
+
7830
7899
  // ../../../node_modules/.bun/jsonc-parser@3.3.1/node_modules/jsonc-parser/lib/esm/impl/scanner.js
7831
7900
  function createScanner(text, ignoreTrivia = false) {
7832
7901
  const len = text.length;
@@ -8899,7 +8968,7 @@ function stripUnrecognizedKeys(record, issues) {
8899
8968
  }
8900
8969
  return { issuePaths, stripped };
8901
8970
  }
8902
- function toRecord(value) {
8971
+ function toRecord2(value) {
8903
8972
  if (value === null || typeof value !== "object" || Array.isArray(value))
8904
8973
  return null;
8905
8974
  const record = {};
@@ -8914,7 +8983,7 @@ var validateLayerRecord = (record) => {
8914
8983
  };
8915
8984
  function validateConfigLayer(path, data) {
8916
8985
  const sanitized = sanitizeUnsafeKeys(data);
8917
- const record = toRecord(sanitized.value);
8986
+ const record = toRecord2(sanitized.value);
8918
8987
  const unsafeIssuePaths = sanitized.issues.flatMap((issue) => issue.keys.map((key) => [...issue.path, key].join(".")));
8919
8988
  const unsafeDiagnostics = unsafeIssuePaths.length === 0 ? [] : [{ kind: "unknown-keys", message: `Ignored unknown keys in ${path}: ${unsafeIssuePaths.join(", ")}`, path, issuePaths: unsafeIssuePaths }];
8920
8989
  const validation = OmoConfigLayerSchema.safeParse(sanitized.value);
@@ -9054,7 +9123,7 @@ function resolveOmoProfileName(options = {}) {
9054
9123
  const env = options.env ?? process.env;
9055
9124
  return profileName(options.profile) ?? profileName(env["OMO_PROFILE"]) ?? profileName(env["OCX_PROFILE"]) ?? profileNameFromOpenCodeConfigDir(env["OPENCODE_CONFIG_DIR"]);
9056
9125
  }
9057
- function toRecord2(value) {
9126
+ function toRecord3(value) {
9058
9127
  if (value === null || typeof value !== "object" || Array.isArray(value))
9059
9128
  return;
9060
9129
  return Object.fromEntries(Object.entries(value));
@@ -9075,13 +9144,13 @@ function harnessLayer(config, harness) {
9075
9144
  const legacyKeys = Object.entries(OMO_CONFIG_LEGACY_HARNESS_ALIASES).filter(([, target]) => target === canonical).map(([legacy]) => harnessBlockKey(legacy));
9076
9145
  let layer = {};
9077
9146
  for (const key of [...legacyKeys, harnessBlockKey(canonical)]) {
9078
- layer = mergeOmoConfigRecords(layer, toRecord2(config[key]) ?? {});
9147
+ layer = mergeOmoConfigRecords(layer, toRecord3(config[key]) ?? {});
9079
9148
  }
9080
9149
  return layer;
9081
9150
  }
9082
9151
  function resolveOmoConfigView(options) {
9083
- const profiles = toRecord2(options.config["profiles"]);
9084
- const profile = options.profile === undefined ? undefined : toRecord2(profiles?.[options.profile]);
9152
+ const profiles = toRecord3(options.config["profiles"]);
9153
+ const profile = options.profile === undefined ? undefined : toRecord3(profiles?.[options.profile]);
9085
9154
  const diagnostics = profile === undefined && options.profile !== undefined ? [{
9086
9155
  kind: "profile",
9087
9156
  message: `Activated omo profile "${options.profile}" does not exist; using the base configuration`,
@@ -9222,9 +9291,15 @@ function loadOmoConfig(options = {}) {
9222
9291
  });
9223
9292
  const finalInput = mergeOmoConfigRecords(DEFAULT_RAW_CONFIG, resolved.config);
9224
9293
  const finalConfig = OmoConfigSchema.safeParse(finalInput);
9294
+ const excludeModels = collectExcludedModels({
9295
+ layers,
9296
+ ...options.harness === undefined ? {} : { harness: options.harness },
9297
+ ...resolved.profile === undefined ? {} : { profile: resolved.profile }
9298
+ });
9299
+ const withExcludedModels = (config) => excludeModels.length === 0 ? config : { ...config, exclude_models: [...excludeModels] };
9225
9300
  if (finalConfig.success) {
9226
9301
  return {
9227
- config: stripResolutionControlKeys(finalConfig.data),
9302
+ config: withExcludedModels(stripResolutionControlKeys(finalConfig.data)),
9228
9303
  diagnostics: [...diagnostics, ...resolved.diagnostics],
9229
9304
  layers,
9230
9305
  ...resolved.profile === undefined ? {} : { profile: resolved.profile },
@@ -9237,7 +9312,7 @@ function loadOmoConfig(options = {}) {
9237
9312
  });
9238
9313
  if (pruned.ok) {
9239
9314
  return {
9240
- config: stripResolutionControlKeys(OmoConfigSchema.parse(pruned.config)),
9315
+ config: withExcludedModels(stripResolutionControlKeys(OmoConfigSchema.parse(pruned.config))),
9241
9316
  diagnostics: [...diagnostics, ...resolved.diagnostics, ...invalidValueDiagnostics(MERGED_OMO_CONFIG_PATH, pruned.dropped)],
9242
9317
  layers,
9243
9318
  ...resolved.profile === undefined ? {} : { profile: resolved.profile },
@@ -8,7 +8,7 @@
8
8
  "command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
9
9
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.40) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.42) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-bootstrap",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
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 post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.40) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.42) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -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.1.40) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.42) 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.1.40) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.42) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -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.1.40) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.42) 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.1.40",
3
+ "version": "5.1.42",
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.1.40",
4
- "inputDigest": "sha256:eaaf8bb00a532c1ad018f45d3d10f940405a9e73197aaea75389780b8a77fcaa",
3
+ "version": "5.1.42",
4
+ "inputDigest": "sha256:67783401245cfd4a937dfd08ba04aa96bff6ea9816e0f6caeca4d98722b2baec",
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": "e4d7664d4b1a19eb00e68e5a0f42ceae1195188a26e59217522c1d0de3854f54"
12
+ "sha256": "0775d5a52628cc6aeed25d5ff10fdf42f236b8058428d5120f278ce5157ad76a"
13
13
  },
14
14
  {
15
15
  "path": "codex-hook-cli.d.ts",
@@ -1146,6 +1146,13 @@ function validateCwd(cwd) {
1146
1146
  };
1147
1147
  }
1148
1148
  }
1149
+ function guardPipeErrors(stream, pipe) {
1150
+ stream.on("error", (error) => {
1151
+ if (stream.listenerCount("error") > 1)
1152
+ return;
1153
+ reportBestEffortCleanupError(`server ${pipe}`, error);
1154
+ });
1155
+ }
1149
1156
  function wrap(proc) {
1150
1157
  const exitedPromise = new Promise((resolve) => {
1151
1158
  proc.once("close", (code) => resolve(code ?? 0));
@@ -1154,6 +1161,9 @@ function wrap(proc) {
1154
1161
  if (!proc.stdin || !proc.stdout || !proc.stderr) {
1155
1162
  throw new LspProcessSpawnError("Spawned process is missing one of stdin/stdout/stderr pipes");
1156
1163
  }
1164
+ guardPipeErrors(proc.stdin, "stdin");
1165
+ guardPipeErrors(proc.stdout, "stdout");
1166
+ guardPipeErrors(proc.stderr, "stderr");
1157
1167
  return {
1158
1168
  stdin: proc.stdin,
1159
1169
  stdout: proc.stdout,
@@ -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.1.40) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.42) 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.1.40) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.42) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.40) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.42) 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.1.40) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.42) 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.1.40) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.42) 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.1.40) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.42) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -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.1.40) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.42) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.40) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.42) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
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",
@@ -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.1.40) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.42) 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.1.40",
3
+ "version": "5.1.42",
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",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.40) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.42) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex ulw-execute plans.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.40) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.1.42) Checking Ulw-Loop Steering"
11
11
  }
12
12
  ]
13
13
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use-spawn",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.40) Recording Spawn Admission"
23
+ "statusMessage": "(OmO 5.1.42) Recording Spawn Admission"
24
24
  }
25
25
  ]
26
26
  }
@@ -33,7 +33,7 @@
33
33
  "type": "command",
34
34
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
35
35
  "timeout": 5,
36
- "statusMessage": "(OmO 5.1.40) Enforcing Unlimited Ulw-Loop Budget"
36
+ "statusMessage": "(OmO 5.1.42) Enforcing Unlimited Ulw-Loop Budget"
37
37
  }
38
38
  ]
39
39
  },
@@ -44,7 +44,7 @@
44
44
  "type": "command",
45
45
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
46
46
  "timeout": 5,
47
- "statusMessage": "(OmO 5.1.40) Guarding Ulw-Loop Spawns"
47
+ "statusMessage": "(OmO 5.1.42) Guarding Ulw-Loop Spawns"
48
48
  }
49
49
  ]
50
50
  }
@@ -56,7 +56,7 @@
56
56
  "type": "command",
57
57
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
58
58
  "timeout": 10,
59
- "statusMessage": "(OmO 5.1.40) Checking Ulw-Loop Resume"
59
+ "statusMessage": "(OmO 5.1.42) Checking Ulw-Loop Resume"
60
60
  }
61
61
  ]
62
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "5.1.40",
3
+ "version": "5.1.42",
4
4
  "description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.40) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.1.42) Resetting Git Bash MCP Reminder",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.40) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.1.42) Resetting LSP Diagnostics Cache",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.40) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.1.42) Resetting Project Rule Cache",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 30,
10
- "statusMessage": "(OmO 5.1.40) Checking Comments",
10
+ "statusMessage": "(OmO 5.1.42) Checking Comments",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\comment-checker\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 60,
10
- "statusMessage": "(OmO 5.1.40) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.1.42) Checking LSP Diagnostics",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.40) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.1.42) Checking Thread Title Hygiene",
12
12
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
13
13
  }
14
14
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.40) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.1.42) Matching Project Rules",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],