@m14i/sith 1.21.1 → 1.22.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.
@@ -1 +1 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/commands/docker.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEX,oBAAoB,EAEpB,MAAM,aAAa,CAAC;AAsTrB,wBAAsB,aAAa,CAClC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD"}
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/commands/docker.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEX,oBAAoB,EAEpB,MAAM,aAAa,CAAC;AAqTrB,wBAAsB,aAAa,CAClC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalUI.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/components/TerminalUI.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAiJ7D,wBAAgB,UAAU,IAAI,KAAK,CAAC,YAAY,CAoS/C;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
1
+ {"version":3,"file":"TerminalUI.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/components/TerminalUI.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAwC,MAAM,OAAO,CAAC;AA4I7D,wBAAgB,UAAU,IAAI,KAAK,CAAC,YAAY,CA0N/C;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
package/dist/index.js CHANGED
@@ -42966,27 +42966,25 @@ which.sync = whichSync
42966
42966
 
42967
42967
  __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
42968
42968
  /* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
42969
- /* harmony export */ Q: () => (/* binding */ dockerCommand),
42970
- /* harmony export */ l: () => (/* binding */ runShellDirect)
42969
+ /* harmony export */ Q: () => (/* binding */ dockerCommand)
42971
42970
  /* harmony export */ });
42971
+ /* unused harmony export runShellDirect */
42972
42972
  /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
42973
42973
  /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
42974
42974
  /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6760);
42975
42975
  /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_1__);
42976
42976
  /* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(3136);
42977
42977
  /* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_2__);
42978
- /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(6181);
42978
+ /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(6181);
42979
42979
  /* harmony import */ var ink__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(3816);
42980
42980
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(2864);
42981
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 _utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(4495);
42984
- /* harmony import */ var _utils_skills_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(6400);
42985
- /* harmony import */ var _nix_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(9922);
42986
- /* harmony import */ var _skills_js__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(9805);
42987
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink__WEBPACK_IMPORTED_MODULE_3__, _skills_js__WEBPACK_IMPORTED_MODULE_9__]);
42988
- ([ink__WEBPACK_IMPORTED_MODULE_3__, _skills_js__WEBPACK_IMPORTED_MODULE_9__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
42989
-
42983
+ /* harmony import */ var _utils_launcher_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(5800);
42984
+ /* harmony import */ var _nix_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(9922);
42985
+ /* harmony import */ var _skills_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(9805);
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__);
42990
42988
 
42991
42989
 
42992
42990
 
@@ -43077,11 +43075,11 @@ function Menu() {
43077
43075
  switch (value) {
43078
43076
  case "shell":
43079
43077
  exit();
43080
- await runShell();
43078
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_6__/* .launchShell */ .k1)();
43081
43079
  return;
43082
43080
  case "skills":
43083
43081
  exit();
43084
- (0,_skills_js__WEBPACK_IMPORTED_MODULE_9__/* .skillsCommand */ .a)();
43082
+ (0,_skills_js__WEBPACK_IMPORTED_MODULE_8__/* .skillsCommand */ .a)();
43085
43083
  return;
43086
43084
  case "config":
43087
43085
  setCurrentMenu("config");
@@ -43108,11 +43106,11 @@ function Menu() {
43108
43106
  setIsProcessing(true);
43109
43107
  setProcessStep("Pulling prebuilt Docker image...");
43110
43108
  try {
43111
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", ["pull", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage], {
43109
+ await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", ["pull", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage], {
43112
43110
  stdio: "inherit",
43113
43111
  });
43114
43112
  // Tag the pulled image with local name for compatibility
43115
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", ["tag", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName], {
43113
+ await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", ["tag", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName], {
43116
43114
  stdio: "inherit",
43117
43115
  });
43118
43116
  setIsProcessing(false);
@@ -43128,8 +43126,8 @@ function Menu() {
43128
43126
  setIsProcessing(true);
43129
43127
  setProcessStep("Installing Nix locally...");
43130
43128
  try {
43131
- await (0,_nix_js__WEBPACK_IMPORTED_MODULE_8__/* .installNix */ .Fh)();
43132
- await (0,_nix_js__WEBPACK_IMPORTED_MODULE_8__/* .copyNixFiles */ .Qi)();
43129
+ await (0,_nix_js__WEBPACK_IMPORTED_MODULE_7__/* .installNix */ .Fh)();
43130
+ await (0,_nix_js__WEBPACK_IMPORTED_MODULE_7__/* .copyNixFiles */ .Qi)();
43133
43131
  setIsProcessing(false);
43134
43132
  setProcessComplete(true);
43135
43133
  setProcessStep("");
@@ -43147,7 +43145,7 @@ function Menu() {
43147
43145
  if (!node_fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(dockerfilePath)) {
43148
43146
  throw new Error(`Dockerfile not found at: ${dockerfilePath}`);
43149
43147
  }
43150
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", ["build", "-f", dockerfilePath, "-t", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName, rootDir], {
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], {
43151
43149
  stdio: "inherit",
43152
43150
  });
43153
43151
  setIsProcessing(false);
@@ -43233,7 +43231,7 @@ async function dockerCommand(options) {
43233
43231
  (0,ink__WEBPACK_IMPORTED_MODULE_3__/* .render */ .XX)(react__WEBPACK_IMPORTED_MODULE_4___default().createElement(Menu, null));
43234
43232
  }
43235
43233
  async function runShellDirect() {
43236
- await runShell();
43234
+ await launchShell();
43237
43235
  }
43238
43236
  async function pullDocker() {
43239
43237
  console.log("📦 Pulling prebuilt Docker image...");
@@ -43242,12 +43240,12 @@ async function pullDocker() {
43242
43240
  console.log(`Source: ${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage}`);
43243
43241
  console.log(`Target: ${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName}`);
43244
43242
  console.log();
43245
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", ["pull", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage], {
43243
+ await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", ["pull", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage], {
43246
43244
  stdio: "inherit",
43247
43245
  });
43248
43246
  console.log();
43249
43247
  console.log("🏷️ Tagging image for local use...");
43250
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", ["tag", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName], {
43248
+ await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", ["tag", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.prebuiltImage, _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName], {
43251
43249
  stdio: "inherit",
43252
43250
  });
