diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8ad7375..89688e2 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.11.2" + ".": "0.11.3" } diff --git a/.stats.yml b/.stats.yml index 385372f..4039b10 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 50 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-d3a597bbbb25c131e2c06eb9b47d70932d14a97a6f916677a195a128e196f4db.yml -openapi_spec_hash: c967b384624017eed0abff1b53a74530 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-5ee2116982adf46664acf84b8ba4b56ba65780983506c63d9b005dab49def757.yml +openapi_spec_hash: 42a3a519301d0e2bb2b5a71018915b55 config_hash: 0d150b61cae2dc57d3648ceae7784966 diff --git a/CHANGELOG.md b/CHANGELOG.md index 218fa97..dc25e19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.11.3 (2025-09-24) + +Full Changelog: [v0.11.2...v0.11.3](https://github.com/onkernel/kernel-node-sdk/compare/v0.11.2...v0.11.3) + +### Features + +* Per Invocation Logs ([927cab6](https://github.com/onkernel/kernel-node-sdk/commit/927cab6e8a599d9737246220ceb54b245b3d4fc5)) + ## 0.11.2 (2025-09-24) Full Changelog: [v0.11.1...v0.11.2](https://github.com/onkernel/kernel-node-sdk/compare/v0.11.1...v0.11.2) diff --git a/api.md b/api.md index 7c4d2d7..cbf98aa 100644 --- a/api.md +++ b/api.md @@ -52,7 +52,7 @@ Methods: - client.invocations.retrieve(id) -> InvocationRetrieveResponse - client.invocations.update(id, { ...params }) -> InvocationUpdateResponse - client.invocations.deleteBrowsers(id) -> void -- client.invocations.follow(id) -> InvocationFollowResponse +- client.invocations.follow(id, { ...params }) -> InvocationFollowResponse # Browsers diff --git a/package.json b/package.json index f94a531..19e5d15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/sdk", - "version": "0.11.2", + "version": "0.11.3", "description": "The official TypeScript library for the Kernel API", "author": "Kernel <>", "types": "dist/index.d.ts", diff --git a/src/client.ts b/src/client.ts index a465779..91da4f0 100644 --- a/src/client.ts +++ b/src/client.ts @@ -35,6 +35,7 @@ import { KernelApp } from './core/app-framework'; import { InvocationCreateParams, InvocationCreateResponse, + InvocationFollowParams, InvocationFollowResponse, InvocationRetrieveResponse, InvocationStateEvent, @@ -870,6 +871,7 @@ export declare namespace Kernel { type InvocationFollowResponse as InvocationFollowResponse, type InvocationCreateParams as InvocationCreateParams, type InvocationUpdateParams as InvocationUpdateParams, + type InvocationFollowParams as InvocationFollowParams, }; export { diff --git a/src/resources/index.ts b/src/resources/index.ts index 96c9137..3d63b75 100644 --- a/src/resources/index.ts +++ b/src/resources/index.ts @@ -33,6 +33,7 @@ export { type InvocationFollowResponse, type InvocationCreateParams, type InvocationUpdateParams, + type InvocationFollowParams, } from './invocations'; export { Profiles, type ProfileListResponse, type ProfileCreateParams } from './profiles'; export { diff --git a/src/resources/invocations.ts b/src/resources/invocations.ts index 6ff470a..bc32630 100644 --- a/src/resources/invocations.ts +++ b/src/resources/invocations.ts @@ -83,8 +83,13 @@ export class Invocations extends APIResource { * const response = await client.invocations.follow('id'); * ``` */ - follow(id: string, options?: RequestOptions): APIPromise> { + follow( + id: string, + query: InvocationFollowParams | undefined = {}, + options?: RequestOptions, + ): APIPromise> { return this._client.get(path`/invocations/${id}/events`, { + query, ...options, headers: buildHeaders([{ Accept: 'text/event-stream' }, options?.headers]), stream: true, @@ -335,6 +340,13 @@ export interface InvocationUpdateParams { output?: string; } +export interface InvocationFollowParams { + /** + * Show logs since the given time (RFC timestamps or durations like 5m). + */ + since?: string; +} + export declare namespace Invocations { export { type InvocationStateEvent as InvocationStateEvent, @@ -344,5 +356,6 @@ export declare namespace Invocations { type InvocationFollowResponse as InvocationFollowResponse, type InvocationCreateParams as InvocationCreateParams, type InvocationUpdateParams as InvocationUpdateParams, + type InvocationFollowParams as InvocationFollowParams, }; } diff --git a/src/version.ts b/src/version.ts index b818b4c..e2bf0d1 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.11.2'; // x-release-please-version +export const VERSION = '0.11.3'; // x-release-please-version diff --git a/tests/api-resources/invocations.test.ts b/tests/api-resources/invocations.test.ts index baa3790..309612a 100644 --- a/tests/api-resources/invocations.test.ts +++ b/tests/api-resources/invocations.test.ts @@ -87,4 +87,16 @@ describe('resource invocations', () => { expect(dataAndResponse.data).toBe(response); expect(dataAndResponse.response).toBe(rawResponse); }); + + // Prism doesn't support text/event-stream responses + test.skip('follow: request options and params are passed correctly', async () => { + // ensure the request options are being passed correctly by passing an invalid HTTP method in order to cause an error + await expect( + client.invocations.follow( + 'id', + { since: '2025-06-20T12:00:00Z' }, + { path: '/_stainless_unknown_path' }, + ), + ).rejects.toThrow(Kernel.NotFoundError); + }); });