@sideboard-ai/core 0.1.39 → 0.1.42
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/agents/cursor-runner.cjs +29 -12
- package/dist/agents/cursor-runner.js +29 -12
- package/dist/{agents-DDW4NBBW.js → agents-T6XHC5OV.js} +1 -1
- package/dist/{chunk-FVGRUZHI.js → chunk-44LYDJFB.js} +2 -2
- package/dist/{chunk-HYRHI3QU.js → chunk-5UIKSPDD.js} +3 -1
- package/dist/{chunk-IS3AGU33.js → chunk-6TZSJMXF.js} +3 -3
- package/dist/{chunk-2YFQNL3O.js → chunk-FZH2SL5I.js} +112 -29
- package/dist/{chunk-BEXVE7LX.js → chunk-SX2R2PCE.js} +1 -1
- package/dist/{chunk-PTASB7SJ.js → chunk-UPMGXM4X.js} +1 -1
- package/dist/{chunk-XBEQI5H4.js → chunk-VA2U5EQH.js} +1 -1
- package/dist/{coordinator-prompt-WIYQVMOG.js → coordinator-prompt-FAILHO4J.js} +3 -3
- package/dist/cursor-recover-L5PNQUDT.js +42 -0
- package/dist/{global-workspace-QSRP25HQ.js → global-workspace-4GVWSCEX.js} +4 -4
- package/dist/index.cjs +155 -22
- package/dist/index.d.cts +18 -4
- package/dist/index.d.ts +18 -4
- package/dist/index.js +9 -7
- package/dist/mcp/run-stdio.cjs +153 -22
- package/dist/mcp/run-stdio.js +7 -7
- package/dist/{thread-store-UNPZNIFW.js → thread-store-WPLT3IXM.js} +1 -1
- package/dist/{workspaces-DMYWHVJC.js → workspaces-Z7CSL4O6.js} +5 -5
- package/dist/{worktree-37FBII5A.js → worktree-M3DTPYBW.js} +2 -2
- package/package.json +1 -1
package/dist/mcp/run-stdio.cjs
CHANGED
|
@@ -443,6 +443,7 @@ function normalizeThread(raw) {
|
|
|
443
443
|
planMode: Boolean(raw.planMode),
|
|
444
444
|
autonomy: raw.autonomy ?? "default",
|
|
445
445
|
lastError: raw.lastError ?? null,
|
|
446
|
+
agentPid: raw.agentPid ?? null,
|
|
446
447
|
attachments: Array.isArray(raw.attachments) ? raw.attachments : [],
|
|
447
448
|
prTitle: raw.prTitle ?? null,
|
|
448
449
|
userSetTitle: Boolean(raw.userSetTitle),
|
|
@@ -478,7 +479,8 @@ function createEmptyThread(partial) {
|
|
|
478
479
|
worktreePath: partial.worktreePath,
|
|
479
480
|
repoPath: partial.repoPath,
|
|
480
481
|
agent: partial.agent,
|
|
481
|
-
lastError: null
|
|
482
|
+
lastError: null,
|
|
483
|
+
agentPid: null
|
|
482
484
|
};
|
|
483
485
|
}
|
|
484
486
|
async function withThreadLock(id, fn) {
|
|
@@ -5615,15 +5617,62 @@ var init_workspaces = __esm({
|
|
|
5615
5617
|
}
|
|
5616
5618
|
});
|
|
5617
5619
|
|
|
5620
|
+
// src/agents/cursor-recover.ts
|
|
5621
|
+
var cursor_recover_exports = {};
|
|
5622
|
+
__export(cursor_recover_exports, {
|
|
5623
|
+
recoverFinishedCursorRun: () => recoverFinishedCursorRun
|
|
5624
|
+
});
|
|
5625
|
+
function recoverFinishedCursorRun(opts) {
|
|
5626
|
+
const agentId = opts.agentId.trim();
|
|
5627
|
+
if (!agentId) return null;
|
|
5628
|
+
const runsPath = (0, import_node_path23.join)(appDataDir(), "cursor-sdk-store", "runs.ndjson");
|
|
5629
|
+
if (!(0, import_node_fs24.existsSync)(runsPath)) return null;
|
|
5630
|
+
try {
|
|
5631
|
+
const lines = (0, import_node_fs24.readFileSync)(runsPath, "utf8").split("\n");
|
|
5632
|
+
let best = null;
|
|
5633
|
+
for (const line of lines) {
|
|
5634
|
+
const trimmed = line.trim();
|
|
5635
|
+
if (!trimmed) continue;
|
|
5636
|
+
let row;
|
|
5637
|
+
try {
|
|
5638
|
+
row = JSON.parse(trimmed);
|
|
5639
|
+
} catch {
|
|
5640
|
+
continue;
|
|
5641
|
+
}
|
|
5642
|
+
if (row.agentId !== agentId) continue;
|
|
5643
|
+
if (row.status !== "finished") continue;
|
|
5644
|
+
if (typeof row.result !== "string" || !row.result.trim()) continue;
|
|
5645
|
+
const endedAt = typeof row.endedAt === "number" ? row.endedAt : 0;
|
|
5646
|
+
const createdAt = typeof row.createdAt === "number" ? row.createdAt : 0;
|
|
5647
|
+
if (createdAt < opts.startedAfterMs && endedAt < opts.startedAfterMs) continue;
|
|
5648
|
+
if (!best || endedAt >= best.endedAt) {
|
|
5649
|
+
best = { runId: row.runId || "", result: row.result.trim(), endedAt };
|
|
5650
|
+
}
|
|
5651
|
+
}
|
|
5652
|
+
return best;
|
|
5653
|
+
} catch {
|
|
5654
|
+
return null;
|
|
5655
|
+
}
|
|
5656
|
+
}
|
|
5657
|
+
var import_node_fs24, import_node_path23;
|
|
5658
|
+
var init_cursor_recover = __esm({
|
|
5659
|
+
"src/agents/cursor-recover.ts"() {
|
|
5660
|
+
"use strict";
|
|
5661
|
+
import_node_fs24 = require("fs");
|
|
5662
|
+
import_node_path23 = require("path");
|
|
5663
|
+
init_paths();
|
|
5664
|
+
}
|
|
5665
|
+
});
|
|
5666
|
+
|
|
5618
5667
|
// src/mcp/server.ts
|
|
5619
5668
|
var import_mcp = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
5620
5669
|
var import_stdio = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
5621
5670
|
var import_zod = require("zod");
|
|
5622
|
-
var
|
|
5671
|
+
var import_node_path24 = require("path");
|
|
5623
5672
|
|
|
5624
5673
|
// src/orchestrator/orchestrator.ts
|
|
5625
5674
|
var import_node_events = require("events");
|
|
5626
|
-
var
|
|
5675
|
+
var import_node_fs25 = require("fs");
|
|
5627
5676
|
init_error_detail();
|
|
5628
5677
|
|
|
5629
5678
|
// src/agents/spawn.ts
|
|
@@ -8559,6 +8608,31 @@ function formatWorktreeDirective(thread, opts) {
|
|
|
8559
8608
|
"- Prefer a draft PR first: `gh pr create --draft -R <origin-owner/name>` (or update via `gh pr edit -R \u2026`) once the change set is coherent. Resolve `<origin-owner/name>` with `git remote get-url origin` in this worktree \u2014 never from `upstream`. Mark ready for review only when asked. Title/body must reflect the change purpose, not the worktree name."
|
|
8560
8609
|
);
|
|
8561
8610
|
}
|
|
8611
|
+
lines.push("");
|
|
8612
|
+
lines.push(
|
|
8613
|
+
"Short git requests from the Sideboard UI are complete instructions \u2014 expand them using the rules above without asking for clarification:"
|
|
8614
|
+
);
|
|
8615
|
+
lines.push(
|
|
8616
|
+
'- "Commit and push." \u2192 commit any uncommitted work with a purpose-stating message, then push to origin (updates an existing PR if one is linked).'
|
|
8617
|
+
);
|
|
8618
|
+
lines.push(
|
|
8619
|
+
'- "Commit, push, and open a draft PR." \u2192 commit, push, then create a draft PR with `gh pr create --draft -R \u2026` (title/body from the change purpose).'
|
|
8620
|
+
);
|
|
8621
|
+
lines.push(
|
|
8622
|
+
'- "Commit, push, and open a PR in the browser." \u2192 commit, push, then `gh pr create --web -R \u2026`.'
|
|
8623
|
+
);
|
|
8624
|
+
lines.push(
|
|
8625
|
+
'- "Fix CI: <name>." \u2192 investigate that failing check, fix it, commit, and push.'
|
|
8626
|
+
);
|
|
8627
|
+
lines.push(
|
|
8628
|
+
'- "Update the branch." / "Fix merge conflicts." \u2192 sync with the PR base (merge or rebase), resolve conflicts carefully, commit, and push until the PR is mergeable.'
|
|
8629
|
+
);
|
|
8630
|
+
lines.push(
|
|
8631
|
+
'- "Address review comments." \u2192 read PR review feedback, make the requested changes, commit, and push.'
|
|
8632
|
+
);
|
|
8633
|
+
lines.push(
|
|
8634
|
+
'- "Merge PR." \u2192 merge this thread\'s open pull request with `gh pr merge` (respect repo defaults / squash vs merge); do not force-push main/master.'
|
|
8635
|
+
);
|
|
8562
8636
|
return lines.join("\n");
|
|
8563
8637
|
}
|
|
8564
8638
|
function formatArtifactDirective() {
|
|
@@ -8677,6 +8751,15 @@ async function syncThreadBranchFromGit(threadId) {
|
|
|
8677
8751
|
init_workspaces();
|
|
8678
8752
|
init_global_workspace();
|
|
8679
8753
|
init_coordinator_prompt();
|
|
8754
|
+
function isPidAlive(pid) {
|
|
8755
|
+
if (!Number.isFinite(pid) || pid <= 0) return false;
|
|
8756
|
+
try {
|
|
8757
|
+
process.kill(pid, 0);
|
|
8758
|
+
return true;
|
|
8759
|
+
} catch {
|
|
8760
|
+
return false;
|
|
8761
|
+
}
|
|
8762
|
+
}
|
|
8680
8763
|
var Orchestrator = class {
|
|
8681
8764
|
events = new import_node_events.EventEmitter();
|
|
8682
8765
|
processes = /* @__PURE__ */ new Map();
|
|
@@ -8713,8 +8796,18 @@ var Orchestrator = class {
|
|
|
8713
8796
|
isStaleRunningThread(threadId, status) {
|
|
8714
8797
|
return status === "running" && !this.activeTurns.has(threadId) && !this.startingTurns.has(threadId);
|
|
8715
8798
|
}
|
|
8799
|
+
/**
|
|
8800
|
+
* Cross-process guard: another Sideboard process (MCP stdio) may call reconcile
|
|
8801
|
+
* while the desktop still owns a live agent child. Never reclaim those.
|
|
8802
|
+
*/
|
|
8803
|
+
shouldReclaimRunningThread(thread) {
|
|
8804
|
+
if (!this.isStaleRunningThread(thread.id, thread.status)) return false;
|
|
8805
|
+
const pid = thread.agentPid;
|
|
8806
|
+
if (typeof pid === "number" && pid > 0 && isPidAlive(pid)) return false;
|
|
8807
|
+
return true;
|
|
8808
|
+
}
|
|
8716
8809
|
async reconcile(repoPath, opts) {
|
|
8717
|
-
const reclaimStaleTurns = opts?.reclaimStaleTurns
|
|
8810
|
+
const reclaimStaleTurns = opts?.reclaimStaleTurns === true;
|
|
8718
8811
|
healOrchestrationSoccerTitles();
|
|
8719
8812
|
for (const thread of listThreads({ includeArchived: true })) {
|
|
8720
8813
|
if (thread.status === "archived") continue;
|
|
@@ -8730,18 +8823,18 @@ var Orchestrator = class {
|
|
|
8730
8823
|
if (Object.keys(heal).length) {
|
|
8731
8824
|
updateThread(thread.id, heal);
|
|
8732
8825
|
}
|
|
8733
|
-
if (reclaimStaleTurns && this.
|
|
8826
|
+
if (reclaimStaleTurns && this.shouldReclaimRunningThread(thread)) {
|
|
8734
8827
|
setStatus(thread.id, "stopped", "Process died (reconciled on startup)");
|
|
8735
8828
|
this.emit({ type: "status_changed", threadId: thread.id, status: "stopped" });
|
|
8736
8829
|
}
|
|
8737
8830
|
continue;
|
|
8738
8831
|
}
|
|
8739
|
-
if (!(0,
|
|
8832
|
+
if (!(0, import_node_fs25.existsSync)(thread.worktreePath)) {
|
|
8740
8833
|
setStatus(thread.id, "broken", "Worktree missing on disk");
|
|
8741
8834
|
this.emit({ type: "status_changed", threadId: thread.id, status: "broken" });
|
|
8742
8835
|
continue;
|
|
8743
8836
|
}
|
|
8744
|
-
if (reclaimStaleTurns && this.
|
|
8837
|
+
if (reclaimStaleTurns && this.shouldReclaimRunningThread(thread)) {
|
|
8745
8838
|
setStatus(thread.id, "stopped", "Process died (reconciled on startup)");
|
|
8746
8839
|
this.emit({ type: "status_changed", threadId: thread.id, status: "stopped" });
|
|
8747
8840
|
}
|
|
@@ -8923,6 +9016,11 @@ var Orchestrator = class {
|
|
|
8923
9016
|
await new Promise((r) => setTimeout(r, 100));
|
|
8924
9017
|
continue;
|
|
8925
9018
|
}
|
|
9019
|
+
const livePid = thread.agentPid;
|
|
9020
|
+
if (typeof livePid === "number" && livePid > 0 && isPidAlive(livePid)) {
|
|
9021
|
+
await new Promise((r) => setTimeout(r, 200));
|
|
9022
|
+
continue;
|
|
9023
|
+
}
|
|
8926
9024
|
const prompt = thread.queue[0];
|
|
8927
9025
|
const remaining = thread.queue.slice(1);
|
|
8928
9026
|
updateThread(threadId, { queue: remaining });
|
|
@@ -9066,10 +9164,18 @@ var Orchestrator = class {
|
|
|
9066
9164
|
if (event.type === "stderr" && typeof event.data === "string") {
|
|
9067
9165
|
pushTurnStderr(stderrTail, event.data);
|
|
9068
9166
|
}
|
|
9167
|
+
const live = readThread(threadId);
|
|
9168
|
+
if (live?.lastError?.includes("reconciled on startup") && (this.activeTurns.has(threadId) || this.startingTurns.has(threadId))) {
|
|
9169
|
+
setStatus(threadId, "running");
|
|
9170
|
+
this.emit({ type: "status_changed", threadId, status: "running" });
|
|
9171
|
+
}
|
|
9069
9172
|
}
|
|
9070
9173
|
);
|
|
9071
9174
|
this.activeTurns.set(threadId, handle);
|
|
9072
9175
|
this.startingTurns.delete(threadId);
|
|
9176
|
+
if (typeof handle.pid === "number" && handle.pid > 0) {
|
|
9177
|
+
updateThread(threadId, { agentPid: handle.pid });
|
|
9178
|
+
}
|
|
9073
9179
|
if (this.stoppedTurns.has(threadId)) {
|
|
9074
9180
|
handle.kill();
|
|
9075
9181
|
} else {
|
|
@@ -9089,20 +9195,41 @@ var Orchestrator = class {
|
|
|
9089
9195
|
if (result.sessionId) {
|
|
9090
9196
|
updateThread(threadId, { sessionId: result.sessionId });
|
|
9091
9197
|
}
|
|
9092
|
-
|
|
9093
|
-
|
|
9094
|
-
|
|
9198
|
+
let assistantText = result.assistantText.trim();
|
|
9199
|
+
let parts = result.parts;
|
|
9200
|
+
let usage = result.usage ?? void 0;
|
|
9201
|
+
let exitCode = result.exitCode;
|
|
9202
|
+
if (this.requireThread(threadId).agent === "cursor" && exitCode !== 0 && !assistantText && parts.length === 0) {
|
|
9203
|
+
const sessionId = result.sessionId || this.requireThread(threadId).sessionId || "";
|
|
9204
|
+
if (sessionId) {
|
|
9205
|
+
const { recoverFinishedCursorRun: recoverFinishedCursorRun2 } = await Promise.resolve().then(() => (init_cursor_recover(), cursor_recover_exports));
|
|
9206
|
+
for (let i = 0; i < 8; i++) {
|
|
9207
|
+
const recovered = recoverFinishedCursorRun2({
|
|
9208
|
+
agentId: sessionId,
|
|
9209
|
+
startedAfterMs: turnStartedAt - 5e3
|
|
9210
|
+
});
|
|
9211
|
+
if (recovered?.result) {
|
|
9212
|
+
assistantText = recovered.result;
|
|
9213
|
+
exitCode = 0;
|
|
9214
|
+
break;
|
|
9215
|
+
}
|
|
9216
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
9217
|
+
}
|
|
9218
|
+
}
|
|
9219
|
+
}
|
|
9220
|
+
const failureOnlyMessage = exitCode !== 0 && looksLikeAgentFailureMessage(assistantText) && !parts.some((p) => p.type === "tool" || p.type === "thinking");
|
|
9221
|
+
if (!failureOnlyMessage && (assistantText || parts.length > 0)) {
|
|
9095
9222
|
appendMessage(threadId, {
|
|
9096
9223
|
role: "agent",
|
|
9097
9224
|
text: assistantText,
|
|
9098
|
-
parts:
|
|
9225
|
+
parts: parts.length > 0 ? parts : void 0,
|
|
9099
9226
|
durationMs: Math.max(0, Date.now() - turnStartedAt),
|
|
9100
|
-
usage
|
|
9227
|
+
usage,
|
|
9101
9228
|
ts: (/* @__PURE__ */ new Date()).toISOString()
|
|
9102
9229
|
});
|
|
9103
9230
|
}
|
|
9104
9231
|
const afterTurn = this.requireThread(threadId);
|
|
9105
|
-
if (afterTurn.planMode && afterTurn.agent === "claude" &&
|
|
9232
|
+
if (afterTurn.planMode && afterTurn.agent === "claude" && parts.some(
|
|
9106
9233
|
(p) => p.type === "tool" && /exitplanmode/i.test(p.name)
|
|
9107
9234
|
)) {
|
|
9108
9235
|
updateThread(threadId, { sessionId: null });
|
|
@@ -9111,22 +9238,22 @@ var Orchestrator = class {
|
|
|
9111
9238
|
if (this.stoppedTurns.has(threadId)) {
|
|
9112
9239
|
setStatus(threadId, "stopped");
|
|
9113
9240
|
this.emit({ type: "status_changed", threadId, status: "stopped" });
|
|
9114
|
-
this.emit({ type: "turn_finished", threadId, exitCode
|
|
9241
|
+
this.emit({ type: "turn_finished", threadId, exitCode });
|
|
9115
9242
|
} else {
|
|
9116
9243
|
const lastStderr = summarizeTurnStderr(stderrTail);
|
|
9117
|
-
const detail = lastStderr || (
|
|
9118
|
-
const failDetail = formatTurnExitError(
|
|
9244
|
+
const detail = lastStderr || (exitCode !== 0 ? fallbackTurnFailDetail(assistantText) : "");
|
|
9245
|
+
const failDetail = formatTurnExitError(exitCode, detail);
|
|
9119
9246
|
setStatus(
|
|
9120
9247
|
threadId,
|
|
9121
|
-
|
|
9122
|
-
|
|
9248
|
+
exitCode === 0 ? "idle" : "error",
|
|
9249
|
+
exitCode === 0 ? null : failDetail
|
|
9123
9250
|
);
|
|
9124
9251
|
this.emit({
|
|
9125
9252
|
type: "status_changed",
|
|
9126
9253
|
threadId,
|
|
9127
|
-
status:
|
|
9254
|
+
status: exitCode === 0 ? "idle" : "error"
|
|
9128
9255
|
});
|
|
9129
|
-
this.emit({ type: "turn_finished", threadId, exitCode
|
|
9256
|
+
this.emit({ type: "turn_finished", threadId, exitCode });
|
|
9130
9257
|
}
|
|
9131
9258
|
} catch (err) {
|
|
9132
9259
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -9147,6 +9274,10 @@ var Orchestrator = class {
|
|
|
9147
9274
|
this.processes.delete(`${threadId}:agent`);
|
|
9148
9275
|
this.stoppedTurns.delete(threadId);
|
|
9149
9276
|
this.runningCount = Math.max(0, this.runningCount - 1);
|
|
9277
|
+
try {
|
|
9278
|
+
updateThread(threadId, { agentPid: null });
|
|
9279
|
+
} catch {
|
|
9280
|
+
}
|
|
9150
9281
|
}
|
|
9151
9282
|
}
|
|
9152
9283
|
/**
|
|
@@ -9719,7 +9850,7 @@ var Orchestrator = class {
|
|
|
9719
9850
|
updateThread(thread.id, { worktreePath: globalAgentCwd2() });
|
|
9720
9851
|
return setStatus(thread.id, "idle");
|
|
9721
9852
|
}
|
|
9722
|
-
if (!(0,
|
|
9853
|
+
if (!(0, import_node_fs25.existsSync)(thread.worktreePath)) {
|
|
9723
9854
|
const { createThreadWorktree: createThreadWorktree2 } = await Promise.resolve().then(() => (init_worktree(), worktree_exports));
|
|
9724
9855
|
const { execa: execa7 } = await import("execa");
|
|
9725
9856
|
const slug = thread.worktreePath.split("/").pop();
|
|
@@ -9937,7 +10068,7 @@ async function startMcpServer() {
|
|
|
9937
10068
|
async () => {
|
|
9938
10069
|
const threads = orch.getThreads(true);
|
|
9939
10070
|
const lines = threads.map((t) => {
|
|
9940
|
-
const repo = t.repoPath === GLOBAL_WORKSPACE_ID ? "Orchestration" : (0,
|
|
10071
|
+
const repo = t.repoPath === GLOBAL_WORKSPACE_ID ? "Orchestration" : (0, import_node_path24.basename)(t.repoPath) || t.repoPath;
|
|
9941
10072
|
return `${t.id.slice(0, 8)} ${t.status.padEnd(9)} ${t.agent.padEnd(8)} ${repo} ${t.sourceType}:${t.sourceRef} ${t.title} sideboard://thread/${t.id}${t.devPort ? ` http://localhost:${t.devPort}` : ""}`;
|
|
9942
10073
|
});
|
|
9943
10074
|
return {
|
package/dist/mcp/run-stdio.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startMcpServer
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-FZH2SL5I.js";
|
|
5
|
+
import "../chunk-44LYDJFB.js";
|
|
6
|
+
import "../chunk-6TZSJMXF.js";
|
|
7
|
+
import "../chunk-UPMGXM4X.js";
|
|
8
|
+
import "../chunk-SX2R2PCE.js";
|
|
9
9
|
import "../chunk-ILQK4P5R.js";
|
|
10
10
|
import "../chunk-PU27NUO4.js";
|
|
11
11
|
import "../chunk-YZ23S32T.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-VA2U5EQH.js";
|
|
13
|
+
import "../chunk-5UIKSPDD.js";
|
|
14
14
|
import "../chunk-M37RITA6.js";
|
|
15
15
|
import "../chunk-AJ6ROGD7.js";
|
|
16
16
|
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
listWorkspaces,
|
|
5
5
|
removeWorkspace,
|
|
6
6
|
syncWorkspacesFromThreads
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-44LYDJFB.js";
|
|
8
|
+
import "./chunk-6TZSJMXF.js";
|
|
9
|
+
import "./chunk-UPMGXM4X.js";
|
|
10
|
+
import "./chunk-VA2U5EQH.js";
|
|
11
|
+
import "./chunk-5UIKSPDD.js";
|
|
12
12
|
import "./chunk-M37RITA6.js";
|
|
13
13
|
import "./chunk-AJ6ROGD7.js";
|
|
14
14
|
export {
|
|
@@ -41,8 +41,8 @@ import {
|
|
|
41
41
|
worktreeDisplayLabel,
|
|
42
42
|
worktreeDisplayLabelForGroup,
|
|
43
43
|
worktreeNameFromPath
|
|
44
|
-
} from "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
} from "./chunk-VA2U5EQH.js";
|
|
45
|
+
import "./chunk-5UIKSPDD.js";
|
|
46
46
|
import "./chunk-M37RITA6.js";
|
|
47
47
|
import "./chunk-AJ6ROGD7.js";
|
|
48
48
|
export {
|