update: Merge worker-types crate into worker crate

This commit is contained in:
2026-01-08 22:15:11 +09:00
parent a01f19b112
commit 7d398fa6de
41 changed files with 1195 additions and 503 deletions
+3 -2
View File
@@ -8,9 +8,9 @@ use std::sync::{Arc, Mutex};
use async_trait::async_trait;
use futures::Stream;
use worker::llm_client::event::{BlockType, DeltaContent, Event};
use worker::llm_client::{ClientError, LlmClient, Request};
use worker::timeline::{Handler, TextBlockEvent, TextBlockKind, Timeline};
use worker_types::{BlockType, DeltaContent, Event};
use std::sync::atomic::{AtomicUsize, Ordering};
@@ -267,7 +267,8 @@ pub fn assert_timeline_integration(subdir: &str) {
});
for event in &events {
timeline.dispatch(event);
let timeline_event: worker::timeline::event::Event = event.clone().into();
timeline.dispatch(&timeline_event);
}
let texts = collected.lock().unwrap();
+3 -4
View File
@@ -8,10 +8,9 @@ use std::time::{Duration, Instant};
use async_trait::async_trait;
use worker::Worker;
use worker_types::{
ControlFlow, Event, HookError, ResponseStatus, StatusEvent, Tool, ToolCall, ToolError,
ToolResult, WorkerHook,
};
use worker::hook::{ControlFlow, HookError, ToolCall, ToolResult, WorkerHook};
use worker::llm_client::event::{Event, ResponseStatus, StatusEvent};
use worker::tool::{Tool, ToolError};
mod common;
use common::MockLlmClient;
+9 -9
View File
@@ -7,12 +7,12 @@ mod common;
use std::sync::{Arc, Mutex};
use common::MockLlmClient;
use worker::subscriber::WorkerSubscriber;
use worker::Worker;
use worker_types::{
ErrorEvent, Event, ResponseStatus, StatusEvent, TextBlockEvent, ToolCall, ToolUseBlockEvent,
UsageEvent,
};
use worker::hook::ToolCall;
use worker::llm_client::event::{Event, ResponseStatus, StatusEvent as ClientStatusEvent};
use worker::subscriber::WorkerSubscriber;
use worker::timeline::event::{ErrorEvent, StatusEvent, UsageEvent};
use worker::timeline::{TextBlockEvent, ToolUseBlockEvent};
// =============================================================================
// Test Subscriber
@@ -101,7 +101,7 @@ async fn test_subscriber_text_block_events() {
Event::text_delta(0, "Hello, "),
Event::text_delta(0, "World!"),
Event::text_block_stop(0, None),
Event::Status(StatusEvent {
Event::Status(ClientStatusEvent {
status: ResponseStatus::Completed,
}),
];
@@ -141,7 +141,7 @@ async fn test_subscriber_tool_call_complete() {
Event::tool_input_delta(0, r#"{"city":"#),
Event::tool_input_delta(0, r#""Tokyo"}"#),
Event::tool_use_stop(0),
Event::Status(StatusEvent {
Event::Status(ClientStatusEvent {
status: ResponseStatus::Completed,
}),
];
@@ -172,7 +172,7 @@ async fn test_subscriber_turn_events() {
Event::text_block_start(0),
Event::text_delta(0, "Done!"),
Event::text_block_stop(0, None),
Event::Status(StatusEvent {
Event::Status(ClientStatusEvent {
status: ResponseStatus::Completed,
}),
];
@@ -210,7 +210,7 @@ async fn test_subscriber_usage_events() {
Event::text_delta(0, "Hello"),
Event::text_block_stop(0, None),
Event::usage(100, 50),
Event::Status(StatusEvent {
Event::Status(ClientStatusEvent {
status: ResponseStatus::Completed,
}),
];
+1 -1
View File
@@ -9,8 +9,8 @@ use std::sync::atomic::{AtomicUsize, Ordering};
use schemars;
use serde;
use worker::tool::Tool;
use worker_macros::tool_registry;
use worker_types::Tool;
// =============================================================================
// Test: Basic Tool Generation
+6 -5
View File
@@ -12,7 +12,7 @@ use std::sync::atomic::{AtomicUsize, Ordering};
use async_trait::async_trait;
use common::MockLlmClient;
use worker::Worker;
use worker_types::{Tool, ToolError};
use worker::tool::{Tool, ToolError};
/// フィクスチャディレクトリのパス
fn fixtures_dir() -> std::path::PathBuf {
@@ -100,7 +100,7 @@ fn test_mock_client_from_fixture() {
/// fixtureファイルを使わず、プログラムでイベントを構築してクライアントを作成する。
#[test]
fn test_mock_client_from_events() {
use worker_types::Event;
use worker::llm_client::event::Event;
// 直接イベントを指定
let events = vec![
@@ -178,7 +178,7 @@ async fn test_worker_tool_call() {
/// テストの独立性を高め、外部ファイルへの依存を排除したい場合に有用。
#[tokio::test]
async fn test_worker_with_programmatic_events() {
use worker_types::{Event, ResponseStatus, StatusEvent};
use worker::llm_client::event::{Event, ResponseStatus, StatusEvent};
// プログラムでイベントシーケンスを構築
let events = vec![
@@ -205,8 +205,8 @@ async fn test_worker_with_programmatic_events() {
/// id, name, inputJSON)を正しく抽出できることを検証する。
#[tokio::test]
async fn test_tool_call_collector_integration() {
use worker::llm_client::event::Event;
use worker::timeline::{Timeline, ToolCallCollector};
use worker_types::Event;
// ToolUseブロックを含むイベントシーケンス
let events = vec![
@@ -222,7 +222,8 @@ async fn test_tool_call_collector_integration() {
// イベントをディスパッチ
for event in &events {
timeline.dispatch(event);
let timeline_event: worker::timeline::event::Event = event.clone().into();
timeline.dispatch(&timeline_event);
}
// 収集されたToolCallを確認
+2 -1
View File
@@ -7,7 +7,8 @@ mod common;
use common::MockLlmClient;
use worker::Worker;
use worker_types::{Event, Message, MessageContent, ResponseStatus, StatusEvent};
use worker::llm_client::event::{Event, ResponseStatus, StatusEvent};
use worker::{Message, MessageContent};
// =============================================================================
// Mutable状態のテスト