@locusai/sdk 0.8.1 → 0.9.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 (72) hide show
  1. package/dist/agent/__tests__/orchestrator.cleanup.test.d.ts +2 -0
  2. package/dist/agent/__tests__/orchestrator.cleanup.test.d.ts.map +1 -0
  3. package/dist/agent/__tests__/worker.no-changes.test.d.ts +2 -0
  4. package/dist/agent/__tests__/worker.no-changes.test.d.ts.map +1 -0
  5. package/dist/agent/document-fetcher.d.ts.map +1 -1
  6. package/dist/agent/index.d.ts +1 -0
  7. package/dist/agent/index.d.ts.map +1 -1
  8. package/dist/agent/review-service.d.ts.map +1 -1
  9. package/dist/agent/reviewer-worker.d.ts +42 -0
  10. package/dist/agent/reviewer-worker.d.ts.map +1 -0
  11. package/dist/agent/task-executor.d.ts +1 -1
  12. package/dist/agent/task-executor.d.ts.map +1 -1
  13. package/dist/agent/worker.d.ts +47 -4
  14. package/dist/agent/worker.d.ts.map +1 -1
  15. package/dist/agent/worker.js +1102 -506
  16. package/dist/ai/claude-runner.d.ts +5 -0
  17. package/dist/ai/claude-runner.d.ts.map +1 -1
  18. package/dist/ai/codex-runner.d.ts +5 -0
  19. package/dist/ai/codex-runner.d.ts.map +1 -1
  20. package/dist/ai/runner.d.ts +5 -0
  21. package/dist/ai/runner.d.ts.map +1 -1
  22. package/dist/core/config.d.ts +10 -2
  23. package/dist/core/config.d.ts.map +1 -1
  24. package/dist/core/index.d.ts +1 -1
  25. package/dist/core/index.d.ts.map +1 -1
  26. package/dist/core/prompt-builder.d.ts +3 -6
  27. package/dist/core/prompt-builder.d.ts.map +1 -1
  28. package/dist/git/git-utils.d.ts +31 -0
  29. package/dist/git/git-utils.d.ts.map +1 -0
  30. package/dist/git/index.d.ts +3 -0
  31. package/dist/git/index.d.ts.map +1 -0
  32. package/dist/git/pr-service.d.ts +66 -0
  33. package/dist/git/pr-service.d.ts.map +1 -0
  34. package/dist/index-node.d.ts +5 -1
  35. package/dist/index-node.d.ts.map +1 -1
  36. package/dist/index-node.js +2560 -729
  37. package/dist/index.d.ts +0 -3
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +17 -49
  40. package/dist/modules/auth.d.ts +3 -0
  41. package/dist/modules/auth.d.ts.map +1 -1
  42. package/dist/modules/tasks.d.ts +0 -5
  43. package/dist/modules/tasks.d.ts.map +1 -1
  44. package/dist/modules/workspaces.d.ts +10 -10
  45. package/dist/modules/workspaces.d.ts.map +1 -1
  46. package/dist/orchestrator.d.ts +38 -5
  47. package/dist/orchestrator.d.ts.map +1 -1
  48. package/dist/planning/agents/architect.d.ts +15 -0
  49. package/dist/planning/agents/architect.d.ts.map +1 -0
  50. package/dist/planning/agents/sprint-organizer.d.ts +14 -0
  51. package/dist/planning/agents/sprint-organizer.d.ts.map +1 -0
  52. package/dist/planning/agents/tech-lead.d.ts +15 -0
  53. package/dist/planning/agents/tech-lead.d.ts.map +1 -0
  54. package/dist/planning/index.d.ts +4 -0
  55. package/dist/planning/index.d.ts.map +1 -0
  56. package/dist/planning/plan-manager.d.ts +52 -0
  57. package/dist/planning/plan-manager.d.ts.map +1 -0
  58. package/dist/planning/planning-meeting.d.ts +36 -0
  59. package/dist/planning/planning-meeting.d.ts.map +1 -0
  60. package/dist/planning/sprint-plan.d.ts +47 -0
  61. package/dist/planning/sprint-plan.d.ts.map +1 -0
  62. package/dist/project/knowledge-base.d.ts +25 -0
  63. package/dist/project/knowledge-base.d.ts.map +1 -0
  64. package/dist/worktree/index.d.ts +3 -0
  65. package/dist/worktree/index.d.ts.map +1 -0
  66. package/dist/worktree/worktree-config.d.ts +58 -0
  67. package/dist/worktree/worktree-config.d.ts.map +1 -0
  68. package/dist/worktree/worktree-manager.d.ts +96 -0
  69. package/dist/worktree/worktree-manager.d.ts.map +1 -0
  70. package/package.json +2 -2
  71. package/dist/modules/ai.d.ts +0 -55
  72. package/dist/modules/ai.d.ts.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=orchestrator.cleanup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.cleanup.test.d.ts","sourceRoot":"","sources":["../../../src/agent/__tests__/orchestrator.cleanup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker.no-changes.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.no-changes.test.d.ts","sourceRoot":"","sources":["../../../src/agent/__tests__/worker.no-changes.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"document-fetcher.d.ts","sourceRoot":"","sources":["../../src/agent/document-fetcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC;CACZ;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAE7C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA4D7B"}
