@open-mercato/cezar 0.12.0-pr1132.1998 → 0.12.0-pr1132.2000
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.
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* ~/.cezar/versions/<id>/ one `npm install --prefix` tree per version
|
|
5
5
|
* ~/.cezar/versions/<id>/.cezar-install.json manifest: version, source, installedAt
|
|
6
6
|
* ~/.cezar/versions/<id>/node_modules/@open-mercato/cezar/dist/index.js the entry
|
|
7
|
-
* ~/.cezar/versions/current → <id> the active version (symlink; a
|
|
8
|
-
*
|
|
7
|
+
* ~/.cezar/versions/current → <id> the active version (a symlink; a junction on
|
|
8
|
+
* Windows)
|
|
9
9
|
* ~/.cezar/bin/cezar, cez launchers that exec `current`'s entry
|
|
10
10
|
*
|
|
11
11
|
* `<id>` is the version string, plus `+local` for a build installed from a checkout so it never
|
|
@@ -58,12 +58,6 @@ export declare function listInstalled(env?: NodeJS.ProcessEnv): InstalledEntry[]
|
|
|
58
58
|
export declare function findInstalled(target: string, env?: NodeJS.ProcessEnv): InstalledEntry | undefined;
|
|
59
59
|
/** The id `current` points at, or null when nothing is activated. */
|
|
60
60
|
export declare function activeId(env?: NodeJS.ProcessEnv): string | null;
|
|
61
|
-
/**
|
|
62
|
-
* Point `current` at `id`. Atomic: the new link is created beside the old one and renamed over
|
|
63
|
-
* it, so a reader never sees a missing `current`. Falls back to a text file naming the id where
|
|
64
|
-
* symlinks cannot be created (Windows without developer mode) — `currentEntry()` cannot follow a
|
|
65
|
-
* text file, so the launcher reads it instead; the PoC only exercises the symlink path.
|
|
66
|
-
*/
|
|
67
61
|
export declare function activate(id: string, env?: NodeJS.ProcessEnv): void;
|
|
68
62
|
export declare function removeInstalled(id: string, env?: NodeJS.ProcessEnv): void;
|
|
69
63
|
/**
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* ~/.cezar/versions/<id>/ one `npm install --prefix` tree per version
|
|
5
5
|
* ~/.cezar/versions/<id>/.cezar-install.json manifest: version, source, installedAt
|
|
6
6
|
* ~/.cezar/versions/<id>/node_modules/@open-mercato/cezar/dist/index.js the entry
|
|
7
|
-
* ~/.cezar/versions/current → <id> the active version (symlink; a
|
|
8
|
-
*
|
|
7
|
+
* ~/.cezar/versions/current → <id> the active version (a symlink; a junction on
|
|
8
|
+
* Windows)
|
|
9
9
|
* ~/.cezar/bin/cezar, cez launchers that exec `current`'s entry
|
|
10
10
|
*
|
|
11
11
|
* `<id>` is the version string, plus `+local` for a build installed from a checkout so it never
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* `CEZ_HOME` keeps tests off the real home. Delete the whole directory and `cezar install`
|
|
14
14
|
* rebuilds it — state, never configuration.
|
|
15
15
|
*/
|
|
16
|
-
import { existsSync, mkdirSync, readdirSync, readFileSync, readlinkSync, renameSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
|
|
16
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, readlinkSync, renameSync, rmdirSync, rmSync, symlinkSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
17
17
|
import { basename, dirname, join, resolve, sep } from 'node:path';
|
|
18
18
|
import { z } from 'zod';
|
|
19
19
|
import { cezarHomeDir } from '../paths.js';
|
|
@@ -117,24 +117,41 @@ export function activeId(env = process.env) {
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
|
-
* Point `current` at `id`. Atomic: the new link is created beside the old one and
|
|
121
|
-
* it, so a reader never sees a missing `current`.
|
|
122
|
-
*
|
|
123
|
-
*
|
|
120
|
+
* Point `current` at `id`. Atomic on POSIX: the new link is created beside the old one and
|
|
121
|
+
* renamed over it, so a reader never sees a missing `current`.
|
|
122
|
+
*
|
|
123
|
+
* Windows links with a JUNCTION — a directory link that needs no privilege, where a symlink
|
|
124
|
+
* needs developer mode or elevation. Two things differ there: a junction's target must be
|
|
125
|
+
* absolute (Node resolves a relative one against the working directory, not against the link),
|
|
126
|
+
* and Windows will not rename a link over an existing one, so the old link is removed first.
|
|
127
|
+
* The desktop shell does the same (`activate` in packages/desktop/src-tauri/src/lib.rs).
|
|
124
128
|
*/
|
|
129
|
+
/** Remove `current` itself — a junction, a symlink or the legacy text file — and never the
|
|
130
|
+
* version behind it: `unlink` and `rmdir` both act on a link, not through it. */
|
|
131
|
+
function removeLink(link) {
|
|
132
|
+
for (const remove of [unlinkSync, rmdirSync]) {
|
|
133
|
+
try {
|
|
134
|
+
remove(link);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// Not that kind of entry, or not there at all: the next one, then the create decides.
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
125
142
|
export function activate(id, env = process.env) {
|
|
126
143
|
if (!existsSync(versionEntry(id, env)))
|
|
127
144
|
throw new Error(`version ${id} is not installed`);
|
|
128
145
|
const dir = versionsDir(env);
|
|
129
146
|
const link = join(dir, CURRENT_LINK);
|
|
130
147
|
const tmp = join(dir, `.${CURRENT_LINK}.${process.pid}.tmp`);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
symlinkSync(id,
|
|
134
|
-
|
|
135
|
-
catch {
|
|
136
|
-
writeFileSync(tmp, `${id}\n`);
|
|
148
|
+
if (process.platform === 'win32') {
|
|
149
|
+
removeLink(link);
|
|
150
|
+
symlinkSync(versionDir(id, env), link, 'junction');
|
|
151
|
+
return;
|
|
137
152
|
}
|
|
153
|
+
rmSync(tmp, { force: true });
|
|
154
|
+
symlinkSync(id, tmp, 'dir');
|
|
138
155
|
renameSync(tmp, link);
|
|
139
156
|
}
|
|
140
157
|
export function removeInstalled(id, env = process.env) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/self-update/layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/self-update/layout.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-mercato/cezar",
|
|
3
|
-
"version": "0.12.0-pr1132.
|
|
3
|
+
"version": "0.12.0-pr1132.2000",
|
|
4
4
|
"description": "Local cockpit for running and tracking AI agent tasks in your repo. Uses your logged-in `claude` CLI and `gh` — zero config, zero database.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"zod": "^4.4.3"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@open-mercato/cezar-api-client": "0.12.0-pr1132.
|
|
58
|
-
"@open-mercato/cezar-contract": "0.12.0-pr1132.
|
|
57
|
+
"@open-mercato/cezar-api-client": "0.12.0-pr1132.2000",
|
|
58
|
+
"@open-mercato/cezar-contract": "0.12.0-pr1132.2000",
|
|
59
59
|
"@types/node": "^20.14.0",
|
|
60
60
|
"@types/proper-lockfile": "4.1.4",
|
|
61
61
|
"@types/ws": "^8.18.1",
|