@todoforai/cli 0.1.29 → 0.1.30

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.
@@ -44221,7 +44221,7 @@ import { parseArgs } from "util";
44221
44221
  // package.json
44222
44222
  var package_default = {
44223
44223
  name: "@todoforai/cli",
44224
- version: "0.1.29",
44224
+ version: "0.1.30",
44225
44225
  type: "module",
44226
44226
  bin: {
44227
44227
  "todoforai-cli": "bin/todoforai-cli.js",
@@ -44239,8 +44239,6 @@ var package_default = {
44239
44239
  dev: "bun run src/index.ts"
44240
44240
  },
44241
44241
  dependencies: {
44242
- "@shared/api": "file:../packages/shared-api",
44243
- "@shared/credentials": "file:../packages/shared-credentials",
44244
44242
  "@todoforai/update-notifier": "^0.1.0",
44245
44243
  "cli-highlight": "^2.1.11",
44246
44244
  "diff-match-patch": "^1.0.5",
@@ -44256,7 +44254,7 @@ var package_default = {
44256
44254
  var DEFAULT_API_URL = "https://api.todofor.ai";
44257
44255
  var VERSION = package_default.version;
44258
44256
  function getEnv(name) {
44259
- return (process.env[`TODOFORAI_${name}`] || process.env[`TODO4AI_${name}`] || "").trim();
44257
+ return process.env[`TODOFORAI_${name}`] || process.env[`TODO4AI_${name}`] || "";
44260
44258
  }
44261
44259
  function printUsage() {
44262
44260
  process.stderr.write(`
@@ -44919,29 +44917,20 @@ async function autoCreateAgent(api, resolvedPath) {
44919
44917
  }
44920
44918
 
44921
44919
  // src/config.ts
44922
- import { existsSync, mkdirSync as mkdirSync2, readFileSync as readFileSync2, renameSync, writeFileSync as writeFileSync2 } from "fs";
44920
+ import { existsSync, mkdirSync as mkdirSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "fs";
44923
44921
  import { dirname as dirname2, join as join2, resolve as resolve2 } from "path";
44924
44922
  import { homedir as homedir2, platform as platform2 } from "os";
44925
- function getConfigBase() {
44926
- const sys = platform2();
44927
- if (sys === "win32")
44928
- return process.env.APPDATA || join2(homedir2(), "AppData", "Roaming");
44929
- if (sys === "darwin")
44930
- return join2(homedir2(), "Library", "Application Support");
44931
- return process.env.XDG_CONFIG_HOME || join2(homedir2(), ".config");
44932
- }
44933
44923
  function getConfigDir() {
44934
- const base = getConfigBase();
44935
- const dir = join2(base, "todoforai-cli");
44936
- const legacy = join2(base, "todoai-cli");
44937
- if (!existsSync(dir) && existsSync(legacy)) {
44938
- try {
44939
- renameSync(legacy, dir);
44940
- } catch {
44941
- return legacy;
44942
- }
44924
+ const sys = platform2();
44925
+ if (sys === "win32") {
44926
+ const base = process.env.APPDATA || join2(homedir2(), "AppData", "Roaming");
44927
+ return join2(base, "todoai-cli");
44943
44928
  }
44944
- return dir;
44929
+ if (sys === "darwin") {
44930
+ return join2(homedir2(), "Library", "Application Support", "todoai-cli");
44931
+ }
44932
+ const xdg = process.env.XDG_CONFIG_HOME || join2(homedir2(), ".config");
44933
+ return join2(xdg, "todoai-cli");
44945
44934
  }
44946
44935
  function defaultScope() {
44947
44936
  return {
@@ -45584,16 +45573,7 @@ function selectProject(projects, defaultId, setDefault) {
45584
45573
  return Promise.resolve({ id: defaultId, name });
45585
45574
  }
45586
45575
  }
45587
- const accountDefault = projects.find((p) => p?.project?.isDefault) || projects[0];
45588
- if (!process.stdin.isTTY) {
45589
- const id = getItemId(accountDefault);
45590
- const name = getDisplayName(accountDefault);
45591
- process.stderr.write(`Using account default project: ${name}
45592
- `);
45593
- return Promise.resolve({ id, name });
45594
- }
45595
45576
  return (async () => {
45596
- const defIdx = projects.indexOf(accountDefault);
45597
45577
  process.stderr.write(`
45598
45578
  Please choose a project:
45599
45579
 
@@ -45601,7 +45581,7 @@ Please choose a project:
45601
45581
  for (let i = 0;i < projects.length; i++) {
45602
45582
  const name = getDisplayName(projects[i]);
45603
45583
  const id = getItemId(projects[i]);
45604
- process.stderr.write(` [${i + 1}] ${name}${i === defIdx ? " (default)" : ""}
45584
+ process.stderr.write(` [${i + 1}] ${name}
45605
45585
  `);
45606
45586
  if (id && id !== name)
45607
45587
  process.stderr.write(` ${id}
@@ -45610,8 +45590,8 @@ Please choose a project:
45610
45590
  process.stderr.write(`
45611
45591
  `);
45612
45592
  while (true) {
45613
- const choice = await terminalLine(`Please enter your numeric choice [${defIdx + 1}]: `);
45614
- const idx = choice === "" ? defIdx : parseInt(choice, 10) - 1;
45593
+ const choice = await terminalLine("Please enter your numeric choice: ");
45594
+ const idx = parseInt(choice, 10) - 1;
45615
45595
  if (idx >= 0 && idx < projects.length) {
45616
45596
  const id = getItemId(projects[idx]);
45617
45597
  const name = getDisplayName(projects[idx]);
@@ -46944,7 +46924,7 @@ Cancelled by user (Ctrl+C)
46944
46924
  `);
46945
46925
  process.exit(2);
46946
46926
  }
46947
- let projectId2 = args.project || getEnv("PROJECT_ID") || cfgScope.data.default_project_id;
46927
+ let projectId2 = args.project || cfgScope.data.default_project_id;
46948
46928
  if (!projectId2) {
46949
46929
  const projects2 = await api.listProjects();
46950
46930
  projectId2 = projects2.find((p) => p.project?.isDefault)?.project?.id || projects2[0]?.project?.id;
@@ -46979,7 +46959,7 @@ Cancelled by user (Ctrl+C)
46979
46959
  return;
46980
46960
  }
46981
46961
  if (positionals[0] === "claim" && positionals[1] === "mint") {
46982
- let seedProjectId = args.seed || args.project || getEnv("PROJECT_ID") || cfgScope.data.default_project_id;
46962
+ let seedProjectId = args.seed || args.project || cfgScope.data.default_project_id;
46983
46963
  if (!seedProjectId) {
46984
46964
  const projects2 = await api.listProjects();
46985
46965
  seedProjectId = projects2.find((p) => p.project?.isDefault)?.project?.id || projects2[0]?.project?.id;
@@ -47021,7 +47001,7 @@ Cancelled by user (Ctrl+C)
47021
47001
  return;
47022
47002
  }
47023
47003
  if (positionals[0] === "next") {
47024
- let projectId2 = args.project || getEnv("PROJECT_ID") || cfgScope.data.default_project_id;
47004
+ let projectId2 = args.project || cfgScope.data.default_project_id;
47025
47005
  if (!projectId2) {
47026
47006
  const projects2 = await api.listProjects();
47027
47007
  projectId2 = projects2.find((p) => p.project?.isDefault)?.project?.id || projects2[0]?.project?.id;
@@ -47071,7 +47051,7 @@ Cancelled by user (Ctrl+C)
47071
47051
  return;
47072
47052
  }
47073
47053
  if (positionals[0] === "list" || positionals[0] === "ls") {
47074
- let defaultProjectId = args.project || getEnv("PROJECT_ID") || cfgScope.data.default_project_id;
47054
+ let defaultProjectId = args.project || cfgScope.data.default_project_id;
47075
47055
  if (!defaultProjectId) {
47076
47056
  const projects2 = await api.listProjects();
47077
47057
  defaultProjectId = projects2.find((p) => p.project?.isDefault)?.project?.id || projects2[0]?.project?.id;
@@ -47126,7 +47106,7 @@ Cancelled by user (Ctrl+C)
47126
47106
  process.stderr.write(`${DIM}${spec.description}${RESET}
47127
47107
  `);
47128
47108
  const projects2 = await api.listProjects();
47129
- let projectId2 = args.project || getEnv("PROJECT_ID");
47109
+ let projectId2 = args.project;
47130
47110
  if (!projectId2) {
47131
47111
  const cached = cfgScope.data.default_project_id;
47132
47112
  projectId2 = (cached && projects2.some((p) => getItemId(p) === cached) ? cached : null) || projects2.find((p) => p.project?.isDefault)?.project?.id || projects2[0]?.project?.id;
@@ -47286,8 +47266,7 @@ Resumed: ${CYAN}${getFrontendUrl(apiUrl, todoId)}${RESET}
47286
47266
  } else {
47287
47267
  content = await readStdin();
47288
47268
  }
47289
- const envProjectId = getEnv("PROJECT_ID");
47290
- const hasProject = args.project || envProjectId || cfgScope.data.default_project_id;
47269
+ const hasProject = args.project || cfgScope.data.default_project_id;
47291
47270
  const storedAgent = cfgScope.data.default_agent_settings;
47292
47271
  const hasAgent = preMatchedAgent || storedAgent?.id && !args.agent;
47293
47272
  let projects = null;
@@ -47298,8 +47277,8 @@ Resumed: ${CYAN}${getFrontendUrl(apiUrl, todoId)}${RESET}
47298
47277
  }
47299
47278
  let projectId;
47300
47279
  let projectName;
47301
- if (args.project || envProjectId) {
47302
- projectId = args.project || envProjectId;
47280
+ if (args.project) {
47281
+ projectId = args.project;
47303
47282
  projectName = projectId;
47304
47283
  if (projects) {
47305
47284
  const match = projects.find((p) => getItemId(p) === projectId);
@@ -47341,7 +47320,7 @@ Resumed: ${CYAN}${getFrontendUrl(apiUrl, todoId)}${RESET}
47341
47320
  try {
47342
47321
  todo = await api.addMessage(projectId, content, agent, undefined, undefined, undefined, groupTag || undefined, groupName);
47343
47322
  } catch (e) {
47344
- if (!args.project && !envProjectId && cfgScope.data.default_project_id === projectId && /failed: 403/.test(e.message || "")) {
47323
+ if (!args.project && cfgScope.data.default_project_id === projectId && /failed: 403/.test(e.message || "")) {
47345
47324
  cfgScope.clearDefaultProject();
47346
47325
  process.stderr.write(`${RED}Not authorized for cached default project ${projectName} (${projectId}) \u2014 cleared it. Re-run to pick a project.${RESET}
47347
47326
  `);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@todoforai/cli",
3
- "version": "0.1.29",
3
+ "version": "0.1.30",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "todoforai-cli": "bin/todoforai-cli.js",
@@ -18,8 +18,6 @@
18
18
  "dev": "bun run src/index.ts"
19
19
  },
20
20
  "dependencies": {
21
- "@shared/api": "file:../packages/shared-api",
22
- "@shared/credentials": "file:../packages/shared-credentials",
23
21
  "@todoforai/update-notifier": "^0.1.0",
24
22
  "cli-highlight": "^2.1.11",
25
23
  "diff-match-patch": "^1.0.5",