@paperclipai/server 0.2.7 → 0.3.0-canary.1

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.
Files changed (190) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/cursor-models.d.ts +13 -0
  3. package/dist/adapters/cursor-models.d.ts.map +1 -0
  4. package/dist/adapters/cursor-models.js +148 -0
  5. package/dist/adapters/cursor-models.js.map +1 -0
  6. package/dist/adapters/registry.d.ts.map +1 -1
  7. package/dist/adapters/registry.js +55 -9
  8. package/dist/adapters/registry.js.map +1 -1
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +5 -1
  11. package/dist/app.js.map +1 -1
  12. package/dist/auth/better-auth.d.ts +2 -1
  13. package/dist/auth/better-auth.d.ts.map +1 -1
  14. package/dist/auth/better-auth.js +29 -1
  15. package/dist/auth/better-auth.js.map +1 -1
  16. package/dist/config.d.ts +5 -0
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +42 -2
  19. package/dist/config.js.map +1 -1
  20. package/dist/home-paths.d.ts +1 -0
  21. package/dist/home-paths.d.ts.map +1 -1
  22. package/dist/home-paths.js +3 -0
  23. package/dist/home-paths.js.map +1 -1
  24. package/dist/index.d.ts +9 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +468 -370
  27. package/dist/index.js.map +1 -1
  28. package/dist/middleware/error-handler.d.ts +14 -0
  29. package/dist/middleware/error-handler.d.ts.map +1 -1
  30. package/dist/middleware/error-handler.js +19 -4
  31. package/dist/middleware/error-handler.js.map +1 -1
  32. package/dist/middleware/logger.d.ts.map +1 -1
  33. package/dist/middleware/logger.js +52 -3
  34. package/dist/middleware/logger.js.map +1 -1
  35. package/dist/realtime/live-events-ws.d.ts +20 -2
  36. package/dist/realtime/live-events-ws.d.ts.map +1 -1
  37. package/dist/realtime/live-events-ws.js +3 -1
  38. package/dist/realtime/live-events-ws.js.map +1 -1
  39. package/dist/routes/access.d.ts +47 -0
  40. package/dist/routes/access.d.ts.map +1 -1
  41. package/dist/routes/access.js +1340 -193
  42. package/dist/routes/access.js.map +1 -1
  43. package/dist/routes/agents.d.ts.map +1 -1
  44. package/dist/routes/agents.js +106 -17
  45. package/dist/routes/agents.js.map +1 -1
  46. package/dist/routes/companies.d.ts.map +1 -1
  47. package/dist/routes/companies.js +6 -0
  48. package/dist/routes/companies.js.map +1 -1
  49. package/dist/routes/issues-checkout-wakeup.d.ts +9 -0
  50. package/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
  51. package/dist/routes/issues-checkout-wakeup.js +12 -0
  52. package/dist/routes/issues-checkout-wakeup.js.map +1 -0
  53. package/dist/routes/issues.d.ts.map +1 -1
  54. package/dist/routes/issues.js +122 -15
  55. package/dist/routes/issues.js.map +1 -1
  56. package/dist/routes/sidebar-badges.d.ts.map +1 -1
  57. package/dist/routes/sidebar-badges.js +12 -11
  58. package/dist/routes/sidebar-badges.js.map +1 -1
  59. package/dist/services/agents.d.ts +13 -1
  60. package/dist/services/agents.d.ts.map +1 -1
  61. package/dist/services/agents.js +65 -5
  62. package/dist/services/agents.js.map +1 -1
  63. package/dist/services/approvals.d.ts.map +1 -1
  64. package/dist/services/approvals.js +14 -1
  65. package/dist/services/approvals.js.map +1 -1
  66. package/dist/services/company-portability.d.ts.map +1 -1
  67. package/dist/services/company-portability.js +16 -4
  68. package/dist/services/company-portability.js.map +1 -1
  69. package/dist/services/heartbeat.d.ts +24 -0
  70. package/dist/services/heartbeat.d.ts.map +1 -1
  71. package/dist/services/heartbeat.js +152 -9
  72. package/dist/services/heartbeat.js.map +1 -1
  73. package/dist/services/hire-hook.d.ts +14 -0
  74. package/dist/services/hire-hook.d.ts.map +1 -0
  75. package/dist/services/hire-hook.js +85 -0
  76. package/dist/services/hire-hook.js.map +1 -0
  77. package/dist/services/index.d.ts +2 -1
  78. package/dist/services/index.d.ts.map +1 -1
  79. package/dist/services/index.js +2 -1
  80. package/dist/services/index.js.map +1 -1
  81. package/dist/services/issues.d.ts +37 -0
  82. package/dist/services/issues.d.ts.map +1 -1
  83. package/dist/services/issues.js +199 -2
  84. package/dist/services/issues.js.map +1 -1
  85. package/dist/services/projects.d.ts +8 -0
  86. package/dist/services/projects.d.ts.map +1 -1
  87. package/dist/services/projects.js +45 -0
  88. package/dist/services/projects.js.map +1 -1
  89. package/dist/services/run-log-store.d.ts.map +1 -1
  90. package/dist/services/run-log-store.js +4 -7
  91. package/dist/services/run-log-store.js.map +1 -1
  92. package/dist/services/secrets.d.ts +6 -2
  93. package/dist/services/secrets.d.ts.map +1 -1
  94. package/dist/services/secrets.js +9 -5
  95. package/dist/services/secrets.js.map +1 -1
  96. package/dist/services/sidebar-badges.d.ts +1 -1
  97. package/dist/services/sidebar-badges.d.ts.map +1 -1
  98. package/dist/services/sidebar-badges.js +2 -2
  99. package/dist/services/sidebar-badges.js.map +1 -1
  100. package/dist/startup-banner.d.ts +4 -0
  101. package/dist/startup-banner.d.ts.map +1 -1
  102. package/dist/startup-banner.js +5 -0
  103. package/dist/startup-banner.js.map +1 -1
  104. package/package.json +15 -8
  105. package/skills/paperclip/SKILL.md +77 -10
  106. package/skills/paperclip/references/api-reference.md +24 -3
  107. package/skills/release/SKILL.md +261 -0
  108. package/skills/release-changelog/SKILL.md +178 -0
  109. package/ui-dist/assets/_basePickBy-uTypp8IS.js +1 -0
  110. package/ui-dist/assets/_baseUniq-Br5ginSL.js +1 -0
  111. package/ui-dist/assets/arc-CL_yTLb7.js +1 -0
  112. package/ui-dist/assets/architectureDiagram-VXUJARFQ-QDWenfc8.js +36 -0
  113. package/ui-dist/assets/blockDiagram-VD42YOAC-Cx5v00JC.js +122 -0
  114. package/ui-dist/assets/c4Diagram-YG6GDRKO-w1jXPcld.js +10 -0
  115. package/ui-dist/assets/channel-Cgg5Zy18.js +1 -0
  116. package/ui-dist/assets/chunk-4BX2VUAB-IP20JmJc.js +1 -0
  117. package/ui-dist/assets/chunk-55IACEB6-DnoDQzkr.js +1 -0
  118. package/ui-dist/assets/chunk-B4BG7PRW-B0oMPqWG.js +165 -0
  119. package/ui-dist/assets/chunk-DI55MBZ5-XP2Bv90U.js +220 -0
  120. package/ui-dist/assets/chunk-FMBD7UC4-BTXZhgrQ.js +15 -0
  121. package/ui-dist/assets/chunk-QN33PNHL-CV1_kZb0.js +1 -0
  122. package/ui-dist/assets/chunk-QZHKN3VN-DRQRsvpN.js +1 -0
  123. package/ui-dist/assets/chunk-TZMSLE5B-CyRhnMtV.js +1 -0
  124. package/ui-dist/assets/classDiagram-2ON5EDUG-C7fyGn2Z.js +1 -0
  125. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-C7fyGn2Z.js +1 -0
  126. package/ui-dist/assets/clone-C-dKMXxT.js +1 -0
  127. package/ui-dist/assets/cose-bilkent-S5V4N54A-C3zcDRja.js +1 -0
  128. package/ui-dist/assets/cytoscape.esm-BQaXIfA_.js +331 -0
  129. package/ui-dist/assets/dagre-6UL2VRFP-B2DRzkCD.js +4 -0
  130. package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  131. package/ui-dist/assets/diagram-PSM6KHXK-CxoAcsrX.js +24 -0
  132. package/ui-dist/assets/diagram-QEK2KX5R-DE0jOoKl.js +43 -0
  133. package/ui-dist/assets/diagram-S2PKOQOG-nZkpfo7y.js +24 -0
  134. package/ui-dist/assets/erDiagram-Q2GNP2WA-Bl8ZbdFt.js +60 -0
  135. package/ui-dist/assets/flowDiagram-NV44I4VS-Bets3UXj.js +162 -0
  136. package/ui-dist/assets/ganttDiagram-JELNMOA3-CzdlM4Q4.js +267 -0
  137. package/ui-dist/assets/gitGraphDiagram-V2S2FVAM-0znuWjdT.js +65 -0
  138. package/ui-dist/assets/graph-CqfQ17fA.js +1 -0
  139. package/ui-dist/assets/{index-pu8fzL7q.js → index-7nNiKIK4.js} +2 -2
  140. package/ui-dist/assets/{index-CF8nX1vG.js → index-9_NCEtxm.js} +1 -1
  141. package/ui-dist/assets/{index-kYgLZCCi.js → index-B98qVBYv.js} +1 -1
  142. package/ui-dist/assets/{index-CdX_ZDP5.js → index-BGTZFghP.js} +1 -1
  143. package/ui-dist/assets/{index-tZqt0pgN.js → index-BLzuntY1.js} +5 -5
  144. package/ui-dist/assets/index-BZyxDGuR.js +1 -0
  145. package/ui-dist/assets/{index-NaKAsGKV.js → index-B_BkZUzM.js} +1 -1
  146. package/ui-dist/assets/{index-Dg1rynkq.js → index-Bgr40E5T.js} +1 -1
  147. package/ui-dist/assets/{index-B-OLFaqv.js → index-BrUI189T.js} +2 -2
  148. package/ui-dist/assets/{index-C9NgpAmN.js → index-BwywxTyu.js} +1 -1
  149. package/ui-dist/assets/{index-CgAKYlm4.js → index-C0rbEf43.js} +1 -1
  150. package/ui-dist/assets/{index-D-j8BRho.js → index-CEG1A6xN.js} +1 -1
  151. package/ui-dist/assets/{index-DYE3wRax.js → index-CZlgUP5H.js} +1 -1
  152. package/ui-dist/assets/{index-C3Iv_Fqi.js → index-CnZTY1ys.js} +1 -1
  153. package/ui-dist/assets/index-DN1_92Qm.js +900 -0
  154. package/ui-dist/assets/{index-COdba80T.js → index-DYxzi5jO.js} +1 -1
  155. package/ui-dist/assets/{index-BIEaSsd6.js → index-DZTlxw-9.js} +1 -1
  156. package/ui-dist/assets/{index-CKNdC7J5.js → index-DZYyOzky.js} +1 -1
  157. package/ui-dist/assets/{index-COhpE0rU.js → index-Dsg_WOwh.js} +1 -1
  158. package/ui-dist/assets/{index-Btnrtcrc.js → index-DskiIzZI.js} +1 -1
  159. package/ui-dist/assets/{index-jVC6cnfD.js → index-Lr8m8V8u.js} +1 -1
  160. package/ui-dist/assets/{index-BTMR1V3x.js → index-O7wFYmP6.js} +1 -1
  161. package/ui-dist/assets/index-nfAtmpEH.css +1 -0
  162. package/ui-dist/assets/{index-DVW9_Opq.js → index-rYTF_5JN.js} +1 -1
  163. package/ui-dist/assets/infoDiagram-HS3SLOUP-CoLHBo93.js +2 -0
  164. package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
  165. package/ui-dist/assets/journeyDiagram-XKPGCS4Q-B-juOJt7.js +139 -0
  166. package/ui-dist/assets/kanban-definition-3W4ZIXB7-CRhCTAGl.js +89 -0
  167. package/ui-dist/assets/katex-O9d3_IXG.js +261 -0
  168. package/ui-dist/assets/layout-0_5Wah8d.js +1 -0
  169. package/ui-dist/assets/linear-rXBW0wlX.js +1 -0
  170. package/ui-dist/assets/mermaid.core-CZKXdC_e.js +256 -0
  171. package/ui-dist/assets/mindmap-definition-VGOIOE7T-CcsJM-Ch.js +68 -0
  172. package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
  173. package/ui-dist/assets/pieDiagram-ADFJNKIX-Ci6R42sU.js +30 -0
  174. package/ui-dist/assets/quadrantDiagram-AYHSOK5B-B6xrkCsR.js +7 -0
  175. package/ui-dist/assets/requirementDiagram-UZGBJVZJ-4V-WQI-N.js +64 -0
  176. package/ui-dist/assets/sankeyDiagram-TZEHDZUN-D4NrQ_iq.js +10 -0
  177. package/ui-dist/assets/sequenceDiagram-WL72ISMW-C1V8T_WD.js +145 -0
  178. package/ui-dist/assets/stateDiagram-FKZM4ZOC-B6msJabL.js +1 -0
  179. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-BbXAbFox.js +1 -0
  180. package/ui-dist/assets/timeline-definition-IT6M3QCI-D82F3vGD.js +61 -0
  181. package/ui-dist/assets/treemap-GDKQZRPO-CN1NndeP.js +162 -0
  182. package/ui-dist/assets/xychartDiagram-PRI3JC2R-BrHVvbst.js +7 -0
  183. package/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
  184. package/ui-dist/brands/opencode-logo-light-square.svg +18 -0
  185. package/ui-dist/index.html +2 -2
  186. package/ui-dist/site.webmanifest +15 -4
  187. package/ui-dist/sw.js +42 -0
  188. package/ui-dist/assets/index-B6IJ7rtH.css +0 -1
  189. package/ui-dist/assets/index-CNeWfnNw.js +0 -856
  190. package/ui-dist/assets/index-D7c99xP8.js +0 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Paperclip AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ import type { AdapterModel } from "./types.js";
