@rightkit/release 0.2.135 → 0.2.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -0
- package/addon-command.mjs +53 -34
- package/apple-profile-renew.mjs +30 -12
- package/artifact-storage.mjs +47 -10
- package/background-process.mjs +18 -0
- package/build-release.mjs +1 -1
- package/cache-command.mjs +4 -3
- package/cargo-contract.mjs +1 -1
- package/cargo-guard.mjs +4 -3
- package/cargo-registry-readback.mjs +51 -0
- package/cargo-target.mjs +3 -1
- package/cli/right-release.mjs +26 -0
- package/codesign-environment.mjs +26 -2
- package/codesign-shim.mjs +2 -1
- package/committed-source.mjs +3 -3
- package/development.mjs +7 -7
- package/direct-bootstrap.mjs +19 -9
- package/dmg-build.mjs +117 -0
- package/dmg-layout.mjs +123 -0
- package/github-release.mjs +74 -37
- package/heavy-command.mjs +3 -2
- package/install-app.mjs +358 -0
- package/inventory-check.mjs +980 -0
- package/macos-signing-session.mjs +3 -0
- package/managed-cargo.mjs +23 -19
- package/managed-host-secrets.mjs +30 -0
- package/managed-roots.mjs +39 -0
- package/model-promote.mjs +31 -37
- package/notary-auth.mjs +4 -0
- package/osascript-guard.mjs +24 -0
- package/ownership-approval-command.mjs +15 -4
- package/ownership-approval.mjs +114 -49
- package/ownership-availability.mjs +25 -0
- package/ownership-catalog-config.json +18 -0
- package/ownership-catalog.mjs +94 -0
- package/ownership-command.mjs +20 -10
- package/ownership-declaration.json +15 -0
- package/ownership-default-policy.json +1 -11
- package/ownership-evidence.mjs +10 -8
- package/ownership-git-inventory.mjs +29 -1
- package/ownership-helper-paths.json +2 -2
- package/ownership-hooks.mjs +107 -0
- package/ownership-internal-owners.json +44 -0
- package/ownership-key-authority.mjs +112 -7
- package/ownership-key-command.mjs +76 -19
- package/ownership-key-trust.mjs +97 -9
- package/ownership-lockfiles.mjs +311 -0
- package/ownership-report-command.mjs +12 -3
- package/ownership-report.mjs +20 -17
- package/ownership-repositories.json +19 -0
- package/ownership-scan-worker.mjs +96 -11
- package/ownership-source.mjs +39 -0
- package/ownership-staged.mjs +193 -0
- package/ownership-verdict.mjs +74 -0
- package/ownership.mjs +215 -107
- package/package.json +1 -1
- package/protected-credentials.mjs +111 -0
- package/prune-r2.mjs +4 -3
- package/pub-upload.mjs +3 -85
- package/publication-artifacts.mjs +108 -0
- package/publication-gate.mjs +28 -7
- package/publish-cargo.mjs +47 -16
- package/publish-swift.mjs +46 -17
- package/publish-update.mjs +61 -39
- package/r2-verified-upload.mjs +41 -0
- package/registry-parity.mjs +5 -3
- package/release-state.mjs +1 -0
- package/release-token.mjs +2 -0
- package/rightkit-drift.mjs +3 -2
- package/rightkit-ownership.json +2028 -139
- package/rightkit-signing-agent.mjs +5 -3
- package/rightkit-sync.mjs +6 -2
- package/rightkit-versions.json +215 -103
- package/runtime-artifact-manifest.mjs +20 -6
- package/sign-updater.mjs +5 -0
- package/signing-agent-client.mjs +2 -1
- package/signing-agent-install.mjs +3 -2
- package/standalone-clone-verify.mjs +3 -2
- package/tauri-bundle-marker.mjs +3 -2
- package/upload-large.mjs +36 -82
- package/verifier.mjs +5 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { resolveManagedRoots } from './managed-roots.mjs';
|
|
2
3
|
import * as fs from "node:fs";
|
|
3
4
|
import net from "node:net";
|
|
4
5
|
import os from "node:os";
|
|
@@ -17,12 +18,12 @@ export class SigningAgentError extends Error {
|
|
|
17
18
|
}
|
|
18
19
|
const fail = (code, message) => { throw new SigningAgentError(code, message); };
|
|
19
20
|
export function signingAgentPaths(home = os.userInfo().homedir) {
|
|
20
|
-
const directory =
|
|
21
|
+
const directory = resolveManagedRoots({ platform: "darwin", home }).signingAgent;
|
|
21
22
|
return { directory, socket: path.join(directory, "agent.sock"), token: path.join(directory, "token"),
|
|
22
23
|
config: path.join(directory, "config.json"), runtime: path.join(directory, "runtime"),
|
|
23
24
|
log: path.join(directory, "requests.jsonl"), plist: path.join(home, "Library/LaunchAgents", `${AGENT_LABEL}.plist`) };
|
|
24
25
|
}
|
|
25
|
-
export function defaultSigningRoots(home = os.userInfo().homedir, managedRoot =
|
|
26
|
+
export function defaultSigningRoots(home = os.userInfo().homedir, managedRoot = resolveManagedRoots({ home }).dataRoot, cargoTargetDirs = []) {
|
|
26
27
|
return [...new Set(["/Volumes/D/claude", managedRoot, "/Volumes/D/rightkit-build-control",
|
|
27
28
|
path.join(home, "Library/Caches/RightSuite/release"), "/tmp", "/private/tmp", os.tmpdir(), ...cargoTargetDirs])];
|
|
28
29
|
}
|
|
@@ -380,7 +381,8 @@ export async function startSigningAgent({ paths = signingAgentPaths(), config, i
|
|
|
380
381
|
server.on("error", () => { log({ event: "service.failed", code: "MAC_SIGNING_AGENT_SOCKET" }); });
|
|
381
382
|
return server;
|
|
382
383
|
}
|
|
383
|
-
|
|
384
|
+
const realOrSelf = (file) => { try { return fs.realpathSync(file); } catch { return path.resolve(file); } };
|
|
385
|
+
if (process.argv[1] && realOrSelf(process.argv[1]) === realOrSelf(fileURLToPath(import.meta.url))) {
|
|
384
386
|
process.umask(0o077);
|
|
385
387
|
startSigningAgent().then((server) => {
|
|
386
388
|
const stop = () => { managedSigningLog(signingAgentPaths().log, { event: "service.stopping" }); server.close(() => process.exit(0)); setTimeout(() => process.exit(0), 2000).unref(); };
|
package/rightkit-sync.mjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Every publishable crate under crates/ and package under packages/ is looked up; a newer
|
|
4
4
|
// published version becomes the staged (latest) version and the one it replaces stays allowed
|
|
5
5
|
// in legacyCargo / legacyNpm, so apps pinned to it keep validating until they adopt.
|
|
6
|
-
import { existsSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
|
|
6
|
+
import { existsSync, readFileSync, readdirSync, writeFileSync, realpathSync } from "node:fs";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { fileURLToPath } from "node:url";
|
|
9
9
|
|
|
@@ -189,6 +189,9 @@ export function syncConsumerCopies(root = rightkitRoot) {
|
|
|
189
189
|
["rightkit-versions.json", path.join(root, "packages", "build-control-policy", "src", "ownership-session-versions.json")],
|
|
190
190
|
["rightkit-drift.mjs", path.join(root, "packages", "build-control-policy", "src", "rightkit-drift.mjs")],
|
|
191
191
|
["background-process.mjs", path.join(root, "packages", "build-control-policy", "src", "background-process.mjs")],
|
|
192
|
+
["ownership-source.mjs", path.join(root, "packages", "build-control-policy", "src", "ownership-source.mjs")],
|
|
193
|
+
["ownership-availability.mjs", path.join(root, "packages", "build-control-policy", "src", "ownership-availability.mjs")],
|
|
194
|
+
["ownership-availability.mjs", path.join(root, "packages", "build-control-clients", "src", "ownership-availability.mjs")],
|
|
192
195
|
];
|
|
193
196
|
const updated = [];
|
|
194
197
|
for (const [source, target] of targets) {
|
|
@@ -201,7 +204,8 @@ export function syncConsumerCopies(root = rightkitRoot) {
|
|
|
201
204
|
return updated;
|
|
202
205
|
}
|
|
203
206
|
|
|
204
|
-
|
|
207
|
+
const realOrSelf = (file) => { try { return realpathSync(file); } catch { return path.resolve(file); } };
|
|
208
|
+
if (process.argv[1] && realOrSelf(process.argv[1]) === realOrSelf(fileURLToPath(import.meta.url))) {
|
|
205
209
|
const main = async () => {
|
|
206
210
|
const args = process.argv.slice(2);
|
|
207
211
|
if (args[0] === "stage") {
|
package/rightkit-versions.json
CHANGED
|
@@ -13,28 +13,28 @@
|
|
|
13
13
|
"@rightkit/updates": "0.2.3"
|
|
14
14
|
},
|
|
15
15
|
"stagedNpm": {
|
|
16
|
-
"@rightkit/app-shell": "0.
|
|
16
|
+
"@rightkit/app-shell": "0.3.0",
|
|
17
17
|
"@rightkit/ax": "0.2.4",
|
|
18
|
-
"@rightkit/doc-render": "0.1.
|
|
19
|
-
"@rightkit/git": "0.2.
|
|
20
|
-
"@rightkit/hooks": "0.1.
|
|
18
|
+
"@rightkit/doc-render": "0.1.4",
|
|
19
|
+
"@rightkit/git": "0.2.30",
|
|
20
|
+
"@rightkit/hooks": "0.1.2",
|
|
21
21
|
"@rightkit/i18n": "0.1.0",
|
|
22
22
|
"@rightkit/legal": "0.3.1",
|
|
23
|
-
"@rightkit/legal-ui": "0.
|
|
23
|
+
"@rightkit/legal-ui": "0.2.0",
|
|
24
24
|
"@rightkit/license": "0.1.8",
|
|
25
25
|
"@rightkit/logs": "0.1.4",
|
|
26
|
-
"@rightkit/media-ui": "0.
|
|
27
|
-
"@rightkit/onboarding": "0.
|
|
26
|
+
"@rightkit/media-ui": "0.3.0",
|
|
27
|
+
"@rightkit/onboarding": "0.3.0",
|
|
28
28
|
"@rightkit/pdf-ui": "0.1.2",
|
|
29
|
-
"@rightkit/platform-ui": "0.
|
|
30
|
-
"@rightkit/qa": "0.
|
|
29
|
+
"@rightkit/platform-ui": "0.2.0",
|
|
30
|
+
"@rightkit/qa": "0.4.0",
|
|
31
31
|
"@rightkit/qa-chrome": "0.1.3",
|
|
32
|
-
"@rightkit/release": "0.2.
|
|
33
|
-
"@rightkit/settings-ui": "0.
|
|
32
|
+
"@rightkit/release": "0.2.137",
|
|
33
|
+
"@rightkit/settings-ui": "0.3.0",
|
|
34
34
|
"@rightkit/shell": "0.1.0",
|
|
35
|
-
"@rightkit/tauri": "0.
|
|
35
|
+
"@rightkit/tauri": "0.2.0",
|
|
36
36
|
"@rightkit/theme": "0.2.1",
|
|
37
|
-
"@rightkit/updates": "0.2.
|
|
37
|
+
"@rightkit/updates": "0.2.5"
|
|
38
38
|
},
|
|
39
39
|
"legacyNpm": {
|
|
40
40
|
"@rightkit/ax": [
|
|
@@ -67,15 +67,21 @@
|
|
|
67
67
|
"0.2.22",
|
|
68
68
|
"0.2.23",
|
|
69
69
|
"0.2.24",
|
|
70
|
-
"0.2.25"
|
|
70
|
+
"0.2.25",
|
|
71
|
+
"0.2.26",
|
|
72
|
+
"0.2.27",
|
|
73
|
+
"0.2.28",
|
|
74
|
+
"0.2.29"
|
|
71
75
|
],
|
|
72
76
|
"@rightkit/legal-ui": [
|
|
73
77
|
"0.1.0",
|
|
74
78
|
"0.1.1",
|
|
75
|
-
"0.1.2"
|
|
79
|
+
"0.1.2",
|
|
80
|
+
"0.1.3"
|
|
76
81
|
],
|
|
77
82
|
"@rightkit/hooks": [
|
|
78
|
-
"0.1.0"
|
|
83
|
+
"0.1.0",
|
|
84
|
+
"0.1.1"
|
|
79
85
|
],
|
|
80
86
|
"@rightkit/legal": [
|
|
81
87
|
"0.3.0"
|
|
@@ -158,7 +164,9 @@
|
|
|
158
164
|
"0.2.131",
|
|
159
165
|
"0.2.132",
|
|
160
166
|
"0.2.133",
|
|
161
|
-
"0.2.134"
|
|
167
|
+
"0.2.134",
|
|
168
|
+
"0.2.135",
|
|
169
|
+
"0.2.136"
|
|
162
170
|
],
|
|
163
171
|
"@rightkit/qa": [
|
|
164
172
|
"0.1.0",
|
|
@@ -168,11 +176,13 @@
|
|
|
168
176
|
"0.2.3",
|
|
169
177
|
"0.2.4",
|
|
170
178
|
"0.3.0",
|
|
171
|
-
"0.3.1"
|
|
179
|
+
"0.3.1",
|
|
180
|
+
"0.3.2"
|
|
172
181
|
],
|
|
173
182
|
"@rightkit/app-shell": [
|
|
174
183
|
"0.1.0",
|
|
175
|
-
"0.2.0"
|
|
184
|
+
"0.2.0",
|
|
185
|
+
"0.2.1"
|
|
176
186
|
],
|
|
177
187
|
"@rightkit/media-ui": [
|
|
178
188
|
"0.1.0",
|
|
@@ -181,7 +191,8 @@
|
|
|
181
191
|
"0.2.2",
|
|
182
192
|
"0.2.3",
|
|
183
193
|
"0.2.4",
|
|
184
|
-
"0.2.5"
|
|
194
|
+
"0.2.5",
|
|
195
|
+
"0.2.6"
|
|
185
196
|
],
|
|
186
197
|
"@rightkit/theme": [
|
|
187
198
|
"0.1.0",
|
|
@@ -194,21 +205,25 @@
|
|
|
194
205
|
"0.2.3",
|
|
195
206
|
"0.2.4",
|
|
196
207
|
"0.2.5",
|
|
197
|
-
"0.2.6"
|
|
208
|
+
"0.2.6",
|
|
209
|
+
"0.2.7"
|
|
198
210
|
],
|
|
199
211
|
"@rightkit/onboarding": [
|
|
200
212
|
"0.1.0",
|
|
201
213
|
"0.2.0",
|
|
202
214
|
"0.2.1",
|
|
203
|
-
"0.2.2"
|
|
215
|
+
"0.2.2",
|
|
216
|
+
"0.2.3"
|
|
204
217
|
],
|
|
205
218
|
"@rightkit/doc-render": [
|
|
206
219
|
"0.1.0",
|
|
207
220
|
"0.1.1",
|
|
208
|
-
"0.1.2"
|
|
221
|
+
"0.1.2",
|
|
222
|
+
"0.1.3"
|
|
209
223
|
],
|
|
210
224
|
"@rightkit/platform-ui": [
|
|
211
|
-
"0.1.1"
|
|
225
|
+
"0.1.1",
|
|
226
|
+
"0.1.2"
|
|
212
227
|
],
|
|
213
228
|
"@rightkit/pdf-ui": [
|
|
214
229
|
"0.1.0",
|
|
@@ -218,6 +233,12 @@
|
|
|
218
233
|
"0.1.0",
|
|
219
234
|
"0.1.1",
|
|
220
235
|
"0.1.2"
|
|
236
|
+
],
|
|
237
|
+
"@rightkit/updates": [
|
|
238
|
+
"0.2.4"
|
|
239
|
+
],
|
|
240
|
+
"@rightkit/tauri": [
|
|
241
|
+
"0.1.1"
|
|
221
242
|
]
|
|
222
243
|
},
|
|
223
244
|
"cargo": {
|
|
@@ -238,41 +259,50 @@
|
|
|
238
259
|
"rightkit-tauri": "0.1.0"
|
|
239
260
|
},
|
|
240
261
|
"stagedCargo": {
|
|
241
|
-
"
|
|
262
|
+
"agent-room-core": "0.3.0",
|
|
263
|
+
"rightkit-asr": "0.0.2",
|
|
264
|
+
"rightkit-audio": "0.2.0",
|
|
242
265
|
"rightkit-automation": "0.1.0",
|
|
243
|
-
"rightkit-browser": "0.2.
|
|
266
|
+
"rightkit-browser": "0.2.3",
|
|
244
267
|
"rightkit-cache": "0.1.0",
|
|
268
|
+
"rightkit-contracts": "0.1.2",
|
|
245
269
|
"rightkit-control": "0.1.9",
|
|
246
|
-
"rightkit-crash": "0.
|
|
247
|
-
"rightkit-db": "0.3.
|
|
248
|
-
"rightkit-embed": "0.
|
|
270
|
+
"rightkit-crash": "0.2.0",
|
|
271
|
+
"rightkit-db": "0.3.2",
|
|
272
|
+
"rightkit-embed": "0.3.1",
|
|
249
273
|
"rightkit-framed-sidecar": "0.1.0",
|
|
250
|
-
"rightkit-fs": "0.
|
|
251
|
-
"rightkit-
|
|
252
|
-
"rightkit-
|
|
274
|
+
"rightkit-fs": "0.3.2",
|
|
275
|
+
"rightkit-fsindex": "0.1.0",
|
|
276
|
+
"rightkit-http": "0.2.2",
|
|
277
|
+
"rightkit-jobs": "0.2.6",
|
|
253
278
|
"rightkit-license": "0.1.3",
|
|
254
279
|
"rightkit-logs": "0.2.0",
|
|
255
|
-
"rightkit-mcp": "0.
|
|
256
|
-
"rightkit-media": "0.2.
|
|
257
|
-
"rightkit-models": "0.2.
|
|
258
|
-
"rightkit-oauth": "0.
|
|
259
|
-
"rightkit-
|
|
260
|
-
"rightkit-
|
|
280
|
+
"rightkit-mcp": "0.5.1",
|
|
281
|
+
"rightkit-media": "0.2.4",
|
|
282
|
+
"rightkit-models": "0.2.7",
|
|
283
|
+
"rightkit-oauth": "0.3.0",
|
|
284
|
+
"rightkit-ocr": "0.1.2",
|
|
285
|
+
"rightkit-ort": "0.2.2",
|
|
286
|
+
"rightkit-ownership": "0.2.0",
|
|
287
|
+
"rightkit-pdf": "0.2.0",
|
|
261
288
|
"rightkit-playback": "0.1.1",
|
|
262
|
-
"rightkit-process": "0.3.
|
|
263
|
-
"rightkit-qa": "0.2.
|
|
264
|
-
"rightkit-qts": "0.2.
|
|
265
|
-
"rightkit-qts-ggml": "0.1.
|
|
266
|
-
"rightkit-qts-ggml-sys": "0.1.
|
|
267
|
-
"rightkit-sandbox": "0.
|
|
268
|
-
"rightkit-search": "0.
|
|
269
|
-
"rightkit-secrets": "0.1.
|
|
270
|
-
"rightkit-service": "0.1.
|
|
289
|
+
"rightkit-process": "0.3.3",
|
|
290
|
+
"rightkit-qa": "0.2.14",
|
|
291
|
+
"rightkit-qts": "0.2.4",
|
|
292
|
+
"rightkit-qts-ggml": "0.1.1",
|
|
293
|
+
"rightkit-qts-ggml-sys": "0.1.1",
|
|
294
|
+
"rightkit-sandbox": "0.3.3",
|
|
295
|
+
"rightkit-search": "0.2.0",
|
|
296
|
+
"rightkit-secrets": "0.1.2",
|
|
297
|
+
"rightkit-service": "0.1.3",
|
|
271
298
|
"rightkit-settings": "0.1.0",
|
|
272
|
-
"rightkit-shell": "0.1.
|
|
273
|
-
"rightkit-speech-client": "0.3.
|
|
299
|
+
"rightkit-shell": "0.1.4",
|
|
300
|
+
"rightkit-speech-client": "0.3.2",
|
|
274
301
|
"rightkit-sync": "0.1.0",
|
|
275
|
-
"rightkit-tauri": "0.1.
|
|
302
|
+
"rightkit-tauri": "0.1.2",
|
|
303
|
+
"rightkit-transcript": "0.1.0",
|
|
304
|
+
"rightkit-tts": "0.1.0",
|
|
305
|
+
"rightkit-vad": "0.0.2",
|
|
276
306
|
"rightkit-watch": "0.3.1"
|
|
277
307
|
},
|
|
278
308
|
"swift": {
|
|
@@ -289,125 +319,162 @@
|
|
|
289
319
|
},
|
|
290
320
|
"registry": {
|
|
291
321
|
"cargo": {
|
|
292
|
-
"rightkit-
|
|
322
|
+
"rightkit-asr": "0.0.2",
|
|
323
|
+
"rightkit-audio": "0.2.0",
|
|
293
324
|
"rightkit-browser": "0.2.2",
|
|
294
325
|
"rightkit-cache": "0.1.0",
|
|
295
326
|
"rightkit-control": "0.1.9",
|
|
296
|
-
"rightkit-crash": "0.
|
|
297
|
-
"rightkit-db": "0.3.
|
|
298
|
-
"rightkit-embed": "0.
|
|
327
|
+
"rightkit-crash": "0.2.0",
|
|
328
|
+
"rightkit-db": "0.3.2",
|
|
329
|
+
"rightkit-embed": "0.3.1",
|
|
299
330
|
"rightkit-framed-sidecar": "0.1.0",
|
|
300
|
-
"rightkit-fs": "0.
|
|
301
|
-
"rightkit-
|
|
302
|
-
"rightkit-
|
|
331
|
+
"rightkit-fs": "0.3.2",
|
|
332
|
+
"rightkit-fsindex": "0.1.0",
|
|
333
|
+
"rightkit-http": "0.2.2",
|
|
334
|
+
"rightkit-jobs": "0.2.6",
|
|
303
335
|
"rightkit-license": "0.1.3",
|
|
304
336
|
"rightkit-logs": "0.2.0",
|
|
305
|
-
"rightkit-mcp": "0.
|
|
306
|
-
"rightkit-media": "0.2.
|
|
307
|
-
"rightkit-models": "0.2.
|
|
308
|
-
"rightkit-oauth": "0.
|
|
309
|
-
"rightkit-
|
|
310
|
-
"rightkit-
|
|
337
|
+
"rightkit-mcp": "0.5.1",
|
|
338
|
+
"rightkit-media": "0.2.4",
|
|
339
|
+
"rightkit-models": "0.2.7",
|
|
340
|
+
"rightkit-oauth": "0.3.0",
|
|
341
|
+
"rightkit-ocr": "0.1.2",
|
|
342
|
+
"rightkit-ort": "0.2.2",
|
|
343
|
+
"rightkit-ownership": "0.2.0",
|
|
344
|
+
"rightkit-pdf": "0.2.0",
|
|
311
345
|
"rightkit-playback": "0.1.1",
|
|
312
|
-
"rightkit-process": "0.3.
|
|
313
|
-
"rightkit-qa": "0.2.
|
|
314
|
-
"rightkit-qts": "0.2.
|
|
315
|
-
"rightkit-qts-ggml": "0.1.
|
|
316
|
-
"rightkit-qts-ggml-sys": "0.1.
|
|
317
|
-
"rightkit-sandbox": "0.
|
|
318
|
-
"rightkit-search": "0.
|
|
319
|
-
"rightkit-secrets": "0.1.
|
|
320
|
-
"rightkit-service": "0.1.
|
|
346
|
+
"rightkit-process": "0.3.3",
|
|
347
|
+
"rightkit-qa": "0.2.14",
|
|
348
|
+
"rightkit-qts": "0.2.4",
|
|
349
|
+
"rightkit-qts-ggml": "0.1.1",
|
|
350
|
+
"rightkit-qts-ggml-sys": "0.1.1",
|
|
351
|
+
"rightkit-sandbox": "0.3.3",
|
|
352
|
+
"rightkit-search": "0.2.0",
|
|
353
|
+
"rightkit-secrets": "0.1.2",
|
|
354
|
+
"rightkit-service": "0.1.3",
|
|
321
355
|
"rightkit-settings": "0.1.0",
|
|
322
|
-
"rightkit-shell": "0.1.
|
|
323
|
-
"rightkit-speech-client": "0.3.
|
|
324
|
-
"rightkit-tauri": "0.1.
|
|
356
|
+
"rightkit-shell": "0.1.4",
|
|
357
|
+
"rightkit-speech-client": "0.3.2",
|
|
358
|
+
"rightkit-tauri": "0.1.2",
|
|
359
|
+
"rightkit-transcript": "0.1.0",
|
|
360
|
+
"rightkit-tts": "0.1.0",
|
|
361
|
+
"rightkit-vad": "0.0.2",
|
|
325
362
|
"rightkit-watch": "0.3.1"
|
|
326
363
|
},
|
|
327
364
|
"npm": {
|
|
328
|
-
"@rightkit/app-shell": "0.
|
|
365
|
+
"@rightkit/app-shell": "0.3.0",
|
|
329
366
|
"@rightkit/ax": "0.2.4",
|
|
330
|
-
"@rightkit/doc-render": "0.1.
|
|
331
|
-
"@rightkit/git": "0.2.
|
|
332
|
-
"@rightkit/hooks": "0.1.
|
|
367
|
+
"@rightkit/doc-render": "0.1.4",
|
|
368
|
+
"@rightkit/git": "0.2.30",
|
|
369
|
+
"@rightkit/hooks": "0.1.2",
|
|
333
370
|
"@rightkit/i18n": "0.1.0",
|
|
334
371
|
"@rightkit/legal": "0.3.1",
|
|
335
|
-
"@rightkit/legal-ui": "0.
|
|
372
|
+
"@rightkit/legal-ui": "0.2.0",
|
|
336
373
|
"@rightkit/license": "0.1.8",
|
|
337
374
|
"@rightkit/logs": "0.1.4",
|
|
338
|
-
"@rightkit/media-ui": "0.
|
|
339
|
-
"@rightkit/onboarding": "0.
|
|
375
|
+
"@rightkit/media-ui": "0.3.0",
|
|
376
|
+
"@rightkit/onboarding": "0.3.0",
|
|
340
377
|
"@rightkit/pdf-ui": "0.1.2",
|
|
341
|
-
"@rightkit/platform-ui": "0.
|
|
342
|
-
"@rightkit/qa": "0.
|
|
378
|
+
"@rightkit/platform-ui": "0.2.0",
|
|
379
|
+
"@rightkit/qa": "0.4.0",
|
|
343
380
|
"@rightkit/qa-chrome": "0.1.3",
|
|
344
|
-
"@rightkit/release": "0.2.
|
|
345
|
-
"@rightkit/settings-ui": "0.
|
|
381
|
+
"@rightkit/release": "0.2.137",
|
|
382
|
+
"@rightkit/settings-ui": "0.3.0",
|
|
346
383
|
"@rightkit/shell": "0.1.0",
|
|
347
|
-
"@rightkit/tauri": "0.
|
|
384
|
+
"@rightkit/tauri": "0.2.0",
|
|
348
385
|
"@rightkit/theme": "0.2.1",
|
|
349
|
-
"@rightkit/updates": "0.2.
|
|
386
|
+
"@rightkit/updates": "0.2.5"
|
|
350
387
|
}
|
|
351
388
|
},
|
|
352
389
|
"legacyCargo": {
|
|
353
390
|
"rightkit-browser": [
|
|
354
391
|
"0.2.0",
|
|
355
|
-
"0.2.1"
|
|
392
|
+
"0.2.1",
|
|
393
|
+
"0.2.2"
|
|
356
394
|
],
|
|
357
395
|
"rightkit-models": [
|
|
358
|
-
"0.2.1"
|
|
396
|
+
"0.2.1",
|
|
397
|
+
"0.2.2",
|
|
398
|
+
"0.2.3",
|
|
399
|
+
"0.2.4",
|
|
400
|
+
"0.2.5",
|
|
401
|
+
"0.2.6"
|
|
359
402
|
],
|
|
360
403
|
"rightkit-audio": [
|
|
361
|
-
"0.1.0"
|
|
404
|
+
"0.1.0",
|
|
405
|
+
"0.1.1"
|
|
362
406
|
],
|
|
363
407
|
"rightkit-db": [
|
|
364
|
-
"0.2.1"
|
|
408
|
+
"0.2.1",
|
|
409
|
+
"0.3.0",
|
|
410
|
+
"0.3.1"
|
|
365
411
|
],
|
|
366
412
|
"rightkit-embed": [
|
|
367
|
-
"0.2.1"
|
|
413
|
+
"0.2.1",
|
|
414
|
+
"0.2.2",
|
|
415
|
+
"0.3.0"
|
|
368
416
|
],
|
|
369
417
|
"rightkit-jobs": [
|
|
370
|
-
"0.2.1"
|
|
418
|
+
"0.2.1",
|
|
419
|
+
"0.2.2",
|
|
420
|
+
"0.2.3",
|
|
421
|
+
"0.2.4",
|
|
422
|
+
"0.2.5"
|
|
371
423
|
],
|
|
372
424
|
"rightkit-mcp": [
|
|
373
425
|
"0.1.1",
|
|
374
426
|
"0.2.0",
|
|
375
|
-
"0.3.0"
|
|
427
|
+
"0.3.0",
|
|
428
|
+
"0.3.1",
|
|
429
|
+
"0.4.0",
|
|
430
|
+
"0.5.0"
|
|
376
431
|
],
|
|
377
432
|
"rightkit-media": [
|
|
378
|
-
"0.2.2"
|
|
433
|
+
"0.2.2",
|
|
434
|
+
"0.2.3"
|
|
379
435
|
],
|
|
380
436
|
"rightkit-oauth": [
|
|
381
|
-
"0.2.0"
|
|
437
|
+
"0.2.0",
|
|
438
|
+
"0.2.1"
|
|
382
439
|
],
|
|
383
440
|
"rightkit-ort": [
|
|
384
|
-
"0.1.4"
|
|
441
|
+
"0.1.4",
|
|
442
|
+
"0.2.0",
|
|
443
|
+
"0.2.1"
|
|
385
444
|
],
|
|
386
445
|
"rightkit-playback": [
|
|
387
446
|
"0.1.0"
|
|
388
447
|
],
|
|
389
448
|
"rightkit-process": [
|
|
390
449
|
"0.2.1",
|
|
391
|
-
"0.3.0"
|
|
450
|
+
"0.3.0",
|
|
451
|
+
"0.3.1",
|
|
452
|
+
"0.3.2"
|
|
392
453
|
],
|
|
393
454
|
"rightkit-qa": [
|
|
394
455
|
"0.2.7",
|
|
395
456
|
"0.2.8",
|
|
396
457
|
"0.2.9",
|
|
397
458
|
"0.2.10",
|
|
398
|
-
"0.2.11"
|
|
459
|
+
"0.2.11",
|
|
460
|
+
"0.2.12"
|
|
399
461
|
],
|
|
400
462
|
"rightkit-sandbox": [
|
|
401
463
|
"0.1.0",
|
|
402
464
|
"0.2.0",
|
|
403
465
|
"0.2.1",
|
|
404
466
|
"0.2.2",
|
|
405
|
-
"0.2.3"
|
|
467
|
+
"0.2.3",
|
|
468
|
+
"0.2.4",
|
|
469
|
+
"0.3.0",
|
|
470
|
+
"0.3.1",
|
|
471
|
+
"0.3.2"
|
|
406
472
|
],
|
|
407
473
|
"rightkit-shell": [
|
|
408
474
|
"0.1.0",
|
|
409
475
|
"0.1.1",
|
|
410
|
-
"0.1.2"
|
|
476
|
+
"0.1.2",
|
|
477
|
+
"0.1.3"
|
|
411
478
|
],
|
|
412
479
|
"rightkit-watch": [
|
|
413
480
|
"0.1.0",
|
|
@@ -415,12 +482,57 @@
|
|
|
415
482
|
"0.3.0"
|
|
416
483
|
],
|
|
417
484
|
"rightkit-qts": [
|
|
418
|
-
"0.2.0"
|
|
485
|
+
"0.2.0",
|
|
486
|
+
"0.2.1",
|
|
487
|
+
"0.2.2",
|
|
488
|
+
"0.2.3"
|
|
419
489
|
],
|
|
420
490
|
"rightkit-control": [
|
|
421
491
|
"0.1.6",
|
|
422
492
|
"0.1.7",
|
|
423
493
|
"0.1.8"
|
|
494
|
+
],
|
|
495
|
+
"rightkit-secrets": [
|
|
496
|
+
"0.1.0",
|
|
497
|
+
"0.1.1"
|
|
498
|
+
],
|
|
499
|
+
"rightkit-http": [
|
|
500
|
+
"0.1.0",
|
|
501
|
+
"0.2.0",
|
|
502
|
+
"0.2.1"
|
|
503
|
+
],
|
|
504
|
+
"rightkit-fs": [
|
|
505
|
+
"0.1.0",
|
|
506
|
+
"0.2.0",
|
|
507
|
+
"0.3.0",
|
|
508
|
+
"0.3.1"
|
|
509
|
+
],
|
|
510
|
+
"rightkit-service": [
|
|
511
|
+
"0.1.0",
|
|
512
|
+
"0.1.1",
|
|
513
|
+
"0.1.2"
|
|
514
|
+
],
|
|
515
|
+
"rightkit-search": [
|
|
516
|
+
"0.1.0"
|
|
517
|
+
],
|
|
518
|
+
"rightkit-tauri": [
|
|
519
|
+
"0.1.1"
|
|
520
|
+
],
|
|
521
|
+
"rightkit-qts-ggml": [
|
|
522
|
+
"0.1.0"
|
|
523
|
+
],
|
|
524
|
+
"rightkit-pdf": [
|
|
525
|
+
"0.1.0"
|
|
526
|
+
],
|
|
527
|
+
"rightkit-speech-client": [
|
|
528
|
+
"0.3.0",
|
|
529
|
+
"0.3.1"
|
|
530
|
+
],
|
|
531
|
+
"rightkit-crash": [
|
|
532
|
+
"0.1.0"
|
|
533
|
+
],
|
|
534
|
+
"rightkit-qts-ggml-sys": [
|
|
535
|
+
"0.1.0"
|
|
424
536
|
]
|
|
425
537
|
}
|
|
426
538
|
}
|
|
@@ -21,8 +21,8 @@ export const RIGHT_SUITE_APP_KEYS = Object.freeze([
|
|
|
21
21
|
"voiceright",
|
|
22
22
|
]);
|
|
23
23
|
|
|
24
|
-
const TARGET_OSES = new Set(["windows", "darwin", "linux", "ios"]);
|
|
25
|
-
const TARGET_ARCHES = new Set(["x86_64", "aarch64", "universal"]);
|
|
24
|
+
const TARGET_OSES = new Set(["windows", "darwin", "linux", "ios", "any"]);
|
|
25
|
+
const TARGET_ARCHES = new Set(["x86_64", "aarch64", "universal", "any"]);
|
|
26
26
|
const VERSION_FIELDS = Object.freeze([
|
|
27
27
|
"runtime",
|
|
28
28
|
"model",
|
|
@@ -32,6 +32,7 @@ const VERSION_FIELDS = Object.freeze([
|
|
|
32
32
|
"provenance",
|
|
33
33
|
]);
|
|
34
34
|
const SHA256 = /^[0-9a-f]{64}$/;
|
|
35
|
+
const ARTIFACT_ID = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
35
36
|
|
|
36
37
|
export function buildRuntimeArtifactManifest(input) {
|
|
37
38
|
const entitlement = cloneObject(input.entitlement);
|
|
@@ -53,6 +54,7 @@ export function buildRuntimeArtifactManifest(input) {
|
|
|
53
54
|
provenance: cloneObject(input.provenance),
|
|
54
55
|
promotion: cloneObject(input.promotion),
|
|
55
56
|
};
|
|
57
|
+
if (Object.hasOwn(input, "artifactId")) manifest.artifactId = input.artifactId;
|
|
56
58
|
if (manifest.distribution?.delivery === "bundled") {
|
|
57
59
|
manifest.object.r2Key = null;
|
|
58
60
|
manifest.pointerKey = null;
|
|
@@ -78,11 +80,15 @@ export function runtimeArtifactManifestPointerKey(value) {
|
|
|
78
80
|
const kind = value?.artifactKind;
|
|
79
81
|
const os = value?.target?.os;
|
|
80
82
|
const arch = value?.target?.arch;
|
|
83
|
+
const hasArtifactId = value !== null && typeof value === "object" && Object.hasOwn(value, "artifactId");
|
|
81
84
|
assertAppKey(appKey, "entitlement.appKey");
|
|
85
|
+
if (hasArtifactId) assertArtifactId(value.artifactId);
|
|
82
86
|
if (!RUNTIME_ARTIFACT_KINDS.includes(kind)) fail("artifactKind is unsupported");
|
|
83
87
|
if (!TARGET_OSES.has(os)) fail("target.os is unsupported");
|
|
84
88
|
if (!TARGET_ARCHES.has(arch)) fail("target.arch is unsupported");
|
|
85
|
-
|
|
89
|
+
if ((os === "any") !== (arch === "any")) fail("target any must use any/any");
|
|
90
|
+
const artifactPath = hasArtifactId ? `${value.artifactId}/` : "";
|
|
91
|
+
return `${appKey}/runtime-artifacts/${kind}/${artifactPath}${os}/${arch}/current/manifest.json`;
|
|
86
92
|
}
|
|
87
93
|
|
|
88
94
|
export function validateRuntimeArtifactManifest(value) {
|
|
@@ -90,7 +96,8 @@ export function validateRuntimeArtifactManifest(value) {
|
|
|
90
96
|
assertExactKeys(value, [
|
|
91
97
|
"schema", "artifactKind", "entitlement", "distribution", "target", "object", "pointerKey",
|
|
92
98
|
"versions", "provenance", "promotion",
|
|
93
|
-
], "manifest");
|
|
99
|
+
], "manifest", ["artifactId"]);
|
|
100
|
+
if (Object.hasOwn(value, "artifactId")) assertArtifactId(value.artifactId);
|
|
94
101
|
if (value.schema !== RUNTIME_ARTIFACT_SCHEMA) fail("schema must be 1");
|
|
95
102
|
if (!RUNTIME_ARTIFACT_KINDS.includes(value.artifactKind)) fail("artifactKind is unsupported");
|
|
96
103
|
|
|
@@ -120,6 +127,7 @@ export function validateRuntimeArtifactManifest(value) {
|
|
|
120
127
|
assertExactKeys(value.target, ["os", "arch"], "target");
|
|
121
128
|
if (!TARGET_OSES.has(value.target.os)) fail("target.os is unsupported");
|
|
122
129
|
if (!TARGET_ARCHES.has(value.target.arch)) fail("target.arch is unsupported");
|
|
130
|
+
if ((value.target.os === "any") !== (value.target.arch === "any")) fail("target any must use any/any");
|
|
123
131
|
|
|
124
132
|
assertPlainObject(value.object, "object");
|
|
125
133
|
assertExactKeys(value.object, ["r2Key", "filename", "sha256", "sizeBytes"], "object");
|
|
@@ -204,12 +212,18 @@ function sortDeep(value) {
|
|
|
204
212
|
return value;
|
|
205
213
|
}
|
|
206
214
|
|
|
207
|
-
function assertExactKeys(value, expected, label) {
|
|
208
|
-
const expectedSet = new Set(expected);
|
|
215
|
+
function assertExactKeys(value, expected, label, optional = []) {
|
|
216
|
+
const expectedSet = new Set([...expected, ...optional]);
|
|
209
217
|
for (const key of Object.keys(value)) if (!expectedSet.has(key)) fail(`${label} has unknown field ${key}`);
|
|
210
218
|
for (const key of expected) if (!Object.hasOwn(value, key)) fail(`${label}.${key} is required`);
|
|
211
219
|
}
|
|
212
220
|
|
|
221
|
+
function assertArtifactId(value) {
|
|
222
|
+
if (typeof value !== "string" || value.length > 128 || value.trim() !== value || !ARTIFACT_ID.test(value)) {
|
|
223
|
+
fail("artifactId must be a lowercase safe slug (^[a-z0-9]+(?:-[a-z0-9]+)*$), max 128 characters");
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
213
227
|
function assertPlainObject(value, label) {
|
|
214
228
|
if (value === null || typeof value !== "object" || Array.isArray(value) || Object.getPrototypeOf(value) !== Object.prototype) fail(`${label} must be a plain object`);
|
|
215
229
|
}
|
package/sign-updater.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import { spawnSync } from "./background-process.mjs";
|
|
|
3
3
|
import { existsSync, readFileSync, rmSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { signMacUpdaterFiles } from "./macos-signing-session.mjs";
|
|
6
|
+
import { refuseManagedEnvSecrets, MANAGED_HOST_ENV_SECRET_REFUSED } from "./managed-host-secrets.mjs";
|
|
6
7
|
|
|
7
8
|
const args = process.argv.slice(2);
|
|
8
9
|
const files = [];
|
|
@@ -15,6 +16,10 @@ for (let i = 0; i < args.length; i++) {
|
|
|
15
16
|
if (!files.length) fail("at least one --file is required");
|
|
16
17
|
|
|
17
18
|
const env = { ...process.env };
|
|
19
|
+
if (!dryRun) {
|
|
20
|
+
try { refuseManagedEnvSecrets(process.env, ["TAURI_SIGNING_PRIVATE_KEY", "TAURI_SIGNING_PRIVATE_KEY_PASSWORD"]); }
|
|
21
|
+
catch (error) { fail(`[${MANAGED_HOST_ENV_SECRET_REFUSED}] ${error.message}`); }
|
|
22
|
+
}
|
|
18
23
|
if (!dryRun && !env.TAURI_SIGNING_PRIVATE_KEY) {
|
|
19
24
|
if (process.platform === "win32") {
|
|
20
25
|
const key = path.join(env.APPDATA || "", "ViewRight", "updater.key");
|
package/signing-agent-client.mjs
CHANGED
|
@@ -127,7 +127,8 @@ export function requestSigningAgentSync(request, { runClient = spawnSync, home,
|
|
|
127
127
|
if (result.error || result.status !== 0) throw new SigningAgentError("MAC_SIGNING_AGENT_CONNECTION", "Signing agent client failed");
|
|
128
128
|
return report;
|
|
129
129
|
}
|
|
130
|
-
|
|
130
|
+
const realOrSelf = (file) => { try { return fs.realpathSync(file); } catch { return path.resolve(file); } };
|
|
131
|
+
if (process.argv[1] && realOrSelf(process.argv[1]) === realOrSelf(fileURLToPath(import.meta.url))) {
|
|
131
132
|
try {
|
|
132
133
|
const { request, home, timeoutMs } = JSON.parse(fs.readFileSync(0, "utf8"));
|
|
133
134
|
const report = await requestSigningAgent(request, { paths: signingAgentPaths(home), timeoutMs,
|