@sideboard-ai/core 0.1.293 → 0.1.294
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-VFKYNSJT.js → abletime-APP3DZ4P.js} +4 -4
- package/dist/{abletime-4WJUVE64.js → abletime-RYDAQ3FE.js} +4 -4
- package/dist/{abletime-oauth-ICMB2XV2.js → abletime-oauth-KTERKARA.js} +3 -3
- package/dist/{abletime-oauth-FW24YHYX.js → abletime-oauth-ZURGXSY6.js} +3 -3
- package/dist/{abletime-rest-OGWC7BC6.js → abletime-rest-4TVIWLZK.js} +3 -3
- package/dist/{abletime-rest-HFMRTUDT.js → abletime-rest-EUB6RW7K.js} +3 -3
- package/dist/{agents-WT72O5A3.js → agents-2PDBDZPS.js} +5 -5
- package/dist/{agents-SITR5V6F.js → agents-73JXQXF2.js} +5 -5
- package/dist/{app-settings-EHMXHNG5.js → app-settings-2IH42VA5.js} +3 -1
- package/dist/{app-settings-MR2U6AXN.js → app-settings-3OQWRKOK.js} +3 -1
- package/dist/{chunk-3E4NOIXN.js → chunk-3D3GGL6X.js} +3 -3
- package/dist/{chunk-UO5C2L2G.js → chunk-6SGYGYH7.js} +1 -1
- package/dist/{chunk-NXXQFLNQ.js → chunk-B42H6GJR.js} +2 -2
- package/dist/{chunk-WRDKJRWF.js → chunk-BJUHZSZQ.js} +4 -4
- package/dist/{chunk-MVZO7QZ2.js → chunk-BU6HH5VA.js} +4 -0
- package/dist/{chunk-LSHGJI4S.js → chunk-BYAFYLLZ.js} +19 -19
- package/dist/{chunk-IP5WSADC.js → chunk-CECZUHA5.js} +18 -18
- package/dist/{chunk-PO3PDNMV.js → chunk-E7G7RY6T.js} +3 -3
- package/dist/{chunk-NFPWLDCH.js → chunk-FAXOEKQR.js} +5 -5
- package/dist/{chunk-GU6DT6NO.js → chunk-HSF2RQSQ.js} +5 -5
- package/dist/{chunk-OH4EN323.js → chunk-ISEYRGMP.js} +2 -2
- package/dist/{chunk-XZW3BXZW.js → chunk-JEYJGQ33.js} +17 -11
- package/dist/{chunk-MYJYINTS.js → chunk-LZVWKJXY.js} +3 -3
- package/dist/{chunk-Y67TBJD5.js → chunk-MOP5L5QZ.js} +3 -3
- package/dist/{chunk-AF2DMY3K.js → chunk-QDDTVIWE.js} +13 -4
- package/dist/{chunk-B3BPLPKQ.js → chunk-R3R3ZDFC.js} +2 -2
- package/dist/{chunk-36J3IZBS.js → chunk-RSATPXU4.js} +4 -0
- package/dist/{chunk-AHH5USEA.js → chunk-SSETL5EX.js} +2 -2
- package/dist/{chunk-RPCKGO3J.js → chunk-SVQTKVXH.js} +16 -11
- package/dist/{chunk-W2KZTDET.js → chunk-WZCPZVUC.js} +2 -2
- package/dist/{chunk-4BXRRHDC.js → chunk-XCXUVX7I.js} +12 -3
- package/dist/{chunk-ZRQWV3MS.js → chunk-YEIPPZ5W.js} +3 -3
- package/dist/{chunk-4YXXLWDI.js → chunk-YKO6HG74.js} +4 -4
- package/dist/{chunk-2VGLZIU6.js → chunk-ZEP6JIRF.js} +1 -1
- package/dist/{conductor-P7XPGYF4.js → conductor-7DEMFEIO.js} +4 -4
- package/dist/{conductor-MAYZSFL6.js → conductor-ZQZTYXSX.js} +4 -4
- package/dist/{coordinator-prompt-NAM5JHLT.js → coordinator-prompt-AROMFCP2.js} +3 -3
- package/dist/{coordinator-prompt-OZFKNCM3.js → coordinator-prompt-K6XHUG3N.js} +3 -3
- package/dist/{global-workspace-UGR6FQXI.js → global-workspace-4WAU4PAL.js} +3 -3
- package/dist/{global-workspace-CTFQDG7G.js → global-workspace-PX4GUVLW.js} +3 -3
- package/dist/index.cjs +33 -11
- package/dist/index.d.cts +9 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +22 -17
- package/dist/mcp/run-stdio.cjs +29 -11
- package/dist/mcp/run-stdio.js +15 -13
- package/dist/{optional-cli-FRUZSZ3U.js → optional-cli-JQVNSMSU.js} +3 -3
- package/dist/{optional-cli-6SW4OOX3.js → optional-cli-PZXDOVJJ.js} +4 -4
- package/dist/{orchestrator-4QVF6CE2.js → orchestrator-LIEGSQ6M.js} +8 -8
- package/dist/{orchestrator-BOGVTCWI.js → orchestrator-YNEEEP6O.js} +8 -8
- package/dist/{workspaces-QNKFBA63.js → workspaces-MFU3IGAP.js} +3 -3
- package/dist/{workspaces-YNZXVBSF.js → workspaces-U7SSD27C.js} +3 -3
- package/dist/{worktree-EMCWDPZJ.js → worktree-2VSHRI72.js} +2 -2
- package/dist/{worktree-ERRH4TAG.js → worktree-TQKASYPZ.js} +2 -2
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
ensureGhPreferOrigin,
|
|
6
6
|
resolveGithubRepoSlug,
|
|
7
7
|
resolveRepoRoot
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-6SGYGYH7.js";
|
|
9
9
|
import {
|
|
10
10
|
ATTACHMENTS_DIR,
|
|
11
11
|
attachmentsGitignoreBody
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
resolveThreadDefaults,
|
|
23
23
|
resolveViewerProfile,
|
|
24
24
|
resolveViewerProfileForRepo
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-BU6HH5VA.js";
|
|
26
26
|
import {
|
|
27
27
|
allocateTeamName,
|
|
28
28
|
createEmptyThread,
|
|
@@ -346,7 +346,7 @@ var COORDINATOR_TOOL_PLAYBOOK = [
|
|
|
346
346
|
"- linear_* (when Linear is connected) \u2014 list_teams for team key/states; linear_list_projects for project names; get/search include the project a ticket is on; get/create/update/comment with ENG-123. Worktree agents have the same Account tools \u2014 prefer they comment, update status, and create spin-offs (parent=) on their own ticket when they were asked to do the work. When reviewing a PR or ticket, do not comment or update until the user types a next step \u2014 they should work through the feedback in chat first. Do not tell the child to ask_user after the review. Scope errors: reconnect Linear in Account settings. Prefer these over any Linear MCP the CLI may still list.",
|
|
347
347
|
"- github_* \u2014 get/comment/update/create GitHub issues via Account `gh` (#123). github_list_projects and get/search include GitHub Projects. projectsError or a missing read:project scope \u2192 `gh auth refresh -s read:project`. Worktree agents have these too. Prefer over any vendor GitHub MCP. Pass parent= for spin-offs. When reviewing a PR or ticket, do not comment, submit `gh pr review`, or update the PR/ticket until the user types a next step.",
|
|
348
348
|
"- abletime_* (when AbleTime is connected) \u2014 orientation first; abletime_list_projects lists projects; get/list include the project a task is on; get/comment/update/create (parent= for spin-offs); ensure_task when work has no ticket (or create_workspace from the default branch auto-creates one). Worktree agents have the same Account tools. Same review-write gate as Linear/GitHub.",
|
|
349
|
-
"- Optional connectors (Vercel, Supabase, Sentry) in Settings \u2192 Connectors inject tokens into worktree agent env when connected. Prefer official CLIs (`vercel`, `supabase`, `sentry-cli`). PostHog is the Sideboard tool `posthog_api` (GET by default; POST `/api/projects/:id/query/` or `/api/environments/:id/query/` is a read and does not need write=true; other POST and PATCH need write=true only when the user asked to change data). The PostHog key stays in the vault \u2014 do not read it from the environment. If a
|
|
349
|
+
"- Optional connectors (Vercel, Supabase, Sentry) in Settings \u2192 Connectors inject tokens into worktree agent env when connected. Prefer official CLIs (`vercel`, `supabase`, `sentry-cli`). When Settings \u2192 Connectors has a PostHog personal API key, PostHog is the Sideboard tool `posthog_api` (GET by default; POST `/api/projects/:id/query/` or `/api/environments/:id/query/` is a read and does not need write=true; other POST and PATCH need write=true only when the user asked to change data). The PostHog key stays in the vault \u2014 do not read it from the environment, and do not sign in to a PostHog MCP. When no PostHog API key is set, leave the Claude PostHog connector alone. If a Vercel, Supabase, or Sentry MCP needsAuth or is unauthorized, do not sign in \u2014 use the native CLI. Tell any worktree agent (Claude / Cursor / Codex / OpenCode) to write CLI output to `.context/cli/` and read a slice. If a CLI is missing, the user presses Install CLI on that row. Do not add vendor MCPs. Git (`gh`) stays Settings \u2192 Git; issue tracking stays Settings \u2192 Issues. The phone remote is Settings \u2192 Remote \u2014 do not look up Slack users.",
|
|
350
350
|
"- get_pr_stack / open_pr_stack_layers / add_stack_layer / create_pr_stack \u2014 GitHub stacked PRs (`gh stack`); one worktree per layer",
|
|
351
351
|
"- list_models \u2014 only when you need a specific model (rare); otherwise omit model so Account defaults apply",
|
|
352
352
|
"- list_chats / get_chat \u2014 live thread list (parent id + last message preview). get_chat on this orchestration chat lists child worktree agents (status + lastText). blockedReason is why that agent is waiting on a person. Also includes usage / lastTurnUsage.",
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
getAbleTimeHost,
|
|
6
6
|
isAbleTimeConnected
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-RSATPXU4.js";
|
|
8
8
|
|
|
9
9
|
// src/integrations/abletime-mcp.ts
|
|
10
10
|
var DEFAULT_ABLETIME_HOST = "https://track.abletime.com";
|
|
@@ -153,7 +153,7 @@ function textsFromUnknown(value) {
|
|
|
153
153
|
return "";
|
|
154
154
|
}
|
|
155
155
|
async function abletimeMcpRequest(method, params, opts) {
|
|
156
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
156
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-KTERKARA.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
157
157
|
if (!rawToken?.trim()) {
|
|
158
158
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
159
159
|
}
|
|
@@ -224,9 +224,9 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
224
224
|
if (!opts?.token && !isAbleTimeConnected()) {
|
|
225
225
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
226
226
|
}
|
|
227
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
227
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-KTERKARA.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
228
228
|
if (rawToken && ableTimeUsesRest(rawToken)) {
|
|
229
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
229
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-EUB6RW7K.js");
|
|
230
230
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
231
231
|
}
|
|
232
232
|
const requestOpts = { ...opts, pm: opts?.pm ?? abletimeToolUsesPm(name) };
|
|
@@ -242,7 +242,7 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
242
242
|
return await call();
|
|
243
243
|
}
|
|
244
244
|
if (rawToken && ableTimeUsesRest(rawToken) && isAbleTimeRejectedCredential(message)) {
|
|
245
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
245
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-EUB6RW7K.js");
|
|
246
246
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
247
247
|
}
|
|
248
248
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getAbleTimeHost,
|
|
8
8
|
isAbleTimeConnected
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BU6HH5VA.js";
|
|
10
10
|
|
|
11
11
|
// src/integrations/abletime-mcp.ts
|
|
12
12
|
var DEFAULT_ABLETIME_HOST = "https://track.abletime.com";
|
|
@@ -155,7 +155,7 @@ function textsFromUnknown(value) {
|
|
|
155
155
|
return "";
|
|
156
156
|
}
|
|
157
157
|
async function abletimeMcpRequest(method, params, opts) {
|
|
158
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
158
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-ZURGXSY6.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
159
159
|
if (!rawToken?.trim()) {
|
|
160
160
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
161
161
|
}
|
|
@@ -226,9 +226,9 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
226
226
|
if (!opts?.token && !isAbleTimeConnected()) {
|
|
227
227
|
throw new Error("AbleTime is not connected \u2014 paste a personal access token in Account settings");
|
|
228
228
|
}
|
|
229
|
-
const rawToken = opts?.token ?? await import("./abletime-oauth-
|
|
229
|
+
const rawToken = opts?.token ?? await import("./abletime-oauth-ZURGXSY6.js").then((m) => m.ensureAbleTimeAccessToken());
|
|
230
230
|
if (rawToken && ableTimeUsesRest(rawToken)) {
|
|
231
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
231
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-4TVIWLZK.js");
|
|
232
232
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
233
233
|
}
|
|
234
234
|
const requestOpts = { ...opts, pm: opts?.pm ?? abletimeToolUsesPm(name) };
|
|
@@ -244,7 +244,7 @@ async function callAbleTimeTool(name, args = {}, opts) {
|
|
|
244
244
|
return await call();
|
|
245
245
|
}
|
|
246
246
|
if (rawToken && ableTimeUsesRest(rawToken) && isAbleTimeRejectedCredential(message)) {
|
|
247
|
-
const { callAbleTimeRestTool } = await import("./abletime-rest-
|
|
247
|
+
const { callAbleTimeRestTool } = await import("./abletime-rest-4TVIWLZK.js");
|
|
248
248
|
return callAbleTimeRestTool(name, args, { ...opts, token: rawToken });
|
|
249
249
|
}
|
|
250
250
|
throw err instanceof Error ? new Error(rewriteAbleTimeError(err.message)) : err;
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
OPTIONAL_SERVICES,
|
|
3
3
|
isOptionalServiceId,
|
|
4
4
|
optionalServiceSpec
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QDDTVIWE.js";
|
|
6
6
|
import {
|
|
7
7
|
installNpmGlobalPackage,
|
|
8
8
|
whichOnPath
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-B42H6GJR.js";
|
|
10
10
|
import {
|
|
11
11
|
enrichPathWithNpmGlobalBin
|
|
12
12
|
} from "./chunk-QVN2WOKJ.js";
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
} from "./chunk-YSLCWCMJ.js";
|
|
13
13
|
import {
|
|
14
14
|
isOrchestratorThread
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YEIPPZ5W.js";
|
|
16
16
|
import {
|
|
17
17
|
codexUnattendedGitConfigArgs,
|
|
18
18
|
mergeAgentGitAuthEnv,
|
|
19
19
|
resolveAgentGitAuthEnv,
|
|
20
20
|
resolveCodexGitWritableRoots
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ZEP6JIRF.js";
|
|
22
22
|
import {
|
|
23
23
|
loadBrightsyConfig
|
|
24
24
|
} from "./chunk-33KDPEK4.js";
|
|
@@ -64,10 +64,11 @@ import {
|
|
|
64
64
|
fromInclusiveInputUsage,
|
|
65
65
|
isAbleTimeConnected,
|
|
66
66
|
isLinearConnected,
|
|
67
|
+
isPosthogConnected,
|
|
67
68
|
loadAppSettings,
|
|
68
69
|
resolveAgentExecutable,
|
|
69
70
|
resolveClaudeExecutable
|
|
70
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-RSATPXU4.js";
|
|
71
72
|
import {
|
|
72
73
|
isElectronLikeCommand,
|
|
73
74
|
unwrapStrippedElectronLaunch
|
|
@@ -574,6 +575,10 @@ var CLAUDE_CHROME_ALLOWED_TOOLS = [
|
|
|
574
575
|
"mcp__claude-in-chrome__*",
|
|
575
576
|
"Skill(claude-in-chrome)"
|
|
576
577
|
];
|
|
578
|
+
var CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS = [
|
|
579
|
+
"mcp__claude_ai_PostHog",
|
|
580
|
+
"mcp__claude_ai_PostHog__*"
|
|
581
|
+
];
|
|
577
582
|
|
|
578
583
|
// src/agents/orch-mcp-isolation.ts
|
|
579
584
|
import { existsSync as existsSync4, readFileSync as readFileSync2 } from "fs";
|
|
@@ -719,11 +724,9 @@ var SIDEBOARD_GITHUB_MCP_ALLOWED_TOOLS = ["mcp__sideboard__github_*"];
|
|
|
719
724
|
var SIDEBOARD_LINEAR_MCP_ALLOWED_TOOLS = ["mcp__sideboard__linear_*"];
|
|
720
725
|
var SIDEBOARD_ABLETIME_MCP_ALLOWED_TOOLS = ["mcp__sideboard__abletime_*"];
|
|
721
726
|
function sideboardWorktreeAllowedTools(opts) {
|
|
722
|
-
const out =
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
if (idx >= 0) out.splice(idx, 1);
|
|
726
|
-
}
|
|
727
|
+
const out = SIDEBOARD_ARTIFACT_MCP_ALLOWED_TOOLS.filter(
|
|
728
|
+
(tool) => (opts?.planMode || tool !== "mcp__sideboard__present_plan") && (opts?.posthog || tool !== "mcp__sideboard__posthog_api")
|
|
729
|
+
);
|
|
727
730
|
if (opts?.github !== false) out.push(...SIDEBOARD_GITHUB_MCP_ALLOWED_TOOLS);
|
|
728
731
|
if (opts?.linear) out.push(...SIDEBOARD_LINEAR_MCP_ALLOWED_TOOLS);
|
|
729
732
|
if (opts?.abletime) out.push(...SIDEBOARD_ABLETIME_MCP_ALLOWED_TOOLS);
|
|
@@ -1752,7 +1755,7 @@ var claudeAdapter = {
|
|
|
1752
1755
|
);
|
|
1753
1756
|
}
|
|
1754
1757
|
const mode = permissionMode(thread);
|
|
1755
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
1758
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-4WAU4PAL.js");
|
|
1756
1759
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
1757
1760
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
1758
1761
|
const injectedServers = await buildInjectedMcpServers({
|
|
@@ -1782,9 +1785,11 @@ var claudeAdapter = {
|
|
|
1782
1785
|
github: true,
|
|
1783
1786
|
linear: isLinearConnected(),
|
|
1784
1787
|
abletime: isAbleTimeConnected(),
|
|
1785
|
-
planMode: thread.planMode
|
|
1788
|
+
planMode: thread.planMode,
|
|
1789
|
+
posthog: isPosthogConnected()
|
|
1786
1790
|
}),
|
|
1787
|
-
...brightsyMcpAllowedTools(injectedBrightsyNames)
|
|
1791
|
+
...brightsyMcpAllowedTools(injectedBrightsyNames),
|
|
1792
|
+
...isPosthogConnected() ? [] : CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS
|
|
1788
1793
|
];
|
|
1789
1794
|
}
|
|
1790
1795
|
if (chromeOn) {
|
|
@@ -3683,6 +3688,7 @@ export {
|
|
|
3683
3688
|
BASE_ALLOWED_TOOLS,
|
|
3684
3689
|
CLAUDE_PRINT_BG_WAIT_CEILING_MS,
|
|
3685
3690
|
CLAUDE_CHROME_ALLOWED_TOOLS,
|
|
3691
|
+
CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS,
|
|
3686
3692
|
SIDEBOARD_MCP_PROFILE_ENV,
|
|
3687
3693
|
SIDEBOARD_THREAD_ID_ENV,
|
|
3688
3694
|
shouldRegisterMcpWaitForTurn,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
abletimeRestUrl,
|
|
3
3
|
textFromAbleTimeDoc
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-R3R3ZDFC.js";
|
|
5
5
|
import {
|
|
6
6
|
assertAbleTimeCredential,
|
|
7
7
|
callAbleTimeTool,
|
|
8
8
|
normalizeAbleTimeHost,
|
|
9
9
|
rewriteAbleTimeError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-FAXOEKQR.js";
|
|
11
11
|
import {
|
|
12
12
|
httpFetch
|
|
13
13
|
} from "./chunk-JAT3JFOS.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
getAbleTimeHost,
|
|
21
21
|
isAbleTimeConnected,
|
|
22
22
|
saveAbleTimeConnection
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-RSATPXU4.js";
|
|
24
24
|
|
|
25
25
|
// src/integrations/issue-attachments.ts
|
|
26
26
|
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import {
|
|
4
4
|
abletimeRestUrl,
|
|
5
5
|
textFromAbleTimeDoc
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SSETL5EX.js";
|
|
7
7
|
import {
|
|
8
8
|
assertAbleTimeCredential,
|
|
9
9
|
callAbleTimeTool,
|
|
10
10
|
normalizeAbleTimeHost,
|
|
11
11
|
rewriteAbleTimeError
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HSF2RQSQ.js";
|
|
13
13
|
import {
|
|
14
14
|
httpFetch
|
|
15
15
|
} from "./chunk-2GPQZZLY.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
getAbleTimeHost,
|
|
23
23
|
isAbleTimeConnected,
|
|
24
24
|
saveAbleTimeConnection
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-BU6HH5VA.js";
|
|
26
26
|
|
|
27
27
|
// src/integrations/issue-attachments.ts
|
|
28
28
|
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
loadAppSettings,
|
|
6
6
|
saveAppSettings
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-RSATPXU4.js";
|
|
8
8
|
|
|
9
9
|
// src/integrations/optional-services.ts
|
|
10
10
|
var OPTIONAL_SERVICE_IDS = ["vercel", "supabase", "posthog", "sentry"];
|
|
@@ -235,6 +235,12 @@ function connectorDirectiveLine(spec, cli) {
|
|
|
235
235
|
}
|
|
236
236
|
return `- ${spec.label}: call \`posthog_api\`. Path must start with \`/api/\`. GET is the default. POST \`/api/projects/:id/query/\` or \`/api/environments/:id/query/\` is a read and does not need \`write=true\`. Other POST and PATCH require \`write=true\` only when the user asked to change data. Do not read the API key from the environment. Do not add a ${spec.label} MCP.`;
|
|
237
237
|
}
|
|
238
|
+
function connectorAuthCaution(posthog, cliConnected) {
|
|
239
|
+
const signIn = posthog ? "If a connector MCP is listed but needsAuth or returns unauthorized, do not sign in to that MCP." : "If a Vercel, Supabase, or Sentry MCP is listed but needsAuth or returns unauthorized, do not sign in to that MCP.";
|
|
240
|
+
const token = cliConnected ? " CLI tokens are already in this process." : "";
|
|
241
|
+
const key = posthog ? " Do not read a PostHog key from the environment." : "";
|
|
242
|
+
return `${signIn}${token}${key}`;
|
|
243
|
+
}
|
|
238
244
|
function connectorReminderBit(spec, cli) {
|
|
239
245
|
if (!spec.cli) return `${spec.label}: \`posthog_api\``;
|
|
240
246
|
const presence = cliPresencePhrase(spec, cli);
|
|
@@ -244,10 +250,11 @@ function formatOptionalServicesDirective(integrations, cli) {
|
|
|
244
250
|
const connected = connectedOptionalServices(integrations);
|
|
245
251
|
if (connected.length === 0) return null;
|
|
246
252
|
const cliConnected = connected.some((spec) => spec.cli);
|
|
253
|
+
const posthog = connected.some((spec) => spec.id === "posthog");
|
|
247
254
|
const lines = [
|
|
248
255
|
cliConnected ? "Optional connectors (connected \u2014 CLI tokens are already in this process env):" : "Optional connectors (connected):",
|
|
249
256
|
...connected.map((spec) => connectorDirectiveLine(spec, cli)),
|
|
250
|
-
|
|
257
|
+
connectorAuthCaution(posthog, cliConnected),
|
|
251
258
|
"Do not add a vendor MCP. When a binary is missing, ask the user to press Install CLI in Settings \u2192 Connectors.",
|
|
252
259
|
"When you shell a connector CLI, write bulky output to `.context/cli/` and read a slice."
|
|
253
260
|
];
|
|
@@ -258,13 +265,15 @@ function formatOptionalServicesReminder(integrations, cli) {
|
|
|
258
265
|
if (connected.length === 0) return null;
|
|
259
266
|
const bits = connected.map((spec) => connectorReminderBit(spec, cli)).join(". ");
|
|
260
267
|
const tokenBit = connected.some((spec) => spec.cli) ? "CLI tokens are already in this process. " : "";
|
|
261
|
-
|
|
268
|
+
const posthog = connected.some((spec) => spec.id === "posthog");
|
|
269
|
+
const auth = posthog ? "If a connector MCP needsAuth or is unauthorized, ignore it and use the CLI or `posthog_api`. Do not read a PostHog key from the environment." : "If a Vercel, Supabase, or Sentry MCP needsAuth or is unauthorized, ignore it and use the CLI.";
|
|
270
|
+
return `Settings \u2192 Connectors: ${tokenBit}${bits}. ${auth} Do not add vendor MCPs. Shell dumps from those CLIs go in \`.context/cli/\` \u2014 read a slice.`;
|
|
262
271
|
}
|
|
263
272
|
async function connectedCliPresence(integrations) {
|
|
264
273
|
const ids = connectedOptionalServices(integrations).filter((spec) => spec.cli).map((spec) => spec.id);
|
|
265
274
|
if (ids.length === 0) return void 0;
|
|
266
275
|
try {
|
|
267
|
-
const { optionalCliPresence } = await import("./optional-cli-
|
|
276
|
+
const { optionalCliPresence } = await import("./optional-cli-PZXDOVJJ.js");
|
|
268
277
|
return await optionalCliPresence(ids);
|
|
269
278
|
} catch {
|
|
270
279
|
return void 0;
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
normalizeAbleTimeCredential,
|
|
5
5
|
normalizeAbleTimeHost,
|
|
6
6
|
rewriteAbleTimeError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FAXOEKQR.js";
|
|
8
8
|
import {
|
|
9
9
|
httpFetch
|
|
10
10
|
} from "./chunk-JAT3JFOS.js";
|
|
11
11
|
import {
|
|
12
12
|
getAbleTimeAccessToken,
|
|
13
13
|
getAbleTimeHost
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RSATPXU4.js";
|
|
15
15
|
|
|
16
16
|
// src/integrations/abletime-rest.ts
|
|
17
17
|
var ABLETIME_REST_PREFIX = "/api/public/v2";
|
|
@@ -1906,6 +1906,9 @@ function disconnectLinearConnection() {
|
|
|
1906
1906
|
delete integrations.linearOrganizationName;
|
|
1907
1907
|
return saveAppSettings({ ...current, integrations });
|
|
1908
1908
|
}
|
|
1909
|
+
function isPosthogConnected(settings = loadAppSettings()) {
|
|
1910
|
+
return Boolean(settings.integrations.posthogPersonalApiKey?.trim());
|
|
1911
|
+
}
|
|
1909
1912
|
function isAbleTimeConnected(settings = loadAppSettings()) {
|
|
1910
1913
|
return Boolean(
|
|
1911
1914
|
settings.integrations.abletimeAccessToken?.trim() || settings.integrations.abletimeRefreshToken?.trim()
|
|
@@ -2375,6 +2378,7 @@ export {
|
|
|
2375
2378
|
isLinearConnected,
|
|
2376
2379
|
saveLinearOAuth,
|
|
2377
2380
|
disconnectLinearConnection,
|
|
2381
|
+
isPosthogConnected,
|
|
2378
2382
|
isAbleTimeConnected,
|
|
2379
2383
|
getAbleTimeAccessToken,
|
|
2380
2384
|
getAbleTimeHost,
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
normalizeAbleTimeCredential,
|
|
7
7
|
normalizeAbleTimeHost,
|
|
8
8
|
rewriteAbleTimeError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HSF2RQSQ.js";
|
|
10
10
|
import {
|
|
11
11
|
httpFetch
|
|
12
12
|
} from "./chunk-2GPQZZLY.js";
|
|
13
13
|
import {
|
|
14
14
|
getAbleTimeAccessToken,
|
|
15
15
|
getAbleTimeHost
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-BU6HH5VA.js";
|
|
17
17
|
|
|
18
18
|
// src/integrations/abletime-rest.ts
|
|
19
19
|
var ABLETIME_REST_PREFIX = "/api/public/v2";
|
|
@@ -24,13 +24,13 @@ import {
|
|
|
24
24
|
} from "./chunk-AFLNFGGB.js";
|
|
25
25
|
import {
|
|
26
26
|
isOrchestratorThread
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-E7G7RY6T.js";
|
|
28
28
|
import {
|
|
29
29
|
codexUnattendedGitConfigArgs,
|
|
30
30
|
mergeAgentGitAuthEnv,
|
|
31
31
|
resolveAgentGitAuthEnv,
|
|
32
32
|
resolveCodexGitWritableRoots
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-6SGYGYH7.js";
|
|
34
34
|
import {
|
|
35
35
|
npmGlobalNodeModules,
|
|
36
36
|
run
|
|
@@ -40,10 +40,11 @@ import {
|
|
|
40
40
|
fromInclusiveInputUsage,
|
|
41
41
|
isAbleTimeConnected,
|
|
42
42
|
isLinearConnected,
|
|
43
|
+
isPosthogConnected,
|
|
43
44
|
loadAppSettings,
|
|
44
45
|
resolveAgentExecutable,
|
|
45
46
|
resolveClaudeExecutable
|
|
46
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-BU6HH5VA.js";
|
|
47
48
|
import {
|
|
48
49
|
isElectronLikeCommand,
|
|
49
50
|
unwrapStrippedElectronLaunch,
|
|
@@ -483,6 +484,10 @@ var CLAUDE_CHROME_ALLOWED_TOOLS = [
|
|
|
483
484
|
"mcp__claude-in-chrome__*",
|
|
484
485
|
"Skill(claude-in-chrome)"
|
|
485
486
|
];
|
|
487
|
+
var CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS = [
|
|
488
|
+
"mcp__claude_ai_PostHog",
|
|
489
|
+
"mcp__claude_ai_PostHog__*"
|
|
490
|
+
];
|
|
486
491
|
|
|
487
492
|
// src/agents/orch-mcp-isolation.ts
|
|
488
493
|
import { existsSync as existsSync7, readFileSync as readFileSync3 } from "fs";
|
|
@@ -976,11 +981,9 @@ var SIDEBOARD_GITHUB_MCP_ALLOWED_TOOLS = ["mcp__sideboard__github_*"];
|
|
|
976
981
|
var SIDEBOARD_LINEAR_MCP_ALLOWED_TOOLS = ["mcp__sideboard__linear_*"];
|
|
977
982
|
var SIDEBOARD_ABLETIME_MCP_ALLOWED_TOOLS = ["mcp__sideboard__abletime_*"];
|
|
978
983
|
function sideboardWorktreeAllowedTools(opts) {
|
|
979
|
-
const out =
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
if (idx >= 0) out.splice(idx, 1);
|
|
983
|
-
}
|
|
984
|
+
const out = SIDEBOARD_ARTIFACT_MCP_ALLOWED_TOOLS.filter(
|
|
985
|
+
(tool) => (opts?.planMode || tool !== "mcp__sideboard__present_plan") && (opts?.posthog || tool !== "mcp__sideboard__posthog_api")
|
|
986
|
+
);
|
|
984
987
|
if (opts?.github !== false) out.push(...SIDEBOARD_GITHUB_MCP_ALLOWED_TOOLS);
|
|
985
988
|
if (opts?.linear) out.push(...SIDEBOARD_LINEAR_MCP_ALLOWED_TOOLS);
|
|
986
989
|
if (opts?.abletime) out.push(...SIDEBOARD_ABLETIME_MCP_ALLOWED_TOOLS);
|
|
@@ -2015,7 +2018,7 @@ var claudeAdapter = {
|
|
|
2015
2018
|
);
|
|
2016
2019
|
}
|
|
2017
2020
|
const mode = permissionMode(thread);
|
|
2018
|
-
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-
|
|
2021
|
+
const { isOrchestratorThread: isOrchestratorThread2 } = await import("./global-workspace-PX4GUVLW.js");
|
|
2019
2022
|
const isOrchestrator = isOrchestratorThread2(thread);
|
|
2020
2023
|
const rpc = worktreeAgentRpc(isOrchestrator);
|
|
2021
2024
|
const injectedServers = await buildInjectedMcpServers({
|
|
@@ -2045,9 +2048,11 @@ var claudeAdapter = {
|
|
|
2045
2048
|
github: true,
|
|
2046
2049
|
linear: isLinearConnected(),
|
|
2047
2050
|
abletime: isAbleTimeConnected(),
|
|
2048
|
-
planMode: thread.planMode
|
|
2051
|
+
planMode: thread.planMode,
|
|
2052
|
+
posthog: isPosthogConnected()
|
|
2049
2053
|
}),
|
|
2050
|
-
...brightsyMcpAllowedTools(injectedBrightsyNames)
|
|
2054
|
+
...brightsyMcpAllowedTools(injectedBrightsyNames),
|
|
2055
|
+
...isPosthogConnected() ? [] : CLAUDE_POSTHOG_CONNECTOR_ALLOWED_TOOLS
|
|
2051
2056
|
];
|
|
2052
2057
|
}
|
|
2053
2058
|
if (chromeOn) {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-2UG25RMK.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveAgentExecutable
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BU6HH5VA.js";
|
|
13
13
|
|
|
14
14
|
// src/agents/install.ts
|
|
15
15
|
import { existsSync } from "fs";
|
|
@@ -267,7 +267,7 @@ async function loginAgent(agent) {
|
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
269
|
async function loginManagedAccount(accountId) {
|
|
270
|
-
const { loadAppSettings } = await import("./app-settings-
|
|
270
|
+
const { loadAppSettings } = await import("./app-settings-2IH42VA5.js");
|
|
271
271
|
const { loginEnvPrefix } = await import("./managed-accounts-46A4KRUE.js");
|
|
272
272
|
const account = loadAppSettings().accounts.accounts.find((a) => a.id === accountId);
|
|
273
273
|
if (!account) {
|
|
@@ -87,6 +87,12 @@ function connectorDirectiveLine(spec, cli) {
|
|
|
87
87
|
}
|
|
88
88
|
return `- ${spec.label}: call \`posthog_api\`. Path must start with \`/api/\`. GET is the default. POST \`/api/projects/:id/query/\` or \`/api/environments/:id/query/\` is a read and does not need \`write=true\`. Other POST and PATCH require \`write=true\` only when the user asked to change data. Do not read the API key from the environment. Do not add a ${spec.label} MCP.`;
|
|
89
89
|
}
|
|
90
|
+
function connectorAuthCaution(posthog, cliConnected) {
|
|
91
|
+
const signIn = posthog ? "If a connector MCP is listed but needsAuth or returns unauthorized, do not sign in to that MCP." : "If a Vercel, Supabase, or Sentry MCP is listed but needsAuth or returns unauthorized, do not sign in to that MCP.";
|
|
92
|
+
const token = cliConnected ? " CLI tokens are already in this process." : "";
|
|
93
|
+
const key = posthog ? " Do not read a PostHog key from the environment." : "";
|
|
94
|
+
return `${signIn}${token}${key}`;
|
|
95
|
+
}
|
|
90
96
|
function connectorReminderBit(spec, cli) {
|
|
91
97
|
if (!spec.cli) return `${spec.label}: \`posthog_api\``;
|
|
92
98
|
const presence = cliPresencePhrase(spec, cli);
|
|
@@ -96,10 +102,11 @@ function formatOptionalServicesDirective(integrations, cli) {
|
|
|
96
102
|
const connected = connectedOptionalServices(integrations);
|
|
97
103
|
if (connected.length === 0) return null;
|
|
98
104
|
const cliConnected = connected.some((spec) => spec.cli);
|
|
105
|
+
const posthog = connected.some((spec) => spec.id === "posthog");
|
|
99
106
|
const lines = [
|
|
100
107
|
cliConnected ? "Optional connectors (connected \u2014 CLI tokens are already in this process env):" : "Optional connectors (connected):",
|
|
101
108
|
...connected.map((spec) => connectorDirectiveLine(spec, cli)),
|
|
102
|
-
|
|
109
|
+
connectorAuthCaution(posthog, cliConnected),
|
|
103
110
|
"Do not add a vendor MCP. When a binary is missing, ask the user to press Install CLI in Settings \u2192 Connectors.",
|
|
104
111
|
"When you shell a connector CLI, write bulky output to `.context/cli/` and read a slice."
|
|
105
112
|
];
|
|
@@ -110,13 +117,15 @@ function formatOptionalServicesReminder(integrations, cli) {
|
|
|
110
117
|
if (connected.length === 0) return null;
|
|
111
118
|
const bits = connected.map((spec) => connectorReminderBit(spec, cli)).join(". ");
|
|
112
119
|
const tokenBit = connected.some((spec) => spec.cli) ? "CLI tokens are already in this process. " : "";
|
|
113
|
-
|
|
120
|
+
const posthog = connected.some((spec) => spec.id === "posthog");
|
|
121
|
+
const auth = posthog ? "If a connector MCP needsAuth or is unauthorized, ignore it and use the CLI or `posthog_api`. Do not read a PostHog key from the environment." : "If a Vercel, Supabase, or Sentry MCP needsAuth or is unauthorized, ignore it and use the CLI.";
|
|
122
|
+
return `Settings \u2192 Connectors: ${tokenBit}${bits}. ${auth} Do not add vendor MCPs. Shell dumps from those CLIs go in \`.context/cli/\` \u2014 read a slice.`;
|
|
114
123
|
}
|
|
115
124
|
async function connectedCliPresence(integrations) {
|
|
116
125
|
const ids = connectedOptionalServices(integrations).filter((spec) => spec.cli).map((spec) => spec.id);
|
|
117
126
|
if (ids.length === 0) return void 0;
|
|
118
127
|
try {
|
|
119
|
-
const { optionalCliPresence } = await import("./optional-cli-
|
|
128
|
+
const { optionalCliPresence } = await import("./optional-cli-JQVNSMSU.js");
|
|
120
129
|
return await optionalCliPresence(ids);
|
|
121
130
|
} catch {
|
|
122
131
|
return void 0;
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
ensureGhPreferOrigin,
|
|
4
4
|
resolveGithubRepoSlug,
|
|
5
5
|
resolveRepoRoot
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZEP6JIRF.js";
|
|
7
7
|
import {
|
|
8
8
|
allocateTeamName,
|
|
9
9
|
createEmptyThread,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
resolveThreadDefaults,
|
|
30
30
|
resolveViewerProfile,
|
|
31
31
|
resolveViewerProfileForRepo
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-RSATPXU4.js";
|
|
33
33
|
import {
|
|
34
34
|
appDataDir,
|
|
35
35
|
globalAgentCwd,
|
|
@@ -391,7 +391,7 @@ var COORDINATOR_TOOL_PLAYBOOK = [
|
|
|
391
391
|
"- linear_* (when Linear is connected) \u2014 list_teams for team key/states; linear_list_projects for project names; get/search include the project a ticket is on; get/create/update/comment with ENG-123. Worktree agents have the same Account tools \u2014 prefer they comment, update status, and create spin-offs (parent=) on their own ticket when they were asked to do the work. When reviewing a PR or ticket, do not comment or update until the user types a next step \u2014 they should work through the feedback in chat first. Do not tell the child to ask_user after the review. Scope errors: reconnect Linear in Account settings. Prefer these over any Linear MCP the CLI may still list.",
|
|
392
392
|
"- github_* \u2014 get/comment/update/create GitHub issues via Account `gh` (#123). github_list_projects and get/search include GitHub Projects. projectsError or a missing read:project scope \u2192 `gh auth refresh -s read:project`. Worktree agents have these too. Prefer over any vendor GitHub MCP. Pass parent= for spin-offs. When reviewing a PR or ticket, do not comment, submit `gh pr review`, or update the PR/ticket until the user types a next step.",
|
|
393
393
|
"- abletime_* (when AbleTime is connected) \u2014 orientation first; abletime_list_projects lists projects; get/list include the project a task is on; get/comment/update/create (parent= for spin-offs); ensure_task when work has no ticket (or create_workspace from the default branch auto-creates one). Worktree agents have the same Account tools. Same review-write gate as Linear/GitHub.",
|
|
394
|
-
"- Optional connectors (Vercel, Supabase, Sentry) in Settings \u2192 Connectors inject tokens into worktree agent env when connected. Prefer official CLIs (`vercel`, `supabase`, `sentry-cli`). PostHog is the Sideboard tool `posthog_api` (GET by default; POST `/api/projects/:id/query/` or `/api/environments/:id/query/` is a read and does not need write=true; other POST and PATCH need write=true only when the user asked to change data). The PostHog key stays in the vault \u2014 do not read it from the environment. If a
|
|
394
|
+
"- Optional connectors (Vercel, Supabase, Sentry) in Settings \u2192 Connectors inject tokens into worktree agent env when connected. Prefer official CLIs (`vercel`, `supabase`, `sentry-cli`). When Settings \u2192 Connectors has a PostHog personal API key, PostHog is the Sideboard tool `posthog_api` (GET by default; POST `/api/projects/:id/query/` or `/api/environments/:id/query/` is a read and does not need write=true; other POST and PATCH need write=true only when the user asked to change data). The PostHog key stays in the vault \u2014 do not read it from the environment, and do not sign in to a PostHog MCP. When no PostHog API key is set, leave the Claude PostHog connector alone. If a Vercel, Supabase, or Sentry MCP needsAuth or is unauthorized, do not sign in \u2014 use the native CLI. Tell any worktree agent (Claude / Cursor / Codex / OpenCode) to write CLI output to `.context/cli/` and read a slice. If a CLI is missing, the user presses Install CLI on that row. Do not add vendor MCPs. Git (`gh`) stays Settings \u2192 Git; issue tracking stays Settings \u2192 Issues. The phone remote is Settings \u2192 Remote \u2014 do not look up Slack users.",
|
|
395
395
|
"- get_pr_stack / open_pr_stack_layers / add_stack_layer / create_pr_stack \u2014 GitHub stacked PRs (`gh stack`); one worktree per layer",
|
|
396
396
|
"- list_models \u2014 only when you need a specific model (rare); otherwise omit model so Account defaults apply",
|
|
397
397
|
"- list_chats / get_chat \u2014 live thread list (parent id + last message preview). get_chat on this orchestration chat lists child worktree agents (status + lastText). blockedReason is why that agent is waiting on a person. Also includes usage / lastTurnUsage.",
|
|
@@ -8,11 +8,11 @@ import {
|
|
|
8
8
|
isGlobalThread,
|
|
9
9
|
isOrchestratorThread,
|
|
10
10
|
isSlackCoordinatorThread
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YEIPPZ5W.js";
|
|
12
12
|
import {
|
|
13
13
|
mergeAgentGitAuthEnv,
|
|
14
14
|
resolveAgentGitAuthEnv
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZEP6JIRF.js";
|
|
16
16
|
import {
|
|
17
17
|
allocateTeamName,
|
|
18
18
|
createEmptyThread,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
import {
|
|
44
44
|
assertOrchestratorCapableAgent,
|
|
45
45
|
contextTokens
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-RSATPXU4.js";
|
|
47
47
|
import {
|
|
48
48
|
stripNestedElectronEnv
|
|
49
49
|
} from "./chunk-4TR3HZFT.js";
|
|
@@ -1776,7 +1776,7 @@ var PORT_RANGE_SIZE = 10;
|
|
|
1776
1776
|
var RECLAIM_RETRY_DELAY_MS = 40;
|
|
1777
1777
|
var RECLAIM_TRIES = 8;
|
|
1778
1778
|
async function killReclaimable(ports, worktreePath, signal) {
|
|
1779
|
-
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-
|
|
1779
|
+
const { killListenersOnPorts: killListenersOnPorts2, killStaleWorktreeListeners: killStaleWorktreeListeners2 } = await import("./conductor-ZQZTYXSX.js");
|
|
1780
1780
|
if (worktreePath) killStaleWorktreeListeners2(ports, worktreePath, signal);
|
|
1781
1781
|
else killListenersOnPorts2(ports);
|
|
1782
1782
|
}
|
|
@@ -33,14 +33,14 @@ import {
|
|
|
33
33
|
tryReservePort,
|
|
34
34
|
tryReservePorts,
|
|
35
35
|
worktreeRunPortsPath
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-BJUHZSZQ.js";
|
|
37
37
|
import "./chunk-AFLNFGGB.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-E7G7RY6T.js";
|
|
39
|
+
import "./chunk-6SGYGYH7.js";
|
|
40
40
|
import "./chunk-N2WW62LF.js";
|
|
41
41
|
import "./chunk-DD67JWTN.js";
|
|
42
42
|
import "./chunk-2UG25RMK.js";
|
|
43
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-BU6HH5VA.js";
|
|
44
44
|
import "./chunk-NSTQ6QKD.js";
|
|
45
45
|
import {
|
|
46
46
|
stripNestedElectronEnv
|
|
@@ -31,17 +31,17 @@ import {
|
|
|
31
31
|
tryReservePort,
|
|
32
32
|
tryReservePorts,
|
|
33
33
|
worktreeRunPortsPath
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-YKO6HG74.js";
|
|
35
35
|
import "./chunk-YSLCWCMJ.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-YEIPPZ5W.js";
|
|
37
|
+
import "./chunk-ZEP6JIRF.js";
|
|
38
38
|
import "./chunk-QB5MDOHL.js";
|
|
39
39
|
import "./chunk-2P4XKWV2.js";
|
|
40
40
|
import "./chunk-MIVX7QKI.js";
|
|
41
41
|
import "./chunk-6K64FJDD.js";
|
|
42
42
|
import "./chunk-UWQ6UCIB.js";
|
|
43
43
|
import "./chunk-QVN2WOKJ.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-RSATPXU4.js";
|
|
45
45
|
import "./chunk-77WWLBCI.js";
|
|
46
46
|
import {
|
|
47
47
|
stripNestedElectronEnv
|