43253
43251
  console.log();
@@ -43275,7 +43273,7 @@ async function buildDocker() {
43275
43273
  console.log(`Root: ${rootDir}`);
43276
43274
  console.log(`Dockerfile: ${dockerfilePath}`);
43277
43275
  console.log();
43278
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", ["build", "-f", dockerfilePath, "-t", _config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.imageName, rootDir], {
43276
+ 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], {
43279
43277
  stdio: "inherit",
43280
43278
  });
43281
43279
  console.log();
@@ -43292,31 +43290,6 @@ async function buildDocker() {
43292
43290
  process.exit(1);
43293
43291
  }
43294
43292
  }
43295
- async function runShell() {
43296
- const skillsDir = (0,_utils_skills_js__WEBPACK_IMPORTED_MODULE_7__/* .getSkillsDir */ .YJ)();
43297
- console.log("🚀 Starting interactive shell...");
43298
- console.log(`Mounting workspace to ${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
43299
- console.log(`Mounting skills from ${skillsDir} to ${_config_js__WEBPACK_IMPORTED_MODULE_5__/* .DOCKER_CONFIG */ .e6.skillsMount}`);
43300
- console.log('Press Ctrl+D or type "exit" to leave');
43301
- console.log();
43302
- // Try to get GitHub token from gh CLI if not in env
43303
- let githubToken = process.env.GITHUB_TOKEN || "";
43304
- if (!githubToken) {
43305
- try {
43306
- const { stdout } = await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("gh", ["auth", "token"]);
43307
- githubToken = stdout.trim();
43308
- }
43309
- catch {
43310
- // Ignore if gh CLI not available or not authenticated
43311
- }
43312
- }
43313
- const claudeOauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
43314
- const dockerArgs = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_6__/* .buildDockerShellCommand */ .ac)(githubToken, claudeOauthToken);
43315
- await (0,execa__WEBPACK_IMPORTED_MODULE_10__/* .execa */ .Ho)("docker", dockerArgs, {
43316
- stdio: "inherit",
43317
- reject: false,
43318
- });
43319
- }
43320
43293
 
43321
43294
  __webpack_async_result__();
43322
43295
  } catch(e) { __webpack_async_result__(e); } });
@@ -43810,17 +43783,15 @@ __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __we
43810
43783
  /* harmony export */ t: () => (/* binding */ renderTerminalUI)
43811
43784
  /* harmony export */ });
43812
43785
  /* unused harmony export TerminalUI */
43813
- /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(6181);
43814
43786
  /* harmony import */ var ink__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3816);
43815
43787
  /* harmony import */ var ink_text_input__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(9046);
43816
43788
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(2864);
43817
43789
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
43818
43790
  /* harmony import */ var _commands_skills_js__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(9805);
43819
43791
  /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(6878);
43820
- /* harmony import */ var _utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(4495);
43821
- /* harmony import */ var _utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(1460);
43792
+ /* harmony import */ var _utils_launcher_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(5800);
43822
43793
  /* harmony import */ var _utils_messageUtils_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(5534);
43823
- /* harmony import */ var _utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(9987);
43794
+ /* harmony import */ var _utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(9987);
43824
43795
  /* harmony import */ var _ConfigModal_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(3636);
43825
43796
  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__]);
43826
43797
  ([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__);
@@ -43833,8 +43804,6 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([ink_
43833
43804
 
43834
43805
 
43835
43806
 
43836
-
43837
-
43838
43807
  const TOOLS = [
43839
43808
  {
43840
43809
  value: "opencode",
@@ -43912,62 +43881,15 @@ function TerminalUI() {
43912
43881
  }, []);
43913
43882
  const handleDockerShell = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async () => {
43914
43883
  exit();
43915
- console.log("🚀 Starting Docker shell...");
43916
- console.log(`Mounting current directory to ${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
43917
- console.log('Press Ctrl+D or type "exit" to leave');
43918
- console.log();
43919
- const githubToken = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__/* .getGitHubToken */ .l)();
43920
- const claudeOauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
43921
- const dockerArgs = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__/* .buildDockerShellCommand */ .ac)(githubToken, claudeOauthToken);
43922
- await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", dockerArgs, { stdio: "inherit", reject: false });
43923
- console.log();
43924
- console.log("✅ Exited shell");
43884
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_5__/* .launchShell */ .k1)();
43925
43885
  }, [exit]);
