amai 0.0.8 → 0.0.9

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/cli.cjs CHANGED
@@ -6,7 +6,7 @@ var WebSocket = require('ws');
6
6
  var zod = require('zod');
7
7
  var fs5 = require('fs/promises');
8
8
  var path10 = require('path');
9
- var fs4 = require('fs');
9
+ var fs6 = require('fs');
10
10
  var os3 = require('os');
11
11
  var child_process = require('child_process');
12
12
  var util = require('util');
@@ -23,7 +23,7 @@ var pc5__default = /*#__PURE__*/_interopDefault(pc5);
23
23
  var WebSocket__default = /*#__PURE__*/_interopDefault(WebSocket);
24
24
  var fs5__default = /*#__PURE__*/_interopDefault(fs5);
25
25
  var path10__default = /*#__PURE__*/_interopDefault(path10);
26
- var fs4__default = /*#__PURE__*/_interopDefault(fs4);
26
+ var fs6__default = /*#__PURE__*/_interopDefault(fs6);
27
27
  var os3__default = /*#__PURE__*/_interopDefault(os3);
28
28
  var readline__default = /*#__PURE__*/_interopDefault(readline);
29
29
 
@@ -42,14 +42,14 @@ var ProjectRegistry = class {
42
42
  }
43
43
  load() {
44
44
  try {
45
- if (fs4__default.default.existsSync(REGISTRY_FILE)) {
46
- const data = fs4__default.default.readFileSync(REGISTRY_FILE, "utf8");
45
+ if (fs6__default.default.existsSync(REGISTRY_FILE)) {
46
+ const data = fs6__default.default.readFileSync(REGISTRY_FILE, "utf8");
47
47
  const parsed = JSON.parse(data);
48
48
  if (!Array.isArray(parsed)) {
49
49
  console.error("Invalid project registry format: expected array, got", typeof parsed);
50
50
  const backupFile = REGISTRY_FILE + ".backup." + Date.now();
51
- fs4__default.default.copyFileSync(REGISTRY_FILE, backupFile);
52
- fs4__default.default.unlinkSync(REGISTRY_FILE);
51
+ fs6__default.default.copyFileSync(REGISTRY_FILE, backupFile);
52
+ fs6__default.default.unlinkSync(REGISTRY_FILE);
53
53
  return;
54
54
  }
55
55
  const projects = parsed;
@@ -62,11 +62,11 @@ var ProjectRegistry = class {
62
62
  }
63
63
  } catch (error) {
64
64
  console.error("Failed to load project registry:", error);
65
- if (fs4__default.default.existsSync(REGISTRY_FILE)) {
65
+ if (fs6__default.default.existsSync(REGISTRY_FILE)) {
66
66
  try {
67
67
  const backupFile = REGISTRY_FILE + ".backup." + Date.now();
68
- fs4__default.default.copyFileSync(REGISTRY_FILE, backupFile);
69
- fs4__default.default.unlinkSync(REGISTRY_FILE);
68
+ fs6__default.default.copyFileSync(REGISTRY_FILE, backupFile);
69
+ fs6__default.default.unlinkSync(REGISTRY_FILE);
70
70
  console.log("Corrupted registry file backed up and removed. Starting fresh.");
71
71
  } catch (backupError) {
72
72
  }
@@ -75,11 +75,11 @@ var ProjectRegistry = class {
75
75
  }
76
76
  save() {
77
77
  try {
78
- if (!fs4__default.default.existsSync(AMA_DIR)) {
79
- fs4__default.default.mkdirSync(AMA_DIR, { recursive: true });
78
+ if (!fs6__default.default.existsSync(AMA_DIR)) {
79
+ fs6__default.default.mkdirSync(AMA_DIR, { recursive: true });
80
80
  }
81
81
  const projects = Array.from(this.projects.values());
82
- fs4__default.default.writeFileSync(REGISTRY_FILE, JSON.stringify(projects, null, 2), "utf8");
82
+ fs6__default.default.writeFileSync(REGISTRY_FILE, JSON.stringify(projects, null, 2), "utf8");
83
83
  } catch (error) {
84
84
  console.error("Failed to save project registry:", error);
85
85
  }
@@ -747,20 +747,20 @@ var editFiles = async function(input, projectCwd) {
747
747
  let existingContent = "";
748
748
  if (isNewFile === void 0) {
749
749
  try {
750
- existingContent = await fs4__default.default.promises.readFile(filePath, "utf-8");
750
+ existingContent = await fs6__default.default.promises.readFile(filePath, "utf-8");
751
751
  isNewFile = false;
752
752
  } catch (error) {
753
753
  isNewFile = true;
754
754
  }
755
755
  } else if (!isNewFile) {
756
756
  try {
757
- existingContent = await fs4__default.default.promises.readFile(filePath, "utf-8");
757
+ existingContent = await fs6__default.default.promises.readFile(filePath, "utf-8");
758
758
  } catch (error) {
759
759
  isNewFile = true;
760
760
  }
761
761
  }
762
762
  try {
763
- await fs4__default.default.promises.writeFile(filePath, content);
763
+ await fs6__default.default.promises.writeFile(filePath, content);
764
764
  } catch (writeError) {
765
765
  throw writeError;
766
766
  }
@@ -1139,6 +1139,9 @@ var list = async function(input, projectCwd) {
1139
1139
  var startHttpServer = () => {
1140
1140
  const app = new hono.Hono();
1141
1141
  app.use(cors.cors());
1142
+ app.get("/", (c) => {
1143
+ return c.text("Hello World");
1144
+ });
1142
1145
  nodeServer.serve({ fetch: app.fetch, port: 3456 });
1143
1146
  };
1144
1147
  var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
@@ -1146,10 +1149,10 @@ var CREDENTIALS_DIR = path10__default.default.join(os3__default.default.homedir(
1146
1149
  var CREDENTIALS_PATH = path10__default.default.join(CREDENTIALS_DIR, "credentials.json");
1147
1150
  function isAuthenticated() {
1148
1151
  try {
1149
- if (!fs4__default.default.existsSync(CREDENTIALS_PATH)) {
1152
+ if (!fs6__default.default.existsSync(CREDENTIALS_PATH)) {
1150
1153
  return false;
1151
1154
  }
1152
- const raw = fs4__default.default.readFileSync(CREDENTIALS_PATH, "utf8");
1155
+ const raw = fs6__default.default.readFileSync(CREDENTIALS_PATH, "utf8");
1153
1156
  const data = JSON.parse(raw);
1154
1157
  return Boolean(data && data.access_token);
1155
1158
  } catch {
@@ -1158,10 +1161,10 @@ function isAuthenticated() {
1158
1161
  }
1159
1162
  function saveTokens(tokens) {
1160
1163
  try {
1161
- if (!fs4__default.default.existsSync(CREDENTIALS_DIR)) {
1162
- fs4__default.default.mkdirSync(CREDENTIALS_DIR, { recursive: true });
1164
+ if (!fs6__default.default.existsSync(CREDENTIALS_DIR)) {
1165
+ fs6__default.default.mkdirSync(CREDENTIALS_DIR, { recursive: true });
1163
1166
  }
1164
- fs4__default.default.writeFileSync(
1167
+ fs6__default.default.writeFileSync(
1165
1168
  CREDENTIALS_PATH,
1166
1169
  JSON.stringify(tokens, null, 2),
1167
1170
  "utf8"
@@ -1172,18 +1175,18 @@ function saveTokens(tokens) {
1172
1175
  }
1173
1176
  function logout() {
1174
1177
  try {
1175
- if (fs4__default.default.existsSync(CREDENTIALS_PATH)) {
1176
- fs4__default.default.unlinkSync(CREDENTIALS_PATH);
1178
+ if (fs6__default.default.existsSync(CREDENTIALS_PATH)) {
1179
+ fs6__default.default.unlinkSync(CREDENTIALS_PATH);
1177
1180
  }
1178
1181
  } catch (error) {
1179
1182
  console.error(pc5__default.default.red("Failed to logout"), error);
1180
1183
  }
1181
1184
  }
1182
1185
  function getTokens() {
1183
- if (!fs4__default.default.existsSync(CREDENTIALS_PATH)) {
1186
+ if (!fs6__default.default.existsSync(CREDENTIALS_PATH)) {
1184
1187
  return null;
1185
1188
  }
1186
- const raw = fs4__default.default.readFileSync(CREDENTIALS_PATH, "utf8");
1189
+ const raw = fs6__default.default.readFileSync(CREDENTIALS_PATH, "utf8");
1187
1190
  const data = JSON.parse(raw);
1188
1191
  return data;
1189
1192
  }
@@ -1293,10 +1296,10 @@ async function login() {
1293
1296
  }
1294
1297
  var getUserId = () => {
1295
1298
  try {
1296
- if (!fs4__default.default.existsSync(CREDENTIALS_PATH)) {
1299
+ if (!fs6__default.default.existsSync(CREDENTIALS_PATH)) {
1297
1300
  return;
1298
1301
  }
1299
- const raw = fs4__default.default.readFileSync(CREDENTIALS_PATH, "utf8");
1302
+ const raw = fs6__default.default.readFileSync(CREDENTIALS_PATH, "utf8");
1300
1303
  const data = JSON.parse(raw);
1301
1304
  return {
1302
1305
  userId: data.user.id
@@ -1443,7 +1446,7 @@ var runTerminalCommand = async (input, projectCwd) => {
1443
1446
  };
1444
1447
  var ignoreFiles = ["node_modules", ".git", ".next", ".env", ".env.local", ".env.development.local", ".env.test.local", ".env.production.local"];
1445
1448
  var getContext = (dir, base = dir, allFiles = []) => {
1446
- const filePath = fs4.readdirSync(dir, { withFileTypes: true });
1449
+ const filePath = fs6.readdirSync(dir, { withFileTypes: true });
1447
1450
  for (const file of filePath) {
1448
1451
  if (ignoreFiles.includes(file.name)) continue;
1449
1452
  const fullPath = path10__default.default.join(dir, file.name);
@@ -1475,16 +1478,16 @@ function getWorkspaceStoragePath(ide) {
1475
1478
  function scanWorkspaceStorage(ide) {
1476
1479
  const projects = [];
1477
1480
  const storagePath = getWorkspaceStoragePath();
1478
- if (!fs4__default.default.existsSync(storagePath)) {
1481
+ if (!fs6__default.default.existsSync(storagePath)) {
1479
1482
  return projects;
1480
1483
  }
1481
1484
  try {
1482
- const workspaces = fs4__default.default.readdirSync(storagePath);
1485
+ const workspaces = fs6__default.default.readdirSync(storagePath);
1483
1486
  for (const workspace of workspaces) {
1484
1487
  const workspaceJsonPath = path10__default.default.join(storagePath, workspace, "workspace.json");
1485
- if (fs4__default.default.existsSync(workspaceJsonPath)) {
1488
+ if (fs6__default.default.existsSync(workspaceJsonPath)) {
1486
1489
  try {
1487
- const content = fs4__default.default.readFileSync(workspaceJsonPath, "utf-8");
1490
+ const content = fs6__default.default.readFileSync(workspaceJsonPath, "utf-8");
1488
1491
  const data = JSON.parse(content);
1489
1492
  if (data.folder && typeof data.folder === "string") {
1490
1493
  let projectPath = data.folder;
@@ -1492,7 +1495,7 @@ function scanWorkspaceStorage(ide) {
1492
1495
  projectPath = projectPath.replace("file://", "");
1493
1496
  projectPath = decodeURIComponent(projectPath);
1494
1497
  }
1495
- if (fs4__default.default.existsSync(projectPath) && fs4__default.default.statSync(projectPath).isDirectory()) {
1498
+ if (fs6__default.default.existsSync(projectPath) && fs6__default.default.statSync(projectPath).isDirectory()) {
1496
1499
  projects.push({
1497
1500
  name: path10__default.default.basename(projectPath),
1498
1501
  path: projectPath,
@@ -1516,11 +1519,11 @@ var scanIdeProjects = async () => {
1516
1519
  const seenPaths = /* @__PURE__ */ new Set();
1517
1520
  const addProject = (projectPath, ide) => {
1518
1521
  try {
1519
- const resolvedPath = fs4__default.default.realpathSync(projectPath);
1520
- if (fs4__default.default.existsSync(resolvedPath) && fs4__default.default.statSync(resolvedPath).isDirectory() && !seenPaths.has(resolvedPath)) {
1522
+ const resolvedPath = fs6__default.default.realpathSync(projectPath);
1523
+ if (fs6__default.default.existsSync(resolvedPath) && fs6__default.default.statSync(resolvedPath).isDirectory() && !seenPaths.has(resolvedPath)) {
1521
1524
  const isIdeProjectsDir = Object.values(IDE_PROJECTS_PATHS).some((ideDir) => {
1522
1525
  try {
1523
- return fs4__default.default.realpathSync(ideDir) === resolvedPath;
1526
+ return fs6__default.default.realpathSync(ideDir) === resolvedPath;
1524
1527
  } catch {
1525
1528
  return false;
1526
1529
  }
@@ -1543,30 +1546,30 @@ var scanIdeProjects = async () => {
1543
1546
  }
1544
1547
  for (const [ide, dirPath] of Object.entries(IDE_PROJECTS_PATHS)) {
1545
1548
  if (ide === "cursor") continue;
1546
- if (fs4__default.default.existsSync(dirPath)) {
1547
- const projects = fs4__default.default.readdirSync(dirPath);
1549
+ if (fs6__default.default.existsSync(dirPath)) {
1550
+ const projects = fs6__default.default.readdirSync(dirPath);
1548
1551
  projects.forEach((project) => {
1549
1552
  const projectPath = path10__default.default.join(dirPath, project);
1550
1553
  try {
1551
- const stats = fs4__default.default.lstatSync(projectPath);
1554
+ const stats = fs6__default.default.lstatSync(projectPath);
1552
1555
  let actualPath = null;
1553
1556
  if (stats.isSymbolicLink()) {
1554
- actualPath = fs4__default.default.realpathSync(projectPath);
1557
+ actualPath = fs6__default.default.realpathSync(projectPath);
1555
1558
  } else if (stats.isFile()) {
1556
1559
  try {
1557
- let content = fs4__default.default.readFileSync(projectPath, "utf-8").trim();
1560
+ let content = fs6__default.default.readFileSync(projectPath, "utf-8").trim();
1558
1561
  if (content.startsWith("~/") || content === "~") {
1559
1562
  content = content.replace(/^~/, HOME);
1560
1563
  }
1561
1564
  const resolvedContent = path10__default.default.isAbsolute(content) ? content : path10__default.default.resolve(path10__default.default.dirname(projectPath), content);
1562
- if (fs4__default.default.existsSync(resolvedContent) && fs4__default.default.statSync(resolvedContent).isDirectory()) {
1563
- actualPath = fs4__default.default.realpathSync(resolvedContent);
1565
+ if (fs6__default.default.existsSync(resolvedContent) && fs6__default.default.statSync(resolvedContent).isDirectory()) {
1566
+ actualPath = fs6__default.default.realpathSync(resolvedContent);
1564
1567
  }
1565
1568
  } catch {
1566
1569
  return;
1567
1570
  }
1568
1571
  } else if (stats.isDirectory()) {
1569
- actualPath = fs4__default.default.realpathSync(projectPath);
1572
+ actualPath = fs6__default.default.realpathSync(projectPath);
1570
1573
  }
1571
1574
  if (actualPath) {
1572
1575
  addProject(actualPath, ide);
@@ -2205,20 +2208,20 @@ function getCodeServerBin() {
2205
2208
  }
2206
2209
  function isCodeServerInstalled() {
2207
2210
  const binPath = getCodeServerBin();
2208
- return fs4__default.default.existsSync(binPath);
2211
+ return fs6__default.default.existsSync(binPath);
2209
2212
  }
2210
2213
  async function installCodeServer() {
2211
2214
  const { ext } = getPlatformInfo();
2212
2215
  const downloadUrl = getDownloadUrl();
2213
2216
  const tarballPath = path10__default.default.join(AMA_DIR, `code-server.${ext}`);
2214
- if (!fs4__default.default.existsSync(AMA_DIR)) {
2215
- fs4__default.default.mkdirSync(AMA_DIR, { recursive: true });
2217
+ if (!fs6__default.default.existsSync(AMA_DIR)) {
2218
+ fs6__default.default.mkdirSync(AMA_DIR, { recursive: true });
2216
2219
  }
2217
- if (!fs4__default.default.existsSync(CODE_DIR)) {
2218
- fs4__default.default.mkdirSync(CODE_DIR, { recursive: true });
2220
+ if (!fs6__default.default.existsSync(CODE_DIR)) {
2221
+ fs6__default.default.mkdirSync(CODE_DIR, { recursive: true });
2219
2222
  }
2220
- if (!fs4__default.default.existsSync(STORAGE_DIR)) {
2221
- fs4__default.default.mkdirSync(STORAGE_DIR, { recursive: true });
2223
+ if (!fs6__default.default.existsSync(STORAGE_DIR)) {
2224
+ fs6__default.default.mkdirSync(STORAGE_DIR, { recursive: true });
2222
2225
  }
2223
2226
  console.log(pc5__default.default.cyan(`Downloading code-server v${CODE_SERVER_VERSION}...`));
2224
2227
  console.log(pc5__default.default.gray(downloadUrl));
@@ -2227,13 +2230,13 @@ async function installCodeServer() {
2227
2230
  throw new Error(`Failed to download code-server: ${response.statusText}`);
2228
2231
  }
2229
2232
  const buffer = await response.arrayBuffer();
2230
- await fs4__default.default.promises.writeFile(tarballPath, Buffer.from(buffer));
2233
+ await fs6__default.default.promises.writeFile(tarballPath, Buffer.from(buffer));
2231
2234
  console.log(pc5__default.default.cyan("Extracting code-server..."));
2232
2235
  await execAsync3(`tar -xzf ${tarballPath} -C ${CODE_DIR}`);
2233
- await fs4__default.default.promises.unlink(tarballPath);
2236
+ await fs6__default.default.promises.unlink(tarballPath);
2234
2237
  const binPath = getCodeServerBin();
2235
- if (fs4__default.default.existsSync(binPath)) {
2236
- await fs4__default.default.promises.chmod(binPath, 493);
2238
+ if (fs6__default.default.existsSync(binPath)) {
2239
+ await fs6__default.default.promises.chmod(binPath, 493);
2237
2240
  }
2238
2241
  console.log(pc5__default.default.green("\u2713 code-server installed successfully"));
2239
2242
  }
@@ -2255,26 +2258,77 @@ async function killExistingCodeServer() {
2255
2258
  } catch {
2256
2259
  }
2257
2260
  }
2261
+ async function setupDefaultSettings() {
2262
+ const userDir = path10__default.default.join(STORAGE_DIR, "User");
2263
+ const settingsPath = path10__default.default.join(userDir, "settings.json");
2264
+ if (!fs6__default.default.existsSync(userDir)) {
2265
+ fs6__default.default.mkdirSync(userDir, { recursive: true });
2266
+ }
2267
+ const defaultSettings = {
2268
+ // Disable signature verification for Open VSX extensions
2269
+ "extensions.verifySignature": false,
2270
+ // Theme settings
2271
+ "workbench.colorTheme": "Min Dark",
2272
+ "workbench.startupEditor": "none",
2273
+ // Editor settings
2274
+ "editor.fontSize": 14,
2275
+ "editor.fontFamily": "'JetBrains Mono', 'Fira Code', Menlo, Monaco, 'Courier New', monospace",
2276
+ "editor.minimap.enabled": false,
2277
+ "editor.wordWrap": "on",
2278
+ // UI settings
2279
+ "window.menuBarVisibility": "compact",
2280
+ "workbench.activityBar.location": "top"
2281
+ };
2282
+ let existingSettings = {};
2283
+ if (fs6__default.default.existsSync(settingsPath)) {
2284
+ try {
2285
+ const content = await fs6__default.default.promises.readFile(settingsPath, "utf-8");
2286
+ existingSettings = JSON.parse(content);
2287
+ } catch {
2288
+ }
2289
+ }
2290
+ const mergedSettings = { ...defaultSettings, ...existingSettings };
2291
+ mergedSettings["workbench.colorTheme"] = "Min Dark";
2292
+ mergedSettings["extensions.verifySignature"] = false;
2293
+ await fs6__default.default.promises.writeFile(settingsPath, JSON.stringify(mergedSettings, null, 2));
2294
+ console.log(pc5__default.default.green("ama code-server settings configured"));
2295
+ }
2296
+ async function installExtensions() {
2297
+ const binPath = getCodeServerBin();
2298
+ const extensions = [
2299
+ "castrogusttavo.min-theme"
2300
+ ];
2301
+ for (const ext of extensions) {
2302
+ try {
2303
+ console.log(pc5__default.default.cyan(`ama installing extension: ${ext}...`));
2304
+ await execAsync3(`"${binPath}" --user-data-dir "${STORAGE_DIR}" --install-extension ${ext}`);
2305
+ console.log(pc5__default.default.green(`ama extension ${ext} installed`));
2306
+ } catch (error) {
2307
+ console.log(pc5__default.default.yellow(`ama failed to install extension ${ext}`), error);
2308
+ }
2309
+ }
2310
+ }
2258
2311
  async function startCodeServer(cwd) {
2259
2312
  const binPath = getCodeServerBin();
2260
2313
  const workDir = cwd || process.cwd();
2261
- if (!fs4__default.default.existsSync(binPath)) {
2262
- throw new Error("code-server is not installed. Run installCodeServer() first.");
2314
+ if (!fs6__default.default.existsSync(binPath)) {
2315
+ throw new Error("ama code-server is not installed. Run installCodeServer() first.");
2263
2316
  }
2264
2317
  await killExistingCodeServer();
2318
+ await setupDefaultSettings();
2319
+ await installExtensions();
2265
2320
  const workspaceStoragePath = path10__default.default.join(STORAGE_DIR, "User", "workspaceStorage");
2266
- path10__default.default.join(STORAGE_DIR, "User", "globalStorage");
2267
2321
  try {
2268
- if (fs4__default.default.existsSync(workspaceStoragePath)) {
2269
- await fs4__default.default.promises.rm(workspaceStoragePath, { recursive: true, force: true });
2322
+ if (fs6__default.default.existsSync(workspaceStoragePath)) {
2323
+ await fs6__default.default.promises.rm(workspaceStoragePath, { recursive: true, force: true });
2270
2324
  }
2271
2325
  const stateDbPath = path10__default.default.join(STORAGE_DIR, "User", "globalStorage", "state.vscdb");
2272
- if (fs4__default.default.existsSync(stateDbPath)) {
2273
- await fs4__default.default.promises.unlink(stateDbPath);
2326
+ if (fs6__default.default.existsSync(stateDbPath)) {
2327
+ await fs6__default.default.promises.unlink(stateDbPath);
2274
2328
  }
2275
2329
  } catch {
2276
2330
  }
2277
- console.log(pc5__default.default.cyan(`Starting code-server in ${workDir}...`));
2331
+ console.log(pc5__default.default.cyan(`ama starting code-server`));
2278
2332
  const codeServer = child_process.spawn(
2279
2333
  binPath,
2280
2334
  [
@@ -2293,7 +2347,7 @@ async function startCodeServer(cwd) {
2293
2347
  stdio: ["ignore", "pipe", "pipe"]
2294
2348
  }
2295
2349
  );
2296
- console.log(pc5__default.default.green(`\u2713 code-server running at http://localhost:8081/?folder=${encodeURIComponent(workDir)}`));
2350
+ console.log(pc5__default.default.green(`ama code-server running at http://localhost:8081/?folder=${encodeURIComponent(workDir)}`));
2297
2351
  return codeServer;
2298
2352
  }
2299
2353
  var __filename$1 = url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli.cjs', document.baseURI).href)));
@@ -2301,11 +2355,11 @@ var __dirname$1 = path10.dirname(__filename$1);
2301
2355
  var DAEMON_PID_FILE = path10__default.default.join(AMA_DIR, "daemon.pid");
2302
2356
  var DAEMON_LOG_FILE = path10__default.default.join(AMA_DIR, "daemon.log");
2303
2357
  function isDaemonRunning() {
2304
- if (!fs4__default.default.existsSync(DAEMON_PID_FILE)) {
2358
+ if (!fs6__default.default.existsSync(DAEMON_PID_FILE)) {
2305
2359
  return false;
2306
2360
  }
2307
2361
  try {
2308
- const pid = Number(fs4__default.default.readFileSync(DAEMON_PID_FILE, "utf8"));
2362
+ const pid = Number(fs6__default.default.readFileSync(DAEMON_PID_FILE, "utf8"));
2309
2363
  process.kill(pid, 0);
2310
2364
  return true;
2311
2365
  } catch {
@@ -2313,30 +2367,30 @@ function isDaemonRunning() {
2313
2367
  }
2314
2368
  }
2315
2369
  function stopDaemon() {
2316
- if (!fs4__default.default.existsSync(DAEMON_PID_FILE)) {
2370
+ if (!fs6__default.default.existsSync(DAEMON_PID_FILE)) {
2317
2371
  return false;
2318
2372
  }
2319
2373
  try {
2320
- const pid = Number(fs4__default.default.readFileSync(DAEMON_PID_FILE, "utf8"));
2374
+ const pid = Number(fs6__default.default.readFileSync(DAEMON_PID_FILE, "utf8"));
2321
2375
  process.kill(pid, "SIGTERM");
2322
- fs4__default.default.unlinkSync(DAEMON_PID_FILE);
2376
+ fs6__default.default.unlinkSync(DAEMON_PID_FILE);
2323
2377
  return true;
2324
2378
  } catch (error) {
2325
2379
  return false;
2326
2380
  }
2327
2381
  }
2328
2382
  function startDaemon() {
2329
- if (!fs4__default.default.existsSync(AMA_DIR)) {
2330
- fs4__default.default.mkdirSync(AMA_DIR, { recursive: true });
2383
+ if (!fs6__default.default.existsSync(AMA_DIR)) {
2384
+ fs6__default.default.mkdirSync(AMA_DIR, { recursive: true });
2331
2385
  }
2332
2386
  if (isDaemonRunning()) {
2333
2387
  stopDaemon();
2334
2388
  }
2335
2389
  const daemonScript = path10__default.default.join(__dirname$1, "lib", "daemon-entry.js");
2336
- if (!fs4__default.default.existsSync(daemonScript)) {
2390
+ if (!fs6__default.default.existsSync(daemonScript)) {
2337
2391
  throw new Error(`Daemon entry script not found at: ${daemonScript}. Please rebuild the project.`);
2338
2392
  }
2339
- const logFd = fs4__default.default.openSync(DAEMON_LOG_FILE, "a");
2393
+ const logFd = fs6__default.default.openSync(DAEMON_LOG_FILE, "a");
2340
2394
  const daemon = child_process.spawn(process.execPath, [daemonScript], {
2341
2395
  detached: true,
2342
2396
  stdio: ["ignore", logFd, logFd],
@@ -2344,20 +2398,20 @@ function startDaemon() {
2344
2398
  cwd: process.cwd()
2345
2399
  });
2346
2400
  daemon.unref();
2347
- fs4__default.default.writeFileSync(DAEMON_PID_FILE, String(daemon.pid));
2348
- fs4__default.default.closeSync(logFd);
2401
+ fs6__default.default.writeFileSync(DAEMON_PID_FILE, String(daemon.pid));
2402
+ fs6__default.default.closeSync(logFd);
2349
2403
  }
2350
2404
  function getDaemonPid() {
2351
- if (!fs4__default.default.existsSync(DAEMON_PID_FILE)) {
2405
+ if (!fs6__default.default.existsSync(DAEMON_PID_FILE)) {
2352
2406
  return null;
2353
2407
  }
2354
2408
  try {
2355
- return Number(fs4__default.default.readFileSync(DAEMON_PID_FILE, "utf8"));
2409
+ return Number(fs6__default.default.readFileSync(DAEMON_PID_FILE, "utf8"));
2356
2410
  } catch {
2357
2411
  return null;
2358
2412
  }
2359
2413
  }
2360
- var VERSION = "0.0.8";
2414
+ var VERSION = "0.0.9";
2361
2415
  var PROJECT_DIR = process.cwd();
2362
2416
  function promptUser(question) {
2363
2417
  const rl = readline__default.default.createInterface({
@@ -2469,11 +2523,11 @@ if (args[0] === "project") {
2469
2523
  process.exit(1);
2470
2524
  }
2471
2525
  const resolvedPath = path10__default.default.resolve(projectPath);
2472
- if (!fs4__default.default.existsSync(resolvedPath)) {
2526
+ if (!fs6__default.default.existsSync(resolvedPath)) {
2473
2527
  console.error(pc5__default.default.red(`Path does not exist: ${resolvedPath}`));
2474
2528
  process.exit(1);
2475
2529
  }
2476
- if (!fs4__default.default.statSync(resolvedPath).isDirectory()) {
2530
+ if (!fs6__default.default.statSync(resolvedPath).isDirectory()) {
2477
2531
  console.error(pc5__default.default.red(`Path is not a directory: ${resolvedPath}`));
2478
2532
  process.exit(1);
2479
2533
  }