Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/hypeman-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node
uses: actions/setup-node@v4
Expand All @@ -46,7 +46,7 @@ jobs:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node
uses: actions/setup-node@v4
Expand All @@ -67,7 +67,7 @@ jobs:
- name: Get GitHub OIDC Token
if: github.repository == 'stainless-sdks/hypeman-typescript'
id: github-oidc
uses: actions/github-script@v6
uses: actions/github-script@v8
with:
script: core.setOutput('github_token', await core.getIDToken());

Expand All @@ -84,7 +84,7 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/hypeman-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node
uses: actions/setup-node@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Set up Node
uses: actions/setup-node@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
if: github.repository == 'onkernel/hypeman-ts' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Check release environment
run: |
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0"
".": "0.2.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 30
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fhypeman-cfdd18a303e2e6c87d671e6ae3ecdcd1d9642b053c2ef6bc507eee3f55cc6aa8.yml
openapi_spec_hash: 0b038c955d95740ace74103a9c18d5a3
config_hash: f65a6a2bcef49a9f623212f9de6d6f6f
configured_endpoints: 37
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fhypeman-cf9805637aaf9bf590b5ebc1e7430414850aff0c8ad727a017df290ea8df9913.yml
openapi_spec_hash: e27144cf0b24dc74fbdb77d8e24d818f
config_hash: d67a314ba1fda8242041000fc9160e92
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Changelog

## 0.2.0 (2026-01-31)

