Skip to content
This repository was archived by the owner on Jul 4, 2025. It is now read-only.

Commit fd6983f

Browse files
committed
Merge branch 'dev' of https://github.com/janhq/cortex into api-update
2 parents b466a58 + 4c229d2 commit fd6983f

File tree

6 files changed

+62
-5
lines changed

6 files changed

+62
-5
lines changed

cortex-js/package.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@
99
},
1010
"scripts": {
1111
"dev": "nest dev",
12-
"build": "yarn build:extensions && nest build && cp -r cpuinfo/bin ./dist/",
12+
"build": "yarn build:extensions && nest build && cpx \"cpuinfo/bin/**\" dist/bin",
1313
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
14-
"build:extensions": "for dir in ./src/extensions/*/; do (cd \"$dir\" && yarn && yarn build); done",
14+
"build:extensions": "run-script-os",
15+
"build:extensions:windows": "powershell -command \"$jobs = Get-ChildItem -Path './src/extensions' -Directory | ForEach-Object { Start-Job -Name ($_.Name) -ScriptBlock { param($_dir); try { Set-Location $_dir; yarn; yarn build; Write-Output 'Build successful in ' + $_dir } catch { Write-Error 'Error in ' + $_dir; throw } } -ArgumentList $_.FullName }; $jobs | Wait-Job; $jobs | ForEach-Object { Receive-Job -Job $_ -Keep } | ForEach-Object { Write-Host $_ }; $failed = $jobs | Where-Object { $_.State -ne 'Completed' -or $_.ChildJobs[0].JobStateInfo.State -ne 'Completed' }; if ($failed) { Exit 1 }\"",
16+
"build:extensions:linux": "for dir in ./src/extensions/*/; do (cd \"$dir\" && yarn && yarn build); done",
17+
"build:extensions:macos": "for dir in ./src/extensions/*/; do (cd \"$dir\" && yarn && yarn build); done",
1518
"start": "nest start",
1619
"start:dev": "nest start --watch",
1720
"start:debug": "nest start --debug --watch",
@@ -53,6 +56,7 @@
5356
"uuid": "^9.0.1"
5457
},
5558
"devDependencies": {
59+
"cpx": "^1.5.0",
5660
"@nestjs/cli": "^10.0.0",
5761
"@nestjs/schematics": "^10.0.0",
5862
"@nestjs/testing": "^10.0.0",
@@ -76,7 +80,8 @@
7680
"ts-jest": "^29.1.0",
7781
"ts-loader": "^9.4.3",
7882
"tsconfig-paths": "^4.2.0",
79-
"typescript": "^5.1.3"
83+
"typescript": "^5.1.3",
84+
"run-script-os": "^1.1.6"
8085
},
8186
"files": [
8287
"dist"

cortex-js/src/infrastructure/controllers/assistants.controller.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
import { Body, Controller, Delete, Get, Param, Post } from '@nestjs/common';
1+
import {
2+
Body,
3+
Controller,
4+
Delete,
5+
Get,
6+
Param,
7+
Post,
8+
UseInterceptors,
9+
} from '@nestjs/common';
210
import { AssistantsUsecases } from '@/usecases/assistants/assistants.usecases';
311
import { CreateAssistantDto } from '@/infrastructure/dtos/assistants/create-assistant.dto';
412
import { DeleteAssistantResponseDto } from '@/infrastructure/dtos/assistants/delete-assistant.dto';
@@ -11,9 +19,11 @@ import {
1119
ApiResponse
1220
} from '@nestjs/swagger';
1321
import { AssistantEntity } from '../entities/assistant.entity';
22+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
1423

1524
@ApiTags('Assistants')
1625
@Controller('assistants')
26+
@UseInterceptors(TransformInterceptor)
1727
export class AssistantsController {
1828
constructor(private readonly assistantsService: AssistantsUsecases) {}
1929

cortex-js/src/infrastructure/controllers/messages.controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
Param,
88
HttpCode,
99
Delete,
10+
UseInterceptors,
1011
} from '@nestjs/common';
1112
import { MessagesUsecases } from '@/usecases/messages/messages.usecases';
1213
import { CreateMessageDto } from '@/infrastructure/dtos/messages/create-message.dto';
@@ -22,9 +23,11 @@ import {
2223
ApiTags,
2324
ApiResponse
2425
} from '@nestjs/swagger';
26+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
2527

2628
@ApiTags('Messages')
2729
@Controller('messages')
30+
@UseInterceptors(TransformInterceptor)
2831
export class MessagesController {
2932
constructor(private readonly messagesUsecases: MessagesUsecases) {}
3033

cortex-js/src/infrastructure/controllers/models.controller.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import {
66
Patch,
77
Param,
88
Delete,
9-
HttpCode
9+
HttpCode,
10+
UseInterceptors,
1011
} from '@nestjs/common';
1112
import { ModelsUsecases } from '@/usecases/models/models.usecases';
1213
import { CreateModelDto } from '@/infrastructure/dtos/models/create-model.dto';
@@ -25,9 +26,11 @@ import {
2526
} from '@nestjs/swagger';
2627
import { StartModelSuccessDto } from '@/infrastructure/dtos/models/start-model-success.dto';
2728
import { ModelSettingParamsDto } from '../dtos/models/model-setting-params.dto';
29+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
2830

2931
@ApiTags('Models')
3032
@Controller('models')
33+
@UseInterceptors(TransformInterceptor)
3134
export class ModelsController {
3235
constructor(private readonly modelsUsecases: ModelsUsecases) {}
3336

cortex-js/src/infrastructure/controllers/threads.controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
Param,
88
Delete,
99
HttpCode
10+
UseInterceptors,
1011
} from '@nestjs/common';
1112
import { ThreadsUsecases } from '@/usecases/threads/threads.usecases';
1213
import { CreateThreadDto } from '@/infrastructure/dtos/threads/create-thread.dto';
@@ -21,9 +22,11 @@ import {
2122
ApiTags,
2223
ApiResponse
2324
} from '@nestjs/swagger';
25+
import { TransformInterceptor } from '../interceptors/transform.interceptor';
2426

2527
@ApiTags('Threads')
2628
@Controller('threads')
29+
@UseInterceptors(TransformInterceptor)
2730
export class ThreadsController {
2831
constructor(private readonly threadsService: ThreadsUsecases) {}
2932

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import {
2+
CallHandler,
3+
ExecutionContext,
4+
Injectable,
5+
NestInterceptor,
6+
} from '@nestjs/common';
7+
import { Observable } from 'rxjs';
8+
import { map } from 'rxjs/operators';
9+
10+
export interface Response<T> {
11+
data: T;
12+
}
13+
14+
@Injectable()
15+
export class TransformInterceptor<T>
16+
implements NestInterceptor<T, Response<T>>
17+
{
18+
intercept(
19+
context: ExecutionContext,
20+
next: CallHandler,
21+
): Observable<Response<T>> {
22+
return next.handle().pipe(
23+
map((data) => {
24+
return Array.isArray(data)
25+
? {
26+
object: 'list',
27+
data,
28+
}
29+
: data;
30+
}),
31+
);
32+
}
33+
}

0 commit comments

Comments
 (0)