SDK 提供予定

型付きクライアント、常に同期。

Python と TypeScript のクライアントは、API と同じソースから生成されるため、実際の挙動から乖離しようがありません。まだ公開はしていません。先に API の契約が固まる必要があります。

公開済みのパッケージはありません。 現在、 untactit-sdk というパッケージは PyPI にも npm にも存在しません。インストール時に気づかせるより、先にそう明言するほうが誠実だと考えています。SDK の提供は、パブリック API の契約が固定されてからです。動き続けるサーフェスに対して生成されたクライアントは、無いよりも悪いものになるからです。

なぜ待つのか

手書きではなく、生成で。

どちらのクライアントも、OpenAPI ドキュメントを生成するのと同じ定義から生成されます。手作業でメンテナンスされる SDK は 2 リリースで API から取り残され、そのずれは、当社側ではなくお客様側のコードが壊れるまで見えません。

これは同時に、API サーフェスが安定した瞬間、どちらかが遅れることなく両言語が同時に揃うことも意味します。

確定済みのスコープ

Python 3.9+
全体に型ヒント付き、MIT ライセンス
TypeScript / Node 18+
ESM・CJS 両対応、完全な型定義付き
型付きエラー
分岐は例外クラスで行い、メッセージ文字列はパースしない
自動リトライ
429・5xx はバックオフ付きで再試行。制限値も参照可能

想定している形 提供予定

実際の使い方は、こうなります。

実物ができる前に、自分たちのコードベースに合うかを判断できるよう、いま公開しています。

Python
from untactit import Client

c = Client(token="YOUR_TOKEN")

for a in c.assets.list(layer="company", status="live"):
    print(f"{a.name} v{a.version} -> {a.targets}")

draft = c.assets.get("pricing-objection-handler")
c.assets.propose(draft.id, note="Updated Q3 pricing")
TypeScript
import { Untactit } from "untactit-sdk";

const c = new Untactit({ token: process.env.TOKEN! });

const assets = await c.assets.list({
  layer: "company",
  status: "live",
});

チームがこれで作るもの

3 つのパターンで大半をカバーできます。いずれも十数行以内です。

CI からの配信

リリースパイプラインの一部として昇格と配信を行い、エージェントへの指示を、それに依存するコードと一緒に出荷できます。

監査ログを自社スタックへ

監査エンドポイントを定期的に取得し、セキュリティチームが普段見ている場所へ転送します。これは素の HTTP だけで、今日から実現できます。

カスタムダッシュボード

部門別のカバレッジ、プラットフォーム別のドリフト、半年間誰も触れていないアセット。チームが本当に必要としているビューです。


その他の言語

API は HTTPS 上の素の REST なので、どの HTTP クライアントでも動作しますし、今後も変わりません。当社が Python と TypeScript をメンテナンスするのは、自社のツーリングがこの 2 つを使っているからです。自分たちで動かさないクライアントの保守は、テストしないものを出荷することと同じです。

Go・Ruby・Rust のクライアントをここに掲載してほしい場合は、 [email protected]までご連絡ください。こちらでリンクを掲載し、API の変更はリリース前にお知らせします。

エージェントが何で動いているのか。推測は、もう終わり。

ワークスペースをひとつ接続するだけで、チームで動いているスキル・ルール・メモリの全体が見えます。所要はおよそ10分です。

無料で始める 相談する

クレジットカードは不要です。いまお使いのツールのままで動きます。