@sideboard-ai/core 0.1.139 → 0.1.143
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/{abletime-VTP4JR63.js → abletime-DI55AJX3.js} +2 -2
- package/dist/{abletime-DDTV7WO3.js → abletime-QEVAE67D.js} +2 -2
- package/dist/agents/cursor-runner.cjs +0 -0
- package/dist/agents/cursor-runner.js +1 -1
- package/dist/{agents-665S7Z3R.js → agents-E5AAMHDY.js} +11 -7
- package/dist/{agents-OC3XM7UE.js → agents-OEEOIKUB.js} +10 -6
- package/dist/{app-settings-U5RZKUXG.js → app-settings-WJDCJFSY.js} +3 -1
- package/dist/{app-settings-YQ7YX2CC.js → app-settings-ZCN632OJ.js} +3 -1
- package/dist/caffeinate-hold-NBRUWYXO.js +0 -0
- package/dist/{chunk-HLIHBGVO.js → chunk-4D4PEBGB.js} +2 -2
- package/dist/{chunk-DJJ3DTT4.js → chunk-4Q45TLZ5.js} +7 -7
- package/dist/chunk-6GN5WPYZ.js +0 -0
- package/dist/chunk-B3SJXYIJ.js +0 -0
- package/dist/chunk-BD2ICC4D.js +0 -0
- package/dist/{chunk-GKKHXZCT.js → chunk-BGQBELGJ.js} +201 -2
- package/dist/{chunk-2XXAAIN3.js → chunk-BOD5V52W.js} +1 -1
- package/dist/{chunk-23KCPND2.js → chunk-CG25RYQQ.js} +47 -40
- package/dist/{chunk-YZQEJOAU.js → chunk-EAP4SMR3.js} +342 -36
- package/dist/chunk-ED4UPEJX.js +0 -0
- package/dist/chunk-EUXOHTUK.js +0 -0
- package/dist/{chunk-5XH5M6RA.js → chunk-FADNFPZO.js} +3 -3
- package/dist/{chunk-SSBM4GZX.js → chunk-HC5N3BDL.js} +2 -2
- package/dist/{chunk-GJBHOJCZ.js → chunk-I77RYPOH.js} +201 -2
- package/dist/chunk-KGZBYWZ3.js +0 -0
- package/dist/chunk-KLBOWJ74.js +0 -0
- package/dist/{chunk-ZCLHAOFR.js → chunk-KP4OJUPH.js} +551 -39
- package/dist/chunk-KPIYENTF.js +0 -0
- package/dist/chunk-N5PM7HGQ.js +0 -0
- package/dist/chunk-NSTQ6QKD.js +0 -0
- package/dist/{chunk-DKXZCIB2.js → chunk-O3JEC2UJ.js} +7 -7
- package/dist/{chunk-RTX3AY42.js → chunk-OHWN4JEL.js} +5 -3
- package/dist/{chunk-E2RE7P2S.js → chunk-R2W7A2UO.js} +3 -3
- package/dist/chunk-S42XV45P.js +0 -0
- package/dist/{chunk-7SYFWPOZ.js → chunk-UG5N7ET3.js} +5 -3
- package/dist/{chunk-CDJISVKN.js → chunk-VHTIHOHE.js} +47 -41
- package/dist/{chunk-AT346U23.js → chunk-VZJVKQHH.js} +1 -1
- package/dist/{chunk-FSCQXMGI.js → chunk-WT5HSFOU.js} +1 -0
- package/dist/connected-teams-IJUJQ7R6.js +0 -0
- package/dist/{coordinator-prompt-43O6EPA2.js → coordinator-prompt-2LD3C74O.js} +3 -3
- package/dist/{coordinator-prompt-4TXU6Q3R.js → coordinator-prompt-FBX7Y4EM.js} +3 -3
- package/dist/cursor-recover-NOQYOFRF.js +0 -0
- package/dist/{global-workspace-ZDYKHQ4O.js → global-workspace-NG7SU3GV.js} +4 -4
- package/dist/{global-workspace-VIU57E3Y.js → global-workspace-OCV77UYF.js} +4 -4
- package/dist/index.cjs +945 -129
- package/dist/index.d.cts +249 -62
- package/dist/index.d.ts +249 -62
- package/dist/index.js +110 -14
- package/dist/mcp/run-stdio.cjs +646 -112
- package/dist/mcp/run-stdio.js +12 -12
- package/dist/oauth-YJBAURIJ.js +0 -0
- package/dist/{orchestrator-ZCMYSDTC.js → orchestrator-TDJZKQPT.js} +7 -7
- package/dist/{orchestrator-WEFXUHFX.js → orchestrator-VIFXOHF4.js} +8 -8
- package/dist/paths-QCI3MTO5.js +0 -0
- package/dist/plan-file-PHVKUAEE.js +0 -0
- package/dist/run-USF6FRKV.js +0 -0
- package/dist/thread-store-57ZLHR3A.js +0 -0
- package/dist/title-4WAKWZRF.js +0 -0
- package/dist/{workspaces-4HYGNH4B.js → workspaces-4FUQW5LD.js} +5 -5
- package/dist/{workspaces-ALCTB65T.js → workspaces-PU5YHQ7Z.js} +5 -5
- package/dist/{worktree-GXD2NGOZ.js → worktree-GKLPPNWR.js} +2 -2
- package/dist/{worktree-NSNZODAM.js → worktree-Z22HTSCU.js} +2 -2
- package/package.json +9 -8
- package/LICENSE +0 -190
|
@@ -14,9 +14,9 @@ import {
|
|
|
14
14
|
taskUrl,
|
|
15
15
|
toAbleTimeIssueInfo,
|
|
16
16
|
verifyAbleTimeConnection
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BOD5V52W.js";
|
|
18
18
|
import "./chunk-6GN5WPYZ.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-BGQBELGJ.js";
|
|
20
20
|
import "./chunk-NSTQ6QKD.js";
|
|
21
21
|
import "./chunk-KGZBYWZ3.js";
|
|
22
22
|
import "./chunk-BD2ICC4D.js";
|
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
taskUrl,
|
|
13
13
|
toAbleTimeIssueInfo,
|
|
14
14
|
verifyAbleTimeConnection
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-VZJVKQHH.js";
|
|
16
16
|
import "./chunk-ELBYOGVA.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-I77RYPOH.js";
|
|
18
18
|
import "./chunk-4TR3HZFT.js";
|
|
19
19
|
import "./chunk-JT7R45JB.js";
|
|
20
20
|
import "./chunk-77WWLBCI.js";
|
|
File without changes
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
getAdapter,
|
|
12
12
|
getAgentSetupInfo,
|
|
13
13
|
installAgent,
|
|
14
|
+
installNpmGlobalPackage,
|
|
14
15
|
isCursorAutoModel,
|
|
15
16
|
isSessionQuotaLimit,
|
|
16
17
|
listAgentSetupInfo,
|
|
@@ -27,8 +28,9 @@ import {
|
|
|
27
28
|
prepareTerminalCommand,
|
|
28
29
|
resolveCursorModelId,
|
|
29
30
|
resolveLoginCommand,
|
|
30
|
-
resolveQuotaFallbackAgent
|
|
31
|
-
|
|
31
|
+
resolveQuotaFallbackAgent,
|
|
32
|
+
whichOnPath
|
|
33
|
+
} from "./chunk-VHTIHOHE.js";
|
|
32
34
|
import "./chunk-KBWND62T.js";
|
|
33
35
|
import "./chunk-M267JPEA.js";
|
|
34
36
|
import {
|
|
@@ -36,18 +38,18 @@ import {
|
|
|
36
38
|
assertOrchestratorCapableAgent,
|
|
37
39
|
coerceOrchestratorAgent,
|
|
38
40
|
isOrchestratorCapableAgent
|
|
39
|
-
} from "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-R2W7A2UO.js";
|
|
42
|
+
import "./chunk-UG5N7ET3.js";
|
|
41
43
|
import "./chunk-ELBYOGVA.js";
|
|
42
44
|
import {
|
|
43
45
|
cursorSdkMessageToEvents,
|
|
44
46
|
parseCursorRunnerLine,
|
|
45
47
|
preferredCursorCostCents,
|
|
46
48
|
turnCostUsdFromCursorUsage
|
|
47
|
-
} from "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
+
} from "./chunk-WT5HSFOU.js";
|
|
50
|
+
import "./chunk-O3JEC2UJ.js";
|
|
49
51
|
import "./chunk-FKOIHGKV.js";
|
|
50
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-I77RYPOH.js";
|
|
51
53
|
import "./chunk-4TR3HZFT.js";
|
|
52
54
|
import "./chunk-JT7R45JB.js";
|
|
53
55
|
import "./chunk-TUGKX5BD.js";
|
|
@@ -82,6 +84,7 @@ export {
|
|
|
82
84
|
getAdapter,
|
|
83
85
|
getAgentSetupInfo,
|
|
84
86
|
installAgent,
|
|
87
|
+
installNpmGlobalPackage,
|
|
85
88
|
isConductorBundledCli,
|
|
86
89
|
isCursorAutoModel,
|
|
87
90
|
isOrchestratorCapableAgent,
|
|
@@ -106,5 +109,6 @@ export {
|
|
|
106
109
|
resolveLoginCommand,
|
|
107
110
|
resolveQuotaFallbackAgent,
|
|
108
111
|
turnCostUsdFromCursorUsage,
|
|
112
|
+
whichOnPath,
|
|
109
113
|
withExportedPath
|
|
110
114
|
};
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
getAdapter,
|
|
15
15
|
getAgentSetupInfo,
|
|
16
16
|
installAgent,
|
|
17
|
+
installNpmGlobalPackage,
|
|
17
18
|
isCursorAutoModel,
|
|
18
19
|
isSessionQuotaLimit,
|
|
19
20
|
listAgentSetupInfo,
|
|
@@ -33,8 +34,9 @@ import {
|
|
|
33
34
|
resolveCursorModelId,
|
|
34
35
|
resolveLoginCommand,
|
|
35
36
|
resolveQuotaFallbackAgent,
|
|
36
|
-
turnCostUsdFromCursorUsage
|
|
37
|
-
|
|
37
|
+
turnCostUsdFromCursorUsage,
|
|
38
|
+
whichOnPath
|
|
39
|
+
} from "./chunk-CG25RYQQ.js";
|
|
38
40
|
import "./chunk-ED4UPEJX.js";
|
|
39
41
|
import "./chunk-S42XV45P.js";
|
|
40
42
|
import "./chunk-6GN5WPYZ.js";
|
|
@@ -43,9 +45,9 @@ import {
|
|
|
43
45
|
assertOrchestratorCapableAgent,
|
|
44
46
|
coerceOrchestratorAgent,
|
|
45
47
|
isOrchestratorCapableAgent
|
|
46
|
-
} from "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
48
|
+
} from "./chunk-FADNFPZO.js";
|
|
49
|
+
import "./chunk-OHWN4JEL.js";
|
|
50
|
+
import "./chunk-4Q45TLZ5.js";
|
|
49
51
|
import "./chunk-B3SJXYIJ.js";
|
|
50
52
|
import "./chunk-EUXOHTUK.js";
|
|
51
53
|
import {
|
|
@@ -57,7 +59,7 @@ import {
|
|
|
57
59
|
resolveCommandBinarySync,
|
|
58
60
|
withExportedPath
|
|
59
61
|
} from "./chunk-KPIYENTF.js";
|
|
60
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-BGQBELGJ.js";
|
|
61
63
|
import "./chunk-NSTQ6QKD.js";
|
|
62
64
|
import "./chunk-KGZBYWZ3.js";
|
|
63
65
|
import "./chunk-BD2ICC4D.js";
|
|
@@ -81,6 +83,7 @@ export {
|
|
|
81
83
|
getAdapter,
|
|
82
84
|
getAgentSetupInfo,
|
|
83
85
|
installAgent,
|
|
86
|
+
installNpmGlobalPackage,
|
|
84
87
|
isConductorBundledCli,
|
|
85
88
|
isCursorAutoModel,
|
|
86
89
|
isOrchestratorCapableAgent,
|
|
@@ -105,5 +108,6 @@ export {
|
|
|
105
108
|
resolveLoginCommand,
|
|
106
109
|
resolveQuotaFallbackAgent,
|
|
107
110
|
turnCostUsdFromCursorUsage,
|
|
111
|
+
whichOnPath,
|
|
108
112
|
withExportedPath
|
|
109
113
|
};
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
deleteBranchOnPurgeEnabled,
|
|
23
23
|
disconnectAbleTimeConnection,
|
|
24
24
|
disconnectLinearConnection,
|
|
25
|
+
emptyPublicIntegrations,
|
|
25
26
|
ensureSlackDeviceIdentity,
|
|
26
27
|
getAbleTimeAccessToken,
|
|
27
28
|
getAbleTimeHost,
|
|
@@ -63,7 +64,7 @@ import {
|
|
|
63
64
|
updateDefaultsSettings,
|
|
64
65
|
updateIntegrationsSettings,
|
|
65
66
|
updateOpencodeSettings
|
|
66
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-I77RYPOH.js";
|
|
67
68
|
import "./chunk-4TR3HZFT.js";
|
|
68
69
|
import "./chunk-JT7R45JB.js";
|
|
69
70
|
import "./chunk-77WWLBCI.js";
|
|
@@ -92,6 +93,7 @@ export {
|
|
|
92
93
|
deleteBranchOnPurgeEnabled,
|
|
93
94
|
disconnectAbleTimeConnection,
|
|
94
95
|
disconnectLinearConnection,
|
|
96
|
+
emptyPublicIntegrations,
|
|
95
97
|
ensureSlackDeviceIdentity,
|
|
96
98
|
getAbleTimeAccessToken,
|
|
97
99
|
getAbleTimeHost,
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
deleteBranchOnPurgeEnabled,
|
|
25
25
|
disconnectAbleTimeConnection,
|
|
26
26
|
disconnectLinearConnection,
|
|
27
|
+
emptyPublicIntegrations,
|
|
27
28
|
ensureSlackDeviceIdentity,
|
|
28
29
|
getAbleTimeAccessToken,
|
|
29
30
|
getAbleTimeHost,
|
|
@@ -65,7 +66,7 @@ import {
|
|
|
65
66
|
updateDefaultsSettings,
|
|
66
67
|
updateIntegrationsSettings,
|
|
67
68
|
updateOpencodeSettings
|
|
68
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-BGQBELGJ.js";
|
|
69
70
|
import "./chunk-NSTQ6QKD.js";
|
|
70
71
|
import "./chunk-KGZBYWZ3.js";
|
|
71
72
|
import "./chunk-BD2ICC4D.js";
|
|
@@ -93,6 +94,7 @@ export {
|
|
|
93
94
|
deleteBranchOnPurgeEnabled,
|
|
94
95
|
disconnectAbleTimeConnection,
|
|
95
96
|
disconnectLinearConnection,
|
|
97
|
+
emptyPublicIntegrations,
|
|
96
98
|
ensureSlackDeviceIdentity,
|
|
97
99
|
getAbleTimeAccessToken,
|
|
98
100
|
getAbleTimeHost,
|
|
File without changes
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
isGlobalRepoPath
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FADNFPZO.js";
|
|
6
6
|
import {
|
|
7
7
|
ensureGhPreferOrigin,
|
|
8
8
|
resolveRepoRoot
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4Q45TLZ5.js";
|
|
10
10
|
import {
|
|
11
11
|
appDataDir
|
|
12
12
|
} from "./chunk-BD2ICC4D.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
getGithubGitAuthMode,
|
|
16
16
|
getGithubPat
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BGQBELGJ.js";
|
|
18
18
|
import {
|
|
19
19
|
worktreesRoot
|
|
20
20
|
} from "./chunk-BD2ICC4D.js";
|
|
@@ -1121,33 +1121,33 @@ function formatGitAuthModeDirective(mode) {
|
|
|
1121
1121
|
"- `git` and `gh` already authenticate in this process. Do not look for tokens in the environment, paste credentials into commands, or switch remotes to SSH.",
|
|
1122
1122
|
"- Do not set GitHub token environment variables, pass `--with-token`, or run `gh auth login` from this turn.",
|
|
1123
1123
|
"- Push with `git push -u origin HEAD`. Create/update PRs with `gh` as below.",
|
|
1124
|
-
"- If git/gh fail with auth errors, tell the user to run `gh auth login` on this Mac (or set a PAT in
|
|
1124
|
+
"- If git/gh fail with auth errors, tell the user to run `gh auth login` on this Mac (or set a PAT in Settings \u2192 Git). Do not wait for a Keychain dialog."
|
|
1125
1125
|
];
|
|
1126
1126
|
switch (mode) {
|
|
1127
1127
|
case "gh":
|
|
1128
1128
|
return [
|
|
1129
|
-
"Git authentication (
|
|
1129
|
+
"Git authentication (Settings \u2192 Git mode: gh CLI):",
|
|
1130
1130
|
"- This process rewrites `git@github.com:` and `ssh://git@github.com/` to HTTPS.",
|
|
1131
1131
|
...shared
|
|
1132
1132
|
].join("\n");
|
|
1133
1133
|
case "ssh":
|
|
1134
1134
|
return [
|
|
1135
|
-
"Git authentication (
|
|
1135
|
+
"Git authentication (Settings \u2192 Git mode: SSH):",
|
|
1136
1136
|
"- Keep SSH remotes (`git@github.com:\u2026`). Do not rewrite them to HTTPS.",
|
|
1137
|
-
"- SSH is batch-mode: it will not prompt for a Keychain password. If push fails with `Permission denied (publickey)`, tell the user to unlock ssh-agent or switch
|
|
1137
|
+
"- SSH is batch-mode: it will not prompt for a Keychain password. If push fails with `Permission denied (publickey)`, tell the user to unlock ssh-agent or switch Settings \u2192 Git to Auto / gh CLI \u2014 do not rewrite remotes yourself.",
|
|
1138
1138
|
"- `gh` already authenticates for PRs/API (no token in the environment). Do not set GitHub token environment variables or run `gh auth login` from this turn.",
|
|
1139
1139
|
"- Push with `git push -u origin HEAD`. Create/update PRs with `gh` as below."
|
|
1140
1140
|
].join("\n");
|
|
1141
1141
|
case "token":
|
|
1142
1142
|
return [
|
|
1143
|
-
"Git authentication (
|
|
1143
|
+
"Git authentication (Settings \u2192 Git mode: personal access token):",
|
|
1144
1144
|
"- This process rewrites GitHub SSH remotes to HTTPS.",
|
|
1145
1145
|
...shared
|
|
1146
1146
|
].join("\n");
|
|
1147
1147
|
case "auto":
|
|
1148
1148
|
default:
|
|
1149
1149
|
return [
|
|
1150
|
-
"Git authentication (
|
|
1150
|
+
"Git authentication (Settings \u2192 Git mode: auto):",
|
|
1151
1151
|
"- This process rewrites GitHub SSH remotes to HTTPS so git/ssh never prompt the macOS Keychain (required for unattended orchestrator turns).",
|
|
1152
1152
|
...shared
|
|
1153
1153
|
].join("\n");
|
package/dist/chunk-6GN5WPYZ.js
CHANGED
|
File without changes
|
package/dist/chunk-B3SJXYIJ.js
CHANGED
|
File without changes
|
package/dist/chunk-BD2ICC4D.js
CHANGED
|
File without changes
|
|
@@ -224,6 +224,18 @@ function normalizeVault(raw) {
|
|
|
224
224
|
if (typeof raw.abletimeAccessToken === "string" && raw.abletimeAccessToken.trim()) {
|
|
225
225
|
out.abletimeAccessToken = raw.abletimeAccessToken.trim();
|
|
226
226
|
}
|
|
227
|
+
if (typeof raw.vercelToken === "string" && raw.vercelToken.trim()) {
|
|
228
|
+
out.vercelToken = raw.vercelToken.trim();
|
|
229
|
+
}
|
|
230
|
+
if (typeof raw.supabaseAccessToken === "string" && raw.supabaseAccessToken.trim()) {
|
|
231
|
+
out.supabaseAccessToken = raw.supabaseAccessToken.trim();
|
|
232
|
+
}
|
|
233
|
+
if (typeof raw.posthogPersonalApiKey === "string" && raw.posthogPersonalApiKey.trim()) {
|
|
234
|
+
out.posthogPersonalApiKey = raw.posthogPersonalApiKey.trim();
|
|
235
|
+
}
|
|
236
|
+
if (typeof raw.sentryAuthToken === "string" && raw.sentryAuthToken.trim()) {
|
|
237
|
+
out.sentryAuthToken = raw.sentryAuthToken.trim();
|
|
238
|
+
}
|
|
227
239
|
if (raw.environment && typeof raw.environment === "object") {
|
|
228
240
|
const environment = {};
|
|
229
241
|
for (const [key, value] of Object.entries(raw.environment)) {
|
|
@@ -266,6 +278,20 @@ var DEFAULT_AGENTS = /* @__PURE__ */ new Set([
|
|
|
266
278
|
"cursor"
|
|
267
279
|
]);
|
|
268
280
|
var GITHUB_GIT_AUTH_MODES = ["auto", "gh", "ssh", "token"];
|
|
281
|
+
function emptyPublicIntegrations() {
|
|
282
|
+
return {
|
|
283
|
+
hasLinearApiKey: false,
|
|
284
|
+
hasLinearOAuth: false,
|
|
285
|
+
hasSlackClientSecret: false,
|
|
286
|
+
hasSlackAppToken: false,
|
|
287
|
+
hasGithubPat: false,
|
|
288
|
+
hasAbleTimeToken: false,
|
|
289
|
+
hasVercelToken: false,
|
|
290
|
+
hasSupabaseToken: false,
|
|
291
|
+
hasPosthogToken: false,
|
|
292
|
+
hasSentryToken: false
|
|
293
|
+
};
|
|
294
|
+
}
|
|
269
295
|
function hasLinearOAuth(integrations) {
|
|
270
296
|
return Boolean(
|
|
271
297
|
integrations.linearAccessToken?.trim() || integrations.linearRefreshToken?.trim()
|
|
@@ -284,6 +310,10 @@ function toPublicAppSettings(settings) {
|
|
|
284
310
|
const slackAppToken = integrations.slackAppToken;
|
|
285
311
|
const githubPat = integrations.githubPat;
|
|
286
312
|
const abletimeAccessToken = integrations.abletimeAccessToken;
|
|
313
|
+
const vercelToken = integrations.vercelToken;
|
|
314
|
+
const supabaseAccessToken = integrations.supabaseAccessToken;
|
|
315
|
+
const posthogPersonalApiKey = integrations.posthogPersonalApiKey;
|
|
316
|
+
const sentryAuthToken = integrations.sentryAuthToken;
|
|
287
317
|
delete integrations.linearApiKey;
|
|
288
318
|
delete integrations.linearAccessToken;
|
|
289
319
|
delete integrations.linearRefreshToken;
|
|
@@ -292,6 +322,10 @@ function toPublicAppSettings(settings) {
|
|
|
292
322
|
delete integrations.slackAppToken;
|
|
293
323
|
delete integrations.githubPat;
|
|
294
324
|
delete integrations.abletimeAccessToken;
|
|
325
|
+
delete integrations.vercelToken;
|
|
326
|
+
delete integrations.supabaseAccessToken;
|
|
327
|
+
delete integrations.posthogPersonalApiKey;
|
|
328
|
+
delete integrations.sentryAuthToken;
|
|
295
329
|
return {
|
|
296
330
|
...settings,
|
|
297
331
|
environment,
|
|
@@ -302,7 +336,11 @@ function toPublicAppSettings(settings) {
|
|
|
302
336
|
hasSlackClientSecret: Boolean(slackClientSecret?.trim()),
|
|
303
337
|
hasSlackAppToken: Boolean(slackAppToken?.trim()),
|
|
304
338
|
hasGithubPat: Boolean(githubPat?.trim()),
|
|
305
|
-
hasAbleTimeToken: Boolean(abletimeAccessToken?.trim())
|
|
339
|
+
hasAbleTimeToken: Boolean(abletimeAccessToken?.trim()),
|
|
340
|
+
hasVercelToken: Boolean(vercelToken?.trim()),
|
|
341
|
+
hasSupabaseToken: Boolean(supabaseAccessToken?.trim()),
|
|
342
|
+
hasPosthogToken: Boolean(posthogPersonalApiKey?.trim()),
|
|
343
|
+
hasSentryToken: Boolean(sentryAuthToken?.trim())
|
|
306
344
|
}
|
|
307
345
|
};
|
|
308
346
|
}
|
|
@@ -445,6 +483,46 @@ function normalizeIntegrations(raw) {
|
|
|
445
483
|
const name = source.abletimeViewerName.trim().slice(0, 120);
|
|
446
484
|
if (name) out.abletimeViewerName = name;
|
|
447
485
|
}
|
|
486
|
+
if (typeof source.vercelToken === "string") {
|
|
487
|
+
const token = source.vercelToken.trim();
|
|
488
|
+
if (token) out.vercelToken = token;
|
|
489
|
+
}
|
|
490
|
+
if (typeof source.vercelViewerName === "string") {
|
|
491
|
+
const name = source.vercelViewerName.trim().slice(0, 120);
|
|
492
|
+
if (name) out.vercelViewerName = name;
|
|
493
|
+
}
|
|
494
|
+
if (typeof source.supabaseAccessToken === "string") {
|
|
495
|
+
const token = source.supabaseAccessToken.trim();
|
|
496
|
+
if (token) out.supabaseAccessToken = token;
|
|
497
|
+
}
|
|
498
|
+
if (typeof source.supabaseViewerName === "string") {
|
|
499
|
+
const name = source.supabaseViewerName.trim().slice(0, 120);
|
|
500
|
+
if (name) out.supabaseViewerName = name;
|
|
501
|
+
}
|
|
502
|
+
if (typeof source.posthogPersonalApiKey === "string") {
|
|
503
|
+
const key = source.posthogPersonalApiKey.trim();
|
|
504
|
+
if (key) out.posthogPersonalApiKey = key;
|
|
505
|
+
}
|
|
506
|
+
if (typeof source.posthogHost === "string") {
|
|
507
|
+
const host = source.posthogHost.trim();
|
|
508
|
+
if (host) out.posthogHost = host;
|
|
509
|
+
}
|
|
510
|
+
if (typeof source.posthogViewerName === "string") {
|
|
511
|
+
const name = source.posthogViewerName.trim().slice(0, 120);
|
|
512
|
+
if (name) out.posthogViewerName = name;
|
|
513
|
+
}
|
|
514
|
+
if (typeof source.sentryAuthToken === "string") {
|
|
515
|
+
const token = source.sentryAuthToken.trim();
|
|
516
|
+
if (token) out.sentryAuthToken = token;
|
|
517
|
+
}
|
|
518
|
+
if (typeof source.sentryHost === "string") {
|
|
519
|
+
const host = source.sentryHost.trim();
|
|
520
|
+
if (host) out.sentryHost = host;
|
|
521
|
+
}
|
|
522
|
+
if (typeof source.sentryViewerName === "string") {
|
|
523
|
+
const name = source.sentryViewerName.trim().slice(0, 120);
|
|
524
|
+
if (name) out.sentryViewerName = name;
|
|
525
|
+
}
|
|
448
526
|
return out;
|
|
449
527
|
}
|
|
450
528
|
function normalizeDefaults(raw) {
|
|
@@ -603,7 +681,7 @@ function readSettingsFile() {
|
|
|
603
681
|
}
|
|
604
682
|
function diskHoldsSecrets(disk) {
|
|
605
683
|
return Boolean(
|
|
606
|
-
disk.integrations.linearApiKey || disk.integrations.linearAccessToken || disk.integrations.linearRefreshToken || disk.integrations.linearClientSecret || disk.integrations.slackClientSecret || disk.integrations.slackAppToken || disk.integrations.githubPat || disk.integrations.abletimeAccessToken || Object.keys(disk.environment).length > 0
|
|
684
|
+
disk.integrations.linearApiKey || disk.integrations.linearAccessToken || disk.integrations.linearRefreshToken || disk.integrations.linearClientSecret || disk.integrations.slackClientSecret || disk.integrations.slackAppToken || disk.integrations.githubPat || disk.integrations.abletimeAccessToken || disk.integrations.vercelToken || disk.integrations.supabaseAccessToken || disk.integrations.posthogPersonalApiKey || disk.integrations.sentryAuthToken || Object.keys(disk.environment).length > 0
|
|
607
685
|
);
|
|
608
686
|
}
|
|
609
687
|
function mergeVault(disk) {
|
|
@@ -634,6 +712,18 @@ function mergeVault(disk) {
|
|
|
634
712
|
if (vault.abletimeAccessToken && !integrations.abletimeAccessToken) {
|
|
635
713
|
integrations.abletimeAccessToken = vault.abletimeAccessToken;
|
|
636
714
|
}
|
|
715
|
+
if (vault.vercelToken && !integrations.vercelToken) {
|
|
716
|
+
integrations.vercelToken = vault.vercelToken;
|
|
717
|
+
}
|
|
718
|
+
if (vault.supabaseAccessToken && !integrations.supabaseAccessToken) {
|
|
719
|
+
integrations.supabaseAccessToken = vault.supabaseAccessToken;
|
|
720
|
+
}
|
|
721
|
+
if (vault.posthogPersonalApiKey && !integrations.posthogPersonalApiKey) {
|
|
722
|
+
integrations.posthogPersonalApiKey = vault.posthogPersonalApiKey;
|
|
723
|
+
}
|
|
724
|
+
if (vault.sentryAuthToken && !integrations.sentryAuthToken) {
|
|
725
|
+
integrations.sentryAuthToken = vault.sentryAuthToken;
|
|
726
|
+
}
|
|
637
727
|
return { ...disk, environment, integrations };
|
|
638
728
|
}
|
|
639
729
|
function persistSplit(settings) {
|
|
@@ -646,6 +736,10 @@ function persistSplit(settings) {
|
|
|
646
736
|
const slackAppToken = integrations.slackAppToken;
|
|
647
737
|
const githubPat = integrations.githubPat;
|
|
648
738
|
const abletimeAccessToken = integrations.abletimeAccessToken;
|
|
739
|
+
const vercelToken = integrations.vercelToken;
|
|
740
|
+
const supabaseAccessToken = integrations.supabaseAccessToken;
|
|
741
|
+
const posthogPersonalApiKey = integrations.posthogPersonalApiKey;
|
|
742
|
+
const sentryAuthToken = integrations.sentryAuthToken;
|
|
649
743
|
delete integrations.linearApiKey;
|
|
650
744
|
delete integrations.linearAccessToken;
|
|
651
745
|
delete integrations.linearRefreshToken;
|
|
@@ -654,6 +748,10 @@ function persistSplit(settings) {
|
|
|
654
748
|
delete integrations.slackAppToken;
|
|
655
749
|
delete integrations.githubPat;
|
|
656
750
|
delete integrations.abletimeAccessToken;
|
|
751
|
+
delete integrations.vercelToken;
|
|
752
|
+
delete integrations.supabaseAccessToken;
|
|
753
|
+
delete integrations.posthogPersonalApiKey;
|
|
754
|
+
delete integrations.sentryAuthToken;
|
|
657
755
|
writePrivateFile(
|
|
658
756
|
appSettingsPath(),
|
|
659
757
|
`${JSON.stringify({ ...settings, environment: {}, integrations }, null, 2)}
|
|
@@ -668,6 +766,10 @@ function persistSplit(settings) {
|
|
|
668
766
|
slackAppToken,
|
|
669
767
|
githubPat,
|
|
670
768
|
abletimeAccessToken,
|
|
769
|
+
vercelToken,
|
|
770
|
+
supabaseAccessToken,
|
|
771
|
+
posthogPersonalApiKey,
|
|
772
|
+
sentryAuthToken,
|
|
671
773
|
environment: settings.environment
|
|
672
774
|
});
|
|
673
775
|
}
|
|
@@ -869,6 +971,80 @@ function updateIntegrationsSettings(patch) {
|
|
|
869
971
|
integrations.abletimeViewerName = patch.abletimeViewerName.trim().slice(0, 120);
|
|
870
972
|
}
|
|
871
973
|
}
|
|
974
|
+
if ("vercelToken" in patch) {
|
|
975
|
+
if (patch.vercelToken == null || patch.vercelToken.trim() === "") {
|
|
976
|
+
delete integrations.vercelToken;
|
|
977
|
+
delete integrations.vercelViewerName;
|
|
978
|
+
} else {
|
|
979
|
+
integrations.vercelToken = patch.vercelToken.trim();
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
if ("vercelViewerName" in patch) {
|
|
983
|
+
if (patch.vercelViewerName == null || patch.vercelViewerName.trim() === "") {
|
|
984
|
+
delete integrations.vercelViewerName;
|
|
985
|
+
} else {
|
|
986
|
+
integrations.vercelViewerName = patch.vercelViewerName.trim().slice(0, 120);
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
if ("supabaseAccessToken" in patch) {
|
|
990
|
+
if (patch.supabaseAccessToken == null || patch.supabaseAccessToken.trim() === "") {
|
|
991
|
+
delete integrations.supabaseAccessToken;
|
|
992
|
+
delete integrations.supabaseViewerName;
|
|
993
|
+
} else {
|
|
994
|
+
integrations.supabaseAccessToken = patch.supabaseAccessToken.trim();
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
if ("supabaseViewerName" in patch) {
|
|
998
|
+
if (patch.supabaseViewerName == null || patch.supabaseViewerName.trim() === "") {
|
|
999
|
+
delete integrations.supabaseViewerName;
|
|
1000
|
+
} else {
|
|
1001
|
+
integrations.supabaseViewerName = patch.supabaseViewerName.trim().slice(0, 120);
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
if ("posthogPersonalApiKey" in patch) {
|
|
1005
|
+
if (patch.posthogPersonalApiKey == null || patch.posthogPersonalApiKey.trim() === "") {
|
|
1006
|
+
delete integrations.posthogPersonalApiKey;
|
|
1007
|
+
delete integrations.posthogViewerName;
|
|
1008
|
+
} else {
|
|
1009
|
+
integrations.posthogPersonalApiKey = patch.posthogPersonalApiKey.trim();
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
if ("posthogHost" in patch) {
|
|
1013
|
+
if (patch.posthogHost == null || patch.posthogHost.trim() === "") {
|
|
1014
|
+
delete integrations.posthogHost;
|
|
1015
|
+
} else {
|
|
1016
|
+
integrations.posthogHost = patch.posthogHost.trim();
|
|
1017
|
+
}
|
|
1018
|
+
}
|
|
1019
|
+
if ("posthogViewerName" in patch) {
|
|
1020
|
+
if (patch.posthogViewerName == null || patch.posthogViewerName.trim() === "") {
|
|
1021
|
+
delete integrations.posthogViewerName;
|
|
1022
|
+
} else {
|
|
1023
|
+
integrations.posthogViewerName = patch.posthogViewerName.trim().slice(0, 120);
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
if ("sentryAuthToken" in patch) {
|
|
1027
|
+
if (patch.sentryAuthToken == null || patch.sentryAuthToken.trim() === "") {
|
|
1028
|
+
delete integrations.sentryAuthToken;
|
|
1029
|
+
delete integrations.sentryViewerName;
|
|
1030
|
+
} else {
|
|
1031
|
+
integrations.sentryAuthToken = patch.sentryAuthToken.trim();
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
if ("sentryHost" in patch) {
|
|
1035
|
+
if (patch.sentryHost == null || patch.sentryHost.trim() === "") {
|
|
1036
|
+
delete integrations.sentryHost;
|
|
1037
|
+
} else {
|
|
1038
|
+
integrations.sentryHost = patch.sentryHost.trim();
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
if ("sentryViewerName" in patch) {
|
|
1042
|
+
if (patch.sentryViewerName == null || patch.sentryViewerName.trim() === "") {
|
|
1043
|
+
delete integrations.sentryViewerName;
|
|
1044
|
+
} else {
|
|
1045
|
+
integrations.sentryViewerName = patch.sentryViewerName.trim().slice(0, 120);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
872
1048
|
return saveAppSettings({ ...current, integrations });
|
|
873
1049
|
}
|
|
874
1050
|
function updateDefaultsSettings(patch) {
|
|
@@ -1226,8 +1402,30 @@ function applyAppEnvironment(target = process.env, settings = loadAppSettings())
|
|
|
1226
1402
|
target[key] = value;
|
|
1227
1403
|
}
|
|
1228
1404
|
}
|
|
1405
|
+
applyOptionalServiceTokens(target, settings.integrations);
|
|
1229
1406
|
return target;
|
|
1230
1407
|
}
|
|
1408
|
+
function fillEnvGap(target, key, value) {
|
|
1409
|
+
const v = value?.trim();
|
|
1410
|
+
if (!key || !v) return;
|
|
1411
|
+
if (target[key] == null || target[key] === "") target[key] = v;
|
|
1412
|
+
}
|
|
1413
|
+
function applyOptionalServiceTokens(target, integrations) {
|
|
1414
|
+
fillEnvGap(target, "VERCEL_TOKEN", integrations.vercelToken);
|
|
1415
|
+
fillEnvGap(target, "SUPABASE_ACCESS_TOKEN", integrations.supabaseAccessToken);
|
|
1416
|
+
fillEnvGap(target, "POSTHOG_PERSONAL_API_KEY", integrations.posthogPersonalApiKey);
|
|
1417
|
+
fillEnvGap(
|
|
1418
|
+
target,
|
|
1419
|
+
"POSTHOG_HOST",
|
|
1420
|
+
integrations.posthogPersonalApiKey ? integrations.posthogHost || "https://us.posthog.com" : void 0
|
|
1421
|
+
);
|
|
1422
|
+
fillEnvGap(target, "SENTRY_AUTH_TOKEN", integrations.sentryAuthToken);
|
|
1423
|
+
fillEnvGap(
|
|
1424
|
+
target,
|
|
1425
|
+
"SENTRY_URL",
|
|
1426
|
+
integrations.sentryAuthToken ? integrations.sentryHost || "https://sentry.io" : void 0
|
|
1427
|
+
);
|
|
1428
|
+
}
|
|
1231
1429
|
function childEnvWithAppSettings(extra) {
|
|
1232
1430
|
const settings = loadAppSettings();
|
|
1233
1431
|
const env = stripNestedElectronEnv({ ...process.env });
|
|
@@ -1257,6 +1455,7 @@ export {
|
|
|
1257
1455
|
issueSourceLabel,
|
|
1258
1456
|
HARNESS_ENV_KEYS,
|
|
1259
1457
|
GITHUB_GIT_AUTH_MODES,
|
|
1458
|
+
emptyPublicIntegrations,
|
|
1260
1459
|
toPublicAppSettings,
|
|
1261
1460
|
appSettingsPath,
|
|
1262
1461
|
claudeUserSettingsPath,
|