oh-my-openagent 5.1.34 → 5.1.35
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/dist/cli/index.js +116 -45
- package/dist/cli-node/index.js +116 -45
- package/dist/index.js +14 -14
- package/dist/skills/browser/runtime/omowright/manifest.json +1 -1
- package/dist/skills/ulw-research/references/report-gates.md +1 -1
- package/dist/skills/ulw-research/scripts/gates-figures.mjs +22 -6
- package/dist/skills/ulw-research/scripts/gates-static.test.ts +13 -0
- package/dist/tui.js +13 -13
- package/package.json +13 -13
- 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/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 +2 -2
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +2 -1
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +2 -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/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-figures.mjs +22 -6
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +50 -3
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/ulw-research/references/report-gates.md +1 -1
- package/packages/shared-skills/skills/ulw-research/scripts/gates-figures.mjs +22 -6
- package/packages/shared-skills/skills/ulw-research/scripts/gates-static.test.ts +13 -0
package/dist/cli/index.js
CHANGED
|
@@ -2132,7 +2132,7 @@ var package_default;
|
|
|
2132
2132
|
var init_package = __esm(() => {
|
|
2133
2133
|
package_default = {
|
|
2134
2134
|
name: "oh-my-opencode",
|
|
2135
|
-
version: "5.1.
|
|
2135
|
+
version: "5.1.35",
|
|
2136
2136
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2137
2137
|
main: "./dist/index.js",
|
|
2138
2138
|
types: "dist/index.d.ts",
|
|
@@ -2368,18 +2368,18 @@ var init_package = __esm(() => {
|
|
|
2368
2368
|
typescript: "^7.0.2"
|
|
2369
2369
|
},
|
|
2370
2370
|
optionalDependencies: {
|
|
2371
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
2372
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
2373
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
2374
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
2375
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
2376
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
2377
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
2378
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
2379
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
2380
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
2381
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
2382
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
2371
|
+
"oh-my-opencode-darwin-arm64": "5.1.35",
|
|
2372
|
+
"oh-my-opencode-darwin-x64": "5.1.35",
|
|
2373
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.35",
|
|
2374
|
+
"oh-my-opencode-linux-arm64": "5.1.35",
|
|
2375
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.35",
|
|
2376
|
+
"oh-my-opencode-linux-x64": "5.1.35",
|
|
2377
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.35",
|
|
2378
|
+
"oh-my-opencode-linux-x64-musl": "5.1.35",
|
|
2379
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.35",
|
|
2380
|
+
"oh-my-opencode-windows-arm64": "5.1.35",
|
|
2381
|
+
"oh-my-opencode-windows-x64": "5.1.35",
|
|
2382
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.35"
|
|
2383
2383
|
},
|
|
2384
2384
|
overrides: {
|
|
2385
2385
|
hono: "^4.13.8",
|
|
@@ -82307,6 +82307,9 @@ var init_activity_state = __esm(() => {
|
|
|
82307
82307
|
capturedDaysByStateDir = new Map;
|
|
82308
82308
|
});
|
|
82309
82309
|
|
|
82310
|
+
// packages/telemetry-core/src/consent-gated-fetch.ts
|
|
82311
|
+
var init_consent_gated_fetch = () => {};
|
|
82312
|
+
|
|
82310
82313
|
// packages/telemetry-core/src/constants.ts
|
|
82311
82314
|
var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74", UNCONFIGURED_POSTHOG_API_KEY = "phc_REPLACE_ME_OMO_NATIVE";
|
|
82312
82315
|
|
|
@@ -82354,6 +82357,7 @@ function toDiagnosticRecord(input, now) {
|
|
|
82354
82357
|
timestamp: now.toISOString(),
|
|
82355
82358
|
event: input.event,
|
|
82356
82359
|
source: input.source,
|
|
82360
|
+
...input.count === undefined ? {} : { count: input.count },
|
|
82357
82361
|
...serializeError(input.error, input.errorKind)
|
|
82358
82362
|
};
|
|
82359
82363
|
}
|
|
@@ -82446,7 +82450,7 @@ function shouldDisableTelemetry(input) {
|
|
|
82446
82450
|
const env = input.env ?? process.env;
|
|
82447
82451
|
const globalPrefix = input.globalEnvPrefix ?? "OMO";
|
|
82448
82452
|
const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
|
|
82449
|
-
if (isDisableFlag(env["DO_NOT_TRACK"])) {
|
|
82453
|
+
if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
|
|
82450
82454
|
return true;
|
|
82451
82455
|
}
|
|
82452
82456
|
for (const prefix of prefixes) {
|
|
@@ -82478,6 +82482,47 @@ var init_env = __esm(() => {
|
|
|
82478
82482
|
SEND_OPT_OUT_VALUES = ["0", "false", "no", "yes"];
|
|
82479
82483
|
});
|
|
82480
82484
|
|
|
82485
|
+
// packages/telemetry-core/src/event-id.ts
|
|
82486
|
+
import { randomBytes as nodeRandomBytes } from "crypto";
|
|
82487
|
+
function createUuidV7Generator(source = {}) {
|
|
82488
|
+
const now = source.now ?? Date.now;
|
|
82489
|
+
const randomBytes = source.randomBytes ?? ((size) => new Uint8Array(nodeRandomBytes(size)));
|
|
82490
|
+
let lastMs = -1;
|
|
82491
|
+
let counter = 0;
|
|
82492
|
+
return () => {
|
|
82493
|
+
const random = randomBytes(10);
|
|
82494
|
+
const wallMs = Math.floor(now());
|
|
82495
|
+
if (wallMs > lastMs) {
|
|
82496
|
+
lastMs = wallMs;
|
|
82497
|
+
counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
|
|
82498
|
+
} else if (counter < MAX_COUNTER) {
|
|
82499
|
+
counter += 1;
|
|
82500
|
+
} else {
|
|
82501
|
+
lastMs += 1;
|
|
82502
|
+
counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
|
|
82503
|
+
}
|
|
82504
|
+
const bytes = new Uint8Array(16);
|
|
82505
|
+
let timestamp = lastMs;
|
|
82506
|
+
for (let index = 5;index >= 0; index -= 1) {
|
|
82507
|
+
bytes[index] = timestamp % 256;
|
|
82508
|
+
timestamp = Math.floor(timestamp / 256);
|
|
82509
|
+
}
|
|
82510
|
+
bytes[6] = 112 | counter >> 8;
|
|
82511
|
+
bytes[7] = counter & 255;
|
|
82512
|
+
bytes[8] = 128 | random[2] & 63;
|
|
82513
|
+
bytes.set(random.subarray(3, 10), 9);
|
|
82514
|
+
return formatUuid(bytes);
|
|
82515
|
+
};
|
|
82516
|
+
}
|
|
82517
|
+
function formatUuid(bytes) {
|
|
82518
|
+
const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
82519
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
82520
|
+
}
|
|
82521
|
+
var MAX_COUNTER = 4095, COUNTER_SEED_MASK = 2047, fallbackEventId;
|
|
82522
|
+
var init_event_id = __esm(() => {
|
|
82523
|
+
fallbackEventId = createUuidV7Generator();
|
|
82524
|
+
});
|
|
82525
|
+
|
|
82481
82526
|
// node_modules/.bun/posthog-node@5.52.4/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
82482
82527
|
import { dirname as dirname18, posix as posix7, sep as sep7 } from "path";
|
|
82483
82528
|
function createModulerModifier() {
|
|
@@ -92044,8 +92089,10 @@ var init_record_daily_active = () => {};
|
|
|
92044
92089
|
// packages/telemetry-core/src/index.ts
|
|
92045
92090
|
var init_src5 = __esm(() => {
|
|
92046
92091
|
init_activity_state();
|
|
92092
|
+
init_consent_gated_fetch();
|
|
92047
92093
|
init_diagnostics();
|
|
92048
92094
|
init_env();
|
|
92095
|
+
init_event_id();
|
|
92049
92096
|
init_events();
|
|
92050
92097
|
init_machine_id();
|
|
92051
92098
|
init_posthog_client();
|
|
@@ -92057,7 +92104,7 @@ var package_default2;
|
|
|
92057
92104
|
var init_package2 = __esm(() => {
|
|
92058
92105
|
package_default2 = {
|
|
92059
92106
|
name: "@oh-my-opencode/omo-codex",
|
|
92060
|
-
version: "5.1.
|
|
92107
|
+
version: "5.1.35",
|
|
92061
92108
|
type: "module",
|
|
92062
92109
|
private: true,
|
|
92063
92110
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -99355,6 +99402,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
99355
99402
|
join63("extensions", "omo-computer-use.js"),
|
|
99356
99403
|
join63("extensions", "omo-memory-doctor.js"),
|
|
99357
99404
|
join63("extensions", "omo-memory-memfs.js"),
|
|
99405
|
+
join63("extensions", "omo-memory-palace.js"),
|
|
99358
99406
|
join63("extensions", "omo-thread-client.js"),
|
|
99359
99407
|
join63("extensions", "assets.generated.json"),
|
|
99360
99408
|
join63("extensions", "omo-member.js"),
|
|
@@ -110494,7 +110542,11 @@ function compareUtf16(left, right) {
|
|
|
110494
110542
|
const b = Buffer2.from(right, "utf16le").swap16();
|
|
110495
110543
|
return Buffer2.compare(a, b);
|
|
110496
110544
|
}
|
|
110497
|
-
|
|
110545
|
+
var MAX_SERIALIZE_DEPTH = 64;
|
|
110546
|
+
function serializeValue(value, out, depth = 0) {
|
|
110547
|
+
if (typeof value === "object" && value !== null && depth >= MAX_SERIALIZE_DEPTH) {
|
|
110548
|
+
throw new CanonicalJsonError("json", `nesting deeper than ${MAX_SERIALIZE_DEPTH}`);
|
|
110549
|
+
}
|
|
110498
110550
|
if (value === null)
|
|
110499
110551
|
out.push("null");
|
|
110500
110552
|
else if (typeof value === "boolean")
|
|
@@ -110508,7 +110560,7 @@ function serializeValue(value, out) {
|
|
|
110508
110560
|
value.forEach((element, index) => {
|
|
110509
110561
|
if (index > 0)
|
|
110510
110562
|
out.push(",");
|
|
110511
|
-
serializeValue(element, out);
|
|
110563
|
+
serializeValue(element, out, depth + 1);
|
|
110512
110564
|
});
|
|
110513
110565
|
out.push("]");
|
|
110514
110566
|
} else {
|
|
@@ -110517,7 +110569,7 @@ function serializeValue(value, out) {
|
|
|
110517
110569
|
if (index > 0)
|
|
110518
110570
|
out.push(",");
|
|
110519
110571
|
out.push(escapeCanonicalString(key), ":");
|
|
110520
|
-
serializeValue(value[key], out);
|
|
110572
|
+
serializeValue(value[key], out, depth + 1);
|
|
110521
110573
|
});
|
|
110522
110574
|
out.push("}");
|
|
110523
110575
|
}
|
|
@@ -110529,9 +110581,12 @@ function canonicalizeJson(value) {
|
|
|
110529
110581
|
}
|
|
110530
110582
|
|
|
110531
110583
|
// packages/memory-core/src/sync/canonical-json.ts
|
|
110584
|
+
var MAX_CANONICAL_DEPTH = 64;
|
|
110585
|
+
|
|
110532
110586
|
class Parser {
|
|
110533
110587
|
text;
|
|
110534
110588
|
position = 0;
|
|
110589
|
+
depth = 0;
|
|
110535
110590
|
constructor(text) {
|
|
110536
110591
|
this.text = text;
|
|
110537
110592
|
}
|
|
@@ -110545,10 +110600,14 @@ class Parser {
|
|
|
110545
110600
|
parseValue() {
|
|
110546
110601
|
this.skipInsignificant();
|
|
110547
110602
|
const char = this.text[this.position];
|
|
110548
|
-
if (char === "{")
|
|
110549
|
-
|
|
110550
|
-
|
|
110551
|
-
|
|
110603
|
+
if (char === "{" || char === "[") {
|
|
110604
|
+
if (this.depth >= MAX_CANONICAL_DEPTH)
|
|
110605
|
+
throw this.fail("json", `nesting deeper than ${MAX_CANONICAL_DEPTH}`);
|
|
110606
|
+
this.depth++;
|
|
110607
|
+
const value = char === "{" ? this.parseObject() : this.parseArray();
|
|
110608
|
+
this.depth--;
|
|
110609
|
+
return value;
|
|
110610
|
+
}
|
|
110552
110611
|
if (char === '"')
|
|
110553
110612
|
return this.parseString().value;
|
|
110554
110613
|
if (char === "-" || char >= "0" && char <= "9")
|
|
@@ -110744,7 +110803,14 @@ function openHpkeSealedBox(sealingPrivateRaw, sealingPublicRaw, wrap, info = Buf
|
|
|
110744
110803
|
},
|
|
110745
110804
|
format: "jwk"
|
|
110746
110805
|
});
|
|
110747
|
-
|
|
110806
|
+
let dh;
|
|
110807
|
+
try {
|
|
110808
|
+
dh = diffieHellman({ privateKey, publicKey: x25519PublicKeyFromRaw(enc) });
|
|
110809
|
+
} catch {
|
|
110810
|
+
throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
|
|
110811
|
+
}
|
|
110812
|
+
if (dh.every((byte) => byte === 0))
|
|
110813
|
+
throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
|
|
110748
110814
|
const kem = Buffer4.concat([Buffer4.from("KEM"), KEM_ID]);
|
|
110749
110815
|
const suite = Buffer4.concat([Buffer4.from("HPKE"), KEM_ID, KDF_ID, AEAD_ID]);
|
|
110750
110816
|
const sharedSecret = labeledExpand(kem, "shared_secret", labeledExtract(kem, "eae_prk", dh, Buffer4.alloc(0)), Buffer4.concat([Buffer4.from(enc), Buffer4.from(sealingPublicRaw)]), 32);
|
|
@@ -110784,6 +110850,24 @@ var SIGNING_DOMAIN_TAGS = {
|
|
|
110784
110850
|
function domainSeparatedMessage(purpose, payload) {
|
|
110785
110851
|
return Buffer5.concat([Buffer5.from(SIGNING_DOMAIN_TAGS[purpose], "ascii"), Buffer5.from([0]), Buffer5.from(payload)]);
|
|
110786
110852
|
}
|
|
110853
|
+
var CANONICAL_REASONS = {
|
|
110854
|
+
json: "record-json",
|
|
110855
|
+
"duplicate-key": "record-canonical-duplicate-key",
|
|
110856
|
+
number: "record-canonical-number",
|
|
110857
|
+
order: "record-canonical-order",
|
|
110858
|
+
escape: "record-canonical-escape",
|
|
110859
|
+
whitespace: "record-canonical-whitespace",
|
|
110860
|
+
encoding: "record-canonical-encoding"
|
|
110861
|
+
};
|
|
110862
|
+
function parseCanonical(bytes, what) {
|
|
110863
|
+
try {
|
|
110864
|
+
return requireCanonicalJson(bytes);
|
|
110865
|
+
} catch (error) {
|
|
110866
|
+
if (!(error instanceof CanonicalJsonError))
|
|
110867
|
+
throw error;
|
|
110868
|
+
throw new DeviceKeyringSignError(CANONICAL_REASONS[error.violation], `sign: ${what} preimage is not RFC 8785 canonical JSON: ${error.message}`);
|
|
110869
|
+
}
|
|
110870
|
+
}
|
|
110787
110871
|
function validateSignRequest(request) {
|
|
110788
110872
|
if (typeof request !== "object" || request === null) {
|
|
110789
110873
|
throw new DeviceKeyringSignError("unknown-purpose", "sign: request must be a typed sign request");
|
|
@@ -110798,16 +110882,7 @@ function validateSignRequest(request) {
|
|
|
110798
110882
|
if (!(request.canonicalJson instanceof Uint8Array)) {
|
|
110799
110883
|
throw new DeviceKeyringSignError("record-json", "sign: record needs RFC 8785 canonical JSON bytes");
|
|
110800
110884
|
}
|
|
110801
|
-
|
|
110802
|
-
try {
|
|
110803
|
-
parsed = requireCanonicalJson(request.canonicalJson);
|
|
110804
|
-
} catch (error) {
|
|
110805
|
-
if (error instanceof CanonicalJsonError) {
|
|
110806
|
-
const reason = error.violation === "json" ? "record-json" : error.violation === "duplicate-key" ? "record-canonical-duplicate-key" : error.violation === "number" ? "record-canonical-number" : error.violation === "order" ? "record-canonical-order" : error.violation === "escape" ? "record-canonical-escape" : error.violation === "whitespace" ? "record-canonical-whitespace" : "record-canonical-encoding";
|
|
110807
|
-
throw new DeviceKeyringSignError(reason, `sign: record preimage is not RFC 8785 canonical JSON: ${error.message}`);
|
|
110808
|
-
}
|
|
110809
|
-
throw error;
|
|
110810
|
-
}
|
|
110885
|
+
const parsed = parseCanonical(request.canonicalJson, "record");
|
|
110811
110886
|
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed) || typeof parsed.t !== "string") {
|
|
110812
110887
|
throw new DeviceKeyringSignError("record-json", 'sign: record preimage needs a top-level "t" string');
|
|
110813
110888
|
}
|
|
@@ -110815,8 +110890,8 @@ function validateSignRequest(request) {
|
|
|
110815
110890
|
if (!t.startsWith("omo-sync/v1/")) {
|
|
110816
110891
|
throw new DeviceKeyringSignError("record-prefix", 'sign: record "t" must start with "omo-sync/v1/"');
|
|
110817
110892
|
}
|
|
110818
|
-
if (t === SIGNING_DOMAIN_TAGS["object-digest"]) {
|
|
110819
|
-
throw new DeviceKeyringSignError("record-prefix",
|
|
110893
|
+
if (t === SIGNING_DOMAIN_TAGS["object-digest"] || t === SIGNING_DOMAIN_TAGS.snapshot) {
|
|
110894
|
+
throw new DeviceKeyringSignError("record-prefix", `sign: record "t" must name a keyring record type, not another purpose's tag`);
|
|
110820
110895
|
}
|
|
110821
110896
|
return request.canonicalJson;
|
|
110822
110897
|
}
|
|
@@ -110824,15 +110899,7 @@ function validateSignRequest(request) {
|
|
|
110824
110899
|
if (!(request.canonicalJson instanceof Uint8Array)) {
|
|
110825
110900
|
throw new DeviceKeyringSignError("record-json", "sign: snapshot needs RFC 8785 canonical JSON bytes");
|
|
110826
110901
|
}
|
|
110827
|
-
|
|
110828
|
-
try {
|
|
110829
|
-
parsed = requireCanonicalJson(request.canonicalJson);
|
|
110830
|
-
} catch (error) {
|
|
110831
|
-
if (error instanceof CanonicalJsonError) {
|
|
110832
|
-
throw new DeviceKeyringSignError("record-canonical", `sign: snapshot preimage is not RFC 8785 canonical JSON: ${error.message}`);
|
|
110833
|
-
}
|
|
110834
|
-
throw error;
|
|
110835
|
-
}
|
|
110902
|
+
const parsed = parseCanonical(request.canonicalJson, "snapshot");
|
|
110836
110903
|
const t = typeof parsed === "object" && parsed !== null ? parsed.t : undefined;
|
|
110837
110904
|
if (t !== SIGNING_DOMAIN_TAGS.snapshot) {
|
|
110838
110905
|
throw new DeviceKeyringSignError("snapshot-prefix", 'sign: snapshot preimage "t" must be exactly "omo-sync/v1/snapshot"');
|
|
@@ -110842,7 +110909,11 @@ function validateSignRequest(request) {
|
|
|
110842
110909
|
throw new DeviceKeyringSignError("unknown-purpose", `sign: unsupported purpose ${JSON.stringify(request.purpose ?? null)}`);
|
|
110843
110910
|
}
|
|
110844
110911
|
var WRAP_INFO = Buffer5.concat([Buffer5.from("omo-sync/v1/wrap", "ascii"), Buffer5.from([0])]);
|
|
110845
|
-
var wrapAad = (binding) =>
|
|
110912
|
+
var wrapAad = (binding) => {
|
|
110913
|
+
if (!Number.isSafeInteger(binding.epoch) || binding.epoch < 0)
|
|
110914
|
+
throw new Error("unseal: the wrap epoch must be a non-negative integer");
|
|
110915
|
+
return canonicalizeJson({ account: binding.account, epoch: binding.epoch, id: binding.id });
|
|
110916
|
+
};
|
|
110846
110917
|
function generateDeviceKeyMaterial() {
|
|
110847
110918
|
const signing = generateKeyPairSync("ed25519");
|
|
110848
110919
|
const sealing = generateKeyPairSync("x25519");
|
package/dist/cli-node/index.js
CHANGED
|
@@ -2133,7 +2133,7 @@ var package_default;
|
|
|
2133
2133
|
var init_package = __esm(() => {
|
|
2134
2134
|
package_default = {
|
|
2135
2135
|
name: "oh-my-opencode",
|
|
2136
|
-
version: "5.1.
|
|
2136
|
+
version: "5.1.35",
|
|
2137
2137
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2138
2138
|
main: "./dist/index.js",
|
|
2139
2139
|
types: "dist/index.d.ts",
|
|
@@ -2369,18 +2369,18 @@ var init_package = __esm(() => {
|
|
|
2369
2369
|
typescript: "^7.0.2"
|
|
2370
2370
|
},
|
|
2371
2371
|
optionalDependencies: {
|
|
2372
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
2373
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
2374
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
2375
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
2376
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
2377
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
2378
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
2379
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
2380
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
2381
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
2382
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
2383
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
2372
|
+
"oh-my-opencode-darwin-arm64": "5.1.35",
|
|
2373
|
+
"oh-my-opencode-darwin-x64": "5.1.35",
|
|
2374
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.35",
|
|
2375
|
+
"oh-my-opencode-linux-arm64": "5.1.35",
|
|
2376
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.35",
|
|
2377
|
+
"oh-my-opencode-linux-x64": "5.1.35",
|
|
2378
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.35",
|
|
2379
|
+
"oh-my-opencode-linux-x64-musl": "5.1.35",
|
|
2380
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.35",
|
|
2381
|
+
"oh-my-opencode-windows-arm64": "5.1.35",
|
|
2382
|
+
"oh-my-opencode-windows-x64": "5.1.35",
|
|
2383
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.35"
|
|
2384
2384
|
},
|
|
2385
2385
|
overrides: {
|
|
2386
2386
|
hono: "^4.13.8",
|
|
@@ -82386,6 +82386,9 @@ var init_activity_state = __esm(() => {
|
|
|
82386
82386
|
capturedDaysByStateDir = new Map;
|
|
82387
82387
|
});
|
|
82388
82388
|
|
|
82389
|
+
// packages/telemetry-core/src/consent-gated-fetch.ts
|
|
82390
|
+
var init_consent_gated_fetch = () => {};
|
|
82391
|
+
|
|
82389
82392
|
// packages/telemetry-core/src/constants.ts
|
|
82390
82393
|
var DEFAULT_POSTHOG_HOST = "https://us.i.posthog.com", DEFAULT_POSTHOG_API_KEY = "phc_CFJhj5HyvA62QPhvyaUCtaq23aUfznnijg5VaaGkNk74", UNCONFIGURED_POSTHOG_API_KEY = "phc_REPLACE_ME_OMO_NATIVE";
|
|
82391
82394
|
|
|
@@ -82433,6 +82436,7 @@ function toDiagnosticRecord(input, now) {
|
|
|
82433
82436
|
timestamp: now.toISOString(),
|
|
82434
82437
|
event: input.event,
|
|
82435
82438
|
source: input.source,
|
|
82439
|
+
...input.count === undefined ? {} : { count: input.count },
|
|
82436
82440
|
...serializeError(input.error, input.errorKind)
|
|
82437
82441
|
};
|
|
82438
82442
|
}
|
|
@@ -82525,7 +82529,7 @@ function shouldDisableTelemetry(input) {
|
|
|
82525
82529
|
const env = input.env ?? process.env;
|
|
82526
82530
|
const globalPrefix = input.globalEnvPrefix ?? "OMO";
|
|
82527
82531
|
const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
|
|
82528
|
-
if (isDisableFlag(env["DO_NOT_TRACK"])) {
|
|
82532
|
+
if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
|
|
82529
82533
|
return true;
|
|
82530
82534
|
}
|
|
82531
82535
|
for (const prefix of prefixes) {
|
|
@@ -82557,6 +82561,47 @@ var init_env = __esm(() => {
|
|
|
82557
82561
|
SEND_OPT_OUT_VALUES = ["0", "false", "no", "yes"];
|
|
82558
82562
|
});
|
|
82559
82563
|
|
|
82564
|
+
// packages/telemetry-core/src/event-id.ts
|
|
82565
|
+
import { randomBytes as nodeRandomBytes } from "node:crypto";
|
|
82566
|
+
function createUuidV7Generator(source = {}) {
|
|
82567
|
+
const now = source.now ?? Date.now;
|
|
82568
|
+
const randomBytes = source.randomBytes ?? ((size) => new Uint8Array(nodeRandomBytes(size)));
|
|
82569
|
+
let lastMs = -1;
|
|
82570
|
+
let counter = 0;
|
|
82571
|
+
return () => {
|
|
82572
|
+
const random = randomBytes(10);
|
|
82573
|
+
const wallMs = Math.floor(now());
|
|
82574
|
+
if (wallMs > lastMs) {
|
|
82575
|
+
lastMs = wallMs;
|
|
82576
|
+
counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
|
|
82577
|
+
} else if (counter < MAX_COUNTER) {
|
|
82578
|
+
counter += 1;
|
|
82579
|
+
} else {
|
|
82580
|
+
lastMs += 1;
|
|
82581
|
+
counter = (random[0] << 8 | random[1]) & COUNTER_SEED_MASK;
|
|
82582
|
+
}
|
|
82583
|
+
const bytes = new Uint8Array(16);
|
|
82584
|
+
let timestamp = lastMs;
|
|
82585
|
+
for (let index = 5;index >= 0; index -= 1) {
|
|
82586
|
+
bytes[index] = timestamp % 256;
|
|
82587
|
+
timestamp = Math.floor(timestamp / 256);
|
|
82588
|
+
}
|
|
82589
|
+
bytes[6] = 112 | counter >> 8;
|
|
82590
|
+
bytes[7] = counter & 255;
|
|
82591
|
+
bytes[8] = 128 | random[2] & 63;
|
|
82592
|
+
bytes.set(random.subarray(3, 10), 9);
|
|
82593
|
+
return formatUuid(bytes);
|
|
82594
|
+
};
|
|
82595
|
+
}
|
|
82596
|
+
function formatUuid(bytes) {
|
|
82597
|
+
const hex = Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
82598
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
82599
|
+
}
|
|
82600
|
+
var MAX_COUNTER = 4095, COUNTER_SEED_MASK = 2047, fallbackEventId;
|
|
82601
|
+
var init_event_id = __esm(() => {
|
|
82602
|
+
fallbackEventId = createUuidV7Generator();
|
|
82603
|
+
});
|
|
82604
|
+
|
|
82560
82605
|
// node_modules/.bun/posthog-node@5.52.4/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
82561
82606
|
import { dirname as dirname18, posix as posix7, sep as sep7 } from "path";
|
|
82562
82607
|
function createModulerModifier() {
|
|
@@ -92123,8 +92168,10 @@ var init_record_daily_active = () => {};
|
|
|
92123
92168
|
// packages/telemetry-core/src/index.ts
|
|
92124
92169
|
var init_src5 = __esm(() => {
|
|
92125
92170
|
init_activity_state();
|
|
92171
|
+
init_consent_gated_fetch();
|
|
92126
92172
|
init_diagnostics();
|
|
92127
92173
|
init_env();
|
|
92174
|
+
init_event_id();
|
|
92128
92175
|
init_events();
|
|
92129
92176
|
init_machine_id();
|
|
92130
92177
|
init_posthog_client();
|
|
@@ -92136,7 +92183,7 @@ var package_default2;
|
|
|
92136
92183
|
var init_package2 = __esm(() => {
|
|
92137
92184
|
package_default2 = {
|
|
92138
92185
|
name: "@oh-my-opencode/omo-codex",
|
|
92139
|
-
version: "5.1.
|
|
92186
|
+
version: "5.1.35",
|
|
92140
92187
|
type: "module",
|
|
92141
92188
|
private: true,
|
|
92142
92189
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -99434,6 +99481,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
99434
99481
|
join63("extensions", "omo-computer-use.js"),
|
|
99435
99482
|
join63("extensions", "omo-memory-doctor.js"),
|
|
99436
99483
|
join63("extensions", "omo-memory-memfs.js"),
|
|
99484
|
+
join63("extensions", "omo-memory-palace.js"),
|
|
99437
99485
|
join63("extensions", "omo-thread-client.js"),
|
|
99438
99486
|
join63("extensions", "assets.generated.json"),
|
|
99439
99487
|
join63("extensions", "omo-member.js"),
|
|
@@ -110573,7 +110621,11 @@ function compareUtf16(left, right) {
|
|
|
110573
110621
|
const b = Buffer2.from(right, "utf16le").swap16();
|
|
110574
110622
|
return Buffer2.compare(a, b);
|
|
110575
110623
|
}
|
|
110576
|
-
|
|
110624
|
+
var MAX_SERIALIZE_DEPTH = 64;
|
|
110625
|
+
function serializeValue(value, out, depth = 0) {
|
|
110626
|
+
if (typeof value === "object" && value !== null && depth >= MAX_SERIALIZE_DEPTH) {
|
|
110627
|
+
throw new CanonicalJsonError("json", `nesting deeper than ${MAX_SERIALIZE_DEPTH}`);
|
|
110628
|
+
}
|
|
110577
110629
|
if (value === null)
|
|
110578
110630
|
out.push("null");
|
|
110579
110631
|
else if (typeof value === "boolean")
|
|
@@ -110587,7 +110639,7 @@ function serializeValue(value, out) {
|
|
|
110587
110639
|
value.forEach((element, index) => {
|
|
110588
110640
|
if (index > 0)
|
|
110589
110641
|
out.push(",");
|
|
110590
|
-
serializeValue(element, out);
|
|
110642
|
+
serializeValue(element, out, depth + 1);
|
|
110591
110643
|
});
|
|
110592
110644
|
out.push("]");
|
|
110593
110645
|
} else {
|
|
@@ -110596,7 +110648,7 @@ function serializeValue(value, out) {
|
|
|
110596
110648
|
if (index > 0)
|
|
110597
110649
|
out.push(",");
|
|
110598
110650
|
out.push(escapeCanonicalString(key), ":");
|
|
110599
|
-
serializeValue(value[key], out);
|
|
110651
|
+
serializeValue(value[key], out, depth + 1);
|
|
110600
110652
|
});
|
|
110601
110653
|
out.push("}");
|
|
110602
110654
|
}
|
|
@@ -110608,9 +110660,12 @@ function canonicalizeJson(value) {
|
|
|
110608
110660
|
}
|
|
110609
110661
|
|
|
110610
110662
|
// packages/memory-core/src/sync/canonical-json.ts
|
|
110663
|
+
var MAX_CANONICAL_DEPTH = 64;
|
|
110664
|
+
|
|
110611
110665
|
class Parser {
|
|
110612
110666
|
text;
|
|
110613
110667
|
position = 0;
|
|
110668
|
+
depth = 0;
|
|
110614
110669
|
constructor(text) {
|
|
110615
110670
|
this.text = text;
|
|
110616
110671
|
}
|
|
@@ -110624,10 +110679,14 @@ class Parser {
|
|
|
110624
110679
|
parseValue() {
|
|
110625
110680
|
this.skipInsignificant();
|
|
110626
110681
|
const char = this.text[this.position];
|
|
110627
|
-
if (char === "{")
|
|
110628
|
-
|
|
110629
|
-
|
|
110630
|
-
|
|
110682
|
+
if (char === "{" || char === "[") {
|
|
110683
|
+
if (this.depth >= MAX_CANONICAL_DEPTH)
|
|
110684
|
+
throw this.fail("json", `nesting deeper than ${MAX_CANONICAL_DEPTH}`);
|
|
110685
|
+
this.depth++;
|
|
110686
|
+
const value = char === "{" ? this.parseObject() : this.parseArray();
|
|
110687
|
+
this.depth--;
|
|
110688
|
+
return value;
|
|
110689
|
+
}
|
|
110631
110690
|
if (char === '"')
|
|
110632
110691
|
return this.parseString().value;
|
|
110633
110692
|
if (char === "-" || char >= "0" && char <= "9")
|
|
@@ -110823,7 +110882,14 @@ function openHpkeSealedBox(sealingPrivateRaw, sealingPublicRaw, wrap, info = Buf
|
|
|
110823
110882
|
},
|
|
110824
110883
|
format: "jwk"
|
|
110825
110884
|
});
|
|
110826
|
-
|
|
110885
|
+
let dh;
|
|
110886
|
+
try {
|
|
110887
|
+
dh = diffieHellman({ privateKey, publicKey: x25519PublicKeyFromRaw(enc) });
|
|
110888
|
+
} catch {
|
|
110889
|
+
throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
|
|
110890
|
+
}
|
|
110891
|
+
if (dh.every((byte) => byte === 0))
|
|
110892
|
+
throw new Error("sealed box does not open: wrong recipient or corrupted wrap");
|
|
110827
110893
|
const kem = Buffer4.concat([Buffer4.from("KEM"), KEM_ID]);
|
|
110828
110894
|
const suite = Buffer4.concat([Buffer4.from("HPKE"), KEM_ID, KDF_ID, AEAD_ID]);
|
|
110829
110895
|
const sharedSecret = labeledExpand(kem, "shared_secret", labeledExtract(kem, "eae_prk", dh, Buffer4.alloc(0)), Buffer4.concat([Buffer4.from(enc), Buffer4.from(sealingPublicRaw)]), 32);
|
|
@@ -110863,6 +110929,24 @@ var SIGNING_DOMAIN_TAGS = {
|
|
|
110863
110929
|
function domainSeparatedMessage(purpose, payload) {
|
|
110864
110930
|
return Buffer5.concat([Buffer5.from(SIGNING_DOMAIN_TAGS[purpose], "ascii"), Buffer5.from([0]), Buffer5.from(payload)]);
|
|
110865
110931
|
}
|
|
110932
|
+
var CANONICAL_REASONS = {
|
|
110933
|
+
json: "record-json",
|
|
110934
|
+
"duplicate-key": "record-canonical-duplicate-key",
|
|
110935
|
+
number: "record-canonical-number",
|
|
110936
|
+
order: "record-canonical-order",
|
|
110937
|
+
escape: "record-canonical-escape",
|
|
110938
|
+
whitespace: "record-canonical-whitespace",
|
|
110939
|
+
encoding: "record-canonical-encoding"
|
|
110940
|
+
};
|
|
110941
|
+
function parseCanonical(bytes, what) {
|
|
110942
|
+
try {
|
|
110943
|
+
return requireCanonicalJson(bytes);
|
|
110944
|
+
} catch (error) {
|
|
110945
|
+
if (!(error instanceof CanonicalJsonError))
|
|
110946
|
+
throw error;
|
|
110947
|
+
throw new DeviceKeyringSignError(CANONICAL_REASONS[error.violation], `sign: ${what} preimage is not RFC 8785 canonical JSON: ${error.message}`);
|
|
110948
|
+
}
|
|
110949
|
+
}
|
|
110866
110950
|
function validateSignRequest(request) {
|
|
110867
110951
|
if (typeof request !== "object" || request === null) {
|
|
110868
110952
|
throw new DeviceKeyringSignError("unknown-purpose", "sign: request must be a typed sign request");
|
|
@@ -110877,16 +110961,7 @@ function validateSignRequest(request) {
|
|
|
110877
110961
|
if (!(request.canonicalJson instanceof Uint8Array)) {
|
|
110878
110962
|
throw new DeviceKeyringSignError("record-json", "sign: record needs RFC 8785 canonical JSON bytes");
|
|
110879
110963
|
}
|
|
110880
|
-
|
|
110881
|
-
try {
|
|
110882
|
-
parsed = requireCanonicalJson(request.canonicalJson);
|
|
110883
|
-
} catch (error) {
|
|
110884
|
-
if (error instanceof CanonicalJsonError) {
|
|
110885
|
-
const reason = error.violation === "json" ? "record-json" : error.violation === "duplicate-key" ? "record-canonical-duplicate-key" : error.violation === "number" ? "record-canonical-number" : error.violation === "order" ? "record-canonical-order" : error.violation === "escape" ? "record-canonical-escape" : error.violation === "whitespace" ? "record-canonical-whitespace" : "record-canonical-encoding";
|
|
110886
|
-
throw new DeviceKeyringSignError(reason, `sign: record preimage is not RFC 8785 canonical JSON: ${error.message}`);
|
|
110887
|
-
}
|
|
110888
|
-
throw error;
|
|
110889
|
-
}
|
|
110964
|
+
const parsed = parseCanonical(request.canonicalJson, "record");
|
|
110890
110965
|
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed) || typeof parsed.t !== "string") {
|
|
110891
110966
|
throw new DeviceKeyringSignError("record-json", 'sign: record preimage needs a top-level "t" string');
|
|
110892
110967
|
}
|
|
@@ -110894,8 +110969,8 @@ function validateSignRequest(request) {
|
|
|
110894
110969
|
if (!t.startsWith("omo-sync/v1/")) {
|
|
110895
110970
|
throw new DeviceKeyringSignError("record-prefix", 'sign: record "t" must start with "omo-sync/v1/"');
|
|
110896
110971
|
}
|
|
110897
|
-
if (t === SIGNING_DOMAIN_TAGS["object-digest"]) {
|
|
110898
|
-
throw new DeviceKeyringSignError("record-prefix",
|
|
110972
|
+
if (t === SIGNING_DOMAIN_TAGS["object-digest"] || t === SIGNING_DOMAIN_TAGS.snapshot) {
|
|
110973
|
+
throw new DeviceKeyringSignError("record-prefix", `sign: record "t" must name a keyring record type, not another purpose's tag`);
|
|
110899
110974
|
}
|
|
110900
110975
|
return request.canonicalJson;
|
|
110901
110976
|
}
|
|
@@ -110903,15 +110978,7 @@ function validateSignRequest(request) {
|
|
|
110903
110978
|
if (!(request.canonicalJson instanceof Uint8Array)) {
|
|
110904
110979
|
throw new DeviceKeyringSignError("record-json", "sign: snapshot needs RFC 8785 canonical JSON bytes");
|
|
110905
110980
|
}
|
|
110906
|
-
|
|
110907
|
-
try {
|
|
110908
|
-
parsed = requireCanonicalJson(request.canonicalJson);
|
|
110909
|
-
} catch (error) {
|
|
110910
|
-
if (error instanceof CanonicalJsonError) {
|
|
110911
|
-
throw new DeviceKeyringSignError("record-canonical", `sign: snapshot preimage is not RFC 8785 canonical JSON: ${error.message}`);
|
|
110912
|
-
}
|
|
110913
|
-
throw error;
|
|
110914
|
-
}
|
|
110981
|
+
const parsed = parseCanonical(request.canonicalJson, "snapshot");
|
|
110915
110982
|
const t = typeof parsed === "object" && parsed !== null ? parsed.t : undefined;
|
|
110916
110983
|
if (t !== SIGNING_DOMAIN_TAGS.snapshot) {
|
|
110917
110984
|
throw new DeviceKeyringSignError("snapshot-prefix", 'sign: snapshot preimage "t" must be exactly "omo-sync/v1/snapshot"');
|
|
@@ -110921,7 +110988,11 @@ function validateSignRequest(request) {
|
|
|
110921
110988
|
throw new DeviceKeyringSignError("unknown-purpose", `sign: unsupported purpose ${JSON.stringify(request.purpose ?? null)}`);
|
|
110922
110989
|
}
|
|
110923
110990
|
var WRAP_INFO = Buffer5.concat([Buffer5.from("omo-sync/v1/wrap", "ascii"), Buffer5.from([0])]);
|
|
110924
|
-
var wrapAad = (binding) =>
|
|
110991
|
+
var wrapAad = (binding) => {
|
|
110992
|
+
if (!Number.isSafeInteger(binding.epoch) || binding.epoch < 0)
|
|
110993
|
+
throw new Error("unseal: the wrap epoch must be a non-negative integer");
|
|
110994
|
+
return canonicalizeJson({ account: binding.account, epoch: binding.epoch, id: binding.id });
|
|
110995
|
+
};
|
|
110925
110996
|
function generateDeviceKeyMaterial() {
|
|
110926
110997
|
const signing = generateKeyPairSync("ed25519");
|
|
110927
110998
|
const sealing = generateKeyPairSync("x25519");
|
package/dist/index.js
CHANGED
|
@@ -99221,7 +99221,7 @@ function getCachedVersion(options = {}) {
|
|
|
99221
99221
|
// package.json
|
|
99222
99222
|
var package_default = {
|
|
99223
99223
|
name: "oh-my-opencode",
|
|
99224
|
-
version: "5.1.
|
|
99224
|
+
version: "5.1.35",
|
|
99225
99225
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
99226
99226
|
main: "./dist/index.js",
|
|
99227
99227
|
types: "dist/index.d.ts",
|
|
@@ -99457,18 +99457,18 @@ var package_default = {
|
|
|
99457
99457
|
typescript: "^7.0.2"
|
|
99458
99458
|
},
|
|
99459
99459
|
optionalDependencies: {
|
|
99460
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
99461
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
99462
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
99463
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
99464
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
99465
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
99466
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
99467
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
99468
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
99469
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
99470
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
99471
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
99460
|
+
"oh-my-opencode-darwin-arm64": "5.1.35",
|
|
99461
|
+
"oh-my-opencode-darwin-x64": "5.1.35",
|
|
99462
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.35",
|
|
99463
|
+
"oh-my-opencode-linux-arm64": "5.1.35",
|
|
99464
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.35",
|
|
99465
|
+
"oh-my-opencode-linux-x64": "5.1.35",
|
|
99466
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.35",
|
|
99467
|
+
"oh-my-opencode-linux-x64-musl": "5.1.35",
|
|
99468
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.35",
|
|
99469
|
+
"oh-my-opencode-windows-arm64": "5.1.35",
|
|
99470
|
+
"oh-my-opencode-windows-x64": "5.1.35",
|
|
99471
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.35"
|
|
99472
99472
|
},
|
|
99473
99473
|
overrides: {
|
|
99474
99474
|
hono: "^4.13.8",
|
|
@@ -178734,7 +178734,7 @@ function shouldDisableTelemetry(input) {
|
|
|
178734
178734
|
const env = input.env ?? process.env;
|
|
178735
178735
|
const globalPrefix = input.globalEnvPrefix ?? "OMO";
|
|
178736
178736
|
const prefixes = Array.from(new Set([globalPrefix, input.productEnvPrefix]));
|
|
178737
|
-
if (isDisableFlag(env["DO_NOT_TRACK"])) {
|
|
178737
|
+
if (isDisableFlag(env["DO_NOT_TRACK"]) || isDisableFlag(env[`${globalPrefix}_DISABLE_TELEMETRY`])) {
|
|
178738
178738
|
return true;
|
|
178739
178739
|
}
|
|
178740
178740
|
for (const prefix of prefixes) {
|