vibe64 0.1.21 → 0.1.22
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/assets/ProjectTypeGate-B3NHteXC.js +1 -0
- package/dist/assets/ProjectTypeGate-fJcYj6sR.css +1 -0
- package/dist/assets/{SetupReadinessGate-DkkorR2Y.js → SetupReadinessGate-2twHjoYZ.js} +1 -1
- package/dist/assets/{ShellLayout-BcKS2HG9.js → ShellLayout-BjAbXfzf.js} +1 -1
- package/dist/assets/{VTabs-BJ8MKoig.js → VTabs-BLGGdbms.js} +1 -1
- package/dist/assets/{error-CwT53qTu.js → error-DvUPciuh.js} +1 -1
- package/dist/assets/history-DfM4ewyV.js +1 -0
- package/dist/assets/home-sh4v0vz7.js +1 -0
- package/dist/assets/index-C4JbNnml.css +1 -0
- package/dist/assets/{index-BJxDQvyK.js → index-CdFWokfE.js} +1 -1
- package/dist/assets/index-D4oqjV9n.js +132 -0
- package/dist/assets/{index-CY-wDjNv.js → index-DqoYKexs.js} +15 -15
- package/dist/assets/{placement-7FCYadh2.js → placement-QfRaYTFY.js} +1 -1
- package/dist/assets/{setup-BzzdD38G.js → setup-B-WOti3H.js} +2 -2
- package/dist/assets/{streamEvents-Ba9kHw-1.js → streamEvents-CIqegoLa.js} +1 -1
- package/dist/assets/{studioGateApi-hkZdLr1Y.js → studioGateApi-CFtez6lH.js} +1 -1
- package/dist/assets/{target-scripts-8hczu84t.js → target-scripts-CI-nAISO.js} +1 -1
- package/dist/assets/useStudioTerminal-I8tuBymw.js +1 -0
- package/dist/assets/vibe64SessionPanelModel-DLdexNxC.js +1 -0
- package/dist/index.html +1 -1
- package/node_modules/@local/setup-doctor-core/src/server/doctorToolchain.js +4 -0
- package/node_modules/@local/studio-terminal-core/src/server/gitGithubTransport.js +33 -0
- package/node_modules/@local/studio-terminal-core/src/server/index.js +1 -0
- package/node_modules/@local/studio-terminal-core/src/server/terminalSessions.js +51 -1
- package/node_modules/@local/vibe64-adapters/src/server/adapter.js +4 -0
- package/node_modules/@local/vibe64-adapters/src/server/adapters/laravel/adapter.js +5 -0
- package/node_modules/@local/vibe64-adapters/src/server/adapters/laravel/databaseRuntime.js +50 -0
- package/node_modules/@local/vibe64-adapters/src/server/configStore.js +22 -1
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/agent_conversation.txt +0 -2
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/draft_issue.txt +18 -0
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/make_plan.txt +14 -2
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/prepare_for_merge.txt +2 -0
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/resolve_pull_request.txt +1 -0
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/run_deep_ui_check.txt +7 -3
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/commitPush.js +4 -22
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/factMetadata.js +21 -20
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/issuePr.js +27 -4
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/mergeSync.js +65 -8
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/worktreeDependencies.js +12 -25
- package/node_modules/@local/vibe64-adapters/src/server/workflowSessionActions.js +77 -20
- package/node_modules/@local/vibe64-core/src/server/terminalWebSocketRoutes.js +14 -5
- package/node_modules/@local/vibe64-project/src/server/actions.js +21 -0
- package/node_modules/@local/vibe64-project/src/server/registerRoutes.js +6 -0
- package/node_modules/@local/vibe64-project/src/server/service.js +125 -8
- package/node_modules/@local/vibe64-runtime/src/server/coreProjectTools.js +135 -0
- package/node_modules/@local/vibe64-runtime/src/server/index.js +4 -0
- package/node_modules/@local/vibe64-runtime/src/server/projectToolRegistry.js +434 -0
- package/node_modules/@local/vibe64-runtime/src/server/runtime.js +40 -16
- package/node_modules/@local/vibe64-runtime/src/server/sessionWorktreeState.js +25 -0
- package/node_modules/@local/vibe64-runtime/src/server/terminalFailureFixRequest.js +112 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowArtifacts.js +2 -2
- package/node_modules/@local/vibe64-runtime/src/server/workflowDefinitionBuilders.js +1 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowDefinitionComposers.js +192 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowMachine.js +5 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreCoding.js +1309 -419
- package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreLifecycle.js +540 -358
- package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreMaintenance.js +5 -26
- package/node_modules/@local/vibe64-runtime/src/server/workflowPresentation.js +153 -26
- package/node_modules/@local/vibe64-runtime/src/server/workflowStepMachineHelpers.js +63 -10
- package/node_modules/@local/vibe64-runtime/src/server/workflowStepMachines.js +63 -2
- package/node_modules/@local/vibe64-sessions/src/server/inputSchemas.js +5 -0
- package/node_modules/@local/vibe64-sessions/src/server/service.js +8 -9
- package/node_modules/@local/vibe64-terminals/src/server/actions.js +65 -0
- package/node_modules/@local/vibe64-terminals/src/server/codexTerminal.js +608 -23
- package/node_modules/@local/vibe64-terminals/src/server/commandTerminal.js +261 -4
- package/node_modules/@local/vibe64-terminals/src/server/fixCodexJobs.js +420 -0
- package/node_modules/@local/vibe64-terminals/src/server/inputSchemas.js +240 -0
- package/node_modules/@local/vibe64-terminals/src/server/launchTargetTerminal.js +2 -0
- package/node_modules/@local/vibe64-terminals/src/server/registerRoutes.js +226 -0
- package/node_modules/@local/vibe64-terminals/src/server/service.js +140 -1
- package/node_modules/@local/vibe64-terminals/src/server/targetToolchainTerminal.js +1 -1
- package/node_modules/@local/vibe64-terminals/src/server/terminalShared.js +34 -0
- package/node_modules/node-pty/build/Makefile +369 -0
- package/node_modules/node-pty/build/Release/pty.node +0 -0
- package/node_modules/node-pty/build/binding.Makefile +6 -0
- package/node_modules/node-pty/build/config.gypi +440 -0
- package/node_modules/node-pty/build/pty.target.mk +166 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api.Makefile +6 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +104 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +108 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +104 -0
- package/node_modules/which/CHANGELOG.md +166 -0
- package/package.json +2 -2
- package/packages/setup-doctor-core/src/server/doctorToolchain.js +4 -0
- package/packages/studio-terminal-core/src/server/gitGithubTransport.js +33 -0
- package/packages/studio-terminal-core/src/server/index.js +1 -0
- package/packages/studio-terminal-core/src/server/terminalSessions.js +51 -1
- package/packages/vibe64-adapters/src/server/adapter.js +4 -0
- package/packages/vibe64-adapters/src/server/adapters/laravel/adapter.js +5 -0
- package/packages/vibe64-adapters/src/server/adapters/laravel/databaseRuntime.js +50 -0
- package/packages/vibe64-adapters/src/server/configStore.js +22 -1
- package/packages/vibe64-adapters/src/server/systemPrompts/agent_conversation.txt +0 -2
- package/packages/vibe64-adapters/src/server/systemPrompts/draft_issue.txt +18 -0
- package/packages/vibe64-adapters/src/server/systemPrompts/make_plan.txt +14 -2
- package/packages/vibe64-adapters/src/server/systemPrompts/prepare_for_merge.txt +2 -0
- package/packages/vibe64-adapters/src/server/systemPrompts/resolve_pull_request.txt +1 -0
- package/packages/vibe64-adapters/src/server/systemPrompts/run_deep_ui_check.txt +7 -3
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/commitPush.js +4 -22
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/factMetadata.js +21 -20
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/issuePr.js +27 -4
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/mergeSync.js +65 -8
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/worktreeDependencies.js +12 -25
- package/packages/vibe64-adapters/src/server/workflowSessionActions.js +77 -20
- package/packages/vibe64-core/src/server/terminalWebSocketRoutes.js +14 -5
- package/packages/vibe64-project/src/server/actions.js +21 -0
- package/packages/vibe64-project/src/server/registerRoutes.js +6 -0
- package/packages/vibe64-project/src/server/service.js +125 -8
- package/packages/vibe64-runtime/src/server/coreProjectTools.js +135 -0
- package/packages/vibe64-runtime/src/server/index.js +4 -0
- package/packages/vibe64-runtime/src/server/projectToolRegistry.js +434 -0
- package/packages/vibe64-runtime/src/server/runtime.js +40 -16
- package/packages/vibe64-runtime/src/server/sessionWorktreeState.js +25 -0
- package/packages/vibe64-runtime/src/server/terminalFailureFixRequest.js +112 -0
- package/packages/vibe64-runtime/src/server/workflowArtifacts.js +2 -2
- package/packages/vibe64-runtime/src/server/workflowDefinitionBuilders.js +1 -0
- package/packages/vibe64-runtime/src/server/workflowDefinitionComposers.js +192 -0
- package/packages/vibe64-runtime/src/server/workflowMachine.js +5 -0
- package/packages/vibe64-runtime/src/server/workflowModules/coreCoding.js +1309 -419
- package/packages/vibe64-runtime/src/server/workflowModules/coreLifecycle.js +540 -358
- package/packages/vibe64-runtime/src/server/workflowModules/coreMaintenance.js +5 -26
- package/packages/vibe64-runtime/src/server/workflowPresentation.js +153 -26
- package/packages/vibe64-runtime/src/server/workflowStepMachineHelpers.js +63 -10
- package/packages/vibe64-runtime/src/server/workflowStepMachines.js +63 -2
- package/packages/vibe64-sessions/src/server/inputSchemas.js +5 -0
- package/packages/vibe64-sessions/src/server/service.js +8 -9
- package/packages/vibe64-terminals/src/server/actions.js +65 -0
- package/packages/vibe64-terminals/src/server/codexTerminal.js +608 -23
- package/packages/vibe64-terminals/src/server/commandTerminal.js +261 -4
- package/packages/vibe64-terminals/src/server/fixCodexJobs.js +420 -0
- package/packages/vibe64-terminals/src/server/inputSchemas.js +240 -0
- package/packages/vibe64-terminals/src/server/launchTargetTerminal.js +2 -0
- package/packages/vibe64-terminals/src/server/registerRoutes.js +226 -0
- package/packages/vibe64-terminals/src/server/service.js +140 -1
- package/packages/vibe64-terminals/src/server/targetToolchainTerminal.js +1 -1
- package/packages/vibe64-terminals/src/server/terminalShared.js +34 -0
- package/dist/assets/ProjectTypeGate-DStq4W4X.js +0 -1
- package/dist/assets/ProjectTypeGate-Dh2ycSoM.css +0 -1
- package/dist/assets/history-HQ_XliX2.js +0 -1
- package/dist/assets/home-B89EbUmA.js +0 -1
- package/dist/assets/index-16P0GeGq.js +0 -134
- package/dist/assets/index-eMhOXhf_.css +0 -1
- package/dist/assets/useStudioTerminal-D9TNb50w.js +0 -1
- package/dist/assets/vibe64SessionPanelModel-DvY_IbW3.js +0 -1
|
@@ -13,7 +13,11 @@ import {
|
|
|
13
13
|
removeDockerContainer
|
|
14
14
|
} from "@local/studio-terminal-core/server/containerRuntime";
|
|
15
15
|
import {
|
|
16
|
-
|
|
16
|
+
githubSshToHttpsGitEnv
|
|
17
|
+
} from "@local/studio-terminal-core/server/gitGithubTransport";
|
|
18
|
+
import {
|
|
19
|
+
vibe64Error,
|
|
20
|
+
normalizeText
|
|
17
21
|
} from "@local/vibe64-core/server/core";
|
|
18
22
|
import {
|
|
19
23
|
vibe64SessionDebugDurationMs,
|
|
@@ -29,11 +33,13 @@ import {
|
|
|
29
33
|
} from "@local/studio-terminal-core/server/studioToolHome";
|
|
30
34
|
import {
|
|
31
35
|
vibe64Result,
|
|
36
|
+
commandInvocation,
|
|
32
37
|
commandTerminalNamespace,
|
|
33
38
|
normalizePlainObject,
|
|
34
39
|
pathInsideOrEqual,
|
|
35
40
|
stableHash,
|
|
36
|
-
terminalTargetRoot
|
|
41
|
+
terminalTargetRoot,
|
|
42
|
+
toolTerminalNamespace
|
|
37
43
|
} from "./terminalShared.js";
|
|
38
44
|
import {
|
|
39
45
|
COMMAND_RESULT_ENV,
|
|
@@ -67,6 +73,16 @@ function actionRunsInCommandTerminal(action = {}) {
|
|
|
67
73
|
return action.dispatchRoute === ACTION_DISPATCH_ROUTES.COMMAND_TERMINAL || action.type === "command";
|
|
68
74
|
}
|
|
69
75
|
|
|
76
|
+
async function recordCommandAuditMessage(runtime, sessionId = "", action = {}) {
|
|
77
|
+
const auditMessage = normalizeText(action.auditMessage);
|
|
78
|
+
if (!auditMessage || typeof runtime?.store?.writeConversationUserMessage !== "function") {
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return runtime.store.writeConversationUserMessage(sessionId, {
|
|
82
|
+
text: auditMessage
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
70
86
|
function commandTerminalContainerName({
|
|
71
87
|
sessionId = "",
|
|
72
88
|
terminalId = ""
|
|
@@ -74,6 +90,13 @@ function commandTerminalContainerName({
|
|
|
74
90
|
return `vibe64-command-${stableHash(sessionId)}-${stableHash(terminalId)}`;
|
|
75
91
|
}
|
|
76
92
|
|
|
93
|
+
function toolTerminalContainerName({
|
|
94
|
+
terminalId = "",
|
|
95
|
+
toolId = ""
|
|
96
|
+
} = {}) {
|
|
97
|
+
return `vibe64-tool-${stableHash(toolId)}-${stableHash(terminalId)}`;
|
|
98
|
+
}
|
|
99
|
+
|
|
77
100
|
function sessionRevision(value) {
|
|
78
101
|
const revision = Number(value);
|
|
79
102
|
return Number.isSafeInteger(revision) && revision >= 0 ? revision : null;
|
|
@@ -166,7 +189,10 @@ function commandTerminalArgs({
|
|
|
166
189
|
studioUserStartupScript([command, ...args])
|
|
167
190
|
],
|
|
168
191
|
containerName,
|
|
169
|
-
env
|
|
192
|
+
env: {
|
|
193
|
+
...env,
|
|
194
|
+
...githubSshToHttpsGitEnv()
|
|
195
|
+
},
|
|
170
196
|
image,
|
|
171
197
|
kind: "command-terminal",
|
|
172
198
|
mounts: [
|
|
@@ -558,6 +584,125 @@ async function applySuccessFacts({
|
|
|
558
584
|
};
|
|
559
585
|
}
|
|
560
586
|
|
|
587
|
+
async function startCommandTerminalProcess({
|
|
588
|
+
containerName,
|
|
589
|
+
ensureRuntimeNetwork = ensureTargetRuntimeNetwork,
|
|
590
|
+
maxRunning = 1,
|
|
591
|
+
metadata = {},
|
|
592
|
+
namespace = "",
|
|
593
|
+
namespaceLimitPrefix = "",
|
|
594
|
+
onClose = async () => null,
|
|
595
|
+
projectService,
|
|
596
|
+
removeContainer = removeDockerContainer,
|
|
597
|
+
resolveToolchainImage = resolveTerminalToolchainImage,
|
|
598
|
+
reuseRunning = true,
|
|
599
|
+
runtime,
|
|
600
|
+
session = {},
|
|
601
|
+
spec = {},
|
|
602
|
+
startTerminal = startTerminalSession,
|
|
603
|
+
target = "command",
|
|
604
|
+
targetRoot = ""
|
|
605
|
+
} = {}) {
|
|
606
|
+
const workdir = resolveCommandWorkdir(targetRoot, spec.cwd);
|
|
607
|
+
if (!pathInsideOrEqual(targetRoot, workdir)) {
|
|
608
|
+
return {
|
|
609
|
+
ok: false,
|
|
610
|
+
error: "Vibe64 command workdir is outside the target root."
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
const imageResult = await resolveToolchainImage({
|
|
615
|
+
runtime,
|
|
616
|
+
session,
|
|
617
|
+
target,
|
|
618
|
+
targetRoot
|
|
619
|
+
});
|
|
620
|
+
if (imageResult.ok === false) {
|
|
621
|
+
return imageResult;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
await ensureRuntimeNetwork(targetRoot);
|
|
625
|
+
await ensureAdapterRuntimeContainers({
|
|
626
|
+
runtime,
|
|
627
|
+
session,
|
|
628
|
+
target,
|
|
629
|
+
targetRoot
|
|
630
|
+
});
|
|
631
|
+
const terminalEnv = await projectTerminalEnvironment({
|
|
632
|
+
projectService,
|
|
633
|
+
runtime,
|
|
634
|
+
session,
|
|
635
|
+
target,
|
|
636
|
+
targetRoot
|
|
637
|
+
});
|
|
638
|
+
const terminalEnvHash = terminalEnvironmentFingerprint(terminalEnv);
|
|
639
|
+
let resultFile = null;
|
|
640
|
+
const commandResultFile = () => {
|
|
641
|
+
if (!resultFile) {
|
|
642
|
+
resultFile = createCommandResultFileSync();
|
|
643
|
+
}
|
|
644
|
+
return resultFile;
|
|
645
|
+
};
|
|
646
|
+
|
|
647
|
+
return startTerminal({
|
|
648
|
+
args: (terminalContext) => {
|
|
649
|
+
const activeResultFile = commandResultFile();
|
|
650
|
+
const specEnv = typeof spec.env === "function" ? spec.env(terminalContext) : spec.env || {};
|
|
651
|
+
return commandTerminalArgs({
|
|
652
|
+
args: spec.args || [],
|
|
653
|
+
command: spec.command,
|
|
654
|
+
containerName: containerName(terminalContext),
|
|
655
|
+
env: {
|
|
656
|
+
...terminalEnv,
|
|
657
|
+
...specEnv,
|
|
658
|
+
[COMMAND_RESULT_ENV]: activeResultFile.path
|
|
659
|
+
},
|
|
660
|
+
image: imageResult.image,
|
|
661
|
+
mounts: Array.isArray(spec.mounts) ? spec.mounts : [],
|
|
662
|
+
resultFile: activeResultFile,
|
|
663
|
+
sessionId: session.sessionId || "",
|
|
664
|
+
targetRoot,
|
|
665
|
+
terminalId: terminalContext.id,
|
|
666
|
+
workdir
|
|
667
|
+
});
|
|
668
|
+
},
|
|
669
|
+
command: "docker",
|
|
670
|
+
commandPreview: spec.commandPreview,
|
|
671
|
+
cwd: workdir,
|
|
672
|
+
maxRunning,
|
|
673
|
+
metadata: {
|
|
674
|
+
attemptedCommand: commandInvocation(spec),
|
|
675
|
+
cwd: workdir,
|
|
676
|
+
envHash: terminalEnvHash,
|
|
677
|
+
image: imageResult.image,
|
|
678
|
+
imageLabel: imageResult.label,
|
|
679
|
+
targetRoot,
|
|
680
|
+
...metadata
|
|
681
|
+
},
|
|
682
|
+
namespace,
|
|
683
|
+
namespaceLimitPrefix: namespaceLimitPrefix || namespace,
|
|
684
|
+
onClose: async ({ exitCode, id }) => {
|
|
685
|
+
const activeResultFile = resultFile || {};
|
|
686
|
+
try {
|
|
687
|
+
await onClose({
|
|
688
|
+
exitCode,
|
|
689
|
+
id,
|
|
690
|
+
resultFile: activeResultFile
|
|
691
|
+
});
|
|
692
|
+
} finally {
|
|
693
|
+
await Promise.all([
|
|
694
|
+
removeCommandResultFile(activeResultFile),
|
|
695
|
+
removeContainer(containerName({
|
|
696
|
+
id,
|
|
697
|
+
namespace
|
|
698
|
+
}))
|
|
699
|
+
]);
|
|
700
|
+
}
|
|
701
|
+
},
|
|
702
|
+
reuseRunning
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
|
|
561
706
|
function createCommandTerminalController({
|
|
562
707
|
afterSuccessfulCommand = async () => null,
|
|
563
708
|
ensureRuntimeNetwork = ensureTargetRuntimeNetwork,
|
|
@@ -782,6 +927,7 @@ function createCommandTerminalController({
|
|
|
782
927
|
metadata: {
|
|
783
928
|
actionId: action.id,
|
|
784
929
|
actionLabel: action.label,
|
|
930
|
+
attemptedCommand: commandInvocation(spec),
|
|
785
931
|
cwd: workdir,
|
|
786
932
|
envHash: terminalEnvHash,
|
|
787
933
|
image: imageResult.image,
|
|
@@ -904,6 +1050,9 @@ function createCommandTerminalController({
|
|
|
904
1050
|
status: "blocked"
|
|
905
1051
|
});
|
|
906
1052
|
}
|
|
1053
|
+
if (terminal?.ok !== false) {
|
|
1054
|
+
await recordCommandAuditMessage(runtime, sessionId, action);
|
|
1055
|
+
}
|
|
907
1056
|
vibe64SessionDebugLog("server.commandTerminal.start.done", {
|
|
908
1057
|
actionId: action.id,
|
|
909
1058
|
durationMs: vibe64SessionDebugDurationMs(startedAtMs),
|
|
@@ -968,8 +1117,116 @@ function createCommandTerminalController({
|
|
|
968
1117
|
});
|
|
969
1118
|
}
|
|
970
1119
|
|
|
1120
|
+
function createProjectToolTerminalController({
|
|
1121
|
+
ensureRuntimeNetwork = ensureTargetRuntimeNetwork,
|
|
1122
|
+
projectService,
|
|
1123
|
+
removeContainer = removeDockerContainer,
|
|
1124
|
+
resolveToolchainImage = resolveTerminalToolchainImage,
|
|
1125
|
+
startTerminal = startTerminalSession
|
|
1126
|
+
} = {}) {
|
|
1127
|
+
async function startPreparedRun(toolId, run = {}) {
|
|
1128
|
+
if (run?.ok === false) {
|
|
1129
|
+
return run;
|
|
1130
|
+
}
|
|
1131
|
+
if (run.type !== "command") {
|
|
1132
|
+
return {
|
|
1133
|
+
ok: false,
|
|
1134
|
+
error: `${run.tool?.label || toolId} is not a command tool.`
|
|
1135
|
+
};
|
|
1136
|
+
}
|
|
1137
|
+
const runtime = await projectService.createRuntime();
|
|
1138
|
+
const targetRoot = terminalTargetRoot({
|
|
1139
|
+
targetRoot: run.targetRoot || projectService.targetRoot
|
|
1140
|
+
});
|
|
1141
|
+
if (!targetRoot) {
|
|
1142
|
+
return {
|
|
1143
|
+
ok: false,
|
|
1144
|
+
error: "Vibe64 tool target root is not available."
|
|
1145
|
+
};
|
|
1146
|
+
}
|
|
1147
|
+
const tool = run.tool || {
|
|
1148
|
+
id: toolId,
|
|
1149
|
+
label: toolId
|
|
1150
|
+
};
|
|
1151
|
+
const session = {
|
|
1152
|
+
targetRoot
|
|
1153
|
+
};
|
|
1154
|
+
return startCommandTerminalProcess({
|
|
1155
|
+
containerName: ({ id }) => toolTerminalContainerName({
|
|
1156
|
+
terminalId: id,
|
|
1157
|
+
toolId: tool.id
|
|
1158
|
+
}),
|
|
1159
|
+
ensureRuntimeNetwork,
|
|
1160
|
+
metadata: {
|
|
1161
|
+
inputKeys: Object.keys(normalizePlainObject(run.input)).sort(),
|
|
1162
|
+
toolId: tool.id,
|
|
1163
|
+
toolLabel: tool.label
|
|
1164
|
+
},
|
|
1165
|
+
namespace: toolTerminalNamespace(tool.id),
|
|
1166
|
+
onClose: async () => null,
|
|
1167
|
+
projectService,
|
|
1168
|
+
removeContainer,
|
|
1169
|
+
resolveToolchainImage,
|
|
1170
|
+
runtime,
|
|
1171
|
+
session,
|
|
1172
|
+
spec: run.spec,
|
|
1173
|
+
startTerminal,
|
|
1174
|
+
target: "tool",
|
|
1175
|
+
targetRoot
|
|
1176
|
+
});
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
return Object.freeze({
|
|
1180
|
+
closeTerminal(toolId, terminalSessionId) {
|
|
1181
|
+
return closeTerminalSession(terminalSessionId, {
|
|
1182
|
+
namespace: toolTerminalNamespace(toolId)
|
|
1183
|
+
});
|
|
1184
|
+
},
|
|
1185
|
+
|
|
1186
|
+
readTerminal(toolId, terminalSessionId) {
|
|
1187
|
+
return readTerminalSession(terminalSessionId, {
|
|
1188
|
+
namespace: toolTerminalNamespace(toolId)
|
|
1189
|
+
});
|
|
1190
|
+
},
|
|
1191
|
+
|
|
1192
|
+
async startTerminal(toolId, input = {}) {
|
|
1193
|
+
return vibe64Result(async () => {
|
|
1194
|
+
const run = await projectService.prepareProjectToolRun(toolId, input);
|
|
1195
|
+
return startPreparedRun(toolId, run);
|
|
1196
|
+
});
|
|
1197
|
+
},
|
|
1198
|
+
|
|
1199
|
+
async startPreparedRun(toolId, run = {}) {
|
|
1200
|
+
return vibe64Result(async () => {
|
|
1201
|
+
return startPreparedRun(toolId, run);
|
|
1202
|
+
});
|
|
1203
|
+
},
|
|
1204
|
+
|
|
1205
|
+
subscribeTerminal(toolId, terminalSessionId, subscriber) {
|
|
1206
|
+
return subscribeTerminalSession(terminalSessionId, subscriber, {
|
|
1207
|
+
namespace: toolTerminalNamespace(toolId)
|
|
1208
|
+
});
|
|
1209
|
+
},
|
|
1210
|
+
|
|
1211
|
+
writeTerminal(toolId, terminalSessionId, data) {
|
|
1212
|
+
return writeTerminalSession(terminalSessionId, data, {
|
|
1213
|
+
namespace: toolTerminalNamespace(toolId)
|
|
1214
|
+
});
|
|
1215
|
+
},
|
|
1216
|
+
|
|
1217
|
+
resizeTerminal(toolId, terminalSessionId, size) {
|
|
1218
|
+
return resizeTerminalSession(terminalSessionId, size, {
|
|
1219
|
+
namespace: toolTerminalNamespace(toolId)
|
|
1220
|
+
});
|
|
1221
|
+
}
|
|
1222
|
+
});
|
|
1223
|
+
}
|
|
1224
|
+
|
|
971
1225
|
export {
|
|
972
1226
|
commandTerminalArgs,
|
|
973
1227
|
commandTerminalContainerName,
|
|
974
|
-
createCommandTerminalController
|
|
1228
|
+
createCommandTerminalController,
|
|
1229
|
+
createProjectToolTerminalController,
|
|
1230
|
+
startCommandTerminalProcess,
|
|
1231
|
+
toolTerminalContainerName
|
|
975
1232
|
};
|