@ours.network/codex 1.2.0-nightly.6 → 1.2.0-nightly.7
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/.codex-plugin/plugin.json +1 -1
- package/dist/hooks-runner.mjs +6 -5
- package/dist/host-hooks.mjs +6 -5
- package/dist/monitor-mcp.mjs +6 -5
- package/dist/network-watch.mjs +6 -5
- package/dist/profile.mjs +6 -5
- package/package.json +3 -3
package/dist/hooks-runner.mjs
CHANGED
|
@@ -58,6 +58,7 @@ import { assertDaemonStateDir, attachOursClient as attachOursClient2, resolveDae
|
|
|
58
58
|
import { existsSync, lstatSync, readFileSync } from "node:fs";
|
|
59
59
|
import { homedir } from "node:os";
|
|
60
60
|
import { resolve } from "node:path";
|
|
61
|
+
import { normalizeDaemonEndpoint } from "@ours.network/sdk/client";
|
|
61
62
|
var PROFILE_KEYS = ["endpoint", "expectedInstanceId", "credentialPath"];
|
|
62
63
|
var LEGACY_SELECTION_KEYS = ["port", "stateDir", "apiToken", "apiVisibility"];
|
|
63
64
|
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
@@ -80,7 +81,7 @@ function validateHostProfile(value) {
|
|
|
80
81
|
const expectedInstanceId = record.expectedInstanceId;
|
|
81
82
|
const credentialPath = record.credentialPath;
|
|
82
83
|
if (typeof endpoint !== "string" || endpoint.trim() !== endpoint || endpoint === "") {
|
|
83
|
-
throw profileError("endpoint must be a non-empty HTTP or HTTPS
|
|
84
|
+
throw profileError("endpoint must be a non-empty HTTP or HTTPS base URL.");
|
|
84
85
|
}
|
|
85
86
|
if (typeof expectedInstanceId !== "string" || !UUID.test(expectedInstanceId)) {
|
|
86
87
|
throw profileError("expectedInstanceId must be a lowercase UUID.");
|
|
@@ -92,12 +93,12 @@ function validateHostProfile(value) {
|
|
|
92
93
|
try {
|
|
93
94
|
url = new URL(endpoint);
|
|
94
95
|
} catch {
|
|
95
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
96
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL.");
|
|
96
97
|
}
|
|
97
|
-
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password ||
|
|
98
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
98
|
+
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password || /[\s\\?#]/.test(endpoint) || url.search || url.hash) {
|
|
99
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL without credentials, query, or fragment.");
|
|
99
100
|
}
|
|
100
|
-
return { endpoint:
|
|
101
|
+
return { endpoint: normalizeDaemonEndpoint(endpoint), expectedInstanceId, credentialPath };
|
|
101
102
|
}
|
|
102
103
|
function readProfileObject(configPath) {
|
|
103
104
|
let text;
|
package/dist/host-hooks.mjs
CHANGED
|
@@ -128,6 +128,7 @@ var ApplicationIdentityStore = class {
|
|
|
128
128
|
|
|
129
129
|
// ../core/src/host-profile.ts
|
|
130
130
|
import { resolve as resolve2 } from "node:path";
|
|
131
|
+
import { normalizeDaemonEndpoint } from "@ours.network/sdk/client";
|
|
131
132
|
var PROFILE_KEYS = ["endpoint", "expectedInstanceId", "credentialPath"];
|
|
132
133
|
var LEGACY_SELECTION_KEYS = ["port", "stateDir", "apiToken", "apiVisibility"];
|
|
133
134
|
var UUID2 = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
@@ -149,7 +150,7 @@ function validateHostProfile(value) {
|
|
|
149
150
|
const expectedInstanceId = record.expectedInstanceId;
|
|
150
151
|
const credentialPath = record.credentialPath;
|
|
151
152
|
if (typeof endpoint !== "string" || endpoint.trim() !== endpoint || endpoint === "") {
|
|
152
|
-
throw profileError("endpoint must be a non-empty HTTP or HTTPS
|
|
153
|
+
throw profileError("endpoint must be a non-empty HTTP or HTTPS base URL.");
|
|
153
154
|
}
|
|
154
155
|
if (typeof expectedInstanceId !== "string" || !UUID2.test(expectedInstanceId)) {
|
|
155
156
|
throw profileError("expectedInstanceId must be a lowercase UUID.");
|
|
@@ -161,12 +162,12 @@ function validateHostProfile(value) {
|
|
|
161
162
|
try {
|
|
162
163
|
url = new URL(endpoint);
|
|
163
164
|
} catch {
|
|
164
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
165
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL.");
|
|
165
166
|
}
|
|
166
|
-
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password ||
|
|
167
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
167
|
+
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password || /[\s\\?#]/.test(endpoint) || url.search || url.hash) {
|
|
168
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL without credentials, query, or fragment.");
|
|
168
169
|
}
|
|
169
|
-
return { endpoint:
|
|
170
|
+
return { endpoint: normalizeDaemonEndpoint(endpoint), expectedInstanceId, credentialPath };
|
|
170
171
|
}
|
|
171
172
|
|
|
172
173
|
// ../core/src/native-session.ts
|
package/dist/monitor-mcp.mjs
CHANGED
|
@@ -21404,6 +21404,7 @@ import { fileURLToPath } from "node:url";
|
|
|
21404
21404
|
import { existsSync, lstatSync, readFileSync } from "node:fs";
|
|
21405
21405
|
import { homedir } from "node:os";
|
|
21406
21406
|
import { resolve } from "node:path";
|
|
21407
|
+
import { normalizeDaemonEndpoint } from "@ours.network/sdk/client";
|
|
21407
21408
|
var PROFILE_KEYS = ["endpoint", "expectedInstanceId", "credentialPath"];
|
|
21408
21409
|
var LEGACY_SELECTION_KEYS = ["port", "stateDir", "apiToken", "apiVisibility"];
|
|
21409
21410
|
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
@@ -21426,7 +21427,7 @@ function validateHostProfile(value) {
|
|
|
21426
21427
|
const expectedInstanceId = record2.expectedInstanceId;
|
|
21427
21428
|
const credentialPath = record2.credentialPath;
|
|
21428
21429
|
if (typeof endpoint !== "string" || endpoint.trim() !== endpoint || endpoint === "") {
|
|
21429
|
-
throw profileError("endpoint must be a non-empty HTTP or HTTPS
|
|
21430
|
+
throw profileError("endpoint must be a non-empty HTTP or HTTPS base URL.");
|
|
21430
21431
|
}
|
|
21431
21432
|
if (typeof expectedInstanceId !== "string" || !UUID.test(expectedInstanceId)) {
|
|
21432
21433
|
throw profileError("expectedInstanceId must be a lowercase UUID.");
|
|
@@ -21438,12 +21439,12 @@ function validateHostProfile(value) {
|
|
|
21438
21439
|
try {
|
|
21439
21440
|
url = new URL(endpoint);
|
|
21440
21441
|
} catch {
|
|
21441
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
21442
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL.");
|
|
21442
21443
|
}
|
|
21443
|
-
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password ||
|
|
21444
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
21444
|
+
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password || /[\s\\?#]/.test(endpoint) || url.search || url.hash) {
|
|
21445
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL without credentials, query, or fragment.");
|
|
21445
21446
|
}
|
|
21446
|
-
return { endpoint:
|
|
21447
|
+
return { endpoint: normalizeDaemonEndpoint(endpoint), expectedInstanceId, credentialPath };
|
|
21447
21448
|
}
|
|
21448
21449
|
function readProfileObject(configPath) {
|
|
21449
21450
|
let text;
|
package/dist/network-watch.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import { dirname as dirname2, join as join3 } from "node:path";
|
|
|
6
6
|
import { existsSync, lstatSync, readFileSync } from "node:fs";
|
|
7
7
|
import { homedir } from "node:os";
|
|
8
8
|
import { resolve } from "node:path";
|
|
9
|
+
import { normalizeDaemonEndpoint } from "@ours.network/sdk/client";
|
|
9
10
|
var PROFILE_KEYS = ["endpoint", "expectedInstanceId", "credentialPath"];
|
|
10
11
|
var LEGACY_SELECTION_KEYS = ["port", "stateDir", "apiToken", "apiVisibility"];
|
|
11
12
|
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
@@ -28,7 +29,7 @@ function validateHostProfile(value) {
|
|
|
28
29
|
const expectedInstanceId = record.expectedInstanceId;
|
|
29
30
|
const credentialPath = record.credentialPath;
|
|
30
31
|
if (typeof endpoint !== "string" || endpoint.trim() !== endpoint || endpoint === "") {
|
|
31
|
-
throw profileError("endpoint must be a non-empty HTTP or HTTPS
|
|
32
|
+
throw profileError("endpoint must be a non-empty HTTP or HTTPS base URL.");
|
|
32
33
|
}
|
|
33
34
|
if (typeof expectedInstanceId !== "string" || !UUID.test(expectedInstanceId)) {
|
|
34
35
|
throw profileError("expectedInstanceId must be a lowercase UUID.");
|
|
@@ -40,12 +41,12 @@ function validateHostProfile(value) {
|
|
|
40
41
|
try {
|
|
41
42
|
url = new URL(endpoint);
|
|
42
43
|
} catch {
|
|
43
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
44
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL.");
|
|
44
45
|
}
|
|
45
|
-
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password ||
|
|
46
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
46
|
+
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password || /[\s\\?#]/.test(endpoint) || url.search || url.hash) {
|
|
47
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL without credentials, query, or fragment.");
|
|
47
48
|
}
|
|
48
|
-
return { endpoint:
|
|
49
|
+
return { endpoint: normalizeDaemonEndpoint(endpoint), expectedInstanceId, credentialPath };
|
|
49
50
|
}
|
|
50
51
|
function readProfileObject(configPath) {
|
|
51
52
|
let text;
|
package/dist/profile.mjs
CHANGED
|
@@ -8,6 +8,7 @@ import { assertDaemonStateDir, attachOursClient as attachOursClient2, resolveDae
|
|
|
8
8
|
import { existsSync, lstatSync, readFileSync } from "node:fs";
|
|
9
9
|
import { homedir } from "node:os";
|
|
10
10
|
import { resolve } from "node:path";
|
|
11
|
+
import { normalizeDaemonEndpoint } from "@ours.network/sdk/client";
|
|
11
12
|
var PROFILE_KEYS = ["endpoint", "expectedInstanceId", "credentialPath"];
|
|
12
13
|
var LEGACY_SELECTION_KEYS = ["port", "stateDir", "apiToken", "apiVisibility"];
|
|
13
14
|
var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
@@ -30,7 +31,7 @@ function validateHostProfile(value) {
|
|
|
30
31
|
const expectedInstanceId = record.expectedInstanceId;
|
|
31
32
|
const credentialPath = record.credentialPath;
|
|
32
33
|
if (typeof endpoint !== "string" || endpoint.trim() !== endpoint || endpoint === "") {
|
|
33
|
-
throw profileError("endpoint must be a non-empty HTTP or HTTPS
|
|
34
|
+
throw profileError("endpoint must be a non-empty HTTP or HTTPS base URL.");
|
|
34
35
|
}
|
|
35
36
|
if (typeof expectedInstanceId !== "string" || !UUID.test(expectedInstanceId)) {
|
|
36
37
|
throw profileError("expectedInstanceId must be a lowercase UUID.");
|
|
@@ -42,12 +43,12 @@ function validateHostProfile(value) {
|
|
|
42
43
|
try {
|
|
43
44
|
url = new URL(endpoint);
|
|
44
45
|
} catch {
|
|
45
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
46
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL.");
|
|
46
47
|
}
|
|
47
|
-
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password ||
|
|
48
|
-
throw profileError("endpoint must be an HTTP or HTTPS
|
|
48
|
+
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username || url.password || /[\s\\?#]/.test(endpoint) || url.search || url.hash) {
|
|
49
|
+
throw profileError("endpoint must be an HTTP or HTTPS base URL without credentials, query, or fragment.");
|
|
49
50
|
}
|
|
50
|
-
return { endpoint:
|
|
51
|
+
return { endpoint: normalizeDaemonEndpoint(endpoint), expectedInstanceId, credentialPath };
|
|
51
52
|
}
|
|
52
53
|
function readProfileObject(configPath) {
|
|
53
54
|
let text;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/codex",
|
|
3
|
-
"version": "1.2.0-nightly.
|
|
3
|
+
"version": "1.2.0-nightly.7",
|
|
4
4
|
"description": "Native Codex plugin for secure ours.network messaging and explicitly armed, session-scoped live mail wake.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
49
|
-
"@ours.network/sdk": "3.8.1-nightly.
|
|
49
|
+
"@ours.network/sdk": "3.8.1-nightly.11",
|
|
50
50
|
"ws": "^8.21.0",
|
|
51
51
|
"zod": "^3.25.76",
|
|
52
|
-
"@ours.network/mcp": "1.2.0-nightly.
|
|
52
|
+
"@ours.network/mcp": "1.2.0-nightly.7"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"esbuild": "^0.24.2"
|