1928 lines
188 KiB
Plaintext
1928 lines
188 KiB
Plaintext
crates/session-metrics/src/lib.rs:6://! session-store は payload を不透明な `serde_json::Value` として扱うので、
|
||
crates/llm-worker-macros/src/lib.rs:1://! llm-worker-macros - Procedural macros for Tool generation
|
||
crates/llm-worker-macros/src/lib.rs:3://! Provides `#[tool_registry]` and `#[tool]` macros to
|
||
crates/llm-worker-macros/src/lib.rs:12:/// Macro applied to an `impl` block that generates tools from methods marked with `#[tool]`.
|
||
crates/llm-worker-macros/src/lib.rs:20:/// #[tool]
|
||
crates/llm-worker-macros/src/lib.rs:29:/// - `impl MyApp { fn get_user_tool(&self) -> Tool_get_user }`
|
||
crates/llm-worker-macros/src/lib.rs:39: // Look for #[tool] attribute
|
||
crates/llm-worker-macros/src/lib.rs:42: // Iterate through attributes to check for tool and remove it
|
||
crates/llm-worker-macros/src/lib.rs:312:/// #[tool]
|
||
crates/memory/src/schema/summary.rs:15: /// Optional pointer to the session-store entry range that drove the
|
||
crates/memory/src/schema/common.rs:9:/// Reference to a session-store entry range. Stored in `sources` /
|
||
crates/memory/src/schema/common.rs:14: /// `[start_entry, end_entry]` inclusive range of session-store entry indices.
|
||
crates/session-store/tests/common/mod.rs:12:/// A mock LLM client that replays pre-defined event sequences.
|
||
crates/memory/src/schema/mod.rs:1://! Frontmatter schemas for memory records.
|
||
crates/session-store/src/event_trace.rs:3://! [`TraceEntry`] captures stream lifecycle markers and raw provider stream
|
||
crates/session-store/src/event_trace.rs:30: /// Normalized provider stream event.
|
||
crates/session-store/src/event_trace.rs:32: /// Marker for code that runs before/around provider stream events.
|
||
crates/memory/src/tool/read.rs:1://! `MemoryRead` tool.
|
||
crates/memory/src/tool/read.rs:3://! Reads a memory or knowledge record by `(kind, slug)`. Returns
|
||
crates/memory/src/tool/read.rs:4://! line-numbered content (1-based), like the generic Read tool. The
|
||
crates/provider/src/catalog.rs:3://! - builtin プロバイダ: `resources/providers/builtin.toml`
|
||
crates/provider/src/catalog.rs:5://! - user override: `<config_dir>/{providers,models}.toml`
|
||
crates/provider/src/catalog.rs:7://! `<config_dir>` の解決は [`manifest::paths::config_dir`] を参照。
|
||
crates/provider/src/catalog.rs:9://! いう一方向の差し替え(マージしない)。providers / models は独立に
|
||
crates/provider/src/catalog.rs:12://! [`resolve_model_manifest`] が `manifest::ModelManifest`(ref / inline
|
||
crates/provider/src/catalog.rs:25:/// Conservative fallback used when neither the manifest nor catalogs specify
|
||
crates/provider/src/catalog.rs:27:/// catalog / manifest metadata can override unknown or inline models.
|
||
crates/provider/src/catalog.rs:48:/// マニフェスト解決時のエラー。`ModelManifest` がカタログ参照を満たせ
|
||
crates/provider/src/catalog.rs:94: /// モデルカタログ未登録モデルでこの provider が使われたとき
|
||
crates/provider/src/catalog.rs:95: /// (ref で provider はあるが model 行は無い等)のフォールバック。
|
||
crates/provider/src/catalog.rs:108:/// `id` は **provider 内ユニーク**。同じ `gpt-5` が異なる provider に
|
||
crates/provider/src/catalog.rs:109:/// 存在するのは OK で、ref が必ず `<provider>/<model_id>` を含むため
|
||
crates/provider/src/catalog.rs:119: /// モデル単位の context window。省略時は provider default → builtin
|
||
crates/provider/src/catalog.rs:125:/// 解決済みモデル設定。`build_client` が消費する完成形。
|
||
crates/provider/src/catalog.rs:162:// --- providers ---------------------------------------------------------------
|
||
crates/provider/src/catalog.rs:164:/// builtin + user override を解決して provider カタログを返す。
|
||
crates/provider/src/catalog.rs:166:/// user override (`<config_dir>/providers.toml`) が存在すれば builtin
|
||
crates/provider/src/catalog.rs:180:/// builtin provider カタログのみを返す。
|
||
crates/provider/src/catalog.rs:187:/// 指定パスから provider カタログを読む。
|
||
crates/provider/src/catalog.rs:235:/// `<provider_id>/<model_id>` の最初の `/` で 1 回だけ split する。
|
||
crates/provider/src/catalog.rs:237:/// model_id に `/` を含むケースは、provider=`openrouter`、
|
||
crates/provider/src/catalog.rs:247:/// `ModelManifest` をカタログ込みで解決し、最終 [`ModelConfig`] を返す。
|
||
crates/provider/src/catalog.rs:249:/// - **`ref` あり** → provider カタログを引き、未登録なら hard error。
|
||
crates/provider/src/catalog.rs:250:/// model カタログは未登録でも warn ログだけに留め、`provider.default_capability`
|
||
crates/provider/src/catalog.rs:257:/// scheme/base_url は manifest 明示 > provider、model_id は manifest 明示 > ref、
|
||
crates/provider/src/catalog.rs:258:/// auth は manifest 明示 > provider.auth_hint 由来、capability は
|
||
crates/provider/src/catalog.rs:259:/// manifest 明示 > model catalog > provider.default_capability >
|
||
crates/provider/src/catalog.rs:260:/// (`build_client` 側で)`Scheme::default_capability()`。
|
||
crates/provider/src/catalog.rs:261:/// context_window は manifest 明示 > model catalog > provider default >
|
||
crates/provider/src/catalog.rs:269:/// テスト等で in-memory カタログを差し込む解決経路。
|
||
crates/provider/src/catalog.rs:283: // model 行は無くても続行可(warn ログ + provider.default_capability)。
|
||
crates/provider/src/catalog.rs:447: // OpenRouter: `<router>/<provider>/<model>` 形式の model_id を持つ
|
||
crates/memory/src/tool/write.rs:1://! `MemoryWrite` tool.
|
||
crates/memory/src/tool/write.rs:3://! Creates or overwrites a memory or knowledge record by `(kind, slug)`.
|
||
crates/memory/src/tool/write.rs:6://! Linter error the tool returns `ToolError::InvalidArgument` with all
|
||
crates/memory/src/tool/write.rs:307: // The MemoryToolKind enum doesn't include Workflow, so deserialization fails.
|
||
crates/llm-worker/tests/reasoning_round_trip_test.rs:148: /// Request を 1 度だけキャプチャして空ストリームを返す client。
|
||
crates/llm-worker/tests/transport_retry_test.rs:4://! request を送り、HTTP status / Retry-After を `ClientError` に載せて返す。
|
||
crates/llm-worker/tests/transport_retry_test.rs:21:/// stream 消費中で `ClientError::Sse` を返す。
|
||
crates/session-store/src/system_item.rs:4://! LLM — they are always inserted by the Pod itself (notifications,
|
||
crates/session-store/src/system_item.rs:5://! file/knowledge/workflow ref resolutions, child-pod lifecycle events,
|
||
crates/session-store/src/system_item.rs:7://! typed shape of each such injection so clients can dispatch on
|
||
crates/session-store/src/system_item.rs:27:/// Each variant carries the kind-specific raw data clients use for
|
||
crates/session-store/src/system_item.rs:28:/// typed rendering (`Notification.message`, `PodEvent.event`, file
|
||
crates/session-store/src/system_item.rs:29:/// path / knowledge slug / workflow slug / etc.), plus a pre-rendered
|
||
crates/session-store/src/system_item.rs:45: /// `body` is the wrapped LLM-context form (Pod renders it via
|
||
crates/session-store/src/system_item.rs:49: /// Lifecycle event reported by a child Pod via `Method::PodEvent`.
|
||
crates/session-store/src/system_item.rs:50: /// `event` is the typed payload (so the TUI can render per-child
|
||
crates/session-store/src/system_item.rs:63: /// rendered text the LLM saw (Pod composes the `[Knowledge: …]`
|
||
crates/session-store/src/system_item.rs:67: /// `/<slug>` Workflow invocation. `body` is the workflow's
|
||
crates/session-store/src/system_item.rs:111:/// Render a `PodEvent` as the one-line notification text the agent
|
||
crates/memory/src/tool/query.rs:1://! `MemoryQuery` / `KnowledgeQuery` tools.
|
||
crates/memory/src/tool/query.rs:9://! - `MemoryQuery` walks `.insomnia/memory/{summary.md,decisions/,
|
||
crates/memory/src/tool/query.rs:10://! requests/}`. `.insomnia/workflow/`, `.insomnia/memory/_staging/`,
|
||
crates/memory/src/tool/query.rs:11://! `.insomnia/memory/_usage/`, and `.insomnia/memory/_logs/` are excluded
|
||
crates/memory/src/tool/query.rs:49:/// Tunables passed in from the manifest.
|
||
crates/llm-worker/tests/callback_test.rs:214:/// Stub tool returning a fixed [`ToolOutput`] for result-callback tests.
|
||
crates/llm-worker/tests/callback_test.rs:238:/// Verify that on_tool_result fires once per executed tool with
|
||
crates/llm-worker/tests/callback_test.rs:239:/// summary/content/is_error matching what the tool returned.
|
||
crates/llm-worker/tests/callback_test.rs:284:/// Stub tool that always fails, for exercising the error path through
|
||
crates/memory/src/tool/mod.rs:1://! Memory-scoped tools: Read / Write / Edit / Search.
|
||
crates/memory/src/tool/mod.rs:29:/// Kinds the memory tools accept as input. `Workflow` is intentionally
|
||
crates/memory/src/tool/mod.rs:30:/// excluded — workflows are sub-Worker context, not agent-editable.
|
||
crates/llm-worker/tests/worker_fixtures.rs:22:/// Simple test tool
|
||
crates/llm-worker/tests/worker_fixtures.rs:79:/// Verify that MockLlmClient can correctly load events from JSONL fixture files
|
||
crates/llm-worker/tests/worker_fixtures.rs:96:/// Verify that MockLlmClient works correctly with directly specified event lists
|
||
crates/llm-worker/tests/worker_fixtures.rs:98:/// Creates a client with programmatically constructed events instead of using fixture files.
|
||
crates/llm-worker/tests/worker_fixtures.rs:120:/// Uses simple_text.jsonl fixture to test scenarios without tool calls.
|
||
crates/llm-worker/tests/worker_fixtures.rs:140:/// Verify that Worker can correctly process responses containing tool calls
|
||
crates/llm-worker/tests/worker_fixtures.rs:143:/// Sets max_turns=1 to prevent loop after tool execution.
|
||
crates/llm-worker/tests/worker_fixtures.rs:156: // Register tool
|
||
crates/llm-worker/tests/worker_fixtures.rs:164: // Verify tool was called
|
||
crates/llm-worker/tests/worker_fixtures.rs:165: // Note: max_turns=1 so no request is sent after tool result
|
||
crates/llm-worker/tests/worker_fixtures.rs:175:/// Constructs event sequence programmatically and passes to MockLlmClient.
|
||
crates/provider/src/codex_oauth/error.rs:3://! `LlmClient` 境界に渡す際は `to_client_error` で `ClientError` に
|
||
crates/provider/src/codex_oauth/error.rs:48: /// `LlmClient` トランスポート境界向けに変換する。
|
||
crates/memory/src/tool/edit.rs:1://! `MemoryEdit` tool — partial string replacement on an existing memory record.
|
||
crates/memory/src/tool/edit.rs:5://! current-then-write window is single-tool-call narrow; an external
|
||
crates/memory/src/tool/edit.rs:6://! tracker is intentionally omitted (memory tools are self-contained,
|
||
crates/memory/src/tool/edit.rs:7://! no `tools` crate dep).
|
||
crates/memory/src/tool/edit.rs:363: // Workflow is not exposed via MemoryToolKind, so deserialization fails.
|
||
crates/session-store/src/segment.rs:4://! The caller (typically Pod) holds the Worker directly and calls these
|
||
crates/session-store/src/segment.rs:39:/// synchronously but defer the initial log append (e.g. Pod, which
|
||
crates/session-store/src/segment.rs:105:/// Shim for legacy entry points (`pod-cli --session <UUID>` etc.) that
|
||
crates/session-store/src/segment.rs:138:/// the new segment with the writer's in-memory history (which reflects
|
||
crates/session-store/src/segment.rs:177:/// Submit-time entry. Pod calls this at the head of a `Run` turn before
|
||
crates/session-store/src/segment.rs:253:/// for the Pod-side interceptor commit path; mirrors the per-item
|
||
crates/session-store/src/segment.rs:254:/// commit shape used for assistant / tool result entries.
|
||
crates/session-store/src/segment.rs:366:/// session-store treats `payload` as an unstructured `serde_json::Value`.
|
||
crates/session-store/src/segment.rs:388:/// Log the Pod's latest runtime scope snapshot.
|
||
crates/session-store/src/segment.rs:507:/// it needs the same value for an in-memory mirror + broadcast).
|
||
crates/memory/src/tool/delete.rs:1://! `MemoryDelete` tool for removing memory / knowledge records with audit logging.
|
||
crates/provider/src/codex_oauth/mod.rs:7://! - llm-worker は [`AuthProvider`] trait しか知らず、実体である
|
||
crates/provider/src/codex_oauth/mod.rs:8://! [`CodexAuthProvider`] はこのクレートに置く(feedback_llm_worker_scope)
|
||
crates/provider/src/codex_oauth/mod.rs:38:/// `~/.codex/auth.json` を読んで Codex 互換のヘッダを返す provider。
|
||
crates/llm-worker/tests/common/mod.rs:17:/// A mock LLM client that replays a sequence of events
|
||
crates/llm-worker/tests/common/mod.rs:117:/// Assert that events in all fixtures for a provider can be deserialized
|
||
crates/memory/src/scope.rs:2://! memory tree from the generic CRUD tools' write surface.
|
||
crates/memory/src/scope.rs:4://! Pod is expected to call [`deny_write_rules`] when memory is enabled
|
||
crates/memory/src/scope.rs:5://! and append the result to the manifest's `scope.deny` list before
|
||
crates/memory/src/scope.rs:6://! constructing the [`Scope`] passed to `tools::ScopedFs`. The memory
|
||
crates/memory/src/scope.rs:7://! tools themselves bypass `ScopedFs` and write directly under the
|
||
crates/memory/src/scope.rs:16:/// Build deny rules that strip Write permission from `<workspace>/memory/`
|
||
crates/memory/src/scope.rs:18:/// Read for the generic tools.
|
||
crates/session-store/src/store.rs:11://! drain task. Keeping the store sync lets the worker callback, Pod commit
|
||
crates/session-store/src/store.rs:12://! paths, and `PodInterceptor` all share one direct `append_entry` call.
|
||
crates/session-store/src/store.rs:87: /// Used by Pod's submit-time empty-turn rollback after it has proven
|
||
crates/memory/src/error.rs:1://! Errors raised by the memory subsystem.
|
||
crates/memory/src/error.rs:8:/// Top-level error for memory operations that don't fit the lint flow.
|
||
crates/memory/src/audit.rs:1://! Append-only JSONL audit log for memory workers and tools.
|
||
crates/memory/src/audit.rs:4://! `.insomnia/memory/_logs/current.log`. It is intentionally separate from
|
||
crates/memory/src/audit.rs:9://! tail -f .insomnia/memory/_logs/current.log
|
||
crates/memory/src/audit.rs:263:/// Append one audit event to `.insomnia/memory/_logs/current.log`.
|
||
crates/provider/src/lib.rs:1://! Pod マニフェストの [`ModelManifest`] を [`Box<dyn LlmClient>`]
|
||
crates/provider/src/lib.rs:5://! 1. `ModelManifest` を [`catalog::resolve_model_manifest`] で
|
||
crates/provider/src/lib.rs:9://! 4. `ModelCapability` は manifest 明示 > model catalog > provider
|
||
crates/provider/src/lib.rs:11://! `catalog::resolve_model_manifest` が [`ModelConfig`] に詰め込む)
|
||
crates/provider/src/lib.rs:13://! llm-worker は低レベル基盤に留める方針なので、高レベル側で必要に
|
||
crates/provider/src/lib.rs:120: // 1. manifest 明示
|
||
crates/provider/src/lib.rs:122: // 3. provider.default_capability
|
||
crates/provider/src/lib.rs:157:/// [`ModelManifest`] から [`LlmClient`] を構築する。ref / inline の
|
||
crates/provider/src/lib.rs:164:/// 既に解決済みの [`ModelConfig`] から [`LlmClient`] を構築する。
|
||
crates/provider/src/lib.rs:165:/// `ModelManifest` から既に `catalog::resolve_model_manifest` を通した
|
||
crates/llm-worker/src/interceptor.rs:3://! Defines the [`Interceptor`] trait that upper layers (e.g. Pod) implement
|
||
crates/llm-worker/src/interceptor.rs:4://! to inject orchestration decisions (approval, skip, pause, abort)
|
||
crates/llm-worker/src/interceptor.rs:54:/// Action before a tool call.
|
||
crates/llm-worker/src/interceptor.rs:59: /// Skip this tool call (do not execute).
|
||
crates/llm-worker/src/interceptor.rs:61: /// Do not execute the tool call; commit this synthetic result instead.
|
||
crates/llm-worker/src/interceptor.rs:63: /// This preserves provider-visible `tool_use` / `tool_result` pairing
|
||
crates/llm-worker/src/interceptor.rs:72:/// Action after a tool call.
|
||
crates/llm-worker/src/interceptor.rs:81:/// Action at the end of a turn (when LLM produces no tool calls).
|
||
crates/llm-worker/src/interceptor.rs:96:/// Context for pre-tool-call decisions.
|
||
crates/llm-worker/src/interceptor.rs:106:/// Context for post-tool-call decisions.
|
||
crates/llm-worker/src/interceptor.rs:108: /// Original tool call.
|
||
crates/llm-worker/src/interceptor.rs:125:/// proceed without intervention. Upper layers (e.g. Pod) provide
|
||
crates/llm-worker/src/interceptor.rs:142: /// cross-Pod events, system reminders. Do **not** use
|
||
crates/llm-worker/src/interceptor.rs:168: /// Called before each tool is executed.
|
||
crates/llm-worker/src/interceptor.rs:173: /// Called after each tool completes.
|
||
crates/llm-worker/src/interceptor.rs:178: /// Called when a turn ends with no tool calls.
|
||
crates/llm-worker/tests/parallel_execution_test.rs:1://! Parallel tool execution tests
|
||
crates/llm-worker/tests/parallel_execution_test.rs:3://! Verify that Worker executes multiple tools in parallel.
|
||
crates/llm-worker/tests/parallel_execution_test.rs:73:/// Verify that multiple tools are executed in parallel
|
||
crates/llm-worker/tests/parallel_execution_test.rs:75:/// If each tool takes 100ms, sequential execution would take 300ms+,
|
||
crates/llm-worker/tests/parallel_execution_test.rs:79: // Event sequence containing 3 tool calls
|
||
crates/llm-worker/tests/parallel_execution_test.rs:98: // Each tool waits 100ms
|
||
crates/llm-worker/tests/parallel_execution_test.rs:116: // Verify all tools were called
|
||
crates/llm-worker/tests/parallel_execution_test.rs:132:/// Hook: pre_tool_call - verify that skipped tools are not executed
|
||
crates/llm-worker/tests/parallel_execution_test.rs:159: // Policy to skip "blocked_tool"
|
||
crates/llm-worker/tests/parallel_execution_test.rs:178: // allowed_tool is called, but blocked_tool is not
|
||
crates/llm-worker/tests/parallel_execution_test.rs:196: // First request: tool call
|
||
crates/llm-worker/tests/parallel_execution_test.rs:205: // Second request: text response after receiving tool result
|
||
crates/llm-worker/tests/parallel_execution_test.rs:272:/// Hook: pre_tool_call synthetic result - skipped tool gets an error result in history.
|
||
crates/session-store/src/pod_metadata.rs:1://! Pod metadata persistence API.
|
||
crates/session-store/src/pod_metadata.rs:3://! Pod metadata is a lightweight name-keyed pointer to the Session/Segment
|
||
crates/session-store/src/pod_metadata.rs:4://! currently active for a Pod. Conversation content remains in the segment log;
|
||
crates/session-store/src/pod_metadata.rs:5://! this metadata only records references needed by Pod-name resume/attach flows.
|
||
crates/session-store/src/pod_metadata.rs:12:/// Active Session/Segment pointer for a Pod.
|
||
crates/session-store/src/pod_metadata.rs:43:/// `session-store` so the persistence crate does not depend on manifest
|
||
crates/session-store/src/pod_metadata.rs:52:/// One child Pod spawned by this Pod and persisted with the spawner's
|
||
crates/session-store/src/pod_metadata.rs:53:/// name-keyed Pod state.
|
||
crates/session-store/src/pod_metadata.rs:62:/// Persistent metadata for a Pod name.
|
||
crates/session-store/src/pod_metadata.rs:73: /// Create Pod metadata for `pod_name`.
|
||
crates/session-store/src/pod_metadata.rs:83:/// Sync persistence backend for Pod metadata.
|
||
crates/session-store/src/pod_metadata.rs:85:/// The key is the Pod name. Missing state is not an error: `read_by_name`
|
||
crates/session-store/src/pod_metadata.rs:86:/// returns `Ok(None)` for Pods that have never persisted metadata or whose
|
||
crates/session-store/src/pod_metadata.rs:89: /// Create or replace metadata for its `pod_name` key.
|
||
crates/session-store/src/pod_metadata.rs:92: /// Read metadata by Pod name. Returns `None` when no metadata exists.
|
||
crates/session-store/src/pod_metadata.rs:95: /// List persisted Pod metadata keys. Implementations return names only;
|
||
crates/session-store/src/pod_metadata.rs:105: /// Delete metadata by Pod name. Missing metadata is a successful no-op.
|
||
crates/memory/src/lib.rs:1://! Memory subsystem: persistence layer for `memory/*` and `knowledge/*` records.
|
||
crates/memory/src/lib.rs:4://! that target `<workspace>/memory/` and `<workspace>/knowledge/` only,
|
||
crates/memory/src/lib.rs:5://! with a pre-write Linter built in. Generic CRUD tools (in the `tools`
|
||
crates/memory/src/lib.rs:6://! crate) must not touch these directories — Pod is responsible for
|
||
crates/memory/src/lib.rs:7://! denying them at the Scope level when memory is enabled.
|
||
crates/llm-worker/src/event.rs:3://! Re-exports from the canonical event definitions in llm_client.
|
||
crates/session-store/src/logged_item.rs:1://! Persistence-stable mirror of `llm_worker::Item`.
|
||
crates/llm-worker/tests/worker_state_test.rs:145:/// Verify that tools can be registered in Mutable state.
|
||
crates/llm-worker/tests/worker_state_test.rs:152: // register_tool is infallible (factory deferred to run-time flush)
|
||
crates/llm-worker/tests/worker_state_test.rs:407:/// Verify that tools registered before lock and after unlock remain effective.
|
||
crates/llm-worker/tests/tool_macro_test.rs:3://! Verify the behavior of `#[tool_registry]` and `#[tool]` macros.
|
||
crates/session-store/src/segment_log.rs:60: /// actual payload (user text / notify message / pod event body) is
|
||
crates/session-store/src/segment_log.rs:63: /// Used by `pod-session-fork` style operations: the fork-point seq
|
||
crates/session-store/src/segment_log.rs:75: /// `Vec<Segment>` so clients can re-render typed atoms (paste chips,
|
||
crates/session-store/src/segment_log.rs:76: /// file/knowledge refs, workflow invocations) on segment restore.
|
||
crates/session-store/src/segment_log.rs:82: /// reasoning, or tool call. Singular: one entry per history item so
|
||
crates/session-store/src/segment_log.rs:86: /// One tool-execution result appended to history.
|
||
crates/session-store/src/segment_log.rs:89: /// One typed agent-injected system item: notification, child-Pod
|
||
crates/session-store/src/segment_log.rs:93: /// item's denormalised `body`), but live clients and replay paths
|
||
crates/session-store/src/segment_log.rs:143: /// session-store は payload を不透明扱いし、replay 時は
|
||
crates/session-store/src/segment_log.rs:147: /// 想定用途: memory subsystem の extract 処理境界 pointer 等、
|
||
crates/session-store/src/segment_log.rs:148: /// 「session 寿命に縛りたいが session-store の型を汚したくない」
|
||
crates/session-store/src/segment_log.rs:169:/// Domain used by Pod to persist its latest effective runtime scope.
|
||
crates/session-store/src/segment_log.rs:172:/// Payload stored in `LogEntry::Extension { domain: "pod.scope", .. }`.
|
||
crates/session-store/src/segment_log.rs:200: /// session-store は domain を不透明扱いし、各ドメインが自前で fold する。
|
||
crates/session-store/src/segment_log.rs:202: /// Latest runtime scope snapshot persisted by the Pod. `None` means
|
||
crates/session-store/src/segment_log.rs:209: /// original segments are not preserved). Used by clients to re-render
|
||
crates/session-store/src/segment_log.rs:710: // Segments survive verbatim for client-side restore.
|
||
crates/session-store/src/fs_store.rs:6://! - Pod metadata: `{root}/pods/{pod_name}/metadata.json`
|
||
crates/llm-worker/src/worker.rs:38: /// Client error
|
||
crates/llm-worker/src/worker.rs:58: /// A tool with the same name is already registered
|
||
crates/llm-worker/src/worker.rs:98:/// Internal: tool execution result
|
||
crates/llm-worker/src/worker.rs:109:/// automatically executes tool calls if any, advancing the turn.
|
||
crates/llm-worker/src/worker.rs:113:/// - [`Mutable`]: Initial state. System prompt, history, and tools can be freely edited.
|
||
crates/llm-worker/src/worker.rs:121:/// let mut worker = Worker::new(client)
|
||
crates/llm-worker/src/worker.rs:123:/// worker.register_tool(my_tool);
|
||
crates/llm-worker/src/worker.rs:156: /// LLM client
|
||
crates/llm-worker/src/worker.rs:181: /// Once retry (`llm-worker-stream-continuation`) is implemented, an
|
||
crates/llm-worker/src/worker.rs:205: /// Stream event callbacks. Fired for every normalized provider stream
|
||
crates/llm-worker/src/worker.rs:208: /// Pre-stream lifecycle callbacks for debugging stalls before provider
|
||
crates/llm-worker/src/worker.rs:212: /// surface an advisory message to the upper layer (e.g. Pod) so it
|
||
crates/llm-worker/src/worker.rs:216: /// Tool-result callbacks. Invoked once per completed tool call
|
||
crates/llm-worker/src/worker.rs:232: /// Byte-size caps applied to tool `content` before it reaches history.
|
||
crates/llm-worker/src/worker.rs:252: /// [`Request::cache_key`] at request build time. Pod 側では
|
||
crates/llm-worker/src/worker.rs:307: /// Mirrors `on_text_block`. Some providers don't expose plaintext
|
||
crates/llm-worker/src/worker.rs:320: /// Register a tool use block observer with scoped callbacks.
|
||
crates/llm-worker/src/worker.rs:464: /// surfaced to a human (e.g. tool output byte-cap truncation).
|
||
crates/llm-worker/src/worker.rs:477: /// Register a callback invoked once per completed tool execution.
|
||
crates/llm-worker/src/worker.rs:482: /// (e.g. Pod) to forward tool results to clients.
|
||
crates/llm-worker/src/worker.rs:527: /// Get a shared tool server handle.
|
||
crates/llm-worker/src/worker.rs:587: /// providers (Anthropic) place a long-lived breakpoint there.
|
||
crates/llm-worker/src/worker.rs:597: /// [`Request`] via [`Request::cache_key`] — caching-aware providers
|
||
crates/llm-worker/src/worker.rs:609: /// Get a reference to the LLM client.
|
||
crates/llm-worker/src/worker.rs:724: /// Interrupts currently running streaming or tool execution.
|
||
crates/llm-worker/src/worker.rs:731: /// let worker = Arc::new(Mutex::new(Worker::new(client)));
|
||
crates/llm-worker/src/worker.rs:757: /// Generate list of ToolDefinitions for LLM from registered tools
|
||
crates/llm-worker/src/worker.rs:762: /// Build assistant response items from reasoning items, text blocks, and tool calls.
|
||
crates/llm-worker/src/worker.rs:799: // Add tool calls as ToolCall items
|
||
crates/llm-worker/src/worker.rs:823: // Add tool definitions
|
||
crates/llm-worker/src/worker.rs:861: /// Check for pending tool calls (for resuming from Pause)
|
||
crates/llm-worker/src/worker.rs:874: // Second pass: find unanswered tool calls
|
||
crates/llm-worker/src/worker.rs:901: /// Execute tools in parallel
|
||
crates/llm-worker/src/worker.rs:903: /// After running pre_tool_call hooks on all tools,
|
||
crates/llm-worker/src/worker.rs:904: /// executes approved tools in parallel and applies post_tool_call hooks to results.
|
||
crates/llm-worker/src/worker.rs:911: // Map from tool call ID to (ToolCall, Meta, Tool)
|
||
crates/llm-worker/src/worker.rs:959: // Unknown tools go into approved list as-is (will error at execution)
|
||
crates/llm-worker/src/worker.rs:964: // Phase 2: Execute approved tools in parallel (cancellable)
|
||
crates/llm-worker/src/worker.rs:979: // Make tool execution cancellable
|
||
crates/llm-worker/src/worker.rs:1070: // Resume pending tool calls from a previous Pause
|
||
crates/llm-worker/src/worker.rs:1097: // history (notifications, cross-Pod events, system
|
||
crates/llm-worker/src/worker.rs:1193: // 1:1 with AgentTurn, but retry (`llm-worker-stream-continuation`)
|
||
crates/llm-worker/src/worker.rs:1240: // Do not recover tool calls from an interrupted stream. A completed
|
||
crates/llm-worker/src/worker.rs:1241: // tool_use is executable only when the provider finishes the stream.
|
||
crates/llm-worker/src/worker.rs:1268: // Pod-side per-item session-log committer) see each item
|
||
crates/llm-worker/src/worker.rs:1526: /// Execute tools and push results to history.
|
||
crates/llm-worker/src/worker.rs:1540: // observers (e.g. the Pod-side per-item session-log
|
||
crates/llm-worker/src/worker.rs:1541: // committer) see each tool result as it lands.
|
||
crates/llm-worker/src/worker.rs:1616: /// Register a tool factory for deferred initialization.
|
||
crates/llm-worker/src/worker.rs:1625: /// Register multiple tool factories for deferred initialization.
|
||
crates/llm-worker/src/worker.rs:1641: /// Install byte-size caps for tool execution `content`.
|
||
crates/llm-worker/src/worker.rs:1644: /// (e.g. Pod) translate manifest configuration into a concrete
|
||
crates/llm-worker/src/worker.rs:1655: /// let worker = Worker::new(client)
|
||
crates/llm-worker/src/worker.rs:1669: /// let worker = Worker::new(client)
|
||
crates/llm-worker/src/worker.rs:1704: /// let worker = Worker::new(client)
|
||
crates/llm-worker/src/worker.rs:1719: /// Validate current configuration against the provider
|
||
crates/llm-worker/src/worker.rs:1727: /// let worker = Worker::new(client)
|
||
crates/llm-worker/src/worker.rs:1825: /// Flushes pending tool factories, then fixes the current system prompt
|
||
crates/llm-worker/src/worker.rs:1835: /// Panics if a pending tool factory produces a duplicate name.
|
||
crates/llm-worker/src/worker.rs:1886: /// Automatically loops if there are tool calls.
|
||
crates/llm-worker/src/token_counter.rs:11://! 課金判断には使えないが、compact / prune / memory extract trigger 等の
|
||
crates/llm-worker/src/llm_client/event.rs:8:// Core Event Types (from llm_client layer)
|
||
crates/llm-worker/src/llm_client/event.rs:128:/// `data_preview` は provider から受け取った raw SSE data の bounded preview、
|
||
crates/memory/src/usage.rs:1://! Workspace-local usage event log for memory / knowledge / workflow records.
|
||
crates/llm-worker/src/llm_client/capability.rs:85:/// 文字列は provider-native な effort label、数値は provider-native な
|
||
crates/llm-worker/src/llm_client/scheme/mod.rs:48: /// この scheme が要求する認証形式。`build_client` 時に
|
||
crates/llm-worker/src/llm_client/scheme/mod.rs:49: /// `manifest::AuthRef` と照合する。
|
||
crates/llm-worker/src/llm_client/scheme/mod.rs:81: /// `provider::capability::lookup` 側(高レベル構築層)の責務で、
|
||
crates/memory/src/workspace.rs:1://! Workspace-level path layout for the memory subsystem.
|
||
crates/memory/src/workspace.rs:3://! `WorkspaceLayout` carries the workspace root (typically the Pod's
|
||
crates/memory/src/workspace.rs:6://! `manifest.toml` and `prompts/`. The trees inside it:
|
||
crates/memory/src/workspace.rs:8://! - `<root>/.insomnia/workflow/<slug>.md`
|
||
crates/memory/src/workspace.rs:10://! - `<root>/.insomnia/memory/summary.md`
|
||
crates/memory/src/workspace.rs:11://! - `<root>/.insomnia/memory/decisions/<slug>.md`
|
||
crates/memory/src/workspace.rs:12://! - `<root>/.insomnia/memory/requests/<slug>.md`
|
||
crates/memory/src/workspace.rs:13://! - `<root>/.insomnia/memory/_staging/<id>.json`
|
||
crates/memory/src/workspace.rs:14://! - `<root>/.insomnia/memory/_logs/current.log` (append-only audit log)
|
||
crates/memory/src/workspace.rs:16://! `memory/` is reserved for session-derived / generated state;
|
||
crates/memory/src/workspace.rs:17://! Workflows are human-managed and live one level up under
|
||
crates/memory/src/workspace.rs:18://! `.insomnia/workflow/`.
|
||
crates/memory/src/workspace.rs:20://! Configuring `[memory]` with an empty body is therefore sufficient
|
||
crates/memory/src/workspace.rs:44:/// What kind of record a path under the memory tree represents.
|
||
crates/memory/src/workspace.rs:84: /// Resolve a layout from a `MemoryConfig`, falling back to
|
||
crates/memory/src/workspace.rs:85: /// `default_root` (typically the Pod's pwd) when the manifest does
|
||
crates/memory/src/workspace.rs:102: /// `<root>/.insomnia/`. The base of every other memory path.
|
||
crates/memory/src/workspace.rs:127: /// Workflow directory: `<root>/.insomnia/workflow/`.
|
||
crates/memory/src/workspace.rs:148: /// Tail-friendly latest memory audit log path.
|
||
crates/memory/src/workspace.rs:150: /// Operators can inspect live memory worker and tool events with:
|
||
crates/memory/src/workspace.rs:151: /// `tail -f .insomnia/memory/_logs/current.log`.
|
||
crates/memory/src/workspace.rs:172: /// Classify a path under the memory tree. Returns `None` if the
|
||
crates/memory/src/workspace.rs:173: /// path is not under `.insomnia/memory/` or `.insomnia/knowledge/`
|
||
crates/memory/src/workspace.rs:178: /// (e.g. `.insomnia/memory/decisions/Foo.md` with an invalid slug),
|
||
crates/memory/src/consolidate/input.rs:4://! markdown セクション列にしてサブWorker に渡す。`docs/plan/memory.md`
|
||
crates/memory/src/consolidate/input.rs:8://! 2. 既存 `memory/*` 全文(summary / decisions / requests)
|
||
crates/memory/src/consolidate/input.rs:13://! 設計(`docs/plan/memory.md` §retrieval 経路 / §Consolidation の Knowledge アクセス)。
|
||
crates/memory/src/consolidate/input.rs:77:/// `<workspace>/.insomnia/memory/{summary.md,decisions/*,requests/*}` を
|
||
crates/memory/src/consolidate/input.rs:288: // Both staging and tidy show "(none)"; existing memory records too.
|
||
crates/memory/src/linter/mod.rs:1://! Pre-write Linter for the memory subsystem.
|
||
crates/memory/src/linter/mod.rs:5://! aggregating every applicable rule violation. The memory tool calls
|
||
crates/memory/src/linter/mod.rs:10://! cycle detection) walk the whole `memory/` and `knowledge/` trees
|
||
crates/session-store/src/lib.rs:14://! The caller (typically Pod) holds the Worker directly and calls these
|
||
crates/session-store/src/lib.rs:23://! use session_store::{create_segment, restore, save_delta, FsStore, SegmentStartState};
|
||
crates/memory/src/consolidate/tidy.rs:3://! `docs/plan/memory.md` §整理(GC 相当)の扱い と
|
||
crates/memory/src/consolidate/tidy.rs:4://! `tickets/memory-consolidation.md` の整理材料リストに従い、
|
||
crates/memory/src/consolidate/tidy.rs:11://! 使用頻度メトリクスベースの保護閾値情報は `tickets/memory-usage-metrics.md`
|
||
crates/memory/src/consolidate/tidy.rs:136:/// `<root>/.insomnia/memory/<kind>/*.md` (Knowledge は
|
||
crates/memory/src/linter/existing.rs:1://! Walks `<workspace>/memory/{decisions,requests}/` and `<workspace>/knowledge/` to collect
|
||
crates/llm-worker/src/state.rs:20:/// - Registering tools and hooks
|
||
crates/llm-worker/src/state.rs:27:/// use llm_worker::Worker;
|
||
crates/llm-worker/src/state.rs:29:/// let mut worker = Worker::new(client)
|
||
crates/memory/src/linter/warnings.rs:17:/// warning fires. 3 follows `docs/plan/memory.md` §Linter (`類似 slug
|
||
crates/memory/src/resident.rs:1://! Workspace memory resident-enumeration helpers.
|
||
crates/memory/src/resident.rs:3://! Surfaces used by the Pod system-prompt assembler:
|
||
crates/memory/src/resident.rs:8://! `<workspace>/.insomnia/memory/summary.md` when it parses as a summary
|
||
crates/memory/src/resident.rs:11://! of `model_invokation`. Used by the Pod IPC layer to answer TUI `#`
|
||
crates/memory/src/resident.rs:45:/// Read `<workspace>/.insomnia/memory/summary.md` for resident prompt
|
||
crates/llm-worker/src/timeline/event.rs:3://! llm_client層のイベント型をそのまま使用する。
|
||
crates/memory/src/consolidate/mod.rs:3://! extract が staging に残した活動ログを `memory/*` / `knowledge/*` に
|
||
crates/memory/src/consolidate/mod.rs:5://! の観点で整理する disposable Worker を、Pod 側が組み立てるための
|
||
crates/memory/src/consolidate/mod.rs:6://! ヘルパー群を提供する。Pod は次の手順で sub-Worker を構築する:
|
||
crates/memory/src/consolidate/mod.rs:9://! - memory 専用 Tool (read / write / edit) と Knowledge / memory 検索ツールを登録
|
||
crates/memory/src/consolidate/mod.rs:14://! system prompt は Pod の `PromptCatalog`
|
||
crates/memory/src/consolidate/mod.rs:15://! (`PodPrompt::MemoryConsolidationSystem`) で管理される。Usage report は
|
||
crates/memory/src/consolidate/mod.rs:17://! (`docs/plan/memory.md` §Consolidation / 整理材料)。
|
||
crates/memory/src/extract/pointer.rs:1://! `LogEntry::Extension { domain: "memory.extract", payload }` の payload 形式と
|
||
crates/memory/src/extract/pointer.rs:2://! restore 時の fold ヘルパー。memory crate がドメインを所有するので、
|
||
crates/memory/src/extract/pointer.rs:3://! session-store / Pod は payload 構造を知らない。
|
||
crates/memory/src/extract/pointer.rs:13: /// 直近 extract が処理した最後の session-store LogEntry の index。
|
||
crates/llm-worker/src/timeline/timeline.rs:358:/// use llm_worker::{Timeline, Handler, TextBlockKind, TextBlockEvent};
|
||
crates/memory/src/consolidate/lock.rs:3://! `docs/plan/memory.md` §並走防止 に従い:
|
||
crates/memory/src/consolidate/lock.rs:5://! - ファイルが存在し、記録された Pod が動作している間、その Pod が排他占有
|
||
crates/memory/src/consolidate/lock.rs:25:/// 占有ファイルの中身。`pid` で stale 判定し、`pod_name` / `started_at` /
|
||
crates/memory/src/consolidate/lock.rs:151: /// 次回再評価で再処理させる(`docs/plan/memory.md` §並走防止 の
|
||
crates/memory/src/extract/tool.rs:5://! Pod 側はランループ完了後に `take_payload()` で取り出して
|
||
crates/memory/src/extract/tool.rs:25: /// 後勝ちで上書きするが、Pod 側で warn を出したい場合に参照する。
|
||
crates/memory/src/extract/tool.rs:34: /// sub-Worker 終了後に Pod が呼んで payload を取り出す。
|
||
crates/memory/src/extract/payload.rs:3://! LLM は [`ExtractedPayload`] そのもの(source 抜き)を返し、Pod 側
|
||
crates/memory/src/extract/payload.rs:5://! source は機械付与する契約 (`docs/plan/memory.md` §Extract)。
|
||
crates/memory/src/extract/payload.rs:81:/// `source` は Pod 側ラッパーが segment_id と log entry range を
|
||
crates/client/src/lib.rs:1://! Pod プロトコルを喋るクライアント。
|
||
crates/client/src/lib.rs:3://! - [`PodClient`]: 既存 pod の Unix ソケットへ接続して `Method` を送り、
|
||
crates/client/src/lib.rs:5://! - [`spawn`]: pod バイナリをサブプロセスとして起動し、`INSOMNIA-READY`
|
||
crates/client/src/lib.rs:7://! ない呼び出し側 (=既存 pod に attach する場合) は使わなくてよい。
|
||
crates/client/src/lib.rs:9://! TUI / GUI / E2E ハーネスはこの crate に依存して protocol を喋る。
|
||
crates/llm-worker/src/handler.rs:35:/// use llm_worker::timeline::{Handler, TextBlockEvent, TextBlockKind};
|
||
crates/llm-worker/src/handler.rs:157:/// ToolUseBlock Kind - for tool use blocks
|
||
crates/llm-worker/src/handler.rs:167: /// JSON substring of tool arguments
|
||
crates/memory/src/extract/staging.rs:1://! `<workspace>/.insomnia/memory/_staging/<id>.json` への書き出しヘルパー。
|
||
crates/llm-worker/src/llm_client/retry.rs:3://! Worker が `LlmClient::stream` の open error に対して `is_retryable` を見て
|
||
crates/llm-worker/src/llm_client/retry.rs:4://! retry / backoff / TUI event / cancellation をまとめて管理する。
|
||
crates/llm-worker/src/llm_client/retry.rs:11:/// `Default` は llm-worker 全体の固定値を返す。manifest 経由の上書きが
|
||
crates/llm-worker/src/llm_client/retry.rs:12:/// 必要になったら拡張する(現状は不要 → `tickets/llm-worker-transient-retry.md`)。
|
||
crates/llm-worker/src/message.rs:6://! elements: messages, tool calls, tool results, and reasoning.
|
||
crates/llm-worker/src/message.rs:8:// Re-export all types from llm_client::types
|
||
crates/llm-worker/src/llm_client/client.rs:53: /// * `Err(ClientError)` - エラー
|
||
crates/llm-worker/src/llm_client/client.rs:56: /// Clone this client into a new `Box<dyn LlmClient>`.
|
||
crates/llm-worker/src/llm_client/client.rs:58: /// Used when a second client instance is needed (e.g. for context
|
||
crates/llm-worker/src/llm_client/client.rs:82:/// `Box<dyn LlmClient>` に対する `LlmClient` の実装
|
||
crates/llm-worker/src/llm_client/mod.rs:15://! - [`LlmClient`] - プロバイダ共通のtrait
|
||
crates/llm-worker/src/llm_client/mod.rs:16://! - `providers`: プロバイダ固有のクライアント実装
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/mod.rs:8://! - SSE イベントパース → [`Event`](crate::llm_client::event::Event) 変換: [`events`]
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/mod.rs:23:/// ように受理パラメータが subset の経路では provider 層で
|
||
crates/llm-worker/src/llm_client/auth.rs:4://! `crates/manifest` に置き、llm-worker はそれを知らずに済む。
|
||
crates/llm-worker/src/llm_client/auth.rs:6://! 期待するか」のランタイム記述で、manifest 側の `AuthRef` との
|
||
crates/llm-worker/src/llm_client/auth.rs:7://! 照合(`AuthRef → ResolvedAuth` 変換の適否)は `crates/provider`
|
||
crates/llm-worker/src/llm_client/auth.rs:11://! [`AuthProvider`] trait を `crates/provider` 側で実装し、
|
||
crates/llm-worker/src/llm_client/auth.rs:30: /// 複合ヘッダ(Codex OAuth 等、`crates/provider` 側で解決)
|
||
crates/llm-worker/src/llm_client/auth.rs:38:/// 同時に注入する必要があるケースで使う。実体は `crates/provider`
|
||
crates/llm-worker/src/llm_client/auth.rs:39:/// 側に置き、llm-worker は trait を知るだけ。
|
||
crates/llm-worker/src/llm_client/auth.rs:51: /// transport は provider crate の具象型を知らないため、この hook だけで
|
||
crates/llm-worker/src/llm_client/scheme/anthropic/request.rs:172:/// Anthropic tool definition
|
||
crates/llm-worker/src/llm_client/scheme/anthropic/request.rs:246: /// tool result boundary so one logical assistant burst becomes one
|
||
crates/llm-worker/src/llm_client/scheme/anthropic/request.rs:738: /// Convenience: a turn that ends with one assistant text, one tool
|
||
crates/llm-worker/src/llm_client/scheme/anthropic/request.rs:1074: // cache_control at the tools-array level.
|
||
crates/client/src/spawn.rs:1://! pod バイナリをサブプロセスとして立ち上げ、`INSOMNIA-READY` を待つ
|
||
crates/client/src/spawn.rs:4://! - 親プロセス (TUI / GUI / E2E) は overlay TOML を組み立ててこの関数に
|
||
crates/client/src/spawn.rs:5://! 渡す。pod はそれを受けて socket を bind し、stderr に
|
||
crates/client/src/spawn.rs:10://! ライフサイクルから切り離した detached pod を作る。ready 後の lifecycle
|
||
crates/client/src/spawn.rs:24:/// `spawn_pod` の入力。
|
||
crates/client/src/spawn.rs:26: /// `pod.name` として使う識別子。runtime ディレクトリ
|
||
crates/client/src/spawn.rs:27: /// (`manifest::paths::pod_runtime_dir`) の解決と、ready 行に乗る
|
||
crates/client/src/spawn.rs:30: /// `--overlay` で pod に渡す TOML 文字列。
|
||
crates/client/src/spawn.rs:32: /// pod の current_dir。
|
||
crates/client/src/spawn.rs:37: /// true のとき `--pod <pod_name>` を付与し、pod 側で name-keyed state
|
||
crates/client/src/spawn.rs:38: /// があれば resume、なければ同名の新規 Pod として起動させる。
|
||
crates/client/src/spawn.rs:92:/// pod を spawn し、`INSOMNIA-READY` ハンドシェイクが終わるまで待つ。
|
||
crates/client/src/spawn.rs:126: // a detached Pod once startup succeeds: dropping the handle does not
|
||
crates/client/src/spawn.rs:128: // process group do not hit the Pod. Runtime state/socket files are
|
||
crates/client/src/spawn.rs:200: // Pod は exit 直前に最終 stderr 行を flush することがある。
|
||
crates/client/src/spawn.rs:202: // ぼさず PodExitedEarly に載せる。
|
||
crates/client/src/spawn.rs:260:/// Resolves the binary used to launch a child Pod. Must point at a
|
||
crates/client/src/spawn.rs:261:/// `pod`-compatible executable — the parent reads the child's stderr
|
||
crates/llm-worker/src/llm_client/scheme/anthropic/capability.rs:4://! (`provider::capability`)の責務。ここでは未知モデルでも「この wire で
|
||
crates/llm-worker/src/llm_client/transport.rs:4://! 旧 `providers/{anthropic,openai,gemini,ollama}.rs` を置き換える。
|
||
crates/llm-worker/src/llm_client/transport.rs:30:/// `AuthRef` を解決したランタイム表現。`crates/provider` が構築する。
|
||
crates/llm-worker/src/llm_client/transport.rs:287:/// エラーレスポンスを `ClientError::Api` に変換する。
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/request.rs:86:/// OpenAI tool definition
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/request.rs:101:/// OpenAI tool call in message
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/request.rs:187: /// - Tool results have role "tool" with tool_call_id
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/request.rs:196: // Flush pending tool calls
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/request.rs:249: // Flush pending tool calls before tool result
|
||
crates/pod/build.rs:4://! it bidirectionally against the `PodPrompt` enum's own key list, so
|
||
crates/pod/build.rs:5://! that a mismatch fails the build (see ticket: pod-prompt-catalog).
|
||
crates/llm-worker/src/usage_record.rs:4://! 1 件分にまとめたもの。`UsageEvent` (provider stream イベント) を
|
||
crates/llm-worker/src/usage_record.rs:5://! 受けて呼び出し側 (typically Pod) が組み立て、永続化層
|
||
crates/llm-worker/src/usage_record.rs:6://! (session-store) に流したり、token accounting (`token_counter`) で
|
||
crates/llm-worker/src/llm_client/scheme/gemini/request.rs:84:/// Gemini tool definition
|
||
crates/llm-worker/src/llm_client/scheme/gemini/request.rs:104:/// Gemini tool config
|
||
crates/llm-worker/src/llm_client/scheme/anthropic/events.rs:180: /// * `Err(ClientError)` - パースエラー
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/capability.rs:4://! (`provider::capability`)の責務。ここでは wire の保守的 default のみ。
|
||
crates/llm-worker/src/llm_client/scheme/gemini/capability.rs:4://! 高レベル構築層(`provider::capability`)の責務。ここでは wire の
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/events.rs:105: // Start of tool call (has ID)
|
||
crates/llm-worker/src/llm_client/scheme/openai_chat/events.rs:186: // Start of tool call
|
||
crates/llm-worker/src/llm_client/scheme/gemini/events.rs:122: /// * `Err(ClientError)` - パースエラー
|
||
crates/pod/tests/pod_events_test.rs:1://! Integration tests for the `PodEvent` send / receive primitive.
|
||
crates/pod/tests/pod_events_test.rs:3://! These tests drive `pod_events::fire_and_forget` and
|
||
crates/pod/tests/pod_events_test.rs:4://! `pod_events::apply_event_side_effects` directly — the full
|
||
crates/pod/tests/pod_events_test.rs:6://! spawn-pod tests, which rely on the same primitives.
|
||
crates/pod/tests/pod_events_test.rs:65:/// Point `INSOMNIA_RUNTIME_DIR` at `dir`. The pod-registry then lives at
|
||
crates/pod/tests/pod_events_test.rs:66:/// `<dir>/pods.json` and Pod runtime sub-dirs at `<dir>/{pod_name}/`.
|
||
crates/pod/tests/pod_events_test.rs:97:/// Accept a single connection, send the protocol's connect-time snapshot,
|
||
crates/pod/tests/pod_events_test.rs:301: // A must see the re-emission with parent_pod set to "B" (the
|
||
crates/pod/tests/pod_events_test.rs:409: // Allocation is gone from the pod-registry.
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/capability.rs:4://! (`provider::capability`)の責務。ここでは wire の保守的 default のみ。
|
||
crates/llm-worker/src/callback.rs:104:/// Mirrors `TextBlockScope`. Some providers (or some configurations)
|
||
crates/llm-worker/src/callback.rs:129: /// the provider didn't emit any plaintext deltas.
|
||
crates/llm-worker/src/callback.rs:177:/// Callback scope for a tool use block.
|
||
crates/llm-worker/src/callback.rs:217:/// Per-block state for tool use closure handler.
|
||
crates/llm-worker/src/lib.rs:1://! llm-worker - LLM Worker Library
|
||
crates/llm-worker/src/lib.rs:8://! - [`tool::Tool`] - Tools that can be invoked by the LLM
|
||
crates/llm-worker/src/lib.rs:15://! use llm_worker::{Worker, Item};
|
||
crates/llm-worker/src/lib.rs:18://! let mut worker = Worker::new(client)
|
||
crates/llm-worker/src/lib.rs:21://! // Register tools (optional)
|
||
crates/llm-worker/src/lib.rs:22://! // worker.register_tool(my_tool_definition)?;
|
||
crates/llm-worker/examples/record_test_fixtures/main.rs:1://! Test fixture recording tool
|
||
crates/llm-worker/examples/record_test_fixtures/main.rs:45: /// Client to use
|
||
crates/llm-worker/examples/record_test_fixtures/main.rs:49: /// Model to use (optional, defaults per client)
|
||
crates/llm-worker/src/llm_client/types.rs:1://! LLM Client Common Types
|
||
crates/llm-worker/src/llm_client/types.rs:6://! - ToolCall items (tool invocations)
|
||
crates/llm-worker/src/llm_client/types.rs:7://! - ToolResult items (tool results)
|
||
crates/llm-worker/src/llm_client/types.rs:30:/// This is carried on [`Request`] so generic [`crate::llm_client::LlmClient`]
|
||
crates/llm-worker/src/llm_client/types.rs:65:/// use llm_worker::Item;
|
||
crates/llm-worker/src/llm_client/types.rs:110: /// Call ID linking to the tool call
|
||
crates/llm-worker/src/llm_client/types.rs:117: /// Whether the tool result represents an execution error.
|
||
crates/llm-worker/src/llm_client/types.rs:213: /// Create a tool call item
|
||
crates/llm-worker/src/llm_client/types.rs:228: /// Create a tool call item from a JSON value
|
||
crates/llm-worker/src/llm_client/types.rs:237: /// Create a tool result item with summary only (no content).
|
||
crates/llm-worker/src/llm_client/types.rs:242: /// Create an error tool result item with summary only (no content).
|
||
crates/llm-worker/src/llm_client/types.rs:247: /// Create a tool result item with summary, optional content, and error flag.
|
||
crates/llm-worker/src/llm_client/types.rs:263: /// Create a tool result item with summary and content.
|
||
crates/llm-worker/src/llm_client/types.rs:387: /// Check if this is a tool call
|
||
crates/llm-worker/src/llm_client/types.rs:392: /// Check if this is a tool result
|
||
crates/llm-worker/src/llm_client/types.rs:416:/// Tool call arguments must be a JSON object at the provider API level
|
||
crates/llm-worker/src/llm_client/types.rs:519: /// post-compaction summary) set this so that caching-aware providers
|
||
crates/llm-worker/src/llm_client/types.rs:526: /// ほぼヒットしないため、pod 側で `SegmentId` を渡す運用を想定。
|
||
crates/llm-worker/src/llm_client/types.rs:528: /// 別の概念。`cache_anchor` を読まない provider と同じく、
|
||
crates/llm-worker/src/llm_client/types.rs:529: /// `prompt_cache_key` を持たない provider は無視する。
|
||
crates/llm-worker/src/llm_client/types.rs:572: /// Add a tool definition
|
||
crates/llm-worker/src/llm_client/types.rs:648: /// Create a new tool definition
|
||
crates/llm-worker/examples/record_test_fixtures/scenarios.rs:38:/// Response with tool call
|
||
crates/pod/examples/pod_cli.rs:1://! Minimal example: Pod running a single prompt with persistence.
|
||
crates/pod/examples/pod_cli.rs:3://! Demonstrates the core insomnia abstraction — a TOML manifest drives
|
||
crates/pod/examples/pod_cli.rs:4://! provider selection, model config, and system prompt, while FsStore
|
||
crates/pod/examples/pod_cli.rs:11://! cargo run -p pod --example pod_cli
|
||
crates/pod/examples/pod_cli.rs:44: // 1. Build a manifest rooted at the current working directory.
|
||
crates/pod/examples/pod_cli.rs:45: // All paths in a manifest must be absolute — see the pod-factory ticket.
|
||
crates/pod/examples/pod_cli.rs:53: // 3. Build the Pod from the single-layer manifest TOML
|
||
crates/llm-worker/examples/worker_cli.rs:1://! Interactive CLI client using Worker
|
||
crates/llm-worker/examples/worker_cli.rs:3://! A CLI application for interacting with multiple LLM providers (Anthropic, Gemini, OpenAI, Ollama).
|
||
crates/llm-worker/examples/worker_cli.rs:4://! Demonstrates tool registration and execution, and streaming response display.
|
||
crates/llm-worker/examples/worker_cli.rs:18://! cargo run --example worker_cli -- --provider gemini
|
||
crates/llm-worker/examples/worker_cli.rs:21://! cargo run --example worker_cli -- --provider openai --model gpt-4o
|
||
crates/llm-worker/examples/worker_cli.rs:24://! cargo run --example worker_cli -- --provider ollama --model llama3.2
|
||
crates/llm-worker/examples/worker_cli.rs:27://! cargo run --example worker_cli -- --provider anthropic --model claude-3-haiku-20240307 --system "You are a helpful assistant."
|
||
crates/llm-worker/examples/worker_cli.rs:65:/// Available LLM providers
|
||
crates/llm-worker/examples/worker_cli.rs:80: /// Default model for the provider
|
||
crates/llm-worker/examples/worker_cli.rs:90: /// Display name for the provider
|
||
crates/llm-worker/examples/worker_cli.rs:115:/// Interactive CLI client supporting multiple LLM providers
|
||
crates/llm-worker/examples/worker_cli.rs:125: /// Model name to use (defaults to provider's default if not specified)
|
||
crates/llm-worker/examples/worker_cli.rs:133: /// Disable tools
|
||
crates/llm-worker/examples/worker_cli.rs:230:/// Handler that displays tool calls
|
||
crates/llm-worker/examples/worker_cli.rs:274:/// Policy that displays tool execution results.
|
||
crates/llm-worker/examples/worker_cli.rs:306:// Client Creation
|
||
crates/llm-worker/examples/worker_cli.rs:309:/// Get API key based on provider
|
||
crates/llm-worker/examples/worker_cli.rs:316: // Check environment variable based on provider
|
||
crates/llm-worker/examples/worker_cli.rs:330:/// Create client based on provider
|
||
crates/llm-worker/examples/worker_cli.rs:447: // Create client
|
||
crates/llm-worker/examples/worker_cli.rs:466: // Register tools (unless --no-tools)
|
||
crates/pod/examples/pod_protocol.rs:1://! Pod Protocol example: control a Pod via PodHandle and stream events.
|
||
crates/pod/examples/pod_protocol.rs:5://! cargo run -p pod --example pod_protocol
|
||
crates/pod/examples/pod_protocol.rs:38: // All manifest paths must be absolute — see the pod-factory ticket.
|
||
crates/lint-common/src/lib.rs:1://! Shared record lint primitives for memory and workflow files.
|
||
crates/lint-common/src/lib.rs:9:/// Common lint errors for Markdown record syntax shared by memory and workflow.
|
||
crates/tui/src/input.rs:11://! back to their original captured content so the Pod sees the full
|
||
crates/tui/src/input.rs:36:/// Directories remain valid chips because Pod resolves normal directory refs
|
||
crates/tui/src/input.rs:61:/// `/<slug>` chip — confirmed completion of a Workflow invocation.
|
||
crates/tui/src/input.rs:100: /// Indivisible chip — paste / file ref / knowledge ref / workflow
|
||
crates/tui/src/input.rs:147: /// Monotonic counter reused across the TUI process lifetime.
|
||
crates/tui/src/input.rs:175: /// Replace the whole composer with protocol segments previously emitted
|
||
crates/tui/src/input.rs:315: /// text (e.g. the `/` in `src/main.rs` is not a workflow trigger).
|
||
crates/tui/src/input.rs:500: /// Build the typed `Vec<Segment>` sent over the protocol. Adjacent
|
||
crates/tui/src/input.rs:502: /// chip atom (`Paste` / `FileRef` / `KnowledgeRef` / `WorkflowInvoke`)
|
||
crates/tui/src/input.rs:503: /// becomes a standalone `Segment` so that clients re-rendering an
|
||
crates/pod/src/ipc/interceptor.rs:1://! Pod-owned `Interceptor` implementation.
|
||
crates/pod/src/ipc/interceptor.rs:3://! Bridges Pod's internal mechanisms (compaction trigger today;
|
||
crates/pod/src/ipc/interceptor.rs:55: /// `PromptAction::ContinueWith`. Populated by `Pod::run`
|
||
crates/pod/src/ipc/interceptor.rs:63: /// worker. `None` in tests / `Pod::new` paths where no writer is
|
||
crates/pod/src/ipc/event.rs:1://! `PodEvent` send / receive helpers.
|
||
crates/pod/src/ipc/event.rs:4://! (`PodEvent`) that children fire upward on turn-end / error /
|
||
crates/pod/src/ipc/event.rs:7://! - **Send** a `Method::PodEvent` to the parent socket, fire-and-forget,
|
||
crates/pod/src/ipc/event.rs:11://! - **Apply side effects** on the parent (registry / pod-registry
|
||
crates/pod/src/ipc/event.rs:16://! callbacks are an optimisation and `ListPods` + `reclaim_stale` are
|
||
crates/pod/src/ipc/event.rs:33:/// Connect to `socket`, send a single `Method::PodEvent(event)`, and
|
||
crates/pod/src/ipc/event.rs:43:/// `socket` is `None`, no send happens (top-level Pods have no parent).
|
||
crates/pod/src/ipc/event.rs:58:/// Kept deliberately short — the LLM can always call `ReadPodOutput`
|
||
crates/pod/src/ipc/event.rs:88:/// - `ShutDown`: remove the child from `spawned_pods.json`, Pod state,
|
||
crates/pod/src/ipc/server.rs:11:/// Unix socket server for Pod Protocol.
|
||
crates/pod/src/ipc/server.rs:13:/// Listens on the Pod's runtime directory socket path.
|
||
crates/pod/src/ipc/server.rs:14:/// Each client connection gets bidirectional JSONL:
|
||
crates/pod/src/ipc/server.rs:15:/// - Client writes Method lines → forwarded to PodController
|
||
crates/pod/src/ipc/server.rs:16:/// - Pod events → written as Event lines to all connected clients
|
||
crates/pod/src/ipc/server.rs:23: /// Start listening on the PodHandle's socket path.
|
||
crates/pod/src/ipc/server.rs:73: // warnings emitted before this client connected are replayed
|
||
crates/pod/src/ipc/server.rs:143: // Slow client fell behind the broadcast buffer.
|
||
crates/pod/src/ipc/server.rs:151: // Broadcast events → this client
|
||
crates/pod/src/ipc/server.rs:162: // Client methods → handle or forward to controller
|
||
crates/session-store/tests/session_test.rs:31: // 1st response: tool call
|
||
crates/session-store/tests/session_test.rs:93:/// Run a worker turn and persist via session-store functions.
|
||
crates/session-store/tests/session_test.rs:102: // Mirror Pod's run-entry contract: log the user input as segments
|
||
crates/session-store/tests/session_test.rs:273: // First run: tool call with pause policy → Paused
|
||
crates/session-store/tests/session_test.rs:449: // Simulate another Pod writing to the same segment behind our back.
|
||
crates/memory/src/extract/input.rs:3://! `crates/pod/src/pod.rs::build_summary_prompt` と同じ方針で
|
||
crates/memory/src/extract/input.rs:4://! Item 列を flat な行に落とす(reasoning は省く、tool call は名前のみ、
|
||
crates/memory/src/extract/input.rs:5://! tool result は summary のみ)。conversation 全体を Markdown の単一
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/events.rs:3://! `response.*` 名前空間の SSE を共通の [`Event`](crate::llm_client::event::Event)
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/events.rs:310:/// 必要なフィールドが抜けている等は [`ClientError::Api`] で返す。
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/events.rs:997: // flat index が別々になる(Parallel tool calling の基本)。
|
||
crates/llm-worker/src/tool_server.rs:14: /// A tool with the same name already exists.
|
||
crates/llm-worker/src/tool_server.rs:17: /// Requested tool was not found.
|
||
crates/llm-worker/src/tool_server.rs:25:/// In-memory tool server.
|
||
crates/llm-worker/src/tool_server.rs:33: /// Create a new empty tool server.
|
||
crates/llm-worker/src/tool_server.rs:47:/// Shareable handle to a tool server.
|
||
crates/llm-worker/src/tool_server.rs:55: /// Queue a tool factory for deferred initialization.
|
||
crates/llm-worker/src/tool_server.rs:67: /// Queue many tool factories for deferred initialization.
|
||
crates/llm-worker/src/tool_server.rs:73: /// Execute all pending factories and register the resulting tools.
|
||
crates/llm-worker/src/tool_server.rs:76: /// Exposed as `pub` so higher layers (e.g. Pod) can force-materialise
|
||
crates/llm-worker/src/tool_server.rs:77: /// tools earlier — for example when building a system-prompt template
|
||
crates/llm-worker/src/tool_server.rs:78: /// context that needs the list of registered tool names. Redundant
|
||
crates/llm-worker/src/tool_server.rs:83: /// Panics if any factory produces a tool whose name collides with
|
||
crates/llm-worker/src/tool_server.rs:84: /// an already-registered tool. Duplicate names are a programming
|
||
crates/llm-worker/src/tool_server.rs:107: /// Get a tool by name for hook contexts.
|
||
crates/llm-worker/src/tool_server.rs:115: /// Execute a tool by name.
|
||
crates/llm-worker/src/tool_server.rs:133: /// Remove a registered tool by name.
|
||
crates/llm-worker/src/tool_server.rs:145: /// Replace an existing tool with a new implementation.
|
||
crates/llm-worker/src/tool_server.rs:147: /// The factory is called immediately and the resulting tool overwrites
|
||
crates/llm-worker/src/tool_server.rs:149: /// produced by the factory does not match any registered tool.
|
||
crates/llm-worker/src/tool_server.rs:160: /// Build deterministic tool definitions sorted by tool name.
|
||
crates/llm-worker/src/tool_server.rs:212: // Before flush, no tools are available
|
||
crates/llm-worker/src/tool_server.rs:217: // After flush, tools are available
|
||
crates/llm-worker/src/tool_server.rs:296: // Replace with a tool that returns a fixed string.
|
||
crates/llm-worker/src/tool_server.rs:389: // Wait until the tool is actually executing.
|
||
crates/llm-worker/src/tool_server.rs:392: // Unregister while the tool is mid-execution.
|
||
crates/llm-worker/src/tool_server.rs:442: // Wait until the old tool is mid-execution.
|
||
crates/llm-worker/src/tool_server.rs:445: // Replace while the old tool is executing.
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/request.rs:54: /// 無いとプロンプトキャッシュがほぼ効かない。pod 側は `SegmentId`
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/request.rs:85: /// 過去の function tool 呼び出し(assistant 側)。
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/request.rs:92: /// function tool の結果(user 側)。
|
||
crates/llm-worker/src/llm_client/scheme/openai_responses/request.rs:138:/// Responses 用 tool 定義。Chat と違い function キーでネストせず
|
||
crates/pod/tests/controller_test.rs:17:/// log mirror held by the Pod's broadcast sink. Replaces the previous
|
||
crates/pod/tests/controller_test.rs:18:/// `PodSharedState.history()` test helper now that the mirror lives in
|
||
crates/pod/tests/controller_test.rs:45:// Mock LLM Client
|
||
crates/pod/tests/controller_test.rs:172: // Separate tempdir to serve as the Pod's pwd/scope — these tests
|
||
crates/pod/tests/controller_test.rs:173: // exercise the controller via a mock client and never touch the
|
||
crates/pod/tests/controller_test.rs:174: // filesystem through tools, so a throwaway writable dir is enough.
|
||
crates/pod/tests/controller_test.rs:251:/// Mid-turn re-attach: a client connecting while the worker is still
|
||
crates/pod/tests/controller_test.rs:255:/// view without needing the prior client's diff.
|
||
crates/pod/tests/controller_test.rs:524: // Mixed input: plain text + a paste chip + trailing text. Pod must
|
||
crates/pod/tests/controller_test.rs:528: // unchanged so other clients can re-render the chip.
|
||
crates/pod/tests/controller_test.rs:791: // PodInterceptor::pending_history_appends and cloned into the
|
||
crates/pod/tests/controller_test.rs:1313: // our hanging tool. The Worker commits the ToolCall to history,
|
||
crates/pod/tests/controller_test.rs:1314: // then parks inside `execute_tools` waiting on the tool — which is
|
||
crates/pod/tests/controller_test.rs:1345: // right before the Worker enters tool execution and pends.
|
||
crates/pod/tests/controller_test.rs:1369: // New user input while Paused → `Pod::run` observes
|
||
crates/pod/tests/restore_test.rs:1://! Integration tests for `Pod::restore_from_manifest`'s pre-build
|
||
crates/pod/tests/restore_test.rs:4://! These cases all return before `prepare_pod_common` runs, so they
|
||
crates/pod/tests/restore_test.rs:5://! do not need a real LLM client or pod-registry environment — only the
|
||
crates/pod/tests/restore_test.rs:6://! session store needs to be present.
|
||
crates/pod/tests/restore_test.rs:133: // NotFound, which `Pod::restore_from_manifest` surfaces verbatim
|
||
crates/pod/tests/restore_test.rs:134: // as `PodError::Store`.
|
||
crates/pod/tests/restore_test.rs:163: // which `restore_from_manifest` rejects with `SegmentEmpty` *before*
|
||
crates/pod/tests/restore_test.rs:164: // it gets as far as building the LLM client.
|
||
crates/memory/src/extract/mod.rs:3://! 通常 Pod の post-run hook で発火する disposable Worker と、その
|
||
crates/memory/src/extract/mod.rs:4://! 出力を `<workspace>/.insomnia/memory/_staging/<id>.json` に書き出す
|
||
crates/memory/src/extract/mod.rs:5://! ヘルパーを提供する。Pod 側はこのモジュールから:
|
||
crates/memory/src/extract/mod.rs:8://! - [`write_extracted_tool`] を唯一のツールとして
|
||
crates/memory/src/extract/mod.rs:11://! の順で組み立てる。system prompt は Pod の `PromptCatalog`
|
||
crates/memory/src/extract/mod.rs:12://! (`PodPrompt::MemoryExtractSystem`) で管理される。pointer 永続化
|
||
crates/memory/src/extract/mod.rs:13://! (session-store の `LogEntry::Extension`、domain `"memory.extract"`)は
|
||
crates/memory/src/extract/mod.rs:14://! Pod 側が責務を持つ。
|
||
crates/memory/src/extract/mod.rs:33:/// session-store `LogEntry::Extension` で使う domain 名。
|
||
crates/llm-worker/src/tool.rs:3://! Traits for defining tools callable by LLM.
|
||
crates/llm-worker/src/tool.rs:4://! Usually auto-implemented using the `#[tool]` macro.
|
||
crates/llm-worker/src/tool.rs:14:/// Error during tool execution
|
||
crates/llm-worker/src/tool.rs:32:/// Threshold below which tool output is treated as summary-only (no content).
|
||
crates/llm-worker/src/tool.rs:36:/// Byte-size caps applied to tool execution `content` at the Worker's
|
||
crates/llm-worker/src/tool.rs:37:/// tool-execution boundary, before results enter conversation history.
|
||
crates/llm-worker/src/tool.rs:39:/// Exists so a single oversized tool result (e.g. a wide `Glob` scan)
|
||
crates/llm-worker/src/tool.rs:40:/// cannot blow past the provider's per-minute input-token rate limit.
|
||
crates/llm-worker/src/tool.rs:41:/// Individual tools are not trusted to self-limit — this is the single
|
||
crates/llm-worker/src/tool.rs:49: /// Cap applied to any tool not listed in `per_tool`.
|
||
crates/llm-worker/src/tool.rs:51: /// Per-tool overrides, keyed by tool registration name.
|
||
crates/llm-worker/src/tool.rs:56: /// Resolve the cap for a given tool name.
|
||
crates/llm-worker/src/tool.rs:133:/// Used for sending tool definitions to LLM.
|
||
crates/llm-worker/src/tool.rs:182:/// ToolMeta::new("my_tool")
|
||
crates/llm-worker/src/tool.rs:183:/// .description("My tool description")
|
||
crates/llm-worker/src/tool.rs:188:/// worker.register_tool(def)?;
|
||
crates/llm-worker/src/tool.rs:196:/// Trait for defining tools callable by LLM
|
||
crates/llm-worker/src/tool.rs:209:/// #[tool]
|
||
crates/llm-worker/src/tool.rs:216:/// worker.register_tool(app.search_definition())?;
|
||
crates/llm-worker/src/tool.rs:222:/// use llm_worker::tool::{Tool, ToolError, ToolMeta, ToolDefinition};
|
||
crates/llm-worker/src/tool.rs:237:/// ToolMeta::new("my_tool")
|
||
crates/llm-worker/src/tool.rs:238:/// .description("My custom tool")
|
||
crates/llm-worker/src/tool.rs:246: /// Execute the tool.
|
||
crates/llm-worker/src/tool.rs:276:/// Intermediate representation between tool execution and history.
|
||
crates/llm-worker/src/tool.rs:280: /// Corresponding tool call ID
|
||
crates/pod/tests/spawn_pod_test.rs:1://! Integration tests for the `SpawnPod` tool.
|
||
crates/pod/tests/spawn_pod_test.rs:3://! These tests exercise the tool's pod-registry delegation, subprocess
|
||
crates/pod/tests/spawn_pod_test.rs:4://! launch, socket handoff, and `spawned_pods.json` write without relying
|
||
crates/pod/tests/spawn_pod_test.rs:5://! on the real `pod` binary. `INSOMNIA_POD_COMMAND` is pointed at
|
||
crates/pod/tests/spawn_pod_test.rs:7://! listener pre-binds the predicted socket path, so the tool sees the
|
||
crates/pod/tests/spawn_pod_test.rs:43:/// `pods.json` and per-Pod runtime subdirs both land in the
|
||
crates/pod/tests/spawn_pod_test.rs:45:/// tool has something to delegate from. Returns the tempdir (keeps it
|
||
crates/pod/tests/spawn_pod_test.rs:80: // tool call. Dropping it would auto-release the allocation, which
|
||
crates/pod/tests/spawn_pod_test.rs:87:/// Bind a Unix listener at the path the tool will predict for the
|
||
crates/pod/tests/spawn_pod_test.rs:88:/// spawned pod. The tool only needs the socket to accept a connection
|
||
crates/pod/tests/spawn_pod_test.rs:101:/// inside the tool makes a probe connection that carries no data, so the
|
||
crates/pod/tests/spawn_pod_test.rs:145:/// child via a mock socket — but `spawn_pod_tool` needs a value to
|
||
crates/pod/tests/spawn_pod_test.rs:146:/// embed in the overlay TOML. Any well-formed `ModelManifest` works.
|
||
crates/pod/tests/spawn_pod_test.rs:159:/// `setup_spawner`. The tool revokes Write rules from this scope on
|
||
crates/pod/tests/spawn_pod_test.rs:224: // Verify the tool delivered Method::Run to the socket.
|
||
crates/pod/tests/spawn_pod_test.rs:234: // Verify pod_registry has the child allocation under `root`.
|
||
crates/pod/tests/spawn_pod_test.rs:244: // Verify spawned_pods.json was written.
|
||
crates/pod/tests/spawn_pod_test.rs:336: // tool's wait_for_socket should time out, triggering rollback.
|
||
crates/pod/tests/spawn_pod_test.rs:342: // As the tool's timeout is internal, we accept the 10s wait here —
|
||
crates/tui/src/task.rs:1://! In-TUI mirror of the session-lifetime task store.
|
||
crates/tui/src/task.rs:3://! This deliberately does NOT depend on `tools::TaskStore`. The TUI is a
|
||
crates/tui/src/task.rs:4://! presentation layer; pulling in `tools` would drag along `llm-worker`
|
||
crates/tui/src/task.rs:5://! and the whole tool surface. Instead we mirror the small subset we
|
||
crates/tui/src/task.rs:8://! - `TaskEntry` / `TaskStatus`: shaped to round-trip with `tools`'s JSON
|
||
crates/tui/src/task.rs:12://! tool-call arguments and the `[Session TaskStore snapshot]` system
|
||
crates/tui/src/task.rs:15://! The snapshot text format is owned by `tools::render_snapshot`. Since
|
||
crates/tui/src/task.rs:16://! `tools` itself parses it back on resume, the shape is a stable
|
||
crates/tui/src/task.rs:92: /// tool names and unparseable JSON are silent no-ops, matching the
|
||
crates/tui/src/task.rs:93: /// resilience of `tools::TaskStore::replay_history`.
|
||
crates/tui/src/task.rs:239: /// Snapshot text matches the wrapping `Pod::try_pre_run_compact` /
|
||
crates/tui/src/task.rs:240: /// `tools::render_snapshot` produce: header line, blank, overview
|
||
crates/tui/src/task.rs:316:/// Cross-crate contract tests. The TUI deliberately re-implements a
|
||
crates/tui/src/task.rs:317:/// stripped-down mirror of `tools::TaskStore` instead of depending on
|
||
crates/tui/src/task.rs:319:/// means a format change on the tools side — a renamed field on
|
||
crates/tui/src/task.rs:321:/// JSON wrapper — would silently leave the TUI parsing nothing instead
|
||
crates/tui/src/task.rs:324:/// These tests pull `tools` in as a dev-dependency so the contract is
|
||
crates/tui/src/task.rs:326:/// changed (update both sides) or the TUI mirror has drifted (re-sync
|
||
crates/tui/src/task.rs:333: /// Mirrors the envelope `Pod::try_pre_run_compact` wraps the raw
|
||
crates/tui/src/task.rs:396: // A single `tools::TaskEntry` round-tripped through JSON. Field
|
||
crates/tui/src/task.rs:398: // the tools side would surface here as a serde failure or a
|
||
crates/tui/src/task.rs:414: // valid snapshot envelope. The TUI must parse it as "zero
|
||
crates/tui/src/task.rs:419: // Seed the TUI store with stale state to confirm replacement.
|
||
crates/pod/tests/compact_events_test.rs:72:/// `single_text_events` + a UsageEvent so the Pod's `usage_history`
|
||
crates/pod/tests/compact_events_test.rs:122:// `compact_request_threshold` drives the PodInterceptor's mid-turn yield
|
||
crates/pod/tests/compact_events_test.rs:218:/// Pod metadata starts with a reserved Session and no Segment, then becomes
|
||
crates/pod/tests/compact_events_test.rs:249:/// Pod's back, the next run's `ensure_segment_head` detects the
|
||
crates/pod/tests/compact_events_test.rs:289: // the on-disk entry count past the Pod's own append tally without
|
||
crates/pod/tests/compact_events_test.rs:290: // updating the Pod's `entries_written`.
|
||
crates/pod/tests/compact_events_test.rs:305: // The Pod moved to a new segment in the same Session.
|
||
crates/pod/tests/compact_events_test.rs:368: // messages introduced by the compactor. Clients re-seed their view
|
||
crates/pod/tests/compact_events_test.rs:441: // [1] compact worker emits `write_summary` tool call.
|
||
crates/pod/tests/compact_events_test.rs:489:/// Regression: `Pod::compact()` must reset the in-memory
|
||
crates/pod/tests/compact_events_test.rs:546: // [2] extract worker closes after the tool result.
|
||
crates/pod/tests/compact_events_test.rs:548: // [4] compact worker closes after the tool result.
|
||
crates/pod/tests/compact_events_test.rs:567: // Compact runs. Without the fix the in-memory pointer would still
|
||
crates/pod/tests/compact_events_test.rs:580:/// without removing the `[memory]` section.
|
||
crates/pod/tests/compact_events_test.rs:656:// Detached post-run memory jobs (`spawn_post_run_memory_jobs` /
|
||
crates/pod/tests/compact_events_test.rs:657:// `wait_for_memory_jobs`). Covers the detach round-trip and the structural
|
||
crates/pod/tests/compact_events_test.rs:658:// invariant that the cloned memory-task Pod shares `SegmentState` with the
|
||
crates/pod/tests/compact_events_test.rs:659:// source Pod, so that `save_extension` from the background extract does not
|
||
crates/pod/tests/compact_events_test.rs:729: // Source pod and the cloned memory-task pod share `SegmentState` via
|
||
crates/llm-worker/src/prune.rs:1://! Prune — context projection for old tool-result content.
|
||
crates/llm-worker/src/prune.rs:11://! 射影の適用は上位層(`pod::prune_hook` 等)が LLM に送る一時コンテキスト
|
||
crates/llm-worker/src/prune.rs:78:/// branch. Pod 等の上位層が install して metrics を発行する。
|
||
crates/llm-worker/src/prune.rs:205: /// Helper: build a history with interleaved user messages and tool results.
|
||
crates/pod/tests/session_metrics_test.rs:3://! Drives a Pod with a scripted mock LLM client and a custom tool that
|
||
crates/pod/tests/session_metrics_test.rs:8://! unavailable or the protected-token window covers all tool results.
|
||
crates/pod/tests/session_metrics_test.rs:187:/// Drive Pod through enough runs to exercise both skip-no_candidates and
|
||
crates/pod/tests/session_metrics_test.rs:192: // Run 1 (request 0): tool_use → triggers tool execution → request 1
|
||
crates/pod/tests/session_metrics_test.rs:206: // runs complete — the Pod retains its own copy.
|
||
crates/pod/tests/session_metrics_test.rs:215: // Run 1 has 2 LLM iterations (tool loop), each evaluates prune with
|
||
crates/pod/tests/session_metrics_test.rs:421:/// fires on the alerter so the TUI surface picks it up.
|
||
crates/pod/tests/session_metrics_test.rs:436: // Even with a tool registered, this run will only emit
|
||
crates/pod/tests/session_metrics_test.rs:460: // The alerter saw at least one Warn from AlertSource::Pod.
|
||
crates/pod/tests/session_metrics_test.rs:482: // Manifest without any `[compaction]` section → prune (and therefore
|
||
crates/pod/src/ipc/alerter.rs:1://! User-facing alert channel for Pod → client.
|
||
crates/pod/src/ipc/alerter.rs:4://! are short human-readable messages the Pod layer wants a client to
|
||
crates/pod/src/ipc/alerter.rs:5://! see — for example "compaction failed", "tool output truncated".
|
||
crates/pod/src/ipc/alerter.rs:8://! also appended to an in-memory buffer so that clients connecting
|
||
crates/pod/src/ipc/alerter.rs:21:/// memory through a pathological loop of recurring alerts
|
||
crates/pod/src/ipc/alerter.rs:47: /// The broadcast may have no subscribers (e.g. during Pod
|
||
crates/pod/src/ipc/alerter.rs:48: /// construction before any client has connected); the buffer
|
||
crates/pod/src/ipc/alerter.rs:49: /// guarantees the message is still delivered once a client
|
||
crates/pod/src/ipc/alerter.rs:53: /// `subscribe_with_snapshot` race-free — a client that snapshots
|
||
crates/pod/tests/consolidation_test.rs:1://! consolidation (memory.consolidation) post-run trigger.
|
||
crates/pod/tests/consolidation_test.rs:4://! full sub-worker tool loop:
|
||
crates/pod/tests/consolidation_test.rs:6://! - no `[memory]` section → no-op
|
||
crates/pod/tests/consolidation_test.rs:7://! - `[memory]` present but no thresholds → no-op
|
||
crates/pod/tests/consolidation_test.rs:385: // tells it to call memory tools; the mock skips those, but `Worker::run`
|
||
crates/pod/tests/consolidation_test.rs:442: // Sanity: when the flag is cleared, the same pod fires normally and
|
||
crates/pod/tests/consolidation_test.rs:460: // Coalesce semantics from `docs/plan/memory.md` §並走防止: a single
|
||
crates/tui/src/cache.rs:3://! Holds `path → content` for every file the TUI has observed via a
|
||
crates/tui/src/cache.rs:31: /// cache untouched (the TUI can't reliably reconstruct the new
|
||
crates/tui/src/cache.rs:38: // tool's own precondition and keeps the cache from diverging
|
||
crates/pod-registry/src/error.rs:1://! Error type for mutating pod-registry operations.
|
||
crates/pod-registry/src/error.rs:9:/// Errors raised by the mutating pod-registry operations.
|
||
crates/pod/tests/system_prompt_template_test.rs:16:// Mock LLM Client
|
||
crates/pod/tests/system_prompt_template_test.rs:64:/// Emit a single `write_summary(text=...)` tool call as one LLM response.
|
||
crates/pod/tests/system_prompt_template_test.rs:94:/// Build a Pod with a synthetic instruction template.
|
||
crates/pod/tests/system_prompt_template_test.rs:98:/// a Pod constructed directly via `Pod::new`.
|
||
crates/tui/src/tool.rs:1://! Per-tool renderers.
|
||
crates/tui/src/tool.rs:3://! Each tool name has a custom renderer that converts a
|
||
crates/tui/src/tool.rs:5://! tools fall back to [`render_default`]. Some renderers (notably
|
||
crates/tui/src/tool.rs:17:/// Maximum body lines in normal mode for tool output previews.
|
||
crates/tui/src/tool.rs:292: // positions say — Edit never wants to panic the whole TUI just
|
||
crates/tui/src/tool.rs:550:// Default (unknown tool)
|
||
crates/tui/src/tool.rs:594: // Detail mode can expose it. Fall back to the summary when the tool
|
||
crates/pod/tests/pod_comm_tools_test.rs:1://! Integration tests for the pod-comm tools (`SendToPod`,
|
||
crates/pod/tests/pod_comm_tools_test.rs:2://! `ReadPodOutput`, `StopPod`, `ListPods`).
|
||
crates/pod/tests/pod_comm_tools_test.rs:4://! The real child Pod binary is not started. Instead each test stands
|
||
crates/pod/tests/pod_comm_tools_test.rs:5://! up a mock `UnixListener` that speaks the socket protocol directly:
|
||
crates/pod/tests/pod_comm_tools_test.rs:9://! LLM layer — the tools are exercised for their wire behaviour alone.
|
||
crates/pod/tests/pod_comm_tools_test.rs:78:/// Create a spawner-owned `RuntimeDir` + `SpawnedPodRegistry` scoped to
|
||
crates/pod/tests/pod_comm_tools_test.rs:91:/// pods.json.
|
||
crates/pod/tests/pod_comm_tools_test.rs:136:/// Accept one connection, send the protocol's connect-time snapshot,
|
||
crates/pod/tests/pod_comm_tools_test.rs:150:/// Accept one connection, send the protocol's connect-time snapshot,
|
||
crates/pod/tests/pod_comm_tools_test.rs:151:/// read one `Method`, then write `response` back. Used by `SendToPod`
|
||
crates/pod/tests/pod_comm_tools_test.rs:172:/// Pretend to be a spawned Pod whose connect-time snapshot carries a
|
||
crates/pod/tests/pod_comm_tools_test.rs:174:/// every accept — the real Pod does the same, so `ReadPodOutput`'s
|
||
crates/pod/tests/pod_comm_tools_test.rs:251:// SendToPod
|
||
crates/pod/tests/pod_comm_tools_test.rs:259: // ack with `TurnStart` so `SendToPod`'s confirmation loop succeeds.
|
||
crates/pod/tests/pod_comm_tools_test.rs:325:// ReadPodOutput
|
||
crates/pod/tests/pod_comm_tools_test.rs:368: // on. Connect must fail → tool reports "stopped".
|
||
crates/pod/tests/pod_comm_tools_test.rs:380:// StopPod
|
||
crates/pod/tests/pod_comm_tools_test.rs:405: // Seed pods.json with a restored top-level `spawner` allocation whose
|
||
crates/pod/tests/pod_comm_tools_test.rs:407: // allocation — mimics a parent resumed after SpawnPod.
|
||
crates/pod/tests/pod_comm_tools_test.rs:476: // spawned_pods.json now lists zero children.
|
||
crates/pod/tests/pod_comm_tools_test.rs:492: // at a dead path. StopPod should still clean up local bookkeeping.
|
||
crates/pod/tests/pod_comm_tools_test.rs:727:// ListPods
|
||
crates/tui/src/picker.rs:1://! Inline-viewport "pick a Pod to attach or restore" UX.
|
||
crates/tui/src/picker.rs:3://! Reads live Pod allocations from the runtime registry and stopped Pod state
|
||
crates/tui/src/picker.rs:4://! from the session store's name-keyed metadata. Picking a live row attaches to
|
||
crates/tui/src/picker.rs:5://! its socket; picking a stopped row restores via `pod --pod <name>`.
|
||
crates/tui/src/picker.rs:65: /// User picked a Pod. `socket_override` is set for live rows when the
|
||
crates/tui/src/picker.rs:67: /// empty so the caller restores with `pod --pod <name>`.
|
||
crates/tui/src/picker.rs:102:/// One row in the Pod picker. The primary key is the Pod name; Session/Segment
|
||
crates/pod-registry/src/lifecycle.rs:15:/// Pod's entry. The guard keeps only the name + lock-file path; it
|
||
crates/pod-registry/src/lifecycle.rs:16:/// does not hold the `flock` for the Pod's lifetime.
|
||
crates/pod-registry/src/lifecycle.rs:41:/// Open the default lock file, register a top-level Pod, and return a
|
||
crates/pod-registry/src/lifecycle.rs:53:/// Open the default lock file, register a top-level Pod with explicit
|
||
crates/pod-registry/src/lifecycle.rs:82:/// a spawning Pod.
|
||
crates/pod-registry/src/lifecycle.rs:110:/// Rewrite the `segment_id` recorded for `pod_name` to
|
||
crates/pod-registry/src/lifecycle.rs:113:/// The Pod's in-memory `segment_id` can change underneath the
|
||
crates/pod-registry/src/lifecycle.rs:116:/// - `Pod::compact` mints a fresh session and swaps it in.
|
||
crates/pod-registry/src/lifecycle.rs:117:/// - `session_store::ensure_head_or_fork` auto-forks when another
|
||
crates/pod-registry/src/lifecycle.rs:122:/// concurrent `restore_from_manifest(new_id)` would see "no live
|
||
crates/pod-registry/src/lifecycle.rs:124:/// session this Pod just moved into.
|
||
crates/pod-registry/src/lifecycle.rs:150:/// Information about a Pod that currently holds an allocation for a
|
||
crates/pod-registry/src/lifecycle.rs:162:/// Used by `Pod::restore_from_manifest` to refuse a resume that would
|
||
crates/pod/src/ipc/notify_buffer.rs:1://! Pending-notify buffer for `Method::Notify` and `Method::PodEvent`.
|
||
crates/pod/src/ipc/notify_buffer.rs:5://! `PodInterceptor::pending_history_appends`, which the Worker calls
|
||
crates/pod/src/ipc/notify_buffer.rs:13://! This is the **single lane** for "system messages produced by Pod
|
||
crates/pod/src/ipc/notify_buffer.rs:14://! state that should land in the next LLM request": Notify, PodEvent,
|
||
crates/pod/src/ipc/notify_buffer.rs:49:/// Cloned between the Pod (producer) and PodInterceptor (consumer).
|
||
crates/pod/src/ipc/notify_buffer.rs:67: /// Push a typed pod-event entry onto the queue.
|
||
crates/pod/src/ipc/notify_buffer.rs:103:/// `Notify` (raw message) and `PodEvent` (rendered event line).
|
||
crates/tools/src/task.rs:1://! Session-lifetime TaskStore and builtin task tools.
|
||
crates/tools/src/task.rs:3://! The store survives compaction and Pod restart — it is reconstructed
|
||
crates/tools/src/task.rs:4://! on resume by replaying TaskCreate / TaskUpdate tool-call arguments
|
||
crates/tools/src/task.rs:6://! [`session_store::SessionId`] (the conversation), not the Pod process.
|
||
crates/tools/src/task.rs:551: /// Wrap snapshot text the way `Pod::try_pre_run_compact` does, so tests
|
||
crates/tools/src/task.rs:660: // Mirrors `Pod::try_pre_run_compact`'s synthetic insertion:
|
||
crates/tools/src/task.rs:663: // contract every provider request builder relies on (matched call_id,
|
||
crates/tools/src/task.rs:664: // tool name, content recoverable to the same TaskStore state).
|
||
crates/tools/src/task.rs:685: // expected tool name + detailed content.
|
||
crates/tui/src/markdown.rs:4://! into the rest of the TUI's wrap/scroll pipeline. Scope (which Markdown
|
||
crates/tui/src/block.rs:1://! History blocks: the unit of the TUI's stored display model.
|
||
crates/tui/src/block.rs:3://! The TUI holds a flat `Vec<Block>` and re-renders it every frame.
|
||
crates/tui/src/block.rs:5://! queuing a new line, so one logical thing (a tool call, an assistant
|
||
crates/tui/src/block.rs:23: /// element. File refs, auto-read snippets, workflow bodies, and future
|
||
crates/tui/src/block.rs:28: /// Echo of `Method::Notify` received by this Pod, surfaced as a log
|
||
crates/tui/src/block.rs:34: /// Echo of `Method::PodEvent` received by this Pod. Same role as
|
||
crates/tui/src/block.rs:61: /// Accumulated reasoning body. Empty for providers that emit only
|
||
crates/tui/src/block.rs:94: /// The TUI stopped observing events before a terminal compact event.
|
||
crates/tui/src/block.rs:106: /// For Edit tool calls: snapshot of the file content *before* the
|
||
crates/tui/src/block.rs:118: /// `ToolCallDone` received, waiting on the tool result.
|
||
crates/workflow/src/skill.rs:7://! it as a Workflow so `/<name>` resolves to it just like an internal
|
||
crates/workflow/src/skill.rs:8://! Workflow.
|
||
crates/workflow/src/skill.rs:12://! skills loadable. Internal Workflows (`.insomnia/workflow/<slug>.md`) keep
|
||
crates/workflow/src/skill.rs:34:/// `metadata` are documentary, while `allowed-tools` is recognised and
|
||
crates/workflow/src/skill.rs:52:/// to a `WorkflowRecord` by the caller via the `Skill → Workflow`
|
||
crates/workflow/src/skill.rs:53:/// projection in [`crate::WorkflowRecord`].
|
||
crates/workflow/src/skill.rs:60: /// register `scripts/` / `references/` / `assets/` against the Pod's
|
||
crates/workflow/src/skill.rs:64: /// the resulting `WorkflowRecord`.
|
||
crates/workflow/src/skill.rs:69: /// Project this skill into a [`WorkflowRecord`]. Skill-sourced
|
||
crates/workflow/src/skill.rs:70: /// Workflows are advertised resident (`model_invokation: true`,
|
||
crates/workflow/src/skill.rs:392: // allowed-tools triggers a warn, but parse succeeds.
|
||
crates/pod-registry/src/table.rs:20:/// One Pod's scope allocation.
|
||
crates/pod-registry/src/table.rs:22:/// `scope_allow` is the full set of allow rules the Pod was granted.
|
||
crates/pod-registry/src/table.rs:23:/// Portions delegated out to child Pods are **not** subtracted in
|
||
crates/pod-registry/src/table.rs:25:/// removing rules owned by any Pod whose `delegated_from` points to
|
||
crates/pod-registry/src/table.rs:30: /// Pod name — also the identity used throughout orchestration.
|
||
crates/pod-registry/src/table.rs:34: /// Pod's Unix socket path.
|
||
crates/pod-registry/src/table.rs:36: /// Allow rules granted to this Pod (write + read).
|
||
crates/pod-registry/src/table.rs:38: /// Deny rules that cap this Pod's effective scope. Normally empty for
|
||
crates/pod-registry/src/table.rs:39: /// fresh allocations; restored Pods use this to avoid reclaiming
|
||
crates/pod-registry/src/table.rs:43: /// Name of the Pod that delegated scope to this one, or `None` for
|
||
crates/pod-registry/src/table.rs:44: /// a top-level Pod started directly by a human.
|
||
crates/pod-registry/src/table.rs:46: /// Segment ID this Pod is currently writing to. `None` means this
|
||
crates/pod-registry/src/table.rs:72:/// Default on-disk path: `<runtime_dir>/pods.json` resolved via
|
||
crates/pod-registry/src/table.rs:73:/// [`manifest::paths::pod_registry_path`]. Tests should point this
|
||
crates/tui/src/ui.rs:1://! Full-screen rendering for the TUI.
|
||
crates/tui/src/ui.rs:39: /// tool blocks stay in detail.
|
||
crates/tui/src/ui.rs:650: // ToolCall is dispatched in `compute_history` via `tool::render_tool`
|
||
crates/tui/src/ui.rs:706:/// `#` knowledge = green, `/` workflow = yellow), so the user
|
||
crates/tui/src/ui.rs:1381: /// External-input echoes (`Method::Notify` / `Method::PodEvent`).
|
||
crates/tui/src/ui.rs:1383: /// the line came from another Pod or operator, not the local user.
|
||
crates/tui/src/ui.rs:1416:/// One-line summary of a `PodEvent` for display in the activity log.
|
||
crates/tui/src/ui.rs:1418:/// in the pod crate) — that path applies prompt-pack wrapping, while
|
||
crates/pod/src/main.rs:16: /// Manifest TOML to use directly, without loading user, project, or
|
||
crates/pod/src/main.rs:21: /// Start the project-manifest walk from this directory. When
|
||
crates/pod/src/main.rs:23: /// directory looking for `.insomnia/manifest.toml`.
|
||
crates/pod/src/main.rs:28: /// layer. Example: `--overlay 'pod.name = "dbg"'`.
|
||
crates/pod/src/main.rs:33: /// `<data_dir>/sessions/` (see `manifest::paths`).
|
||
crates/pod/src/main.rs:37: /// Claim a scope allocation pre-registered by a spawning Pod, rather
|
||
crates/pod/src/main.rs:39: /// process is launched by `SpawnPod`; end users should never pass it.
|
||
crates/pod/src/main.rs:43: /// Socket path of the spawning Pod, for delivering `Method::Notify`
|
||
crates/pod/src/main.rs:48: /// Resume or create a Pod by name. If name-keyed Pod state exists,
|
||
crates/pod/src/main.rs:50: /// fresh top-level Pod is created with this name.
|
||
crates/pod/src/main.rs:54: /// Require `--pod` to restore existing Pod state instead of creating a
|
||
crates/pod/src/main.rs:55: /// fresh Pod when no state exists. Used by Pod discovery restore flows.
|
||
crates/pod/src/main.rs:59: /// Restore a Pod from an existing session. The Pod re-uses the
|
||
crates/pod/src/main.rs:61: /// concurrent writers are prevented by the pod-registry.
|
||
crates/pod/src/main.rs:313: // Machine-readable ready line for parents that spawned this Pod
|
||
crates/pod/src/main.rs:314: // (e.g. the TUI's interactive `spawn` flow). Tab-separated so a
|
||
crates/pod/src/main.rs:315: // pod name with spaces still parses cleanly. Emit before the
|
||
crates/tui/src/main.rs:60: /// `tui <name>` / `tui --pod <name>`: attach to a live Pod by name if
|
||
crates/tui/src/main.rs:61: /// possible; otherwise launch `pod --pod <name>` so the pod process
|
||
crates/tui/src/main.rs:62: /// resumes from name-keyed state or creates a fresh same-name Pod.
|
||
crates/tui/src/main.rs:67: /// `tui -r` / `tui --resume`: open the Pod picker, then attach to the
|
||
crates/tui/src/main.rs:68: /// selected live Pod or restore the selected stopped Pod by name.
|
||
crates/tui/src/main.rs:235: // duplicate. Other errors (pod-name failures, terminal setup
|
||
crates/tui/src/main.rs:301: // Pick a Pod in its own inline viewport, dropping the viewport before
|
||
crates/tui/src/main.rs:355: // The Pod sends `Event::Snapshot` automatically on connect;
|
||
crates/tui/src/main.rs:890:/// Idle / Paused → 2-tap to quit the TUI (the Pod keeps running).
|
||
crates/pod/src/permission.rs:12:/// Built-in manifest permission policy for `PreToolCall`.
|
||
crates/pod/src/permission.rs:14:/// This hook is registered by Pod before user hooks, so manifest-level deny
|
||
crates/tui/src/app.rs:29: /// Latest candidate set returned by the Pod for `(kind, prefix)`.
|
||
crates/tui/src/app.rs:72: /// Last controller status reported by the Pod. Drives the status line
|
||
crates/tui/src/app.rs:75: /// True while the Pod is in `PodStatus::Running`.
|
||
crates/tui/src/app.rs:77: /// True while the Pod is in `PodStatus::Paused`.
|
||
crates/tui/src/app.rs:86: /// Latest session context tokens reported by the Pod. This is the raw
|
||
crates/tui/src/app.rs:94: /// Latest memory extract/consolidation lifecycle event for actionbar observability.
|
||
crates/tui/src/app.rs:103: /// 2-tap guard for `Ctrl-C` when the Pod is not running. First press
|
||
crates/tui/src/app.rs:105: /// TUI (the Pod itself stays alive).
|
||
crates/tui/src/app.rs:119: /// In-TUI mirror of the Pod's session task store, reconstructed
|
||
crates/tui/src/app.rs:120: /// directly from observed `TaskCreate` / `TaskUpdate` tool calls and
|
||
crates/tui/src/app.rs:121: /// `[Session TaskStore snapshot]` system messages — no protocol
|
||
crates/tui/src/app.rs:122: /// surface added on the Pod side.
|
||
crates/tui/src/app.rs:129: /// TUI-local FIFO of user inputs submitted while the Pod is already running.
|
||
crates/tui/src/app.rs:130: /// Entries have not been sent to the Pod yet, so they remain editable/cancellable locally.
|
||
crates/tui/src/app.rs:356: /// Files (and Knowledge / Workflow entries, which have no dir
|
||
crates/tui/src/app.rs:387: // Empty Enter only does something meaningful when the Pod
|
||
crates/tui/src/app.rs:408: // client subscribed to the Pod). Locally we only clear the
|
||
crates/tui/src/app.rs:410: // local state to undo the visible submit if the Pod reports that
|
||
crates/tui/src/app.rs:476: // Pod attaches the original `Vec<Segment>` to user
|
||
crates/tui/src/app.rs:619: // through to subscribers but the TUI currently derives its
|
||
crates/tui/src/app.rs:677: // for providers that don't stream deltas.
|
||
crates/tui/src/app.rs:782: // Result for an unknown tool call. Surface it as an
|
||
crates/tui/src/app.rs:802: // Subtract the cache-hit portion so a tool loop that
|
||
crates/tui/src/app.rs:997: // tool-call equivalent does, since tool calls finalize in
|
||
crates/tui/src/app.rs:1052: /// Called on `TurnEnd`: mark any tool call still in an in-progress
|
||
crates/tui/src/app.rs:1064: // Earlier tool calls in the same list are already
|
||
crates/tui/src/app.rs:1215: /// because the Pod identity hasn't changed.
|
||
crates/tui/src/app.rs:1275: /// block (`Block::Notify`, `Block::PodEvent`, …).
|
||
crates/tui/src/app.rs:1305: /// Sweep all current tool-call blocks: any that never resolved into
|
||
crates/tui/src/app.rs:1307: /// snapshot replay so dangling in-flight tool calls in the seed
|
||
crates/tui/src/app.rs:1354:/// Strip the `cat -n` line-number gutter that the Read tool prepends to
|
||
crates/tui/src/app.rs:1389:/// `Resume` when the Pod is paused.
|
||
crates/tui/src/app.rs:2290: // Snapshot text injected as a workflow body (kind doesn't matter
|
||
crates/tui/src/app.rs:2309: // Live tool call before the snapshot lands — restore must wipe
|
||
crates/tui/src/app.rs:2382:/// Seed / mutate the file-content cache based on a completed tool call.
|
||
crates/tui/src/app.rs:2384:/// Each built-in file tool has its own rule: Read copies the result body
|
||
crates/tui/src/app.rs:2401: // The Read tool emits a `cat -n` style display: each
|
||
crates/workflow/src/schema.rs:1://! Workflow frontmatter schema and frontmatter splitting helpers.
|
||
crates/workflow/src/schema.rs:13: /// Workflows do not require timestamps in the MVP. Human-authored files
|
||
crates/manifest/src/paths.rs:5://! - **`config_dir`** — 人が手で書く / 編集する設定。`manifest.toml`,
|
||
crates/manifest/src/paths.rs:6://! `providers.toml`, `models.toml`, `prompts/`, `prompts.toml` 等
|
||
crates/manifest/src/paths.rs:9://! `pods.json`, `pid` ファイル等
|
||
crates/manifest/src/paths.rs:29:/// Environment variable that points at an explicit user manifest.
|
||
crates/manifest/src/paths.rs:31:/// Pod CLI treats a non-empty value as an explicit manifest path. Empty values
|
||
crates/manifest/src/paths.rs:33:/// auto-discovered user manifest path.
|
||
crates/manifest/src/paths.rs:36:/// 設定ディレクトリ。`manifest.toml`, `providers.toml`, `models.toml`,
|
||
crates/manifest/src/paths.rs:63:/// ランタイムディレクトリ。socket, `pods.json`, Pod ごとの `pid` /
|
||
crates/manifest/src/paths.rs:80:/// `<config_dir>/manifest.toml` — user manifest の既定位置。
|
||
crates/manifest/src/paths.rs:83:/// [`user_manifest_path_with_env_override`] when mirroring the Pod CLI cascade
|
||
crates/manifest/src/paths.rs:89:/// Resolve an explicit user manifest override from an env value.
|
||
crates/manifest/src/paths.rs:92:/// override, matching the Pod CLI's `INSOMNIA_USER_MANIFEST` handling.
|
||
crates/manifest/src/paths.rs:103:/// User manifest path using the same env override rule as the Pod CLI cascade.
|
||
crates/manifest/src/paths.rs:106:/// empty, this falls back to [`user_manifest_path`]. The returned path is not
|
||
crates/manifest/src/paths.rs:122:/// `<config_dir>/<file_name>` — providers.toml / models.toml 等の
|
||
crates/manifest/src/paths.rs:128:/// `<data_dir>/sessions/` — session store のデフォルト位置。
|
||
crates/manifest/src/paths.rs:133:/// `<runtime_dir>/pods.json` — machine-wide Pod allocation registry。
|
||
crates/manifest/src/paths.rs:138:/// `<runtime_dir>/<pod_name>/` — Pod ごとのランタイムディレクトリ。
|
||
crates/manifest/src/paths.rs:143:/// `<runtime_dir>/<pod_name>/sock` — Pod の Unix socket パス。
|
||
crates/manifest/src/paths.rs:145:/// Pod プロセス内で実際に socket を作成するのは `pod` crate の
|
||
crates/manifest/src/paths.rs:146:/// `RuntimeDir::socket_path()` で、Pod 名が分かっている外部 (TUI の
|
||
crates/pod/src/discovery.rs:1://! Pod-state-backed discovery and restore/attach tools.
|
||
crates/pod/src/discovery.rs:3://! This surface deliberately does not enumerate every Pod on the host. The
|
||
crates/pod/src/discovery.rs:5://! Pods it spawned according to durable Pod state) and only then reads each
|
||
crates/pod/src/discovery.rs:6://! Pod's own state. Name-targeted operations distinguish missing state from
|
||
crates/pod/src/discovery.rs:192: // The live in-memory registry covers just-spawned children even if a
|
||
crates/pod/src/discovery.rs:194: // additive visibility hint, not the source of Pod metadata.
|
||
crates/pod/src/discovery.rs:594: /// Pod name to inspect, attach, or restore.
|
||
crates/pod/src/discovery.rs:840: // Pod state when spawned_pods.json is absent.
|
||
crates/pod-registry/src/lib.rs:1://! Machine-wide Pod allocation registry.
|
||
crates/pod-registry/src/lib.rs:3://! A single JSON file at `<runtime_dir>/pods.json` records every live
|
||
crates/pod-registry/src/lib.rs:4://! Pod's allocation (see [`manifest::paths::pod_registry_path`] for
|
||
crates/pod-registry/src/lib.rs:6://! across processes so spawn sequences from unrelated Pods can't race.
|
||
crates/pod-registry/src/lib.rs:8://! Each Pod, when starting, acquires the lock, reclaims stale entries
|
||
crates/pod-registry/src/lib.rs:9://! (Pods whose PID has died), checks that its requested write scope
|
||
crates/pod-registry/src/lib.rs:13://! recovery rides on the next Pod that opens the file — no background
|
||
crates/pod/src/segment_log_sink.rs:1://! Pod-side session-log mirror + broadcast.
|
||
crates/pod/src/segment_log_sink.rs:3://! Owns the in-memory `Vec<LogEntry>` mirror that backs `Event::Snapshot`
|
||
crates/pod/src/segment_log_sink.rs:4://! delivery to newly connected clients and the
|
||
crates/pod/src/segment_log_sink.rs:7://! Pod (which still owns the `Store` handle); the sink stays focused on
|
||
crates/pod/src/segment_log_sink.rs:12://! 1. Pod writes the entry to disk via the `Store`.
|
||
crates/pod/src/segment_log_sink.rs:13://! 2. Pod calls [`SegmentLogSink::publish`] which acquires the mirror
|
||
crates/pod/src/segment_log_sink.rs:18://! so the `(snapshot, receiver)` pair returned to a connecting client
|
||
crates/pod/src/segment_log_sink.rs:36:/// In-memory mirror + broadcast fan-out for the active session log.
|
||
crates/pod/src/segment_log_sink.rs:38:/// Clone is cheap (`Arc` clone) — the Pod hands one to the IPC layer
|
||
crates/pod/src/segment_log_sink.rs:86: /// MUST be called only after the Pod has successfully persisted the
|
||
crates/pod/src/segment_log_sink.rs:101: /// entry would just double-render every block on the client side.
|
||
crates/pod/src/segment_log_sink.rs:117: /// `true` for entry kinds that the IPC layer forwards to clients
|
||
crates/tools/tests/integration.rs:1://! Cross-tool integration tests exercising `builtin_tools()` end-to-end.
|
||
crates/tools/tests/integration.rs:3://! `ToolServerHandle::register_tool` / `flush_pending` are `pub(crate)` in
|
||
crates/tools/tests/integration.rs:4://! llm-worker, so from here we exercise the factories directly — the same
|
||
crates/tools/tests/integration.rs:245: // The key invariant: all builtin tools share the same ScopedFs instance,
|
||
crates/tools/tests/integration.rs:254: // Read via Read tool
|
||
crates/tools/tests/integration.rs:256: // Write via Write tool — must succeed because the shared ScopedFs has the read
|
||
crates/tools/tests/integration.rs:292: // Registration order from builtin_tools(): Read, Write, Edit, Glob, Grep, Bash, TaskCreate, TaskList, TaskGet, TaskUpdate
|
||
crates/tools/tests/integration.rs:311:// Regression: tool name capitalization matches Claude Code reference
|
||
crates/tools/tests/integration.rs:390: // The Bash tool starts at the ScopedFs's pwd. Without any `cd`, its
|
||
crates/tools/tests/integration.rs:426: // Read the file via the Read tool — must succeed (in scope).
|
||
crates/workflow/src/error.rs:1://! Errors raised by Workflow loading and linting.
|
||
crates/workflow/src/error.rs:8:/// A single Workflow linter violation.
|
||
crates/tools/src/bash.rs:1://! `Bash` tool — execute shell commands in a one-shot, stateless way.
|
||
crates/tools/src/bash.rs:8://! mirrors Claude Code's own Bash tool — predictable, no hidden state.
|
||
crates/tools/src/bash.rs:63:/// Maximum bytes loaded into memory from the spilled output file. The
|
||
crates/tools/src/bash.rs:114: // full output later; cleanup is deferred to `Drop` on this tool.
|
||
crates/tools/src/bash.rs:324:/// Factory for the `Bash` tool.
|
||
crates/tools/src/bash.rs:328:/// invocation starts at `fs.pwd()` — the tool is intentionally stateless
|
||
crates/pod-registry/src/test_util.rs:1://! Shared test helpers for the pod-registry crate.
|
||
crates/pod/src/interrupt_prep.rs:1://! Pre-run cleanup that fires when a Pod transitions out of `Paused`
|
||
crates/pod/src/interrupt_prep.rs:5://! `Item::ToolCall` (tool_use emitted by the LLM but whose tool did not
|
||
crates/pod/src/interrupt_prep.rs:7://! `Item::ToolResult` so the next request is wire-valid under providers
|
||
crates/pod/src/interrupt_prep.rs:11://! happen at the front of `Pod::run` when
|
||
crates/pod/src/interrupt_prep.rs:12://! `worker.last_run_interrupted()` is set; see `Pod::apply_interrupt_prep`.
|
||
crates/pod/src/interrupt_prep.rs:38:/// Test-only helper to surface the canonical interrupt tool-result
|
||
crates/pod/src/interrupt_prep.rs:39:/// summary without round-tripping through a Pod — used by tests in
|
||
crates/workflow/src/lib.rs:1://! Workflow records, loading, Agent Skill ingestion, and human-edit linting.
|
||
crates/workflow/src/workflow.rs:1://! Workflow loader and registry.
|
||
crates/workflow/src/workflow.rs:3://! Workflows live under `<workspace>/.insomnia/workflow/<slug>.md`. They are
|
||
crates/workflow/src/workflow.rs:5://! intentionally strict about malformed records because Pod startup should
|
||
crates/workflow/src/workflow.rs:21:/// Hard cap on Workflow descriptions that are advertised resident.
|
||
crates/workflow/src/workflow.rs:25:/// Origin of a [`WorkflowRecord`]. Used to break ties when the same slug
|
||
crates/workflow/src/workflow.rs:26:/// is provided by multiple sources: workspace-authored Workflows always
|
||
crates/workflow/src/workflow.rs:30: /// `<workspace>/.insomnia/workflow/<slug>.md`. Authored in-tree by
|
||
crates/workflow/src/workflow.rs:34: /// manifest. `dir` is the skills root that contained
|
||
crates/workflow/src/workflow.rs:60: /// when [`WorkflowRegistry::merge_skill`] encounters a slug
|
||
crates/workflow/src/workflow.rs:65:/// Returned by [`WorkflowRegistry::merge_skill`] when an incoming skill is
|
||
crates/workflow/src/workflow.rs:66:/// shadowed by an existing record (either an internal Workflow or a
|
||
crates/workflow/src/workflow.rs:138: /// Workflow or earlier-fed skill) already owns the slug, the
|
||
crates/workflow/src/workflow.rs:383: // The legacy `.insomnia/memory/workflow/` location is no longer
|
||
crates/workflow/src/workflow.rs:384: // a Workflow source. Files placed there must be ignored (the
|
||
crates/workflow/src/workflow.rs:385: // loader is rooted at `.insomnia/workflow/` only).
|
||
crates/workflow/src/workflow.rs:462: // The kept record is still the workspace workflow.
|
||
crates/pod/src/factory.rs:1://! Builder that assembles a [`PodManifest`] from cascade layers.
|
||
crates/pod/src/factory.rs:5://! layers provide everything; `TryFrom<PodManifestConfig>` fills in
|
||
crates/pod/src/factory.rs:7://! 2. **User manifest** — `$XDG_CONFIG_HOME/insomnia/manifest.toml`
|
||
crates/pod/src/factory.rs:8://! (falling back to `~/.config/insomnia/manifest.toml`).
|
||
crates/pod/src/factory.rs:9://! 3. **Project manifest** — closest `.insomnia/manifest.toml` found by
|
||
crates/pod/src/factory.rs:12://! [`PodManifestConfig`] supplied by the caller (CLI flags, GUI,
|
||
crates/pod/src/factory.rs:13://! spawning Pod, etc.). Highest priority.
|
||
crates/pod/src/factory.rs:17://! in the project manifest means the project root regardless of how
|
||
crates/pod/src/factory.rs:20://! - user manifest: base = the directory holding the manifest file
|
||
crates/pod/src/factory.rs:21://! (which is `manifest::paths::config_dir()` when loaded via the
|
||
crates/pod/src/factory.rs:23://! - project manifest: base = the **project root** (the parent of
|
||
crates/pod/src/factory.rs:25://! manifests with `target = "."` cover the whole workspace
|
||
crates/pod/src/factory.rs:39:/// Errors raised while building a [`PodManifest`] from cascade layers.
|
||
crates/pod/src/factory.rs:70:/// validated [`PodManifest`].
|
||
crates/pod/src/factory.rs:77: /// User layer paired with the directory the manifest lives in
|
||
crates/pod/src/factory.rs:80: /// Project layer paired with the directory the manifest lives in.
|
||
crates/pod/src/factory.rs:88: /// the user manifest when loaded. `<user_manifest_dir>/prompts/`.
|
||
crates/pod/src/factory.rs:91: /// project manifest when loaded.
|
||
crates/pod/src/factory.rs:93: /// `<user_manifest_dir>/prompts.toml`, sibling of the user
|
||
crates/pod/src/factory.rs:106: /// Attempt to load the user manifest from the user's config
|
||
crates/pod/src/factory.rs:107: /// directory (see [`manifest::paths::config_dir`] for how the path
|
||
crates/pod/src/factory.rs:109: /// no-op — user manifests are optional.
|
||
crates/pod/src/factory.rs:123: /// Load the user manifest from an explicit path. The file must
|
||
crates/pod/src/factory.rs:134: /// Walk up from `cwd` looking for a `.insomnia/manifest.toml` and
|
||
crates/pod/src/factory.rs:148: /// Walk up from `start` looking for a `.insomnia/manifest.toml`.
|
||
crates/pod/src/factory.rs:149: /// Explicit variant of [`with_project_manifest_auto`] for tests.
|
||
crates/pod/src/factory.rs:160: /// Shared setup for `with_project_manifest_auto` / `_from`: record
|
||
crates/pod/src/factory.rs:161: /// the manifest's project root as the base for relative-path
|
||
crates/pod/src/factory.rs:163: /// so `target = "."` in a project manifest means the project root.
|
||
crates/pod/src/factory.rs:196: /// each manifest file: `prompts/`). Missing directories are
|
||
crates/pod/src/factory.rs:213: // only when a manifest pack explicitly references it.
|
||
crates/pod/src/factory.rs:228: /// [`PodManifest`], and return it together with a [`PromptLoader`]
|
||
crates/pod/src/factory.rs:230: /// feeds `{% include "name" %}` references in the Pod's system
|
||
crates/pod/src/factory.rs:238: /// The base layer is [`PodManifestConfig::builtin_defaults`] so
|
||
crates/pod/src/factory.rs:240: /// (see [`manifest::defaults`]).
|
||
crates/pod/src/factory.rs:271: // manifest path.
|
||
crates/pod/src/factory.rs:515: // user manifest at <tmp>/cfg/manifest.toml with a relative
|
||
crates/pod/src/factory.rs:551: // `.insomnia/manifest.toml` is the marker for the project, but
|
||
crates/pod/src/factory.rs:554: // project manifest should cover the whole workspace, not the
|
||
crates/pod/src/factory.rs:597: // .insomnia/manifest.toml and .insomnia/prompts/local.md
|
||
crates/pod/src/factory.rs:666: // pod.name missing — resolver must reject.
|
||
crates/workflow/src/scope.rs:1://! Scope deny helpers for human-authored Workflow files.
|
||
crates/workflow/src/scope.rs:9:/// `<workspace>/.insomnia/workflow/` for generic CRUD tools.
|
||
crates/pod-registry/src/mutate.rs:14:/// Register a top-level Pod (started directly by a human, no
|
||
crates/pod-registry/src/mutate.rs:16:/// conflicts so a crashed Pod's allocation doesn't block the new one.
|
||
crates/pod-registry/src/mutate.rs:19:/// `segment_id`, so two `restore_from_manifest` calls under different
|
||
crates/pod-registry/src/mutate.rs:20:/// `pod_name`s cannot both grab the same session log.
|
||
crates/pod-registry/src/mutate.rs:40:/// Register a top-level Pod with explicit deny rules that reduce the
|
||
crates/pod-registry/src/mutate.rs:43:/// Conflict semantics: if every Pod overlapping a requested allow rule
|
||
crates/pod-registry/src/mutate.rs:47:/// competitor actually descends from this Pod's prior delegations.
|
||
crates/pod-registry/src/mutate.rs:108:/// Register a spawned Pod whose scope is delegated from `spawner`.
|
||
crates/pod-registry/src/mutate.rs:110:/// scope; overlap with any Pod other than `spawner` is a conflict.
|
||
crates/pod-registry/src/mutate.rs:158:/// Remove a Pod's allocation. Surviving children are reparented to
|
||
crates/pod-registry/src/mutate.rs:159:/// the removed Pod's own `delegated_from`, so the delegation tree
|
||
crates/pod-registry/src/mutate.rs:231:/// dead Pod's `delegated_from`. Idempotent and best-effort — I/O
|
||
crates/pod-registry/src/mutate.rs:232:/// errors on save are swallowed so a crashed Pod's entry never blocks
|
||
crates/pod-registry/src/mutate.rs:680: // a different pod_name. Without the SegmentConflict check both
|
||
crates/workflow/src/linter.rs:1://! Human-edit linter for Workflow files.
|
||
crates/workflow/src/linter.rs:43: /// Validate a human-authored Workflow document.
|
||
crates/manifest/src/config.rs:1://! Partial-form of [`crate::PodManifest`] used as cascade layers.
|
||
crates/manifest/src/config.rs:3://! `PodManifestConfig` mirrors `PodManifest` but every field is optional
|
||
crates/manifest/src/config.rs:4://! so individual layers (builtin defaults, user manifest, project
|
||
crates/manifest/src/config.rs:5://! manifest, programmatic overlay) can be partial. Layers are combined
|
||
crates/manifest/src/config.rs:6://! via [`PodManifestConfig::merge`] and the final config is converted to
|
||
crates/manifest/src/config.rs:7://! a validated [`PodManifest`] via `TryFrom`.
|
||
crates/manifest/src/config.rs:24:/// Partial-form Pod manifest. Every field is optional; one or more
|
||
crates/manifest/src/config.rs:25:/// instances merge via [`PodManifestConfig::merge`] before being
|
||
crates/manifest/src/config.rs:26:/// converted to a validated [`PodManifest`] via `TryFrom`.
|
||
crates/manifest/src/config.rs:32: /// [`ModelManifest`] を使う。ref / inline の両形を受け入れるための
|
||
crates/manifest/src/config.rs:49: /// Memory subsystem opt-in. See [`MemoryConfig`].
|
||
crates/manifest/src/config.rs:61: /// Optional `PromptCatalog` manifest pack override. See
|
||
crates/manifest/src/config.rs:62: /// [`crate::PodMeta::prompt_pack`] for semantics. Relative paths
|
||
crates/manifest/src/config.rs:63: /// are resolved through [`PodManifestConfig::resolve_paths`].
|
||
crates/manifest/src/config.rs:160:/// Errors raised when converting a [`PodManifestConfig`] to a validated
|
||
crates/manifest/src/config.rs:161:/// [`PodManifest`] via `TryFrom`.
|
||
crates/manifest/src/config.rs:170:/// Reject manifest fields that were intentionally removed and must not be
|
||
crates/manifest/src/config.rs:197: /// Parse a partial manifest from a TOML string. Unknown top-level or
|
||
crates/manifest/src/config.rs:211: /// [`crate::defaults`]. Used by [`PodFactory::resolve`] as the
|
||
crates/manifest/src/config.rs:215: /// `TryFrom<PodManifestConfig>` also reads the same constants as a
|
||
crates/manifest/src/config.rs:457:/// Invariant check: every path in a fully-resolved [`PodManifestConfig`]
|
||
crates/manifest/src/config.rs:459:/// [`PodManifestConfig::resolve_paths`]; if one reaches `TryFrom` it
|
||
crates/manifest/src/config.rs:481:/// 揃っているか)の検証はカタログを知る `crates/provider` 側で行う。
|
||
crates/manifest/src/config.rs:1070: // `pod.pwd` specifically is silently dropped after the
|
||
crates/manifest/src/config.rs:1200: // A project-layer manifest with only scope set must parse fine.
|
||
crates/manifest/src/config.rs:1227: // required fields must resolve to a PodManifest carrying the
|
||
crates/tools/src/tracker.rs:1://! Pod-lifetime tracker for file operations performed by the builtin
|
||
crates/tools/src/tracker.rs:2://! file-manipulation tools.
|
||
crates/tools/src/tracker.rs:12://! files that have been touched by any of the tools, so the Pod
|
||
crates/tools/src/tracker.rs:21://! A `Tracker` is **Pod-process scoped**: the Pod layer creates a fresh
|
||
crates/tools/src/tracker.rs:22://! instance at the start of each Pod run (including resume) and discards
|
||
crates/tools/src/tracker.rs:25://! write boundary is likewise Pod-process scoped (derived from the
|
||
crates/tools/src/tracker.rs:26://! manifest). The two are orthogonal and the Pod wires them together
|
||
crates/tools/src/tracker.rs:27://! when registering builtin tools.
|
||
crates/tools/src/tracker.rs:31://! # use manifest::Scope;
|
||
crates/tools/src/tracker.rs:32://! # use tools::{ScopedFs, Tracker, builtin_tools};
|
||
crates/tools/src/tracker.rs:34://! let fs = ScopedFs::new(scope, PathBuf::from("/workspace")); // pod lifetime
|
||
crates/tools/src/tracker.rs:37://! let task_store = tools::TaskStore::new();
|
||
crates/tools/src/tracker.rs:38://! let defs = builtin_tools(fs, tracker, task_store, bash_outputs);
|
||
crates/tools/src/tracker.rs:73:/// `Tracker` across every builtin tool in a session is effectively free
|
||
crates/tools/src/tracker.rs:88: /// Called by the `Read` tool after a successful read, and by the
|
||
crates/tools/src/tracker.rs:89: /// `Write` / `Edit` tools after a successful modification (so that
|
||
crates/tools/src/tracker.rs:132: /// Intended for callers like the Pod's context-compaction path, which
|
||
crates/manifest/src/scope.rs:1://! Runtime representation of a Pod's access scope.
|
||
crates/manifest/src/scope.rs:5://! resolution runs earlier, inside [`crate::PodManifestConfig::resolve_paths`].
|
||
crates/manifest/src/scope.rs:17:/// Parsed, pwd-resolved set of allow/deny rules for a Pod.
|
||
crates/manifest/src/scope.rs:55: /// [`crate::PodManifestConfig::resolve_paths`] so that cascade merge
|
||
crates/manifest/src/scope.rs:148: /// Used by the pod-registry, where every Pod's allocation
|
||
crates/manifest/src/scope.rs:206: /// (e.g. SpawnPod-style delegation that strips Write from the
|
||
crates/manifest/src/scope.rs:302:/// out to multiple consumers (Pod, ScopedFs, future grant/revoke
|
||
crates/pod/src/fs_view.rs:1://! Pod 視点のファイルシステム操作。
|
||
crates/pod/src/fs_view.rs:3://! `ScopedFs` の上に「Pod が読み取りたい / 列挙したい」操作を集約する軽い wrapper。
|
||
crates/pod/src/fs_view.rs:7://! 変換する経路。`Pod::compact` から呼ばれる。
|
||
crates/pod/src/fs_view.rs:9://! compact tool 側の `mark_read_required` でも使用。
|
||
crates/pod/src/fs_view.rs:10://! - `list_file_completions` — TUI 補完用、prefix マッチでファイル候補を列挙する経路。
|
||
crates/pod/src/fs_view.rs:24:/// TUI completion と同じ浅い一覧という意味論に揃えるため、同じ上限を使う。
|
||
crates/pod/src/fs_view.rs:38:/// Pod から見えるファイルシステム操作の入口。Clone は cheap(`ScopedFs` 内 `Arc`)。
|
||
crates/pod/src/fs_view.rs:53:/// `resolve_file_ref` の失敗理由。Pod 側で Alert に振り分けるために
|
||
crates/pod/src/controller.rs:30:// PodHandle — client-facing, Clone-able
|
||
crates/pod/src/controller.rs:55: /// Broadcast an event to all listeners (including socket clients).
|
||
crates/pod/src/controller.rs:87: // history / user_segments are no longer mirrored on PodSharedState —
|
||
crates/pod/src/controller.rs:88: // clients reconstruct them from `Event::Snapshot` + live
|
||
crates/pod/src/controller.rs:90: // only flip the status and kick post-run memory jobs here.
|
||
crates/pod/src/controller.rs:97:/// `Pod::*` entry point — `RunForNotification` carries none because
|
||
crates/pod/src/controller.rs:98:/// `pod.run_for_notification()` drains the NotifyBuffer on its own.
|
||
crates/pod/src/controller.rs:102: /// `InvokeKind` is the trigger that flipped the Pod from IDLE
|
||
crates/pod/src/controller.rs:103: /// (Notify or PodEvent) and is recorded by the Invoke marker
|
||
crates/pod/src/controller.rs:104: /// committed at the start of `pod.run_for_notification`.
|
||
crates/pod/src/controller.rs:112: /// `PodEvent::TurnEnded` / `PodEvent::Errored` reports so the parent
|
||
crates/pod/src/controller.rs:115: /// notify buffer (Notify / inbound PodEvent) and stays silent.
|
||
crates/pod/src/controller.rs:125:// PodController — actor that owns a Pod
|
||
crates/pod/src/controller.rs:141: // === 1. Initialization (channels / RuntimeDir / pod-immutable
|
||
crates/pod/src/controller.rs:142: // snapshots / SpawnedPodRegistry / alerter attach /
|
||
crates/pod/src/controller.rs:149: // Runtime directory is created before tool registration because
|
||
crates/pod/src/controller.rs:150: // the spawn-tool factories need its socket path, and before the
|
||
crates/pod/src/controller.rs:173: // Hand the alerter to the Pod so internal operations (compaction,
|
||
crates/pod/src/controller.rs:177: // Also hand the raw broadcast sender so Pod-internal operations
|
||
crates/pod/src/controller.rs:181: // Bash spills long outputs to a per-pod subdir under the runtime
|
||
crates/pod/src/controller.rs:183: // Pod's runtime scope so the agent can `Read` saved files
|
||
crates/pod/src/controller.rs:202: // item / tool result that lands in history. With the sync
|
||
crates/pod/src/controller.rs:207: // assistant / tool / system items all share one commit path.
|
||
crates/pod/src/controller.rs:215: // === 3. Tool registration (builtin / memory / spawn-orchestration) ===
|
||
crates/pod/src/controller.rs:224: // Materialise pending tool factories so the greeting reflects
|
||
crates/pod/src/controller.rs:228: // === 4. Initial runtime files + PodSharedState + PodHandle +
|
||
crates/pod/src/controller.rs:266: // Clone cancel sender and notification buffer before moving pod
|
||
crates/pod/src/controller.rs:268: // via these handles while pod itself is borrowed by drive_turn.
|
||
crates/pod/src/controller.rs:291:/// Wire the per-event broadcast bridges on the Pod's Worker. Each callback
|
||
crates/pod/src/controller.rs:292:/// re-publishes a worker-level signal as a `protocol::Event` on `event_tx`
|
||
crates/pod/src/controller.rs:293:/// so subscribers (TUI, socket clients) get a single typed stream.
|
||
crates/pod/src/controller.rs:295:/// `Pod::wire_history_persistence` is called separately to wire the
|
||
crates/pod/src/controller.rs:296:/// per-item history commit callback so every assistant / tool item
|
||
crates/pod/src/controller.rs:382: // Start fires unconditionally so the TUI can show "Thinking..."
|
||
crates/pod/src/controller.rs:383: // even when the provider doesn't emit plaintext deltas.
|
||
crates/pod/src/controller.rs:472: // through the session-log sink as a typed `LogEntry`, and clients
|
||
crates/pod/src/controller.rs:477:/// Register the builtin file-manipulation tools, optional memory tools,
|
||
crates/pod/src/controller.rs:478:/// and the Pod-orchestration tools (SpawnPod + comm) on the Pod's
|
||
crates/pod/src/controller.rs:479:/// Worker. Returns the `ScopedFs` clone used to attach a `PodFsView` to
|
||
crates/pod/src/controller.rs:492: // Pod-immutable snapshots taken before the mutable worker borrow
|
||
crates/pod/src/controller.rs:493: // below so the worker borrow doesn't conflict with reads on `pod`.
|
||
crates/pod/src/controller.rs:507: // The Pod's SharedScope (already augmented with the bash-output
|
||
crates/pod/src/controller.rs:509: // ScopedFs (builtin tools, fs_view, compact worker) reads from it,
|
||
crates/pod/src/controller.rs:510: // and any future scope mutation (SpawnPod-style revoke, future
|
||
crates/pod/src/controller.rs:515: // a clone for the FS view we attach below, since the tools consume
|
||
crates/pod/src/controller.rs:525: // Memory subsystem opt-in. When `[memory]` is present in the
|
||
crates/pod/src/controller.rs:526: // manifest, register the memory-specific Read/Write/Edit tools that
|
||
crates/pod/src/controller.rs:527: // target `<workspace>/memory/` and `<workspace>/knowledge/` with
|
||
crates/pod/src/controller.rs:529: // scope were already applied during `Pod::from_manifest`.
|
||
crates/pod/src/controller.rs:544: // Pod-orchestration tools (SpawnPod + the four comm tools) share
|
||
crates/pod/src/controller.rs:545: // the Pod-scoped `SpawnedPodRegistry` (also consumed by the main
|
||
crates/pod/src/controller.rs:546: // loop's `PodEvent` handler).
|
||
crates/pod/src/controller.rs:697: // `pod` after the run completes, so we don't push
|
||
crates/pod/src/controller.rs:698: // here. Workflow-invocation validation happens inside
|
||
crates/pod/src/controller.rs:699: // `Pod::run`; on failure the turn errors out via
|
||
crates/pod/src/controller.rs:703: // applied inside `Pod::run` itself when the worker's
|
||
crates/pod/src/controller.rs:712: // Client-side live echo is delivered as `Event::SystemItem`
|
||
crates/pod/src/controller.rs:749: // Pod is Idle (Running turns go through `drive_turn`,
|
||
crates/pod/src/controller.rs:856: // typed `SystemItem::PodEvent` lands as a
|
||
crates/pod/src/controller.rs:858: // to clients as `Event::SystemItem`.
|
||
crates/pod/src/controller.rs:872: // `SystemItem::PodEvent` via the interceptor drain.
|
||
crates/pod/src/controller.rs:874: // Auto-kick a turn if the Pod is idle so the
|
||
crates/pod/src/controller.rs:886: // Background memory jobs own extract/consolidate workers after a
|
||
crates/pod/src/controller.rs:891: // Report upward that this Pod is stopping before the controller
|
||
crates/pod/src/controller.rs:912:/// Drives a Pod future (one in-flight turn) while concurrently
|
||
crates/pod/src/controller.rs:916:/// `parent_socket` / `self_name` drive upward `PodEvent` reports
|
||
crates/pod/src/controller.rs:918:/// `None` parent skips the send (top-level Pod). Transient method
|
||
crates/pod/src/controller.rs:924:/// `Method::Notify` / inbound `PodEvent` auto-kicks complete silently
|
||
crates/pod/src/controller.rs:971: // clients as a normal Paused run-end, and
|
||
crates/pod/src/controller.rs:972: // intentionally skip `PodEvent::Errored` upward:
|
||
crates/pod/src/controller.rs:1050: // `SystemItem::PodEvent`.
|
||
crates/pod/src/controller.rs:1078: // `build_client` がここに到達する前に同じマニフェストで成功している
|
||
crates/pod/src/controller.rs:1107: // a flush the tool table is empty and this returns an empty vec.
|
||
crates/pod/src/controller.rs:1219: /// return the first `Method::PodEvent` read from it. Returns `None`
|
||
crates/pod/src/controller.rs:1220: /// on timeout / EOF / non-PodEvent.
|
||
crates/tui/src/spawn.rs:1://! Inline-viewport "spawn Pod and attach" UX.
|
||
crates/tui/src/spawn.rs:4://! with no positional argument. Walks the cwd for a `.insomnia/manifest.toml`
|
||
crates/tui/src/spawn.rs:5://! to seed defaults, prompts for the Pod's name, and on confirmation
|
||
crates/tui/src/spawn.rs:6://! launches the `pod` binary as an independent process with a freshly built
|
||
crates/tui/src/spawn.rs:7://! overlay (name + cwd scope when no project manifest exists). Once
|
||
crates/tui/src/spawn.rs:92:/// behaviour); `Some(id)` swaps the dialog into "Resume Pod" mode and
|
||
crates/tui/src/spawn.rs:93:/// passes `--session <id>` to the spawned `pod` child.
|
||
crates/tui/src/spawn.rs:146: // Phase 2: launch pod and wait for ready line. Drop the cursor
|
||
crates/tui/src/spawn.rs:173:/// Launch `pod --pod <name>` without opening the name dialog. The child Pod
|
||
crates/tui/src/spawn.rs:174:/// resolves persisted Pod metadata if present, or creates a fresh same-name Pod
|
||
crates/tui/src/spawn.rs:175:/// with the usual TUI cwd-scope fallback.
|
||
crates/tui/src/spawn.rs:212: // Run the same merge pod itself uses, then read what's missing off the
|
||
crates/tui/src/spawn.rs:213: // result. We only look at `scope.allow` here — `pod.name` is an
|
||
crates/tui/src/spawn.rs:214: // instance-level identifier and is supplied by the dialog or `--pod`.
|
||
crates/tui/src/spawn.rs:215: // TUI must pre-read the same user manifest path that the pod CLI will use,
|
||
crates/tui/src/spawn.rs:336: // Filesystem-safe; pod.name becomes a runtime-dir name.
|
||
crates/tui/src/spawn.rs:435: /// True when at least one cascade layer (user or project manifest)
|
||
crates/tui/src/spawn.rs:453: /// `Some(id)` flips the dialog into "Resume Pod" mode: the title
|
||
crates/tui/src/spawn.rs:455: /// child pod is launched with `--session <id>` so it restores
|
||
crates/tui/src/spawn.rs:458: /// When true, launch the child with `--pod <name>` so the pod process
|
||
crates/tools/src/read.rs:1://! `Read` tool — read a text file with offset/limit, return line-numbered output.
|
||
crates/tools/src/read.rs:116:/// Factory for the `Read` tool.
|
||
crates/manifest/src/cascade.rs:3://! Pod manifests are assembled from up to three on-disk layers (see
|
||
crates/manifest/src/cascade.rs:4://! `pod::PodFactory` for the full cascade story):
|
||
crates/manifest/src/cascade.rs:6://! 1. **User manifest** — Pod CLI uses
|
||
crates/manifest/src/cascade.rs:7://! [`crate::paths::user_manifest_path_with_env_override`]
|
||
crates/manifest/src/cascade.rs:8://! 2. **Project manifest** at the closest `.insomnia/manifest.toml`
|
||
crates/manifest/src/cascade.rs:16://! that's the data layer's responsibility (`PodManifestConfig::merge`
|
||
crates/manifest/src/cascade.rs:17://! and `PodManifest::try_from`). This module only handles the I/O and
|
||
crates/manifest/src/cascade.rs:24:/// Errors returned when reading a single manifest layer from disk.
|
||
crates/manifest/src/cascade.rs:41:/// Walk up from `start` looking for `.insomnia/manifest.toml`. Returns
|
||
crates/manifest/src/cascade.rs:60:/// Read a manifest file from `path` and parse it as a partial
|
||
crates/manifest/src/cascade.rs:61:/// [`PodManifestConfig`]. Path resolution against a base directory and
|
||
crates/manifest/src/model.rs:3://! Pod マニフェストの `[model]` セクションで記述する型。`ref`(プロバイダ
|
||
crates/manifest/src/model.rs:6://! 持つ 1 つの型 [`ModelManifest`] に統合している。実解決(ref をプロバイダ
|
||
crates/manifest/src/model.rs:8://! は `crates/provider` の責務で、本モジュールはデータ表現のみを提供する。
|
||
crates/manifest/src/model.rs:17:// `ModelCapability` は `llm-worker` 側に定義される runtime 構造だが、
|
||
crates/manifest/src/model.rs:21:/// Pod マニフェストの `[model]` セクション。
|
||
crates/manifest/src/model.rs:27:/// どの形が有効かの判定は `provider::resolve_model_manifest` が担う。
|
||
crates/manifest/src/model.rs:32: /// `<provider_id>/<model_id_in_ref>` 形式のカタログ参照。`/` の
|
||
crates/manifest/src/model.rs:33: /// 最初の 1 文字目で split し provider カタログを引く。
|
||
crates/manifest/src/model.rs:36: /// (provider 側で最初の `/` のみ split するため)。
|
||
crates/manifest/src/model.rs:51: /// モデル能力の明示指定。未指定時はモデルカタログ → provider
|
||
crates/manifest/src/model.rs:94:/// `crates/provider` で行う。ここはあくまで「どこから取るか」の宣言。
|
||
crates/pod-registry/src/conflict.rs:83:/// The Pod and rule that actually own a conflicting write scope.
|
||
crates/pod-registry/src/conflict.rs:90:/// Find the Pod/rule that actually owns a write scope overlapping `rule`.
|
||
crates/pod-registry/src/conflict.rs:94:/// as the true owner. `exempt` names a Pod whose ownership is
|
||
crates/pod-registry/src/conflict.rs:215: // A different top-level Pod trying to register /src/core/x
|
||
crates/manifest/src/defaults.rs:1://! Single source of truth for manifest default values.
|
||
crates/manifest/src/defaults.rs:4://! `#[serde(default = "...")]` attributes (on [`crate::PodManifest`])
|
||
crates/manifest/src/defaults.rs:9:/// Byte-size cap applied to any tool's `content` output when no
|
||
crates/manifest/src/defaults.rs:10:/// per-tool override is set. See [`crate::ToolOutputLimits`].
|
||
crates/manifest/src/defaults.rs:51:/// responses. See [`crate::WorkerManifest::language`].
|
||
crates/manifest/src/defaults.rs:72:/// Context reserve preserved for final summary/tool closing turns.
|
||
crates/manifest/src/defaults.rs:76:/// Optional maximum compact-worker tool-loop depth. `None` means unlimited.
|
||
crates/manifest/src/defaults.rs:96:/// Optional maximum extract-worker tool-loop depth. `None` means unlimited.
|
||
crates/manifest/src/defaults.rs:97:/// See [`crate::MemoryConfig::extract_worker_max_turns`].
|
||
crates/manifest/src/defaults.rs:100:/// Default language used by memory extraction / consolidation workers for
|
||
crates/manifest/src/defaults.rs:101:/// durable memory and knowledge text. See [`crate::MemoryConfig::language`].
|
||
crates/tools/src/write.rs:1://! `Write` tool — create or overwrite a file.
|
||
crates/tools/src/write.rs:44: // observed by the Read tool (via the tracker) and its current
|
||
crates/tools/src/write.rs:77:/// Factory for the `Write` tool.
|
||
crates/pod/src/spawn/comm_tools.rs:1://! Pod-to-Pod communication tools.
|
||
crates/pod/src/spawn/comm_tools.rs:3://! Four tools in one module — `SendToPod`, `ReadPodOutput`, `StopPod`,
|
||
crates/pod/src/spawn/comm_tools.rs:4://! `ListPods` — all built on the same `SpawnedPodRegistry` handed in by
|
||
crates/pod/src/spawn/comm_tools.rs:8://! These tools only touch Pods listed in the spawner's
|
||
crates/pod/src/spawn/comm_tools.rs:9://! `SpawnedPodRegistry`; there is no machine-wide directory lookup, so
|
||
crates/pod/src/spawn/comm_tools.rs:39: /// Name of a previously spawned Pod.
|
||
crates/pod/src/spawn/comm_tools.rs:44:// SendToPod
|
||
crates/pod/src/spawn/comm_tools.rs:54: /// Target Pod name.
|
||
crates/pod/src/spawn/comm_tools.rs:56: /// Text delivered to the Pod as the next user message.
|
||
crates/pod/src/spawn/comm_tools.rs:109:// ReadPodOutput
|
||
crates/pod/src/spawn/comm_tools.rs:184:// StopPod
|
||
crates/pod/src/spawn/comm_tools.rs:244:// ListPods
|
||
crates/pod/src/spawn/comm_tools.rs:280: // Trigger stale reclaim on unreachable pods so the lock file's
|
||
crates/pod/src/spawn/comm_tools.rs:324:/// The Pod socket protocol sends replayed alerts and an initial
|
||
crates/pod/src/spawn/comm_tools.rs:325:/// `Event::Snapshot` before it starts reading client methods. Send-only
|
||
crates/pod/src/spawn/comm_tools.rs:329:/// surface it to the LLM or treat it as "pod stopped".
|
||
crates/pod/src/spawn/comm_tools.rs:367:/// Failure modes distinguished by `SendToPod`.
|
||
crates/pod/src/spawn/comm_tools.rs:370: /// Target Pod responded with `Error { AlreadyRunning }` — the
|
||
crates/pod/src/spawn/comm_tools.rs:381:/// that precede the response are skipped. Times out per-read so a stuck Pod
|
||
crates/pod/src/spawn/comm_tools.rs:382:/// doesn't hang the tool.
|
||
crates/pod/src/spawn/comm_tools.rs:429:/// Connect to a Pod's socket and read the connect-time `Event::Snapshot`.
|
||
crates/pod/src/spawn/comm_tools.rs:431:/// Pods deliver the session-log mirror as the first non-Alert event on
|
||
crates/pod/src/spawn/comm_tools.rs:434:/// values; callers deserialize as `session_store::LogEntry` if they
|
||
crates/pod/src/spawn/comm_tools.rs:471: // The wire payload is the JSON form of `session_store::LogEntry`.
|
||
crates/pod/src/shared_state.rs:19:/// Shared state between PodController and runtime directory.
|
||
crates/pod/src/shared_state.rs:21:/// Controller updates this in-memory; RuntimeDir writes the status
|
||
crates/pod/src/shared_state.rs:35: /// Pod-from-the-inside view of the filesystem. Set once in
|
||
crates/pod/src/shared_state.rs:36: /// `PodController::start` after the `ScopedFs` is materialised, and
|
||
crates/pod/src/shared_state.rs:39: /// (only relevant for unit tests that build a `PodSharedState`
|
||
crates/pod/src/shared_state.rs:65: /// Attach the Pod's filesystem view. Called once during controller
|
||
crates/pod/src/shared_state.rs:71: /// Borrow the attached `PodFsView`, if any. Returns `None` for unit
|
||
crates/tools/src/grep.rs:1://! `Grep` tool — recursive regex search powered by ripgrep's component crates.
|
||
crates/tools/src/grep.rs:105:/// Factory for the `Grep` tool.
|
||
crates/pod/src/prompt/system.rs:1://! System prompt template machinery for the Pod layer.
|
||
crates/pod/src/prompt/system.rs:3://! Manifests describe the system prompt body as a reference to a
|
||
crates/pod/src/prompt/system.rs:4://! prompt asset (`worker.instruction`, see [`manifest::WorkerManifest`]).
|
||
crates/pod/src/prompt/system.rs:7://! eagerly syntax-checks it at Pod construction. The final system
|
||
crates/pod/src/prompt/system.rs:10://! the Pod's `Scope` summary and (if present) the project's `AGENTS.md`
|
||
crates/pod/src/prompt/system.rs:11://! contents plus resident memory sections, and the whole string is handed
|
||
crates/pod/src/prompt/system.rs:156: /// The body of `<workspace>/.insomnia/memory/summary.md`, with
|
||
crates/pod/src/prompt/system.rs:162: /// section entirely (memory disabled, or a consolidation worker that opts
|
||
crates/pod/src/prompt/system.rs:165: /// Resident workflow descriptions from `<workspace>/.insomnia/workflow/*`
|
||
crates/pod/src/prompt/system.rs:209:/// comes from the prompt catalog (`PodPrompt::WorkingBoundariesSection`
|
||
crates/pod/src/prompt/system.rs:210:/// / `PodPrompt::AgentsMdSection`) so that wording can be overridden
|
||
crates/pod/src/prompt/system.rs:310:/// Bridge used by [`Pod::ensure_system_prompt_materialized`] so tests
|
||
crates/pod/src/prompt/system.rs:311:/// can construct a synthetic context without going through a full Pod.
|
||
crates/pod/src/prompt/system.rs:533: // Pulled in from the builtin tool-usage asset.
|
||
crates/pod/src/compact/metrics_tracker.rs:5://! Pod drains this buffer in `persist_turn` and writes each metric via
|
||
crates/pod/src/compact/metrics_tracker.rs:29: /// Drain all queued metrics. Called by Pod after a run completes.
|
||
crates/pod/src/compact/state.rs:5://! - `PodInterceptor` (reads `request_threshold` — the *safety net* for
|
||
crates/pod/src/compact/state.rs:7://! - `Pod::try_pre_run_compact` (reads `post_run_threshold` — the
|
||
crates/pod/src/compact/state.rs:9://! - `Pod::run()` / `resume()` (circuit breaker, thrash detection)
|
||
crates/pod/src/compact/state.rs:12://! source of truth is `session_store::UsageRecord` (persisted per LLM call)
|
||
crates/pod/src/compact/state.rs:13://! projected through `Pod::total_tokens()`. Callers pass the current
|
||
crates/pod/src/spawn/registry.rs:1://! Shared registry of Pods spawned by this Pod.
|
||
crates/pod/src/spawn/registry.rs:3://! `SpawnPod` writes here; the pod-comm tools (`SendToPod`,
|
||
crates/pod/src/spawn/registry.rs:4://! `ReadPodOutput`, `StopPod`, `ListPods`) read and mutate the same
|
||
crates/pod/src/spawn/registry.rs:5://! instance. Runtime write-through still materialises `spawned_pods.json`,
|
||
crates/pod/src/spawn/registry.rs:6://! but durable state lives in the spawner's Pod metadata.
|
||
crates/pod/src/spawn/registry.rs:8://! `ReadPodOutput` additionally owns a per-spawned-pod cursor here so
|
||
crates/pod/src/spawn/registry.rs:67: /// Build a registry from the spawner's durable Pod state, pruning child
|
||
crates/pod/src/spawn/registry.rs:69: /// written through to both `spawned_pods.json` and Pod state so runtime
|
||
crates/pod/src/spawn/registry.rs:132: // Runtime spawned-pod records are a live registry for ListPods and
|
||
crates/pod/src/spawn/registry.rs:133: // cursor/scope cleanup; durable Pod state remains the discovery source
|
||
crates/pod/src/spawn/registry.rs:135: // Pod state just because their sockets are gone.
|
||
crates/pod/src/spawn/registry.rs:163: /// error if either persisted write fails; the in-memory state is still
|
||
crates/pod/src/spawn/registry.rs:171: /// Look up a record by pod name. Cloned so callers can drop the lock.
|
||
crates/pod/src/spawn/registry.rs:185: /// Remove the record for `pod_name`, persist, clear its cursor, and
|
||
crates/pod/src/hook.rs:1://! Pod-layer hook infrastructure
|
||
crates/pod/src/hook.rs:3://! Hooks are the **public** orchestration extension point. They receive
|
||
crates/pod/src/hook.rs:8://! Hooks intentionally cannot mutate the Worker's context, history, tool
|
||
crates/pod/src/hook.rs:9://! call, or tool result. Internal mechanisms that need such access (e.g.
|
||
crates/pod/src/hook.rs:11://! `llm_worker::Interceptor` directly inside Pod, never via this trait.
|
||
crates/pod/src/hook.rs:64: /// Most recently observed `input_tokens` from the LLM provider.
|
||
crates/pod/src/hook.rs:65: /// `None` when the Pod has no compaction state attached, or when
|
||
crates/pod/src/hook.rs:76: /// Provider-assigned tool call id.
|
||
crates/pod/src/hook.rs:78: /// Registered tool name.
|
||
crates/pod/src/hook.rs:83: /// is cheap relative to tool execution. Structural access is
|
||
crates/pod/src/hook.rs:91: /// Provider-assigned tool call id this result corresponds to.
|
||
crates/pod/src/hook.rs:93: /// Registered tool name.
|
||
crates/pod/src/hook.rs:95: /// Whether the tool reported an error.
|
||
crates/pod/src/hook.rs:137:/// Before each tool is executed.
|
||
crates/pod/src/hook.rs:139:/// After each tool completes.
|
||
crates/pod/src/hook.rs:141:/// When a turn ends with no tool calls.
|
||
crates/tools/src/error.rs:1://! Error type shared across the `tools` crate.
|
||
crates/tools/src/error.rs:4://! builtin tool's internal logic. Tool `execute()` impls convert it to
|
||
crates/tools/src/error.rs:5://! [`llm_worker::tool::ToolError`] via the `From` impl defined here.
|
||
crates/pod/src/prompt/agents_md.rs:3://! Reads `AGENTS.md` directly under the Pod cwd and exposes its body
|
||
crates/pod/src/prompt/agents_md.rs:6://! subproject context is expressed by launching a Pod with that
|
||
crates/pod/src/prompt/agents_md.rs:23:/// Pod forwards to the user-facing notification channel. The caller
|
||
crates/pod/src/prompt/loader.rs:8://! | `$user` | `<config_dir>/prompts/` (resolved by `manifest::paths`) |
|
||
crates/pod/src/prompt/loader.rs:142: /// [`crate::PodFactory`] to surface `<user_manifest_dir>/prompts.toml`
|
||
crates/manifest/src/lib.rs:28:/// Declarative configuration for a Pod.
|
||
crates/manifest/src/lib.rs:30:/// Parsed from a TOML manifest file. Describes the model, system prompt,
|
||
crates/manifest/src/lib.rs:31:/// and directory scope (required). The Pod's working directory is **not**
|
||
crates/manifest/src/lib.rs:32:/// part of the manifest — it is the process's `std::env::current_dir()`
|
||
crates/manifest/src/lib.rs:43: /// Optional manifest-level tool permission policy. Absent means the
|
||
crates/manifest/src/lib.rs:44: /// permission layer is disabled and tool calls run as before.
|
||
crates/manifest/src/lib.rs:49: /// Memory subsystem opt-in. Presence of `[memory]` in TOML enables
|
||
crates/manifest/src/lib.rs:50: /// the memory tools (MemoryRead / MemoryWrite / MemoryEdit) and
|
||
crates/manifest/src/lib.rs:51: /// causes Pod to deny generic write access to `<workspace>/memory/`
|
||
crates/manifest/src/lib.rs:53: /// memory tools registered.
|
||
crates/manifest/src/lib.rs:57: /// Workflows. Each entry is a path to a skills *root* (i.e. a
|
||
crates/manifest/src/lib.rs:59: /// bundles). Paths are resolved against the manifest's base
|
||
crates/manifest/src/lib.rs:69:/// across manifest layers, so a user-level manifest can declare a
|
||
crates/manifest/src/lib.rs:70:/// shared skill root once while a project manifest adds its own
|
||
crates/manifest/src/lib.rs:76: /// Resolved against the manifest base directory before
|
||
crates/manifest/src/lib.rs:77: /// [`PodManifest`] is materialised.
|
||
crates/manifest/src/lib.rs:82:/// Memory subsystem configuration. Presence in the manifest enables
|
||
crates/manifest/src/lib.rs:83:/// memory; the workspace root defaults to the Pod's pwd unless an
|
||
crates/manifest/src/lib.rs:91: /// Override for the workspace root. When `None`, the Pod's pwd
|
||
crates/manifest/src/lib.rs:96: /// Maximum number of records returned by `MemoryQuery` /
|
||
crates/manifest/src/lib.rs:97: /// `KnowledgeQuery` per call. `None` ⇒ tool default (20).
|
||
crates/manifest/src/lib.rs:101: /// Ignored when the request omits `query`. `None` ⇒ tool default (3).
|
||
crates/manifest/src/lib.rs:104: /// Whether the body of `memory/summary.md` is exposed in the resident
|
||
crates/manifest/src/lib.rs:108: /// Language used by memory extraction / consolidation workers for durable
|
||
crates/manifest/src/lib.rs:109: /// memory and knowledge text. Free-form so workspaces can use names like
|
||
crates/manifest/src/lib.rs:115: /// the main pod model is cloned via `clone_boxed()`. Lightweight
|
||
crates/manifest/src/lib.rs:122: /// entirely; memory tools and resident injection still work, only
|
||
crates/manifest/src/lib.rs:126: /// Optional maximum extract-worker tool-loop depth. `None` leaves
|
||
crates/manifest/src/lib.rs:133: /// `None`, the main pod model is cloned via `clone_boxed()`.
|
||
crates/manifest/src/lib.rs:151:/// Pod metadata.
|
||
crates/manifest/src/lib.rs:156: /// `pod::PromptCatalog`. Subject to the same relative-path
|
||
crates/manifest/src/lib.rs:157: /// resolution as other manifest paths (joined against the
|
||
crates/manifest/src/lib.rs:158: /// manifest's base directory). `None` leaves the 4th overlay layer
|
||
crates/manifest/src/lib.rs:170:/// Worker-level configuration embedded in the manifest.
|
||
crates/manifest/src/lib.rs:177: /// unset manifests fall through to [`defaults::DEFAULT_INSTRUCTION`].
|
||
crates/manifest/src/lib.rs:182: /// locale tags, or a policy phrase. Unset manifests fall through to
|
||
crates/manifest/src/lib.rs:200: /// Byte-size caps applied to tool `content` before it reaches the
|
||
crates/manifest/src/lib.rs:203: /// per-tool overrides) is applied so truncation is on by default.
|
||
crates/manifest/src/lib.rs:209: /// This is intentionally separate from tool-output truncation because
|
||
crates/manifest/src/lib.rs:215:/// Byte-size caps applied to tool execution `content` before it enters
|
||
crates/manifest/src/lib.rs:216:/// conversation history. Guards against a single oversized tool result
|
||
crates/manifest/src/lib.rs:217:/// blowing past the provider's per-minute input-token rate limit.
|
||
crates/manifest/src/lib.rs:224: /// Cap applied to any tool not listed in `per_tool`.
|
||
crates/manifest/src/lib.rs:227: /// Per-tool overrides, keyed by tool registration name (e.g. "Glob").
|
||
crates/manifest/src/lib.rs:237:/// reference. It does not affect tool result truncation; see
|
||
crates/manifest/src/lib.rs:280: /// Resolve the cap for a given tool name.
|
||
crates/manifest/src/lib.rs:291:/// A Pod may only touch paths whose effective permission (computed from
|
||
crates/manifest/src/lib.rs:308: /// Persist every provider stream event directly to `trace.jsonl` next to the
|
||
crates/manifest/src/lib.rs:315:/// Manifest-level pattern-based tool permission policy.
|
||
crates/manifest/src/lib.rs:330: /// manifests may use either `Bash` or `bash`.
|
||
crates/manifest/src/lib.rs:332: /// Glob-like pattern matched against the tool's permission target
|
||
crates/manifest/src/lib.rs:333: /// (for built-in tools, commonly `command`, `file_path`, or `pattern`).
|
||
crates/manifest/src/lib.rs:349:/// Controls Prune (content removal from old tool results) and Compact
|
||
crates/manifest/src/lib.rs:371: /// Checked by `PodInterceptor::pre_llm_request` inside a turn. When
|
||
crates/manifest/src/lib.rs:415: /// Context reserve preserved for final summary/tool closing turns.
|
||
crates/manifest/src/lib.rs:419: /// Optional maximum compact-worker tool-loop depth. `None` leaves the
|
||
crates/manifest/src/lib.rs:521: /// Parse a manifest from a TOML string.
|
||
crates/tools/src/glob.rs:1://! `Glob` tool — recursive file search by glob pattern, sorted by mtime.
|
||
crates/tools/src/glob.rs:153: // Glob is an explicit-pattern tool, so gitignore/hidden are *not* honored.
|
||
crates/tools/src/glob.rs:195:/// Factory for the `Glob` tool.
|
||
crates/pod/src/spawn/tool.rs:1://! `SpawnPod` tool — launch a new Pod process as a child of this one.
|
||
crates/pod/src/spawn/tool.rs:3://! Wires pod-registry delegation, overlay-TOML construction, subprocess
|
||
crates/pod/src/spawn/tool.rs:5://! the LLM calls `SpawnPod`, a fresh `pod` binary is exec'd in its own
|
||
crates/pod/src/spawn/tool.rs:6://! process group, the pod-registry is updated atomically, and the child's
|
||
crates/pod/src/spawn/tool.rs:41:/// How long we will wait for the spawned Pod's socket to become
|
||
crates/pod/src/spawn/tool.rs:47: /// Identifier for the spawned Pod. Must be unique machine-wide.
|
||
crates/pod/src/spawn/tool.rs:52: /// First message sent to the spawned Pod via `Method::Run`.
|
||
crates/pod/src/spawn/tool.rs:54: /// Allow rules delegated to the spawned Pod. Must be a subset of the
|
||
crates/pod/src/spawn/tool.rs:91:/// Runtime dependencies the `SpawnPod` tool needs in order to launch a
|
||
crates/pod/src/spawn/tool.rs:92:/// child Pod and record the handoff locally. Constructed by the Pod
|
||
crates/pod/src/spawn/tool.rs:93:/// controller once per Pod lifetime.
|
||
crates/pod/src/spawn/tool.rs:95: /// Spawner's own pod name — becomes the spawned Pod's
|
||
crates/pod/src/spawn/tool.rs:96: /// `delegated_from` in the pod-registry.
|
||
crates/pod/src/spawn/tool.rs:99: /// `--callback` so its `PodEvent` callbacks have somewhere to land.
|
||
crates/pod/src/spawn/tool.rs:102: /// the spawned Pod's socket path before the child has bound it.
|
||
crates/pod/src/spawn/tool.rs:104: /// Directory the spawned Pod should run in when the LLM did not
|
||
crates/pod/src/spawn/tool.rs:108: /// pod-comm tools (`SendToPod` / `ReadPodOutput` / `StopPod` /
|
||
crates/pod/src/spawn/tool.rs:109: /// `ListPods`). Writes the list to runtime and durable Pod state on
|
||
crates/pod/src/spawn/tool.rs:112: /// THIS Pod's own parent-callback socket, if any. After a
|
||
crates/pod/src/spawn/tool.rs:113: /// successful spawn we fire `PodEvent::ScopeSubDelegated` upward
|
||
crates/pod/src/spawn/tool.rs:115: /// `None` for top-level Pods — in that case the re-emission is a
|
||
crates/pod/src/spawn/tool.rs:118: /// Spawner's resolved provider config — copied into every spawned
|
||
crates/pod/src/spawn/tool.rs:119: /// Pod's overlay TOML so the child does not need its own provider
|
||
crates/pod/src/spawn/tool.rs:120: /// configuration in the manifest cascade. Per-spawn override is
|
||
crates/pod/src/spawn/tool.rs:121: /// out of scope here (see `tickets/spawn-inherit-provider.md`).
|
||
crates/pod/src/spawn/tool.rs:125: /// from the spawner's in-memory view (a `deny(Write, target)` is
|
||
crates/pod/src/spawn/tool.rs:127: /// those paths to `Read`). Mirrors the pod-registry's
|
||
crates/pod/src/spawn/tool.rs:129: /// tracked across Pods, so revocation only touches Write.
|
||
crates/pod/src/spawn/tool.rs:168: // `delegate_scope` catches this too (as `DuplicatePodName`), but
|
||
crates/pod/src/spawn/tool.rs:237: // Mirror that ownership transfer in the spawner's in-memory
|
||
crates/pod/src/spawn/tool.rs:239: // is shadowed by a `deny(Write, target)` so subsequent tool
|
||
crates/pod/src/spawn/tool.rs:271: // Notify this Pod's own parent so the grandparent can register
|
||
crates/pod/src/spawn/tool.rs:272: // the new grandchild directly. Fire-and-forget; top-level Pods
|
||
crates/pod/src/spawn/tool.rs:346: // orphans. Lifecycle tracking lives in `spawned_pods.json`.
|
||
crates/pod/src/spawn/tool.rs:384:/// Serialise the overlay TOML that gets handed to the child `pod`
|
||
crates/pod/src/spawn/tool.rs:385:/// binary via `--overlay`. `PodManifestConfig`'s `Serialize` impl is
|
||
crates/pod/src/spawn/tool.rs:386:/// the single source of truth for the on-disk manifest format.
|
||
crates/pod/src/spawn/tool.rs:389:/// `Command::current_dir` (see [`SpawnPodTool::exec_child`]) — it is
|
||
crates/pod/src/spawn/tool.rs:390:/// not part of the manifest.
|
||
crates/pod/src/spawn/tool.rs:418:/// tool-result budget — debugging beyond this should read the file
|
||
crates/pod/src/spawn/tool.rs:484:/// Factory for the `SpawnPod` tool.
|
||
crates/pod/src/compact/worker.rs:1://! Compact worker state and the four tools that drive it.
|
||
crates/pod/src/compact/worker.rs:4://! [`Pod::compact`]. It receives the history to summarise plus a list of
|
||
crates/pod/src/compact/worker.rs:6://! a tool-driven LLM loop. The tools here let it:
|
||
crates/pod/src/compact/worker.rs:8://! - `read_file` — inspect referenced files (reuses `tools::read_tool`)
|
||
crates/pod/src/compact/worker.rs:17://! which `Pod::compact` drains after the loop and turns into the
|
||
crates/pod/src/compact/worker.rs:107: /// `compact` omits tool arguments/full results; `full` includes message text and tool result content.
|
||
crates/pod/src/compact/worker.rs:377: // errors surface the same way the regular `read_file` tool does.
|
||
crates/pod/src/compact/worker.rs:548:/// additional exploratory tool calls once the final reserve is reached.
|
||
crates/tools/src/lib.rs:1://! Built-in tools for the Insomnia LLM agent.
|
||
crates/tools/src/lib.rs:4://! `llm-worker` `Tool` infrastructure. Filesystem access is mediated by
|
||
crates/tools/src/lib.rs:7://! - [`ScopedFs`] — Pod-process lifetime, expresses the write-block
|
||
crates/tools/src/lib.rs:8://! boundary for the current scope. Derived from the manifest; not
|
||
crates/tools/src/lib.rs:9://! persisted across Pod restart.
|
||
crates/tools/src/lib.rs:10://! - [`Tracker`] — Pod-process lifetime, enforces the "read before edit"
|
||
crates/tools/src/lib.rs:12://! Recreated fresh on each Pod start (including resume).
|
||
crates/tools/src/lib.rs:14://! The Pod layer owns both instances and passes them to
|
||
crates/tools/src/lib.rs:15://! [`builtin_tools`] when registering tools on a `Worker`.
|
||
crates/tools/src/lib.rs:44:/// Register all builtin tools, wiring them to a shared `ScopedFs`
|
||
crates/tools/src/lib.rs:45:/// (Pod-process lifetime) and `Tracker` (Pod-process lifetime).
|
||
crates/tools/src/lib.rs:48:/// `Read` / `Write` / `Edit` see a consistent history across tool
|
||
crates/tools/src/lib.rs:49:/// invocations within a single Pod run.
|
||
crates/tools/src/lib.rs:51:/// `bash_output_dir` is where the Bash tool spills long outputs. The
|
||
crates/tools/src/lib.rs:53:/// (see [`manifest::Scope::with_extra_read`]) so the agent can `Read`
|
||
crates/pod/src/compact/token_counter.rs:4://! [`llm_worker::token_counter`] にあり、`UsageRecord` の列と現在の history から
|
||
crates/pod/src/compact/token_counter.rs:6://! (`split_for_retained`, `savings_for_prune`)と、Pod 上の公開 API に
|
||
crates/pod/src/compact/token_counter.rs:109:/// だけで切った `cut` は並列 tool 呼び出しの途中に落ちうるので、retained
|
||
crates/pod/src/compact/token_counter.rs:191:/// `indices` は [`llm_worker::prune::prunable_indices`] が返す候補列を
|
||
crates/pod/src/compact/token_counter.rs:243:// ── Pod に生やす公開 API ───────────────────────────────────────────────
|
||
crates/pod/src/compact/token_counter.rs:257: /// memory extract trigger が
|
||
crates/tools/src/edit.rs:1://! `Edit` tool — partial string replacement with uniqueness check.
|
||
crates/tools/src/edit.rs:136:/// Factory for the `Edit` tool.
|
||
crates/pod/src/runtime/dir.rs:10:/// One spawned-child record mirrored to `spawned_pods.json`.
|
||
crates/pod/src/runtime/dir.rs:12:/// Written by the spawner after registry changes so runtime-local tools
|
||
crates/pod/src/runtime/dir.rs:13:/// have a materialised snapshot. Durable restore uses Pod state metadata;
|
||
crates/pod/src/runtime/dir.rs:17: /// Spawned Pod's identity.
|
||
crates/pod/src/runtime/dir.rs:19: /// Spawned Pod's Unix socket path.
|
||
crates/pod/src/runtime/dir.rs:21: /// Scope allow rules delegated to the spawned Pod.
|
||
crates/pod/src/runtime/dir.rs:23: /// Socket path the spawned Pod was told to use for callbacks
|
||
crates/pod/src/runtime/dir.rs:24: /// (= this Pod's own socket when spawn happened).
|
||
crates/pod/src/runtime/dir.rs:28:/// Manages the Pod's runtime directory on tmpfs.
|
||
crates/pod/src/runtime/dir.rs:31:/// <runtime_dir>/{pod_name}/
|
||
crates/pod/src/runtime/dir.rs:34:/// ├── manifest.toml
|
||
crates/pod/src/runtime/dir.rs:39:/// `<runtime_dir>` is resolved via [`manifest::paths::runtime_dir`].
|
||
crates/pod/src/runtime/dir.rs:59: /// [`manifest::paths::runtime_dir`].
|
||
crates/pod/src/runtime/dir.rs:71: /// Write manifest.toml (typically once at startup).
|
||
crates/pod/src/runtime/dir.rs:76: /// Write `spawned_pods.json` atomically. The entries are the full
|
||
crates/pod/src/runtime/dir.rs:77: /// set of spawned children known to this Pod — callers pass the
|
||
crates/pod/src/runtime/dir.rs:84: /// Path to this Pod's runtime directory.
|
||
crates/pod/src/runtime/dir.rs:90: /// that only know the pod name (e.g. the TUI's attach flow)
|
||
crates/pod/src/runtime/dir.rs:91: /// predict the same path via [`manifest::paths::pod_socket_path`].
|
||
crates/pod/src/runtime/dir.rs:113:/// Thin wrapper over [`manifest::paths::runtime_dir`] that converts a
|
||
crates/tools/src/scoped_fs.rs:3://! `ScopedFs` is the write/read gate layered on top of a [`manifest::Scope`]
|
||
crates/tools/src/scoped_fs.rs:4://! and a Pod's working directory. The scope decides which paths are
|
||
crates/tools/src/scoped_fs.rs:30:/// handle (typically the owning Pod). Mutations to that `SharedScope`
|
||
crates/tools/src/scoped_fs.rs:66: /// holder of the `SharedScope` (typically the Pod).
|
||
crates/tools/src/scoped_fs.rs:88: /// caller (usually the Pod) hold the same view and push updates
|
||
crates/tools/src/scoped_fs.rs:94: /// The Pod's working directory. Glob/Grep default their search base
|
||
crates/pod/src/prompt/catalog.rs:1://! Central catalog of Pod-level prompt strings.
|
||
crates/pod/src/prompt/catalog.rs:3://! Prompts that Pod injects into a Worker (compaction system prompt,
|
||
crates/pod/src/prompt/catalog.rs:6://! [`PodPrompt`] and rendered through a single [`PromptCatalog`]. Direct
|
||
crates/pod/src/prompt/catalog.rs:8://! `crates/pod` is deliberately avoided — new injection points add a
|
||
crates/pod/src/prompt/catalog.rs:11://! the "Pod tone" editable in one place.
|
||
crates/pod/src/prompt/catalog.rs:18://! binary. Must cover every [`PodPrompt`] variant (build-time check).
|
||
crates/pod/src/prompt/catalog.rs:19://! 2. **user** — `<user_manifest_dir>/prompts.toml`, auto-discovered by
|
||
crates/pod/src/prompt/catalog.rs:20://! [`PodFactory`]. Optional.
|
||
crates/pod/src/prompt/catalog.rs:23://! 4. **manifest pack** — `manifest.pod.prompt_pack`, an explicit path
|
||
crates/pod/src/prompt/catalog.rs:24://! per-Pod. Optional.
|
||
crates/pod/src/prompt/catalog.rs:56:/// Pod-level prompt injection point.
|
||
crates/pod/src/prompt/catalog.rs:64: /// System prompt of the memory extract Worker.
|
||
crates/pod/src/prompt/catalog.rs:66: /// System prompt of the memory consolidation (integration + tidy) Worker.
|
||
crates/pod/src/prompt/catalog.rs:72: /// tool calls when a paused turn is interrupted by the user.
|
||
crates/pod/src/prompt/catalog.rs:82: /// Trailing `## Resident memory summary` section, appended after the
|
||
crates/pod/src/prompt/catalog.rs:83: /// AGENTS.md section when memory is enabled, summary injection is enabled,
|
||
crates/pod/src/prompt/catalog.rs:84: /// and `memory/summary.md` has a valid non-empty body.
|
||
crates/pod/src/prompt/catalog.rs:87: /// resident memory summary when memory is enabled, Knowledge resident
|
||
crates/pod/src/prompt/catalog.rs:91: /// Trailing `## Resident workflows` section, appended after resident
|
||
crates/pod/src/prompt/catalog.rs:92: /// knowledge when Workflow resident injection is enabled and at least one
|
||
crates/pod/src/prompt/catalog.rs:93: /// workflow advertises `model_invokation: true`.
|
||
crates/pod/src/prompt/catalog.rs:244:/// Merged, compiled pod-prompt catalog.
|
||
crates/pod/src/prompt/catalog.rs:247:/// [`PodPrompt`] key (after the 4-layer merge). Includes inside templates
|
||
crates/pod/src/prompt/catalog.rs:272: /// - Layer 4 (manifest): `manifest_pack` as an absolute filesystem
|
||
crates/pod/src/prompt/catalog.rs:273: /// path (pre-resolved by the manifest cascade).
|
||
crates/pod/src/prompt/catalog.rs:317: /// Render `PodPrompt::CompactSystem` (no inputs).
|
||
crates/pod/src/prompt/catalog.rs:322: /// Render `PodPrompt::MemoryExtractSystem` with `{{ language }}`.
|
||
crates/pod/src/prompt/catalog.rs:327: /// Render `PodPrompt::MemoryConsolidationSystem` with `{{ language }}`.
|
||
crates/pod/src/prompt/catalog.rs:335: /// Render `PodPrompt::NotifyWrapper` with `{{ message }}`.
|
||
crates/pod/src/prompt/catalog.rs:340: /// Render `PodPrompt::InterruptToolResultSummary` (no inputs).
|
||
crates/pod/src/prompt/catalog.rs:345: /// Render `PodPrompt::InterruptSystemNote` (no inputs).
|
||
crates/pod/src/prompt/catalog.rs:350: /// Render `PodPrompt::WorkingBoundariesSection` with `{{ scope_summary }}`.
|
||
crates/pod/src/prompt/catalog.rs:358: /// Render `PodPrompt::AgentsMdSection` with `{{ agents_md }}`.
|
||
crates/pod/src/prompt/catalog.rs:363: /// Render `PodPrompt::ResidentMemorySummarySection` with `{{ summary }}`.
|
||
crates/pod/src/prompt/catalog.rs:371: /// Render `PodPrompt::ResidentKnowledgeSection` with `{{ entries }}`
|
||
crates/pod/src/prompt/catalog.rs:380: /// Render `PodPrompt::ResidentWorkflowsSection` with `{{ entries }}`
|
||
crates/pod/src/workflow/mod.rs:1://! Pod-side Workflow resolver.
|
||
crates/pod/src/workflow/mod.rs:3://! Turns `Segment::WorkflowInvoke { slug }` into system-message attachments:
|
||
crates/pod/src/workflow/mod.rs:4://! dependency Knowledge bodies first, then the Workflow body. Resolution is
|
||
crates/pod/src/workflow/mod.rs:5://! strict for explicit user invocations: missing workflows, non-user-invocable
|
||
crates/pod/src/workflow/mod.rs:6://! workflows, and missing Knowledge requirements are returned as errors before
|
||
crates/pod/src/compact/usage_tracker.rs:1://! Tracks per-LLM-request Usage measurements within a Pod run.
|
||
crates/pod/src/compact/usage_tracker.rs:10://! Pairing the two yields one `UsageRecord` per LLM call. Pod drains them
|
||
crates/pod/src/compact/usage_tracker.rs:13://! Multiple LLM calls per Pod run (tool loop) are supported: each call
|
||
crates/pod/src/compact/usage_tracker.rs:32:/// Shared between the pre-request hook, the `on_usage` callback, and Pod.
|
||
crates/pod/src/compact/usage_tracker.rs:42: /// Records accumulated during the current run; drained by Pod.
|
||
crates/pod/src/compact/usage_tracker.rs:104: /// projection as Pod persistence while the run is still active.
|
||
crates/pod/src/compact/usage_tracker.rs:114: /// Drain accumulated records. Called by Pod after a run completes,
|
||
crates/pod/src/compact/prune.rs:1://! Prune integration — wires the Worker's prune projection to the Pod's
|
||
crates/pod/src/compact/prune.rs:7://! を組み立てて Worker に差し込むための `impl Pod` を提供する。
|
||
crates/pod/src/compact/prune.rs:31: /// The estimators combine persisted [`Pod::usage_history_handle`] records
|
||
crates/pod/src/compact/prune.rs:32: /// with in-flight `UsageTracker` records so multi-request tool loops can
|
||
crates/pod/src/compact/prune.rs:33: /// prune before the surrounding Pod run finishes.
|
||
crates/pod/src/compact/prune.rs:110: /// If the manifest has a `[compaction]` section, build a `PruneConfig`
|
||
crates/pod/src/compact/prune.rs:112: /// Otherwise no-op. Called from all Pod constructors so prune is
|
||
crates/pod/src/compact/prune.rs:113: /// active whenever the manifest asks for it.
|
||
crates/pod/src/pod.rs:47:/// `(SessionId, SegmentId)` pair the Pod is currently writing to.
|
||
crates/pod/src/pod.rs:72:/// so that the Pod and every `LogWriterHandle` clone see a consistent
|
||
crates/pod/src/pod.rs:159: /// Append `entry` to the log: disk write → counter bump → in-memory
|
||
crates/pod/src/pod.rs:221:/// `session-store` functions after each turn.
|
||
crates/pod/src/pod.rs:227: /// Optional write-through hook for name-keyed Pod metadata. Production
|
||
crates/pod/src/pod.rs:229: /// logs; low-level `Pod::new` tests leave it absent.
|
||
crates/pod/src/pod.rs:231: /// Shared session pointer. Source of truth for the Pod's current
|
||
crates/pod/src/pod.rs:235: /// Absolute working directory of the Pod.
|
||
crates/pod/src/pod.rs:237: /// Shared, atomically-swappable view of the Pod's resolved scope.
|
||
crates/pod/src/pod.rs:238: /// Cloned out to `ScopedFs` instances (builtin tools, fs_view,
|
||
crates/pod/src/pod.rs:257: /// Read by token-accounting APIs (`Pod::total_tokens`, etc.).
|
||
crates/pod/src/pod.rs:261: /// can share the same view via [`Pod::usage_history_handle`].
|
||
crates/pod/src/pod.rs:263: /// Pod-lifetime file-operation tracker from the builtin `tools`
|
||
crates/pod/src/pod.rs:265: /// tools so that Pod-owned operations (e.g. compaction) can consult
|
||
crates/pod/src/pod.rs:268: /// Pod-lifetime task store from the builtin `tools` crate. Shared by
|
||
crates/pod/src/pod.rs:271: /// replaced. Restored Pods reconstruct it by replaying Task* tool calls.
|
||
crates/pod/src/pod.rs:278: /// spawn time. `None` in tests / direct `Pod::new` usage.
|
||
crates/pod/src/pod.rs:282: /// notifications, events sent here are NOT replayed to clients that
|
||
crates/pod/src/pod.rs:286: /// assistant-side execution artifact becomes visible to clients before
|
||
crates/pod/src/pod.rs:288: /// `Pod::run` uses it to avoid rolling back a turn after the UI has
|
||
crates/pod/src/pod.rs:293: /// PodInterceptor installed in `ensure_interceptor_installed`.
|
||
crates/pod/src/pod.rs:296: /// (currently `@<path>` file content). `Pod::run` fills this
|
||
crates/pod/src/pod.rs:297: /// before handing off to the worker; `PodInterceptor::on_prompt_submit`
|
||
crates/pod/src/pod.rs:302: /// Pods built via `from_manifest` / `from_manifest_spawned` /
|
||
crates/pod/src/pod.rs:303: /// `restore_from_manifest` (production paths); `None` for the
|
||
crates/pod/src/pod.rs:304: /// low-level `Pod::new` constructor used in tests, which bypasses
|
||
crates/pod/src/pod.rs:306: /// the allocation when the Pod is dropped.
|
||
crates/pod/src/pod.rs:309: /// Socket path of the spawning Pod. `Some` only for Pods built via
|
||
crates/pod/src/pod.rs:310: /// `from_manifest_spawned`. Consumed by the controller to fire
|
||
crates/pod/src/pod.rs:311: /// `Method::PodEvent` reports upward (turn end, error, shutdown,
|
||
crates/pod/src/pod.rs:314: /// Central catalog of Pod-level prompt strings (compaction system
|
||
crates/pod/src/pod.rs:317: /// [`Self::from_manifest`], or defaults to the builtin pack when a
|
||
crates/pod/src/pod.rs:318: /// Pod is constructed through lower-level paths that have no loader.
|
||
crates/pod/src/pod.rs:320: /// Registry loaded from `<workspace>/.insomnia/workflow/*.md` when
|
||
crates/pod/src/pod.rs:321: /// memory is enabled. Missing memory config keeps this empty.
|
||
crates/pod/src/pod.rs:323: /// Memory workspace layout used by the workflow resolver to load required
|
||
crates/pod/src/pod.rs:327: /// workspace memory summary (`memory/summary.md`). Internal disposable
|
||
crates/pod/src/pod.rs:328: /// workers disable this so resident memory exposure is opt-in per Pod.
|
||
crates/pod/src/pod.rs:332: /// summary and workflow residency: each section has its own gate.
|
||
crates/pod/src/pod.rs:335: /// Workflow descriptions. This is intentionally independent from
|
||
crates/pod/src/pod.rs:342: /// extract (memory.extract) reentry guard. `true` while an extract
|
||
crates/pod/src/pod.rs:344: /// (`docs/plan/memory.md` §Extract 並走防止). `Arc<AtomicBool>` so
|
||
crates/pod/src/pod.rs:348: /// consolidation (memory.consolidation) in-process reentry guard. The
|
||
crates/pod/src/pod.rs:351: /// inside the same Pod from racing on the staging snapshot.
|
||
crates/pod/src/pod.rs:358: /// extract/consolidation memory job running outside the controller method loop.
|
||
crates/pod/src/pod.rs:367: /// are not preserved). Populated from log on `restore_from_manifest`,
|
||
crates/pod/src/pod.rs:369: /// this fed `PodSharedState.user_segments`; the new wire format
|
||
crates/pod/src/pod.rs:371: /// this remains purely an in-memory tracker for compact alignment.
|
||
crates/pod/src/pod.rs:373: /// Pod-side session-log mirror + broadcast sink. Populated alongside
|
||
crates/pod/src/pod.rs:374: /// every successful `session_store::append_entry` write so connected
|
||
crates/pod/src/pod.rs:375: /// clients see a `(snapshot, live)` stream consistent with what's
|
||
crates/pod/src/pod.rs:381: /// directly through the writer. Tests that drive `Pod::new` without
|
||
crates/pod/src/pod.rs:407: // The cloned Pod's worker exists only as a snapshot for the memory
|
||
crates/pod/src/pod.rs:410: // methods using `worker.client()` as fallback when no override
|
||
crates/pod/src/pod.rs:452: // The memory-task clone never appends to the session log
|
||
crates/pod/src/pod.rs:484: /// Pod after the worker is built; tests that drive `Pod::new` may
|
||
crates/pod/src/pod.rs:491: /// entries by their producers (for example `PodInterceptor` and
|
||
crates/pod/src/pod.rs:572: /// Create a new Pod from a pre-built Worker and store.
|
||
crates/pod/src/pod.rs:576: /// manifest, or [`Scope::writable`] in tests.
|
||
crates/pod/src/pod.rs:578: /// Note: this constructor does **not** parse `manifest.worker.system_prompt`
|
||
crates/pod/src/pod.rs:579: /// as a template. `Pod::from_manifest` is the production path for
|
||
crates/pod/src/pod.rs:580: /// templated prompts; callers of `Pod::new` that want a template
|
||
crates/pod/src/pod.rs:642: /// path used by `Pod::from_manifest` and is exposed for tests and
|
||
crates/pod/src/pod.rs:643: /// other callers that build a Pod without going through a manifest.
|
||
crates/pod/src/pod.rs:650: /// Default `true`: normal Pods may expose each resident section according
|
||
crates/pod/src/pod.rs:651: /// to its own gate and manifest settings. Internal disposable workers set
|
||
crates/pod/src/pod.rs:652: /// this to `false` so summary, Knowledge, and Workflow residency are all
|
||
crates/pod/src/pod.rs:653: /// suppressed while explicit tools remain available.
|
||
crates/pod/src/pod.rs:660: /// Toggle `memory/summary.md` resident injection in the system prompt.
|
||
crates/pod/src/pod.rs:670: /// Toggle resident Workflow injection in the system prompt.
|
||
crates/pod/src/pod.rs:686: /// The Session this Pod belongs to. Stable across compaction and
|
||
crates/pod/src/pod.rs:688: /// Pod-level operation today that moves a running Pod to a different
|
||
crates/pod/src/pod.rs:694: /// The Pod's manifest.
|
||
crates/pod/src/pod.rs:699: /// The Pod's working directory.
|
||
crates/pod/src/pod.rs:704: /// The Pod's directory scope, as a shared atomically-swappable
|
||
crates/pod/src/pod.rs:706: /// (e.g. a tool that needs to mutate scope dynamically).
|
||
crates/pod/src/pod.rs:717: /// Apply `extra_allow` to the Pod's runtime scope. Future tool
|
||
crates/pod/src/pod.rs:719: /// scope; in-flight tool calls keep the snapshot they captured at
|
||
crates/pod/src/pod.rs:730: /// Strip `revoke` rules from the Pod's runtime scope by adding
|
||
crates/pod/src/pod.rs:732: /// access at `Read` (mirroring the pod-registry `effective_write`
|
||
crates/pod/src/pod.rs:733: /// semantics — Write is the only permission tracked across Pods).
|
||
crates/pod/src/pod.rs:782: /// clients without consulting any other state.
|
||
crates/pod/src/pod.rs:787: /// Cloneable callback handed to dynamic-scope tools. It cannot append
|
||
crates/pod/src/pod.rs:788: /// directly to the async store from a sync tool callback, so it records
|
||
crates/pod/src/pod.rs:789: /// the latest snapshot and the controller flushes it after the tool
|
||
crates/pod/src/pod.rs:822: /// Use this to register tools, hooks, or subscribers before calling
|
||
crates/pod/src/pod.rs:856: /// Enable name-keyed Pod metadata write-through for Pods built through
|
||
crates/pod/src/pod.rs:857: /// the low-level constructor. High-level manifest constructors enable it
|
||
crates/pod/src/pod.rs:859: /// same persistence behavior without changing `Pod::new`'s minimal bounds.
|
||
crates/pod/src/pod.rs:886: /// Snapshot of the extract (memory.extract) boundary pointer.
|
||
crates/pod/src/pod.rs:929: /// non-contended at every Pod lifecycle event.
|
||
crates/pod/src/pod.rs:946: /// `.push(metric)` into it; Pod drains it in `persist_turn` and
|
||
crates/pod/src/pod.rs:955: /// `tools` crate. Called by the Controller immediately after it
|
||
crates/pod/src/pod.rs:956: /// registers the builtin tools on the Worker. Overwrites any
|
||
crates/pod/src/pod.rs:962: /// Attach the session-scoped TaskStore from the builtin `tools` crate.
|
||
crates/pod/src/pod.rs:963: /// Called by the Controller before registering builtin tools so the Pod
|
||
crates/pod/src/pod.rs:982: /// Pod-internal operations (compaction failures, AGENTS.md
|
||
crates/pod/src/pod.rs:983: /// ingestion warnings) can surface messages to connected clients.
|
||
crates/pod/src/pod.rs:991: /// Pod-internal operations (currently: compaction) can surface
|
||
crates/pod/src/pod.rs:992: /// progress to connected clients.
|
||
crates/pod/src/pod.rs:1030: /// Broadcast a typed `Event` to connected clients. No-op when no
|
||
crates/pod/src/pod.rs:1031: /// `event_tx` is attached (tests / direct `Pod::new` usage) or when
|
||
crates/pod/src/pod.rs:1032: /// no clients are currently subscribed.
|
||
crates/pod/src/pod.rs:1039: /// Push a `Method::Notify` (or rendered `Method::PodEvent`) entry
|
||
crates/pod/src/pod.rs:1044: /// `PodInterceptor::pending_history_appends`. See [`NotifyBuffer`]
|
||
crates/pod/src/pod.rs:1050: /// Push a typed `PodEvent` entry onto the pending buffer.
|
||
crates/pod/src/pod.rs:1053: /// preserves the typed `PodEvent` payload so the IPC layer can
|
||
crates/pod/src/pod.rs:1054: /// emit `SystemItem::PodEvent { event, body }` with structured
|
||
crates/pod/src/pod.rs:1055: /// data for clients.
|
||
crates/pod/src/pod.rs:1063: /// while `pod.run()` is in flight can still reach the interceptor.
|
||
crates/pod/src/pod.rs:1068: /// Parent callback socket set by `from_manifest_spawned`.
|
||
crates/pod/src/pod.rs:1070: /// Consumed by the Controller to fire `Method::PodEvent` upward on
|
||
crates/pod/src/pod.rs:1071: /// lifecycle transitions. `None` for top-level Pods, in which case
|
||
crates/pod/src/pod.rs:1098: /// Register a hook that runs before each tool call.
|
||
crates/pod/src/pod.rs:1104: /// Register a hook that runs after each tool call.
|
||
crates/pod/src/pod.rs:1125: /// `request_threshold`) is configured in the manifest, allocates
|
||
crates/pod/src/pod.rs:1190: /// Render the manifest-supplied instruction template exactly once,
|
||
crates/pod/src/pod.rs:1204: // Materialise any pending tool factories so the template sees the
|
||
crates/pod/src/pod.rs:1205: // full list of tool names. Redundant with the flush inside
|
||
crates/pod/src/pod.rs:1222: // gate so summary, Knowledge, and Workflow residency remain
|
||
crates/pod/src/pod.rs:1296: /// Equivalent to `run(vec![Segment::text(s)])`. The dumb-client
|
||
crates/pod/src/pod.rs:1297: /// counterpart of [`protocol::Method::run_text`]; primarily for
|
||
crates/pod/src/pod.rs:1298: /// tests and tools that have only a string in hand.
|
||
crates/pod/src/pod.rs:1303: /// Drop the prior memory_task handle if it has finished. Keep it if
|
||
crates/pod/src/pod.rs:1311: /// Wait for the in-flight memory task (if any) to finish. Used before
|
||
crates/pod/src/pod.rs:1323: /// defensive reasons; this is the gate for joining the memory task
|
||
crates/pod/src/pod.rs:1335: /// store, and runs pre-run compact (joining any in-flight memory task
|
||
crates/pod/src/pod.rs:1418: /// `input` is a typed segment list (see [`protocol::Segment`]). The
|
||
crates/pod/src/pod.rs:1419: /// Pod flattens it into a single user-message string for the
|
||
crates/pod/src/pod.rs:1428: // Validate workflow invocations up front so an invalid slug
|
||
crates/pod/src/pod.rs:1432: // `workflow_registry`.
|
||
crates/pod/src/pod.rs:1436: // any `Item::ToolCall` whose tool never produced a matching
|
||
crates/pod/src/pod.rs:1441: // `last_run_interrupted` flag; `Pod::resume` reuses the prior
|
||
crates/pod/src/pod.rs:1469: // workflow invocations to system messages stashed for the
|
||
crates/pod/src/pod.rs:1470: // PodInterceptor to attach right after the user message. File and
|
||
crates/pod/src/pod.rs:1471: // Knowledge failures are non-fatal alerts; explicit workflow invocation
|
||
crates/pod/src/pod.rs:1502: /// or shallow `[Dir: <path>]` system message via `PodFsView`. Resolution
|
||
crates/pod/src/pod.rs:1702: // `resolve_workflow_invocation` returns Item::system_message
|
||
crates/pod/src/pod.rs:1704: // bodies). Persist each as a SystemItem::Workflow keyed on
|
||
crates/pod/src/pod.rs:1721: /// short. Called from `Pod::run` when the worker's
|
||
crates/pod/src/pod.rs:1722: /// `last_run_interrupted` flag is set (i.e. the Pod just transitioned
|
||
crates/pod/src/pod.rs:1754: /// Validate explicit workflow invocations without reading dependency
|
||
crates/pod/src/pod.rs:1755: /// bodies. Called from `Pod::run` entry so an invalid slug aborts
|
||
crates/pod/src/pod.rs:1793: /// segments that fall through to placeholder (knowledge / workflow
|
||
crates/pod/src/pod.rs:1794: /// refs without a resolver, or unknown variants from a newer client).
|
||
crates/pod/src/pod.rs:1829: /// Run a turn triggered by `Method::Notify` while the Pod is idle.
|
||
crates/pod/src/pod.rs:1832: /// history. The `PodInterceptor::pre_llm_request` drains the
|
||
crates/pod/src/pod.rs:1853: // IDLE → active marker for the buffered notification / pod-event
|
||
crates/pod/src/pod.rs:1855: // PodInterceptor) carry the actual payload.
|
||
crates/pod/src/pod.rs:1889: /// On the first call for a Pod built via `from_manifest`, the session
|
||
crates/pod/src/pod.rs:1926: // = the writer's current turn (its in-memory history reflects
|
||
crates/pod/src/pod.rs:2177: // Low-level test paths that build `Pod::new` without wiring
|
||
crates/pod/src/pod.rs:2231: // One LogEntry::LlmUsage per LLM call (the tool loop may have run
|
||
crates/pod/src/pod.rs:2232: // many calls within a single Pod::run). Each is also appended to
|
||
crates/pod/src/pod.rs:2233: // the in-memory `usage_history` so token-accounting APIs see it
|
||
crates/pod/src/pod.rs:2292: /// - `compaction.model` from the manifest if configured, or
|
||
crates/pod/src/pod.rs:2293: /// - a clone of the main LlmClient via `clone_boxed()`.
|
||
crates/pod/src/pod.rs:2315: // Compaction-related knobs. Fall through to manifest defaults when
|
||
crates/pod/src/pod.rs:2407: // Worker-side state collected by the compact worker's tool calls.
|
||
crates/pod/src/pod.rs:2413: // with the main Pod (reads go through the same policy) but the
|
||
crates/pod/src/pod.rs:2429: // UsageRecord counter used by the main Pod thresholds.
|
||
crates/pod/src/pod.rs:2452: // history exploration, and compact-specific tools that populate `ctx`.
|
||
crates/pod/src/pod.rs:2524: // Re-read each auto-read target via the Pod FS view. Errors are
|
||
crates/pod/src/pod.rs:2636: // Keep pods.json pointing at the live segment_id. Without this
|
||
crates/pod/src/pod.rs:2637: // a concurrent `restore_from_manifest(new_segment_id)` would
|
||
crates/pod/src/pod.rs:2638: // see no live writer and grab the session this Pod just moved
|
||
crates/pod/src/pod.rs:2641: // `Pod::new` in tests).
|
||
crates/pod/src/pod.rs:2661: // SegmentStart's history (broadcast above) — clients derive
|
||
crates/pod/src/pod.rs:2682: // via fold_pointer. The in-memory pointer must match — otherwise
|
||
crates/pod/src/pod.rs:2695: /// Build the LlmClient for the compactor Worker.
|
||
crates/pod/src/pod.rs:2697: /// Uses `compaction.model` from manifest if set, otherwise clones
|
||
crates/pod/src/pod.rs:2698: /// the main client.
|
||
crates/pod/src/pod.rs:2710: /// Build the LlmClient for the extract (memory.extract) Worker.
|
||
crates/pod/src/pod.rs:2712: /// Uses `memory.extract_model` from manifest if set, otherwise clones
|
||
crates/pod/src/pod.rs:2713: /// the main client.
|
||
crates/pod/src/pod.rs:2745: /// extract (memory.extract) post-run trigger.
|
||
crates/pod/src/pod.rs:2747: /// Called by the Controller before spawning the background memory task so
|
||
crates/pod/src/pod.rs:2752: /// Behaviour follows `docs/plan/memory.md` §Extract 並走防止:
|
||
crates/pod/src/pod.rs:2755: /// re-evaluation happens naturally because the in-memory pointer
|
||
crates/pod/src/pod.rs:2788: // an extract for this Pod, skip per spec.
|
||
crates/pod/src/pod.rs:3133: /// Build the LlmClient for the consolidation (memory.consolidation) Worker.
|
||
crates/pod/src/pod.rs:3135: /// Uses `memory.consolidation_model` from manifest if set, otherwise
|
||
crates/pod/src/pod.rs:3136: /// clones the main client. Mirrors [`build_extractor_client`].
|
||
crates/pod/src/pod.rs:3149: /// consolidation (memory.consolidation) trigger.
|
||
crates/pod/src/pod.rs:3151: /// Intended to run from a background memory task after extract may have
|
||
crates/pod/src/pod.rs:3155: /// Behaviour follows `docs/plan/memory.md` §Consolidation / §並走防止:
|
||
crates/pod/src/pod.rs:3408: // Memory tools are self-contained — they bypass ScopedFs and write
|
||
crates/pod/src/pod.rs:3410: // injection is a Pod-level concern; this disposable Worker is built
|
||
crates/pod/src/pod.rs:3411: // without it by construction, in keeping with `docs/plan/memory.md`
|
||
crates/pod/src/pod.rs:3413: // the search tool instead of via system-prompt residency).
|
||
crates/pod/src/pod.rs:3643: /// Either threshold not met, no staging, or another Pod holds the lock.
|
||
crates/pod/src/pod.rs:3654: /// Create a Pod entirely from a validated manifest.
|
||
crates/pod/src/pod.rs:3656: /// The Pod's working directory is captured once here from the
|
||
crates/pod/src/pod.rs:3658: /// different cwd must `cd` before constructing the Pod (e.g. the
|
||
crates/pod/src/pod.rs:3659: /// `SpawnPod` tool sets `Command::current_dir` on the child). The
|
||
crates/pod/src/pod.rs:3661: /// `manifest.scope`.
|
||
crates/pod/src/pod.rs:3678: // session_id + segment_id are allocated here so the pod-registry
|
||
crates/pod/src/pod.rs:3683: // Register this Pod in the machine-wide pod-registry
|
||
crates/pod/src/pod.rs:3750: /// Build a Pod spawned by another Pod (sibling process).
|
||
crates/pod/src/pod.rs:3752: /// Behaves like [`Pod::from_manifest`] but claims the scope
|
||
crates/pod/src/pod.rs:3754: /// [`pod_registry::delegate_scope`], rather than installing a new
|
||
crates/pod/src/pod.rs:3756: /// Unix-socket path so the spawned Pod can send `Method::Notify`
|
||
crates/pod/src/pod.rs:3829: /// Restore a Pod by resolving its name-keyed metadata to an active
|
||
crates/pod/src/pod.rs:3859: /// Restore a Pod from an existing session log.
|
||
crates/pod/src/pod.rs:3861: /// Resolves the manifest cascade exactly like [`Self::from_manifest`]
|
||
crates/pod/src/pod.rs:3862: /// (pwd / scope / pod-registry / client / prompt catalog), seeds a
|
||
crates/pod/src/pod.rs:3867: /// Concurrent writers are prevented by the pod-registry:
|
||
crates/pod/src/pod.rs:3869: /// refuses to start when `pod_registry::lookup_segment` already finds
|
||
crates/pod/src/pod.rs:3870: /// a live Pod writing to `segment_id`. So there is no need to fork —
|
||
crates/pod/src/pod.rs:3875: /// session keeps a stable cache prefix even when the manifest's
|
||
crates/pod/src/pod.rs:3909: // Atomic: register_pod inside install_top_level rejects when
|
||
crates/pod/src/pod.rs:3912: // makes "no two live Pods write to the same session log"
|
||
crates/pod/src/pod.rs:3927: // Build the worker and apply the manifest defaults first, then
|
||
crates/pod/src/pod.rs:3936: // (the Pod's one and only write path that prepends a summary at
|
||
crates/pod/src/pod.rs:3997: // late-attaching client sees the full prefix without an
|
||
crates/pod/src/pod.rs:4013: /// Convenience: build a Pod from a single-layer TOML manifest string.
|
||
crates/pod/src/pod.rs:4015: /// Parses the TOML into a [`PodManifestConfig`], converts to a
|
||
crates/pod/src/pod.rs:4016: /// validated [`PodManifest`] via `TryFrom`, then delegates to
|
||
crates/pod/src/pod.rs:4017: /// [`Pod::from_manifest`]. Useful for tests, debugging, and any
|
||
crates/pod/src/pod.rs:4026:/// Apply worker-level manifest settings to a Worker.
|
||
crates/pod/src/pod.rs:4029:/// minijinja template that is parsed by `Pod::from_manifest` and
|
||
crates/pod/src/pod.rs:4059:/// Result of a Pod run.
|
||
crates/pod/src/pod.rs:4087: // Yielded is internal to Pod: it's always caught by
|
||
crates/pod/src/pod.rs:4088: // handle_worker_result and never converted to PodRunResult.
|
||
crates/pod/src/pod.rs:4330:/// Pod errors.
|
||
crates/pod/src/pod.rs:4426:/// Bundle of resources that every high-level Pod constructor needs:
|
||
crates/pod/src/pod.rs:4427:/// pwd, scope, an LLM client, the prompt catalog, and (optionally) a
|
||
crates/pod/src/pod.rs:4428:/// parsed system-prompt template. Built once by [`prepare_pod_common`]
|
||
crates/pod/src/pod.rs:4429:/// from the manifest cascade and then split into Pod fields.
|
||
crates/pod/src/pod.rs:4438: /// SKILL.md shadow events surfaced during workflow-registry build.
|
||
crates/pod/src/pod.rs:4439: /// The Pod constructor drains these into the notify buffer right
|
||
crates/pod/src/pod.rs:4440: /// after the Pod is materialised so the first LLM request observes
|
||
crates/pod/src/pod.rs:4441: /// any skill ↔ workflow collisions.
|
||
crates/pod/src/pod.rs:4445:/// Resolve pwd / scope / LLM client / prompt catalog from a validated
|
||
crates/pod/src/pod.rs:4446:/// manifest cascade. Used by `from_manifest`, `from_manifest_spawned`,
|
||
crates/pod/src/pod.rs:4447:/// and `restore_from_manifest` so they share one definition of "what
|
||
crates/pod/src/pod.rs:4448:/// pieces fall out of a manifest".
|
||
crates/pod/src/pod.rs:4450:/// `parse_template` controls whether the manifest's instruction is
|
||
crates/pod/src/pod.rs:4451:/// parsed as a system-prompt template. New Pods always parse so the
|
||
crates/pod/src/pod.rs:4452:/// template is rendered at first turn; restored Pods skip parsing
|
||
crates/pod/src/pod.rs:4520:/// Ingest external SKILL.md sources into the workflow registry.
|
||
crates/pod/src/pod.rs:4522:/// Skills come exclusively from the manifest's `[skills] directories`
|
||
crates/pod/src/pod.rs:4523:/// list (resolved against the manifest base directory). Internal
|
||
crates/pod/src/pod.rs:4524:/// Workflows already loaded via [`workflow_crate::load_workflows`] take priority
|
||
crates/pod/src/pod.rs:4526:/// [`workflow_crate::ShadowedSkill`] events that the caller pushes onto the
|
||
crates/pod/src/pod.rs:4527:/// Pod's notification buffer.
|
||
crates/pod/src/pod.rs:4548:/// Drain skill-ingest shadow events into the Pod's notify buffer so the
|
||
crates/pod/src/pod.rs:4560:/// Build the Pod's runtime [`Scope`] from the manifest, layering the
|
||
crates/pod/src/pod.rs:4561:/// memory subsystem's deny-write rules on top when `[memory]` is
|
||
crates/pod/src/pod.rs:4563:/// directories ingested. The deny rules cap generic CRUD tools so they
|
||
crates/pod/src/pod.rs:4564:/// cannot touch `<workspace>/memory/` or `<workspace>/knowledge/` while
|
||
crates/pod/src/pod.rs:4565:/// the memory tools (registered separately) bypass `ScopedFs` and write
|
||
crates/pod/src/pod.rs:4568:/// / `assets/` referenced by the Workflow body.
|
||
crates/pod/src/pod.rs:4582:/// Allow-rules granting `Read` access to every skill directory the Pod
|
||
crates/pod/src/pod.rs:4583:/// will ingest from the manifest's `[skills] directories`. Returned
|
||
crates/pod/src/pod.rs:4601:/// Snapshot the process's current working directory as the Pod's pwd,
|
||
crates/pod/src/pod.rs:4602:/// canonicalising symlinks and any `.`/`..` components. The Pod keeps
|
||
crates/pod/src/pod.rs:5113: // Construct the smallest possible PodManifest that resolves; only
|
||
crates/pod/src/pod.rs:5194: // No workflow exists to shadow `alpha`, so no shadow event for it.
|
||
crates/protocol/src/lib.rs:8:// Method (Client → Pod via Unix Socket)
|
||
crates/protocol/src/lib.rs:17: /// Human-readable text injected into the target Pod's LLM context
|
||
crates/protocol/src/lib.rs:19: /// context; use `PodEvent` for typed lifecycle reports.
|
||
crates/protocol/src/lib.rs:23: /// Typed lifecycle report from a child Pod to its direct parent.
|
||
crates/protocol/src/lib.rs:30: /// Pod can resume the interrupted work via `Resume`, or start a
|
||
crates/protocol/src/lib.rs:32: /// synthetic tool result before the new user message is appended).
|
||
crates/protocol/src/lib.rs:34: /// Request an explicit compaction while the Pod is otherwise idle.
|
||
crates/protocol/src/lib.rs:36: /// This is a typed control method: clients must not send `compact` as a
|
||
crates/protocol/src/lib.rs:40: /// Request a list of completion candidates from the Pod.
|
||
crates/protocol/src/lib.rs:46: /// (Knowledge / Workflow).
|
||
crates/protocol/src/lib.rs:51: /// List Pods visible to this Pod from durable Pod state. This is not a
|
||
crates/protocol/src/lib.rs:52: /// host-wide Pod universe query.
|
||
crates/protocol/src/lib.rs:54: /// Inspect one Pod by name if its state exists and it is visible to this Pod.
|
||
crates/protocol/src/lib.rs:58: /// Attach to a visible live Pod, or restore it from durable Pod state when
|
||
crates/protocol/src/lib.rs:65:/// Typed lifecycle events sent from a child Pod to its parent.
|
||
crates/protocol/src/lib.rs:67:/// Delivered as `Method::PodEvent` over the parent's Unix socket. The
|
||
crates/protocol/src/lib.rs:69:/// pod-registry updates) and renders a human-readable string that is
|
||
crates/protocol/src/lib.rs:74:/// child Pod).
|
||
crates/protocol/src/lib.rs:83: /// Limited to worker runtime failures (provider / tool errors) —
|
||
crates/protocol/src/lib.rs:91: /// Child sub-delegated scope to a grandchild Pod via `SpawnPod`.
|
||
crates/protocol/src/lib.rs:94: /// `spawned_pods.json` so it can manage the grandchild directly
|
||
crates/protocol/src/lib.rs:99: /// Sub-delegating Pod (= the sender itself).
|
||
crates/protocol/src/lib.rs:101: /// Name of the grandchild Pod.
|
||
crates/protocol/src/lib.rs:117:/// clients (CLI piping, scripts) only need to produce a single
|
||
crates/protocol/src/lib.rs:118:/// `Segment::Text`; richer clients (TUI / GUI) construct typed atoms
|
||
crates/protocol/src/lib.rs:119:/// (paste chips, file refs, knowledge refs, workflow invocations) and
|
||
crates/protocol/src/lib.rs:120:/// send them through directly so the Pod side never has to re-parse a
|
||
crates/protocol/src/lib.rs:124:/// `Segment::Unknown`. Pod treats this the same as known-but-unresolved
|
||
crates/protocol/src/lib.rs:131: /// Free-form text. The fallback every client can produce.
|
||
crates/protocol/src/lib.rs:133: /// Bracketed-paste capture from a TUI-style client. `id`, `chars`
|
||
crates/protocol/src/lib.rs:143: /// `@<path>` file-system reference. Pod resolves readable files to
|
||
crates/protocol/src/lib.rs:148: /// `#<slug>` Knowledge reference (see `docs/plan/memory.md`).
|
||
crates/protocol/src/lib.rs:150: /// `/<slug>` Workflow invocation (see `docs/plan/workflow.md`).
|
||
crates/protocol/src/lib.rs:152: /// Unknown variant from a newer client. Pod treats this as an
|
||
crates/protocol/src/lib.rs:168: /// alongside this call (Pod does so at submit time).
|
||
crates/protocol/src/lib.rs:170: /// Sigil-prefixed variants (`FileRef` / `KnowledgeRef` / `WorkflowInvoke`)
|
||
crates/protocol/src/lib.rs:206: /// Used by dumb clients, inter-Pod tools, and tests that only have
|
||
crates/protocol/src/lib.rs:216:// Event (Pod → Client via Unix Socket broadcast)
|
||
crates/protocol/src/lib.rs:222: /// A user input message was accepted by the Pod and is about to
|
||
crates/protocol/src/lib.rs:223: /// start a new turn. Broadcast to every subscribed client so
|
||
crates/protocol/src/lib.rs:224: /// additional TUI / GUI instances show the same pending user line
|
||
crates/protocol/src/lib.rs:226: /// submitting clients would see tool calls and assistant text
|
||
crates/protocol/src/lib.rs:237: /// Carries the JSON form of `session_store::SystemItem`. Covers
|
||
crates/protocol/src/lib.rs:238: /// `Method::Notify` echoes, child-Pod lifecycle events from
|
||
crates/protocol/src/lib.rs:239: /// `Method::PodEvent`, `@<path>` / `#<slug>` / `/<slug>`
|
||
crates/protocol/src/lib.rs:241: /// Clients dispatch on the `kind` tag for typed rendering instead
|
||
crates/protocol/src/lib.rs:255: /// `Method::PodEvent` re-injection (kind=`PodEvent`), and any other
|
||
crates/protocol/src/lib.rs:261: /// pod event body) is delivered separately via the immediately
|
||
crates/protocol/src/lib.rs:269: /// into the same AgentTurn). When the input changes (a new tool
|
||
crates/protocol/src/lib.rs:275: /// Currently retry is not yet implemented (`llm-worker-stream-continuation`)
|
||
crates/protocol/src/lib.rs:303: /// This is operational state for clients to render while the worker is
|
||
crates/protocol/src/lib.rs:333: /// some providers (or some configurations) emit thinking metadata
|
||
crates/protocol/src/lib.rs:341: /// (empty string when the provider didn't emit plaintext).
|
||
crates/protocol/src/lib.rs:360: /// Short human-readable summary. Always present; used by clients
|
||
crates/protocol/src/lib.rs:363: /// Full tool output. Absent when the tool chose to return
|
||
crates/protocol/src/lib.rs:375: /// occupancy; subtracting it yields the "net upload" the client
|
||
crates/protocol/src/lib.rs:377: /// the TUI status line accumulates per turn.
|
||
crates/protocol/src/lib.rs:391: /// Sent exactly once at the start of every client connection.
|
||
crates/protocol/src/lib.rs:394: /// as the JSON form of `session_store::LogEntry`. This is the
|
||
crates/protocol/src/lib.rs:395: /// bulk-reconstruction lane: clients walk the entries to seed their
|
||
crates/protocol/src/lib.rs:398: /// `greeting` and `status` accompany the snapshot so clients render
|
||
crates/protocol/src/lib.rs:399: /// pod identity and current controller state without an extra round
|
||
crates/protocol/src/lib.rs:415: /// from the live writer's cached head. Clients drop their derived
|
||
crates/protocol/src/lib.rs:419: /// Payload is the JSON form of `session_store::LogEntry::SegmentStart`.
|
||
crates/protocol/src/lib.rs:423: /// Current Pod controller status. Broadcast on every controller-level
|
||
crates/protocol/src/lib.rs:436: /// Reply to `Method::ListVisiblePods`. Payload is a stable JSON value so
|
||
crates/protocol/src/lib.rs:437: /// the Pod crate can evolve discovery fields without introducing a protocol
|
||
crates/protocol/src/lib.rs:438: /// dependency on session-store.
|
||
crates/protocol/src/lib.rs:442: /// Reply to `Method::InspectPod`.
|
||
crates/protocol/src/lib.rs:446: /// Reply to `Method::AttachOrRestorePod`.
|
||
crates/protocol/src/lib.rs:451: /// Latest memory extract/consolidation lifecycle event for UI observability.
|
||
crates/protocol/src/lib.rs:453: /// This is not part of LLM history or prompt context; clients may display it
|
||
crates/protocol/src/lib.rs:456: /// Pod has started compacting the current session.
|
||
crates/protocol/src/lib.rs:460: /// Broadcast to all clients; not replayed to late subscribers.
|
||
crates/protocol/src/lib.rs:476:/// User-facing alert emitted from the Pod layer.
|
||
crates/protocol/src/lib.rs:479:/// here are assembled explicitly by the Pod when a condition should be
|
||
crates/protocol/src/lib.rs:480:/// surfaced to the person driving the client. Keep messages short and
|
||
crates/protocol/src/lib.rs:522:/// Mirrors the TUI prefix sigils: `@` → `File`, `#` → `Knowledge`,
|
||
crates/protocol/src/lib.rs:523:/// `/` → `Workflow`. Knowledge and Workflow resolvers are currently
|
||
crates/protocol/src/lib.rs:525:/// nailed down here so the TUI side can ship without waiting for
|
||
crates/protocol/src/lib.rs:526:/// the memory / workflow tickets.
|
||
crates/protocol/src/lib.rs:537:/// `value` is a path (file kind) or a slug (knowledge / workflow).
|
||
crates/protocol/src/lib.rs:538:/// `is_dir` is meaningful only for the file kind — it lets the TUI
|
||
crates/protocol/src/lib.rs:548:/// Pod self-description rendered by the TUI when a session starts empty.
|
||
crates/protocol/src/lib.rs:550:/// Built once in the Pod controller from the resolved manifest and
|
||
crates/protocol/src/lib.rs:551:/// transmitted alongside `Event::Snapshot` so clients don't need
|
||
crates/protocol/src/lib.rs:552:/// their own view of the manifest.
|
||
crates/protocol/src/lib.rs:561: /// Model context window in tokens. Always filled by the Pod greeting.
|
||
crates/protocol/src/lib.rs:593:/// notify message, pod event body) is delivered by the immediately
|
||
crates/protocol/src/lib.rs:602: /// `Method::PodEvent` — typed lifecycle report from a child Pod.
|
||
crates/protocol/src/lib.rs:620: /// The accepted Method::Run produced no assistant/tool output before
|
||
crates/protocol/src/lib.rs:621: /// user interruption, so the Pod rolled the submit-time turn state back
|
||
crates/protocol/src/lib.rs:622: /// to its pre-submit snapshot. Clients should treat the Pod as Idle and
|
||
crates/protocol/src/lib.rs:642:// Defined here so that both `manifest` (config parsing) and `protocol`
|
||
crates/protocol/src/lib.rs:643:// itself (inter-pod messaging such as `PodEvent::ScopeSubDelegated`) can
|
||
crates/protocol/src/lib.rs:652: /// manifest file's directory (cwd for overlay layers) before cascade
|
||
crates/protocol/src/lib.rs:742: // A future client sends a segment kind this Pod has never heard of.
|
||
crates/protocol/src/lib.rs:744: // unknown payload must surface as `Segment::Unknown` so the Pod
|