Package とバージョン
Bundle の形式、バージョン、アップロード。
Bundle
Package は gzip で圧縮した tar としてアップロードします。tar の最上位には次のものだけを置きます。
- subako-package.json
- module.wasm
- assets/
- templates/
- report.typ
- logo.png
- templates/
| エントリー | |
|---|---|
subako-package.json |
Manifest。必須で、最大 256 KiB。 |
module.wasm |
WASI preview 1 向けにビルドした Module。必須。ABI を参照してください。 |
assets/ |
任意。Module が /package/<path> から読み取り専用で読むファイルです。通常のファイル (シンボリックリンクは不可) を最大 10,000 個まで置けます。各 Path は最大 1,024 バイトです。 |
Bundle 全体のサイズは、圧縮した状態でも展開した状態でも最大 64 MiB です。最上位にこれ以外のエントリー (README、.DS_Store、macOS の ._ ファイルなど) があると拒否されます。テンプレートの package.sh が COPYFILE_DISABLE=1 tar --format=ustar でまとめるのはそのためです。
Manifest
{
"abi": 1,
"name": "orders",
"description": "Looks orders up, and cancels them."
}
| フィールド | |
|---|---|
abi |
1。Subako が実行する唯一の ABI です。 |
name |
Package の名前。小文字の英字、数字、- からなる 1 から 32 文字です。Grant では、別の名前を指定しない限りこれが Grant の名前になります。 |
description |
最大 1,024 文字。Package を選ぶ人に表示されます。 |
Manifest には Tool を書きません。Package のアップロード時に Subako が Module に問い合わせるので、Tool の一覧は常に Module が実際に提供しているものと一致します。
バージョン
アップロードするたびに新しいバージョンができます。番号は 1 から順に振られ、一度できたバージョンの中身は変わりません。修正をアップロードすると次の番号のバージョンが追加され、それをどこで使うかは Grant の設定で決まります。
- Package の最新バージョンを Grant している Agent のバージョンでは、これから開始する Session で新しいバージョンが使われます。
- 特定のバージョンに固定している Agent のバージョンでは、新しい Agent のバージョンで別のバージョンを指定するまで、そのバージョンのままです。
- どちらの場合も、すでに実行中の Session は開始時のバージョンを使い続けます。
コンソールの Package のページでは、各バージョンについて、追加日時、Module のサイズと SHA-256、Asset、Tool とその Parameter や Schema を確認できます。

その他の操作からは、Package の名前の代わりに表示する表示名を付けたり、Package をすべてのバージョンごと削除したりできます。公開済みの Agent のバージョンが Package を Grant している間や、Session が Package を使っている間は削除できません。
アップロード
Function › Package をアップロードから、Archive をアップロードするか、Manifest と Module (と Asset) を別々のファイルとして選びます。別々のファイルは、ブラウザーが 1 つにまとめます。次のバージョンは、Package のページの 新しいバージョンをアップロード から追加します。

subako function create dist/orders.tar.gz # バージョン 1
subako function push <function-id> dist/orders.tar.gz # 次のバージョン
subako function listどちらのコマンドも、Archive の代わりにディレクトリを渡すと、その中身をすべてまとめてアップロードします。そのため、ディレクトリには Bundle のエントリーだけを置いてください。
curl -X POST https://api.us.cloud.subako.ai/v1/functions \
-H "Authorization: Bearer $SUBAKO_API_KEY" \
-H "Content-Type: application/gzip" \
--data-binary @dist/orders.tar.gz
curl -X POST https://api.us.cloud.subako.ai/v1/functions/$FUNCTION_ID/versions \
-H "Authorization: Bearer $SUBAKO_API_KEY" \
-H "Content-Type: application/gzip" \
--data-binary @dist/orders.tar.gzAPI key には Function › 管理 の権限が必要です。どちらも、作成したバージョンを Module が列挙した Tool とともに返します。詳細は API リファレンスを参照してください。
アップロードが拒否された場合は、その理由が示されます。たとえば、Bundle に置けないエントリーがある、Subako が提供しない import を Module が必要としている、Module が tools/list に応答しない、Tool の名前や Schema が決まりに違反している、などです。
Organization が持てる Package の数には、Plan ごとに上限があります。バージョンの数は数えません。詳しくは Plan と使用量を参照してください。