runTrainer(file?) | core/runner.ts | arkor start が裏で呼んでいるもの。エントリーを解決し、トレーナーを選び(arkor を最優先、次に trainer、最後に default export)、start() + wait() を実行。 |
readCredentials() / writeCredentials() / ensureCredentials() | core/credentials.ts | ~/.arkor/credentials.json の読み書き。readCredentials はファイルが無いか内容が破損(不正な JSON)のとき null を返す(切り詰められたファイルは欠損として扱う)。ファイルが存在するが読めない場合(EACCES / EIO / EISDIR)のみ再 throw し、有効だが一時的にロックされたログインを黙って捨てないようにします。ensureCredentials は既存レコードがあれば返し、認証情報が無いか破損しているときは警告して 新規の匿名 ID を初期化(requestAnonymousToken を呼んで永続化)します。ファイルが存在するが読めない場合や、匿名トークン取得自体が失敗(ネットワーク/トークンエンドポイントエラー)した場合は throw します。writeCredentials はアトミックに書き込みます(temp ファイル + rename)。ファイルは SDK が書いている前提。 |
requestAnonymousToken(baseUrl, kind?) | core/credentials.ts | 新しい匿名トークンを直接発行。CLI は arkor login --anonymous と初回 arkor dev でこれを使う。 |
credentialsPath() | core/credentials.ts | ~/.arkor/credentials.json の絶対パス。 |
readState(cwd?) / writeState(state, cwd?) / statePath(cwd?) | core/state.ts | .arkor/state.json(プロジェクトルーティング)の読み書き。 |
isArkor(value) | core/arkor.ts | マニフェストの型ガード。 |
CloudApiClient | core/client.ts | クラウド API の型付きクライアント。*.arkor.app 推論 URL を管理する listDeployments / createDeployment / createDeploymentKey などを公開。完全なメソッド一覧と使用例は Deployments を参照。 |
CloudApiError | core/client.ts | CloudApiClient が非 2xx レスポンスで投げる Error クラス。.status と構造化された { error } body をそのまま保持するので、instanceof CloudApiError && err.status === 409 で slug 衝突などを分岐できます。 |
defaultArkorCloudApiUrl(credentials?) | core/credentials.ts | SDK が使うクラウド API のベース URL を解決します。優先順位: ARKOR_CLOUD_API_URL 環境変数 → 渡された credentials に保存された URL(匿名は signup 時、OAuth は arkor login が認証時の URL を保存するように更新済み)→ 本番エンドポイント。readCredentials() / ensureCredentials() で得た credentials から CloudApiClient を作るときに使い、ユーザーが認証した staging / self-hosted control plane に追従させます。 |