このプロジェクトについて

Linuraは、Linux向けの実験的なインテント駆動型システムレイヤーであり、人間の目標を宣言的でポリシー制御され、検証された機械状態に変換することを目的としています。自然言語をシェルコマンドに変換するのではなく、永続的な構造化インテントを捕捉し、機能と競合を解決し、望ましい状態を導出し、管理されたすべてのミューテーションを単一の正規の権威ライフサイクルを通じてルーティングします。 このプロジェクトは、信頼境界を分離したまま、2つのアイデアを組み合わせています。権威/コントロールプレーンは、型付きLinuxモデル、プロバイダー、11段階のミューテーションライフサイクル(リクエスト/インテント、観察、計画、検証、承認、準備、実行、検証、コミット、監査、調整)、ポリシーと承認の決定、狭い特権、独立した検証、クラッシュセーフなコミット、調整、監査を提供します。インテリジェンスプレーンは、永続的なユーザーインテント、再利用可能なセットアップ、ローカルファーストのライブラリ、システムグラフ、機能構成、依存関係と競合の解決、セマンティックな来歴、専門エージェント、初回起動UXを追加します。コントロールプレーンはAIなしで使用可能であり、インテリジェンスプレーンは権威プレーンを変更せずに置き換えることができます。 主要な概念には、セットアップ(rust-developmentやpostgresql-developmentなどの再利用可能なバージョン付きインテントスライス)とマシンプロファイル(マシン全体の構成)が含まれます。セットアップは、シェル履歴やファイルシステムスナップショットではなく、ポータブルなインテント、構成、制約を保存します。エクスポートはシークレット参照を運び、シークレット値は決して運びません。セットアップを再利用する場合、常にターゲットマシンを再観察し、機能を再解決し、新しい望ましい状態を導出し、ミューテーションの前に新しい計画を生成します。正確なスナップショットは、別のロールバック/リカバリメカニズムとして残ります。 述べられた不変条件には、linuradが非特権で実行されること、汎用の特権シェル実行APIが存在しないこと、エージェントが特権エグゼキュータハンドルを受け取らないこと、自然言語が実行可能なテキストではなくIntentProposalを生成すること、管理された状態がなぜ存在するかを説明するセマンティックな来歴を保持すること、未知またはサポートされていない状態がミューテーションに対してフェイルクローズすること、エグゼキュータの成功が結果の状態の証明ではなくディスパッチの証拠として扱われること、ローカルの決定論的操作、ライブラリ使用、リカバリがネットワークやモデルアクセスなしで機能することです。 リポジトリはRustワークスペースとして構成され、core、intent、graph、capability SDK、planner、provenance、agent runtime、policy、protocol、provider SDK、SDK facade、control、lifecycle、bootstrap、migrations、updateのクレートと、linurad、linuractl、first boot、control center、agent UI、Quickshell/QMLシェルのアプリが含まれます。また、バインディング、機能、ワークフロー、サーフェス、エージェント、エグゼキュータ、インターフェース、スキーマ、プロファイル、パッケージング、ドキュメントも含まれます。 ステータスはv0.9.0で、実験的と説明され、実験的初回起動とサポートされる参照環境を備えています。不変リリースは独立して検証されています。最初のインタラクティブワークステーションプロファイルターゲットは意図的に狭く(Arch Linux、systemd、Wayland/Hyprland、NetworkManager、PipeWire、BlueZ、UDisks2、Polkit、Btrfs/Snapper)、arch-hyprland-v1は現在のサポート境界の一部ではなく、v0.10の開発候補として位置付けられています。開発は狭い垂直スライス順序に従い、ブートストラップ品質ゲートはRust 1.98.0をfmt、clippy、test、repository-checkコマンドで固定します。Apache 2.0でライセンスされています。