@locusai/sdk 0.11.8 → 0.12.1

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 (44) hide show
  1. package/dist/agent/codebase-indexer-service.d.ts.map +1 -1
  2. package/dist/agent/reviewer-worker.d.ts +0 -1
  3. package/dist/agent/reviewer-worker.d.ts.map +1 -1
  4. package/dist/agent/worker.d.ts +0 -2
  5. package/dist/agent/worker.d.ts.map +1 -1
  6. package/dist/agent/worker.js +140 -356
  7. package/dist/ai/claude-runner.d.ts +1 -0
  8. package/dist/ai/claude-runner.d.ts.map +1 -1
  9. package/dist/ai/codex-runner.d.ts +1 -1
  10. package/dist/ai/codex-runner.d.ts.map +1 -1
  11. package/dist/ai/factory.d.ts +2 -0
  12. package/dist/ai/factory.d.ts.map +1 -1
  13. package/dist/core/config.d.ts +2 -4
  14. package/dist/core/config.d.ts.map +1 -1
  15. package/dist/core/prompt-builder.d.ts +4 -5
  16. package/dist/core/prompt-builder.d.ts.map +1 -1
  17. package/dist/index-node.d.ts +1 -1
  18. package/dist/index-node.d.ts.map +1 -1
  19. package/dist/index-node.js +400 -776
  20. package/dist/planning/agents/cross-task-reviewer.d.ts +0 -14
  21. package/dist/planning/agents/cross-task-reviewer.d.ts.map +1 -1
  22. package/dist/planning/agents/planner.d.ts +11 -6
  23. package/dist/planning/agents/planner.d.ts.map +1 -1
  24. package/dist/planning/index.d.ts +1 -1
  25. package/dist/planning/index.d.ts.map +1 -1
  26. package/dist/planning/plan-manager.d.ts +0 -1
  27. package/dist/planning/plan-manager.d.ts.map +1 -1
  28. package/dist/planning/planning-meeting.d.ts +11 -13
  29. package/dist/planning/planning-meeting.d.ts.map +1 -1
  30. package/dist/planning/sprint-plan.d.ts +7 -3
  31. package/dist/planning/sprint-plan.d.ts.map +1 -1
  32. package/dist/utils/json-extractor.d.ts +6 -2
  33. package/dist/utils/json-extractor.d.ts.map +1 -1
  34. package/dist/utils/structured-output.d.ts +14 -0
  35. package/dist/utils/structured-output.d.ts.map +1 -0
  36. package/package.json +5 -4
  37. package/dist/project/knowledge-base.d.ts +0 -24
  38. package/dist/project/knowledge-base.d.ts.map +0 -1
  39. package/dist/worktree/index.d.ts +0 -2
  40. package/dist/worktree/index.d.ts.map +0 -1
  41. package/dist/worktree/worktree-config.d.ts +0 -2
  42. package/dist/worktree/worktree-config.d.ts.map +0 -1
  43. package/dist/worktree/worktree-manager.d.ts +0 -2
  44. package/dist/worktree/worktree-manager.d.ts.map +0 -1
@@ -1,15 +1 @@
1
- /**
2
- * Cross-Task Reviewer Agent Persona
3
- *
4
- * Phase 2 (final) of the planning meeting. Reviews the Planner's
5
- * sprint plan for task ordering issues, dependency correctness,
6
- * description quality, and overall plan coherence.
7
- */
8
- export interface CrossTaskReviewerInput {
9
- directive: string;
10
- projectContext: string;
11
- plannerOutput: string;
12
- feedback?: string;
13
- }
14
- export declare function buildCrossTaskReviewerPrompt(input: CrossTaskReviewerInput): string;
15
1
  //# sourceMappingURL=cross-task-reviewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cross-task-reviewer.d.ts","sourceRoot":"","sources":["../../../src/planning/agents/cross-task-reviewer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,sBAAsB,GAC5B,MAAM,CAkHR"}
1
+ {"version":3,"file":"cross-task-reviewer.d.ts","sourceRoot":"","sources":["../../../src/planning/agents/cross-task-reviewer.ts"],"names":[],"mappings":""}
@@ -1,15 +1,20 @@
1
1
  /**
2
- * Planner Agent Persona
2
+ * Sprint Planning Prompt
3
3
  *
4
- * Phase 1 of the simplified planning meeting. Combines the responsibilities
5
- * of the former Tech Lead, Architect, and Sprint Organizer into a single
6
- * pass that produces a complete, ordered sprint plan from the CEO directive.
4
+ * Uses XML system message structure to provide clear, structured instructions
5
+ * to the AI for sprint planning from a CEO directive.
6
+ *
7
+ * The AI agent writes the plan JSON file directly to the plans directory.
7
8
  */
