1a36cfbb10
* refactor(opencode): remove raw LLM interface in favor of stream-based text helper Introduce KiloLLM.text() to consume Effect streams and extract text while propagating error/abort events. Replace all usages of the removed LLM.raw() method and the legacy LLM.stream() async wrapper with dedicated runtime helpers (CommitMessageRuntime.generate, PlanFollowupRuntime.handover) that leverage the new stream-based approach. - Add KiloLLM.text() stream combinator in kilocode/session/llm.ts - Remove Interface.raw and the exported LLM.stream() async function - Refactor commit-message generation to use CommitMessageRuntime - Refactor plan-followup handover to use PlanFollowupRuntime.handover - Update all test LLM mocks to remove raw() stubs - Add unit tests for KiloLLM.text() covering text joining, error propagation, and abort handling * feat(skill): migrate Skill module to Effect service pattern and remove legacy promise wrappers Remove the makeRuntime-based promise helpers (Skill.all, Skill.get, Skill.dirs) from the skill module and convert the builtin-skills test suite to use Effect generators with the testEffect harness. - Delete legacy runPromise wrappers from packages/opencode/src/skill/index.ts - Rewrite builtin-skills.test.ts to use testEffect and Effect.gen - Replace WithInstance.provide/tmpdir with TestInstance yield pattern - Use Skill.Service directly within Effect generators for all assertions * refactor(session-status): drop makeRuntime promise helpers and wire Service through Effect context Replace the standalone `SessionStatus.list`, `.get`, `.set` promise wrappers with direct `SessionStatus.Service` usage via Effect generators and `AppRuntime.runPromise` at Kilo callsites that remain imperative. - Remove makeRuntime-based exports from session/status.ts - Update kilo-sessions.ts and plan-followup.ts to use AppRuntime.runPromise with SessionStatus.Service - Thread SessionStatus.Service as a dependency through SuggestTool and ToolRegistry layers - Replace spy-based mocks in suggestion tool tests with an in-memory service stub for deterministic assertions