43926
43886
  const handleOpenCode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (prompt) => {
43927
43887
  exit();
43928
- console.log("🚀 Starting OpenCode...");
43929
- console.log(`Mounting current directory to ${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
43930
- if (prompt) {
43931
- console.log(`Prompt: ${prompt}`);
43932
- }
43933
- console.log();
43934
- const githubToken = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__/* .getGitHubToken */ .l)();
43935
- const claudeOauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
43936
- const dockerArgs = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__/* .buildDockerOpencodeCommand */ .Xs)(githubToken, prompt, claudeOauthToken);
43937
- try {
43938
- await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", dockerArgs, { stdio: "inherit" });
43939
- console.log();
43940
- console.log("✅ Exited OpenCode");
43941
- }
43942
- catch (error) {
43943
- const errorMessage = error instanceof Error ? error.message : "Failed to start OpenCode";
43944
- console.error(`❌ ${errorMessage}`);
43945
- process.exit(1);
43946
- }
43888
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_5__/* .launchOpencode */ .Tg)(prompt);
43947
43889
  }, [exit]);
43948
43890
  const handleClaudeCode = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (prompt) => {
43949
43891
  exit();
43950
- console.log("🤖 Starting Claude Code...");
43951
- console.log(`Mounting current directory to ${_config_js__WEBPACK_IMPORTED_MODULE_4__/* .DOCKER_CONFIG */ .e6.workspaceMount}`);
43952
- if (prompt) {
43953
- console.log(`Prompt: ${prompt}`);
43954
- }
43955
- console.log();
43956
- const githubToken = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_8__/* .getGitHubToken */ .l)();
43957
- const claudeOauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
43958
- const dockerArgs = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_5__/* .buildDockerClaudeCodeCommand */ .fn)(githubToken, prompt, claudeOauthToken);
43959
- try {
43960
- await (0,execa__WEBPACK_IMPORTED_MODULE_9__/* .execa */ .Ho)("docker", dockerArgs, { stdio: "inherit" });
43961
- console.log();
43962
- console.log("✅ Exited Claude Code");
43963
- }
43964
- catch (error) {
43965
- const errorMessage = error instanceof Error
43966
- ? error.message
43967
- : "Failed to start Claude Code";
43968
- console.error(`❌ ${errorMessage}`);
43969
- process.exit(1);
43970
- }
43892
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_5__/* .launchClaude */ .Q7)(prompt);
43971
43893
  }, [exit]);
43972
43894
  const handleSlashCommand = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (command, userInput) => {
43973
43895
  if (!command) {
@@ -43986,7 +43908,7 @@ function TerminalUI() {
43986
43908
  break;
43987
43909
  case "help": {
43988
43910
  addMessage("Available commands:", "info");
43989
- const availableCommands = (0,_utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_10__/* .getAvailableCommands */ .K)();
43911
+ const availableCommands = (0,_utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_8__/* .getAvailableCommands */ .K)();
43990
43912
  for (const cmd of availableCommands) {
43991
43913
  addMessage(` ${cmd.command} - ${cmd.description}`, "info");
43992
43914
  }
@@ -44001,14 +43923,14 @@ function TerminalUI() {
44001
43923
  addMessage("Switched to Claude Code", "success");
44002
43924
  break;
44003
43925
  }
44004
- }, [addMessage, handleDockerShell, exit]);
43926
+ }, [addMessage, handleDockerShell]);
44005
43927
  const handleSubmit = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(async (value) => {
44006
43928
  const trimmedValue = value.trim();
44007
43929
  if (!trimmedValue) {
44008
43930
  return;
44009
43931
  }
44010
43932
  setInput("");
44011
- const command = (0,_utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_10__/* .parseSlashCommand */ .M)(trimmedValue);
43933
+ const command = (0,_utils_slashCommands_js__WEBPACK_IMPORTED_MODULE_8__/* .parseSlashCommand */ .M)(trimmedValue);
44012
43934
  if (command) {
44013
43935
  await handleSlashCommand(command, trimmedValue);
44014
43936
  }
@@ -44191,27 +44113,22 @@ const ASCII_LOGO = [
44191
44113
  /***/ ((module, __unused_webpack___webpack_exports__, __nccwpck_require__) => {
44192
44114
 
44193
44115
  __nccwpck_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
44194
- /* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(1421);
44195
- /* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_child_process__WEBPACK_IMPORTED_MODULE_0__);
44196
- /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(3024);
44197
- /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_1__);
44198
- /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(6760);
44199
- /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_2__);
44200
- /* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(3136);
44201
- /* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_3__);
44202
- /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_11__ = __nccwpck_require__(9611);
44203
- /* harmony import */ var commander__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(2202);
44204
- /* harmony import */ var update_notifier__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(6213);
44205
- /* harmony import */ var _commands_docker_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(5515);
44206
- /* harmony import */ var _commands_nix_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(9922);
44207
- /* harmony import */ var _commands_skills_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(9805);
44208
- /* harmony import */ var _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(3535);
44209
- /* harmony import */ var _utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(4495);
44210
- /* harmony import */ var _utils_githubToken_js__WEBPACK_IMPORTED_MODULE_12__ = __nccwpck_require__(1460);
44211
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_commands_docker_js__WEBPACK_IMPORTED_MODULE_5__, _commands_skills_js__WEBPACK_IMPORTED_MODULE_7__, _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_8__]);
44212
- ([_commands_docker_js__WEBPACK_IMPORTED_MODULE_5__, _commands_skills_js__WEBPACK_IMPORTED_MODULE_7__, _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_8__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
44213
-
44214
-
44116
+ /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(3024);
44117
+ /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(node_fs__WEBPACK_IMPORTED_MODULE_0__);
44118
+ /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6760);
44119
+ /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(node_path__WEBPACK_IMPORTED_MODULE_1__);
44120
+ /* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(3136);
44121
+ /* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(node_url__WEBPACK_IMPORTED_MODULE_2__);
44122
+ /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_10__ = __nccwpck_require__(9611);
44123
+ /* harmony import */ var commander__WEBPACK_IMPORTED_MODULE_3__ = __nccwpck_require__(2202);
44124
+ /* harmony import */ var update_notifier__WEBPACK_IMPORTED_MODULE_9__ = __nccwpck_require__(6213);
44125
+ /* harmony import */ var _commands_docker_js__WEBPACK_IMPORTED_MODULE_4__ = __nccwpck_require__(5515);
44126
+ /* harmony import */ var _commands_nix_js__WEBPACK_IMPORTED_MODULE_5__ = __nccwpck_require__(9922);
44127
+ /* harmony import */ var _commands_skills_js__WEBPACK_IMPORTED_MODULE_6__ = __nccwpck_require__(9805);
44128
+ /* harmony import */ var _components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_7__ = __nccwpck_require__(3535);
44129
+ /* harmony import */ var _utils_launcher_js__WEBPACK_IMPORTED_MODULE_8__ = __nccwpck_require__(5800);
44130
+ 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__]);
44131
+ ([_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__);
44215
44132
 
44216
44133
 
44217
44134
 
@@ -44224,19 +44141,19 @@ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_com
44224
44141
 
44225
44142
 
44226
44143
  // Import package.json for version and update checks
44227
- const __filename = (0,node_url__WEBPACK_IMPORTED_MODULE_3__.fileURLToPath)(import.meta.url);
44228
- const __dirname = (0,node_path__WEBPACK_IMPORTED_MODULE_2__.dirname)(__filename);
44229
- const pkg = JSON.parse((0,node_fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync)((0,node_path__WEBPACK_IMPORTED_MODULE_2__.join)(__dirname, "../package.json"), "utf-8"));
44144
+ const __filename = (0,node_url__WEBPACK_IMPORTED_MODULE_2__.fileURLToPath)(import.meta.url);
44145
+ const __dirname = (0,node_path__WEBPACK_IMPORTED_MODULE_1__.dirname)(__filename);
44146
+ 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"));
44230
44147
  const PROGRAM_NAME = "sith";
44231
44148
  const PROGRAM_VERSION = pkg.version;
44232
44149
  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.";
44233
44150
  // Check for updates (automatic background check)
44234
- const notifier = (0,update_notifier__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)({ pkg });
44151
+ const notifier = (0,update_notifier__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)({ pkg });
44235
44152
  notifier.notify();
44236
44153
  async function checkForUpdates() {
44237
- console.log(chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.cyan("Checking for updates..."));
44154
+ console.log(chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.cyan("Checking for updates..."));
44238
44155
  // Force update check by setting updateCheckInterval to 0
44239
- const notifier = (0,update_notifier__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)({
44156
+ const notifier = (0,update_notifier__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)({
44240
44157
  pkg,
44241
44158
  updateCheckInterval: 0,
44242
44159
  });
@@ -44245,16 +44162,16 @@ async function checkForUpdates() {
44245
44162
  const update = notifier.update;
44246
44163
  if (update && update.latest !== pkg.version) {
44247
44164
  console.log();
44248
- console.log(chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.green(`Update available: ${chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.dim(pkg.version)} → ${chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.bold(update.latest)}`));
44249
- console.log(chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.cyan(`Run ${chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.bold(`npm install -g ${pkg.name}`)} to update`));
44165
+ console.log(chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.green(`Update available: ${chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.dim(pkg.version)} → ${chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.bold(update.latest)}`));
44166
+ console.log(chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.cyan(`Run ${chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.bold(`npm install -g ${pkg.name}`)} to update`));
44250
44167
  console.log();
44251
44168
  }
44252
44169
  else {
44253
- console.log(chalk__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Ay.green(`✓ You're on the latest version (${pkg.version})`));
44170
+ console.log(chalk__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay.green(`✓ You're on the latest version (${pkg.version})`));
44254
44171
  }
44255
44172
  }
