Sanad のインストール
検査から検証済みのSanadインストールまたは更新までユーザーをガイドします。 リリースユーザーと開発者ソースのワークフローは別々に保ってください。
安全ルール
- 何かを変更する前に検査すること。インストール、パッケージの置き換え、 サービス登録、アプリケーションの起動、Git更新はすべてミューテーションとして扱い、 ユーザーの同意を得た上で承認を得ること。
- チェックアウトを探すためにホームディレクトリ全体やディスクを検索しないこと。 カレントディレクトリ、ユーザーが指定したパス、標準のインストール済みコマンドの場所のみを検査すること。 安全に特定できない場合はプロジェクトパスを尋ねること。
- ユーザーが明示的にその操作を許可しない限り、ダーティリポジトリの上書き、リセット、クリーン、 スタッシュ、コミット、破棄を決して行わないこと。
- アクセストークン、リフレッシュトークン、プロバイダの認証情報、署名シークレット、 ユーザーコンテンツを要求、引用、記録、再構築しないこと。明示的に許可されたエージェント操作による リモートインストールの場合のみ、ユーザーの完全なデバイス追加コマンド(短期間有効で使い捨ての 作成トークンを含む)を受け入れること。公式のブートストラップを検証し、チャット/ツール履歴に エコー、トレース、永続化せずに送信し、そのトークンを抽出/再構築しないこと。この同意が チャット/ツール履歴への作成コマンドの露出をカバーし、生成されたインストーラコマンドが トークン引数を使用する可能性があることを説明すること。露出ゼロを主張しないこと。SSH転送引数は 認証情報なしで保持すること。ユーザーがその露出を受け入れない場合は、直接実行させるか、 対話型のPortalサインインを使用させること。この例外は永続的な認証情報には決して適用されません。
- 公式のSanadソースのみを使用すること:
- リポジトリ:
https://github.com/EastStarAI/sanad-agent - リリース:
https://github.com/EastStarAI/sanad-agent/releases/latest - インストーラ:
https://sanad.eaststarai.com/install.shおよびhttps://sanad.eaststarai.com/install.ps1
- リポジトリ:
- オペレーティングシステムのセキュリティ制御を無効にしないこと。現在の署名やプラットフォームの サポート状況を説明する前に、最新のリリースノートを読むこと。
- インストールおよび更新中、Sanad Homeとユーザーのワークスペースを保持すること。
Google Cloud高速ルート
Google Cloud / GCP / 無料クラウドサーバーのリクエストについては、 references/google-cloud-free-tier.md を読み、 その専門のリリースユーザールートに従うこと。以下の一般的なローカル/ソースの質問事項を繰り返さないこと。 これには、前提条件、最大2つの初期質問、リソースの再利用、適格なプロビジョニング、 ジャストインタイムのペアリング、最小限の組み込み検証が含まれます。上記の安全ルールを守ること。 無条件のゼロ請求を約束したり、既存の無料枠を複製したりしないこと。
1. ターゲットの検査
コマンドをユーザーの現在のマシンで実行するのか、リモートマシンで実行するのかを確認すること。 Sanad ClientをホストしているマシンがSanad Agentをホストすべきマシンであると想定しないこと。
読み取り専用の証拠を収集する:
- オペレーティングシステムとアーキテクチャを特定する。
sanadとsanad-devがPATH上で解決可能か確認する。- 関連する場合、インストーラが所有する実行可能ファイルを確認する:
- macOS/Linux:
${SANAD_HOME:-$HOME/.sanad}/bin/sanad - Windows:
$env:SANAD_HOME\bin\sanad.exe、またはSANAD_HOMEが設定されていない場合は$HOME\.sanad\bin\sanad.exe。
- macOS/Linux:
- 現在のディレクトリまたは指定されたディレクトリがGitチェックアウトの場合、以下を検査する:
git rev-parse --show-toplevel、git remote -v、git status --short --branch、git worktree list。リポジトリIDがEastStarAI/sanad-agentと一致するか、 ユーザーが意図的なフォークであることを確認した場合のみ、Sanadソースとして受け入れる。 - インストールされたバージョンとサービスの状態は、解決されたSanad実行可能ファイルを通じてのみ
クエリすること。
sanadがPATHにないからといって失敗しないこと。
変更を提案する前に、何が存在するかを要約すること。
2. ワークフローの選択
ユーザーのリクエストがすでにワークフローを明示している場合は、ターゲットを確認して続行する。 それ以外の場合は、以下の選択肢を提示し、希望するものを尋ねること:
| パス | 最適な用途 | 結果 | トレードオフ |
|---|---|---|---|
| リリース / ユーザー | 通常の日常使用 | パッケージ化されたClientと検証済みAgentリリース | 安定してシンプル。ソースは編集不可 |
| ソース / 開発者 | Sanadへの貢献、デバッグ、変更 | sanad-dev で実行されるリポジトリチェックアウト | 編集・テスト可能。開発ツールとより多くのディスク容量が必要 |
リリースパスの場合、トポロジを決定する:
- このデスクトップ: Sanad Clientをインストール。ローカルで実行は、同じコンピュータに 対応するAgentをインストールして起動する。
- 別のコンピュータまたはサーバー: Clientをデスクトップ、モバイル、またはWebに残し、 ターゲットマシンにSanad Agentのみをインストールする。
- Clientのみ: デスクトップ/モバイルClientをインストールするか、そのデバイスにAgentを インストールせずにWeb Clientを使用する。
正確なアクション、保存先、およびサービスへの影響を記載する。ダウンロード、インストール、 置き換え、登録、起動、再起動の前に承認を得ること。
3. リリース / ユーザーパス
クライアントとローカルエージェントのインストール
- 最新の公式リリースとそのマニフェストを読む。確認されたプラットフォームとアーキテクチャに 一致するClientパッケージのみを選択する。
- リリースによって公開されたチェックサム、署名、プラットフォームガイダンスを使用して アーティファクトを検証する。古いリリースの署名ステータスを現在のリリースに一般化しないこと。
- 通常のオペレーティングシステムのフローを使用してClientをインストールする。アプリケーション レビューやセキュリティプロンプトを黙ってバイパスしないこと。
- ユーザーにSanad Clientを起動し、ローカルで実行を選択するよう依頼する。Clientが ダウンロード、検証、登録、起動、対応するローカルAgentに接続することを説明する。 Sanadアカウントとペアリングトークンは必要ありません。
- ClientがローカルAgentに到達できることを確認してから成功を宣言する。
Android、iOS、Webの場合は、現在のリリースノートに記載されている可用性に従うこと。 これらのプラットフォームはインターフェースを提供しますが、ネイティブのAgentサービスは ホストしません。
別のコンピュータまたはサーバーへのエージェントのインストール
2つの同等の選択肢を提供する:
- Sanad Clientを介してペアリングする: 設定を開き、設定サイドバーのデバイスの横にある + をクリックしてデバイスの追加を開く。ユーザーにターゲットマシンで生成された完全な コマンドを実行させるか、使い捨ての作成トークン例外の下で許可されたリモートインストールのために その完全な生成コマンドを受け入れる。認証情報を個別に要求したり、コマンドをレポートに エコーしたりしないこと。
- Agentを直接インストールする: Portalサインインまたはローカルのみモードを選択し、承認後、 一致する公式インストーラを実行する。
エージェント操作のmacOS/Linuxターミナルでは、あいまいなプロンプトを避けること:
curl -fsSL https://sanad.eaststarai.com/install.sh | bash -s -- --login
ユーザーが明示的にローカルのみモードを選択した場合は、代わりに --no-login を使用すること。
エージェント操作のWindows PowerShellターミナルでは:
& ([scriptblock]::Create((irm https://sanad.eaststarai.com/install.ps1))) -Login
ユーザーが明示的にローカルのみモードを選択した場合は、代わりに -NoLogin を使用すること。
人間が対話的にインストーラを実行する場合は、明示的なログインオプションを省略してプロンプトに
回答しても構いません。
Portalサインインでは、ユーザーがURLを開いたりコードを入力する必要がある場合があります。
返された認証情報を公開せずに、その人間のアクションに対して一時停止すること。インストール後、
解決された実行可能ファイルのバージョンと service status を確認する。クラウド接続が選択された場合は、
Sanad Clientからデバイスを確認する。
パッケージ化されたインストールの更新
-
インストールされているClientとAgentのバージョンを検査し、変更する前に最新のリリースノートを 読む。
-
プラットフォームが所有する更新フローを通じてSanad Clientを更新する。パッケージ化されたClientを ソース出力で置き換えないこと。
-
スタンドアロンAgentを解決された実行可能ファイルを通じて更新する:
sanad updatesanadがPATHにない場合は、実行可能ファイルの完全パスを使用すること。アップデータがrestart_requiredを報告した場合は、承認を得てsanad service restartを実行する。 -
最終バージョン、サービスの状態、ClientからAgentへの接続、およびSanad Homeの保持を確認する。 手動で行う必要があるプラットフォームの手順があれば報告する。
4. ソース / 開発者パス
チェックアウトの準備
一致するチェックアウトがすでに存在する場合は、そのパス、ブランチ、ワークツリー、リモート、 ダーティ状態を報告した後にのみ使用すること。黙って重複をクローンしないこと。
チェックアウトが存在しない場合は、保存先を提案して承認を得てから、次を実行する:
git clone https://github.com/EastStarAI/sanad-agent.git sanad-agent
cd sanad-agent
さらに作業を進める前に、リポジトリの AGENTS.md、docs/llms.txt、および最も近いネストされた
コントラクトを読むこと。すべてのDartまたはFlutter操作にはFVMを使用すること。
ユーザースコープの開発コマンドを一度インストールする。
macOS/Linuxの場合:
scripts/sanad-dev install
Windows PowerShellの場合:
.\scripts\sanad-dev.ps1 install
次に、すべてのプラットフォームで一致するAgentとClientのペアを実行する:
sanad-dev run
ユーザーが明示的にローカルのみの開発を希望する場合にのみ、sanad-dev run --no-cloud を使用すること。
検証には sanad-dev status と範囲指定された sanad-dev logs agent -n 50、sanad-dev logs client -n 50 の
呼び出しを使用すること。AIツールの呼び出しからログフォローモードを決して使用しないこと。
開発者チェックアウトの更新
- アクティブなブランチ、アップストリーム、ワークツリー、ダーティファイルを検査する。
- 意図したリモートを確認した後にのみ
git fetchを実行する。統合前に受信コミットを説明する。 - 意図した追跡ブランチ上のクリーンなチェックアウトに対しては、
git pull --ff-onlyを提案する。 暗黙的にマージコミットを作成しないこと。 - ダーティなチェックアウトの場合は停止し、保存オプションを提示する。明示的な許可なしに、 スタッシュ、コミット、リベース、スイッチ、リセット、破棄を行わないこと。
- ソースの更新が成功した後、プラットフォーム固有の
sanad-dev installを再実行する。その後、sanad-dev runまたはユーザーが要求した範囲指定された検証コマンドを使用する。 - ソース/FVMランタイムに対して
sanad updateを決して使用しないこと。ソースの更新はGitとsanad-devに属します。
5. 結果の報告
以下を報告する:
- 選択されたワークフローとターゲットマシン
- 検出および最終バージョン
- Client、Agent、リポジトリ、サービスの状態
- 検証コマンドと結果
- まだ必要な手動ユーザーアクション
- 変更されたファイル、サービス、またはGitの状態
ダウンロードやコマンドの終了コードだけで成功を主張しないこと。関連するサービスまたは ClientからAgentへのヘルスエビデンスを要求すること。ユーザーがその個別のアクションを明示的に 要求しない限り、ユーザーデータをコミット、プッシュ、公開、削除しないこと。