refactor: rename llm worker crate to engine

This commit is contained in:
2026-06-25 22:46:26 +09:00
parent 22598710fd
commit 292fc4ea5d
202 changed files with 1129 additions and 1125 deletions
+6 -6
View File
@@ -1,13 +1,13 @@
//! extract sub-Worker への入力テキスト組み立て。
//! extract sub-Engine への入力テキスト組み立て。
//!
//! `crates/pod/src/pod.rs::build_summary_prompt` と同じ方針で
//! Item 列を flat な行に落とす(reasoning は省く、tool call は名前のみ、
//! tool result は summary のみ)。conversation 全体を Markdown の単一
//! セクションとして渡し、抽出指示は system prompt 側に寄せる。
use llm_worker::Item;
use llm_engine::Item;
/// 与えられた `items` を extract sub-Worker の最初の user 入力に整形する。
/// 与えられた `items` を extract sub-Engine の最初の user 入力に整形する。
pub fn build_extract_input(items: &[Item]) -> String {
let mut out = String::new();
out.push_str(
@@ -26,9 +26,9 @@ fn render_items(items: &[Item]) -> String {
match item {
Item::Message { role, content, .. } => {
let role_label = match role {
llm_worker::Role::User => "User",
llm_worker::Role::Assistant => "Assistant",
llm_worker::Role::System => "System",
llm_engine::Role::User => "User",
llm_engine::Role::Assistant => "Assistant",
llm_engine::Role::System => "System",
};
let text: String = content
.iter()
+2 -2
View File
@@ -1,10 +1,10 @@
//! extract: 活動抽出。
//!
//! 通常 Pod の post-run hook で発火する disposable Worker と、その
//! 通常 Pod の post-run hook で発火する disposable Engine と、その
//! 出力を `<workspace>/.yoi/memory/_staging/<id>.json` に書き出す
//! ヘルパーを提供する。Pod 側はこのモジュールから:
//!
//! - [`build_extract_input`] を sub-Worker の最初の user 入力に
//! - [`build_extract_input`] を sub-Engine の最初の user 入力に
//! - [`write_extracted_tool`] を唯一のツールとして
//! - [`write_staging`] で受け取った JSON を staging に書き出し
//!
+8 -8
View File
@@ -1,6 +1,6 @@
//! `write_extracted` ツール実装と sub-Worker 用 context。
//! `write_extracted` ツール実装と sub-Engine 用 context。
//!
//! sub-Worker からは extract worker が出した [`ExtractedPayload`] を
//! sub-Engine からは extract worker が出した [`ExtractedPayload`] を
//! 受け取って `Mutex` 越しに [`ExtractWorkerContext`] に置くだけ。
//! Pod 側はランループ完了後に `take_payload()` で取り出して
//! [`super::staging::write_staging`] に渡す。
@@ -8,7 +8,7 @@
use std::sync::{Arc, Mutex};
use async_trait::async_trait;
use llm_worker::tool::{Tool, ToolDefinition, ToolError, ToolMeta, ToolOutput};
use llm_engine::tool::{Tool, ToolDefinition, ToolError, ToolMeta, ToolOutput};
use crate::extract::payload::ExtractedPayload;
@@ -17,7 +17,7 @@ Pass an object with `decisions`, `discussions`, `attempts`, and `requests` array
Call this exactly once and end the turn. Do not include `source`, session metadata, or free-form prose — \
the wrapper attaches provenance mechanically.";
/// extract sub-Worker の出力受け口。`ExtractedPayload` 1 件をホストする。
/// extract sub-Engine の出力受け口。`ExtractedPayload` 1 件をホストする。
#[derive(Debug, Default)]
pub struct ExtractWorkerContext {
payload: Mutex<Option<ExtractedPayload>>,
@@ -31,7 +31,7 @@ impl ExtractWorkerContext {
Self::default()
}
/// sub-Worker 終了後に Pod が呼んで payload を取り出す。
/// sub-Engine 終了後に Pod が呼んで payload を取り出す。
/// 一度も `write_extracted` が呼ばれなければ `None`。
pub fn take_payload(&self) -> Option<ExtractedPayload> {
self.payload
@@ -57,7 +57,7 @@ impl Tool for WriteExtractedTool {
async fn execute(
&self,
input_json: &str,
_ctx: llm_worker::tool::ToolExecutionContext,
_ctx: llm_engine::tool::ToolExecutionContext,
) -> Result<ToolOutput, ToolError> {
let payload: ExtractedPayload = serde_json::from_str(input_json).map_err(|e| {
ToolError::InvalidArgument(format!("invalid write_extracted input: {e}"))
@@ -92,7 +92,7 @@ impl Tool for WriteExtractedTool {
}
}
/// sub-Worker に register する `write_extracted` ツール定義を返す。
/// sub-Engine に register する `write_extracted` ツール定義を返す。
pub fn write_extracted_tool(ctx: Arc<ExtractWorkerContext>) -> ToolDefinition {
Arc::new(move || {
let schema = schemars::schema_for!(ExtractedPayload);
@@ -109,7 +109,7 @@ pub fn write_extracted_tool(ctx: Arc<ExtractWorkerContext>) -> ToolDefinition {
mod tests {
use super::*;
use llm_worker::tool::Tool;
use llm_engine::tool::Tool;
#[tokio::test]
async fn write_extracted_records_payload() {