@locusai/sdk 0.15.5 → 0.16.2
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.
- package/dist/agent/reviewer-worker.d.ts +2 -1
- package/dist/agent/reviewer-worker.d.ts.map +1 -1
- package/dist/agent/worker.d.ts +2 -1
- package/dist/agent/worker.d.ts.map +1 -1
- package/dist/agent/worker.js +134 -208
- package/dist/ai/claude-runner.d.ts +0 -7
- package/dist/ai/claude-runner.d.ts.map +1 -1
- package/dist/ai/claude-stream-parser.d.ts +41 -0
- package/dist/ai/claude-stream-parser.d.ts.map +1 -0
- package/dist/ai/codex-runner.d.ts.map +1 -1
- package/dist/ai/factory.d.ts +11 -0
- package/dist/ai/factory.d.ts.map +1 -1
- package/dist/ai/index.d.ts +3 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/discussion/discussion-facilitator.d.ts.map +1 -1
- package/dist/events.d.ts +0 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/index-node.d.ts +0 -1
- package/dist/index-node.d.ts.map +1 -1
- package/dist/index-node.js +146 -468
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -87
- package/dist/modules/workspaces.d.ts +0 -15
- package/dist/modules/workspaces.d.ts.map +1 -1
- package/dist/planning/planning-meeting.d.ts +2 -1
- package/dist/planning/planning-meeting.d.ts.map +1 -1
- package/dist/utils/resolve-bin.d.ts.map +1 -1
- package/package.json +5 -7
- package/dist/modules/instances.d.ts +0 -46
- package/dist/modules/instances.d.ts.map +0 -1
- package/dist/modules/suggestions.d.ts +0 -12
- package/dist/modules/suggestions.d.ts.map +0 -1
- package/dist/proposals/context-gatherer.d.ts +0 -32
- package/dist/proposals/context-gatherer.d.ts.map +0 -1
- package/dist/proposals/index.d.ts +0 -4
- package/dist/proposals/index.d.ts.map +0 -1
- package/dist/proposals/proposal-engine.d.ts +0 -21
- package/dist/proposals/proposal-engine.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,11 +2,9 @@ import { LocusConfig, LocusEmitter } from "./events.js";
|
|
|
2
2
|
import { AuthModule } from "./modules/auth.js";
|
|
3
3
|
import { CiModule } from "./modules/ci.js";
|
|
4
4
|
import { DocsModule } from "./modules/docs.js";
|
|
5
|
-
import { InstancesModule } from "./modules/instances.js";
|
|
6
5
|
import { InvitationsModule } from "./modules/invitations.js";
|
|
7
6
|
import { OrganizationsModule } from "./modules/organizations.js";
|
|
8
7
|
import { SprintsModule } from "./modules/sprints.js";
|
|
9
|
-
import { SuggestionsModule } from "./modules/suggestions.js";
|
|
10
8
|
import { TasksModule } from "./modules/tasks.js";
|
|
11
9
|
import { WorkspacesModule } from "./modules/workspaces.js";
|
|
12
10
|
export type { Discussion, DiscussionInsight, DiscussionMessage, } from "./discussion/discussion-types.js";
|
|
@@ -15,11 +13,9 @@ export * from "./events.js";
|
|
|
15
13
|
export * from "./modules/auth.js";
|
|
16
14
|
export * from "./modules/ci.js";
|
|
17
15
|
export * from "./modules/docs.js";
|
|
18
|
-
export * from "./modules/instances.js";
|
|
19
16
|
export * from "./modules/invitations.js";
|
|
20
17
|
export * from "./modules/organizations.js";
|
|
21
18
|
export * from "./modules/sprints.js";
|
|
22
|
-
export * from "./modules/suggestions.js";
|
|
23
19
|
export * from "./modules/tasks.js";
|
|
24
20
|
export * from "./modules/workspaces.js";
|
|
25
21
|
export declare class LocusClient {
|
|
@@ -33,8 +29,6 @@ export declare class LocusClient {
|
|
|
33
29
|
readonly invitations: InvitationsModule;
|
|
34
30
|
readonly docs: DocsModule;
|
|
35
31
|
readonly ci: CiModule;
|
|
36
|
-
readonly instances: InstancesModule;
|
|
37
|
-
readonly suggestions: SuggestionsModule;
|
|
38
32
|
constructor(config: LocusConfig);
|
|
39
33
|
private setupRetryInterceptor;
|
|
40
34
|
private setupInterceptors;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAE1C,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AAExC,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,SAAgB,OAAO,EAAE,YAAY,CAAC;IAEtC,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,OAAO,EAAE,aAAa,CAAC;IACvC,SAAgB,UAAU,EAAE,gBAAgB,CAAC;IAC7C,SAAgB,aAAa,EAAE,mBAAmB,CAAC;IACnD,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAC/C,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,SAAgB,EAAE,EAAE,QAAQ,CAAC;gBAEjB,MAAM,EAAE,WAAW;IA6B/B,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,iBAAiB;IAmDlB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAOrC"}
|
package/dist/index.js
CHANGED
|
@@ -156,49 +156,6 @@ var init_docs = __esm(() => {
|
|
|
156
156
|
};
|
|
157
157
|
});
|
|
158
158
|
|
|
159
|
-
// src/modules/instances.ts
|
|
160
|
-
var InstancesModule;
|
|
161
|
-
var init_instances = __esm(() => {
|
|
162
|
-
InstancesModule = class InstancesModule extends BaseModule {
|
|
163
|
-
async list(workspaceId) {
|
|
164
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances`);
|
|
165
|
-
return data.instances;
|
|
166
|
-
}
|
|
167
|
-
async get(workspaceId, instanceId) {
|
|
168
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}`);
|
|
169
|
-
return data.instance;
|
|
170
|
-
}
|
|
171
|
-
async provision(workspaceId, body) {
|
|
172
|
-
const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances`, body);
|
|
173
|
-
return data.instance;
|
|
174
|
-
}
|
|
175
|
-
async performAction(workspaceId, instanceId, action) {
|
|
176
|
-
const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/actions`, { action });
|
|
177
|
-
return data.instance;
|
|
178
|
-
}
|
|
179
|
-
async sync(workspaceId, instanceId) {
|
|
180
|
-
const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/sync`);
|
|
181
|
-
return data.instance;
|
|
182
|
-
}
|
|
183
|
-
async checkUpdates(workspaceId, instanceId) {
|
|
184
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}/updates`);
|
|
185
|
-
return data.update;
|
|
186
|
-
}
|
|
187
|
-
async applyUpdate(workspaceId, instanceId) {
|
|
188
|
-
const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/updates`);
|
|
189
|
-
return data.update;
|
|
190
|
-
}
|
|
191
|
-
async getSecurity(workspaceId, instanceId) {
|
|
192
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}/security`);
|
|
193
|
-
return data.rules;
|
|
194
|
-
}
|
|
195
|
-
async updateSecurity(workspaceId, instanceId, body) {
|
|
196
|
-
const { data } = await this.api.put(`/workspaces/${workspaceId}/aws-instances/${instanceId}/security`, body);
|
|
197
|
-
return data.rules;
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
});
|
|
201
|
-
|
|
202
159
|
// src/modules/invitations.ts
|
|
203
160
|
var InvitationsModule;
|
|
204
161
|
var init_invitations = __esm(() => {
|
|
@@ -307,29 +264,6 @@ var init_sprints = __esm(() => {
|
|
|
307
264
|
};
|
|
308
265
|
});
|
|
309
266
|
|
|
310
|
-
// src/modules/suggestions.ts
|
|
311
|
-
var SuggestionsModule;
|
|
312
|
-
var init_suggestions = __esm(() => {
|
|
313
|
-
SuggestionsModule = class SuggestionsModule extends BaseModule {
|
|
314
|
-
async create(workspaceId, data) {
|
|
315
|
-
const { data: res } = await this.api.post(`/workspaces/${workspaceId}/suggestions`, data);
|
|
316
|
-
return res.suggestion;
|
|
317
|
-
}
|
|
318
|
-
async list(workspaceId, params) {
|
|
319
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/suggestions`, { params });
|
|
320
|
-
return data.suggestions;
|
|
321
|
-
}
|
|
322
|
-
async get(workspaceId, id) {
|
|
323
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/suggestions/${id}`);
|
|
324
|
-
return data.suggestion;
|
|
325
|
-
}
|
|
326
|
-
async updateStatus(workspaceId, id, status) {
|
|
327
|
-
const { data } = await this.api.patch(`/workspaces/${workspaceId}/suggestions/${id}/status`, status);
|
|
328
|
-
return data.suggestion;
|
|
329
|
-
}
|
|
330
|
-
};
|
|
331
|
-
});
|
|
332
|
-
|
|
333
267
|
// src/modules/tasks.ts
|
|
334
268
|
var import_shared, TasksModule;
|
|
335
269
|
var init_tasks = __esm(() => {
|
|
@@ -454,17 +388,6 @@ var init_workspaces = __esm(() => {
|
|
|
454
388
|
async deleteApiKey(workspaceId, keyId) {
|
|
455
389
|
await this.api.delete(`/workspaces/${workspaceId}/api-keys/${keyId}`);
|
|
456
390
|
}
|
|
457
|
-
async getAwsCredentials(workspaceId) {
|
|
458
|
-
const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-credentials`);
|
|
459
|
-
return data.credential;
|
|
460
|
-
}
|
|
461
|
-
async saveAwsCredentials(workspaceId, body) {
|
|
462
|
-
const { data } = await this.api.put(`/workspaces/${workspaceId}/aws-credentials`, body);
|
|
463
|
-
return data.credential;
|
|
464
|
-
}
|
|
465
|
-
async deleteAwsCredentials(workspaceId) {
|
|
466
|
-
await this.api.delete(`/workspaces/${workspaceId}/aws-credentials`);
|
|
467
|
-
}
|
|
468
391
|
};
|
|
469
392
|
});
|
|
470
393
|
|
|
@@ -506,14 +429,12 @@ var exports_src = {};
|
|
|
506
429
|
__export(exports_src, {
|
|
507
430
|
WorkspacesModule: () => WorkspacesModule,
|
|
508
431
|
TasksModule: () => TasksModule,
|
|
509
|
-
SuggestionsModule: () => SuggestionsModule,
|
|
510
432
|
SprintsModule: () => SprintsModule,
|
|
511
433
|
OrganizationsModule: () => OrganizationsModule,
|
|
512
434
|
LocusEvent: () => LocusEvent,
|
|
513
435
|
LocusEmitter: () => LocusEmitter,
|
|
514
436
|
LocusClient: () => LocusClient,
|
|
515
437
|
InvitationsModule: () => InvitationsModule,
|
|
516
|
-
InstancesModule: () => InstancesModule,
|
|
517
438
|
DocsModule: () => DocsModule,
|
|
518
439
|
DiscussionSchema: () => DiscussionSchema,
|
|
519
440
|
DiscussionMessageSchema: () => DiscussionMessageSchema,
|
|
@@ -534,8 +455,6 @@ class LocusClient {
|
|
|
534
455
|
invitations;
|
|
535
456
|
docs;
|
|
536
457
|
ci;
|
|
537
|
-
instances;
|
|
538
|
-
suggestions;
|
|
539
458
|
constructor(config) {
|
|
540
459
|
this.emitter = new LocusEmitter;
|
|
541
460
|
this.api = import_axios.default.create({
|
|
@@ -555,8 +474,6 @@ class LocusClient {
|
|
|
555
474
|
this.invitations = new InvitationsModule(this.api, this.emitter);
|
|
556
475
|
this.docs = new DocsModule(this.api, this.emitter);
|
|
557
476
|
this.ci = new CiModule(this.api, this.emitter);
|
|
558
|
-
this.instances = new InstancesModule(this.api, this.emitter);
|
|
559
|
-
this.suggestions = new SuggestionsModule(this.api, this.emitter);
|
|
560
477
|
if (config.retryOptions) {
|
|
561
478
|
this.setupRetryInterceptor(config.retryOptions);
|
|
562
479
|
}
|
|
@@ -622,11 +539,9 @@ var init_src = __esm(() => {
|
|
|
622
539
|
init_auth();
|
|
623
540
|
init_ci();
|
|
624
541
|
init_docs();
|
|
625
|
-
init_instances();
|
|
626
542
|
init_invitations();
|
|
627
543
|
init_organizations();
|
|
628
544
|
init_sprints();
|
|
629
|
-
init_suggestions();
|
|
630
545
|
init_tasks();
|
|
631
546
|
init_workspaces();
|
|
632
547
|
init_discussion_types();
|
|
@@ -635,11 +550,9 @@ var init_src = __esm(() => {
|
|
|
635
550
|
init_auth();
|
|
636
551
|
init_ci();
|
|
637
552
|
init_docs();
|
|
638
|
-
init_instances();
|
|
639
553
|
init_invitations();
|
|
640
554
|
init_organizations();
|
|
641
555
|
init_sprints();
|
|
642
|
-
init_suggestions();
|
|
643
556
|
init_tasks();
|
|
644
557
|
init_workspaces();
|
|
645
558
|
});
|
|
@@ -29,9 +29,6 @@ export declare class WorkspacesModule extends BaseModule {
|
|
|
29
29
|
listApiKeys(workspaceId: string): Promise<WorkspaceApiKey[]>;
|
|
30
30
|
createApiKey(workspaceId: string, name: string): Promise<WorkspaceApiKey>;
|
|
31
31
|
deleteApiKey(workspaceId: string, keyId: string): Promise<void>;
|
|
32
|
-
getAwsCredentials(workspaceId: string): Promise<AwsCredentialInfo>;
|
|
33
|
-
saveAwsCredentials(workspaceId: string, body: SaveAwsCredentialsInput): Promise<AwsCredentialInfo>;
|
|
34
|
-
deleteAwsCredentials(workspaceId: string): Promise<void>;
|
|
35
32
|
}
|
|
36
33
|
export interface WorkspaceApiKey {
|
|
37
34
|
id: string;
|
|
@@ -44,16 +41,4 @@ export interface WorkspaceApiKey {
|
|
|
44
41
|
createdAt: string;
|
|
45
42
|
updatedAt: string;
|
|
46
43
|
}
|
|
47
|
-
export interface AwsCredentialInfo {
|
|
48
|
-
id: string;
|
|
49
|
-
accessKeyId?: string;
|
|
50
|
-
region: string;
|
|
51
|
-
createdAt: string;
|
|
52
|
-
updatedAt?: string;
|
|
53
|
-
}
|
|
54
|
-
export interface SaveAwsCredentialsInput {
|
|
55
|
-
accessKeyId: string;
|
|
56
|
-
secretAccessKey: string;
|
|
57
|
-
region: string;
|
|
58
|
-
}
|
|
59
44
|
//# sourceMappingURL=workspaces.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/modules/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAErB,eAAe,EACf,KAAK,EACL,IAAI,EAEJ,eAAe,EACf,SAAS,EAET,cAAc,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAK/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO9C,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IASrE,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7C,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAU/D;;;OAGG;IACG,QAAQ,CACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACG,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GACnD,OAAO,CAAC,qBAAqB,CAAC;IAYjC;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAWhE,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO5D,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,CAAC;IAQrB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/modules/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAErB,eAAe,EACf,KAAK,EACL,IAAI,EAEJ,eAAe,EACf,SAAS,EAET,cAAc,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAK/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAO9C,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IASrE,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ5D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7C,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAU/D;;;OAGG;IACG,QAAQ,CACZ,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACG,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GACnD,OAAO,CAAC,qBAAqB,CAAC;IAYjC;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAWhE,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAO5D,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,eAAe,CAAC;IAQrB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtE;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { LogFn } from "../ai/factory.js";
|
|
1
2
|
import type { AiRunner } from "../ai/runner.js";
|
|
2
3
|
import type { SprintPlan } from "./sprint-plan.js";
|
|
3
4
|
export interface PlanningMeetingConfig {
|
|
4
5
|
projectPath: string;
|
|
5
6
|
aiRunner: AiRunner;
|
|
6
|
-
log?:
|
|
7
|
+
log?: LogFn;
|
|
7
8
|
}
|
|
8
9
|
export interface PlanningMeetingResult {
|
|
9
10
|
plan: SprintPlan;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"planning-meeting.d.ts","sourceRoot":"","sources":["../../src/planning/planning-meeting.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,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,KAAK,CAAC;CACb;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,CAAQ;gBAEP,MAAM,EAAE,qBAAqB;IAMzC;;;;;OAKG;IACG,GAAG,CACP,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;CAsDlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-bin.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-bin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-bin.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-bin.ts"],"names":[],"mappings":"AA4GA;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA2BzC;AASD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACrC,MAAM,CAAC,UAAU,CAYnB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@locusai/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./src/index.ts",
|
|
6
6
|
"types": "./src/index.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
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 --external zod
|
|
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
|
"test": "bun test",
|
|
@@ -31,16 +31,14 @@
|
|
|
31
31
|
"clean": "rm -rf node_modules"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@locusai/shared": "^0.
|
|
34
|
+
"@locusai/shared": "^0.16.2",
|
|
35
35
|
"axios": "^1.13.2",
|
|
36
36
|
"events": "^3.3.0",
|
|
37
37
|
"globby": "^14.0.2",
|
|
38
|
-
"node-cron": "^3.0.3",
|
|
39
38
|
"zod": "^4.3.6"
|
|
40
39
|
},
|
|
41
40
|
"devDependencies": {
|
|
42
|
-
"
|
|
43
|
-
"@types/node
|
|
44
|
-
"typescript": "^5.8.3"
|
|
41
|
+
"typescript": "^5.8.3",
|
|
42
|
+
"@types/node": "^22.10.7"
|
|
45
43
|
}
|
|
46
44
|
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { type InstanceAction, type ProvisionAwsInstance, type UpdateSecurityRules } from "@locusai/shared";
|
|
2
|
-
import { BaseModule } from "./base.js";
|
|
3
|
-
export interface InstanceInfo {
|
|
4
|
-
id: string;
|
|
5
|
-
workspaceId: string;
|
|
6
|
-
awsCredentialId: string;
|
|
7
|
-
ec2InstanceId: string | null;
|
|
8
|
-
status: string;
|
|
9
|
-
instanceType: string;
|
|
10
|
-
region: string;
|
|
11
|
-
publicIp: string | null;
|
|
12
|
-
repoUrl: string;
|
|
13
|
-
integrations: unknown[];
|
|
14
|
-
securityGroupId: string | null;
|
|
15
|
-
errorMessage: string | null;
|
|
16
|
-
launchedAt: string | null;
|
|
17
|
-
createdAt: string;
|
|
18
|
-
updatedAt: string;
|
|
19
|
-
}
|
|
20
|
-
export interface UpdateCheckInfo {
|
|
21
|
-
currentVersion: string;
|
|
22
|
-
latestVersion: string;
|
|
23
|
-
updateAvailable: boolean;
|
|
24
|
-
}
|
|
25
|
-
export interface UpdateApplyInfo {
|
|
26
|
-
success: boolean;
|
|
27
|
-
newVersion: string;
|
|
28
|
-
error?: string;
|
|
29
|
-
}
|
|
30
|
-
export interface SecurityRuleInfo {
|
|
31
|
-
port: number;
|
|
32
|
-
cidr: string;
|
|
33
|
-
description?: string;
|
|
34
|
-
}
|
|
35
|
-
export declare class InstancesModule extends BaseModule {
|
|
36
|
-
list(workspaceId: string): Promise<InstanceInfo[]>;
|
|
37
|
-
get(workspaceId: string, instanceId: string): Promise<InstanceInfo>;
|
|
38
|
-
provision(workspaceId: string, body: ProvisionAwsInstance): Promise<InstanceInfo>;
|
|
39
|
-
performAction(workspaceId: string, instanceId: string, action: InstanceAction): Promise<InstanceInfo>;
|
|
40
|
-
sync(workspaceId: string, instanceId: string): Promise<InstanceInfo>;
|
|
41
|
-
checkUpdates(workspaceId: string, instanceId: string): Promise<UpdateCheckInfo>;
|
|
42
|
-
applyUpdate(workspaceId: string, instanceId: string): Promise<UpdateApplyInfo>;
|
|
43
|
-
getSecurity(workspaceId: string, instanceId: string): Promise<SecurityRuleInfo[]>;
|
|
44
|
-
updateSecurity(workspaceId: string, instanceId: string, body: UpdateSecurityRules): Promise<SecurityRuleInfo[]>;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=instances.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/modules/instances.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsBD,qBAAa,eAAgB,SAAQ,UAAU;IACvC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOlD,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOnE,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,YAAY,CAAC;IAQlB,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,YAAY,CAAC;IAQlB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOpE,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC;IAOrB,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC;IAOrB,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAOxB,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAO/B"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { CreateSuggestion, Suggestion, UpdateSuggestionStatus } from "@locusai/shared";
|
|
2
|
-
import { BaseModule } from "./base.js";
|
|
3
|
-
export interface SuggestionListOptions {
|
|
4
|
-
status?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare class SuggestionsModule extends BaseModule {
|
|
7
|
-
create(workspaceId: string, data: CreateSuggestion): Promise<Suggestion>;
|
|
8
|
-
list(workspaceId: string, params?: SuggestionListOptions): Promise<Suggestion[]>;
|
|
9
|
-
get(workspaceId: string, id: string): Promise<Suggestion>;
|
|
10
|
-
updateStatus(workspaceId: string, id: string, status: UpdateSuggestionStatus): Promise<Suggestion>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=suggestions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/modules/suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAUvC,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,iBAAkB,SAAQ,UAAU;IACzC,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,UAAU,CAAC;IAQhB,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,UAAU,EAAE,CAAC;IAQlB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAOzD,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,UAAU,CAAC;CAOvB"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { Sprint, Suggestion, Task } from "@locusai/shared";
|
|
2
|
-
import type { LocusClient } from "../index.js";
|
|
3
|
-
export interface ProposalContext {
|
|
4
|
-
/** Active sprint, if any */
|
|
5
|
-
activeSprint: Sprint | null;
|
|
6
|
-
/** Tasks in the current sprint */
|
|
7
|
-
sprintTasks: Task[];
|
|
8
|
-
/** Backlog tasks not yet assigned to a sprint */
|
|
9
|
-
backlogTasks: Task[];
|
|
10
|
-
/** Recent git commit log (last 20 commits) */
|
|
11
|
-
gitLog: string;
|
|
12
|
-
/** Product context from .locus/artifacts/ */
|
|
13
|
-
artifactContents: ArtifactFile[];
|
|
14
|
-
/** Project-specific instructions from .locus/LOCUS.md */
|
|
15
|
-
locusInstructions: string | null;
|
|
16
|
-
/** Previously skipped suggestions (for deduplication) */
|
|
17
|
-
skippedSuggestions: Suggestion[];
|
|
18
|
-
}
|
|
19
|
-
export interface ArtifactFile {
|
|
20
|
-
name: string;
|
|
21
|
-
content: string;
|
|
22
|
-
}
|
|
23
|
-
export declare class ContextGatherer {
|
|
24
|
-
gather(projectPath: string, client: LocusClient, workspaceId: string): Promise<ProposalContext>;
|
|
25
|
-
private fetchActiveSprint;
|
|
26
|
-
private fetchTasks;
|
|
27
|
-
private fetchSkippedSuggestions;
|
|
28
|
-
private readGitLog;
|
|
29
|
-
private readArtifacts;
|
|
30
|
-
private readLocusInstructions;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=context-gatherer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-gatherer.d.ts","sourceRoot":"","sources":["../../src/proposals/context-gatherer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE,IAAI,EAAE,CAAC;IACpB,iDAAiD;IACjD,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,yDAAyD;IACzD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yDAAyD;IACzD,kBAAkB,EAAE,UAAU,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,qBAAa,eAAe;IACpB,MAAM,CACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC;YAkCb,iBAAiB;YAWjB,UAAU;YAWV,uBAAuB;IAerC,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,qBAAqB;CAU9B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proposals/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type Suggestion } from "@locusai/shared";
|
|
2
|
-
import type { LocusClient } from "../index.js";
|
|
3
|
-
import { ContextGatherer, type ProposalContext } from "./context-gatherer.js";
|
|
4
|
-
export declare class ProposalEngine {
|
|
5
|
-
private readonly contextGatherer;
|
|
6
|
-
constructor(contextGatherer?: ContextGatherer);
|
|
7
|
-
/**
|
|
8
|
-
* Full proposal cycle: gather context → generate proposals → create suggestions.
|
|
9
|
-
*/
|
|
10
|
-
runProposalCycle(projectPath: string, client: LocusClient, workspaceId: string): Promise<Suggestion[]>;
|
|
11
|
-
/**
|
|
12
|
-
* Generate proposals from gathered context, deduplicate, and create suggestions.
|
|
13
|
-
*/
|
|
14
|
-
generateProposals(context: ProposalContext, projectPath: string, client: LocusClient, workspaceId: string): Promise<Suggestion[]>;
|
|
15
|
-
private buildPrompt;
|
|
16
|
-
private parseResponse;
|
|
17
|
-
private extractField;
|
|
18
|
-
private isDuplicate;
|
|
19
|
-
private groupTasksByStatus;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=proposal-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-engine.d.ts","sourceRoot":"","sources":["../../src/proposals/proposal-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAiB9E,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,eAAe,CAAC,EAAE,eAAe;IAI7C;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC;IASxB;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC;IAiDxB,OAAO,CAAC,WAAW;IA+EnB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,kBAAkB;CAU3B"}
|