@locusai/sdk 0.11.7 → 0.12.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.
@@ -829,9 +829,7 @@ class ClaudeRunner {
829
829
  "stream-json",
830
830
  "--include-partial-messages",
831
831
  "--model",
832
- this.model,
833
- "--settings",
834
- SANDBOX_SETTINGS
832
+ this.model
835
833
  ];
836
834
  const env = getAugmentedEnv({
837
835
  FORCE_COLOR: "1",
@@ -1080,9 +1078,7 @@ class ClaudeRunner {
1080
1078
  "stream-json",
1081
1079
  "--include-partial-messages",
1082
1080
  "--model",
1083
- this.model,
1084
- "--settings",
1085
- SANDBOX_SETTINGS
1081
+ this.model
1086
1082
  ];
1087
1083
  const env = getAugmentedEnv({
1088
1084
  FORCE_COLOR: "1",
@@ -1184,23 +1180,13 @@ ${c.primary("[Claude]")} ${c.bold(`Running ${content_block.name}...`)}
1184
1180
  return new Error(message);
1185
1181
  }
1186
1182
  }
1187
- var import_node_child_process, import_node_path3, SANDBOX_SETTINGS, DEFAULT_TIMEOUT_MS;
1183
+ var import_node_child_process, import_node_path3, DEFAULT_TIMEOUT_MS;
1188
1184
  var init_claude_runner = __esm(() => {
1189
1185
  init_config();
1190
1186
  init_colors();
1191
1187
  init_resolve_bin();
1192
1188
  import_node_child_process = require("node:child_process");
1193
1189
  import_node_path3 = require("node:path");
1194
- SANDBOX_SETTINGS = JSON.stringify({
1195
- permissions: {
1196
- deny: ["Read(../**)", "Edit(../**)"]
1197
- },
1198
- sandbox: {
1199
- enabled: true,
1200
- autoAllow: true,
1201
- allowUnsandboxedCommands: false
1202
- }
1203
- });
1204
1190
  DEFAULT_TIMEOUT_MS = 60 * 60 * 1000;
1205
1191
  });
1206
1192
 
@@ -1694,14 +1680,10 @@ ${line}`;
1694
1680
  }
1695
1681
  getFullContext() {
1696
1682
  const context = this.readContext();
1697
- const progress = this.readProgress();
1698
1683
  const parts = [];
1699
1684
  if (context.trim()) {
1700
1685
  parts.push(context.trim());
1701
1686
  }
1702
- if (progress.trim()) {
1703
- parts.push(progress.trim());
1704
- }
1705
1687
  return parts.join(`
1706
1688
 
1707
1689
  ---
@@ -2093,13 +2075,6 @@ ${serverContext.context}
2093
2075
  prompt += `If you need more information about the project strategies, plans, or architecture, please read files in these directories.
2094
2076
 
2095
2077
  `;
2096
- const indexPath = getLocusPath(this.projectPath, "indexFile");
2097
- if (import_node_fs4.existsSync(indexPath)) {
2098
- prompt += `## Codebase Overview
2099
- There is an index file in the .locus/codebase-index.json and if you need you can check it.
2100
-
2101
- `;
2102
- }
2103
2078
  if (task.docs && task.docs.length > 0) {
2104
2079
  prompt += `## Attached Documents (Summarized)
2105
2080
  `;
@@ -2129,19 +2104,17 @@ ${preview}${isTruncated ? `
2129
2104
  `;
2130
2105
  }
2131
2106
  if (task.comments && task.comments.length > 0) {
2132
- const comments = task.comments.slice(0, 3);
2133
- prompt += `## Task History & Feedback
2134
- `;
2135
- prompt += `Review the following comments for context or rejection feedback:
2136
-
2107
+ const filteredComments = task.comments.filter((comment) => comment.author !== "system");
2108
+ const comments = filteredComments.slice(0, 3);
2109
+ prompt += `## Task Comments & Feedback
2137
2110
  `;
2138
2111
  for (const comment of comments) {
2139
2112
  const date = new Date(comment.createdAt).toLocaleString();
2140
- prompt += `### ${comment.author} (${date})
2141
- ${comment.text}
2142
-
2113
+ prompt += `- ${comment.author} (${date}): ${comment.text}
2143
2114
  `;
2144
2115
  }
2116
+ prompt += `
2117
+ `;
2145
2118
  }
2146
2119
  prompt += `## Instructions
2147
2120
  1. Complete this task.
@@ -2206,13 +2179,6 @@ ${fallback}
2206
2179
  prompt += `If you need more information about the project strategies, plans, or architecture, please read files in these directories.
2207
2180
 
2208
2181
  `;
2209
- const indexPath = getLocusPath(this.projectPath, "indexFile");
2210
- if (import_node_fs4.existsSync(indexPath)) {
2211
- prompt += `## Codebase Overview
2212
- There is an index file in the .locus/codebase-index.json and if you need you can check it.
2213
-
2214
- `;
2215
- }
2216
2182
  prompt += `## Instructions
2217
2183
  1. Execute the prompt based on the provided project context.
2218
2184
  2. **Paths**: Use relative paths from the project root at all times. Do NOT use absolute local paths (e.g., /Users/...).
@@ -2596,7 +2562,7 @@ class AgentWorker {
2596
2562
  assignedTo: null
2597
2563
  });
2598
2564
  await this.client.tasks.addComment(task.id, this.config.workspaceId, {
2599
- author: this.config.agentId,
2565
+ author: "system",
2600
2566
  text: `⚠️ Agent execution finished with no file changes, so no commit was created.
2601
2567
 
2602
2568
  ${result.summary}`
@@ -2611,7 +2577,7 @@ ${result.summary}`
2611
2577
 
2612
2578
  Branch: \`${result.branch}\`` : "";
2613
2579
  await this.client.tasks.addComment(task.id, this.config.workspaceId, {
2614
- author: this.config.agentId,
2580
+ author: "system",
2615
2581
  text: `✅ ${result.summary}${branchInfo}`
2616
2582
  });
2617
2583
  this.tasksCompleted++;
@@ -2626,7 +2592,7 @@ Branch: \`${result.branch}\`` : "";
2626
2592
  assignedTo: null
2627
2593
  });
2628
2594
  await this.client.tasks.addComment(task.id, this.config.workspaceId, {
2629
- author: this.config.agentId,
2595
+ author: "system",
2630
2596
  text: `❌ ${result.summary}`
2631
2597
  });
2632
2598
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/ai/claude-runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8C5C,qBAAa,YAAa,YAAW,QAAQ;IAUzC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;IAVd,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,aAAa,CAA6B;IAClD,SAAS,EAAE,MAAM,CAAC;gBAGhB,WAAW,EAAE,MAAM,EACX,KAAK,GAAE,MAAuC,EAC9C,GAAG,CAAC,EAAE,KAAK,YAAA,EACnB,SAAS,CAAC,EAAE,MAAM;IAMpB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAIhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAOP,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B1C,OAAO,CAAC,WAAW;IA0BZ,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAqL5E;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,kBAAkB;IAwE1B,OAAO,CAAC,UAAU;IA0FlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAO7B"}
1
+ {"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/ai/claude-runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAmC5C,qBAAa,YAAa,YAAW,QAAQ;IAUzC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;IAVd,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,aAAa,CAA6B;IAClD,SAAS,EAAE,MAAM,CAAC;gBAGhB,WAAW,EAAE,MAAM,EACX,KAAK,GAAE,MAAuC,EAC9C,GAAG,CAAC,EAAE,KAAK,YAAA,EACnB,SAAS,CAAC,EAAE,MAAM;IAMpB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAIhD;;OAEG;IACH,KAAK,IAAI,IAAI;IAOP,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B1C,OAAO,CAAC,WAAW;IA0BZ,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAmL5E;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,kBAAkB;IAwE1B,OAAO,CAAC,UAAU;IAwFlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../src/core/prompt-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGrD,qBAAa,aAAa;IACZ,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEjC,KAAK,CACT,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GACrC,OAAO,CAAC,MAAM,CAAC;IA+HZ,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4DxD,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,mBAAmB;IAuB3B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,IAAI;CAoBtD"}
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../src/core/prompt-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGrD,qBAAa,aAAa;IACZ,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAEjC,KAAK,CACT,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GACrC,OAAO,CAAC,MAAM,CAAC;IA4HZ,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDxD,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,mBAAmB;IAuB3B,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,IAAI;CAoBtD"}
@@ -829,9 +829,7 @@ class ClaudeRunner {
829
829
  "stream-json",
830
830
  "--include-partial-messages",
831
831
  "--model",
832
- this.model,
833
- "--settings",
834
- SANDBOX_SETTINGS
832
+ this.model
835
833
  ];
836
834
  const env = getAugmentedEnv({
837
835
  FORCE_COLOR: "1",
@@ -1080,9 +1078,7 @@ class ClaudeRunner {
1080
1078
  "stream-json",
1081
1079
  "--include-partial-messages",
1082
1080
  "--model",
1083
- this.model,
1084
- "--settings",
1085
- SANDBOX_SETTINGS
1081
+ this.model
1086
1082
  ];
1087
1083
  const env = getAugmentedEnv({
1088
1084
  FORCE_COLOR: "1",
@@ -1184,23 +1180,13 @@ ${c.primary("[Claude]")} ${c.bold(`Running ${content_block.name}...`)}
1184
1180
  return new Error(message);
1185
1181
  }
1186
1182
  }
1187
- var import_node_child_process, import_node_path3, SANDBOX_SETTINGS, DEFAULT_TIMEOUT_MS;
1183
+ var import_node_child_process, import_node_path3, DEFAULT_TIMEOUT_MS;
1188
1184
  var init_claude_runner = __esm(() => {
1189
1185
  init_config();
1190
1186
  init_colors();
1191
1187
  init_resolve_bin();
1192
1188
  import_node_child_process = require("node:child_process");
1193
1189
  import_node_path3 = require("node:path");
1194
- SANDBOX_SETTINGS = JSON.stringify({
1195
- permissions: {
1196
- deny: ["Read(../**)", "Edit(../**)"]
1197
- },
1198
- sandbox: {
1199
- enabled: true,
1200
- autoAllow: true,
1201
- allowUnsandboxedCommands: false
1202
- }
1203
- });
1204
1190
  DEFAULT_TIMEOUT_MS = 60 * 60 * 1000;
1205
1191
  });
1206
1192
 
@@ -1694,14 +1680,10 @@ ${line}`;
1694
1680
  }
1695
1681
  getFullContext() {
1696
1682
  const context = this.readContext();
1697
- const progress = this.readProgress();
1698
1683
  const parts = [];
1699
1684
  if (context.trim()) {
1700
1685
  parts.push(context.trim());
1701
1686
  }
1702
- if (progress.trim()) {
1703
- parts.push(progress.trim());
1704
- }
1705
1687
  return parts.join(`
1706
1688
 
1707
1689
  ---
@@ -2093,13 +2075,6 @@ ${serverContext.context}
2093
2075
  prompt += `If you need more information about the project strategies, plans, or architecture, please read files in these directories.
2094
2076
 
2095
2077
  `;
2096
- const indexPath = getLocusPath(this.projectPath, "indexFile");
2097
- if (import_node_fs4.existsSync(indexPath)) {
2098
- prompt += `## Codebase Overview
2099
- There is an index file in the .locus/codebase-index.json and if you need you can check it.
2100
-
2101
- `;
2102
- }
2103
2078
  if (task.docs && task.docs.length > 0) {
2104
2079
  prompt += `## Attached Documents (Summarized)
2105
2080
  `;
@@ -2129,19 +2104,17 @@ ${preview}${isTruncated ? `
2129
2104
  `;
2130
2105
  }
2131
2106
  if (task.comments && task.comments.length > 0) {
2132
- const comments = task.comments.slice(0, 3);
2133
- prompt += `## Task History & Feedback
2134
- `;
2135
- prompt += `Review the following comments for context or rejection feedback:
2136
-
2107
+ const filteredComments = task.comments.filter((comment) => comment.author !== "system");
2108
+ const comments = filteredComments.slice(0, 3);
2109
+ prompt += `## Task Comments & Feedback
2137
2110
  `;
2138
2111
  for (const comment of comments) {
2139
2112
  const date = new Date(comment.createdAt).toLocaleString();
2140
- prompt += `### ${comment.author} (${date})
2141
- ${comment.text}
2142
-
2113
+ prompt += `- ${comment.author} (${date}): ${comment.text}
2143
2114
  `;
2144
2115
  }
2116
+ prompt += `
2117
+ `;
2145
2118
  }
2146
2119
  prompt += `## Instructions
2147
2120
  1. Complete this task.
@@ -2206,13 +2179,6 @@ ${fallback}
2206
2179
  prompt += `If you need more information about the project strategies, plans, or architecture, please read files in these directories.
2207
2180
 
2208
2181
  `;
2209
- const indexPath = getLocusPath(this.projectPath, "indexFile");
2210
- if (import_node_fs4.existsSync(indexPath)) {
2211
- prompt += `## Codebase Overview
2212
- There is an index file in the .locus/codebase-index.json and if you need you can check it.
2213
-
2214
- `;
2215
- }
2216
2182
  prompt += `## Instructions
2217
2183
  1. Execute the prompt based on the provided project context.
2218
2184
  2. **Paths**: Use relative paths from the project root at all times. Do NOT use absolute local paths (e.g., /Users/...).
@@ -2596,7 +2562,7 @@ class AgentWorker {
2596
2562
  assignedTo: null
2597
2563
  });
2598
2564
  await this.client.tasks.addComment(task.id, this.config.workspaceId, {
2599
- author: this.config.agentId,
2565
+ author: "system",
2600
2566
  text: `⚠️ Agent execution finished with no file changes, so no commit was created.
2601
2567
 
2602
2568
  ${result.summary}`
@@ -2611,7 +2577,7 @@ ${result.summary}`
2611
2577
 
2612
2578
  Branch: \`${result.branch}\`` : "";
2613
2579
  await this.client.tasks.addComment(task.id, this.config.workspaceId, {
2614
- author: this.config.agentId,
2580
+ author: "system",
2615
2581
  text: `✅ ${result.summary}${branchInfo}`
2616
2582
  });
2617
2583
  this.tasksCompleted++;
@@ -2626,7 +2592,7 @@ Branch: \`${result.branch}\`` : "";
2626
2592
  assignedTo: null
2627
2593
  });
2628
2594
  await this.client.tasks.addComment(task.id, this.config.workspaceId, {
2629
- author: this.config.agentId,
2595
+ author: "system",
2630
2596
  text: `❌ ${result.summary}`
2631
2597
  });
2632
2598
  }
@@ -2963,9 +2929,6 @@ function extractJsonFromLLMOutput(raw) {
2963
2929
  if (codeBlockMatch) {
2964
2930
  return codeBlockMatch[1]?.trim() || "";
2965
2931
  }
2966
- if (trimmed.startsWith("{")) {
2967
- return trimmed;
2968
- }
2969
2932
  const startIdx = trimmed.indexOf("{");
2970
2933
  if (startIdx === -1) {
2971
2934
  return trimmed;
@@ -2979,19 +2942,19 @@ function extractJsonFromLLMOutput(raw) {
2979
2942
  escaped = false;
2980
2943
  continue;
2981
2944
  }
2982
- if (ch === "\\") {
2983
- escaped = true;
2945
+ if (inString) {
2946
+ if (ch === "\\") {
2947
+ escaped = true;
2948
+ } else if (ch === '"') {
2949
+ inString = false;
2950
+ }
2984
2951
  continue;
2985
2952
  }
2986
2953
  if (ch === '"') {
2987
- inString = !inString;
2988
- continue;
2989
- }
2990
- if (inString)
2991
- continue;
2992
- if (ch === "{")
2954
+ inString = true;
2955
+ } else if (ch === "{") {
2993
2956
  depth++;
2994
- else if (ch === "}") {
2957
+ } else if (ch === "}") {
2995
2958
  depth--;
2996
2959
  if (depth === 0) {
2997
2960
  return trimmed.slice(startIdx, i + 1);
@@ -4842,7 +4805,14 @@ function plannedTasksToCreatePayloads(plan, sprintId) {
4842
4805
  }
4843
4806
  function parseSprintPlanFromAI(raw, directive) {
4844
4807
  const jsonStr = extractJsonFromLLMOutput(raw);
4845
- let parsed = JSON.parse(jsonStr);
4808
+ let parsed;
4809
+ try {
4810
+ parsed = JSON.parse(jsonStr);
4811
+ } catch (err) {
4812
+ const preview = jsonStr.slice(0, 200);
4813
+ throw new Error(`Failed to parse sprint plan JSON: ${err instanceof Error ? err.message : String(err)}
4814
+ Extracted JSON preview: ${preview}`);
4815
+ }
4846
4816
  if (parsed.revisedPlan) {
4847
4817
  parsed = parsed.revisedPlan;
4848
4818
  }
@@ -5013,9 +4983,7 @@ class PlanManager {
5013
4983
  }
5014
4984
  }
5015
4985
  // src/planning/planning-meeting.ts
5016
- init_config();
5017
4986
  init_knowledge_base();
5018
- var import_node_fs10 = require("node:fs");
5019
4987
 
5020
4988
  // src/planning/agents/cross-task-reviewer.ts
5021
4989
  function buildCrossTaskReviewerPrompt(input) {
@@ -5152,9 +5120,6 @@ IMPORTANT: Incorporate this feedback into your plan. The CEO has reviewed a prev
5152
5120
  ## Project Context
5153
5121
  ${input.projectContext || "No project context available."}
5154
5122
 
5155
- ## Codebase Structure
5156
- ${input.codebaseIndex || "No codebase index available."}
5157
-
5158
5123
  ## Your Task
5159
5124
 
5160
5125
  Analyze the directive and produce a **complete sprint plan** with the following:
@@ -5250,14 +5215,13 @@ class PlanningMeeting {
5250
5215
  }
5251
5216
  async run(directive, feedback) {
5252
5217
  const projectContext = this.getProjectContext();
5253
- const codebaseIndex = this.getCodebaseIndex();
5254
5218
  this.log("Phase 1/2: Planner building sprint plan...", "info");
5255
5219
  const plannerPrompt = buildPlannerPrompt({
5256
5220
  directive,
5257
5221
  projectContext,
5258
- codebaseIndex,
5259
5222
  feedback
5260
5223
  });
5224
+ console.log(plannerPrompt);
5261
5225
  const plannerOutput = await this.aiRunner.run(plannerPrompt);
5262
5226
  this.log("Planner phase complete.", "success");
5263
5227
  this.log("Phase 2/2: Reviewer checking for conflicts and quality...", "info");
@@ -5285,31 +5249,6 @@ class PlanningMeeting {
5285
5249
  const kb = new KnowledgeBase(this.projectPath);
5286
5250
  return kb.getFullContext();
5287
5251
  }
5288
- getCodebaseIndex() {
5289
- const indexPath = getLocusPath(this.projectPath, "indexFile");
5290
- if (!import_node_fs10.existsSync(indexPath)) {
5291
- return "";
5292
- }
5293
- try {
5294
- const raw = import_node_fs10.readFileSync(indexPath, "utf-8");
5295
- const index = JSON.parse(raw);
5296
- const parts = [];
5297
- if (index.responsibilities) {
5298
- parts.push("### File Responsibilities");
5299
- const entries = Object.entries(index.responsibilities);
5300
- for (const [file, summary] of entries.slice(0, 50)) {
5301
- parts.push(`- \`${file}\`: ${summary}`);
5302
- }
5303
- if (entries.length > 50) {
5304
- parts.push(`... and ${entries.length - 50} more files`);
5305
- }
5306
- }
5307
- return parts.join(`
5308
- `);
5309
- } catch {
5310
- return "";
5311
- }
5312
- }
5313
5252
  }
5314
5253
  // src/index-node.ts
5315
5254
  init_knowledge_base();
@@ -8,7 +8,6 @@
8
8
  export interface PlannerInput {
9
9
  directive: string;
10
10
  projectContext: string;
11
- codebaseIndex: string;
12
11
  feedback?: string;
13
12
  }
14
13
  export declare function buildPlannerPrompt(input: PlannerInput): string;
@@ -1 +1 @@
1
- {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/planning/agents/planner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAyG9D"}
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/planning/agents/planner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAsG9D"}
@@ -30,6 +30,5 @@ export declare class PlanningMeeting {
30
30
  */
31
31
  run(directive: string, feedback?: string): Promise<PlanningMeetingResult>;
32
32
  private getProjectContext;
33
- private getCodebaseIndex;
34
33
  }
35
34
  //# sourceMappingURL=planning-meeting.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"planning-meeting.d.ts","sourceRoot":"","sources":["../../src/planning/planning-meeting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,CAAC,EAAE,CACJ,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,KAC1C,IAAI,CAAC;CACX;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,6DAA6D;IAC7D,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAGD;gBAEE,MAAM,EAAE,qBAAqB;IAMzC;;OAEG;IACG,GAAG,CACP,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;IA6CjC,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;CA8BzB"}
1
+ {"version":3,"file":"planning-meeting.d.ts","sourceRoot":"","sources":["../../src/planning/planning-meeting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,CAAC,EAAE,CACJ,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,KAC1C,IAAI,CAAC;CACX;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,6DAA6D;IAC7D,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAGD;gBAEE,MAAM,EAAE,qBAAqB;IAMzC;;OAEG;IACG,GAAG,CACP,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;IA4CjC,OAAO,CAAC,iBAAiB;CAI1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"sprint-plan.d.ts","sourceRoot":"","sources":["../../src/planning/sprint-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAiE7D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,GACf,UAAU,EAAE,CAgBd;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,UAAU,CA0CZ"}
1
+ {"version":3,"file":"sprint-plan.d.ts","sourceRoot":"","sources":["../../src/planning/sprint-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAiE7D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,GACf,UAAU,EAAE,CAgBd;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,UAAU,CAkDZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-base.d.ts","sourceRoot":"","sources":["../../src/project/knowledge-base.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;gBAEjB,WAAW,EAAE,MAAM;IAK/B,WAAW,IAAI,MAAM;IAOrB,YAAY,IAAI,MAAM;IAOtB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAa1C,cAAc,IAAI,MAAM;IAiBxB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IA+BnC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"knowledge-base.d.ts","sourceRoot":"","sources":["../../src/project/knowledge-base.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAS;gBAEjB,WAAW,EAAE,MAAM;IAK/B,WAAW,IAAI,MAAM;IAOrB,YAAY,IAAI,MAAM;IAOtB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKpC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAa1C,cAAc,IAAI,MAAM;IAYxB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IA+BnC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,SAAS;CAMlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/json-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuD5D"}
1
+ {"version":3,"file":"json-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/json-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmD5D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@locusai/sdk",
3
- "version": "0.11.7",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -30,7 +30,7 @@
30
30
  "clean": "rm -rf node_modules"
31
31
  },
32
32
  "dependencies": {
33
- "@locusai/shared": "^0.11.7",
33
+ "@locusai/shared": "^0.12.0",
34
34
  "axios": "^1.13.2",
35
35
  "events": "^3.3.0",
36
36
  "globby": "^14.0.2"