8
9
  export interface PlannerInput {
9
10
  directive: string;
10
- projectContext: string;
11
- codebaseIndex: string;
12
11
  feedback?: string;
12
+ /** Absolute path to the plans directory (e.g. /project/.locus/plans) */
13
+ plansDir: string;
14
+ /** Pre-generated plan ID (e.g. plan-1234567890) */
15
+ planId: string;
16
+ /** File name slug derived from the plan name */
17
+ fileName: string;
13
18
  }
14
19
  export declare function buildPlannerPrompt(input: PlannerInput): string;
15
20
  //# sourceMappingURL=planner.d.ts.map
@@ -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;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAoE9D"}
@@ -1,4 +1,4 @@
1
1
  export { PlanManager } from "./plan-manager.js";
2
- export { PlanningMeeting, type PlanningMeetingConfig, type PlanningMeetingResult, type PlanningPhase, } from "./planning-meeting.js";
2
+ export { PlanningMeeting, type PlanningMeetingConfig, type PlanningMeetingResult, } from "./planning-meeting.js";
3
3
  export { type PlannedTask, parseSprintPlanFromAI, plannedTasksToCreatePayloads, type SprintPlan, type SprintPlanRisk, sprintPlanToMarkdown, } from "./sprint-plan.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/planning/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,WAAW,EAChB,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/planning/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,WAAW,EAChB,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
@@ -6,7 +6,6 @@ import { type SprintPlan } from "./sprint-plan.js";
6
6
  * save, load, list, approve, reject, cancel.
7
7
  */
