Skip to content

Commit d9c0bd3

Browse files
committed
Upgrade TypeScript tooling and fix test editor config
1 parent 4f67ecf commit d9c0bd3

28 files changed

Lines changed: 563 additions & 399 deletions

.eslintrc.json

Lines changed: 0 additions & 63 deletions
This file was deleted.

eslint.config.cjs

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
const js = require('@eslint/js');
2+
const globals = require('globals');
3+
const tsParser = require('@typescript-eslint/parser');
4+
const tsPlugin = require('@typescript-eslint/eslint-plugin');
5+
const simpleImportSort = require('eslint-plugin-simple-import-sort');
6+
const unusedImports = require('eslint-plugin-unused-imports');
7+
8+
const sharedRules = {
9+
indent: ['error', 2],
10+
quotes: ['error', 'single', { avoidEscape: true, allowTemplateLiterals: true }],
11+
'quote-props': ['error', 'as-needed'],
12+
semi: ['error', 'always'],
13+
'simple-import-sort/imports': 1,
14+
'simple-import-sort/exports': 1,
15+
'unused-imports/no-unused-imports': 1,
16+
'prefer-const': 0,
17+
'no-case-declarations': 0,
18+
'no-console': 0,
19+
};
20+
21+
module.exports = [
22+
{
23+
ignores: ['**/dist/**', '**/node_modules/**'],
24+
},
25+
{
26+
...js.configs.recommended,
27+
files: ['**/*.js', '**/*.cjs', '**/*.mjs'],
28+
languageOptions: {
29+
ecmaVersion: 'latest',
30+
sourceType: 'commonjs',
31+
globals: {
32+
...globals.browser,
33+
...globals.node,
34+
...globals.jest,
35+
},
36+
},
37+
plugins: {
38+
'simple-import-sort': simpleImportSort,
39+
'unused-imports': unusedImports,
40+
},
41+
rules: sharedRules,
42+
},
43+
{
44+
files: ['**/*.ts', '**/*.tsx'],
45+
languageOptions: {
46+
parser: tsParser,
47+
parserOptions: {
48+
ecmaVersion: 'latest',
49+
sourceType: 'module',
50+
},
51+
globals: {
52+
...globals.browser,
53+
...globals.node,
54+
...globals.jest,
55+
},
56+
},
57+
plugins: {
58+
'@typescript-eslint': tsPlugin,
59+
'simple-import-sort': simpleImportSort,
60+
'unused-imports': unusedImports,
61+
},
62+
rules: {
63+
...tsPlugin.configs.recommended.rules,
64+
...sharedRules,
65+
'@typescript-eslint/no-unused-vars': [
66+
1,
67+
{ argsIgnorePattern: 'React|res|next|^_', varsIgnorePattern: '^_' },
68+
],
69+
'@typescript-eslint/no-explicit-any': 0,
70+
'@typescript-eslint/no-var-requires': 0,
71+
'@typescript-eslint/ban-ts-comment': 0,
72+
'@typescript-eslint/no-unsafe-declaration-merging': 0,
73+
'@typescript-eslint/no-empty-object-type': 0,
74+
'no-implicit-globals': 0,
75+
},
76+
},
77+
];

package.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,30 @@
1919
"build": "pnpm -r run build",
2020
"build:dev": "pnpm -r run build:dev",
2121
"test": "pnpm -r run test",
22+
"typecheck": "node ./scripts/typecheck.js",
2223
"test:live:ollama": "pnpm --filter @agentic-kit/ollama run test:live:smoke",
2324
"test:live:ollama:extended": "pnpm --filter @agentic-kit/ollama run test:live:extended",
2425
"lint": "pnpm -r run lint",
2526
"internal:deps": "makage update-workspace",
2627
"deps": "pnpm up -r -i -L"
2728
},
2829
"devDependencies": {
30+
"@eslint/js": "^9.39.3",
2931
"@types/jest": "^29.5.11",
3032
"@types/node": "^20.12.7",
31-
"@typescript-eslint/eslint-plugin": "^8.53.1",
32-
"@typescript-eslint/parser": "^8.53.1",
33+
"@typescript-eslint/eslint-plugin": "^8.58.2",
34+
"@typescript-eslint/parser": "^8.58.2",
3335
"eslint": "^9.39.2",
3436
"eslint-config-prettier": "^10.1.8",
3537
"eslint-plugin-simple-import-sort": "^12.1.0",
3638
"eslint-plugin-unused-imports": "^4.0.0",
39+
"globals": "^17.5.0",
3740
"jest": "^29.6.2",
3841
"lerna": "^8.2.3",
3942
"makage": "^0.1.12",
4043
"prettier": "^3.8.0",
41-
"ts-jest": "^29.4.6",
44+
"ts-jest": "^29.4.9",
4245
"ts-node": "^10.9.2",
43-
"typescript": "^5.1.6"
46+
"typescript": "^6.0.3"
4447
}
4548
}

