@gowelle/stint-agent 1.2.18 → 1.2.19

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.
@@ -2,21 +2,23 @@
2
2
  import {
3
3
  commitQueue,
4
4
  notify,
5
+ versionService,
5
6
  websocketService
6
- } from "../chunk-SXPP272L.js";
7
+ } from "../chunk-ZUQRDCS2.js";
7
8
  import {
8
9
  apiService
9
- } from "../chunk-XPZNWXB4.js";
10
+ } from "../chunk-6LQKDEQR.js";
10
11
  import {
11
12
  gitService,
12
13
  projectService,
13
14
  removePidFile,
14
15
  writePidFile
15
- } from "../chunk-A2CVSQ3K.js";
16
+ } from "../chunk-NVQIKLOA.js";
16
17
  import {
17
18
  authService,
19
+ config,
18
20
  logger
19
- } from "../chunk-WETVBZ6Z.js";
21
+ } from "../chunk-HZ4K7EPF.js";
20
22
 
21
23
  // src/daemon/runner.ts
22
24
  import "dotenv/config";
@@ -240,6 +242,39 @@ var heartbeatInterval = null;
240
242
  var isShuttingDown = false;
241
243
  var shutdownReason;
242
244
  var fileWatcher = new FileWatcher();
245
+ async function checkForUpdatesIfEnabled() {
246
+ try {
247
+ const autoCheck = config.get("autoCheckUpdates");
248
+ if (!autoCheck) {
249
+ logger.debug("daemon", "Automatic update checks disabled");
250
+ return;
251
+ }
252
+ const lastCheck = config.get("lastUpdateCheck");
253
+ if (lastCheck) {
254
+ const lastCheckTime = new Date(lastCheck).getTime();
255
+ const now = Date.now();
256
+ const cooldownMs = 24 * 60 * 60 * 1e3;
257
+ if (now - lastCheckTime < cooldownMs) {
258
+ logger.debug("daemon", "Update check cooldown active");
259
+ return;
260
+ }
261
+ }
262
+ logger.info("daemon", "Checking for updates...");
263
+ const versionInfo = await versionService.checkForUpdates("stable");
264
+ config.set("lastUpdateCheck", (/* @__PURE__ */ new Date()).toISOString());
265
+ if (versionInfo.hasUpdate) {
266
+ logger.info("daemon", `Update available: ${versionInfo.current} \u2192 ${versionInfo.latest}`);
267
+ notify({
268
+ title: "Stint Agent Update Available",
269
+ message: `Version ${versionInfo.latest} is available. Run "stint update" to install.`
270
+ });
271
+ } else {
272
+ logger.debug("daemon", "No updates available");
273
+ }
274
+ } catch (error) {
275
+ logger.debug("daemon", "Failed to check for updates", error);
276
+ }
277
+ }
243
278
  async function startDaemon() {
244
279
  logger.info("daemon", "Starting daemon...");
245
280
  try {
@@ -352,6 +387,7 @@ Priority: ${suggestion.priority}`,
352
387
  logger.success("daemon", "Initial project sync complete");
353
388
  }
354
389
  logger.success("daemon", "Daemon started successfully");
390
+ await checkForUpdatesIfEnabled();
355
391
  await new Promise(() => {
356
392
  });
357
393
  } catch (error) {
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  commitQueue,
4
+ versionService,
4
5
  websocketService
5
- } from "./chunk-SXPP272L.js";
6
+ } from "./chunk-ZUQRDCS2.js";
6
7
  import {
7
8
  apiService
8
- } from "./chunk-XPZNWXB4.js";
9
+ } from "./chunk-6LQKDEQR.js";
9
10
  import {
10
11
  getPidFilePath,
11
12
  gitService,
@@ -14,17 +15,17 @@ import {
14
15
  projectService,
15
16
  spawnDetached,
16
17
  validatePidFile
17
- } from "./chunk-A2CVSQ3K.js";
18
+ } from "./chunk-NVQIKLOA.js";
18
19
  import {
19
20
  authService,
20
21
  config,
21
22
  logger
22
- } from "./chunk-WETVBZ6Z.js";
23
+ } from "./chunk-HZ4K7EPF.js";
23
24
 
24
25
  // src/index.ts
25
26
  import "dotenv/config";
26
27
  import { Command } from "commander";
27
- import chalk13 from "chalk";
28
+ import chalk14 from "chalk";
28
29
 
29
30
  // src/commands/login.ts
30
31
  import open from "open";
@@ -620,7 +621,7 @@ function registerStatusCommand(program2) {
620
621
  try {
621
622
  const { render } = await import("ink");
622
623
  const { createElement } = await import("react");
623
- const { StatusDashboard } = await import("./StatusDashboard-KCHNLVD7.js");
624
+ const { StatusDashboard } = await import("./StatusDashboard-I5DG5GEB.js");
624
625
  render(createElement(StatusDashboard, { cwd }));
625
626
  return;
626
627
  } catch (error) {
@@ -1631,113 +1632,158 @@ function registerUninstallCommand(program2) {
1631
1632
  }
1632
1633
 
1633
1634
  // src/commands/update.ts
1635
+ import ora12 from "ora";
1636
+ import chalk12 from "chalk";
1637
+
1638
+ // src/services/update.ts
1639
+ import { execSync as execSync2 } from "child_process";
1634
1640
  import ora11 from "ora";
1635
1641
  import chalk11 from "chalk";
1636
- import { exec as exec2 } from "child_process";
1637
- import { promisify as promisify2 } from "util";
1638
- import { join } from "path";
1639
- import { readFileSync as readFileSync2 } from "fs";
1640
- import { fileURLToPath as fileURLToPath2 } from "url";
1641
- import { dirname as dirname2 } from "path";
1642
- var execAsync2 = promisify2(exec2);
1643
- var __dirname2 = dirname2(fileURLToPath2(import.meta.url));
1644
- function getChannelConfig() {
1645
- try {
1646
- const packagePath = join(__dirname2, "..", "..", "package.json");
1647
- const packageJson = JSON.parse(readFileSync2(packagePath, "utf-8"));
1648
- return packageJson.stint;
1649
- } catch {
1650
- return {
1651
- channels: {
1652
- stable: {
1653
- pattern: "^\\d+\\.\\d+\\.\\d+$",
1654
- description: "Production-ready releases"
1642
+ var UpdateService = class {
1643
+ /**
1644
+ * Perform update to latest version
1645
+ * @param channel - Release channel to update to (stable or beta)
1646
+ * @returns Update result
1647
+ */
1648
+ async performUpdate(channel = "stable") {
1649
+ const spinner = ora11("Preparing update...").start();
1650
+ try {
1651
+ const { valid, pid } = validatePidFile();
1652
+ const daemonWasRunning = valid && pid !== null;
1653
+ if (daemonWasRunning) {
1654
+ spinner.text = "Stopping daemon...";
1655
+ await this.stopDaemonForUpdate(pid);
1656
+ }
1657
+ spinner.text = `Installing latest ${channel} version...`;
1658
+ const packageSpec = channel === "beta" ? "@gowelle/stint-agent@beta" : "@gowelle/stint-agent@latest";
1659
+ try {
1660
+ execSync2(`npm install -g ${packageSpec}`, {
1661
+ stdio: "pipe",
1662
+ encoding: "utf8"
1663
+ });
1664
+ } catch (error) {
1665
+ const errorMessage = error.message;
1666
+ if (errorMessage.includes("EACCES") || errorMessage.includes("EPERM")) {
1667
+ spinner.fail("Permission denied");
1668
+ throw new Error(
1669
+ "Permission denied. Try running with elevated privileges:\n" + (process.platform === "win32" ? " Run PowerShell as Administrator" : " sudo npm install -g @gowelle/stint-agent")
1670
+ );
1655
1671
  }
1656
- },
1657
- defaultChannel: "stable"
1658
- };
1672
+ throw error;
1673
+ }
1674
+ if (daemonWasRunning) {
1675
+ spinner.text = "Restarting daemon...";
1676
+ await this.restartDaemonAfterUpdate();
1677
+ }
1678
+ spinner.succeed("Update completed successfully!");
1679
+ return { success: true };
1680
+ } catch (error) {
1681
+ spinner.fail("Update failed");
1682
+ logger.error("update", "Update failed", error);
1683
+ return {
1684
+ success: false,
1685
+ error: error.message
1686
+ };
1687
+ }
1659
1688
  }
1660
- }
1661
- function getVersionPattern(channel) {
1662
- const config2 = getChannelConfig();
1663
- return config2.channels[channel]?.pattern || config2.channels[config2.defaultChannel].pattern;
1664
- }
1665
- async function getLatestVersionForChannel(channel) {
1666
- const pattern = getVersionPattern(channel);
1667
- const regex = new RegExp(pattern);
1668
- const { stdout } = await execAsync2("npm view @gowelle/stint-agent versions --json");
1669
- const versions = JSON.parse(stdout);
1670
- const channelVersions = versions.filter((v) => regex.test(v)).sort((a, b) => {
1671
- const [aMajor, aMinor, aPatch] = a.split(".").map((part) => parseInt(part.split("-")[0]));
1672
- const [bMajor, bMinor, bPatch] = b.split(".").map((part) => parseInt(part.split("-")[0]));
1673
- if (aMajor !== bMajor) return bMajor - aMajor;
1674
- if (aMinor !== bMinor) return bMinor - aMinor;
1675
- return bPatch - aPatch;
1676
- });
1677
- if (channelVersions.length === 0) {
1678
- throw new Error(`No versions found for channel: ${channel}`);
1689
+ /**
1690
+ * Stop daemon before update
1691
+ * @param pid - Process ID of daemon
1692
+ */
1693
+ async stopDaemonForUpdate(pid) {
1694
+ try {
1695
+ killProcess(pid, "SIGTERM");
1696
+ let attempts = 0;
1697
+ const maxAttempts = 10;
1698
+ while (attempts < maxAttempts) {
1699
+ await new Promise((resolve) => setTimeout(resolve, 500));
1700
+ if (!isProcessRunning(pid)) {
1701
+ logger.info("update", "Daemon stopped successfully");
1702
+ return;
1703
+ }
1704
+ attempts++;
1705
+ }
1706
+ if (isProcessRunning(pid)) {
1707
+ logger.warn("update", "Daemon did not stop gracefully, forcing shutdown");
1708
+ killProcess(pid, "SIGKILL");
1709
+ await new Promise((resolve) => setTimeout(resolve, 500));
1710
+ }
1711
+ } catch (error) {
1712
+ logger.error("update", "Failed to stop daemon", error);
1713
+ throw new Error("Failed to stop daemon before update");
1714
+ }
1679
1715
  }
1680
- return channelVersions[0];
1681
- }
1716
+ /**
1717
+ * Restart daemon after update
1718
+ */
1719
+ async restartDaemonAfterUpdate() {
1720
+ try {
1721
+ execSync2("stint daemon start", {
1722
+ stdio: "pipe",
1723
+ encoding: "utf8"
1724
+ });
1725
+ logger.info("update", "Daemon restarted successfully");
1726
+ } catch (error) {
1727
+ logger.error("update", "Failed to restart daemon", error);
1728
+ console.log(chalk11.yellow("\n\u26A0 Failed to restart daemon automatically."));
1729
+ console.log(chalk11.gray('Run "stint daemon start" to start it manually.\n'));
1730
+ }
1731
+ }
1732
+ };
1733
+ var updateService = new UpdateService();
1734
+
1735
+ // src/commands/update.ts
1736
+ import prompts from "prompts";
1682
1737
  function registerUpdateCommand(program2) {
1683
- program2.command("update").description("Update stint agent to the latest version").option("-c, --channel <channel>", "Release channel (stable, beta, nightly)").action(async (options) => {
1684
- const spinner = ora11("Checking for updates...").start();
1738
+ program2.command("update").description("Update stint-agent to the latest version").option("--check", "Check for updates without installing").option("--channel <channel>", "Release channel (stable or beta)", "stable").option("-y, --yes", "Skip confirmation prompt").action(async (options) => {
1685
1739
  try {
1686
- const currentVersion = program2.version();
1687
- const config2 = getChannelConfig();
1688
- const channel = (options.channel || config2.defaultChannel).toLowerCase();
1689
- if (!config2.channels[channel]) {
1690
- spinner.fail(`Invalid channel: ${channel}`);
1691
- console.log(chalk11.gray("\nAvailable channels:"));
1692
- Object.entries(config2.channels).forEach(([name, info]) => {
1693
- console.log(chalk11.gray(` ${name.padEnd(10)} ${info.description}`));
1694
- });
1695
- console.log();
1696
- process.exit(1);
1740
+ const channel = options.channel === "beta" ? "beta" : "stable";
1741
+ const spinner = ora12("Checking for updates...").start();
1742
+ const versionInfo = await versionService.checkForUpdates(channel);
1743
+ spinner.stop();
1744
+ console.log(chalk12.blue("\n\u{1F4E6} Version Information:"));
1745
+ console.log(chalk12.gray("\u2500".repeat(50)));
1746
+ console.log(`${chalk12.bold("Current:")} ${versionInfo.current}`);
1747
+ console.log(`${chalk12.bold("Latest:")} ${versionInfo.latest} (${channel})`);
1748
+ console.log();
1749
+ if (!versionInfo.hasUpdate) {
1750
+ console.log(chalk12.green("\u2713 You are already on the latest version!\n"));
1751
+ return;
1697
1752
  }
1698
- spinner.text = `Checking for updates in ${channel} channel...`;
1699
- const cleanLatestVersion = await getLatestVersionForChannel(channel);
1700
- if (currentVersion === cleanLatestVersion) {
1701
- spinner.succeed("Already up to date");
1702
- console.log(chalk11.gray(`
1703
- Current version: ${currentVersion}`));
1704
- console.log(chalk11.gray(`Latest version: ${cleanLatestVersion}
1753
+ console.log(chalk12.yellow(`\u26A0 Update available: ${versionInfo.current} \u2192 ${versionInfo.latest}
1705
1754
  `));
1755
+ if (options.check) {
1756
+ console.log(chalk12.gray('Run "stint update" to install the latest version.\n'));
1706
1757
  return;
1707
1758
  }
1708
- spinner.info(`Update available: ${currentVersion} \u2192 ${cleanLatestVersion}`);
1709
- spinner.text = "Installing update...";
1710
- await execAsync2(`npm install -g @gowelle/stint-agent@${cleanLatestVersion}`);
1711
- spinner.succeed(`Updated to version ${cleanLatestVersion}`);
1712
- const { valid, pid } = validatePidFile();
1713
- if (valid && pid) {
1714
- console.log(chalk11.blue("\n\u{1F504} Restarting daemon with new version..."));
1715
- const restartSpinner = ora11("Restarting daemon...").start();
1716
- try {
1717
- killProcess(pid, "SIGTERM");
1718
- let attempts = 0;
1719
- while (attempts < 10 && isProcessRunning(pid)) {
1720
- await new Promise((resolve) => setTimeout(resolve, 500));
1721
- attempts++;
1722
- }
1723
- if (isProcessRunning(pid)) {
1724
- killProcess(pid, "SIGKILL");
1725
- }
1726
- await new Promise((resolve) => setTimeout(resolve, 1e3));
1727
- await execAsync2("stint daemon start");
1728
- restartSpinner.succeed("Daemon restarted successfully");
1729
- logger.success("update", `Daemon restarted after update`);
1730
- } catch (error) {
1731
- restartSpinner.fail("Failed to restart daemon");
1732
- logger.error("update", "Daemon restart failed", error);
1733
- console.log(chalk11.yellow('\nPlease run "stint daemon start" manually.\n'));
1759
+ if (!options.yes) {
1760
+ const response = await prompts({
1761
+ type: "confirm",
1762
+ name: "proceed",
1763
+ message: "Do you want to update now?",
1764
+ initial: true
1765
+ });
1766
+ if (!response.proceed) {
1767
+ console.log(chalk12.gray("\nUpdate cancelled.\n"));
1768
+ return;
1734
1769
  }
1735
1770
  }
1736
- logger.success("update", `Updated to version ${cleanLatestVersion}`);
1771
+ console.log();
1772
+ const result = await updateService.performUpdate(channel);
1773
+ if (result.success) {
1774
+ console.log(chalk12.green(`
1775
+ \u2713 Successfully updated to ${versionInfo.latest}!
1776
+ `));
1777
+ logger.success("update", `Updated to ${versionInfo.latest}`);
1778
+ } else {
1779
+ console.log(chalk12.red(`
1780
+ \u2716 Update failed: ${result.error}
1781
+ `));
1782
+ process.exit(1);
1783
+ }
1737
1784
  } catch (error) {
1738
- spinner.fail("Update failed");
1739
1785
  logger.error("update", "Update command failed", error);
1740
- console.error(chalk11.red(`
1786
+ console.error(chalk12.red(`
1741
1787
  \u2716 Error: ${error.message}
1742
1788
  `));
1743
1789
  process.exit(1);
@@ -1746,8 +1792,8 @@ Current version: ${currentVersion}`));
1746
1792
  }
1747
1793
 
1748
1794
  // src/commands/doctor.ts
1749
- import ora12 from "ora";
1750
- import chalk12 from "chalk";
1795
+ import ora13 from "ora";
1796
+ import chalk13 from "chalk";
1751
1797
 
1752
1798
  // src/utils/api-errors.ts
1753
1799
  function formatApiError(error) {
@@ -1839,13 +1885,13 @@ function isServiceUnavailable(error) {
1839
1885
  }
1840
1886
 
1841
1887
  // src/commands/doctor.ts
1842
- import { exec as exec3 } from "child_process";
1843
- import { promisify as promisify3 } from "util";
1888
+ import { exec as exec2 } from "child_process";
1889
+ import { promisify as promisify2 } from "util";
1844
1890
  import process7 from "process";
1845
- var execAsync3 = promisify3(exec3);
1891
+ var execAsync2 = promisify2(exec2);
1846
1892
  function registerDoctorCommand(program2) {
1847
1893
  program2.command("doctor").description("Run diagnostics to check environment health").action(async () => {
1848
- const spinner = ora12("Running diagnostics...").start();
1894
+ const spinner = ora13("Running diagnostics...").start();
1849
1895
  let hasErrors = false;
1850
1896
  try {
1851
1897
  const checks = [
@@ -1853,7 +1899,7 @@ function registerDoctorCommand(program2) {
1853
1899
  name: "Git Installation",
1854
1900
  check: async () => {
1855
1901
  try {
1856
- const { stdout } = await execAsync3("git --version");
1902
+ const { stdout } = await execAsync2("git --version");
1857
1903
  return {
1858
1904
  success: true,
1859
1905
  message: `Git ${stdout.trim()} found`
@@ -1874,8 +1920,8 @@ function registerDoctorCommand(program2) {
1874
1920
  name: "Git Configuration",
1875
1921
  check: async () => {
1876
1922
  try {
1877
- const { stdout: userName } = await execAsync3("git config --global user.name");
1878
- const { stdout: userEmail } = await execAsync3("git config --global user.email");
1923
+ const { stdout: userName } = await execAsync2("git config --global user.name");
1924
+ const { stdout: userEmail } = await execAsync2("git config --global user.email");
1879
1925
  if (!userName.trim() || !userEmail.trim()) {
1880
1926
  return {
1881
1927
  success: false,
@@ -1982,39 +2028,39 @@ function registerDoctorCommand(program2) {
1982
2028
  }
1983
2029
  }
1984
2030
  ];
1985
- console.log(chalk12.blue("\n\u{1F50D} Running environment diagnostics...\n"));
2031
+ console.log(chalk13.blue("\n\u{1F50D} Running environment diagnostics...\n"));
1986
2032
  for (const check of checks) {
1987
2033
  spinner.text = `Checking ${check.name.toLowerCase()}...`;
1988
2034
  try {
1989
2035
  const result = await check.check();
1990
2036
  if (result.success) {
1991
- console.log(`${chalk12.green("\u2713")} ${chalk12.bold(check.name)}: ${result.message}`);
2037
+ console.log(`${chalk13.green("\u2713")} ${chalk13.bold(check.name)}: ${result.message}`);
1992
2038
  } else {
1993
2039
  hasErrors = true;
1994
- console.log(`${chalk12.red("\u2716")} ${chalk12.bold(check.name)}: ${result.message}`);
2040
+ console.log(`${chalk13.red("\u2716")} ${chalk13.bold(check.name)}: ${result.message}`);
1995
2041
  if (result.details) {
1996
2042
  result.details.forEach((detail) => {
1997
- console.log(chalk12.gray(` ${detail}`));
2043
+ console.log(chalk13.gray(` ${detail}`));
1998
2044
  });
1999
2045
  }
2000
2046
  }
2001
2047
  } catch (error) {
2002
2048
  hasErrors = true;
2003
- console.log(`${chalk12.red("\u2716")} ${chalk12.bold(check.name)}: Check failed - ${error.message}`);
2049
+ console.log(`${chalk13.red("\u2716")} ${chalk13.bold(check.name)}: Check failed - ${error.message}`);
2004
2050
  }
2005
2051
  }
2006
2052
  spinner.stop();
2007
2053
  console.log();
2008
2054
  if (hasErrors) {
2009
- console.log(chalk12.yellow("Some checks failed. Please address the issues above."));
2055
+ console.log(chalk13.yellow("Some checks failed. Please address the issues above."));
2010
2056
  process7.exit(1);
2011
2057
  } else {
2012
- console.log(chalk12.green("All checks passed! Your environment is healthy."));
2058
+ console.log(chalk13.green("All checks passed! Your environment is healthy."));
2013
2059
  }
2014
2060
  } catch (error) {
2015
2061
  spinner.fail("Diagnostics failed");
2016
2062
  logger.error("doctor", "Diagnostics failed", error);
2017
- console.error(chalk12.red(`
2063
+ console.error(chalk13.red(`
2018
2064
  \u2716 Error: ${error.message}
2019
2065
  `));
2020
2066
  process7.exit(1);
@@ -2023,19 +2069,19 @@ function registerDoctorCommand(program2) {
2023
2069
  }
2024
2070
 
2025
2071
  // src/index.ts
2026
- var AGENT_VERSION = "1.2.18";
2072
+ var AGENT_VERSION = "1.2.19";
2027
2073
  var program = new Command();
2028
2074
  program.name("stint").description("Stint Agent - Local daemon for Stint Project Assistant").version(AGENT_VERSION, "-v, --version", "output the current version").addHelpText("after", `
2029
- ${chalk13.bold("Examples:")}
2030
- ${chalk13.cyan("$")} stint login ${chalk13.gray("# Authenticate with Stint")}
2031
- ${chalk13.cyan("$")} stint install ${chalk13.gray("# Install agent to run on startup")}
2032
- ${chalk13.cyan("$")} stint link ${chalk13.gray("# Link current directory to a project")}
2033
- ${chalk13.cyan("$")} stint daemon start ${chalk13.gray("# Start background daemon")}
2034
- ${chalk13.cyan("$")} stint status ${chalk13.gray("# Check status")}
2035
- ${chalk13.cyan("$")} stint commits ${chalk13.gray("# List pending commits")}
2075
+ ${chalk14.bold("Examples:")}
2076
+ ${chalk14.cyan("$")} stint login ${chalk14.gray("# Authenticate with Stint")}
2077
+ ${chalk14.cyan("$")} stint install ${chalk14.gray("# Install agent to run on startup")}
2078
+ ${chalk14.cyan("$")} stint link ${chalk14.gray("# Link current directory to a project")}
2079
+ ${chalk14.cyan("$")} stint daemon start ${chalk14.gray("# Start background daemon")}
2080
+ ${chalk14.cyan("$")} stint status ${chalk14.gray("# Check status")}
2081
+ ${chalk14.cyan("$")} stint commits ${chalk14.gray("# List pending commits")}
2036
2082
 
2037
- ${chalk13.bold("Documentation:")}
2038
- For more information, visit: ${chalk13.blue("https://stint.codes/docs")}
2083
+ ${chalk14.bold("Documentation:")}
2084
+ For more information, visit: ${chalk14.blue("https://stint.codes/docs")}
2039
2085
  `);
2040
2086
  registerLoginCommand(program);
2041
2087
  registerLogoutCommand(program);
@@ -2057,7 +2103,7 @@ try {
2057
2103
  const commanderError = error;
2058
2104
  if (commanderError.code !== "commander.help" && commanderError.code !== "commander.version" && commanderError.code !== "commander.helpDisplayed") {
2059
2105
  logger.error("cli", "Command execution failed", error);
2060
- console.error(chalk13.red(`
2106
+ console.error(chalk14.red(`
2061
2107
  \u2716 Error: ${error.message}
2062
2108
  `));
2063
2109
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gowelle/stint-agent",
3
- "version": "1.2.18",
3
+ "version": "1.2.19",
4
4
  "description": "Local agent for Stint - Project Assistant",
5
5
  "author": "Gowelle John <gowelle.john@icloud.com>",
6
6
  "license": "MIT",
@@ -49,6 +49,7 @@
49
49
  "node-notifier": "^10.0.1",
50
50
  "open": "^10.0.0",
51
51
  "ora": "^8.0.1",
52
+ "prompts": "^2.4.2",
52
53
  "pusher-js": "^8.4.0",
53
54
  "react": "^18.3.1",
54
55
  "simple-git": "^3.22.0",
@@ -57,6 +58,7 @@
57
58
  "devDependencies": {
58
59
  "@types/node": "^20.11.0",
59
60
  "@types/node-notifier": "^8.0.5",
61
+ "@types/prompts": "^2.4.9",
60
62
  "@types/react": "^18.3.27",
61
63
  "@types/ws": "^8.5.10",
62
64
  "@typescript-eslint/eslint-plugin": "^8.50.0",
@@ -1,7 +0,0 @@
1
- import {
2
- apiService
3
- } from "./chunk-XPZNWXB4.js";
4
- import "./chunk-WETVBZ6Z.js";
5
- export {
6
- apiService
7
- };