44256
44173
  function createProgram() {
44257
- const program = new commander__WEBPACK_IMPORTED_MODULE_4__/* .Command */ .uB();
44174
+ const program = new commander__WEBPACK_IMPORTED_MODULE_3__/* .Command */ .uB();
44258
44175
  program
44259
44176
  .name(PROGRAM_NAME)
44260
44177
  .description(PROGRAM_DESCRIPTION)
@@ -44272,21 +44189,21 @@ function createProgram() {
44272
44189
  await checkForUpdates();
44273
44190
  }
44274
44191
  else if (options.nix) {
44275
- await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_6__/* .runNixShell */ .nb)();
44192
+ await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_5__/* .runNixShell */ .nb)();
44276
44193
  }
44277
44194
  else if (options.nixInstall) {
44278
- await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_6__/* .nixCommand */ .Dv)({ install: true });
44195
+ await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_5__/* .nixCommand */ .Dv)({ install: true });
44279
44196
  }
44280
44197
  else if (options.it) {
44281
- await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_5__/* .runShellDirect */ .l)();
44198
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_8__/* .launchShell */ .k1)();
44282
44199
  }
44283
44200
  else if (options.legacy || options.pull || options.build) {
44284
44201
  // Use legacy menu for explicit pull/build or --legacy flag
44285
- await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_5__/* .dockerCommand */ .Q)(options);
44202
+ await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__/* .dockerCommand */ .Q)(options);
44286
44203
  }
