No description
  • TypeScript 88.4%
  • JavaScript 7.1%
  • Python 3.5%
  • CSS 0.9%
  • Nix 0.1%
Find a file
centra e0a2432247
Some checks are pending
Docker image / build (push) Waiting to run
The data-files test reads the totals in the panel, where the numbers are
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HBDKHcwkGhxUbE2CcsYVDz
2026-11-13 21:20:09 +09:00
.gitea/workflows Prepare minimal Forgejo runner containers for Nix installation 2026-10-08 16:13:51 +09:00
configs compaction-agent eval: --scale for longer logs, --max-input/--keep-recent product; configs/deepseek-v41-flash-host.json (a hosted DeepSeek V4.1 Flash, 1M) 2026-11-08 11:43:36 +09:00
docs Toasts wait under a rail that comes over the page 2026-11-13 21:15:11 +09:00
evals What people read when a plugin call fails says "plugin", the word Settings uses: the failures of the module worker, the module runtime and the executor, a nameless hook's step, and the worker log, now <state>/plugin-workers.log 2026-11-11 12:17:36 +09:00
examples Support external plugin panels and APIs with public contracts and authoring skill 2026-11-12 01:35:44 +09:00
nix Add all-in-one Docker runtime and simplify usage documentation 2026-10-08 15:38:36 +09:00
scripts npm test brings the desktop set, Chromium and fonts from the flake; the network test finds pasta as the product does 2026-11-13 15:39:49 +09:00
src Toasts wait under a rail that comes over the page 2026-11-13 21:15:11 +09:00
test The data-files test reads the totals in the panel, where the numbers are 2026-11-13 21:20:09 +09:00
.gitignore Agent worktrees under .claude/worktrees are not part of the repo: drop the gitlinks 3dce51b recorded and ignore the directory 2026-11-02 16:44:53 +09:00
.inle-worktree.json Share node_modules into agent worktrees via .inle-worktree.json link 2026-10-10 20:22:10 +09:00
AGENTS.md AGENTS.md: the UI follows the harness's changes and improves alongside them, no longer last 2026-11-11 11:14:09 +09:00
compose.yaml Add all-in-one Docker runtime and simplify usage documentation 2026-10-08 15:38:36 +09:00
flake.lock Add a flake so inle runs with nix run 2026-09-24 02:00:42 +09:00
flake.nix npm test brings the desktop set, Chromium and fonts from the flake; the network test finds pasta as the product does 2026-11-13 15:39:49 +09:00
package-lock.json Redesign web fetch as retained Markdown reading documents 2026-11-11 21:24:38 +09:00
package.json Support external plugin panels and APIs with public contracts and authoring skill 2026-11-12 01:35:44 +09:00
README.md npm test brings the desktop set, Chromium and fonts from the flake; the network test finds pasta as the product does 2026-11-13 15:39:49 +09:00
tsconfig.json SDK apps for the agent: a directory in the prompt (each app, one line), sdk_help on an app / app.function / guide from an index built from the code's signatures and doc comments, sdk_search by words over functions, guides and drivers (a decision-model rerank was tried and dropped) 2026-10-01 04:23:19 +09:00

inle

ローカルのTypeScript agent harness。CLIとブラウザーのWeb UIが同じ実行状態を共有する(TUIは2026-11-02に削除した)。開発・利用にはNode.js 24以降が必要。

開発と起動

npm ci
npm test
npm run check
npm run demo
npm start -- run "…" --model-config configs/qwen-local.json
npm start -- ui
npm start -- ui --no-daemon --port 4317
npm start -- daemon status

npm testは、仮想デスクトップ・Chromium・フォントをflakeから一度ビルドして使う(scripts/test-tools.ts、node_modules/.cache/inle-test-tools。flake.nixかflake.lockが変わるとビルドし直す)。nixが無ければ、それらを使う試験は飛ばす。環境変数INLE_DESKTOP・INLE_DESKTOP_DEFAULT・INLE_CHROME・INLE_FONTCONFIG_DEFAULTを渡せば、そちらを使う。

接続先はconfigs/、各providerのログイン、または自分で動かすOpenAI互換サーバー(Web UIのSettings → Local modelsかinle config set --user localModels <name>=<URL>、モデルとwindowはサーバーから読む。詳細)から選ぶ。実モデルを呼ぶ前に試験方針と公開model ID・利用可否を確認する。通常の保存先は$INLE_HOME/store(既定~/.local/state/inle/store)。開発時のブラウザー・デスクトップ依存も含む環境はnix developで用意できる。

Tool契約

公開toolはflatなsnake_case名と同じ引数objectを持つ。hostのToolOutputはvalue / failure / annotations / referencesを分け、TS関数は値を返す(失敗はToolError)。agent表示の文章をparseし直さない。read/editは直接使える。providerのtool arrayはcore定義とload_toolsで取得した定義で、group indexは常に見える。未取得の利用可能なtoolも同じ名前で直接呼べる。独立した呼出しは1応答の通常の並列call、順序・派生・分岐はexecute_ts(batch・invoke_toolは2026-10-14に削除)。

