@locusai/cli 0.4.1 → 0.4.3

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.
Files changed (2) hide show
  1. package/bin/locus.js +36 -10
  2. package/package.json +2 -2
package/bin/locus.js CHANGED
@@ -1,5 +1,4 @@
1
- #!/usr/bin/env bun
2
- // @bun
1
+ #!/usr/bin/env node
3
2
  import { createRequire } from "node:module";
4
3
  var __create = Object.create;
5
4
  var __getProtoOf = Object.getPrototypeOf;
@@ -17646,13 +17645,21 @@ class CodebaseIndexer {
17646
17645
  onProgress("Generating file tree...");
17647
17646
  const files = await globby(["**/*"], {
17648
17647
  cwd: this.projectPath,
17648
+ gitignore: true,
17649
17649
  ignore: [
17650
17650
  "**/node_modules/**",
17651
17651
  "**/dist/**",
17652
17652
  "**/build/**",
17653
+ "**/target/**",
17654
+ "**/bin/**",
17655
+ "**/obj/**",
17653
17656
  "**/.next/**",
17657
+ "**/.svelte-kit/**",
17658
+ "**/.nuxt/**",
17659
+ "**/.cache/**",
17654
17660
  "**/out/**",
17655
17661
  "**/__tests__/**",
17662
+ "**/coverage/**",
17656
17663
  "**/*.test.*",
17657
17664
  "**/*.spec.*",
17658
17665
  "**/*.d.ts",
@@ -17660,9 +17667,20 @@ class CodebaseIndexer {
17660
17667
  "**/.locus/*.json",
17661
17668
  "**/.locus/*.md",
17662
17669
  "**/.locus/!(artifacts)/**",
17663
- "bun.lock",
17664
- "package-lock.json",
17665
- "yarn.lock"
17670
+ "**/.git/**",
17671
+ "**/.svn/**",
17672
+ "**/.hg/**",
17673
+ "**/.vscode/**",
17674
+ "**/.idea/**",
17675
+ "**/.DS_Store",
17676
+ "**/bun.lock",
17677
+ "**/package-lock.json",
17678
+ "**/yarn.lock",
17679
+ "**/pnpm-lock.yaml",
17680
+ "**/Cargo.lock",
17681
+ "**/go.sum",
17682
+ "**/poetry.lock",
17683
+ "**/*.{png,jpg,jpeg,gif,svg,ico,mp4,webm,wav,mp3,woff,woff2,eot,ttf,otf,pdf,zip,tar.gz,rar}"
17666
17684
  ]
17667
17685
  });
17668
17686
  const treeString = files.join(`
@@ -21913,7 +21931,9 @@ class ClaudeRunner {
21913
21931
  ];
21914
21932
  const claude = spawn("claude", args, {
21915
21933
  cwd: this.projectPath,
21916
- stdio: ["pipe", "pipe", "pipe"]
21934
+ stdio: ["pipe", "pipe", "pipe"],
21935
+ env: process.env,
21936
+ shell: true
21917
21937
  });
21918
21938
  let output = "";
21919
21939
  let errorOutput = "";
@@ -21925,13 +21945,13 @@ class ClaudeRunner {
21925
21945
  errorOutput += data.toString();
21926
21946
  process.stderr.write(data.toString());
21927
21947
  });
21928
- claude.on("error", (err) => reject(new Error(`Failed to start Claude CLI: ${err.message}`)));
21948
+ claude.on("error", (err) => reject(new Error(`Failed to start Claude CLI (shell: true): ${err.message}. Please ensure the 'claude' command is available in your PATH.`)));
21929
21949
  claude.on("close", (code) => {
21930
21950
  if (code === 0)
21931
21951
  resolve(output);
21932
21952
  else {
21933
21953
  const detail = errorOutput.trim();
21934
- const message = detail ? `Claude CLI error: ${detail}` : `Claude CLI exited with code ${code}. Please ensure the Claude CLI is installed and you are logged in (run 'claude' manually to check).`;
21954
+ const message = detail ? `Claude CLI error (exit code ${code}): ${detail}` : `Claude CLI exited with code ${code}. Please ensure the Claude CLI is installed and you are logged in (run 'claude' manually to check).`;
21935
21955
  reject(new Error(message));
21936
21956
  }
21937
21957
  });
@@ -30152,10 +30172,16 @@ var TasksResponseSchema = exports_external.object({
30152
30172
  tasks: exports_external.array(TaskSchema)
30153
30173
  });
30154
30174
  // ../shared/src/models/workspace.ts
30175
+ var ChecklistItemSchema = exports_external.object({
30176
+ id: exports_external.string(),
30177
+ text: exports_external.string(),
30178
+ done: exports_external.boolean()
30179
+ });
30155
30180
  var WorkspaceSchema = BaseEntitySchema.extend({
30156
30181
  orgId: exports_external.string().uuid(),
30157
30182
  name: exports_external.string().min(1, "Name is required").max(100),
30158
- slug: exports_external.string().min(1, "Slug is required").regex(/^[a-z0-9-]+$/, "Slug must be lowercase alphanumeric with hyphens")
30183
+ slug: exports_external.string().min(1, "Slug is required").regex(/^[a-z0-9-]+$/, "Slug must be lowercase alphanumeric with hyphens"),
30184
+ defaultChecklist: exports_external.array(ChecklistItemSchema).nullable().optional()
30159
30185
  });
30160
30186
  var CreateWorkspaceSchema = exports_external.object({
30161
30187
  name: exports_external.string().min(1, "Name is required").max(100),
@@ -30765,7 +30791,7 @@ ${c.success("✅ Orchestrator finished")}`);
30765
30791
  if (this.resolvedSprintId) {
30766
30792
  workerArgs.push("--sprint-id", this.resolvedSprintId);
30767
30793
  }
30768
- const agentProcess = spawn2("bun", ["run", workerPath, ...workerArgs]);
30794
+ const agentProcess = spawn2(process.execPath, [workerPath, ...workerArgs]);
30769
30795
  agentState.process = agentProcess;
30770
30796
  agentProcess.on("message", (msg) => {
30771
30797
  if (msg.type === "stats") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@locusai/cli",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Local-first AI development platform & engineering workspace",
5
5
  "type": "module",
6
6
  "bin": {
@@ -31,7 +31,7 @@
31
31
  "author": "",
32
32
  "license": "MIT",
33
33
  "dependencies": {
34
- "@locusai/sdk": "^0.4.1"
34
+ "@locusai/sdk": "^0.4.3"
35
35
  },
36
36
  "devDependencies": {}
37
37
  }