2
+ type CursorModelsCommandResult = {
3
+ status: number | null;
4
+ stdout: string;
5
+ stderr: string;
6
+ hasError: boolean;
7
+ };
8
+ export declare function parseCursorModelsOutput(stdout: string, stderr: string): AdapterModel[];
9
+ export declare function listCursorModels(): Promise<AdapterModel[]>;
10
+ export declare function resetCursorModelsCacheForTests(): void;
11
+ export declare function setCursorModelsRunnerForTests(runner: (() => CursorModelsCommandResult) | null): void;
12
+ export {};
13
+ //# sourceMappingURL=cursor-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-models.d.ts","sourceRoot":"","sources":["../../src/adapters/cursor-models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C,KAAK,yBAAyB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAsDF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAoCtF;AAmCD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAqBhE;AAED,wBAAgB,8BAA8B,SAE7C;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,CAAC,MAAM,yBAAyB,CAAC,GAAG,IAAI,QAE7F"}
@@ -0,0 +1,148 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { models as cursorFallbackModels } from "@paperclipai/adapter-cursor-local";
3
+ const CURSOR_MODELS_TIMEOUT_MS = 5_000;
4
+ const CURSOR_MODELS_CACHE_TTL_MS = 60_000;
5
+ const MAX_BUFFER_BYTES = 512 * 1024;
6
+ let cached = null;
7
+ function dedupeModels(models) {
8
+ const seen = new Set();
9
+ const deduped = [];
10
+ for (const model of models) {
11
+ const id = model.id.trim();
12
+ if (!id || seen.has(id))
13
+ continue;
14
+ seen.add(id);
15
+ deduped.push({ id, label: model.label.trim() || id });
16
+ }
17
+ return deduped;
18
+ }
19
+ function sanitizeModelId(raw) {
20
+ return raw
21
+ .trim()
22
+ .replace(/^["'`]+|["'`]+$/g, "")
23
+ .replace(/\(.*\)\s*$/g, "")
24
+ .trim();
25
+ }
26
+ function isLikelyModelId(raw) {
27
+ const value = sanitizeModelId(raw);
28
+ if (!value)
29
+ return false;
30
+ return /^[A-Za-z0-9][A-Za-z0-9._/-]*$/.test(value);
31
+ }
32
+ function pushModelId(target, raw) {
33
+ const id = sanitizeModelId(raw);
34
+ if (!isLikelyModelId(id))
35
+ return;
36
+ target.push({ id, label: id });
37
+ }
38
+ function collectFromJsonValue(value, target) {
39
+ if (typeof value === "string") {
40
+ pushModelId(target, value);
41
+ return;
42
+ }
43
+ if (!Array.isArray(value))
44
+ return;
45
+ for (const item of value) {
46
+ if (typeof item === "string") {
47
+ pushModelId(target, item);
48
+ continue;
49
+ }
50
+ if (typeof item !== "object" || item === null)
51
+ continue;
52
+ const id = item.id;
53
+ if (typeof id === "string") {
54
+ pushModelId(target, id);
55
+ }
56
+ }
57
+ }
58
+ export function parseCursorModelsOutput(stdout, stderr) {
59
+ const models = [];
60
+ const combined = `${stdout}\n${stderr}`;
61
+ const trimmedStdout = stdout.trim();
62
+ if (trimmedStdout.startsWith("{") || trimmedStdout.startsWith("[")) {
63
+ try {
64
+ const parsed = JSON.parse(trimmedStdout);
65
+ if (Array.isArray(parsed)) {
66
+ collectFromJsonValue(parsed, models);
67
+ }
68
+ else if (typeof parsed === "object" && parsed !== null) {
69
+ const rec = parsed;
70
+ collectFromJsonValue(rec.models, models);
71
+ collectFromJsonValue(rec.data, models);
72
+ }
73
+ }
74
+ catch {
75
+ // Ignore malformed JSON and continue parsing plain text formats.
76
+ }
77
+ }
78
+ for (const match of combined.matchAll(/available models?:\s*([^\n]+)/gi)) {
79
+ const list = match[1] ?? "";
80
+ for (const token of list.split(",")) {
81
+ pushModelId(models, token);
82
+ }
83
+ }
84
+ for (const lineRaw of combined.split(/\r?\n/)) {
85
+ const line = lineRaw.trim();
86
+ if (!line)
87
+ continue;
88
+ const bullet = line.replace(/^[-*]\s+/, "").trim();
89
+ if (!bullet || bullet.includes(" "))
90
+ continue;
91
+ pushModelId(models, bullet);
92
+ }
93
+ return dedupeModels(models);
94
+ }
95
+ function mergedWithFallback(models) {
96
+ return dedupeModels([...models, ...cursorFallbackModels]);
97
+ }
98
+ function defaultCursorModelsRunner() {
99
+ const result = spawnSync("agent", ["models"], {
100
+ encoding: "utf8",
101
+ timeout: CURSOR_MODELS_TIMEOUT_MS,
102
+ maxBuffer: MAX_BUFFER_BYTES,
103
+ });
104
+ return {
105
+ status: result.status,
106
+ stdout: typeof result.stdout === "string" ? result.stdout : "",
107
+ stderr: typeof result.stderr === "string" ? result.stderr : "",
108
+ hasError: Boolean(result.error),
109
+ };
110
+ }
111
+ let cursorModelsRunner = defaultCursorModelsRunner;
112
+ function fetchCursorModelsFromCli() {
113
+ const result = cursorModelsRunner();
114
+ const { stdout, stderr } = result;
115
+ if (result.hasError && stdout.trim().length === 0 && stderr.trim().length === 0) {
116
+ return [];
117
+ }
118
+ if ((result.status ?? 1) !== 0 && !/available models?:/i.test(`${stdout}\n${stderr}`)) {
119
+ return [];
120
+ }
121
+ return parseCursorModelsOutput(stdout, stderr);
122
+ }
123
+ export async function listCursorModels() {
124
+ const now = Date.now();
125
+ if (cached && cached.expiresAt > now) {
126
+ return cached.models;
127
+ }
128
+ const discovered = fetchCursorModelsFromCli();
129
+ if (discovered.length > 0) {
130
+ const merged = mergedWithFallback(discovered);
131
+ cached = {
132
+ expiresAt: now + CURSOR_MODELS_CACHE_TTL_MS,
133
+ models: merged,
134
+ };
135
+ return merged;
136
+ }
137
+ if (cached && cached.models.length > 0) {
138
+ return cached.models;
139
+ }
140
+ return dedupeModels(cursorFallbackModels);
141
+ }
142
+ export function resetCursorModelsCacheForTests() {
143
+ cached = null;
144
+ }
145
+ export function setCursorModelsRunnerForTests(runner) {
146
+ cursorModelsRunner = runner ?? defaultCursorModelsRunner;
147
+ }
148
+ //# sourceMappingURL=cursor-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-models.js","sourceRoot":"","sources":["../../src/adapters/cursor-models.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA2DtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAOlE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAQ9F;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAE1E"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA8HtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAOlE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAQ9F;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAE1E"}
@@ -2,9 +2,16 @@ import { execute as claudeExecute, testEnvironment as claudeTestEnvironment, ses
2
2
  import { agentConfigurationDoc as claudeAgentConfigurationDoc, models as claudeModels } from "@paperclipai/adapter-claude-local";
3
3
  import { execute as codexExecute, testEnvironment as codexTestEnvironment, sessionCodec as codexSessionCodec, } from "@paperclipai/adapter-codex-local/server";
4
4
  import { agentConfigurationDoc as codexAgentConfigurationDoc, models as codexModels } from "@paperclipai/adapter-codex-local";
5
- import { execute as openclawExecute, testEnvironment as openclawTestEnvironment, } from "@paperclipai/adapter-openclaw/server";
6
- import { agentConfigurationDoc as openclawAgentConfigurationDoc, models as openclawModels, } from "@paperclipai/adapter-openclaw";
5
+ import { execute as cursorExecute, testEnvironment as cursorTestEnvironment, sessionCodec as cursorSessionCodec, } from "@paperclipai/adapter-cursor-local/server";
6
+ import { agentConfigurationDoc as cursorAgentConfigurationDoc, models as cursorModels } from "@paperclipai/adapter-cursor-local";
7
+ import { execute as openCodeExecute, testEnvironment as openCodeTestEnvironment, sessionCodec as openCodeSessionCodec, listOpenCodeModels, } from "@paperclipai/adapter-opencode-local/server";
8
+ import { agentConfigurationDoc as openCodeAgentConfigurationDoc, } from "@paperclipai/adapter-opencode-local";
9
+ import { execute as openclawGatewayExecute, testEnvironment as openclawGatewayTestEnvironment, } from "@paperclipai/adapter-openclaw-gateway/server";
10
+ import { agentConfigurationDoc as openclawGatewayAgentConfigurationDoc, models as openclawGatewayModels, } from "@paperclipai/adapter-openclaw-gateway";
7
11
  import { listCodexModels } from "./codex-models.js";
12
+ import { listCursorModels } from "./cursor-models.js";
13
+ import { execute as piExecute, testEnvironment as piTestEnvironment, sessionCodec as piSessionCodec, listPiModels, } from "@paperclipai/adapter-pi-local/server";
14
+ import { agentConfigurationDoc as piAgentConfigurationDoc, } from "@paperclipai/adapter-pi-local";
8
15
  import { processAdapter } from "./process/index.js";
9
16
  import { httpAdapter } from "./http/index.js";
10
17
  const claudeLocalAdapter = {
@@ -26,15 +33,54 @@ const codexLocalAdapter = {
26
33
  supportsLocalAgentJwt: true,
27
34
  agentConfigurationDoc: codexAgentConfigurationDoc,
28
35
  };
29
- const openclawAdapter = {
30
- type: "openclaw",
31
- execute: openclawExecute,
32
- testEnvironment: openclawTestEnvironment,
33
- models: openclawModels,
36
+ const cursorLocalAdapter = {
37
+ type: "cursor",
38
+ execute: cursorExecute,
39
+ testEnvironment: cursorTestEnvironment,
40
+ sessionCodec: cursorSessionCodec,
41
+ models: cursorModels,
42
+ listModels: listCursorModels,
43
+ supportsLocalAgentJwt: true,
44
+ agentConfigurationDoc: cursorAgentConfigurationDoc,
45
+ };
46
+ const openclawGatewayAdapter = {
47
+ type: "openclaw_gateway",
48
+ execute: openclawGatewayExecute,
49
+ testEnvironment: openclawGatewayTestEnvironment,
50
+ models: openclawGatewayModels,
34
51
  supportsLocalAgentJwt: false,
35
- agentConfigurationDoc: openclawAgentConfigurationDoc,
52
+ agentConfigurationDoc: openclawGatewayAgentConfigurationDoc,
53
+ };
54
+ const openCodeLocalAdapter = {
55
+ type: "opencode_local",
56
+ execute: openCodeExecute,
57
+ testEnvironment: openCodeTestEnvironment,
58
+ sessionCodec: openCodeSessionCodec,
59
+ models: [],
60
+ listModels: listOpenCodeModels,
61
+ supportsLocalAgentJwt: true,
62
+ agentConfigurationDoc: openCodeAgentConfigurationDoc,
63
+ };
64
+ const piLocalAdapter = {
65
+ type: "pi_local",
66
+ execute: piExecute,
67
+ testEnvironment: piTestEnvironment,
68
+ sessionCodec: piSessionCodec,
69
+ models: [],
70
+ listModels: listPiModels,
71
+ supportsLocalAgentJwt: true,
72
+ agentConfigurationDoc: piAgentConfigurationDoc,
36
73
  };
37
- const adaptersByType = new Map([claudeLocalAdapter, codexLocalAdapter, openclawAdapter, processAdapter, httpAdapter].map((a) => [a.type, a]));
74
+ const adaptersByType = new Map([
75
+ claudeLocalAdapter,
76
+ codexLocalAdapter,
77
+ openCodeLocalAdapter,
78
+ piLocalAdapter,
79
+ cursorLocalAdapter,
80
+ openclawGatewayAdapter,
81
+ processAdapter,
82
+ httpAdapter,
83
+ ].map((a) => [a.type, a]));
38
84
  export function getServerAdapter(type) {
39
85
  const adapter = adaptersByType.get(type);
40
86
  if (!adapter) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/adapters/registry.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAU,KAAK,OAAO,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAI1E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoBzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7C,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACnF,wDA+HF"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAU,KAAK,OAAO,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAI1E,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoBzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7C,wBAAsB,SAAS,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACnF,wDAmIF"}
package/dist/app.js CHANGED
@@ -88,6 +88,9 @@ export async function createApp(db, opts) {
88
88
  allowedHostnames: opts.allowedHostnames,
89
89
  }));
90
90
  app.use("/api", api);
91
+ app.use("/api", (_req, res) => {
92
+ res.status(404).json({ error: "API route not found" });
93
+ });
91
94
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
92
95
  if (opts.uiMode === "static") {
93
96
  // Try published location first (server/ui-dist/), then monorepo dev location (../../ui/dist)
@@ -97,9 +100,10 @@ export async function createApp(db, opts) {
97
100
  ];
98
101
  const uiDist = candidates.find((p) => fs.existsSync(path.join(p, "index.html")));
99
102
  if (uiDist) {
103
+ const indexHtml = fs.readFileSync(path.join(uiDist, "index.html"), "utf-8");
100
104
  app.use(express.static(uiDist));
101
105
  app.get(/.*/, (_req, res) => {
102
- res.sendFile(path.join(uiDist, "index.html"));
106
+ res.status(200).set("Content-Type", "text/html").end(indexHtml);
103
107
  });
104
108
  }
105
109
  else {
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ export type BetterAuthSessionResult = {
15
15
  user: BetterAuthSessionUser | null;
16
16
  };
17
17
  type BetterAuthInstance = ReturnType<typeof betterAuth>;
18
- export declare function createBetterAuthInstance(db: Db, config: Config): BetterAuthInstance;
18
+ export declare function deriveAuthTrustedOrigins(config: Config): string[];
19
+ export declare function createBetterAuthInstance(db: Db, config: Config, trustedOrigins?: string[]): BetterAuthInstance;
19
20
  export declare function createBetterAuthHandler(auth: BetterAuthInstance): RequestHandler;
20
21
  export declare function resolveBetterAuthSessionFromHeaders(auth: BetterAuthInstance, headers: Headers): Promise<BetterAuthSessionResult | null>;
21
22
  export declare function resolveBetterAuthSession(auth: BetterAuthInstance, req: Request): Promise<BetterAuthSessionResult | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.d.ts","sourceRoot":"","sources":["../../src/auth/better-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAO1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAmBxD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CA2BnF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAKhF;AAED,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA0BzC;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAEzC"}
1
+ {"version":3,"file":"better-auth.d.ts","sourceRoot":"","sources":["../../src/auth/better-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAO1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC/C,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAmBxD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBjE;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAkC9G;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAKhF;AAED,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CA0BzC;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAEzC"}
@@ -19,12 +19,38 @@ function headersFromNodeHeaders(rawHeaders) {
19
19
  function headersFromExpressRequest(req) {
20
20
  return headersFromNodeHeaders(req.headers);
21
21
  }
22
- export function createBetterAuthInstance(db, config) {
22
+ export function deriveAuthTrustedOrigins(config) {
23
+ const baseUrl = config.authBaseUrlMode === "explicit" ? config.authPublicBaseUrl : undefined;
24
+ const trustedOrigins = new Set();
25
+ if (baseUrl) {
26
+ try {
27
+ trustedOrigins.add(new URL(baseUrl).origin);
28
+ }
29
+ catch {
30
+ // Better Auth will surface invalid base URL separately.
31
+ }
32
+ }
33
+ if (config.deploymentMode === "authenticated") {
34
+ for (const hostname of config.allowedHostnames) {
35
+ const trimmed = hostname.trim().toLowerCase();
36
+ if (!trimmed)
37
+ continue;
38
+ trustedOrigins.add(`https://${trimmed}`);
39
+ trustedOrigins.add(`http://${trimmed}`);
40
+ }
41
+ }
42
+ return Array.from(trustedOrigins);
43
+ }
44
+ export function createBetterAuthInstance(db, config, trustedOrigins) {
23
45
  const baseUrl = config.authBaseUrlMode === "explicit" ? config.authPublicBaseUrl : undefined;
24
46
  const secret = process.env.BETTER_AUTH_SECRET ?? process.env.PAPERCLIP_AGENT_JWT_SECRET ?? "paperclip-dev-secret";
47
+ const effectiveTrustedOrigins = trustedOrigins ?? deriveAuthTrustedOrigins(config);
48
+ const publicUrl = process.env.PAPERCLIP_PUBLIC_URL ?? baseUrl;
49
+ const isHttpOnly = publicUrl ? publicUrl.startsWith("http://") : false;
25
50
  const authConfig = {
26
51
  baseURL: baseUrl,
27
52
  secret,
53
+ trustedOrigins: effectiveTrustedOrigins,
28
54
  database: drizzleAdapter(db, {
29
55
  provider: "pg",
30
56
  schema: {
@@ -37,7 +63,9 @@ export function createBetterAuthInstance(db, config) {
37
63
  emailAndPassword: {
38
64
  enabled: true,
39
65
  requireEmailVerification: false,
66
+ disableSignUp: config.authDisableSignUp,
40
67
  },
68
+ ...(isHttpOnly ? { advanced: { useSecureCookies: false } } : {}),
41
69
  };
42
70
  if (!baseUrl) {
43
71
  delete authConfig.baseURL;
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.js","sourceRoot":"","sources":["../../src/auth/better-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"better-auth.js","sourceRoot":"","sources":["../../src/auth/better-auth.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -8,10 +8,15 @@ export interface Config {
8
8
  allowedHostnames: string[];
9
9
  authBaseUrlMode: AuthBaseUrlMode;
10
10
  authPublicBaseUrl: string | undefined;
11
+ authDisableSignUp: boolean;
11
12
  databaseMode: DatabaseMode;
12
13
  databaseUrl: string | undefined;
13
14
  embeddedPostgresDataDir: string;
14
15
  embeddedPostgresPort: number;
16
+ databaseBackupEnabled: boolean;
17
+ databaseBackupIntervalMinutes: number;
18
+ databaseBackupRetentionDays: number;
19
+ databaseBackupDir: string;
15
20
  serveUi: boolean;
16
21
  uiDevMiddleware: boolean;
17
22
  secretsProvider: SecretProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAa7B,KAAK,YAAY,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;IACnC,4BAA4B,EAAE,MAAM,CAAC;IACrC,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAkInC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAc7B,KAAK,YAAY,GAAG,mBAAmB,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,6BAA6B,EAAE,MAAM,CAAC;IACtC,2BAA2B,EAAE,MAAM,CAAC;IACpC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,cAAc,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;IACnC,4BAA4B,EAAE,MAAM,CAAC;IACrC,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAqLnC"}
package/dist/config.js CHANGED
@@ -3,7 +3,7 @@ import { existsSync } from "node:fs";
3
3
  import { config as loadDotenv } from "dotenv";
4
4
  import { resolvePaperclipEnvPath } from "./paths.js";
5
5
  import { AUTH_BASE_URL_MODES, DEPLOYMENT_EXPOSURES, DEPLOYMENT_MODES, SECRET_PROVIDERS, STORAGE_PROVIDERS, } from "@paperclipai/shared";
6
- import { resolveDefaultEmbeddedPostgresDir, resolveDefaultSecretsKeyFilePath, resolveDefaultStorageDir, resolveHomeAwarePath, } from "./home-paths.js";
6
+ import { resolveDefaultBackupDir, resolveDefaultEmbeddedPostgresDir, resolveDefaultSecretsKeyFilePath, resolveDefaultStorageDir, resolveHomeAwarePath, } from "./home-paths.js";
7
7
  const PAPERCLIP_ENV_FILE_PATH = resolvePaperclipEnvPath();
8
8
  if (existsSync(PAPERCLIP_ENV_FILE_PATH)) {
9
9
  loadDotenv({ path: PAPERCLIP_ENV_FILE_PATH, override: false, quiet: true });
@@ -14,6 +14,7 @@ export function loadConfig() {
14
14
  const fileDbUrl = fileDatabaseMode === "postgres"
15
15
  ? fileConfig?.database.connectionString
16
16
  : undefined;
17
+ const fileDatabaseBackup = fileConfig?.database.backup;
17
18
  const fileSecrets = fileConfig?.secrets;
18
19
  const fileStorage = fileConfig?.storage;
19
20
  const strictModeFromEnv = process.env.PAPERCLIP_SECRETS_STRICT_MODE;
@@ -59,13 +60,20 @@ export function loadConfig() {
59
60
  AUTH_BASE_URL_MODES.includes(authBaseUrlModeFromEnvRaw)
60
61
  ? authBaseUrlModeFromEnvRaw
61
62
  : null;
63
+ const publicUrlFromEnv = process.env.PAPERCLIP_PUBLIC_URL;
62
64
  const authPublicBaseUrlRaw = process.env.PAPERCLIP_AUTH_PUBLIC_BASE_URL ??
63
65
  process.env.BETTER_AUTH_URL ??
66
+ process.env.BETTER_AUTH_BASE_URL ??
67
+ publicUrlFromEnv ??
64
68
  fileConfig?.auth?.publicBaseUrl;
65
69
  const authPublicBaseUrl = authPublicBaseUrlRaw?.trim() || undefined;
66
70
  const authBaseUrlMode = authBaseUrlModeFromEnv ??
67
71
  fileConfig?.auth?.baseUrlMode ??
68
72
  (authPublicBaseUrl ? "explicit" : "auto");
73
+ const disableSignUpFromEnv = process.env.PAPERCLIP_AUTH_DISABLE_SIGN_UP;
74
+ const authDisableSignUp = disableSignUpFromEnv !== undefined
75
+ ? disableSignUpFromEnv === "true"
76
+ : (fileConfig?.auth?.disableSignUp ?? false);
69
77
  const allowedHostnamesFromEnvRaw = process.env.PAPERCLIP_ALLOWED_HOSTNAMES;
70
78
  const allowedHostnamesFromEnv = allowedHostnamesFromEnvRaw
71
79
  ? allowedHostnamesFromEnvRaw
@@ -73,11 +81,38 @@ export function loadConfig() {
73
81
  .map((value) => value.trim().toLowerCase())
74
82
  .filter((value) => value.length > 0)
75
83
  : null;
76
- const allowedHostnames = Array.from(new Set((allowedHostnamesFromEnv ?? fileConfig?.server.allowedHostnames ?? []).map((value) => value.trim().toLowerCase()).filter(Boolean)));
84
+ const publicUrlHostname = authPublicBaseUrl
85
+ ? (() => {
86
+ try {
87
+ return new URL(authPublicBaseUrl).hostname.trim().toLowerCase();
88
+ }
89
+ catch {
90
+ return null;
91
+ }
92
+ })()
93
+ : null;
94
+ const allowedHostnames = Array.from(new Set([
95
+ ...(allowedHostnamesFromEnv ?? fileConfig?.server.allowedHostnames ?? []),
96
+ ...(publicUrlHostname ? [publicUrlHostname] : []),
97
+ ]
98
+ .map((value) => value.trim().toLowerCase())
99
+ .filter(Boolean)));
77
100
  const companyDeletionEnvRaw = process.env.PAPERCLIP_ENABLE_COMPANY_DELETION;
78
101
  const companyDeletionEnabled = companyDeletionEnvRaw !== undefined
79
102
  ? companyDeletionEnvRaw === "true"
80
103
  : deploymentMode === "local_trusted";
104
+ const databaseBackupEnabled = process.env.PAPERCLIP_DB_BACKUP_ENABLED !== undefined
105
+ ? process.env.PAPERCLIP_DB_BACKUP_ENABLED === "true"
106
+ : (fileDatabaseBackup?.enabled ?? true);
107
+ const databaseBackupIntervalMinutes = Math.max(1, Number(process.env.PAPERCLIP_DB_BACKUP_INTERVAL_MINUTES) ||
108
+ fileDatabaseBackup?.intervalMinutes ||
109
+ 60);
110
+ const databaseBackupRetentionDays = Math.max(1, Number(process.env.PAPERCLIP_DB_BACKUP_RETENTION_DAYS) ||
111
+ fileDatabaseBackup?.retentionDays ||
112
+ 30);
113
+ const databaseBackupDir = resolveHomeAwarePath(process.env.PAPERCLIP_DB_BACKUP_DIR ??
114
+ fileDatabaseBackup?.dir ??
115
+ resolveDefaultBackupDir());
81
116
  return {
82
117
  deploymentMode,
83
118
  deploymentExposure,
@@ -86,10 +121,15 @@ export function loadConfig() {
86
121
  allowedHostnames,
87
122
  authBaseUrlMode,
88
123
  authPublicBaseUrl,
124
+ authDisableSignUp,
89
125
  databaseMode: fileDatabaseMode,
90
126
  databaseUrl: process.env.DATABASE_URL ?? fileDbUrl,
91
127
  embeddedPostgresDataDir: resolveHomeAwarePath(fileConfig?.database.embeddedPostgresDataDir ?? resolveDefaultEmbeddedPostgresDir()),
92
128
  embeddedPostgresPort: fileConfig?.database.embeddedPostgresPort ?? 54329,
129
+ databaseBackupEnabled,
130
+ databaseBackupIntervalMinutes,
131
+ databaseBackupRetentionDays,
132
+ databaseBackupDir,
93
133
  serveUi: process.env.SERVE_UI !== undefined
94
134
  ? process.env.SERVE_UI === "true"
95
135
  : fileConfig?.server.serveUi ?? true,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare function resolveDefaultEmbeddedPostgresDir(): string;
6
6
  export declare function resolveDefaultLogsDir(): string;
7
7
  export declare function resolveDefaultSecretsKeyFilePath(): string;
8
8
  export declare function resolveDefaultStorageDir(): string;
9
+ export declare function resolveDefaultBackupDir(): string;
9
10
  export declare function resolveDefaultAgentWorkspaceDir(agentId: string): string;
10
11
  export declare function resolveHomeAwarePath(value: string): string;
11
12
  //# sourceMappingURL=home-paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"home-paths.d.ts","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"AAaA,wBAAgB,uBAAuB,IAAI,MAAM,CAIhD;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,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMvE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
1
+ {"version":3,"file":"home-paths.d.ts","sourceRoot":"","sources":["../src/home-paths.ts"],"names":[],"mappings":"AAaA,wBAAgB,uBAAuB,IAAI,MAAM,CAIhD;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;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -41,6 +41,9 @@ export function resolveDefaultSecretsKeyFilePath() {
41
41
  export function resolveDefaultStorageDir() {
42
42
  return path.resolve(resolvePaperclipInstanceRoot(), "data", "storage");
43
43
  }
44
+ export function resolveDefaultBackupDir() {
45
+ return path.resolve(resolvePaperclipInstanceRoot(), "data", "backups");
46
+ }
44
47
  export function resolveDefaultAgentWorkspaceDir(agentId) {
45
48
  const trimmed = agentId.trim();
46
49
  if (!PATH_SEGMENT_RE.test(trimmed)) {