44287
44204
  else {
44288
44205
  // Default: show new terminal UI
44289
- (0,_components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_8__/* .renderTerminalUI */ .t)();
44206
+ (0,_components_TerminalUI_js__WEBPACK_IMPORTED_MODULE_7__/* .renderTerminalUI */ .t)();
44290
44207
  }
44291
44208
  });
44292
44209
  // Docker command - explicit Docker management
@@ -44296,21 +44213,21 @@ function createProgram() {
44296
44213
  .option("--pull", "Pull prebuilt Docker image (recommended)")
44297
44214
  .option("--build", "Build the Docker image from scratch")
44298
44215
  .action(async (options) => {
44299
- await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_5__/* .dockerCommand */ .Q)(options);
44216
+ await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_4__/* .dockerCommand */ .Q)(options);
44300
44217
  });
44301
44218
  // Shell command - direct interactive shell (bypasses menu)
44302
44219
  program
44303
44220
  .command("shell")
44304
44221
  .description("Run interactive shell in Docker container")
44305
44222
  .action(async () => {
44306
- await (0,_commands_docker_js__WEBPACK_IMPORTED_MODULE_5__/* .runShellDirect */ .l)();
44223
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_8__/* .launchShell */ .k1)();
44307
44224
  });
44308
44225
  // Skills command - install/uninstall skills from catalog
44309
44226
  program
44310
44227
  .command("skills")
44311
44228
  .description("Manage skills (~/.sith/skills/)")
44312
44229
  .action(() => {
44313
- (0,_commands_skills_js__WEBPACK_IMPORTED_MODULE_7__/* .skillsCommand */ .a)();
44230
+ (0,_commands_skills_js__WEBPACK_IMPORTED_MODULE_6__/* .skillsCommand */ .a)();
44314
44231
  });
44315
44232
  // Nix command - native Nix environment
44316
44233
  program
@@ -44319,7 +44236,7 @@ function createProgram() {
44319
44236
  .option("--install", "Install Nix package manager")
44320
44237
  .option("--shell", "Run Nix shell")
44321
44238
  .action(async (options) => {
44322
- await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_6__/* .nixCommand */ .Dv)(options);
44239
+ await (0,_commands_nix_js__WEBPACK_IMPORTED_MODULE_5__/* .nixCommand */ .Dv)(options);
44323
44240
  });
44324
44241
  // OpenCode command - launch OpenCode in Docker
44325
44242
  program
@@ -44327,10 +44244,7 @@ function createProgram() {
44327
44244
  .description("Launch OpenCode in Docker")
44328
44245
  .option("-p, --prompt <prompt>", "Prompt to pass to OpenCode")
44329
44246
  .action(async (options) => {
44330
- const token = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_12__/* .getGitHubToken */ .l)();
44331
- const claudeOauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
44332
- const args = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_9__/* .buildDockerOpencodeCommand */ .Xs)(token, options.prompt, claudeOauthToken);
44333
- (0,node_child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync)("docker", args, { stdio: "inherit" });
44247
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_8__/* .launchOpencode */ .Tg)(options.prompt);
44334
44248
  });
44335
44249
  // Claude command - launch Claude Code in Docker
44336
44250
  program
