@m14i/sith 1.16.0 → 1.17.0
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/commands/__tests__/nix.test.d.ts +2 -0
- package/dist/commands/__tests__/nix.test.d.ts.map +1 -0
- package/dist/commands/docker.d.ts.map +1 -1
- package/dist/commands/nix.d.ts +1 -0
- package/dist/commands/nix.d.ts.map +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/components/ConfigModal.d.ts +1 -1
- package/dist/components/ConfigModal.d.ts.map +1 -1
- package/dist/components/TerminalUI.d.ts.map +1 -1
- package/dist/index.js +479 -416
- package/dist/package.json +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/__tests__/dockerArgs.test.d.ts +2 -0
- package/dist/utils/__tests__/dockerArgs.test.d.ts.map +1 -0
- package/dist/utils/__tests__/githubToken.test.d.ts +2 -0
- package/dist/utils/__tests__/githubToken.test.d.ts.map +1 -0
- package/dist/utils/__tests__/messageUtils.test.d.ts +2 -0
- package/dist/utils/__tests__/messageUtils.test.d.ts.map +1 -0
- package/dist/utils/__tests__/skills.test.d.ts +2 -0
- package/dist/utils/__tests__/skills.test.d.ts.map +1 -0
- package/dist/utils/__tests__/slashCommands.test.d.ts +2 -0
- package/dist/utils/__tests__/slashCommands.test.d.ts.map +1 -0
- package/dist/utils/dockerArgs.d.ts +3 -0
- package/dist/utils/dockerArgs.d.ts.map +1 -0
- package/dist/utils/githubToken.d.ts +2 -0
- package/dist/utils/githubToken.d.ts.map +1 -0
- package/dist/utils/messageUtils.d.ts +4 -0
- package/dist/utils/messageUtils.d.ts.map +1 -0
- package/dist/utils/skills.d.ts +1 -0
- package/dist/utils/skills.d.ts.map +1 -1
- package/dist/utils/slashCommands.d.ts.map +1 -1
- package/docker/Dockerfile +4 -9
- package/docker/nix/nix-scripts/setup.sh +7 -0
- package/package.json +8 -3
- package/dist/package1.json +0 -137
package/dist/index.js
CHANGED
|
@@ -42969,22 +42969,22 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
42969
42969
|
/* harmony export */ Q: () => (/* binding */ dockerCommand),
|
|
42970
42970
|
/* harmony export */ l: () => (/* binding */ runShellDirect)
|
|
42971
42971
|
/* harmony export */ });
|
|
42972
|
-
/* harmony import */ var
|
|
42973
|
-
/* harmony import */ var
|
|
42974
|
-
/* harmony import */ var
|
|
42972
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
|
|
42973
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
42974
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6760);
|
|
42975
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_1__);
|
|
42976
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(3136);
|
|
42977
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_2__);
|
|
42975
42978
|
/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(6181);
|
|
42976
|
-
/* harmony import */ var
|
|
42977
|
-
/* harmony import */ var
|
|
42978
|
-
/* harmony import */ var
|
|
42979
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);
|
|
42980
|
-
/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(7016);
|
|
42981
|
-
/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__nccwpck_require__.n(url__WEBPACK_IMPORTED_MODULE_4__);
|
|
42979
|
+
/* harmony import */ var ink__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(3816);
|
|
42980
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(2864);
|
|
42981
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__nccwpck_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
|
|
42982
42982
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(6878);
|
|
42983
|
-
/* harmony import */ var
|
|
42984
|
-
/* harmony import */ var
|
|
42983
|
+
/* harmony import */ var _utils_skills_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(6400);
|
|
42984
|
+
/* harmony import */ var _nix_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(9922);
|
|
42985
42985
|
/* harmony import */ var _skills_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(9805);
|
|
42986
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([
|
|
42987
|
-
([
|
|
42986
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink__WEBPACK_IMPORTED_MODULE_3__, _skills_js__WEBPACK_IMPORTED_MODULE_8__]);
|
|
42987
|
+
([ink__WEBPACK_IMPORTED_MODULE_3__, _skills_js__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
42988
42988
|
|
|
42989
42989
|
|
|
42990
42990
|
|
|
@@ -42995,17 +42995,17 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink_
|
|
|
42995
42995
|
|
|
42996
42996
|
|
|
42997
42997
|
|
|
42998
|
-
const __dirname =
|
|
42998
|
+
const __dirname = node_path__WEBPACK_IMPORTED_MODULE_1___default().dirname((0,node_url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath)(import.meta.url));
|
|
42999
42999
|
// Find project root by looking for docker/ folder
|
|
43000
43000
|
function findProjectRoot(startDir) {
|
|
43001
43001
|
let currentDir = startDir;
|
|
43002
|
-
const rootPath =
|
|
43002
|
+
const rootPath = node_path__WEBPACK_IMPORTED_MODULE_1___default().parse(currentDir).root;
|
|
43003
43003
|
while (currentDir !== rootPath) {
|
|
43004
|
-
const dockerPath =
|
|
43005
|
-
if (
|
|
43004
|
+
const dockerPath = node_path__WEBPACK_IMPORTED_MODULE_1___default().join(currentDir, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName);
|
|
43005
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerPath) && node_fs__WEBPACK_IMPORTED_MODULE_0___default().statSync(dockerPath).isDirectory()) {
|
|
43006
43006
|
return currentDir;
|
|
43007
43007
|
}
|
|
43008
|
-
currentDir =
|
|
43008
|
+
currentDir = node_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(currentDir);
|
|
43009
43009
|
}
|
|
43010
43010
|
throw new Error(`Could not find project root (${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName}/ folder not found)`);
|
|
43011
43011
|
}
|
|
@@ -43022,34 +43022,36 @@ const configMenuItems = [
|
|
|
43022
43022
|
{ label: "Back", value: "back", icon: "◀️" },
|
|
43023
43023
|
];
|
|
43024
43024
|
function Logo() {
|
|
43025
|
-
return (
|
|
43026
|
-
|
|
43027
|
-
|
|
43028
|
-
|
|
43025
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", marginBottom: 1 },
|
|
43026
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column" }, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .ASCII_LOGO */ .mF.map((line, index) => (
|
|
43027
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: static array, order never changes
|
|
43028
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { key: index, color: "red", bold: true }, line)))),
|
|
43029
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { borderStyle: "double", borderColor: "red", paddingX: 2, marginTop: 1 },
|
|
43030
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "red", bold: true }, "SITH - Docker Manager"))));
|
|
43029
43031
|
}
|
|
43030
43032
|
function BuildingSpinner({ step }) {
|
|
43031
|
-
const [frame, setFrame] = (0,
|
|
43032
|
-
(0,
|
|
43033
|
+
const [frame, setFrame] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(0);
|
|
43034
|
+
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
|
|
43033
43035
|
const timer = setInterval(() => {
|
|
43034
43036
|
setFrame((prev) => (prev + 1) % _config_js__WEBPACK_IMPORTED_MODULE_5__/* .SPINNER_CONFIG */ .ZC.frames.length);
|
|
43035
43037
|
}, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .SPINNER_CONFIG */ .ZC.interval);
|
|
43036
43038
|
return () => clearInterval(timer);
|
|
43037
43039
|
}, []);
|
|
43038
|
-
return (
|
|
43039
|
-
|
|
43040
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", marginTop: 1 },
|
|
43041
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "cyan" },
|
|
43040
43042
|
_config_js__WEBPACK_IMPORTED_MODULE_5__/* .SPINNER_CONFIG */ .ZC.frames[frame],
|
|
43041
43043
|
" ",
|
|
43042
43044
|
step)));
|
|
43043
43045
|
}
|
|
43044
43046
|
function Menu() {
|
|
43045
|
-
const { exit } = (0,
|
|
43046
|
-
const [selectedIndex, setSelectedIndex] = (0,
|
|
43047
|
-
const [isProcessing, setIsProcessing] = (0,
|
|
43048
|
-
const [processStep, setProcessStep] = (0,
|
|
43049
|
-
const [processComplete, setProcessComplete] = (0,
|
|
43050
|
-
const [processError, setProcessError] = (0,
|
|
43051
|
-
const [currentMenu, setCurrentMenu] = (0,
|
|
43052
|
-
(0,
|
|
43047
|
+
const { exit } = (0,ink__WEBPACK_IMPORTED_MODULE_3__/* .useApp */ .nm)();
|
|
43048
|
+
const [selectedIndex, setSelectedIndex] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(0);
|
|
43049
|
+
const [isProcessing, setIsProcessing] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
|
|
43050
|
+
const [processStep, setProcessStep] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)("");
|
|
43051
|
+
const [processComplete, setProcessComplete] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
|
|
43052
|
+
const [processError, setProcessError] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(null);
|
|
43053
|
+
const [currentMenu, setCurrentMenu] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)("main");
|
|
43054
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_3__/* .useInput */ .Ge)((_input, key) => {
|
|
43053
43055
|
if (isProcessing) {
|
|
43054
43056
|
return;
|
|
43055
43057
|
}
|
|
@@ -43124,8 +43126,8 @@ function Menu() {
|
|
|
43124
43126
|
setIsProcessing(true);
|
|
43125
43127
|
setProcessStep("Installing Nix locally...");
|
|
43126
43128
|
try {
|
|
43127
|
-
await (0,
|
|
43128
|
-
await (0,
|
|
43129
|
+
await (0,_nix_js__WEBPACK_IMPORTED_MODULE_7__/* .installNix */ .Fh)();
|
|
43130
|
+
await (0,_nix_js__WEBPACK_IMPORTED_MODULE_7__/* .copyNixFiles */ .Qi)();
|
|
43129
43131
|
setIsProcessing(false);
|
|
43130
43132
|
setProcessComplete(true);
|
|
43131
43133
|
setProcessStep("");
|
|
@@ -43139,8 +43141,8 @@ function Menu() {
|
|
|
43139
43141
|
setIsProcessing(true);
|
|
43140
43142
|
setProcessStep("Building Docker image from scratch...");
|
|
43141
43143
|
try {
|
|
43142
|
-
const dockerfilePath =
|
|
43143
|
-
if (!
|
|
43144
|
+
const dockerfilePath = node_path__WEBPACK_IMPORTED_MODULE_1___default().join(rootDir, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.dockerfileName);
|
|
43145
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerfilePath)) {
|
|
43144
43146
|
throw new Error(`Dockerfile not found at: ${dockerfilePath}`);
|
|
43145
43147
|
}
|
|
43146
43148
|
await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", ["build", "-f", dockerfilePath, "-t", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName, rootDir], {
|
|
@@ -43157,58 +43159,58 @@ function Menu() {
|
|
|
43157
43159
|
}
|
|
43158
43160
|
// Render error state
|
|
43159
43161
|
if (processError) {
|
|
43160
|
-
return (
|
|
43161
|
-
|
|
43162
|
-
|
|
43163
|
-
|
|
43162
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column" },
|
|
43163
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(Logo, null),
|
|
43164
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43165
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "red" },
|
|
43164
43166
|
"\u274C Operation failed: ",
|
|
43165
43167
|
processError)),
|
|
43166
|
-
|
|
43167
|
-
|
|
43168
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43169
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true }, "Press any key to exit..."))));
|
|
43168
43170
|
}
|
|
43169
43171
|
// Render success state
|
|
43170
43172
|
if (processComplete) {
|
|
43171
|
-
return (
|
|
43172
|
-
|
|
43173
|
-
|
|
43174
|
-
|
|
43175
|
-
|
|
43176
|
-
|
|
43173
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column" },
|
|
43174
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(Logo, null),
|
|
43175
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43176
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "green" }, "\u2705 Docker image ready!")),
|
|
43177
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43178
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true },
|
|
43177
43179
|
"Image: ",
|
|
43178
43180
|
_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName)),
|
|
43179
|
-
|
|
43180
|
-
|
|
43181
|
-
|
|
43182
|
-
|
|
43181
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43182
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true }, "Run: sith --it")),
|
|
43183
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43184
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true }, "Press any key to exit..."))));
|
|
43183
43185
|
}
|
|
43184
43186
|
// Render processing state
|
|
43185
43187
|
if (isProcessing) {
|
|
43186
|
-
return (
|
|
43187
|
-
|
|
43188
|
-
|
|
43189
|
-
|
|
43190
|
-
|
|
43188
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column" },
|
|
43189
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(Logo, null),
|
|
43190
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(BuildingSpinner, { step: processStep }),
|
|
43191
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43192
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true },
|
|
43191
43193
|
"Root: ",
|
|
43192
43194
|
rootDir))));
|
|
43193
43195
|
}
|
|
43194
43196
|
// Render menu state
|
|
43195
43197
|
const items = currentMenu === "main" ? menuItems : configMenuItems;
|
|
43196
43198
|
const menuTitle = currentMenu === "main" ? "What would you like to do?" : "Configuration";
|
|
43197
|
-
return (
|
|
43198
|
-
|
|
43199
|
-
|
|
43200
|
-
|
|
43201
|
-
|
|
43199
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column" },
|
|
43200
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(Logo, null),
|
|
43201
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", marginTop: 1 },
|
|
43202
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { bold: true }, menuTitle),
|
|
43203
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", marginTop: 1 }, items.map((item, index) => {
|
|
43202
43204
|
const isSelected = index === selectedIndex;
|
|
43203
|
-
return (
|
|
43204
|
-
|
|
43205
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { key: item.value, marginY: 0 },
|
|
43206
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: isSelected ? "cyan" : undefined },
|
|
43205
43207
|
isSelected ? "❯ " : " ",
|
|
43206
43208
|
item.icon,
|
|
43207
43209
|
" ",
|
|
43208
43210
|
item.label)));
|
|
43209
43211
|
}))),
|
|
43210
|
-
|
|
43211
|
-
|
|
43212
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43213
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true }, "Use arrow keys to navigate, Enter to select"))));
|
|
43212
43214
|
}
|
|
43213
43215
|
async function dockerCommand(options) {
|
|
43214
43216
|
if (options.build) {
|
|
@@ -43226,7 +43228,7 @@ async function dockerCommand(options) {
|
|
|
43226
43228
|
process.exit(1);
|
|
43227
43229
|
}
|
|
43228
43230
|
// Render the interactive menu
|
|
43229
|
-
(0,
|
|
43231
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_3__/* .render */ .XX)(react__WEBPACK_IMPORTED_MODULE_4___default().createElement(Menu, null));
|
|
43230
43232
|
}
|
|
43231
43233
|
async function runShellDirect() {
|
|
43232
43234
|
await runShell();
|
|
@@ -43264,8 +43266,8 @@ async function buildDocker() {
|
|
|
43264
43266
|
console.log("🔨 Building Docker image from scratch...");
|
|
43265
43267
|
console.log();
|
|
43266
43268
|
try {
|
|
43267
|
-
const dockerfilePath =
|
|
43268
|
-
if (!
|
|
43269
|
+
const dockerfilePath = node_path__WEBPACK_IMPORTED_MODULE_1___default().join(rootDir, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.dockerfileName);
|
|
43270
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerfilePath)) {
|
|
43269
43271
|
throw new Error(`Dockerfile not found at: ${dockerfilePath}`);
|
|
43270
43272
|
}
|
|
43271
43273
|
console.log(`Root: ${rootDir}`);
|
|
@@ -43289,8 +43291,8 @@ async function buildDocker() {
|
|
|
43289
43291
|
}
|
|
43290
43292
|
}
|
|
43291
43293
|
async function runShell() {
|
|
43292
|
-
const skillsDir = (0,
|
|
43293
|
-
const opencodeConfigPath = (0,
|
|
43294
|
+
const skillsDir = (0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_6__/* .getSkillsDir */ .YJ)();
|
|
43295
|
+
const opencodeConfigPath = (0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_6__/* .getOpenCodeConfigPath */ .Jn)();
|
|
43294
43296
|
console.log("🚀 Starting interactive shell...");
|
|
43295
43297
|
console.log(`Mounting workspace to ${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
|
|
43296
43298
|
console.log(`Mounting skills from ${skillsDir} to ${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.skillsMount}`);
|
|
@@ -43352,16 +43354,16 @@ __webpack_async_result__();
|
|
|
43352
43354
|
/* harmony export */ Qi: () => (/* binding */ copyNixFiles),
|
|
43353
43355
|
/* harmony export */ nb: () => (/* binding */ runNixShell)
|
|
43354
43356
|
/* harmony export */ });
|
|
43355
|
-
/* unused harmony
|
|
43357
|
+
/* unused harmony exports parseNixVersionOutput, checkNixInstalled */
|
|
43358
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
|
|
43359
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
43360
|
+
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(8161);
|
|
43361
|
+
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_os__WEBPACK_IMPORTED_MODULE_1__);
|
|
43362
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(6760);
|
|
43363
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_2__);
|
|
43364
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(3136);
|
|
43365
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_3__);
|
|
43356
43366
|
/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(6181);
|
|
43357
|
-
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(9896);
|
|
43358
|
-
/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
43359
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6928);
|
|
43360
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
|
|
43361
|
-
/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(857);
|
|
43362
|
-
/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(os__WEBPACK_IMPORTED_MODULE_2__);
|
|
43363
|
-
/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(7016);
|
|
43364
|
-
/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(url__WEBPACK_IMPORTED_MODULE_3__);
|
|
43365
43367
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(6878);
|
|
43366
43368
|
|
|
43367
43369
|
|
|
@@ -43369,32 +43371,35 @@ __webpack_async_result__();
|
|
|
43369
43371
|
|
|
43370
43372
|
|
|
43371
43373
|
|
|
43372
|
-
const __dirname =
|
|
43374
|
+
const __dirname = node_path__WEBPACK_IMPORTED_MODULE_2___default().dirname((0,node_url__WEBPACK_IMPORTED_MODULE_3__.fileURLToPath)(import.meta.url));
|
|
43373
43375
|
// Find project root by looking for docker/ folder
|
|
43374
43376
|
function findProjectRoot(startDir) {
|
|
43375
43377
|
let currentDir = startDir;
|
|
43376
|
-
const rootPath =
|
|
43378
|
+
const rootPath = node_path__WEBPACK_IMPORTED_MODULE_2___default().parse(currentDir).root;
|
|
43377
43379
|
while (currentDir !== rootPath) {
|
|
43378
|
-
const dockerPath =
|
|
43379
|
-
if (
|
|
43380
|
+
const dockerPath = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(currentDir, "docker");
|
|
43381
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerPath) && node_fs__WEBPACK_IMPORTED_MODULE_0___default().statSync(dockerPath).isDirectory()) {
|
|
43380
43382
|
return currentDir;
|
|
43381
43383
|
}
|
|
43382
|
-
currentDir =
|
|
43384
|
+
currentDir = node_path__WEBPACK_IMPORTED_MODULE_2___default().dirname(currentDir);
|
|
43383
43385
|
}
|
|
43384
43386
|
throw new Error("Could not find project root (docker/ folder not found)");
|
|
43385
43387
|
}
|
|
43386
43388
|
const rootDir = findProjectRoot(__dirname);
|
|
43389
|
+
function parseNixVersionOutput(stdout) {
|
|
43390
|
+
const match = stdout.match(/nix \(Nix\) (\d+\.\d+)/);
|
|
43391
|
+
if (!match)
|
|
43392
|
+
return false;
|
|
43393
|
+
const [major, minor] = match[1].split(".").map(Number);
|
|
43394
|
+
const [reqMajor, reqMinor] = _config_js__WEBPACK_IMPORTED_MODULE_4__/* .NIX_CONFIG */ .Z3.requiredVersion
|
|
43395
|
+
.split(".")
|
|
43396
|
+
.map(Number);
|
|
43397
|
+
return major > reqMajor || (major === reqMajor && minor >= reqMinor);
|
|
43398
|
+
}
|
|
43387
43399
|
async function checkNixInstalled() {
|
|
43388
43400
|
try {
|
|
43389
43401
|
const { stdout } = await (0,execa__WEBPACK_IMPORTED_MODULE_5__/* .execa */ .Ho)("nix", ["--version"]);
|
|
43390
|
-
|
|
43391
|
-
if (versionMatch) {
|
|
43392
|
-
const version = versionMatch[1];
|
|
43393
|
-
const [major, minor] = version.split(".").map(Number);
|
|
43394
|
-
const [reqMajor, reqMinor] = _config_js__WEBPACK_IMPORTED_MODULE_4__/* .NIX_CONFIG */ .Z3.requiredVersion.split(".").map(Number);
|
|
43395
|
-
return major > reqMajor || (major === reqMajor && minor >= reqMinor);
|
|
43396
|
-
}
|
|
43397
|
-
return false;
|
|
43402
|
+
return parseNixVersionOutput(stdout);
|
|
43398
43403
|
}
|
|
43399
43404
|
catch {
|
|
43400
43405
|
return false;
|
|
@@ -43409,7 +43414,7 @@ async function installNix() {
|
|
|
43409
43414
|
return;
|
|
43410
43415
|
}
|
|
43411
43416
|
// Detect OS
|
|
43412
|
-
const platform =
|
|
43417
|
+
const platform = node_os__WEBPACK_IMPORTED_MODULE_1___default().platform();
|
|
43413
43418
|
if (platform !== "darwin" && platform !== "linux") {
|
|
43414
43419
|
throw new Error(`Unsupported platform: ${platform}. Nix only supports macOS and Linux.`);
|
|
43415
43420
|
}
|
|
@@ -43432,33 +43437,33 @@ async function installNix() {
|
|
|
43432
43437
|
console.log("⚠️ Please restart your shell or run: source ~/.nix-profile/etc/profile.d/nix.sh");
|
|
43433
43438
|
}
|
|
43434
43439
|
async function copyNixFiles() {
|
|
43435
|
-
const homeDir =
|
|
43436
|
-
const localConfigDir =
|
|
43440
|
+
const homeDir = node_os__WEBPACK_IMPORTED_MODULE_1___default().homedir();
|
|
43441
|
+
const localConfigDir = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(homeDir, _config_js__WEBPACK_IMPORTED_MODULE_4__/* .NIX_CONFIG */ .Z3.localConfigDir);
|
|
43437
43442
|
console.log(`📁 Copying Nix configuration to ${localConfigDir}...`);
|
|
43438
43443
|
// Create directory if it doesn't exist
|
|
43439
|
-
if (!
|
|
43440
|
-
|
|
43444
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(localConfigDir)) {
|
|
43445
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().mkdirSync(localConfigDir, { recursive: true });
|
|
43441
43446
|
}
|
|
43442
43447
|
// Copy shell.nix and flake files
|
|
43443
|
-
const sourcePath =
|
|
43448
|
+
const sourcePath = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(rootDir, "docker", "nix");
|
|
43444
43449
|
const filesToCopy = ["shell.nix", "flake.nix", "flake.lock"];
|
|
43445
43450
|
for (const file of filesToCopy) {
|
|
43446
|
-
const src =
|
|
43447
|
-
const dest =
|
|
43448
|
-
if (
|
|
43449
|
-
|
|
43451
|
+
const src = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(sourcePath, file);
|
|
43452
|
+
const dest = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(localConfigDir, file);
|
|
43453
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(src)) {
|
|
43454
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().copyFileSync(src, dest);
|
|
43450
43455
|
console.log(` ✓ Copied ${file}`);
|
|
43451
43456
|
}
|
|
43452
43457
|
}
|
|
43453
43458
|
// Copy nix-config directory
|
|
43454
|
-
const configSrc =
|
|
43455
|
-
const configDest =
|
|
43456
|
-
if (!
|
|
43457
|
-
|
|
43459
|
+
const configSrc = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(sourcePath, "nix-config");
|
|
43460
|
+
const configDest = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(localConfigDir, "nix-config");
|
|
43461
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(configDest)) {
|
|
43462
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().mkdirSync(configDest, { recursive: true });
|
|
43458
43463
|
}
|
|
43459
|
-
const configFiles =
|
|
43464
|
+
const configFiles = node_fs__WEBPACK_IMPORTED_MODULE_0___default().readdirSync(configSrc);
|
|
43460
43465
|
for (const file of configFiles) {
|
|
43461
|
-
|
|
43466
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().copyFileSync(node_path__WEBPACK_IMPORTED_MODULE_2___default().join(configSrc, file), node_path__WEBPACK_IMPORTED_MODULE_2___default().join(configDest, file));
|
|
43462
43467
|
console.log(` ✓ Copied nix-config/${file}`);
|
|
43463
43468
|
}
|
|
43464
43469
|
console.log();
|
|
@@ -43472,10 +43477,10 @@ async function runNixShell() {
|
|
|
43472
43477
|
process.exit(1);
|
|
43473
43478
|
}
|
|
43474
43479
|
// Copy files if not already present
|
|
43475
|
-
const homeDir =
|
|
43476
|
-
const localConfigDir =
|
|
43477
|
-
const shellNixPath =
|
|
43478
|
-
if (!
|
|
43480
|
+
const homeDir = node_os__WEBPACK_IMPORTED_MODULE_1___default().homedir();
|
|
43481
|
+
const localConfigDir = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(homeDir, _config_js__WEBPACK_IMPORTED_MODULE_4__/* .NIX_CONFIG */ .Z3.localConfigDir);
|
|
43482
|
+
const shellNixPath = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(localConfigDir, "shell.nix");
|
|
43483
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(shellNixPath)) {
|
|
43479
43484
|
await copyNixFiles();
|
|
43480
43485
|
}
|
|
43481
43486
|
console.log("🚀 Starting Nix shell...");
|
|
@@ -43537,13 +43542,13 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
43537
43542
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
43538
43543
|
/* harmony export */ a: () => (/* binding */ skillsCommand)
|
|
43539
43544
|
/* harmony export */ });
|
|
43540
|
-
/* harmony import */ var
|
|
43541
|
-
/* harmony import */ var
|
|
43542
|
-
/* harmony import */ var
|
|
43545
|
+
/* harmony import */ var ink__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3816);
|
|
43546
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(2864);
|
|
43547
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
43543
43548
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(6878);
|
|
43544
43549
|
/* harmony import */ var _utils_skills_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(6400);
|
|
43545
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([
|
|
43546
|
-
|
|
43550
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink__WEBPACK_IMPORTED_MODULE_0__]);
|
|
43551
|
+
ink__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
43547
43552
|
|
|
43548
43553
|
|
|
43549
43554
|
|
|
@@ -43559,29 +43564,47 @@ function statusIcon(row) {
|
|
|
43559
43564
|
}
|
|
43560
43565
|
}
|
|
43561
43566
|
function SkillsMenu() {
|
|
43562
|
-
const { exit } = (0,
|
|
43563
|
-
const [selectedIndex, setSelectedIndex] = (0,
|
|
43564
|
-
const [rows, setRows] = (0,
|
|
43567
|
+
const { exit } = (0,ink__WEBPACK_IMPORTED_MODULE_0__/* .useApp */ .nm)();
|
|
43568
|
+
const [selectedIndex, setSelectedIndex] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);
|
|
43569
|
+
const [rows, setRows] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(_config_js__WEBPACK_IMPORTED_MODULE_2__/* .SKILLS_CATALOG */ .XI.map((s) => ({
|
|
43570
|
+
installed: (0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_3__/* .isInstalled */ .j$)(s.name),
|
|
43571
|
+
status: "idle",
|
|
43572
|
+
message: "",
|
|
43573
|
+
})));
|
|
43565
43574
|
function setRow(index, patch) {
|
|
43566
43575
|
setRows((prev) => prev.map((r, i) => (i === index ? { ...r, ...patch } : r)));
|
|
43567
43576
|
}
|
|
43568
43577
|
async function toggleSkill(index, skill, installed) {
|
|
43569
|
-
setRow(index, {
|
|
43578
|
+
setRow(index, {
|
|
43579
|
+
status: "working",
|
|
43580
|
+
message: installed ? "Uninstalling..." : "Downloading...",
|
|
43581
|
+
});
|
|
43570
43582
|
try {
|
|
43571
43583
|
if (installed) {
|
|
43572
43584
|
(0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_3__/* .uninstallSkill */ .wW)(skill.name);
|
|
43573
|
-
setRow(index, {
|
|
43585
|
+
setRow(index, {
|
|
43586
|
+
installed: false,
|
|
43587
|
+
status: "done",
|
|
43588
|
+
message: "Uninstalled",
|
|
43589
|
+
});
|
|
43574
43590
|
}
|
|
43575
43591
|
else {
|
|
43576
43592
|
await (0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_3__/* .installSkill */ .rP)(skill);
|
|
43577
|
-
setRow(index, {
|
|
43593
|
+
setRow(index, {
|
|
43594
|
+
installed: true,
|
|
43595
|
+
status: "done",
|
|
43596
|
+
message: "Installed",
|
|
43597
|
+
});
|
|
43578
43598
|
}
|
|
43579
43599
|
}
|
|
43580
43600
|
catch (e) {
|
|
43581
|
-
setRow(index, {
|
|
43601
|
+
setRow(index, {
|
|
43602
|
+
status: "error",
|
|
43603
|
+
message: e instanceof Error ? e.message : "Failed",
|
|
43604
|
+
});
|
|
43582
43605
|
}
|
|
43583
43606
|
}
|
|
43584
|
-
(0,
|
|
43607
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_0__/* .useInput */ .Ge)((input, key) => {
|
|
43585
43608
|
if (key.upArrow) {
|
|
43586
43609
|
setSelectedIndex((p) => (p > 0 ? p - 1 : _config_js__WEBPACK_IMPORTED_MODULE_2__/* .SKILLS_CATALOG */ .XI.length - 1));
|
|
43587
43610
|
return;
|
|
@@ -43601,29 +43624,29 @@ function SkillsMenu() {
|
|
|
43601
43624
|
exit();
|
|
43602
43625
|
}
|
|
43603
43626
|
});
|
|
43604
|
-
return (
|
|
43605
|
-
|
|
43606
|
-
|
|
43607
|
-
|
|
43627
|
+
return (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", paddingX: 1 },
|
|
43628
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { marginBottom: 1 },
|
|
43629
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { bold: true, color: "red" }, "Skills Manager"),
|
|
43630
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, " (~/.sith/skills/)")),
|
|
43608
43631
|
_config_js__WEBPACK_IMPORTED_MODULE_2__/* .SKILLS_CATALOG */ .XI.map((skill, i) => {
|
|
43609
43632
|
const row = rows[i];
|
|
43610
43633
|
const isSelected = i === selectedIndex;
|
|
43611
|
-
return (
|
|
43612
|
-
|
|
43634
|
+
return (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { key: skill.name, marginY: 0 },
|
|
43635
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { color: isSelected ? "cyan" : undefined },
|
|
43613
43636
|
isSelected ? "❯ " : " ",
|
|
43614
43637
|
statusIcon(row),
|
|
43615
43638
|
" ",
|
|
43616
43639
|
skill.name.padEnd(12)),
|
|
43617
|
-
|
|
43618
|
-
row.message ?
|
|
43619
|
-
"
|
|
43620
|
-
row.message) : null));
|
|
43640
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: !isSelected }, skill.description),
|
|
43641
|
+
row.message ? (react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { color: row.status === "error" ? "red" : "green" },
|
|
43642
|
+
" ",
|
|
43643
|
+
row.message)) : null));
|
|
43621
43644
|
}),
|
|
43622
|
-
|
|
43623
|
-
|
|
43645
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { marginTop: 1 },
|
|
43646
|
+
react__WEBPACK_IMPORTED_MODULE_1___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, "\u2191\u2193 navigate Enter install/uninstall q quit"))));
|
|
43624
43647
|
}
|
|
43625
43648
|
function skillsCommand() {
|
|
43626
|
-
(0,
|
|
43649
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_0__/* .render */ .XX)(react__WEBPACK_IMPORTED_MODULE_1___default().createElement(SkillsMenu, null));
|
|
43627
43650
|
}
|
|
43628
43651
|
|
|
43629
43652
|
__webpack_async_result__();
|
|
@@ -43638,19 +43661,19 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
43638
43661
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
43639
43662
|
/* harmony export */ y: () => (/* binding */ ConfigModal)
|
|
43640
43663
|
/* harmony export */ });
|
|
43641
|
-
/* harmony import */ var
|
|
43642
|
-
/* harmony import */ var
|
|
43643
|
-
/* harmony import */ var
|
|
43664
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
|
|
43665
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
43666
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6760);
|
|
43667
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_1__);
|
|
43668
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(3136);
|
|
43669
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_2__);
|
|
43644
43670
|
/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(6181);
|
|
43645
|
-
/* harmony import */ var
|
|
43646
|
-
/* harmony import */ var
|
|
43647
|
-
/* harmony import */ var
|
|
43648
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);
|
|
43649
|
-
/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(7016);
|
|
43650
|
-
/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__nccwpck_require__.n(url__WEBPACK_IMPORTED_MODULE_4__);
|
|
43671
|
+
/* harmony import */ var ink__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(3816);
|
|
43672
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(2864);
|
|
43673
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__nccwpck_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
|
|
43651
43674
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(6878);
|
|
43652
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([
|
|
43653
|
-
|
|
43675
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink__WEBPACK_IMPORTED_MODULE_3__]);
|
|
43676
|
+
ink__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
43654
43677
|
|
|
43655
43678
|
|
|
43656
43679
|
|
|
@@ -43658,16 +43681,16 @@ ink__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await
|
|
|
43658
43681
|
|
|
43659
43682
|
|
|
43660
43683
|
|
|
43661
|
-
const __dirname =
|
|
43684
|
+
const __dirname = node_path__WEBPACK_IMPORTED_MODULE_1___default().dirname((0,node_url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath)(import.meta.url));
|
|
43662
43685
|
function findProjectRoot(startDir) {
|
|
43663
43686
|
let currentDir = startDir;
|
|
43664
|
-
const rootPath =
|
|
43687
|
+
const rootPath = node_path__WEBPACK_IMPORTED_MODULE_1___default().parse(currentDir).root;
|
|
43665
43688
|
while (currentDir !== rootPath) {
|
|
43666
|
-
const dockerPath =
|
|
43667
|
-
if (
|
|
43689
|
+
const dockerPath = node_path__WEBPACK_IMPORTED_MODULE_1___default().join(currentDir, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName);
|
|
43690
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerPath) && node_fs__WEBPACK_IMPORTED_MODULE_0___default().statSync(dockerPath).isDirectory()) {
|
|
43668
43691
|
return currentDir;
|
|
43669
43692
|
}
|
|
43670
|
-
currentDir =
|
|
43693
|
+
currentDir = node_path__WEBPACK_IMPORTED_MODULE_1___default().dirname(currentDir);
|
|
43671
43694
|
}
|
|
43672
43695
|
throw new Error(`Could not find project root (${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName}/ folder not found)`);
|
|
43673
43696
|
}
|
|
@@ -43677,19 +43700,19 @@ const configOptions = [
|
|
|
43677
43700
|
{ label: "Build Docker image from scratch", value: "build", icon: "🔨" },
|
|
43678
43701
|
{ label: "Back", value: "back", icon: "◀️" },
|
|
43679
43702
|
];
|
|
43680
|
-
function ConfigModal({ onClose, onMessage }) {
|
|
43681
|
-
const [selectedIndex, setSelectedIndex] = (0,
|
|
43682
|
-
const [isProcessing, setIsProcessing] = (0,
|
|
43683
|
-
const [processStep, setProcessStep] = (0,
|
|
43684
|
-
(0,
|
|
43703
|
+
function ConfigModal({ onClose, onMessage, }) {
|
|
43704
|
+
const [selectedIndex, setSelectedIndex] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(0);
|
|
43705
|
+
const [isProcessing, setIsProcessing] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
|
|
43706
|
+
const [processStep, setProcessStep] = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)("");
|
|
43707
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_3__/* .useInput */ .Ge)((_input, key) => {
|
|
43685
43708
|
if (isProcessing) {
|
|
43686
43709
|
return;
|
|
43687
43710
|
}
|
|
43688
43711
|
if (key.upArrow) {
|
|
43689
|
-
setSelectedIndex((prev) =>
|
|
43712
|
+
setSelectedIndex((prev) => prev > 0 ? prev - 1 : configOptions.length - 1);
|
|
43690
43713
|
}
|
|
43691
43714
|
else if (key.downArrow) {
|
|
43692
|
-
setSelectedIndex((prev) =>
|
|
43715
|
+
setSelectedIndex((prev) => prev < configOptions.length - 1 ? prev + 1 : 0);
|
|
43693
43716
|
}
|
|
43694
43717
|
else if (key.return) {
|
|
43695
43718
|
handleSelection(configOptions[selectedIndex].value);
|
|
@@ -43715,7 +43738,9 @@ function ConfigModal({ onClose, onMessage }) {
|
|
|
43715
43738
|
setIsProcessing(true);
|
|
43716
43739
|
setProcessStep("Pulling prebuilt Docker image...");
|
|
43717
43740
|
try {
|
|
43718
|
-
await (0,execa__WEBPACK_IMPORTED_MODULE_6__/* .execa */ .Ho)("docker", ["pull", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage], {
|
|
43741
|
+
await (0,execa__WEBPACK_IMPORTED_MODULE_6__/* .execa */ .Ho)("docker", ["pull", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage], {
|
|
43742
|
+
stdio: "inherit",
|
|
43743
|
+
});
|
|
43719
43744
|
await (0,execa__WEBPACK_IMPORTED_MODULE_6__/* .execa */ .Ho)("docker", ["tag", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName], {
|
|
43720
43745
|
stdio: "inherit",
|
|
43721
43746
|
});
|
|
@@ -43732,8 +43757,8 @@ function ConfigModal({ onClose, onMessage }) {
|
|
|
43732
43757
|
setIsProcessing(true);
|
|
43733
43758
|
setProcessStep("Building Docker image from scratch...");
|
|
43734
43759
|
try {
|
|
43735
|
-
const dockerfilePath =
|
|
43736
|
-
if (!
|
|
43760
|
+
const dockerfilePath = node_path__WEBPACK_IMPORTED_MODULE_1___default().join(rootDir, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.folderName, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.dockerfileName);
|
|
43761
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerfilePath)) {
|
|
43737
43762
|
throw new Error(`Dockerfile not found at: ${dockerfilePath}`);
|
|
43738
43763
|
}
|
|
43739
43764
|
await (0,execa__WEBPACK_IMPORTED_MODULE_6__/* .execa */ .Ho)("docker", ["build", "-f", dockerfilePath, "-t", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName, rootDir], {
|
|
@@ -43749,24 +43774,24 @@ function ConfigModal({ onClose, onMessage }) {
|
|
|
43749
43774
|
}
|
|
43750
43775
|
}
|
|
43751
43776
|
if (isProcessing) {
|
|
43752
|
-
return (
|
|
43753
|
-
|
|
43754
|
-
|
|
43755
|
-
|
|
43756
|
-
}
|
|
43757
|
-
return (
|
|
43758
|
-
|
|
43759
|
-
|
|
43777
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", padding: 1 },
|
|
43778
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "cyan", bold: true }, "\u2699\uFE0F Configuration"),
|
|
43779
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43780
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "yellow" }, processStep))));
|
|
43781
|
+
}
|
|
43782
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", borderStyle: "round", borderColor: "cyan", padding: 1 },
|
|
43783
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: "cyan", bold: true }, "\u2699\uFE0F Configuration"),
|
|
43784
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { flexDirection: "column", marginTop: 1 }, configOptions.map((option, index) => {
|
|
43760
43785
|
const isSelected = index === selectedIndex;
|
|
43761
|
-
return (
|
|
43762
|
-
|
|
43786
|
+
return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { key: option.value, marginY: 0 },
|
|
43787
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { color: isSelected ? "cyan" : undefined },
|
|
43763
43788
|
isSelected ? "❯ " : " ",
|
|
43764
43789
|
option.icon,
|
|
43765
43790
|
" ",
|
|
43766
43791
|
option.label)));
|
|
43767
43792
|
})),
|
|
43768
|
-
|
|
43769
|
-
|
|
43793
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Box */ .az, { marginTop: 1 },
|
|
43794
|
+
react__WEBPACK_IMPORTED_MODULE_4___default().createElement(ink__WEBPACK_IMPORTED_MODULE_3__/* .Text */ .EY, { dimColor: true }, "Use arrow keys to navigate, Enter to select, Esc to close"))));
|
|
43770
43795
|
}
|
|
43771
43796
|
|
|
43772
43797
|
__webpack_async_result__();
|
|
@@ -43782,18 +43807,22 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we
|
|
|
43782
43807
|
/* harmony export */ t: () => (/* binding */ renderTerminalUI)
|
|
43783
43808
|
/* harmony export */ });
|
|
43784
43809
|
/* unused harmony export TerminalUI */
|
|
43785
|
-
/* harmony import */ var
|
|
43786
|
-
/* harmony import */ var
|
|
43787
|
-
/* harmony import */ var
|
|
43788
|
-
/* harmony import */ var
|
|
43789
|
-
/* harmony import */ var
|
|
43790
|
-
/* harmony import */ var
|
|
43791
|
-
/* harmony import */ var _utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(9987);
|
|
43810
|
+
/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(6181);
|
|
43811
|
+
/* harmony import */ var ink__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3816);
|
|
43812
|
+
/* harmony import */ var ink_text_input__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(9046);
|
|
43813
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(2864);
|
|
43814
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
|
|
43815
|
+
/* harmony import */ var _commands_skills_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(9805);
|
|
43792
43816
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(6878);
|
|
43793
|
-
/* harmony import */ var
|
|
43794
|
-
/* harmony import */ var
|
|
43795
|
-
var
|
|
43796
|
-
|
|
43817
|
+
/* harmony import */ var _utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(4495);
|
|
43818
|
+
/* harmony import */ var _utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(1460);
|
|
43819
|
+
/* harmony import */ var _utils_messageUtils_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(5534);
|
|
43820
|
+
/* harmony import */ var _utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(9987);
|
|
43821
|
+
/* harmony import */ var _ConfigModal_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(3636);
|
|
43822
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink__WEBPACK_IMPORTED_MODULE_0__, ink_text_input__WEBPACK_IMPORTED_MODULE_1__, _commands_skills_js__WEBPACK_IMPORTED_MODULE_3__, _ConfigModal_js__WEBPACK_IMPORTED_MODULE_6__]);
|
|
43823
|
+
([ink__WEBPACK_IMPORTED_MODULE_0__, ink_text_input__WEBPACK_IMPORTED_MODULE_1__, _commands_skills_js__WEBPACK_IMPORTED_MODULE_3__, _ConfigModal_js__WEBPACK_IMPORTED_MODULE_6__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
43824
|
+
|
|
43825
|
+
|
|
43797
43826
|
|
|
43798
43827
|
|
|
43799
43828
|
|
|
@@ -43804,124 +43833,37 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink_
|
|
|
43804
43833
|
|
|
43805
43834
|
|
|
43806
43835
|
function WelcomeScreen() {
|
|
43807
|
-
return (
|
|
43808
|
-
|
|
43809
|
-
|
|
43810
|
-
|
|
43811
|
-
|
|
43812
|
-
|
|
43813
|
-
|
|
43814
|
-
|
|
43815
|
-
|
|
43816
|
-
|
|
43817
|
-
|
|
43818
|
-
|
|
43819
|
-
|
|
43820
|
-
}
|
|
43821
|
-
|
|
43822
|
-
switch (messageType) {
|
|
43823
|
-
case "success":
|
|
43824
|
-
return "green";
|
|
43825
|
-
case "error":
|
|
43826
|
-
return "red";
|
|
43827
|
-
case "info":
|
|
43828
|
-
return "cyan";
|
|
43829
|
-
case "user":
|
|
43830
|
-
return "white";
|
|
43831
|
-
case "system":
|
|
43832
|
-
return "gray";
|
|
43833
|
-
default:
|
|
43834
|
-
return undefined;
|
|
43835
|
-
}
|
|
43836
|
-
}
|
|
43837
|
-
function getMessagePrefix(messageType) {
|
|
43838
|
-
switch (messageType) {
|
|
43839
|
-
case "user":
|
|
43840
|
-
return "› ";
|
|
43841
|
-
case "system":
|
|
43842
|
-
return "⚡ ";
|
|
43843
|
-
default:
|
|
43844
|
-
return "";
|
|
43845
|
-
}
|
|
43836
|
+
return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", justifyContent: "center", alignItems: "center", paddingY: 2 },
|
|
43837
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", marginBottom: 2 }, _config_js__WEBPACK_IMPORTED_MODULE_4__/* .ASCII_LOGO */ .mF.map((line, index) => (
|
|
43838
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: static array, order never changes
|
|
43839
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { key: index, color: "red", bold: true }, line)))),
|
|
43840
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", alignItems: "center", marginTop: 1 },
|
|
43841
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, "Turn your context to the dark side"),
|
|
43842
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, "Dockerized OpenCode environment")),
|
|
43843
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { marginTop: 2, flexDirection: "column", alignItems: "center" },
|
|
43844
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { color: "cyan" }, "Type your prompt to start coding"),
|
|
43845
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, "or use slash commands:")),
|
|
43846
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", marginTop: 1, marginLeft: 2 },
|
|
43847
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, " /shell - Start Docker shell"),
|
|
43848
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, " /skills - Install/uninstall skills"),
|
|
43849
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, " /config - Configuration"),
|
|
43850
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, " /help - Show help"))));
|
|
43846
43851
|
}
|
|
43847
43852
|
function MessageItem({ message }) {
|
|
43848
|
-
const color = getMessageColor(message.type);
|
|
43849
|
-
const prefix = getMessagePrefix(message.type);
|
|
43850
|
-
return (
|
|
43851
|
-
|
|
43853
|
+
const color = (0,_utils_messageUtils_js__WEBPACK_IMPORTED_MODULE_7__/* .getMessageColor */ .l)(message.type);
|
|
43854
|
+
const prefix = (0,_utils_messageUtils_js__WEBPACK_IMPORTED_MODULE_7__/* .getMessagePrefix */ .U)(message.type);
|
|
43855
|
+
return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { marginBottom: 0 },
|
|
43856
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { color: color },
|
|
43852
43857
|
prefix,
|
|
43853
43858
|
message.text)));
|
|
43854
43859
|
}
|
|
43855
|
-
async function getGitHubToken() {
|
|
43856
|
-
// Check environment variable first
|
|
43857
|
-
const envToken = process.env.GITHUB_TOKEN;
|
|
43858
|
-
if (envToken) {
|
|
43859
|
-
return envToken;
|
|
43860
|
-
}
|
|
43861
|
-
// Try to get token from gh CLI
|
|
43862
|
-
try {
|
|
43863
|
-
const { stdout } = await (0,execa__WEBPACK_IMPORTED_MODULE_7__/* .execa */ .Ho)("gh", ["auth", "token"]);
|
|
43864
|
-
return stdout.trim();
|
|
43865
|
-
}
|
|
43866
|
-
catch {
|
|
43867
|
-
// Return empty string if gh CLI is not available
|
|
43868
|
-
return "";
|
|
43869
|
-
}
|
|
43870
|
-
}
|
|
43871
|
-
function buildDockerShellCommand(githubToken) {
|
|
43872
|
-
return [
|
|
43873
|
-
"run",
|
|
43874
|
-
"--rm",
|
|
43875
|
-
"-it",
|
|
43876
|
-
"-v",
|
|
43877
|
-
`${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
|
|
43878
|
-
"-v",
|
|
43879
|
-
`${(0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_5__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.skillsMount}`,
|
|
43880
|
-
"-v",
|
|
43881
|
-
`${(0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_5__/* .getOpenCodeConfigPath */ .Jn)()}:${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.opencodeConfigMount}`,
|
|
43882
|
-
"-e",
|
|
43883
|
-
`GITHUB_TOKEN=${githubToken}`,
|
|
43884
|
-
"--entrypoint",
|
|
43885
|
-
"nix-shell",
|
|
43886
|
-
_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.imageName,
|
|
43887
|
-
_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.shellEntrypoint,
|
|
43888
|
-
];
|
|
43889
|
-
}
|
|
43890
|
-
function buildDockerOpencodeCommand(githubToken, prompt) {
|
|
43891
|
-
const dockerArgs = [
|
|
43892
|
-
"run",
|
|
43893
|
-
"--rm",
|
|
43894
|
-
"-it",
|
|
43895
|
-
"-v",
|
|
43896
|
-
`${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
|
|
43897
|
-
"-v",
|
|
43898
|
-
`${(0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_5__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.skillsMount}`,
|
|
43899
|
-
"-v",
|
|
43900
|
-
`${(0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_5__/* .getOpenCodeConfigPath */ .Jn)()}:${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.opencodeConfigMount}`,
|
|
43901
|
-
"-e",
|
|
43902
|
-
`GITHUB_TOKEN=${githubToken}`,
|
|
43903
|
-
"--entrypoint",
|
|
43904
|
-
"bash",
|
|
43905
|
-
_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.imageName,
|
|
43906
|
-
"-c",
|
|
43907
|
-
];
|
|
43908
|
-
// Build opencode command - always interactive, use Sonnet 4.6
|
|
43909
|
-
let opencodeCommand = "source /opt/sith/nix/nix-scripts/setup.sh && cd /workspace && opencode -m github-copilot/claude-sonnet-4.6";
|
|
43910
|
-
if (prompt) {
|
|
43911
|
-
// Escape single quotes in prompt and use --prompt flag for interactive mode
|
|
43912
|
-
const escapedPrompt = prompt.replace(/'/g, "'\\''");
|
|
43913
|
-
opencodeCommand += ` --prompt '${escapedPrompt}'`;
|
|
43914
|
-
}
|
|
43915
|
-
dockerArgs.push(opencodeCommand);
|
|
43916
|
-
return dockerArgs;
|
|
43917
|
-
}
|
|
43918
43860
|
function TerminalUI() {
|
|
43919
|
-
const { exit } = (0,
|
|
43920
|
-
const [input, setInput] = (0,
|
|
43921
|
-
const [messages, setMessages] = (0,
|
|
43922
|
-
const [showConfigModal, setShowConfigModal] = (0,
|
|
43923
|
-
const [nextMessageId, setNextMessageId] = (0,
|
|
43924
|
-
const addMessage = (0,
|
|
43861
|
+
const { exit } = (0,ink__WEBPACK_IMPORTED_MODULE_0__/* .useApp */ .nm)();
|
|
43862
|
+
const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)("");
|
|
43863
|
+
const [messages, setMessages] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)([]);
|
|
43864
|
+
const [showConfigModal, setShowConfigModal] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
|
|
43865
|
+
const [nextMessageId, setNextMessageId] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(1);
|
|
43866
|
+
const addMessage = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((text, type = "system") => {
|
|
43925
43867
|
const newMessage = {
|
|
43926
43868
|
id: nextMessageId,
|
|
43927
43869
|
text,
|
|
@@ -43931,16 +43873,16 @@ function TerminalUI() {
|
|
|
43931
43873
|
setMessages((previousMessages) => [...previousMessages, newMessage]);
|
|
43932
43874
|
setNextMessageId((previousId) => previousId + 1);
|
|
43933
43875
|
}, [nextMessageId]);
|
|
43934
|
-
const handleDockerShell = (0,
|
|
43876
|
+
const handleDockerShell = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async () => {
|
|
43935
43877
|
exit();
|
|
43936
43878
|
console.log("🚀 Starting Docker shell...");
|
|
43937
43879
|
console.log(`Mounting current directory to ${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
|
|
43938
43880
|
console.log('Press Ctrl+D or type "exit" to leave');
|
|
43939
43881
|
console.log();
|
|
43940
|
-
const githubToken = await getGitHubToken();
|
|
43941
|
-
const dockerArgs = buildDockerShellCommand(githubToken);
|
|
43882
|
+
const githubToken = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__/* .getGitHubToken */ .l)();
|
|
43883
|
+
const dockerArgs = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__/* .buildDockerShellCommand */ .a)(githubToken);
|
|
43942
43884
|
try {
|
|
43943
|
-
await (0,
|
|
43885
|
+
await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", dockerArgs, { stdio: "inherit" });
|
|
43944
43886
|
console.log();
|
|
43945
43887
|
console.log("✅ Exited shell");
|
|
43946
43888
|
}
|
|
@@ -43950,7 +43892,7 @@ function TerminalUI() {
|
|
|
43950
43892
|
process.exit(1);
|
|
43951
43893
|
}
|
|
43952
43894
|
}, [exit]);
|
|
43953
|
-
const handleOpenCode = (0,
|
|
43895
|
+
const handleOpenCode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (prompt) => {
|
|
43954
43896
|
exit();
|
|
43955
43897
|
console.log("🚀 Starting OpenCode...");
|
|
43956
43898
|
console.log(`Mounting current directory to ${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
|
|
@@ -43958,10 +43900,10 @@ function TerminalUI() {
|
|
|
43958
43900
|
console.log(`Prompt: ${prompt}`);
|
|
43959
43901
|
}
|
|
43960
43902
|
console.log();
|
|
43961
|
-
const githubToken = await getGitHubToken();
|
|
43962
|
-
const dockerArgs = buildDockerOpencodeCommand(githubToken, prompt);
|
|
43903
|
+
const githubToken = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__/* .getGitHubToken */ .l)();
|
|
43904
|
+
const dockerArgs = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__/* .buildDockerOpencodeCommand */ .X)(githubToken, prompt);
|
|
43963
43905
|
try {
|
|
43964
|
-
await (0,
|
|
43906
|
+
await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", dockerArgs, { stdio: "inherit" });
|
|
43965
43907
|
console.log();
|
|
43966
43908
|
console.log("✅ Exited OpenCode");
|
|
43967
43909
|
}
|
|
@@ -43971,7 +43913,7 @@ function TerminalUI() {
|
|
|
43971
43913
|
process.exit(1);
|
|
43972
43914
|
}
|
|
43973
43915
|
}, [exit]);
|
|
43974
|
-
const handleSlashCommand = (0,
|
|
43916
|
+
const handleSlashCommand = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (command, userInput) => {
|
|
43975
43917
|
if (!command) {
|
|
43976
43918
|
return;
|
|
43977
43919
|
}
|
|
@@ -43982,27 +43924,28 @@ function TerminalUI() {
|
|
|
43982
43924
|
break;
|
|
43983
43925
|
case "skills":
|
|
43984
43926
|
exit();
|
|
43985
|
-
(0,
|
|
43927
|
+
(0,_commands_skills_js__WEBPACK_IMPORTED_MODULE_3__/* .skillsCommand */ .a)();
|
|
43986
43928
|
break;
|
|
43987
43929
|
case "config":
|
|
43988
43930
|
setShowConfigModal(true);
|
|
43989
43931
|
break;
|
|
43990
|
-
case "help":
|
|
43932
|
+
case "help": {
|
|
43991
43933
|
addMessage("Available commands:", "info");
|
|
43992
|
-
const availableCommands = (0,
|
|
43934
|
+
const availableCommands = (0,_utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_10__/* .getAvailableCommands */ .K)();
|
|
43993
43935
|
for (const cmd of availableCommands) {
|
|
43994
43936
|
addMessage(` ${cmd.command} - ${cmd.description}`, "info");
|
|
43995
43937
|
}
|
|
43996
43938
|
break;
|
|
43939
|
+
}
|
|
43997
43940
|
}
|
|
43998
|
-
}, [addMessage, handleDockerShell]);
|
|
43999
|
-
const handleSubmit = (0,
|
|
43941
|
+
}, [addMessage, handleDockerShell, exit]);
|
|
43942
|
+
const handleSubmit = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (value) => {
|
|
44000
43943
|
const trimmedValue = value.trim();
|
|
44001
43944
|
if (!trimmedValue) {
|
|
44002
43945
|
return;
|
|
44003
43946
|
}
|
|
44004
43947
|
setInput("");
|
|
44005
|
-
const command = (0,
|
|
43948
|
+
const command = (0,_utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_10__/* .parseSlashCommand */ .M)(trimmedValue);
|
|
44006
43949
|
if (command) {
|
|
44007
43950
|
await handleSlashCommand(command, trimmedValue);
|
|
44008
43951
|
}
|
|
@@ -44015,13 +43958,13 @@ function TerminalUI() {
|
|
|
44015
43958
|
await handleOpenCode(trimmedValue);
|
|
44016
43959
|
}
|
|
44017
43960
|
}, [addMessage, handleOpenCode, handleSlashCommand]);
|
|
44018
|
-
const handleConfigModalClose = (0,
|
|
43961
|
+
const handleConfigModalClose = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {
|
|
44019
43962
|
setShowConfigModal(false);
|
|
44020
43963
|
}, []);
|
|
44021
|
-
const handleConfigModalMessage = (0,
|
|
43964
|
+
const handleConfigModalMessage = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)((text, type) => {
|
|
44022
43965
|
addMessage(text, type || "system");
|
|
44023
43966
|
}, [addMessage]);
|
|
44024
|
-
(0,
|
|
43967
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_0__/* .useInput */ .Ge)((input, key) => {
|
|
44025
43968
|
if (showConfigModal) {
|
|
44026
43969
|
// Let modal handle input
|
|
44027
43970
|
return;
|
|
@@ -44032,23 +43975,23 @@ function TerminalUI() {
|
|
|
44032
43975
|
}
|
|
44033
43976
|
});
|
|
44034
43977
|
if (showConfigModal) {
|
|
44035
|
-
return (
|
|
44036
|
-
|
|
43978
|
+
return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column" },
|
|
43979
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_ConfigModal_js__WEBPACK_IMPORTED_MODULE_6__/* .ConfigModal */ .y, { onClose: handleConfigModalClose, onMessage: handleConfigModalMessage })));
|
|
44037
43980
|
}
|
|
44038
43981
|
const shouldShowWelcome = messages.length === 0;
|
|
44039
43982
|
const recentMessages = messages.slice(-10);
|
|
44040
|
-
return (
|
|
44041
|
-
shouldShowWelcome ? (
|
|
44042
|
-
|
|
44043
|
-
|
|
44044
|
-
|
|
44045
|
-
|
|
44046
|
-
|
|
44047
|
-
|
|
44048
|
-
|
|
43983
|
+
return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", height: "100%" },
|
|
43984
|
+
shouldShowWelcome ? (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(WelcomeScreen, null)) : (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column", flexGrow: 1, marginBottom: 1 }, recentMessages.map((message) => (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(MessageItem, { key: message.id, message: message }))))),
|
|
43985
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { flexDirection: "column" },
|
|
43986
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { borderStyle: "single", borderColor: "gray", paddingX: 1 },
|
|
43987
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { color: "cyan", bold: true }, "\u203A"),
|
|
43988
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, null, " "),
|
|
43989
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink_text_input__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A, { value: input, onChange: setInput, onSubmit: handleSubmit, placeholder: "Enter your prompt..." })),
|
|
43990
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Box */ .az, { marginTop: 1, paddingX: 1 },
|
|
43991
|
+
react__WEBPACK_IMPORTED_MODULE_2___default().createElement(ink__WEBPACK_IMPORTED_MODULE_0__/* .Text */ .EY, { dimColor: true }, "Ctrl+C to exit")))));
|
|
44049
43992
|
}
|
|
44050
43993
|
function renderTerminalUI() {
|
|
44051
|
-
(0,
|
|
43994
|
+
(0,ink__WEBPACK_IMPORTED_MODULE_0__/* .render */ .XX)(react__WEBPACK_IMPORTED_MODULE_2___default().createElement(TerminalUI, null));
|
|
44052
43995
|
}
|
|
44053
43996
|
|
|
44054
43997
|
__webpack_async_result__();
|
|
@@ -44154,21 +44097,21 @@ const ASCII_LOGO = [
|
|
|
44154
44097
|
/***/ ((module, __unused_webpack___webpack_exports__, __nccwpck_require__) => {
|
|
44155
44098
|
|
|
44156
44099
|
__nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
44157
|
-
/* harmony import */ var
|
|
44158
|
-
/* harmony import */ var
|
|
44159
|
-
/* harmony import */ var
|
|
44160
|
-
/* harmony import */ var
|
|
44161
|
-
/* harmony import */ var
|
|
44162
|
-
/* harmony import */ var
|
|
44163
|
-
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);
|
|
44164
|
-
/* harmony import */ var update_notifier__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(6213);
|
|
44100
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
|
|
44101
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
44102
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6760);
|
|
44103
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_1__);
|
|
44104
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(3136);
|
|
44105
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_2__);
|
|
44165
44106
|
/* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(9611);
|
|
44107
|
+
/* harmony import */ var commander__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(2202);
|
|
44108
|
+
/* harmony import */ var update_notifier__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(6213);
|
|
44166
44109
|
/* harmony import */ var _commands_docker_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(5515);
|
|
44167
44110
|
/* harmony import */ var _commands_nix_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(9922);
|
|
44168
|
-
/* harmony import */ var
|
|
44169
|
-
/* harmony import */ var
|
|
44170
|
-
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__,
|
|
44171
|
-
([_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__,
|
|
44111
|
+
/* harmony import */ var _commands_skills_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(9805);
|
|
44112
|
+
/* harmony import */ var _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(3535);
|
|
44113
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__, _commands_skills_js__WEBPACK_IMPORTED_MODULE_6__, _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_7__]);
|
|
44114
|
+
([_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__, _commands_skills_js__WEBPACK_IMPORTED_MODULE_6__, _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
|
|
44172
44115
|
|
|
44173
44116
|
|
|
44174
44117
|
|
|
@@ -44180,21 +44123,21 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_com
|
|
|
44180
44123
|
|
|
44181
44124
|
|
|
44182
44125
|
// Import package.json for version and update checks
|
|
44183
|
-
const __filename = (0,
|
|
44184
|
-
const __dirname = (0,
|
|
44185
|
-
const pkg = JSON.parse((0,
|
|
44186
|
-
const PROGRAM_NAME =
|
|
44126
|
+
const __filename = (0,node_url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath)(import.meta.url);
|
|
44127
|
+
const __dirname = (0,node_path__WEBPACK_IMPORTED_MODULE_1__.dirname)(__filename);
|
|
44128
|
+
const pkg = JSON.parse((0,node_fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync)((0,node_path__WEBPACK_IMPORTED_MODULE_1__.join)(__dirname, "../package.json"), "utf-8"));
|
|
44129
|
+
const PROGRAM_NAME = "sith";
|
|
44187
44130
|
const PROGRAM_VERSION = pkg.version;
|
|
44188
|
-
const PROGRAM_DESCRIPTION =
|
|
44131
|
+
const PROGRAM_DESCRIPTION = "Turn your context to the dark side. Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.";
|
|
44189
44132
|
// Check for updates (automatic background check)
|
|
44190
44133
|
const notifier = (0,update_notifier__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)({ pkg });
|
|
44191
44134
|
notifier.notify();
|
|
44192
44135
|
async function checkForUpdates() {
|
|
44193
|
-
console.log(chalk__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Ay.cyan(
|
|
44136
|
+
console.log(chalk__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Ay.cyan("Checking for updates..."));
|
|
44194
44137
|
// Force update check by setting updateCheckInterval to 0
|
|
44195
44138
|
const notifier = (0,update_notifier__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)({
|
|
44196
44139
|
pkg,
|
|
44197
|
-
updateCheckInterval: 0
|
|
44140
|
+
updateCheckInterval: 0,
|
|
44198
44141
|
});
|
|
44199
44142
|
// Fetch the latest version
|
|
44200
44143
|
await notifier.fetchInfo();
|
|
@@ -44210,21 +44153,20 @@ async function checkForUpdates() {
|
|
|
44210
44153
|
}
|
|
44211
44154
|
}
|
|
44212
44155
|
function createProgram() {
|
|
44213
|
-
const program = new
|
|
44156
|
+
const program = new commander__WEBPACK_IMPORTED_MODULE_3__/* .Command */ .uB();
|
|
44214
44157
|
program
|
|
44215
44158
|
.name(PROGRAM_NAME)
|
|
44216
44159
|
.description(PROGRAM_DESCRIPTION)
|
|
44217
44160
|
.version(PROGRAM_VERSION)
|
|
44218
|
-
.option(
|
|
44219
|
-
.option(
|
|
44220
|
-
.option(
|
|
44221
|
-
.option(
|
|
44222
|
-
.option(
|
|
44223
|
-
.option(
|
|
44224
|
-
.option(
|
|
44161
|
+
.option("--pull", "Pull prebuilt Docker image (recommended)")
|
|
44162
|
+
.option("--build", "Build the Docker image from scratch")
|
|
44163
|
+
.option("--it", "Launch interactive shell in Docker container")
|
|
44164
|
+
.option("--nix", "Use native Nix shell (no Docker)")
|
|
44165
|
+
.option("--nix-install", "Install Nix package manager locally")
|
|
44166
|
+
.option("--update", "Check for updates")
|
|
44167
|
+
.option("--legacy", "Use legacy menu interface");
|
|
44225
44168
|
// Default action - show terminal UI or legacy menu
|
|
44226
|
-
program
|
|
44227
|
-
.action(async (options) => {
|
|
44169
|
+
program.action(async (options) => {
|
|
44228
44170
|
if (options.update) {
|
|
44229
44171
|
await checkForUpdates();
|
|
44230
44172
|
}
|
|
@@ -44243,38 +44185,38 @@ function createProgram() {
|
|
|
44243
44185
|
}
|
|
44244
44186
|
else {
|
|
44245
44187
|
// Default: show new terminal UI
|
|
44246
|
-
(0,
|
|
44188
|
+
(0,_components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_7__/* .renderTerminalUI */ .t)();
|
|
44247
44189
|
}
|
|
44248
44190
|
});
|
|
44249
44191
|
// Docker command - explicit Docker management
|
|
44250
44192
|
program
|
|
44251
|
-
.command(
|
|
44252
|
-
.description(
|
|
44253
|
-
.option(
|
|
44254
|
-
.option(
|
|
44193
|
+
.command("docker")
|
|
44194
|
+
.description("Manage Docker environment")
|
|
44195
|
+
.option("--pull", "Pull prebuilt Docker image (recommended)")
|
|
44196
|
+
.option("--build", "Build the Docker image from scratch")
|
|
44255
44197
|
.action(async (options) => {
|
|
44256
44198
|
await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__/* .dockerCommand */ .Q)(options);
|
|
44257
44199
|
});
|
|
44258
44200
|
// Shell command - direct interactive shell (bypasses menu)
|
|
44259
44201
|
program
|
|
44260
|
-
.command(
|
|
44261
|
-
.description(
|
|
44202
|
+
.command("shell")
|
|
44203
|
+
.description("Run interactive shell in Docker container")
|
|
44262
44204
|
.action(async () => {
|
|
44263
44205
|
await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__/* .runShellDirect */ .l)();
|
|
44264
44206
|
});
|
|
44265
44207
|
// Skills command - install/uninstall skills from catalog
|
|
44266
44208
|
program
|
|
44267
|
-
.command(
|
|
44268
|
-
.description(
|
|
44209
|
+
.command("skills")
|
|
44210
|
+
.description("Manage skills (~/.sith/skills/)")
|
|
44269
44211
|
.action(() => {
|
|
44270
|
-
(0,
|
|
44212
|
+
(0,_commands_skills_js__WEBPACK_IMPORTED_MODULE_6__/* .skillsCommand */ .a)();
|
|
44271
44213
|
});
|
|
44272
44214
|
// Nix command - native Nix environment
|
|
44273
44215
|
program
|
|
44274
|
-
.command(
|
|
44275
|
-
.description(
|
|
44276
|
-
.option(
|
|
44277
|
-
.option(
|
|
44216
|
+
.command("nix")
|
|
44217
|
+
.description("Manage native Nix environment")
|
|
44218
|
+
.option("--install", "Install Nix package manager")
|
|
44219
|
+
.option("--shell", "Run Nix shell")
|
|
44278
44220
|
.action(async (options) => {
|
|
44279
44221
|
await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_5__/* .nixCommand */ .Dv)(options);
|
|
44280
44222
|
});
|
|
@@ -44287,6 +44229,126 @@ program.parse();
|
|
|
44287
44229
|
__webpack_async_result__();
|
|
44288
44230
|
} catch(e) { __webpack_async_result__(e); } });
|
|
44289
44231
|
|
|
44232
|
+
/***/ }),
|
|
44233
|
+
|
|
44234
|
+
/***/ 4495:
|
|
44235
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
|
|
44236
|
+
|
|
44237
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
44238
|
+
/* harmony export */ X: () => (/* binding */ buildDockerOpencodeCommand),
|
|
44239
|
+
/* harmony export */ a: () => (/* binding */ buildDockerShellCommand)
|
|
44240
|
+
/* harmony export */ });
|
|
44241
|
+
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(6878);
|
|
44242
|
+
/* harmony import */ var _skills_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6400);
|
|
44243
|
+
|
|
44244
|
+
|
|
44245
|
+
function buildDockerShellCommand(githubToken) {
|
|
44246
|
+
return [
|
|
44247
|
+
"run",
|
|
44248
|
+
"--rm",
|
|
44249
|
+
"-it",
|
|
44250
|
+
"-v",
|
|
44251
|
+
`${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
|
|
44252
|
+
"-v",
|
|
44253
|
+
`${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.skillsMount}`,
|
|
44254
|
+
"-v",
|
|
44255
|
+
`${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getOpenCodeConfigPath */ .Jn)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.opencodeConfigMount}`,
|
|
44256
|
+
"-e",
|
|
44257
|
+
`GITHUB_TOKEN=${githubToken}`,
|
|
44258
|
+
"--entrypoint",
|
|
44259
|
+
"nix-shell",
|
|
44260
|
+
_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.imageName,
|
|
44261
|
+
_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.shellEntrypoint,
|
|
44262
|
+
];
|
|
44263
|
+
}
|
|
44264
|
+
function buildDockerOpencodeCommand(githubToken, prompt) {
|
|
44265
|
+
const args = [
|
|
44266
|
+
"run",
|
|
44267
|
+
"--rm",
|
|
44268
|
+
"-it",
|
|
44269
|
+
"-v",
|
|
44270
|
+
`${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
|
|
44271
|
+
"-v",
|
|
44272
|
+
`${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.skillsMount}`,
|
|
44273
|
+
"-v",
|
|
44274
|
+
`${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getOpenCodeConfigPath */ .Jn)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.opencodeConfigMount}`,
|
|
44275
|
+
"-e",
|
|
44276
|
+
`GITHUB_TOKEN=${githubToken}`,
|
|
44277
|
+
"--entrypoint",
|
|
44278
|
+
"bash",
|
|
44279
|
+
_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.imageName,
|
|
44280
|
+
"-c",
|
|
44281
|
+
];
|
|
44282
|
+
let opencodeCommand = "source /opt/sith/nix/nix-scripts/setup.sh && cd /workspace && opencode -m github-copilot/claude-sonnet-4.6";
|
|
44283
|
+
if (prompt) {
|
|
44284
|
+
const escapedPrompt = prompt.replace(/'/g, "'\\''");
|
|
44285
|
+
opencodeCommand += ` --prompt '${escapedPrompt}'`;
|
|
44286
|
+
}
|
|
44287
|
+
args.push(opencodeCommand);
|
|
44288
|
+
return args;
|
|
44289
|
+
}
|
|
44290
|
+
|
|
44291
|
+
|
|
44292
|
+
/***/ }),
|
|
44293
|
+
|
|
44294
|
+
/***/ 1460:
|
|
44295
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
|
|
44296
|
+
|
|
44297
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
44298
|
+
/* harmony export */ l: () => (/* binding */ getGitHubToken)
|
|
44299
|
+
/* harmony export */ });
|
|
44300
|
+
/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(6181);
|
|
44301
|
+
|
|
44302
|
+
async function getGitHubToken() {
|
|
44303
|
+
if (process.env.GITHUB_TOKEN)
|
|
44304
|
+
return process.env.GITHUB_TOKEN;
|
|
44305
|
+
try {
|
|
44306
|
+
const { stdout } = await (0,execa__WEBPACK_IMPORTED_MODULE_0__/* .execa */ .Ho)("gh", ["auth", "token"]);
|
|
44307
|
+
return stdout.trim();
|
|
44308
|
+
}
|
|
44309
|
+
catch {
|
|
44310
|
+
return "";
|
|
44311
|
+
}
|
|
44312
|
+
}
|
|
44313
|
+
|
|
44314
|
+
|
|
44315
|
+
/***/ }),
|
|
44316
|
+
|
|
44317
|
+
/***/ 5534:
|
|
44318
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
|
|
44319
|
+
|
|
44320
|
+
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
|
44321
|
+
/* harmony export */ U: () => (/* binding */ getMessagePrefix),
|
|
44322
|
+
/* harmony export */ l: () => (/* binding */ getMessageColor)
|
|
44323
|
+
/* harmony export */ });
|
|
44324
|
+
function getMessageColor(type) {
|
|
44325
|
+
switch (type) {
|
|
44326
|
+
case "success":
|
|
44327
|
+
return "green";
|
|
44328
|
+
case "error":
|
|
44329
|
+
return "red";
|
|
44330
|
+
case "info":
|
|
44331
|
+
return "cyan";
|
|
44332
|
+
case "user":
|
|
44333
|
+
return "white";
|
|
44334
|
+
case "system":
|
|
44335
|
+
return "gray";
|
|
44336
|
+
default:
|
|
44337
|
+
return undefined;
|
|
44338
|
+
}
|
|
44339
|
+
}
|
|
44340
|
+
function getMessagePrefix(type) {
|
|
44341
|
+
switch (type) {
|
|
44342
|
+
case "user":
|
|
44343
|
+
return "› ";
|
|
44344
|
+
case "system":
|
|
44345
|
+
return "⚡ ";
|
|
44346
|
+
default:
|
|
44347
|
+
return "";
|
|
44348
|
+
}
|
|
44349
|
+
}
|
|
44350
|
+
|
|
44351
|
+
|
|
44290
44352
|
/***/ }),
|
|
44291
44353
|
|
|
44292
44354
|
/***/ 6400:
|
|
@@ -44299,12 +44361,13 @@ __webpack_async_result__();
|
|
|
44299
44361
|
/* harmony export */ rP: () => (/* binding */ installSkill),
|
|
44300
44362
|
/* harmony export */ wW: () => (/* binding */ uninstallSkill)
|
|
44301
44363
|
/* harmony export */ });
|
|
44302
|
-
/* harmony
|
|
44303
|
-
/* harmony import */ var
|
|
44304
|
-
/* harmony import */ var
|
|
44305
|
-
/* harmony import */ var
|
|
44306
|
-
/* harmony import */ var
|
|
44307
|
-
/* harmony import */ var
|
|
44364
|
+
/* unused harmony export findInstructionsFile */
|
|
44365
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
|
|
44366
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
|
|
44367
|
+
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(8161);
|
|
44368
|
+
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_os__WEBPACK_IMPORTED_MODULE_1__);
|
|
44369
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(6760);
|
|
44370
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_2__);
|
|
44308
44371
|
/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(6181);
|
|
44309
44372
|
/* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(6878);
|
|
44310
44373
|
|
|
@@ -44317,30 +44380,30 @@ function defaultConfig() {
|
|
|
44317
44380
|
return { $schema: OPENCODE_SCHEMA, instructions: [] };
|
|
44318
44381
|
}
|
|
44319
44382
|
function getSkillsDir() {
|
|
44320
|
-
const dir =
|
|
44321
|
-
|
|
44383
|
+
const dir = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(node_os__WEBPACK_IMPORTED_MODULE_1___default().homedir(), ".sith", "skills");
|
|
44384
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().mkdirSync(dir, { recursive: true });
|
|
44322
44385
|
return dir;
|
|
44323
44386
|
}
|
|
44324
44387
|
function getOpenCodeConfigPath() {
|
|
44325
|
-
const configPath =
|
|
44388
|
+
const configPath = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(node_os__WEBPACK_IMPORTED_MODULE_1___default().homedir(), ".sith", "opencode.json");
|
|
44326
44389
|
// Docker bind-mount creates a directory if the source doesn't exist; ensure it's a file.
|
|
44327
|
-
if (
|
|
44328
|
-
|
|
44390
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(configPath) && node_fs__WEBPACK_IMPORTED_MODULE_0___default().statSync(configPath).isDirectory()) {
|
|
44391
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().rmSync(configPath, { recursive: true, force: true });
|
|
44329
44392
|
}
|
|
44330
|
-
if (!
|
|
44331
|
-
|
|
44332
|
-
|
|
44393
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(configPath)) {
|
|
44394
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().mkdirSync(node_path__WEBPACK_IMPORTED_MODULE_2___default().dirname(configPath), { recursive: true });
|
|
44395
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(configPath, JSON.stringify(defaultConfig(), null, 2));
|
|
44333
44396
|
}
|
|
44334
44397
|
return configPath;
|
|
44335
44398
|
}
|
|
44336
44399
|
function readConfig() {
|
|
44337
|
-
const parsed = JSON.parse(
|
|
44400
|
+
const parsed = JSON.parse(node_fs__WEBPACK_IMPORTED_MODULE_0___default().readFileSync(getOpenCodeConfigPath(), "utf8"));
|
|
44338
44401
|
if (!Array.isArray(parsed.instructions))
|
|
44339
44402
|
parsed.instructions = [];
|
|
44340
44403
|
return parsed;
|
|
44341
44404
|
}
|
|
44342
44405
|
function writeConfig(config) {
|
|
44343
|
-
|
|
44406
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(getOpenCodeConfigPath(), JSON.stringify(config, null, 2));
|
|
44344
44407
|
}
|
|
44345
44408
|
function addInstruction(containerPath) {
|
|
44346
44409
|
const config = readConfig();
|
|
@@ -44355,46 +44418,46 @@ function removeInstructionsUnder(skillContainerDir) {
|
|
|
44355
44418
|
writeConfig(config);
|
|
44356
44419
|
}
|
|
44357
44420
|
function findInstructionsFile(skillDir) {
|
|
44358
|
-
const skillName =
|
|
44421
|
+
const skillName = node_path__WEBPACK_IMPORTED_MODULE_2___default().basename(skillDir);
|
|
44359
44422
|
const candidates = [
|
|
44360
44423
|
"SKILL.md",
|
|
44361
44424
|
"CAVEMAN.md",
|
|
44362
44425
|
"instructions.md",
|
|
44363
|
-
|
|
44426
|
+
node_path__WEBPACK_IMPORTED_MODULE_2___default().join("skills", skillName, "SKILL.md"),
|
|
44364
44427
|
"AGENTS.md",
|
|
44365
44428
|
];
|
|
44366
|
-
return candidates.find((name) =>
|
|
44429
|
+
return (candidates.find((name) => node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(node_path__WEBPACK_IMPORTED_MODULE_2___default().join(skillDir, name))) ?? null);
|
|
44367
44430
|
}
|
|
44368
44431
|
function isInstalled(name) {
|
|
44369
|
-
return
|
|
44432
|
+
return node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(node_path__WEBPACK_IMPORTED_MODULE_2___default().join(getSkillsDir(), name, "skill.json"));
|
|
44370
44433
|
}
|
|
44371
44434
|
async function installSkill(skill) {
|
|
44372
|
-
const targetDir =
|
|
44435
|
+
const targetDir = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(getSkillsDir(), skill.name);
|
|
44373
44436
|
if (skill.builtinInstructions) {
|
|
44374
|
-
|
|
44375
|
-
|
|
44376
|
-
|
|
44437
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().mkdirSync(targetDir, { recursive: true });
|
|
44438
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(node_path__WEBPACK_IMPORTED_MODULE_2___default().join(targetDir, "SKILL.md"), skill.builtinInstructions);
|
|
44439
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(node_path__WEBPACK_IMPORTED_MODULE_2___default().join(targetDir, "skill.json"), JSON.stringify({ name: skill.name, version: "builtin" }, null, 2));
|
|
44377
44440
|
addInstruction(`${_config_js__WEBPACK_IMPORTED_MODULE_3__/* .DOCKER_CONFIG */ .e6.skillsMount}/${skill.name}/SKILL.md`);
|
|
44378
44441
|
return;
|
|
44379
44442
|
}
|
|
44380
44443
|
if (!skill.source)
|
|
44381
44444
|
throw new Error(`Skill "${skill.name}" has no source URL`);
|
|
44382
|
-
const tmpZip =
|
|
44383
|
-
const tmpExtract =
|
|
44445
|
+
const tmpZip = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(node_os__WEBPACK_IMPORTED_MODULE_1___default().tmpdir(), `sith-skill-${skill.name}.zip`);
|
|
44446
|
+
const tmpExtract = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(node_os__WEBPACK_IMPORTED_MODULE_1___default().tmpdir(), `sith-skill-${skill.name}-extract`);
|
|
44384
44447
|
try {
|
|
44385
44448
|
await (0,execa__WEBPACK_IMPORTED_MODULE_4__/* .execa */ .Ho)("curl", ["-fsSL", skill.source, "-o", tmpZip]);
|
|
44386
|
-
|
|
44449
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().mkdirSync(tmpExtract, { recursive: true });
|
|
44387
44450
|
await (0,execa__WEBPACK_IMPORTED_MODULE_4__/* .execa */ .Ho)("unzip", ["-q", "-o", tmpZip, "-d", tmpExtract]);
|
|
44388
|
-
const entries =
|
|
44451
|
+
const entries = node_fs__WEBPACK_IMPORTED_MODULE_0___default().readdirSync(tmpExtract);
|
|
44389
44452
|
if (entries.length === 0)
|
|
44390
44453
|
throw new Error("Empty archive");
|
|
44391
|
-
const extracted =
|
|
44392
|
-
if (
|
|
44393
|
-
|
|
44394
|
-
|
|
44395
|
-
const skillJson =
|
|
44396
|
-
if (!
|
|
44397
|
-
|
|
44454
|
+
const extracted = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(tmpExtract, entries[0]);
|
|
44455
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(targetDir))
|
|
44456
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().rmSync(targetDir, { recursive: true, force: true });
|
|
44457
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().cpSync(extracted, targetDir, { recursive: true });
|
|
44458
|
+
const skillJson = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(targetDir, "skill.json");
|
|
44459
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(skillJson)) {
|
|
44460
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(skillJson, JSON.stringify({ name: skill.name, version: "local" }, null, 2));
|
|
44398
44461
|
}
|
|
44399
44462
|
const instructionsFile = findInstructionsFile(targetDir);
|
|
44400
44463
|
if (instructionsFile) {
|
|
@@ -44402,15 +44465,15 @@ async function installSkill(skill) {
|
|
|
44402
44465
|
}
|
|
44403
44466
|
}
|
|
44404
44467
|
finally {
|
|
44405
|
-
|
|
44406
|
-
|
|
44468
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().rmSync(tmpZip, { force: true });
|
|
44469
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().rmSync(tmpExtract, { recursive: true, force: true });
|
|
44407
44470
|
}
|
|
44408
44471
|
}
|
|
44409
44472
|
function uninstallSkill(name) {
|
|
44410
44473
|
removeInstructionsUnder(`${_config_js__WEBPACK_IMPORTED_MODULE_3__/* .DOCKER_CONFIG */ .e6.skillsMount}/${name}/`);
|
|
44411
|
-
const targetDir =
|
|
44412
|
-
if (
|
|
44413
|
-
|
|
44474
|
+
const targetDir = node_path__WEBPACK_IMPORTED_MODULE_2___default().join(getSkillsDir(), name);
|
|
44475
|
+
if (node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(targetDir)) {
|
|
44476
|
+
node_fs__WEBPACK_IMPORTED_MODULE_0___default().rmSync(targetDir, { recursive: true, force: true });
|
|
44414
44477
|
}
|
|
44415
44478
|
}
|
|
44416
44479
|
|
|
@@ -64180,7 +64243,7 @@ let currentUpdatePriority = react_reconciler_constants_js__WEBPACK_IMPORTED_MODU
|
|
|
64180
64243
|
let currentRootNode;
|
|
64181
64244
|
async function loadPackageJson() {
|
|
64182
64245
|
const fs = await Promise.resolve(/* import() */).then(__nccwpck_require__.t.bind(__nccwpck_require__, 3024, 19));
|
|
64183
|
-
const content = fs.readFileSync(__nccwpck_require__.ab + "
|
|
64246
|
+
const content = fs.readFileSync(__nccwpck_require__.ab + "package.json", 'utf8');
|
|
64184
64247
|
const parsedContent = JSON.parse(content);
|
|
64185
64248
|
return {
|
|
64186
64249
|
name: parsedContent?.name,
|