packages/agent/__tests__/agent.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
2-
createAssistantMessageEventStream,
32
type AssistantMessage,
43
type Context,
4+
createAssistantMessageEventStream,
55
type ModelDescriptor,
66
} from 'agentic-kit';
77

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extends": "../tsconfig.json",
3+
"compilerOptions": {
4+
"noEmit": true,
5+
"rootDir": "..",
6+
"types": ["jest", "node"]
7+
},
8+
"include": ["./**/*.ts", "../src/**/*.ts"],
9+
"exclude": ["../dist", "../node_modules"]
10+
}

packages/agent/jest.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module.exports = {
77
'ts-jest',
88
{
99
babelConfig: false,
10-
tsconfig: 'tsconfig.json',
10+
tsconfig: '__tests__/tsconfig.json',
1111
},
1212
],
1313
},

packages/agent/src/agent.ts

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import {
2-
complete,
3-
createToolResultMessage,
4-
createUserMessage,
5-
stream,
62
type AssistantMessage,
73
type Context,
4+
createToolResultMessage,
5+
createUserMessage,
86
type Message,
7+
stream,
98
type StreamOptions,
109
} from 'agentic-kit';
1110

@@ -198,30 +197,30 @@ export class Agent {
198197

199198
for await (const event of streamResult) {
200199
switch (event.type) {
201-
case 'start':
202-
this._state.streamMessage = event.partial;
203-
this.emit({ type: 'message_start', message: event.partial });
204-
break;
205-
case 'text_start':
206-
case 'text_delta':
207-
case 'text_end':
208-
case 'thinking_start':
209-
case 'thinking_delta':
210-
case 'thinking_end':
211-
case 'toolcall_start':
212-
case 'toolcall_delta':
213-
case 'toolcall_end':
214-
this._state.streamMessage = event.partial;
215-
this.emit({
216-
type: 'message_update',
217-
message: event.partial,
218-
assistantMessageEvent: event,
219-
});
220-
break;
221-
case 'done':
222-
case 'error':
223-
this._state.streamMessage = null;
224-
break;
200+
case 'start':
201+
this._state.streamMessage = event.partial;
202+
this.emit({ type: 'message_start', message: event.partial });
203+
break;
204+
case 'text_start':
205+
case 'text_delta':
206+
case 'text_end':
207+
case 'thinking_start':
208+
case 'thinking_delta':
209+
case 'thinking_end':
210+
case 'toolcall_start':
211+
case 'toolcall_delta':
212+
case 'toolcall_end':
213+
this._state.streamMessage = event.partial;
214+
this.emit({
215+
type: 'message_update',
216+
message: event.partial,
217+
assistantMessageEvent: event,
218+
});
219+
break;
220+
case 'done':
221+
case 'error':
222+
this._state.streamMessage = null;
223+
break;
225224
}
226225
}
227226

packages/agent/src/validation.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -95,22 +95,22 @@ function validateSchema(schema: JsonSchema, value: unknown, path: string): strin
9595

9696
function matchesType(type: string, value: unknown): boolean {
9797
switch (type) {
98-
case 'array':
99-
return Array.isArray(value);
100-
case 'boolean':
101-
return typeof value === 'boolean';
102-
case 'integer':
103-
return typeof value === 'number' && Number.isInteger(value);
104-
case 'null':
105-
return value === null;
106-
case 'number':
107-
return typeof value === 'number';
108-
case 'object':
109-
return isPlainObject(value);
110-
case 'string':
111-
return typeof value === 'string';
112-
default:
113-
return true;
98+
case 'array':
99+
return Array.isArray(value);
100+
case 'boolean':
101+
return typeof value === 'boolean';
102+
case 'integer':
103+
return typeof value === 'number' && Number.isInteger(value);
104+
case 'null':
105+
return value === null;
106+
case 'number':
107+
return typeof value === 'number';
108+
case 'object':
109+
return isPlainObject(value);
110+
case 'string':
111+
return typeof value === 'string';
112+
default:
113+
return true;
114114
}
115115
}
116116

packages/agentic-kit/__tests__/adapter.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import {
22
AgentKit,
33
createAssistantMessageEventStream,
44
getMessageText,
5-
transformMessages,
65
type ModelDescriptor,
76
type ProviderAdapter,
7+
transformMessages,
88
} from '../src';
99

1010
function createFakeModel(): ModelDescriptor {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extends": "../tsconfig.json",
3+
"compilerOptions": {
4+
"noEmit": true,
5+
"rootDir": "..",
6+
"types": ["jest", "node"]
7+
},
8+
"include": ["./**/*.ts", "../src/**/*.ts"],
9+
"exclude": ["../dist", "../node_modules"]
10+
}

0 commit comments

Comments
 (0)