1
+ {"version":3,"file":"document-fetcher.d.ts","sourceRoot":"","sources":["../../src/agent/document-fetcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC;CACZ;AAED;;;;GAIG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,mBAAmB;IAE7C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA6D7B"}
@@ -1,6 +1,7 @@
1
1
  export { CodebaseIndexerService } from "./codebase-indexer-service.js";
2
2
  export { DocumentFetcher } from "./document-fetcher.js";
3
3
  export { ReviewService, type ReviewServiceDeps } from "./review-service.js";
4
+ export { type ReviewerConfig, ReviewerWorker, } from "./reviewer-worker.js";
4
5
  export { TaskExecutor } from "./task-executor.js";
5
6
  export { AgentWorker, type WorkerConfig } from "./worker.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,KAAK,cAAc,EACnB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"review-service.d.ts","sourceRoot":"","sources":["../../src/agent/review-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,iBAAiB;IAE3C;;;OAGG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAkEzE"}
1
+ {"version":3,"file":"review-service.d.ts","sourceRoot":"","sources":["../../src/agent/review-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,iBAAiB;IAE3C;;;OAGG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAoEzE"}
@@ -0,0 +1,42 @@
1
+ import type { AiProvider } from "../ai/runner.js";
2
+ export interface ReviewerConfig {
3
+ agentId: string;
4
+ workspaceId: string;
5
+ sprintId?: string;
6
+ apiBase: string;
7
+ projectPath: string;
8
+ apiKey: string;
9
+ model?: string;
10
+ provider?: AiProvider;
11
+ }
12
+ /**
13
+ * Reviewer agent that discovers open Locus PRs directly from GitHub,
14
+ * reviews the PR diff via AI, and posts review comments.
15
+ * Skips PRs that already have a Locus review.
16
+ */
17
+ export declare class ReviewerWorker {
18
+ private config;
19
+ private client;
20
+ private aiRunner;
21
+ private prService;
22
+ private knowledgeBase;
23
+ private heartbeatInterval;
24
+ private currentTaskId;
25
+ private maxReviews;
26
+ private reviewsCompleted;
27
+ constructor(config: ReviewerConfig);
28
+ log(message: string, level?: "info" | "success" | "warn" | "error"): void;
29
+ /**
30
+ * Discover the next unreviewed Locus PR from GitHub.
31
+ */
32
+ private getNextUnreviewedPr;
33
+ /**
34
+ * Review a PR using AI and post the review on GitHub.
35
+ */
36
+ private reviewPr;
37
+ private startHeartbeat;
38
+ private stopHeartbeat;
39
+ private sendHeartbeat;
40
+ run(): Promise<void>;
41
+ }
42
+ //# sourceMappingURL=reviewer-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewer-worker.d.ts","sourceRoot":"","sources":["../../src/agent/reviewer-worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AAc5D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAUb,OAAO,CAAC,MAAM;IAT1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,gBAAgB,CAAK;gBAET,MAAM,EAAE,cAAc;IA6B1C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAgB;IAe1E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;YACW,QAAQ;IAiFtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAgBf,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8E3B"}
@@ -13,7 +13,7 @@ export declare class TaskExecutor {
13
13
  private deps;
14
14
  private promptBuilder;
15
15
  constructor(deps: TaskExecutorDeps);
16
- execute(task: Task, context?: string): Promise<{
16
+ execute(task: Task): Promise<{
17
17
  success: boolean;
18
18
  summary: string;
19
19
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/agent/task-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,aAAa,CAAgB;gBAEjB,IAAI,EAAE,gBAAgB;IAIpC,OAAO,CACX,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAyBlD"}
1
+ {"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/agent/task-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC;CACZ;AAED;;GAEG;AACH,qBAAa,YAAY;IAGX,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,aAAa,CAAgB;gBAEjB,IAAI,EAAE,gBAAgB;IAIpC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkB1E"}
@@ -8,6 +8,12 @@ export interface WorkerConfig {
8
8
  apiKey: string;
9
9
  model?: string;
10
10
  provider?: AiProvider;
11
+ /** When running in a worktree, this is the path to the main repo for progress updates */
12
+ mainProjectPath?: string;
13
+ /** Whether to use per-task worktrees for isolation */
14
+ useWorktrees?: boolean;
15
+ /** Whether to push branches to remote after committing */
16
+ autoPush?: boolean;
11
17
  }
12
18
  /**
13
19
  * Main agent worker that orchestrates task execution
@@ -17,18 +23,55 @@ export declare class AgentWorker {
17
23
  private config;
18
24
  private client;
19
25
  private aiRunner;
20
- private indexerService;
21
- private documentFetcher;
22
26
  private taskExecutor;
23
- private reviewService;
27
+ private knowledgeBase;
28
+ private worktreeManager;
29
+ private prService;
24
30
  private maxTasks;
25
31
  private tasksCompleted;
32
+ private heartbeatInterval;
33
+ private currentTaskId;
34
+ private currentWorktreePath;
35
+ private postCleanupDelayMs;
36
+ /** Cached GitHub username for co-authorship in commits */
37
+ private ghUsername;
26
38
  constructor(config: WorkerConfig);
27
39
  log(message: string, level?: "info" | "success" | "warn" | "error"): void;
28
40
  private getActiveSprint;
29
41
  private getNextTask;
42
+ /**
43
+ * Create a task-specific worktree and return an executor configured for it.
44
+ * Falls back to the main project path if worktrees are disabled.
45
+ */
46
+ private createTaskWorktree;
47
+ /**
48
+ * Commit changes in a task worktree and optionally push to remote.
49
+ * Distinguishes "no commit", "push failed", and "branch pushed" outcomes.
50
+ */
51
+ private commitAndPushWorktree;
52
+ /**
53
+ * Create a pull request for a completed task.
54
+ * Returns the PR URL if successful, null otherwise.
55
+ */
56
+ private createPullRequest;
57
+ /**
58
+ * Clean up a task-specific worktree.
59
+ * Keep the branch if a commit was created so follow-up is possible.
60
+ */
61
+ private cleanupTaskWorktree;
30
62
  private executeTask;
31
- private runStagedChangesReview;
63
+ /**
64
+ * Update progress.md in the main project after task completion
65
+ */
66
+ private updateProgress;
67
+ /**
68
+ * Start sending periodic heartbeats to the API so the server
69
+ * knows this agent is alive and which task it's working on.
70
+ */
71
+ private startHeartbeat;
72
+ private stopHeartbeat;
73
+ private sendHeartbeat;
74
+ private delayAfterCleanup;
32
75
  run(): Promise<void>;
33
76
  }
34
77
  //# sourceMappingURL=worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/agent/worker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AAuB5D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAcV,OAAO,CAAC,MAAM;IAb1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAG3B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,cAAc,CAAK;gBAEP,MAAM,EAAE,YAAY;IAuDxC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAgB;YAe5D,eAAe;YAcf,WAAW;YAiBX,WAAW;YA6BX,sBAAsB;IAoC9B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2D3B"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/agent/worker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AA4B5D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAWD;;;GAGG;AACH,qBAAa,WAAW;IAoBV,OAAO,CAAC,MAAM;IAnB1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAG3B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,SAAS,CAA0B;IAG3C,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,kBAAkB,CAAS;IACnC,0DAA0D;IAC1D,OAAO,CAAC,UAAU,CAAuB;gBAErB,MAAM,EAAE,YAAY;IAqFxC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAgB;YAe5D,eAAe;YAcf,WAAW;IA+CzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAqD1B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAuE7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;YAsBb,WAAW;IAgGzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;YAgBP,iBAAiB;IAYzB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwI3B"}