@penclipai/server 2026.412.0 → 2026.412.1-canary.0
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/config-file.d.ts.map +1 -1
- package/dist/config-file.js +31 -2
- package/dist/config-file.js.map +1 -1
- package/dist/dev-runner-worktree.d.ts.map +1 -1
- package/dist/dev-runner-worktree.js +15 -3
- package/dist/dev-runner-worktree.js.map +1 -1
- package/dist/home-paths.d.ts +1 -0
- package/dist/home-paths.d.ts.map +1 -1
- package/dist/home-paths.js +8 -3
- package/dist/home-paths.js.map +1 -1
- package/package.json +14 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAUA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAmFhF,wBAAgB,cAAc,IAAI,eAAe,GAAG,IAAI,CAWvD"}
|
package/dist/config-file.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
-
import { resolveDefaultBackupDir, resolveDefaultEmbeddedPostgresDir, resolveDefaultLogsDir, resolveDefaultSecretsKeyFilePath, resolveDefaultStorageDir, resolveHomeAwarePath } from "./home-paths.js";
|
|
2
|
+
import { normalizeLegacyDesktopStoragePath, resolveDefaultBackupDir, resolveDefaultEmbeddedPostgresDir, resolveDefaultLogsDir, resolveDefaultSecretsKeyFilePath, resolveDefaultStorageDir, resolveHomeAwarePath, } from "./home-paths.js";
|
|
3
3
|
import { paperclipConfigSchema } from "@penclipai/shared";
|
|
4
4
|
import { resolvePaperclipConfigPath } from "./paths.js";
|
|
5
5
|
const DESKTOP_TEMP_INSTANCE_PATH_RE = /paperclip-desktop-(?:smoke|acceptance)-/i;
|
|
@@ -43,13 +43,42 @@ function repairBrokenDesktopTempPaths(raw) {
|
|
|
43
43
|
}
|
|
44
44
|
return next;
|
|
45
45
|
}
|
|
46
|
+
function repairLegacyDesktopStoragePaths(raw) {
|
|
47
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
48
|
+
return raw;
|
|
49
|
+
}
|
|
50
|
+
const next = structuredClone(raw);
|
|
51
|
+
const database = asRecord(next.database);
|
|
52
|
+
const logging = asRecord(next.logging);
|
|
53
|
+
const storage = asRecord(next.storage);
|
|
54
|
+
const storageLocalDisk = asRecord(storage?.localDisk);
|
|
55
|
+
const secrets = asRecord(next.secrets);
|
|
56
|
+
const localEncrypted = asRecord(secrets?.localEncrypted);
|
|
57
|
+
const backup = asRecord(database?.backup);
|
|
58
|
+
if (database && typeof database.embeddedPostgresDataDir === "string") {
|
|
59
|
+
database.embeddedPostgresDataDir = normalizeLegacyDesktopStoragePath(database.embeddedPostgresDataDir);
|
|
60
|
+
}
|
|
61
|
+
if (backup && typeof backup.dir === "string") {
|
|
62
|
+
backup.dir = normalizeLegacyDesktopStoragePath(backup.dir);
|
|
63
|
+
}
|
|
64
|
+
if (logging && typeof logging.logDir === "string") {
|
|
65
|
+
logging.logDir = normalizeLegacyDesktopStoragePath(logging.logDir);
|
|
66
|
+
}
|
|
67
|
+
if (storageLocalDisk && typeof storageLocalDisk.baseDir === "string") {
|
|
68
|
+
storageLocalDisk.baseDir = normalizeLegacyDesktopStoragePath(storageLocalDisk.baseDir);
|
|
69
|
+
}
|
|
70
|
+
if (localEncrypted && typeof localEncrypted.keyFilePath === "string") {
|
|
71
|
+
localEncrypted.keyFilePath = normalizeLegacyDesktopStoragePath(localEncrypted.keyFilePath);
|
|
72
|
+
}
|
|
73
|
+
return next;
|
|
74
|
+
}
|
|
46
75
|
export function readConfigFile() {
|
|
47
76
|
const configPath = resolvePaperclipConfigPath();
|
|
48
77
|
if (!fs.existsSync(configPath))
|
|
49
78
|
return null;
|
|
50
79
|
try {
|
|
51
80
|
const raw = JSON.parse(fs.readFileSync(configPath, "utf-8"));
|
|
52
|
-
return paperclipConfigSchema.parse(repairBrokenDesktopTempPaths(raw));
|
|
81
|
+
return paperclipConfigSchema.parse(repairBrokenDesktopTempPaths(repairLegacyDesktopStoragePaths(raw)));
|
|
53
82
|
}
|
|
54
83
|
catch {
|
|
55
84
|
return null;
|
package/dist/config-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-runner-worktree.d.ts","sourceRoot":"","sources":["../src/dev-runner-worktree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-runner-worktree.d.ts","sourceRoot":"","sources":["../src/dev-runner-worktree.ts"],"names":[],"mappings":"AAwDA,KAAK,0BAA0B,GAC3B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,KAAK,CAAA;CAAE,GACpC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,GACrC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,KAAK,CAAA;CAAE,CAAC;AAE3C,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQpE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,0BAA0B,CA0B5B"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { existsSync, lstatSync, readFileSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
const LEGACY_WINDOWS_HOME_PREFIX_RE = /^([A-Za-z]:[\\/].*?AppData[\\/]Roaming[\\/])(Paperclip CN|Paperclip)([\\/]|$)/i;
|
|
4
|
+
const DESKTOP_USER_DATA_DIRNAME = "penclip";
|
|
5
|
+
function normalizeLegacyDesktopStoragePath(value) {
|
|
6
|
+
return value.replace(LEGACY_WINDOWS_HOME_PREFIX_RE, (_, prefix, _name, suffix) => `${prefix}${DESKTOP_USER_DATA_DIRNAME}${suffix}`);
|
|
7
|
+
}
|
|
3
8
|
function parseEnvFile(contents) {
|
|
4
9
|
const entries = {};
|
|
5
10
|
for (const rawLine of contents.split(/\r?\n/)) {
|
|
@@ -19,12 +24,19 @@ function parseEnvFile(contents) {
|
|
|
19
24
|
entries[key] = "";
|
|
20
25
|
continue;
|
|
21
26
|
}
|
|
27
|
+
let parsedValue = value;
|
|
22
28
|
if ((value.startsWith("\"") && value.endsWith("\"")) ||
|
|
23
29
|
(value.startsWith("'") && value.endsWith("'"))) {
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
parsedValue = value.slice(1, -1);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
parsedValue = value.replace(/\s+#.*$/, "").trim();
|
|
34
|
+
}
|
|
35
|
+
if (key === "PAPERCLIP_HOME" || key === "PAPERCLIP_CONTEXT" || key === "PAPERCLIP_WORKTREES_DIR") {
|
|
36
|
+
parsedValue = normalizeLegacyDesktopStoragePath(parsedValue);
|
|
26
37
|
}
|
|
27
|
-
entries[key] =
|
|
38
|
+
entries[key] = parsedValue;
|
|
39
|
+
continue;
|
|
28
40
|
}
|
|
29
41
|
return entries;
|
|
30
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-runner-worktree.js","sourceRoot":"","sources":["../src/dev-runner-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QACzF,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IACE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;YACD,
|
|
1
|
+
{"version":3,"file":"dev-runner-worktree.js","sourceRoot":"","sources":["../src/dev-runner-worktree.ts"],"names":[],"mappings":"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"}
|
package/dist/home-paths.d.ts
CHANGED
package/dist/home-paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home-paths.d.ts","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"home-paths.d.ts","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"AAaA,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvE;AAsBD,wBAAgB,uBAAuB,IAAI,MAAM,CAYhD;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAMnD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,wBAAgB,iCAAiC,IAAI,MAAM,CAE1D;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,gCAAgC,IAAI,MAAM,CAEzD;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMvE;AAWD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,MAAM,CAaT;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
package/dist/home-paths.js
CHANGED
|
@@ -6,12 +6,17 @@ const INSTANCE_ID_RE = /^[a-zA-Z0-9_-]+$/;
|
|
|
6
6
|
const PATH_SEGMENT_RE = /^[a-zA-Z0-9_-]+$/;
|
|
7
7
|
const FRIENDLY_PATH_SEGMENT_RE = /[^a-zA-Z0-9._-]+/g;
|
|
8
8
|
const DESKTOP_TEMP_INSTANCE_PATH_RE = /paperclip-desktop-(?:smoke|acceptance)-/i;
|
|
9
|
+
const LEGACY_WINDOWS_HOME_PREFIX_RE = /^([A-Za-z]:[\\/].*?AppData[\\/]Roaming[\\/])(Paperclip CN|Paperclip)([\\/]|$)/i;
|
|
10
|
+
const DESKTOP_USER_DATA_DIRNAME = "penclip";
|
|
11
|
+
export function normalizeLegacyDesktopStoragePath(value) {
|
|
12
|
+
return value.replace(LEGACY_WINDOWS_HOME_PREFIX_RE, (_, prefix, _name, suffix) => `${prefix}${DESKTOP_USER_DATA_DIRNAME}${suffix}`);
|
|
13
|
+
}
|
|
9
14
|
function expandHomePrefix(value) {
|
|
10
15
|
if (value === "~")
|
|
11
16
|
return os.homedir();
|
|
12
17
|
if (value.startsWith("~/"))
|
|
13
18
|
return path.resolve(os.homedir(), value.slice(2));
|
|
14
|
-
return value;
|
|
19
|
+
return normalizeLegacyDesktopStoragePath(value);
|
|
15
20
|
}
|
|
16
21
|
function isPathInsideDir(candidatePath, parentDir) {
|
|
17
22
|
const resolvedCandidate = path.resolve(candidatePath);
|
|
@@ -29,7 +34,7 @@ function isFreshDesktopTempHome(candidate) {
|
|
|
29
34
|
export function resolvePaperclipHomeDir() {
|
|
30
35
|
const envHome = process.env.PAPERCLIP_HOME?.trim();
|
|
31
36
|
if (envHome) {
|
|
32
|
-
const resolved = path.resolve(expandHomePrefix(envHome));
|
|
37
|
+
const resolved = path.resolve(normalizeLegacyDesktopStoragePath(expandHomePrefix(envHome)));
|
|
33
38
|
if (isFreshDesktopTempHome(resolved)
|
|
34
39
|
|| !(DESKTOP_TEMP_INSTANCE_PATH_RE.test(resolved) && !existsSync(resolved))) {
|
|
35
40
|
return resolved;
|
|
@@ -90,6 +95,6 @@ export function resolveManagedProjectWorkspaceDir(input) {
|
|
|
90
95
|
return path.resolve(resolvePaperclipInstanceRoot(), "projects", sanitizeFriendlyPathSegment(companyId, "company"), sanitizeFriendlyPathSegment(projectId, "project"), sanitizeFriendlyPathSegment(input.repoName, "_default"));
|
|
91
96
|
}
|
|
92
97
|
export function resolveHomeAwarePath(value) {
|
|
93
|
-
return path.resolve(expandHomePrefix(value));
|
|
98
|
+
return path.resolve(normalizeLegacyDesktopStoragePath(expandHomePrefix(value)));
|
|
94
99
|
}
|
|
95
100
|
//# sourceMappingURL=home-paths.js.map
|
package/dist/home-paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home-paths.js","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAC3C,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,MAAM,6BAA6B,GAAG,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"home-paths.js","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@penclipai/server",
|
|
3
|
-
"version": "2026.412.0",
|
|
3
|
+
"version": "2026.412.1-canary.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://github.com/penclipai/paperclip-cn",
|
|
6
6
|
"bugs": {
|
|
@@ -28,19 +28,19 @@
|
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@aws-sdk/client-s3": "^3.888.0",
|
|
31
|
-
"@penclipai/adapter-claude-local": "2026.412.0",
|
|
32
|
-
"@penclipai/adapter-codebuddy-local": "2026.412.0",
|
|
33
|
-
"@penclipai/adapter-codex-local": "2026.412.0",
|
|
34
|
-
"@penclipai/adapter-cursor-local": "2026.412.0",
|
|
35
|
-
"@penclipai/adapter-gemini-local": "2026.412.0",
|
|
36
|
-
"@penclipai/adapter-openclaw-gateway": "2026.412.0",
|
|
37
|
-
"@penclipai/adapter-opencode-local": "2026.412.0",
|
|
38
|
-
"@penclipai/adapter-pi-local": "2026.412.0",
|
|
39
|
-
"@penclipai/adapter-qwen-local": "2026.412.0",
|
|
40
|
-
"@penclipai/adapter-utils": "2026.412.0",
|
|
41
|
-
"@penclipai/db": "2026.412.0",
|
|
42
|
-
"@penclipai/plugin-sdk": "2026.412.0",
|
|
43
|
-
"@penclipai/shared": "2026.412.0",
|
|
31
|
+
"@penclipai/adapter-claude-local": "2026.412.1-canary.0",
|
|
32
|
+
"@penclipai/adapter-codebuddy-local": "2026.412.1-canary.0",
|
|
33
|
+
"@penclipai/adapter-codex-local": "2026.412.1-canary.0",
|
|
34
|
+
"@penclipai/adapter-cursor-local": "2026.412.1-canary.0",
|
|
35
|
+
"@penclipai/adapter-gemini-local": "2026.412.1-canary.0",
|
|
36
|
+
"@penclipai/adapter-openclaw-gateway": "2026.412.1-canary.0",
|
|
37
|
+
"@penclipai/adapter-opencode-local": "2026.412.1-canary.0",
|
|
38
|
+
"@penclipai/adapter-pi-local": "2026.412.1-canary.0",
|
|
39
|
+
"@penclipai/adapter-qwen-local": "2026.412.1-canary.0",
|
|
40
|
+
"@penclipai/adapter-utils": "2026.412.1-canary.0",
|
|
41
|
+
"@penclipai/db": "2026.412.1-canary.0",
|
|
42
|
+
"@penclipai/plugin-sdk": "2026.412.1-canary.0",
|
|
43
|
+
"@penclipai/shared": "2026.412.1-canary.0",
|
|
44
44
|
"ajv": "^8.18.0",
|
|
45
45
|
"ajv-formats": "^3.0.1",
|
|
46
46
|
"better-auth": "1.4.18",
|