@@ -44338,10 +44252,7 @@ function createProgram() {
44338
44252
  .description("Launch Claude Code in Docker")
44339
44253
  .option("-p, --prompt <prompt>", "Prompt to pass to Claude Code")
44340
44254
  .action(async (options) => {
44341
- const token = await (0,_utils_githubToken_js__WEBPACK_IMPORTED_MODULE_12__/* .getGitHubToken */ .l)();
44342
- const claudeOauthToken = process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
44343
- const args = (0,_utils_dockerArgs_js__WEBPACK_IMPORTED_MODULE_9__/* .buildDockerClaudeCodeCommand */ .fn)(token, options.prompt, claudeOauthToken);
44344
- (0,node_child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync)("docker", args, { stdio: "inherit" });
44255
+ await (0,_utils_launcher_js__WEBPACK_IMPORTED_MODULE_8__/* .launchClaude */ .Q7)(options.prompt);
44345
44256
  });
44346
44257
  return program;
44347
44258
  }
@@ -44354,41 +44265,49 @@ __webpack_async_result__();
44354
44265
 
44355
44266
  /***/ }),
44356
44267
 
44357
- /***/ 4495:
44268
+ /***/ 5800:
44358
44269
  /***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
44359
44270
 
44360
- /* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
44361
- /* harmony export */ Xs: () => (/* binding */ buildDockerOpencodeCommand),
44362
- /* harmony export */ ac: () => (/* binding */ buildDockerShellCommand),
44363
- /* harmony export */ fn: () => (/* binding */ buildDockerClaudeCodeCommand)
44364
- /* harmony export */ });
44365
- /* harmony import */ var _config_js__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(6878);
44366
- /* harmony import */ var _skills_js__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(6400);
44271
+
44272
+ // EXPORTS
44273
+ __nccwpck_require__.d(__webpack_exports__, {
44274
+ Q7: () => (/* binding */ launchClaude),
44275
+ Tg: () => (/* binding */ launchOpencode),
44276
+ k1: () => (/* binding */ launchShell)
44277
+ });
44278
+
44279
+ // EXTERNAL MODULE: ./node_modules/.pnpm/execa@9.6.1/node_modules/execa/index.js + 136 modules
44280
+ var execa = __nccwpck_require__(6181);
44281
+ // EXTERNAL MODULE: ./src/config.ts
44282
+ var config = __nccwpck_require__(6878);
44283
+ // EXTERNAL MODULE: ./src/utils/skills.ts
44284
+ var skills = __nccwpck_require__(6400);
44285
+ ;// CONCATENATED MODULE: ./src/utils/dockerArgs.ts
44367
44286
 
44368
44287
 
44369
44288
  function buildDockerShellCommand(githubToken, claudeOauthToken) {
44370
- (0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .syncClaudeMd */ .RK)();
44289
+ (0,skills/* syncClaudeMd */.RK)();
44371
44290
  const args = [
44372
44291
  "run",
44373
44292
  "--rm",
44374
44293
  "-it",
44375
44294
  "-v",
44376
- `${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
44295
+ `${process.cwd()}:${config/* DOCKER_CONFIG */.e6.workspaceMount}`,
44377
44296
  "-v",
44378
- `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.skillsMount}`,
44297
+ `${(0,skills/* getSkillsDir */.YJ)()}:${config/* DOCKER_CONFIG */.e6.skillsMount}`,
44379
44298
  "-v",
44380
- `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.claudeSkillsMount}`,
44299
+ `${(0,skills/* getSkillsDir */.YJ)()}:${config/* DOCKER_CONFIG */.e6.claudeSkillsMount}`,
44381
44300
  "-v",
44382
- `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getClaudeMdPath */ .pF)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.claudeConfigMount}/CLAUDE.md`,
44301
+ `${(0,skills/* getClaudeMdPath */.pF)()}:${config/* DOCKER_CONFIG */.e6.claudeConfigMount}/CLAUDE.md`,
44383
44302
  "-v",
44384
- `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getOpenCodeConfigPath */ .Jn)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.opencodeConfigMount}`,
44303
+ `${(0,skills/* getOpenCodeConfigPath */.Jn)()}:${config/* DOCKER_CONFIG */.e6.opencodeConfigMount}`,
44385
44304
  "-e",
44386
44305
  `GITHUB_TOKEN=${githubToken}`,
44387
44306
  ];
44388
44307
  if (claudeOauthToken) {
44389
44308
  args.push("-e", `CLAUDE_CODE_OAUTH_TOKEN=${claudeOauthToken}`);
44390
44309
  }
44391
- args.push("--entrypoint", "nix-shell", _config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.imageName, _config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.shellEntrypoint);
44310
+ args.push("--entrypoint", "nix-shell", config/* DOCKER_CONFIG */.e6.imageName, config/* DOCKER_CONFIG */.e6.shellEntrypoint);
44392
44311
  return args;
44393
44312
  }
44394
44313
  function buildDockerOpencodeCommand(githubToken, prompt, claudeOauthToken) {
@@ -44397,18 +44316,18 @@ function buildDockerOpencodeCommand(githubToken, prompt, claudeOauthToken) {
44397
44316
  "--rm",
44398
44317
  "-it",
44399
44318
  "-v",
44400
- `${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
44319
+ `${process.cwd()}:${config/* DOCKER_CONFIG */.e6.workspaceMount}`,
44401
44320
  "-v",
44402
- `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.skillsMount}`,
44321
+ `${(0,skills/* getSkillsDir */.YJ)()}:${config/* DOCKER_CONFIG */.e6.skillsMount}`,
44403
44322
  "-v",
44404
- `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getOpenCodeConfigPath */ .Jn)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.opencodeConfigMount}`,
44323
+ `${(0,skills/* getOpenCodeConfigPath */.Jn)()}:${config/* DOCKER_CONFIG */.e6.opencodeConfigMount}`,
44405
44324
  "-e",
44406
44325
  `GITHUB_TOKEN=${githubToken}`,
44407
44326
  ];