8
8
  export declare class PlanManager {
9
- private projectPath;
10
9
  private plansDir;
11
10
  constructor(projectPath: string);
12
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"plan-manager.d.ts","sourceRoot":"","sources":["../../src/planning/plan-manager.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,qBAAa,WAAW;IAGV,OAAO,CAAC,WAAW;IAF/B,OAAO,CAAC,QAAQ,CAAS;gBAEL,WAAW,EAAE,MAAM;IAIvC;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAa9B;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBzC;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,EAAE;IA4BjD;;;OAGG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IA+C7C;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAmBtD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAW9B;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA6B9B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM5C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;CAMhB"}
1
+ {"version":3,"file":"plan-manager.d.ts","sourceRoot":"","sources":["../../src/planning/plan-manager.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;gBAEb,WAAW,EAAE,MAAM;IAI/B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAa9B;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAoBzC;;OAEG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,EAAE;IA4BjD;;;OAGG;IACG,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC;IAoC7C;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAmBtD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAW9B;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA6B9B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM5C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;CAMhB"}
@@ -1,6 +1,5 @@
1
1
  import type { AiRunner } from "../ai/runner.js";
2
- import { type SprintPlan } from "./sprint-plan.js";
3
- export type PlanningPhase = "planner" | "review" | "complete";
2
+ import type { SprintPlan } from "./sprint-plan.js";
4
3
  export interface PlanningMeetingConfig {
5
4
  projectPath: string;
6
5
  aiRunner: AiRunner;
@@ -8,17 +7,15 @@ export interface PlanningMeetingConfig {
8
7
  }
9
8
  export interface PlanningMeetingResult {
10
9
  plan: SprintPlan;
11
- /** Raw outputs from each phase for debugging/transparency */
12
- phaseOutputs: {
13
- planner: string;
14
- review: string;
15
- };
10
+ /** Raw output from the planning team for debugging/transparency */
11
+ rawOutput: string;
16
12
  }
17
13
  /**
18
- * Orchestrates a two-phase planning meeting where AI agent personas
19
- * collaborate to produce a sprint plan.
14
+ * Orchestrates a single-phase planning meeting where 3 AI team members
15
+ * (Architect, Tech Lead, Sprint Organizer) collaborate in one pass
16
+ * to produce a sprint plan.
20
17
  *
21
- * Flow: CEO Directive → Planner Cross-Task Review → Sprint Plan
18
+ * Flow: CEO Directive → Planning Team (Architect + Tech Lead + Sprint Organizer) → Sprint Plan
22
19
  */
23
20
  export declare class PlanningMeeting {
24
21
  private projectPath;
@@ -26,10 +23,11 @@ export declare class PlanningMeeting {
26
23
  private log;
27
24
  constructor(config: PlanningMeetingConfig);
28
25
  /**
29
- * Run the full planning meeting pipeline.
26
+ * Run the planning meeting.
27
+ *
28
+ * The AI agent writes the plan JSON file directly to .locus/plans/
29
+ * using its file writing tools. We then read it back from disk.
30
30
  */
31
31
  run(directive: string, feedback?: string): Promise<PlanningMeetingResult>;
32
- private getProjectContext;
33
- private getCodebaseIndex;
34
32
  }
35
33
  //# 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":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,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,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAGD;gBAEE,MAAM,EAAE,qBAAqB;IAMzC;;;;;OAKG;IACG,GAAG,CACP,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;CAsDlC"}
@@ -39,9 +39,13 @@ export declare function sprintPlanToMarkdown(plan: SprintPlan): string;
39
39
  */
40
40
  export declare function plannedTasksToCreatePayloads(plan: SprintPlan, sprintId: string): CreateTask[];
41
41
  /**
42
- * Parse a sprint plan from a JSON string (as returned by AI).
43
- * Validates required fields, assigns defaults, and ensures tasks
44
- * are topologically sorted by their dependencies.
42
+ * Parse a sprint plan from raw LLM output text.
43
+ *
44
+ * Uses Zod schemas to validate the JSON structure instead of manual
45
+ * type assertions. This provides:
46
+ * - Clear error messages when the LLM produces malformed output
47
+ * - Automatic defaults for missing fields
48
+ * - Type-safe parsing without manual casting
45
49
  */
46
50
  export declare function parseSprintPlanFromAI(raw: string, directive: string): SprintPlan;
47
51
  //# sourceMappingURL=sprint-plan.d.ts.map
@@ -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,CAkDZ"}
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;AA8CzB,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;AAMD;;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;AAMD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,UAAU,CAiCZ"}
@@ -1,6 +1,10 @@
1
1
  /**
2
- * Extract a JSON object string from LLM output that may contain
3
- * surrounding prose, markdown code blocks, or other non-JSON text.
2
+ * Extract a JSON object string from LLM output.
3
+ *
4
+ * Handles common LLM output patterns:
5
+ * - Pure JSON
6
+ * - JSON wrapped in markdown code fences
7
+ * - JSON preceded/followed by prose text
4
8
  */
5
9
  export declare function extractJsonFromLLMOutput(raw: string): string;
6
10
  //# sourceMappingURL=json-extractor.d.ts.map
@@ -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,CAmD5D"}
1
+ {"version":3,"file":"json-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/json-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiD5D"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Parse raw LLM output into a typed object validated by a Zod schema.
4
+ *
5
+ * Steps:
6
+ * 1. Extract JSON from the raw LLM text (handles markdown blocks, surrounding prose)
7
+ * 2. Parse the extracted string with JSON.parse
8
+ * 3. Validate + coerce through the provided Zod schema
9
+ *
10
+ * On failure, throws with an actionable error message that includes
11
+ * the Zod validation issues so callers can log or surface them.
12
+ */
13
+ export declare function parseJsonWithSchema<T extends z.ZodType>(raw: string, schema: T): z.output<T>;
14
+ //# sourceMappingURL=structured-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-output.d.ts","sourceRoot":"","sources":["../../src/utils/structured-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EACrD,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,GACR,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CA2Bb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@locusai/sdk",
3
- "version": "0.11.8",
3
+ "version": "0.12.1",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -23,17 +23,18 @@
23
23
  "README.md"
24
24
  ],
25
25
  "scripts": {
26
- "build": "bun build ./src/index.ts ./src/index-node.ts ./src/agent/worker.ts --outdir ./dist --target node --format cjs --external axios --external events --external globby --external @locusai/shared && tsc -p tsconfig.build.json --emitDeclarationOnly",
26
+ "build": "bun build ./src/index.ts ./src/index-node.ts ./src/agent/worker.ts --outdir ./dist --target node --format cjs --external axios --external events --external globby --external @locusai/shared --external zod && tsc -p tsconfig.build.json --emitDeclarationOnly",
27
27
  "dev": "tsc --watch",
28
28
  "lint": "biome lint .",
29
29
  "typecheck": "tsc --noEmit",
30
30
  "clean": "rm -rf node_modules"
31
31
  },
32
32
  "dependencies": {
33
- "@locusai/shared": "^0.11.8",
33
+ "@locusai/shared": "^0.12.1",
34
34
  "axios": "^1.13.2",
35
35
  "events": "^3.3.0",
36
- "globby": "^14.0.2"
36
+ "globby": "^14.0.2",
37
+ "zod": "^4.3.6"
37
38
  },
38
39
  "devDependencies": {
39
40
  "typescript": "^5.8.3",
@@ -1,24 +0,0 @@
1
- export interface ProjectInfo {
2
- name: string;
3
- mission: string;
4
- techStack: string[];
5
- }
6
- export interface ProgressEntry {
7
- role: "user" | "assistant";
8
- content: string;
9
- timestamp?: Date;
10
- }
11
- export declare class KnowledgeBase {
12
- private contextPath;
13
- private progressPath;
14
- constructor(projectPath: string);
15
- readContext(): string;
16
- readProgress(): string;
17
- updateContext(content: string): void;
18
- updateProgress(entry: ProgressEntry): void;
19
- getFullContext(): string;
20
- initialize(info: ProjectInfo): void;
21
- get exists(): boolean;
22
- private ensureDir;
23
- }
24
- //# sourceMappingURL=knowledge-base.d.ts.map
@@ -1 +0,0 @@
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/worktree/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=worktree-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-config.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=worktree-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../src/worktree/worktree-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}