fix: remove generic overlay startup path
This commit is contained in:
@@ -89,16 +89,13 @@ permission = "write"
|
||||
|
||||
`[model]` は `ref = "<provider>/<model_id>"` でプロバイダ / モデルカタログを引く短縮形と、`scheme` / `model_id` / `auth` を直書きする inline 形式の両方を受ける。カタログは `resources/{providers,models}/builtin.toml` を builtin、`<config_dir>/{providers,models}.toml` を user override として解決する(`<config_dir>` の解決ルールは `manifest::paths` 参照)。詳細は `docs/pod-factory.md` と `crates/provider/README.md`。
|
||||
|
||||
### PodFactory: カスケード設定
|
||||
### Manifest / profile 入力
|
||||
|
||||
マニフェストを手書きせず、4 層のカスケードで `PodManifest` を組み立てる:
|
||||
通常の Pod 起動は Nix profile discovery/default から `PodManifest` を生成する。bundled `builtin:default` が fallback default で、user/project `profiles.toml` は profile registry と default selection だけを担う。user/project `manifest.toml` の ambient cascade は通常起動では使わない。
|
||||
|
||||
1. **ビルトインデフォルト** — `manifest::defaults` の定数値
|
||||
2. **ユーザー manifest** — `<config_dir>/manifest.toml`(`manifest::paths` で解決)
|
||||
3. **プロジェクト manifest** — `.insomnia/manifest.toml`(cwd から上方向に探索)
|
||||
4. **プログラマティック overlay** — CLI / GUI / spawn 時のインライン指定
|
||||
`insomnia-pod --manifest <PATH>` は explicit one-file compatibility/debug input で、指定 TOML 1 枚だけに builtin defaults を merge し、`PodManifestConfig -> PodManifest` の required validation を通す。
|
||||
|
||||
マージ規則: スカラーは上層が置換、Map はキー単位マージ、`scope.allow` / `scope.deny` は union。全パスは絶対パスのみ。
|
||||
`PodFactory` の user/project/overlay API は低レベル構成部品として残るが、CLI の通常起動 path では generic TOML overlay を公開しない。
|
||||
|
||||
### Instruction とプロンプト資産
|
||||
|
||||
|
||||
@@ -87,6 +87,8 @@ A profile should evaluate to one of:
|
||||
|
||||
The resolved artifact is deserialized into the same `PodManifestConfig -> PodManifest` boundary used by direct one-file manifests, so builtin defaults and required-field validation stay shared. Explicit profile paths and user/project registry profile artifacts resolve relative manifest paths against the profile file's directory. Builtin profile artifacts resolve manifest-relative paths against the launch workspace/current directory so the bundled default can grant `scope.allow target = "."` for the workspace rather than for `resources/nix/profiles`.
|
||||
|
||||
Profile and one-file manifest CLI paths currently use builtin prompt assets only. `$insomnia/...` instruction refs work; `$user/...` and `$workspace/...` prompt refs need a future explicit prompt-loader source design instead of reviving ambient manifest discovery.
|
||||
|
||||
Secret values must stay as typed references. `resources/nix/profile-lib.nix` emits secret references as JSON like:
|
||||
|
||||
```json
|
||||
|
||||
@@ -192,8 +192,8 @@ host_a (spawner) host_b (remote)
|
||||
Pod A (pod binary + ssh のみ)
|
||||
│
|
||||
├── ssh: session データを転送 ────────→ ファイル書き込み
|
||||
├── ssh: overlay TOML を転送 ─────────→ ファイル書き込み
|
||||
├── ssh: `insomnia-pod --overlay ... &` ───────→ Pod プロセス起動、socket 作成
|
||||
├── ssh: profile / one-file manifest 入力を転送 ─→ 必要ならファイル書き込み
|
||||
├── ssh: `insomnia-pod --profile ... &` ───────→ Pod プロセス起動、socket 作成
|
||||
├── ssh -L: socket を tunnel ─────────→ Pod B の unix socket
|
||||
│
|
||||
└── localhost:tunnel に接続 ──────────→ Method::Run / Event stream
|
||||
@@ -203,14 +203,14 @@ host_a (spawner) host_b (remote)
|
||||
### コマンドイメージ
|
||||
|
||||
```bash
|
||||
# 1. session + overlay を転送
|
||||
# 1. session + profile/manifest input を転送
|
||||
ssh insomnia@host-b "mkdir -p ~/workspaces/task-123/store"
|
||||
tar cz session/ | ssh insomnia@host-b "tar xz -C ~/workspaces/task-123/store"
|
||||
echo "$OVERLAY" | ssh insomnia@host-b "cat > ~/workspaces/task-123/overlay.toml"
|
||||
scp profile.nix insomnia@host-b:~/workspaces/task-123/profile.nix
|
||||
|
||||
# 2. Pod を起動(detach)
|
||||
ssh insomnia@host-b "insomnia-pod --store ~/workspaces/task-123/store \
|
||||
--overlay ~/workspaces/task-123/overlay.toml &"
|
||||
--profile ~/workspaces/task-123/profile.nix &"
|
||||
|
||||
# 3. socket を tunnel で引っ張る
|
||||
ssh -L /tmp/pod-b.sock:/run/insomnia/task-123/pod.sock insomnia@host-b
|
||||
|
||||
+1
-2
@@ -347,7 +347,6 @@ insomnia-pod [--profile <selector>] [--profile-pod-name <name>] [-s/--store <pat
|
||||
|---|---|
|
||||
| `--profile <selector>` | builtin/user/project profile registry から Nix profile を選択。省略時は registry default(通常は `builtin:default`) |
|
||||
| `--profile-pod-name <name>` | profile 由来 manifest の `pod.name` を fresh spawn 用に上書き |
|
||||
| `--overlay <toml>` | TUI/launcher compatibility 用の inline override。user/project manifest discovery は行わない |
|
||||
| `-s, --store <path>` | セッション永続化ディレクトリ(デフォルト: `<data_dir>/sessions/`、`manifest::paths` で解決) |
|
||||
| `--session <uuid>` | 既存 session id から Pod を復元し、同じ jsonl に後続 turn を追記する |
|
||||
|
||||
@@ -357,7 +356,7 @@ insomnia-pod [--profile <selector>] [--profile-pod-name <name>] [-s/--store <pat
|
||||
insomnia-pod --manifest <path> [-s/--store <path>] [--session <uuid>]
|
||||
```
|
||||
|
||||
`--manifest` は指定 TOML 1 枚だけを読み、builtin defaults を merge したうえで `PodManifestConfig -> PodManifest` の required validation を通す。user / project manifest layer は読まない。`--profile`、`--project`、`--overlay` とは併用不可。
|
||||
`--manifest` は指定 TOML 1 枚だけを読み、builtin defaults を merge したうえで `PodManifestConfig -> PodManifest` の required validation を通す。user / project manifest layer は読まない。`--profile`、`--project` とは併用不可。
|
||||
|
||||
spawn 子 Pod 用の内部フラグとして `--adopt` と `--callback <path>` がある。これらは `SpawnPod` が scope allocation と親 callback socket を引き継がせるために使うもので、通常の手動起動では使わない。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user