44408
44327
  if (claudeOauthToken) {
44409
44328
  args.push("-e", `CLAUDE_CODE_OAUTH_TOKEN=${claudeOauthToken}`);
44410
44329
  }
44411
- args.push("--entrypoint", "bash", _config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.imageName, "-c");
44330
+ args.push("--entrypoint", "bash", config/* DOCKER_CONFIG */.e6.imageName, "-c");
44412
44331
  let opencodeCommand = "source /opt/sith/nix/nix-scripts/setup.sh && cd /workspace && opencode -m github-copilot/claude-sonnet-4.6";
44413
44332
  if (prompt) {
44414
44333
  const escapedPrompt = prompt.replace(/'/g, "'\\''");
@@ -44418,14 +44337,14 @@ function buildDockerOpencodeCommand(githubToken, prompt, claudeOauthToken) {
44418
44337
  return args;
44419
44338
  }
44420
44339
  function buildDockerClaudeCodeCommand(githubToken, prompt, claudeOauthToken) {
44421
- (0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .syncClaudeMd */ .RK)();
44422
- const claudeMdPath = (0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getClaudeMdPath */ .pF)();
44340
+ (0,skills/* syncClaudeMd */.RK)();
44341
+ const claudeMdPath = (0,skills/* getClaudeMdPath */.pF)();
44423
44342
  const args = [
44424
44343
  "run",
44425
44344
  "--rm",
44426
44345
  "-it",
44427
44346
  "-v",
44428
- `${process.cwd()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.workspaceMount}`,
44347
+ `${process.cwd()}:${config/* DOCKER_CONFIG */.e6.workspaceMount}`,
44429
44348
  "-e",
44430
44349
  `GITHUB_TOKEN=${githubToken}`,
44431
44350
  ];
@@ -44433,10 +44352,10 @@ function buildDockerClaudeCodeCommand(githubToken, prompt, claudeOauthToken) {
44433
44352
  args.push("-e", `CLAUDE_CODE_OAUTH_TOKEN=${claudeOauthToken}`);
44434
44353
  }
44435
44354
  // Mount only ~/.sith/ contents — never expose ~/.claude to the container
44436
- args.push("-v", `${(0,_skills_js__WEBPACK_IMPORTED_MODULE_1__/* .getSkillsDir */ .YJ)()}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.claudeSkillsMount}`);
44355
+ args.push("-v", `${(0,skills/* getSkillsDir */.YJ)()}:${config/* DOCKER_CONFIG */.e6.claudeSkillsMount}`);
44437
44356
  // Generated CLAUDE.md (with skill @imports) overrides any CLAUDE.md from ~/.claude
44438
- args.push("-v", `${claudeMdPath}:${_config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.claudeConfigMount}/CLAUDE.md`);
44439
- args.push("--entrypoint", "bash", _config_js__WEBPACK_IMPORTED_MODULE_0__/* .DOCKER_CONFIG */ .e6.imageName, "-c");
44357
+ args.push("-v", `${claudeMdPath}:${config/* DOCKER_CONFIG */.e6.claudeConfigMount}/CLAUDE.md`);
44358
+ args.push("--entrypoint", "bash", config/* DOCKER_CONFIG */.e6.imageName, "-c");
44440
44359
  let claudeCommand = "source /opt/sith/nix/nix-scripts/setup.sh && cd /workspace && /root/.npm-global/bin/claude";
44441
44360
  if (prompt) {
44442
44361
  const escapedPrompt = prompt.replace(/'/g, "'\\''");
@@ -44446,22 +44365,13 @@ function buildDockerClaudeCodeCommand(githubToken, prompt, claudeOauthToken) {
44446
44365
  return args;
44447
44366
  }
44448
44367
 
44449
-
44450
- /***/ }),
44451
-
44452
- /***/ 1460:
44453
- /***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
44454
-
44455
- /* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
44456
- /* harmony export */ l: () => (/* binding */ getGitHubToken)
44457
- /* harmony export */ });
44458
- /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(6181);
44368
+ ;// CONCATENATED MODULE: ./src/utils/githubToken.ts
44459
44369
 
44460
44370
  async function getGitHubToken() {
44461
44371
  if (process.env.GITHUB_TOKEN)
44462
44372
  return process.env.GITHUB_TOKEN;
44463
44373
  try {
44464
- const { stdout } = await (0,execa__WEBPACK_IMPORTED_MODULE_0__/* .execa */ .Ho)("gh", ["auth", "token"]);
44374
+ const { stdout } = await (0,execa/* execa */.Ho)("gh", ["auth", "token"]);
44465
44375
  return stdout.trim();
44466
44376
  }
44467
44377
  catch {
@@ -44469,6 +44379,62 @@ async function getGitHubToken() {
44469
44379
  }
44470
44380
  }
44471
44381
 
44382
+ ;// CONCATENATED MODULE: ./src/utils/launcher.ts
44383
+
44384
+
44385
+
44386
+
44387
+ function getClaudeOauthToken() {
44388
+ return process.env.CLAUDE_CODE_OAUTH_TOKEN || "";
44389
+ }
44390
+ async function launchShell() {
44391
+ console.log("🚀 Starting Docker shell...");
44392
+ console.log(`Mounting current directory to ${config/* DOCKER_CONFIG */.e6.workspaceMount}`);
44393
+ console.log('Press Ctrl+D or type "exit" to leave');
44394
+ console.log();
44395
+ const githubToken = await getGitHubToken();
44396
+ const dockerArgs = buildDockerShellCommand(githubToken, getClaudeOauthToken());
44397
+ await (0,execa/* execa */.Ho)("docker", dockerArgs, { stdio: "inherit", reject: false });
44398
+ console.log();
44399
+ console.log("✅ Exited shell");
44400
+ }
44401
+ async function launchOpencode(prompt) {
44402
+ console.log("🚀 Starting OpenCode...");
44403
+ console.log(`Mounting current directory to ${config/* DOCKER_CONFIG */.e6.workspaceMount}`);
44404
+ if (prompt)
44405
+ console.log(`Prompt: ${prompt}`);
44406
+ console.log();
44407
+ const githubToken = await getGitHubToken();
44408
+ const dockerArgs = buildDockerOpencodeCommand(githubToken, prompt, getClaudeOauthToken());
44409
+ try {
44410
+ await (0,execa/* execa */.Ho)("docker", dockerArgs, { stdio: "inherit" });
44411
+ console.log();
44412
+ console.log("✅ Exited OpenCode");
44413
+ }
44414
+ catch (error) {
44415
+ console.error(`❌ ${error instanceof Error ? error.message : "Failed to start OpenCode"}`);
44416
+ process.exit(1);
44417
+ }
44418
+ }
44419
+ async function launchClaude(prompt) {
44420
+ console.log("🤖 Starting Claude Code...");
44421
+ console.log(`Mounting current directory to ${config/* DOCKER_CONFIG */.e6.workspaceMount}`);
44422
+ if (prompt)
44423
+ console.log(`Prompt: ${prompt}`);
44424
+ console.log();
44425
+ const githubToken = await getGitHubToken();
44426
+ const dockerArgs = buildDockerClaudeCodeCommand(githubToken, prompt, getClaudeOauthToken());
44427
+ try {
44428
+ await (0,execa/* execa */.Ho)("docker", dockerArgs, { stdio: "inherit" });
44429
+ console.log();
44430
+ console.log("✅ Exited Claude Code");
44431
+ }
44432
+ catch (error) {
44433
+ console.error(`❌ ${error instanceof Error ? error.message : "Failed to start Claude Code"}`);
44434
+ process.exit(1);
44435
+ }
44436
+ }
44437
+
44472
44438
 
44473
44439
  /***/ }),