TSセルではcanonical関数をglobal、または@inle/workからのnamed importで呼ぶ。iteration・並列・集計は普通のJS、観測はconsole logと最後の式で行う。tool surfaceやTS entryを選ぶ設定、別namespaceのSDK、help/searchによるtool差し替えはない。詳しくは統一toolとTSセル。

誰が何をしているかはharnessがstoreから作る状況表だけが示し、エージェントは任意のtodo(itemsは一覧全体の置換、noteは付記、どちらもなければ読む)を自分用に持てる。todoは何も導出・起動・待機しない。agent_spawnはpromptで子をその場で始め、後の段はwait({for:{agents:[id]}})等で待つ。受理・統合は親の判断であり、自動化や終了fence、旧board/task_update/asyncMode/planの互換経路はない。

セッションに作業フォルダを追加する

会話の入力欄で /folder add [--read-only] <path>、/folder list、/folder remove <path> を使う。空白のあるパスは引用符で囲む(例:/folder add --read-only "../reference docs")。相対パスはそのセッションの主workspace基準、~/も使える。登録は既存ディレクトリの実パスで保存し、同じパスを再追加すると読み取り専用/読み書きを切り替える。最大32件。主workspace・登録済みrootと重なるフォルダ、inleのstore内部やそれを含むフォルダは登録できない。

追加一覧はその会話に保存され、再開後も維持される。別の独立した会話には共有しない。通常のサブエージェントは主セッションの最新一覧を継承し、一覧の変更は主セッションでだけ行える(btwには継承しない)。/folder listは既存のDetails(/status)を開き、/contextでもパスと権限を確認できる。主workspace・既定cwd・Changesの比較基準は変わらないので、追加先の変更はそのリポジトリで明示的に確認する。追加先で作業する前に適用されるAGENTS.mdを読む(全文を自動注入する機能ではない)。

これは作業対象の追加であり、OS sandboxではない。登録は不足している操作権限を増やさず、shell isolationなしのexecは登録外にもアクセスできる。読み取り専用や解除は全プロセス・全アクセス経路に対する禁止ではない。変更は後続要求のpath/sandbox mount検証時点で反映する(競合するin-flight要求を原子的に取り消す機能ではない)。実行中job/TS cellのmountは維持して停止せず、既存cellからの新しいSDK呼出しは現在の登録で再検証する。削除済みフォルダも保存された実パスで解除できる。追加先へ適用される祖先AGENTS.md/CLAUDE.mdだけはread-onlyの子も直接読めるが、祖先の他のfileやsymlinkへのアクセスを広げず、登録解除でこの許可も消える。追加repoすべてのsnapshotを自動作成する機能ではない(既存の編集前snapshotには外部repoが含まれる場合がある)。共通セッション層に詳細。

外部プラグイン

inleのインストール先を変えず、別ディレクトリの信頼するコードを plugins.load に登録してtool・右ペイン・JSON APIを追加できる。使い方と公開API、依存packageなしのHello panel例を参照。server/ブラウザーのコードはsandboxではない。

リポジトリの地図

場所 内容
src/ harness、provider、統一tool/TSセル、永続化、CLI/web UI
test/ 決定的な単体試験、固定fixture、test/live/の実モデル確認
evals/ 再利用する評価harness、採点、課題定義(使い方)
configs/ 接続設定・model catalog lock(秘密情報は入れない)
scripts/ ビルド識別子、運用・配備・DB移行などの保守script
examples/ npm run demoとpluginのモジュールの最小fixture
flake.nix・nix/ Nix package、ブラウザー/desktop、Docker image
.gitea/・compose.yaml image CIとコンテナ起動
docs/ 現行の仕組み・操作・評価設計

ビルド・運用

nix build .#inle
nix run . -- --help
nix build .#docker-image

Linuxの既定packageはChromiumと仮想デスクトップ込み。最小構成や配備手順はDocker運用、常設serviceはdaemonを参照。scripts/deploy-inle.mjsは稼働serviceを変更する保守用scriptなので、許可された配備時だけ使う。

記録とアーカイブ

rawなlog・JSON・trace・一回限りのscriptはrepo外の/mnt/d2/centra/inle-evidence/<YYYYMMDD>-<topic>/へ置き、sha256 manifestを付ける。長く参照する知見だけ現行文書を更新する。

整理前の全fileはローカルのannotated tag archive/pre-tidy-20261010 にある(未push)。git ls-tree -r --name-only archive/pre-tidy-20261010 -- docs evalsで過去記録を探し、git show archive/pre-tidy-20261010:<path>で無改変の内容を読む。