@openrouter/agent 0.3.2 → 0.5.0
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/esm/index.d.ts +7 -5
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -2
- package/esm/index.js.map +1 -1
- package/esm/lib/conversation-state.d.ts +5 -0
- package/esm/lib/conversation-state.d.ts.map +1 -1
- package/esm/lib/conversation-state.js +17 -5
- package/esm/lib/conversation-state.js.map +1 -1
- package/esm/lib/model-result.d.ts +91 -7
- package/esm/lib/model-result.d.ts.map +1 -1
- package/esm/lib/model-result.js +483 -92
- package/esm/lib/model-result.js.map +1 -1
- package/esm/lib/next-turn-params.d.ts.map +1 -1
- package/esm/lib/next-turn-params.js +3 -1
- package/esm/lib/next-turn-params.js.map +1 -1
- package/esm/lib/stream-transformers.d.ts +84 -5
- package/esm/lib/stream-transformers.d.ts.map +1 -1
- package/esm/lib/stream-transformers.js +8 -15
- package/esm/lib/stream-transformers.js.map +1 -1
- package/esm/lib/stream-type-guards.d.ts +29 -0
- package/esm/lib/stream-type-guards.d.ts.map +1 -1
- package/esm/lib/stream-type-guards.js +37 -0
- package/esm/lib/stream-type-guards.js.map +1 -1
- package/esm/lib/tool-executor.d.ts +48 -9
- package/esm/lib/tool-executor.d.ts.map +1 -1
- package/esm/lib/tool-executor.js +257 -14
- package/esm/lib/tool-executor.js.map +1 -1
- package/esm/lib/tool-orchestrator.js +6 -6
- package/esm/lib/tool-orchestrator.js.map +1 -1
- package/esm/lib/tool-types.d.ts +173 -8
- package/esm/lib/tool-types.d.ts.map +1 -1
- package/esm/lib/tool-types.js +53 -2
- package/esm/lib/tool-types.js.map +1 -1
- package/esm/lib/tool.d.ts +58 -1
- package/esm/lib/tool.d.ts.map +1 -1
- package/esm/lib/tool.js +65 -0
- package/esm/lib/tool.js.map +1 -1
- package/esm/openrouter.d.ts +10 -4
- package/esm/openrouter.d.ts.map +1 -1
- package/esm/openrouter.js +41 -2
- package/esm/openrouter.js.map +1 -1
- package/package.json +9 -15
package/esm/openrouter.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OpenRouterCore } from '@openrouter/sdk/core';
|
|
2
|
-
import
|
|
2
|
+
import { SDKHooks } from '@openrouter/sdk/hooks/hooks';
|
|
3
|
+
import type { AfterErrorHook, AfterSuccessHook, BeforeCreateRequestHook, BeforeRequestHook, SDKInitHook } from '@openrouter/sdk/hooks/types';
|
|
3
4
|
import type { SDKOptions } from '@openrouter/sdk/lib/config';
|
|
4
5
|
import type { RequestOptions } from '@openrouter/sdk/lib/sdks';
|
|
5
6
|
import type { $ZodObject, $ZodShape, infer as zodInfer } from 'zod/v4/core';
|
|
@@ -7,15 +8,20 @@ import type { CallModelInput } from './lib/async-params.js';
|
|
|
7
8
|
import type { ModelResult } from './lib/model-result.js';
|
|
8
9
|
import type { Tool } from './lib/tool-types.js';
|
|
9
10
|
export type { SDKOptions } from '@openrouter/sdk/lib/config';
|
|
11
|
+
/** Any single hook interface supported by the underlying SDK. */
|
|
12
|
+
export type Hook = SDKInitHook | BeforeCreateRequestHook | BeforeRequestHook | AfterSuccessHook | AfterErrorHook;
|
|
10
13
|
/**
|
|
11
14
|
* SDK options extended with optional hooks for request/response interception.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
15
|
+
* `hooks` accepts an `SDKHooks` instance, a single hook object, or an array of
|
|
16
|
+
* hook objects; the constructor normalizes shorthand input into an `SDKHooks`
|
|
17
|
+
* instance before passing it to the underlying SDK, which only recognizes
|
|
18
|
+
* `hooks` when it is an `SDKHooks` instance.
|
|
14
19
|
*/
|
|
15
20
|
export type OpenRouterOptions = SDKOptions & {
|
|
16
|
-
hooks?: SDKHooks;
|
|
21
|
+
hooks?: SDKHooks | Hook | readonly Hook[];
|
|
17
22
|
};
|
|
18
23
|
export declare class OpenRouter extends OpenRouterCore {
|
|
24
|
+
constructor(options?: OpenRouterOptions);
|
|
19
25
|
callModel: <TTools extends readonly Tool[], TSharedSchema extends $ZodObject<$ZodShape> | undefined = undefined, TShared extends Record<string, unknown> = TSharedSchema extends $ZodObject<$ZodShape> ? zodInfer<TSharedSchema> : Record<string, never>>(request: CallModelInput<TTools, TShared> & {
|
|
20
26
|
sharedContextSchema?: TSharedSchema;
|
|
21
27
|
}, options?: RequestOptions) => ModelResult<TTools, TShared>;
|
package/esm/openrouter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../src/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../src/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACZ,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,iEAAiE;AACjE,MAAM,MAAM,IAAI,GACZ,WAAW,GACX,uBAAuB,GACvB,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG;IAC3C,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;CAC3C,CAAC;AAmCF,qBAAa,UAAW,SAAQ,cAAc;gBAChC,OAAO,CAAC,EAAE,iBAAiB;IAYvC,SAAS,GACP,MAAM,SAAS,SAAS,IAAI,EAAE,EAC9B,aAAa,SAAS,UAAU,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EACnE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,SAAS,UAAU,CAAC,SAAS,CAAC,GACjF,QAAQ,CAAC,aAAa,CAAC,GACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEzB,SAAS,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACzC,mBAAmB,CAAC,EAAE,aAAa,CAAC;KACrC,EACD,UAAU,cAAc,KACvB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7B;CACH"}
|
package/esm/openrouter.js
CHANGED
|
@@ -1,8 +1,47 @@
|
|
|
1
1
|
import { OpenRouterCore } from '@openrouter/sdk/core';
|
|
2
|
+
import { SDKHooks } from '@openrouter/sdk/hooks/hooks';
|
|
2
3
|
import { callModel } from './inner-loop/call-model.js';
|
|
4
|
+
function buildSDKHooks(input) {
|
|
5
|
+
if (input === undefined) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
if (input instanceof SDKHooks) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
const hooks = new SDKHooks();
|
|
12
|
+
const list = Array.isArray(input)
|
|
13
|
+
? input
|
|
14
|
+
: [
|
|
15
|
+
input,
|
|
16
|
+
];
|
|
17
|
+
for (const hook of list) {
|
|
18
|
+
if ('sdkInit' in hook) {
|
|
19
|
+
hooks.registerSDKInitHook(hook);
|
|
20
|
+
}
|
|
21
|
+
if ('beforeCreateRequest' in hook) {
|
|
22
|
+
hooks.registerBeforeCreateRequestHook(hook);
|
|
23
|
+
}
|
|
24
|
+
if ('beforeRequest' in hook) {
|
|
25
|
+
hooks.registerBeforeRequestHook(hook);
|
|
26
|
+
}
|
|
27
|
+
if ('afterSuccess' in hook) {
|
|
28
|
+
hooks.registerAfterSuccessHook(hook);
|
|
29
|
+
}
|
|
30
|
+
if ('afterError' in hook) {
|
|
31
|
+
hooks.registerAfterErrorHook(hook);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return hooks;
|
|
35
|
+
}
|
|
3
36
|
export class OpenRouter extends OpenRouterCore {
|
|
4
|
-
constructor() {
|
|
5
|
-
|
|
37
|
+
constructor(options) {
|
|
38
|
+
const { hooks: hooksInput, ...rest } = options ?? {};
|
|
39
|
+
const hooks = buildSDKHooks(hooksInput);
|
|
40
|
+
super(hooks === undefined
|
|
41
|
+
? rest
|
|
42
|
+
: Object.assign({}, rest, {
|
|
43
|
+
hooks,
|
|
44
|
+
}));
|
|
6
45
|
this.callModel = (request, options) => {
|
|
7
46
|
return callModel(this, request, options);
|
|
8
47
|
};
|
package/esm/openrouter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../src/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../src/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAYvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA0BvD,SAAS,aAAa,CAAC,KAAoD;IACzE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAoB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC;YACE,KAAK;SACN,CAAC;IACN,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;YAClC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAA2B;QACrC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACxC,KAAK,CACH,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE;gBACtB,KAAK;aACN,CAAC,CACP,CAAC;QAGJ,cAAS,GAAG,CAOV,OAEC,EACD,OAAwB,EACM,EAAE;YAChC,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC;IAfF,CAAC;CAgBF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openrouter/agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"author": "OpenRouter",
|
|
5
5
|
"description": "Agent toolkit for building AI applications with OpenRouter — tool orchestration, streaming, multi-turn conversations, and format compatibility.",
|
|
6
6
|
"keywords": [
|
|
@@ -93,28 +93,22 @@
|
|
|
93
93
|
"sideEffects": false,
|
|
94
94
|
"repository": {
|
|
95
95
|
"type": "git",
|
|
96
|
-
"url": "https://github.com/OpenRouterTeam/typescript-agent.git"
|
|
96
|
+
"url": "https://github.com/OpenRouterTeam/typescript-agent.git",
|
|
97
|
+
"directory": "packages/agent"
|
|
98
|
+
},
|
|
99
|
+
"publishConfig": {
|
|
100
|
+
"access": "public",
|
|
101
|
+
"provenance": true
|
|
97
102
|
},
|
|
98
103
|
"files": [
|
|
99
104
|
"esm",
|
|
100
105
|
"package.json",
|
|
101
|
-
"README.md"
|
|
102
|
-
"LICENSE"
|
|
106
|
+
"README.md"
|
|
103
107
|
],
|
|
104
108
|
"dependencies": {
|
|
105
|
-
"@openrouter/sdk": "
|
|
109
|
+
"@openrouter/sdk": "^0.12.12",
|
|
106
110
|
"zod": "^4.0.0"
|
|
107
111
|
},
|
|
108
|
-
"devDependencies": {
|
|
109
|
-
"@biomejs/biome": "^2.4.10",
|
|
110
|
-
"@changesets/changelog-github": "^0.6.0",
|
|
111
|
-
"@changesets/cli": "^2.30.0",
|
|
112
|
-
"@types/node": "^22.13.12",
|
|
113
|
-
"dotenv": "^16.4.7",
|
|
114
|
-
"husky": "^9.1.7",
|
|
115
|
-
"typescript": "~5.8.3",
|
|
116
|
-
"vitest": "^3.2.4"
|
|
117
|
-
},
|
|
118
112
|
"scripts": {
|
|
119
113
|
"lint": "biome check src tests",
|
|
120
114
|
"lint:fix": "biome check --write src tests",
|