@rightkit/release 0.2.135 → 0.2.136
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 +17 -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 +213 -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.29",
|
|
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.136",
|
|
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,20 @@
|
|
|
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"
|
|
71
74
|
],
|
|
72
75
|
"@rightkit/legal-ui": [
|
|
73
76
|
"0.1.0",
|
|
74
77
|
"0.1.1",
|
|
75
|
-
"0.1.2"
|
|
78
|
+
"0.1.2",
|
|
79
|
+
"0.1.3"
|
|
76
80
|
],
|
|
77
81
|
"@rightkit/hooks": [
|
|
78
|
-
"0.1.0"
|
|
82
|
+
"0.1.0",
|
|
83
|
+
"0.1.1"
|
|
79
84
|
],
|
|
80
85
|
"@rightkit/legal": [
|
|
81
86
|
"0.3.0"
|
|
@@ -158,7 +163,8 @@
|
|
|
158
163
|
"0.2.131",
|
|
159
164
|
"0.2.132",
|
|
160
165
|
"0.2.133",
|
|
161
|
-
"0.2.134"
|
|
166
|
+
"0.2.134",
|
|
167
|
+
"0.2.135"
|
|
162
168
|
],
|
|
163
169
|
"@rightkit/qa": [
|
|
164
170
|
"0.1.0",
|
|
@@ -168,11 +174,13 @@
|
|
|
168
174
|
"0.2.3",
|
|
169
175
|
"0.2.4",
|
|
170
176
|
"0.3.0",
|
|
171
|
-
"0.3.1"
|
|
177
|
+
"0.3.1",
|
|
178
|
+
"0.3.2"
|
|
172
179
|
],
|
|
173
180
|
"@rightkit/app-shell": [
|
|
174
181
|
"0.1.0",
|
|
175
|
-
"0.2.0"
|
|
182
|
+
"0.2.0",
|
|
183
|
+
"0.2.1"
|
|
176
184
|
],
|
|
177
185
|
"@rightkit/media-ui": [
|
|
178
186
|
"0.1.0",
|
|
@@ -181,7 +189,8 @@
|
|
|
181
189
|
"0.2.2",
|
|
182
190
|
"0.2.3",
|
|
183
191
|
"0.2.4",
|
|
184
|
-
"0.2.5"
|
|
192
|
+
"0.2.5",
|
|
193
|
+
"0.2.6"
|
|
185
194
|
],
|
|
186
195
|
"@rightkit/theme": [
|
|
187
196
|
"0.1.0",
|
|
@@ -194,21 +203,25 @@
|
|
|
194
203
|
"0.2.3",
|
|
195
204
|
"0.2.4",
|
|
196
205
|
"0.2.5",
|
|
197
|
-
"0.2.6"
|
|
206
|
+
"0.2.6",
|
|
207
|
+
"0.2.7"
|
|
198
208
|
],
|
|
199
209
|
"@rightkit/onboarding": [
|
|
200
210
|
"0.1.0",
|
|
201
211
|
"0.2.0",
|
|
202
212
|
"0.2.1",
|
|
203
|
-
"0.2.2"
|
|
213
|
+
"0.2.2",
|
|
214
|
+
"0.2.3"
|
|
204
215
|
],
|
|
205
216
|
"@rightkit/doc-render": [
|
|
206
217
|
"0.1.0",
|
|
207
218
|
"0.1.1",
|
|
208
|
-
"0.1.2"
|
|
219
|
+
"0.1.2",
|
|
220
|
+
"0.1.3"
|
|
209
221
|
],
|
|
210
222
|
"@rightkit/platform-ui": [
|
|
211
|
-
"0.1.1"
|
|
223
|
+
"0.1.1",
|
|
224
|
+
"0.1.2"
|
|
212
225
|
],
|
|
213
226
|
"@rightkit/pdf-ui": [
|
|
214
227
|
"0.1.0",
|
|
@@ -218,6 +231,12 @@
|
|
|
218
231
|
"0.1.0",
|
|
219
232
|
"0.1.1",
|
|
220
233
|
"0.1.2"
|
|
234
|
+
],
|
|
235
|
+
"@rightkit/updates": [
|
|
236
|
+
"0.2.4"
|
|
237
|
+
],
|
|
238
|
+
"@rightkit/tauri": [
|
|
239
|
+
"0.1.1"
|
|
221
240
|
]
|
|
222
241
|
},
|
|
223
242
|
"cargo": {
|
|
@@ -238,41 +257,50 @@
|
|
|
238
257
|
"rightkit-tauri": "0.1.0"
|
|
239
258
|
},
|
|
240
259
|
"stagedCargo": {
|
|
241
|
-
"
|
|
260
|
+
"agent-room-core": "0.3.0",
|
|
261
|
+
"rightkit-asr": "0.0.2",
|
|
262
|
+
"rightkit-audio": "0.2.0",
|
|
242
263
|
"rightkit-automation": "0.1.0",
|
|
243
|
-
"rightkit-browser": "0.2.
|
|
264
|
+
"rightkit-browser": "0.2.3",
|
|
244
265
|
"rightkit-cache": "0.1.0",
|
|
266
|
+
"rightkit-contracts": "0.1.2",
|
|
245
267
|
"rightkit-control": "0.1.9",
|
|
246
|
-
"rightkit-crash": "0.
|
|
247
|
-
"rightkit-db": "0.3.
|
|
248
|
-
"rightkit-embed": "0.
|
|
268
|
+
"rightkit-crash": "0.2.0",
|
|
269
|
+
"rightkit-db": "0.3.2",
|
|
270
|
+
"rightkit-embed": "0.3.1",
|
|
249
271
|
"rightkit-framed-sidecar": "0.1.0",
|
|
250
|
-
"rightkit-fs": "0.
|
|
251
|
-
"rightkit-
|
|
252
|
-
"rightkit-
|
|
272
|
+
"rightkit-fs": "0.3.2",
|
|
273
|
+
"rightkit-fsindex": "0.1.0",
|
|
274
|
+
"rightkit-http": "0.2.2",
|
|
275
|
+
"rightkit-jobs": "0.2.6",
|
|
253
276
|
"rightkit-license": "0.1.3",
|
|
254
277
|
"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-
|
|
278
|
+
"rightkit-mcp": "0.5.1",
|
|
279
|
+
"rightkit-media": "0.2.4",
|
|
280
|
+
"rightkit-models": "0.2.7",
|
|
281
|
+
"rightkit-oauth": "0.3.0",
|
|
282
|
+
"rightkit-ocr": "0.1.2",
|
|
283
|
+
"rightkit-ort": "0.2.2",
|
|
284
|
+
"rightkit-ownership": "0.2.0",
|
|
285
|
+
"rightkit-pdf": "0.2.0",
|
|
261
286
|
"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.
|
|
287
|
+
"rightkit-process": "0.3.3",
|
|
288
|
+
"rightkit-qa": "0.2.14",
|
|
289
|
+
"rightkit-qts": "0.2.4",
|
|
290
|
+
"rightkit-qts-ggml": "0.1.1",
|
|
291
|
+
"rightkit-qts-ggml-sys": "0.1.1",
|
|
292
|
+
"rightkit-sandbox": "0.3.3",
|
|
293
|
+
"rightkit-search": "0.2.0",
|
|
294
|
+
"rightkit-secrets": "0.1.2",
|
|
295
|
+
"rightkit-service": "0.1.3",
|
|
271
296
|
"rightkit-settings": "0.1.0",
|
|
272
|
-
"rightkit-shell": "0.1.
|
|
273
|
-
"rightkit-speech-client": "0.3.
|
|
297
|
+
"rightkit-shell": "0.1.4",
|
|
298
|
+
"rightkit-speech-client": "0.3.2",
|
|
274
299
|
"rightkit-sync": "0.1.0",
|
|
275
|
-
"rightkit-tauri": "0.1.
|
|
300
|
+
"rightkit-tauri": "0.1.2",
|
|
301
|
+
"rightkit-transcript": "0.1.0",
|
|
302
|
+
"rightkit-tts": "0.1.0",
|
|
303
|
+
"rightkit-vad": "0.0.2",
|
|
276
304
|
"rightkit-watch": "0.3.1"
|
|
277
305
|
},
|
|
278
306
|
"swift": {
|
|
@@ -289,125 +317,162 @@
|
|
|
289
317
|
},
|
|
290
318
|
"registry": {
|
|
291
319
|
"cargo": {
|
|
292
|
-
"rightkit-
|
|
320
|
+
"rightkit-asr": "0.0.2",
|
|
321
|
+
"rightkit-audio": "0.2.0",
|
|
293
322
|
"rightkit-browser": "0.2.2",
|
|
294
323
|
"rightkit-cache": "0.1.0",
|
|
295
324
|
"rightkit-control": "0.1.9",
|
|
296
|
-
"rightkit-crash": "0.
|
|
297
|
-
"rightkit-db": "0.3.
|
|
298
|
-
"rightkit-embed": "0.
|
|
325
|
+
"rightkit-crash": "0.2.0",
|
|
326
|
+
"rightkit-db": "0.3.2",
|
|
327
|
+
"rightkit-embed": "0.3.1",
|
|
299
328
|
"rightkit-framed-sidecar": "0.1.0",
|
|
300
|
-
"rightkit-fs": "0.
|
|
301
|
-
"rightkit-
|
|
302
|
-
"rightkit-
|
|
329
|
+
"rightkit-fs": "0.3.2",
|
|
330
|
+
"rightkit-fsindex": "0.1.0",
|
|
331
|
+
"rightkit-http": "0.2.2",
|
|
332
|
+
"rightkit-jobs": "0.2.6",
|
|
303
333
|
"rightkit-license": "0.1.3",
|
|
304
334
|
"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-
|
|
335
|
+
"rightkit-mcp": "0.5.1",
|
|
336
|
+
"rightkit-media": "0.2.4",
|
|
337
|
+
"rightkit-models": "0.2.7",
|
|
338
|
+
"rightkit-oauth": "0.3.0",
|
|
339
|
+
"rightkit-ocr": "0.1.2",
|
|
340
|
+
"rightkit-ort": "0.2.2",
|
|
341
|
+
"rightkit-ownership": "0.2.0",
|
|
342
|
+
"rightkit-pdf": "0.2.0",
|
|
311
343
|
"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.
|
|
344
|
+
"rightkit-process": "0.3.3",
|
|
345
|
+
"rightkit-qa": "0.2.14",
|
|
346
|
+
"rightkit-qts": "0.2.4",
|
|
347
|
+
"rightkit-qts-ggml": "0.1.1",
|
|
348
|
+
"rightkit-qts-ggml-sys": "0.1.1",
|
|
349
|
+
"rightkit-sandbox": "0.3.3",
|
|
350
|
+
"rightkit-search": "0.2.0",
|
|
351
|
+
"rightkit-secrets": "0.1.2",
|
|
352
|
+
"rightkit-service": "0.1.3",
|
|
321
353
|
"rightkit-settings": "0.1.0",
|
|
322
|
-
"rightkit-shell": "0.1.
|
|
323
|
-
"rightkit-speech-client": "0.3.
|
|
324
|
-
"rightkit-tauri": "0.1.
|
|
354
|
+
"rightkit-shell": "0.1.4",
|
|
355
|
+
"rightkit-speech-client": "0.3.2",
|
|
356
|
+
"rightkit-tauri": "0.1.2",
|
|
357
|
+
"rightkit-transcript": "0.1.0",
|
|
358
|
+
"rightkit-tts": "0.1.0",
|
|
359
|
+
"rightkit-vad": "0.0.2",
|
|
325
360
|
"rightkit-watch": "0.3.1"
|
|
326
361
|
},
|
|
327
362
|
"npm": {
|
|
328
|
-
"@rightkit/app-shell": "0.
|
|
363
|
+
"@rightkit/app-shell": "0.3.0",
|
|
329
364
|
"@rightkit/ax": "0.2.4",
|
|
330
|
-
"@rightkit/doc-render": "0.1.
|
|
331
|
-
"@rightkit/git": "0.2.
|
|
332
|
-
"@rightkit/hooks": "0.1.
|
|
365
|
+
"@rightkit/doc-render": "0.1.4",
|
|
366
|
+
"@rightkit/git": "0.2.29",
|
|
367
|
+
"@rightkit/hooks": "0.1.2",
|
|
333
368
|
"@rightkit/i18n": "0.1.0",
|
|
334
369
|
"@rightkit/legal": "0.3.1",
|
|
335
|
-
"@rightkit/legal-ui": "0.
|
|
370
|
+
"@rightkit/legal-ui": "0.2.0",
|
|
336
371
|
"@rightkit/license": "0.1.8",
|
|
337
372
|
"@rightkit/logs": "0.1.4",
|
|
338
|
-
"@rightkit/media-ui": "0.
|
|
339
|
-
"@rightkit/onboarding": "0.
|
|
373
|
+
"@rightkit/media-ui": "0.3.0",
|
|
374
|
+
"@rightkit/onboarding": "0.3.0",
|
|
340
375
|
"@rightkit/pdf-ui": "0.1.2",
|
|
341
|
-
"@rightkit/platform-ui": "0.
|
|
342
|
-
"@rightkit/qa": "0.
|
|
376
|
+
"@rightkit/platform-ui": "0.2.0",
|
|
377
|
+
"@rightkit/qa": "0.4.0",
|
|
343
378
|
"@rightkit/qa-chrome": "0.1.3",
|
|
344
|
-
"@rightkit/release": "0.2.
|
|
345
|
-
"@rightkit/settings-ui": "0.
|
|
379
|
+
"@rightkit/release": "0.2.136",
|
|
380
|
+
"@rightkit/settings-ui": "0.3.0",
|
|
346
381
|
"@rightkit/shell": "0.1.0",
|
|
347
|
-
"@rightkit/tauri": "0.
|
|
382
|
+
"@rightkit/tauri": "0.2.0",
|
|
348
383
|
"@rightkit/theme": "0.2.1",
|
|
349
|
-
"@rightkit/updates": "0.2.
|
|
384
|
+
"@rightkit/updates": "0.2.5"
|
|
350
385
|
}
|
|
351
386
|
},
|
|
352
387
|
"legacyCargo": {
|
|
353
388
|
"rightkit-browser": [
|
|
354
389
|
"0.2.0",
|
|
355
|
-
"0.2.1"
|
|
390
|
+
"0.2.1",
|
|
391
|
+
"0.2.2"
|
|
356
392
|
],
|
|
357
393
|
"rightkit-models": [
|
|
358
|
-
"0.2.1"
|
|
394
|
+
"0.2.1",
|
|
395
|
+
"0.2.2",
|
|
396
|
+
"0.2.3",
|
|
397
|
+
"0.2.4",
|
|
398
|
+
"0.2.5",
|
|
399
|
+
"0.2.6"
|
|
359
400
|
],
|
|
360
401
|
"rightkit-audio": [
|
|
361
|
-
"0.1.0"
|
|
402
|
+
"0.1.0",
|
|
403
|
+
"0.1.1"
|
|
362
404
|
],
|
|
363
405
|
"rightkit-db": [
|
|
364
|
-
"0.2.1"
|
|
406
|
+
"0.2.1",
|
|
407
|
+
"0.3.0",
|
|
408
|
+
"0.3.1"
|
|
365
409
|
],
|
|
366
410
|
"rightkit-embed": [
|
|
367
|
-
"0.2.1"
|
|
411
|
+
"0.2.1",
|
|
412
|
+
"0.2.2",
|
|
413
|
+
"0.3.0"
|
|
368
414
|
],
|
|
369
415
|
"rightkit-jobs": [
|
|
370
|
-
"0.2.1"
|
|
416
|
+
"0.2.1",
|
|
417
|
+
"0.2.2",
|
|
418
|
+
"0.2.3",
|
|
419
|
+
"0.2.4",
|
|
420
|
+
"0.2.5"
|
|
371
421
|
],
|
|
372
422
|
"rightkit-mcp": [
|
|
373
423
|
"0.1.1",
|
|
374
424
|
"0.2.0",
|
|
375
|
-
"0.3.0"
|
|
425
|
+
"0.3.0",
|
|
426
|
+
"0.3.1",
|
|
427
|
+
"0.4.0",
|
|
428
|
+
"0.5.0"
|
|
376
429
|
],
|
|
377
430
|
"rightkit-media": [
|
|
378
|
-
"0.2.2"
|
|
431
|
+
"0.2.2",
|
|
432
|
+
"0.2.3"
|
|
379
433
|
],
|
|
380
434
|
"rightkit-oauth": [
|
|
381
|
-
"0.2.0"
|
|
435
|
+
"0.2.0",
|
|
436
|
+
"0.2.1"
|
|
382
437
|
],
|
|
383
438
|
"rightkit-ort": [
|
|
384
|
-
"0.1.4"
|
|
439
|
+
"0.1.4",
|
|
440
|
+
"0.2.0",
|
|
441
|
+
"0.2.1"
|
|
385
442
|
],
|
|
386
443
|
"rightkit-playback": [
|
|
387
444
|
"0.1.0"
|
|
388
445
|
],
|
|
389
446
|
"rightkit-process": [
|
|
390
447
|
"0.2.1",
|
|
391
|
-
"0.3.0"
|
|
448
|
+
"0.3.0",
|
|
449
|
+
"0.3.1",
|
|
450
|
+
"0.3.2"
|
|
392
451
|
],
|
|
393
452
|
"rightkit-qa": [
|
|
394
453
|
"0.2.7",
|
|
395
454
|
"0.2.8",
|
|
396
455
|
"0.2.9",
|
|
397
456
|
"0.2.10",
|
|
398
|
-
"0.2.11"
|
|
457
|
+
"0.2.11",
|
|
458
|
+
"0.2.12"
|
|
399
459
|
],
|
|
400
460
|
"rightkit-sandbox": [
|
|
401
461
|
"0.1.0",
|
|
402
462
|
"0.2.0",
|
|
403
463
|
"0.2.1",
|
|
404
464
|
"0.2.2",
|
|
405
|
-
"0.2.3"
|
|
465
|
+
"0.2.3",
|
|
466
|
+
"0.2.4",
|
|
467
|
+
"0.3.0",
|
|
468
|
+
"0.3.1",
|
|
469
|
+
"0.3.2"
|
|
406
470
|
],
|
|
407
471
|
"rightkit-shell": [
|
|
408
472
|
"0.1.0",
|
|
409
473
|
"0.1.1",
|
|
410
|
-
"0.1.2"
|
|
474
|
+
"0.1.2",
|
|
475
|
+
"0.1.3"
|
|
411
476
|
],
|
|
412
477
|
"rightkit-watch": [
|
|
413
478
|
"0.1.0",
|
|
@@ -415,12 +480,57 @@
|
|
|
415
480
|
"0.3.0"
|
|
416
481
|
],
|
|
417
482
|
"rightkit-qts": [
|
|
418
|
-
"0.2.0"
|
|
483
|
+
"0.2.0",
|
|
484
|
+
"0.2.1",
|
|
485
|
+
"0.2.2",
|
|
486
|
+
"0.2.3"
|
|
419
487
|
],
|
|
420
488
|
"rightkit-control": [
|
|
421
489
|
"0.1.6",
|
|
422
490
|
"0.1.7",
|
|
423
491
|
"0.1.8"
|
|
492
|
+
],
|
|
493
|
+
"rightkit-secrets": [
|
|
494
|
+
"0.1.0",
|
|
495
|
+
"0.1.1"
|
|
496
|
+
],
|
|
497
|
+
"rightkit-http": [
|
|
498
|
+
"0.1.0",
|
|
499
|
+
"0.2.0",
|
|
500
|
+
"0.2.1"
|
|
501
|
+
],
|
|
502
|
+
"rightkit-fs": [
|
|
503
|
+
"0.1.0",
|
|
504
|
+
"0.2.0",
|
|
505
|
+
"0.3.0",
|
|
506
|
+
"0.3.1"
|
|
507
|
+
],
|
|
508
|
+
"rightkit-service": [
|
|
509
|
+
"0.1.0",
|
|
510
|
+
"0.1.1",
|
|
511
|
+
"0.1.2"
|
|
512
|
+
],
|
|
513
|
+
"rightkit-search": [
|
|
514
|
+
"0.1.0"
|
|
515
|
+
],
|
|
516
|
+
"rightkit-tauri": [
|
|
517
|
+
"0.1.1"
|
|
518
|
+
],
|
|
519
|
+
"rightkit-qts-ggml": [
|
|
520
|
+
"0.1.0"
|
|
521
|
+
],
|
|
522
|
+
"rightkit-pdf": [
|
|
523
|
+
"0.1.0"
|
|
524
|
+
],
|
|
525
|
+
"rightkit-speech-client": [
|
|
526
|
+
"0.3.0",
|
|
527
|
+
"0.3.1"
|
|
528
|
+
],
|
|
529
|
+
"rightkit-crash": [
|
|
530
|
+
"0.1.0"
|
|
531
|
+
],
|
|
532
|
+
"rightkit-qts-ggml-sys": [
|
|
533
|
+
"0.1.0"
|
|
424
534
|
]
|
|
425
535
|
}
|
|
426
536
|
}
|
|
@@ -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,
|