Full Changelog: [v0.1.0...v0.2.0](https://github.com/onkernel/hypeman-ts/compare/v0.1.0...v0.2.0)

### Features

* add boot time optimizations for faster VM startup ([20a98ea](https://github.com/onkernel/hypeman-ts/commit/20a98ea15491dc399f57ea5cc5d10f2549d1c4bd))
* Add to stainless config new API endpoints ([72cbe88](https://github.com/onkernel/hypeman-ts/commit/72cbe8848676023c5cc9c270d5936c37ddf3e3f3))
* Add vGPU support ([4eade24](https://github.com/onkernel/hypeman-ts/commit/4eade24f03d1e9ef5d62757ae8a9bc3a0f446f13))
* **api:** manual updates ([5534841](https://github.com/onkernel/hypeman-ts/commit/5534841c1706682c4a75e502afafb3f1f399069c))
* **builds:** implement two-tier build cache with per-repo token scopes ([53c9b24](https://github.com/onkernel/hypeman-ts/commit/53c9b248c245c1cb5f1e0dae46a1448de430c283))
* Resource accounting ([57ff511](https://github.com/onkernel/hypeman-ts/commit/57ff511aa73bbc08b67496d7b807418b9342dc87))
* Use resources module for input validation ([8dc08a4](https://github.com/onkernel/hypeman-ts/commit/8dc08a468794e1fead711c5c1b538d02cd7f49c9))


### Chores

* break long lines in snippets into multiline ([48ae7b9](https://github.com/onkernel/hypeman-ts/commit/48ae7b93d321533d96fc9e5be246450fb93eb725))
* **ci:** upgrade `actions/github-script` ([46d5e26](https://github.com/onkernel/hypeman-ts/commit/46d5e26a7c2d5f53b4a9d88558d0f96561cf1b7d))
* **internal:** update `actions/checkout` version ([ba20375](https://github.com/onkernel/hypeman-ts/commit/ba2037568735937bda37a9ca386c781eb00e723a))
* **internal:** update lock file ([8593b7c](https://github.com/onkernel/hypeman-ts/commit/8593b7c196af2b6b63121135a5a3dc18edfec04e))
* **internal:** upgrade babel, qs, js-yaml ([cad9e24](https://github.com/onkernel/hypeman-ts/commit/cad9e2468b82a08e525c728e61a1e7266e1fc1b7))
* **internal:** upgrade brace-expansion and @babel/helpers ([bef9226](https://github.com/onkernel/hypeman-ts/commit/bef9226de43a88d06e8a9688b7701e44c311ebf4))

## 0.1.0 (2025-12-23)

Full Changelog: [v0.0.2...v0.1.0](https://github.com/onkernel/hypeman-ts/compare/v0.0.2...v0.1.0)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2025 Hypeman
Copyright 2026 Hypeman

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,35 @@ const response: Hypeman.HealthCheckResponse = await client.health.check();

Documentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.

## File uploads

Request parameters that correspond to file uploads can be passed in many different forms:

- `File` (or an object with the same structure)
- a `fetch` `Response` (or an object with the same structure)
- an `fs.ReadStream`
- the return value of our `toFile` helper

```ts
import fs from 'fs';
import Hypeman, { toFile } from '@onkernel/hypeman';

const client = new Hypeman();

// If you have access to Node `fs` we recommend using `fs.createReadStream()`:
await client.builds.create({ source: fs.createReadStream('/path/to/file') });

// Or if you have the web `File` API you can pass a `File` instance:
await client.builds.create({ source: new File(['my bytes'], 'file') });

// You can also pass a `fetch` `Response`:
await client.builds.create({ source: await fetch('https://somesite/file') });

// Finally, if none of the above are convenient, you can use our `toFile` helper:
await client.builds.create({ source: await toFile(Buffer.from('my bytes'), 'file') });
await client.builds.create({ source: await toFile(new Uint8Array([0, 1, 2]), 'file') });
```

## Handling errors

When the library is unable to connect to the API,
Expand Down
36 changes: 36 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ Methods:
- <code title="post /volumes">client.volumes.<a href="./src/resources/volumes.ts">create</a>({ ...params }) -> Volume</code>
- <code title="get /volumes">client.volumes.<a href="./src/resources/volumes.ts">list</a>() -> VolumeListResponse</code>
- <code title="delete /volumes/{id}">client.volumes.<a href="./src/resources/volumes.ts">delete</a>(id) -> void</code>
- <code title="post /volumes/from-archive">client.volumes.<a href="./src/resources/volumes.ts">createFromArchive</a>(body, { ...params }) -> Volume</code>
- <code title="get /volumes/{id}">client.volumes.<a href="./src/resources/volumes.ts">get</a>(id) -> Volume</code>

# Devices
Expand Down Expand Up @@ -102,3 +103,38 @@ Methods:
- <code title="get /ingresses">client.ingresses.<a href="./src/resources/ingresses.ts">list</a>() -> IngressListResponse</code>
- <code title="delete /ingresses/{id}">client.ingresses.<a href="./src/resources/ingresses.ts">delete</a>(id) -> void</code>
- <code title="get /ingresses/{id}">client.ingresses.<a href="./src/resources/ingresses.ts">get</a>(id) -> Ingress</code>

# Resources

Types:

- <code><a href="./src/resources/resources.ts">DiskBreakdown</a></code>
- <code><a href="./src/resources/resources.ts">GPUProfile</a></code>
- <code><a href="./src/resources/resources.ts">GPUResourceStatus</a></code>
- <code><a href="./src/resources/resources.ts">PassthroughDevice</a></code>
- <code><a href="./src/resources/resources.ts">ResourceAllocation</a></code>
- <code><a href="./src/resources/resources.ts">ResourceStatus</a></code>
- <code><a href="./src/resources/resources.ts">Resources</a></code>

Methods:

- <code title="get /resources">client.resources.<a href="./src/resources/resources.ts">get</a>() -> Resources</code>

# Builds

Types:

- <code><a href="./src/resources/builds.ts">Build</a></code>
- <code><a href="./src/resources/builds.ts">BuildEvent</a></code>
- <code><a href="./src/resources/builds.ts">BuildPolicy</a></code>
- <code><a href="./src/resources/builds.ts">BuildProvenance</a></code>
- <code><a href="./src/resources/builds.ts">BuildStatus</a></code>
- <code><a href="./src/resources/builds.ts">BuildListResponse</a></code>

Methods:

- <code title="post /builds">client.builds.<a href="./src/resources/builds.ts">create</a>({ ...params }) -> Build</code>
- <code title="get /builds">client.builds.<a href="./src/resources/builds.ts">list</a>() -> BuildListResponse</code>
- <code title="delete /builds/{id}">client.builds.<a href="./src/resources/builds.ts">cancel</a>(id) -> void</code>
- <code title="get /builds/{id}/events">client.builds.<a href="./src/resources/builds.ts">events</a>(id, { ...params }) -> BuildEvent</code>
- <code title="get /builds/{id}">client.builds.<a href="./src/resources/builds.ts">get</a>(id) -> Build</code>
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onkernel/hypeman",
"version": "0.1.0",
"version": "0.2.0",
"description": "The official TypeScript library for the Hypeman API",
"author": "Hypeman <>",
"types": "dist/index.d.ts",
Expand Down
Loading