44474
44440
 
@@ -0,0 +1,4 @@
1
+ export declare function launchShell(): Promise<void>;
2
+ export declare function launchOpencode(prompt?: string): Promise<void>;
3
+ export declare function launchClaude(prompt?: string): Promise<void>;
4
+ //# sourceMappingURL=launcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/launcher.ts"],"names":[],"mappings":"AAaA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBjD;AAED,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBnE;AAED,wBAAsB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBjE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m14i/sith",
3
- "version": "1.21.1",
3
+ "version": "1.22.0",
4
4
  "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.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -19,7 +19,8 @@
19
19
  "lint": "biome check src/",
20
20
  "typecheck": "tsc --noEmit",
21
21
  "clean": "rm -rf dist",
22
- "prepublishOnly": "pnpm build"
22
+ "prepublishOnly": "pnpm build",
23
+ "prepare": "husky"
23
24
  },
24
25
  "files": [
25
26
  "dist",
@@ -57,6 +58,8 @@
57
58
  "@types/update-notifier": "^6.0.8",
58
59
  "@vercel/ncc": "^0.38.1",
59
60
  "@vitest/coverage-v8": "^4.1.7",
61
+ "husky": "^9.1.7",
62
+ "lint-staged": "^17.0.7",
60
63
  "semantic-release": "^24.2.0",
61
64
  "tsx": "^4.7.2",
62
65
  "typescript": "^5.4.5",
@@ -65,6 +68,11 @@
65
68
  "engines": {
66
69
  "node": ">=18"
67
70
  },
71
+ "lint-staged": {
72
+ "src/**/*.{ts,tsx}": [
73
+ "biome check --write --unsafe"
74
+ ]
75
+ },
68
76
  "pnpm": {
69
77
  "overrides": {
70
78
  "esbuild": ">=0.28.1"