From 5ddf7dd4e180fa1d073f2669580fe27ce6413d1e Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Thu, 3 Sep 2026 17:06:23 -0500 Subject: [PATCH 1/5] feat(native): familiar contract and analytics reads Stage 1 Task 3 of the familiars integration plan (docs/superpowers/plans/2026-09-02-familiars-integration.md): add the two new Cave client-v1 reads Cave and the SDK already promoted today (coven-cave #5288, sdk #104/#105) to Chat's native command boundary. - src-tauri: two new commands, `cave_familiar_contract` and `cave_familiar_analytics`, mirroring the existing per-id read shape (`cave_get_conversation`). New `CaveReadPath::FamiliarContract`/ `::FamiliarAnalytics` variants build `/api/client/v1/familiars/:id/ {contract,analytics}`, with a `validate_canonical_familiar_id` bound matching Cave's own familiar-id charset and an analytics query builder bounded to Cave's `window`/`recent` parameters. New Rust unit tests cover id-segment encoding and out-of-bound window/recent rejection. Guard arrays (build.rs, capabilities/default.json, lib.rs, commands.rs) and the regenerated desktop schema stay in lockstep with specification-guards.test.ts. - TypeScript SDK boundary: `QueryAdapter.familiarContract`/ `familiarAnalytics` (cached like the other detail reads), `CaveReadClient` widened to the two new `CaveClient` methods, and the native transport implementation using the SDK's newly-exported `canonicalFamiliarContractData`/`canonicalFamiliarAnalyticsData` envelope helpers. - vendor/opencoven-sdk: re-packed `cave-client-0.1.0.tgz` and `sdk-core-0.1.0.tgz` from current `OpenCoven/sdk` main (commit d24b2ef), which already carries `familiarContract`/`familiarAnalytics` as unreleased changesets. Deliberately NOT included: `contract-canary.lock.json` and `phase1-conformance.lock.json` are not re-pinned to the new SDK/Cave revisions. Re-pinning requires the SDK repo's `create-release-artifacts.mjs`, which is gated by `release.config.json` `publishingEnabled: false`, and per `docs/workflows/client-v1-cross-repository-conformance.md` the whole chain is deliberately "no offline acceptance mode": a live, protected GitHub Actions environment (`client-v1-conformance`) with a named required reviewer. That re-pin needs to happen through the real protected workflow, not by hand here. Follow-up commit once that authority exists. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_016ueGDYGKGaMzNq5mTE6ogG --- pnpm-lock.yaml | 4 +- src-tauri/build.rs | 2 + src-tauri/capabilities/default.json | 4 +- src-tauri/gen/schemas/desktop-schema.json | 24 ++++ src-tauri/src/commands.rs | 47 ++++++++ src-tauri/src/lib.rs | 15 ++- src-tauri/src/transport.rs | 121 +++++++++++++++++++++ src/app.test.tsx | 2 + src/chat-shell.test.tsx | 2 + src/lib/sdk/connection-controller.ts | 2 + src/lib/sdk/native-boundary.ts | 76 ++++++++++++- src/lib/sdk/query-adapter.test.ts | 11 ++ src/lib/sdk/query-adapter.ts | 44 +++++++- src/specification-guards.test.ts | 8 ++ vendor/opencoven-sdk/cave-client-0.1.0.tgz | Bin 81543 -> 85426 bytes vendor/opencoven-sdk/sdk-core-0.1.0.tgz | Bin 33284 -> 33332 bytes 16 files changed, 350 insertions(+), 12 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10beb722..010817a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -280,7 +280,7 @@ packages: resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} '@opencoven/cave-client@file:vendor/opencoven-sdk/cave-client-0.1.0.tgz': - resolution: {integrity: sha512-RcVL85gfejq70t+KOv2SHXd+pD0nMH+0VClncyTYmis/n2TBOwzDx1hXt8iJLfpSYm72we5GTkrBo8A+4PdTpQ==, tarball: file:vendor/opencoven-sdk/cave-client-0.1.0.tgz} + resolution: {integrity: sha512-5USz/yPGgqvj9QQGZYMowU5FVCG74SP5BEyYQuOAzFltpgieBAHie0JDfhmEfykvJIEv2ldpRXX+Eq8OwT2hiQ==, tarball: file:vendor/opencoven-sdk/cave-client-0.1.0.tgz} version: 0.1.0 engines: {node: '>=24.18.0 <25'} @@ -290,7 +290,7 @@ packages: engines: {node: '>=24.18.0 <25'} '@opencoven/sdk-core@file:vendor/opencoven-sdk/sdk-core-0.1.0.tgz': - resolution: {integrity: sha512-ZLfkfFNETnLjwg/Lxa5nIXrYs1L1q+y0fChyzZdorIpB1Rq8NeJt2S2PLQsaQXLls3GyCSkVe9+SCD2qoITkiA==, tarball: file:vendor/opencoven-sdk/sdk-core-0.1.0.tgz} + resolution: {integrity: sha512-vPAANJLfsetoT9dnOvExz2zXpBf2a2j1BcMYNIkmnOpSpEe411EMzNRXafKmxepQ7YP18iXCOTF1jZLKZa1ztg==, tarball: file:vendor/opencoven-sdk/sdk-core-0.1.0.tgz} version: 0.1.0 engines: {node: '>=24.18.0 <25'} diff --git a/src-tauri/build.rs b/src-tauri/build.rs index 4d093438..1388debb 100644 --- a/src-tauri/build.rs +++ b/src-tauri/build.rs @@ -19,6 +19,8 @@ const NATIVE_COMMANDS: &[&str] = &[ "cave_list_conversations", "cave_get_conversation", "cave_list_conversation_messages", + "cave_familiar_contract", + "cave_familiar_analytics", ]; fn tauri_config_value<'a>(config: &'a serde_json::Value, key: &str) -> &'a str { diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index b8eb9a5d..d9bd9a8c 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -21,6 +21,8 @@ "allow-cave-list-projects", "allow-cave-list-conversations", "allow-cave-get-conversation", - "allow-cave-list-conversation-messages" + "allow-cave-list-conversation-messages", + "allow-cave-familiar-contract", + "allow-cave-familiar-analytics" ] } diff --git a/src-tauri/gen/schemas/desktop-schema.json b/src-tauri/gen/schemas/desktop-schema.json index 8850d16f..8c65b481 100644 --- a/src-tauri/gen/schemas/desktop-schema.json +++ b/src-tauri/gen/schemas/desktop-schema.json @@ -200,6 +200,18 @@ "const": "allow-cave-credential-status", "markdownDescription": "Enables the cave_credential_status command without any pre-configured scope." }, + { + "description": "Enables the cave_familiar_analytics command without any pre-configured scope.", + "type": "string", + "const": "allow-cave-familiar-analytics", + "markdownDescription": "Enables the cave_familiar_analytics command without any pre-configured scope." + }, + { + "description": "Enables the cave_familiar_contract command without any pre-configured scope.", + "type": "string", + "const": "allow-cave-familiar-contract", + "markdownDescription": "Enables the cave_familiar_contract command without any pre-configured scope." + }, { "description": "Enables the cave_forget_credential command without any pre-configured scope.", "type": "string", @@ -308,6 +320,18 @@ "const": "deny-cave-credential-status", "markdownDescription": "Denies the cave_credential_status command without any pre-configured scope." }, + { + "description": "Denies the cave_familiar_analytics command without any pre-configured scope.", + "type": "string", + "const": "deny-cave-familiar-analytics", + "markdownDescription": "Denies the cave_familiar_analytics command without any pre-configured scope." + }, + { + "description": "Denies the cave_familiar_contract command without any pre-configured scope.", + "type": "string", + "const": "deny-cave-familiar-contract", + "markdownDescription": "Denies the cave_familiar_contract command without any pre-configured scope." + }, { "description": "Denies the cave_forget_credential command without any pre-configured scope.", "type": "string", diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index cdf718bf..88031d39 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -28,6 +28,8 @@ pub const REGISTERED_COMMANDS: &[&str] = &[ "cave_list_conversations", "cave_get_conversation", "cave_list_conversation_messages", + "cave_familiar_contract", + "cave_familiar_analytics", ]; #[tauri::command] @@ -289,6 +291,51 @@ pub async fn cave_list_conversation_messages( .await } +#[tauri::command] +pub async fn cave_familiar_contract( + handle: String, + familiar_id: String, + operation: NativeOperationInput, + state: State<'_, NativeConnectionState>, +) -> Result { + let runner = state.inner().clone(); + let operation_state = runner.clone(); + runner + .run_operation(operation, async move { + operation_state + .cave_read(handle, CaveReadPath::FamiliarContract { familiar_id }) + .await + }) + .await +} + +#[tauri::command] +pub async fn cave_familiar_analytics( + handle: String, + familiar_id: String, + window: Option, + recent_limit: Option, + operation: NativeOperationInput, + state: State<'_, NativeConnectionState>, +) -> Result { + let runner = state.inner().clone(); + let operation_state = runner.clone(); + runner + .run_operation(operation, async move { + operation_state + .cave_read( + handle, + CaveReadPath::FamiliarAnalytics { + familiar_id, + window, + recent_limit, + }, + ) + .await + }) + .await +} + pub fn registered_command_names() -> &'static [&'static str] { REGISTERED_COMMANDS } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 62d08ca7..b5de744b 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -29,10 +29,11 @@ use transport::{ConstrainedTransport, NativeCaveTransport}; pub use commands::{ app_identity, app_installation_id, cave_cancel_operation, cave_credential_status, - cave_forget_credential, cave_get_conversation, cave_health, cave_launch, - cave_list_conversation_messages, cave_list_conversations, cave_list_familiars, - cave_list_projects, cave_pairing_create, cave_pairing_exchange, cave_pairing_poll, - cave_read_discovery, cave_reset_pairing, coven_health, registered_command_names, + cave_familiar_analytics, cave_familiar_contract, cave_forget_credential, cave_get_conversation, + cave_health, cave_launch, cave_list_conversation_messages, cave_list_conversations, + cave_list_familiars, cave_list_projects, cave_pairing_create, cave_pairing_exchange, + cave_pairing_poll, cave_read_discovery, cave_reset_pairing, coven_health, + registered_command_names, }; pub use coven::CovenHealthResult; pub use metadata::{AppIdentity, APP_IDENTIFIER, APP_NAME, APP_PHASE}; @@ -267,7 +268,9 @@ fn builder() -> tauri::Builder { cave_list_projects, cave_list_conversations, cave_get_conversation, - cave_list_conversation_messages + cave_list_conversation_messages, + cave_familiar_contract, + cave_familiar_analytics ]) } @@ -462,6 +465,8 @@ mod smoke_tests { "cave_list_conversations", "cave_get_conversation", "cave_list_conversation_messages", + "cave_familiar_contract", + "cave_familiar_analytics", ] ); } diff --git a/src-tauri/src/transport.rs b/src-tauri/src/transport.rs index cd9d843e..4e0fcbcd 100644 --- a/src-tauri/src/transport.rs +++ b/src-tauri/src/transport.rs @@ -92,6 +92,14 @@ pub(crate) enum CaveReadPath { conversation_id: String, page: NativePage, }, + FamiliarContract { + familiar_id: String, + }, + FamiliarAnalytics { + familiar_id: String, + window: Option, + recent_limit: Option, + }, } #[derive(Clone, Deserialize)] @@ -175,6 +183,23 @@ impl CaveReadPath { validate_canonical_conversation_id(conversation_id)?; page.validate() } + Self::FamiliarContract { familiar_id } => validate_canonical_familiar_id(familiar_id), + Self::FamiliarAnalytics { + familiar_id, + window, + recent_limit, + } => { + validate_canonical_familiar_id(familiar_id)?; + if let Some(window) = window { + if !matches!(window.as_str(), "7d" | "14d" | "8w" | "all") { + return Err(NativeDiagnostic::new("invalid_native_input", false)); + } + } + if recent_limit.is_some_and(|limit| limit > 100) { + return Err(NativeDiagnostic::new("invalid_native_input", false)); + } + Ok(()) + } } } } @@ -215,6 +240,20 @@ fn validate_canonical_conversation_id(value: &str) -> NativeResult<()> { Ok(()) } +fn validate_canonical_familiar_id(value: &str) -> NativeResult<()> { + let bytes = value.as_bytes(); + if bytes.is_empty() + || bytes.len() > 64 + || !bytes[0].is_ascii_alphanumeric() + || !bytes + .iter() + .all(|byte| byte.is_ascii_alphanumeric() || matches!(byte, b'-' | b'_')) + { + return Err(NativeDiagnostic::new("invalid_native_input", false)); + } + Ok(()) +} + impl ConstrainedTransport { fn client() -> NativeResult { Client::builder() @@ -414,6 +453,28 @@ impl NativeCaveTransport for ConstrainedTransport { }, Some(page), ), + CaveReadPath::FamiliarContract { familiar_id } => ( + format!( + "api/client/v1/familiars/{}/contract", + encoded_cave_path_segment(&familiar_id) + ), + None, + ), + CaveReadPath::FamiliarAnalytics { + familiar_id, + window, + recent_limit, + } => ( + with_analytics_query( + format!( + "api/client/v1/familiars/{}/analytics", + encoded_cave_path_segment(&familiar_id) + ), + window, + recent_limit, + ), + None, + ), }; let path = with_page(path, page)?; Self::request(authority, Method::GET, &path, Some(bearer), None, None).await @@ -500,6 +561,26 @@ fn with_page(mut path: String, page: Option) -> NativeResult Ok(path) } +fn with_analytics_query( + mut path: String, + window: Option, + recent_limit: Option, +) -> String { + if window.is_none() && recent_limit.is_none() { + return path; + } + let mut serializer = url::form_urlencoded::Serializer::new(String::new()); + if let Some(window) = window { + serializer.append_pair("window", &window); + } + if let Some(limit) = recent_limit { + serializer.append_pair("recent", &limit.to_string()); + } + path.push('?'); + path.push_str(&serializer.finish()); + path +} + async fn read_response(mut response: reqwest::Response) -> NativeResult { if response.status().is_redirection() { return Err(NativeDiagnostic::new("redirect_rejected", false)); @@ -793,6 +874,46 @@ mod tests { } } + #[test] + fn canonical_familiar_ids_are_bounded_to_one_unescaped_path_segment() { + assert_eq!(encoded_cave_path_segment("astra-01"), "astra-01"); + let too_long = "a".repeat(65); + for familiar_id in [ + "", ".", "..", "a/b", "space id", "雪", "percent%", &too_long, + ] { + assert!(CaveReadPath::FamiliarContract { + familiar_id: familiar_id.to_owned(), + } + .validate() + .is_err()); + } + } + + #[test] + fn familiar_analytics_rejects_out_of_bound_window_and_recent_limit() { + assert!(CaveReadPath::FamiliarAnalytics { + familiar_id: "astra".to_owned(), + window: Some("30d".to_owned()), + recent_limit: None, + } + .validate() + .is_err()); + assert!(CaveReadPath::FamiliarAnalytics { + familiar_id: "astra".to_owned(), + window: None, + recent_limit: Some(101), + } + .validate() + .is_err()); + assert!(CaveReadPath::FamiliarAnalytics { + familiar_id: "astra".to_owned(), + window: Some("7d".to_owned()), + recent_limit: Some(100), + } + .validate() + .is_ok()); + } + #[test] fn endpoint_takeover_receives_ciphertext_only_and_cannot_forge_a_response() { let listener = TcpListener::bind("127.0.0.1:0").unwrap(); diff --git a/src/app.test.tsx b/src/app.test.tsx index 855896cf..bb4ab30d 100644 --- a/src/app.test.tsx +++ b/src/app.test.tsx @@ -107,6 +107,8 @@ function makeQueryAdapter(): QueryAdapter { ], }, }), + familiarContract: vi.fn().mockResolvedValue({ status: 'not_ready' }), + familiarAnalytics: vi.fn().mockResolvedValue({ status: 'not_ready' }), invalidate: vi.fn(), dispose: vi.fn(), }; diff --git a/src/chat-shell.test.tsx b/src/chat-shell.test.tsx index ba37c4e9..9a17f2b4 100644 --- a/src/chat-shell.test.tsx +++ b/src/chat-shell.test.tsx @@ -126,6 +126,8 @@ function makeQueryAdapter(overrides: Partial = {}): QueryAdapter { }, ]), ), + familiarContract: vi.fn().mockResolvedValue({ status: 'not_ready' }), + familiarAnalytics: vi.fn().mockResolvedValue({ status: 'not_ready' }), invalidate: vi.fn(), dispose: vi.fn(), ...overrides, diff --git a/src/lib/sdk/connection-controller.ts b/src/lib/sdk/connection-controller.ts index 89995242..04cd52ae 100644 --- a/src/lib/sdk/connection-controller.ts +++ b/src/lib/sdk/connection-controller.ts @@ -38,6 +38,8 @@ export type CaveReadClient = Pick< | 'listConversations' | 'getConversation' | 'listConversationMessages' + | 'familiarContract' + | 'familiarAnalytics' >; type CaveConnectionClient = CaveReadClient & diff --git a/src/lib/sdk/native-boundary.ts b/src/lib/sdk/native-boundary.ts index 38d0c100..1c10beb9 100644 --- a/src/lib/sdk/native-boundary.ts +++ b/src/lib/sdk/native-boundary.ts @@ -1,7 +1,16 @@ import type { - CaveManagedCredentialTransport, - CaveManagedDiscoverySource, - CavePairingRequest, + CaveAnalyticsWindowKey, + CaveFamiliarAnalyticsResponse, + CaveFamiliarAnalyticsTransportOptions, + CaveFamiliarContractResponse, +} from '@opencoven/cave-client'; +import { + CAVE_ANALYTICS_WINDOWS, + type CaveManagedCredentialTransport, + type CaveManagedDiscoverySource, + type CavePairingRequest, + canonicalFamiliarAnalyticsData, + canonicalFamiliarContractData, } from '@opencoven/cave-client/managed'; import { type OperationContext, @@ -417,6 +426,38 @@ function canonicalConversationId(value: unknown): string { return value; } +function canonicalFamiliarId(value: unknown): string { + if ( + typeof value !== 'string' || + value.length === 0 || + value.length > 64 || + !/^[A-Za-z0-9][A-Za-z0-9_-]*$/u.test(value) + ) { + return invalidNativeInput(); + } + return value; +} + +function canonicalAnalyticsWindow(value: CaveAnalyticsWindowKey | undefined): string | undefined { + if (value === undefined) { + return undefined; + } + if (!(CAVE_ANALYTICS_WINDOWS as readonly string[]).includes(value)) { + return invalidNativeInput(); + } + return value; +} + +function canonicalRecentLimit(value: number | undefined): number | undefined { + if (value === undefined) { + return undefined; + } + if (!Number.isInteger(value) || value < 0 || value > 100) { + return invalidNativeInput(); + } + return value; +} + function containsControlCharacter(value: string): boolean { for (const character of value) { const codePoint = character.codePointAt(0); @@ -606,5 +647,34 @@ export function createCaveManagedCredentialTransport( context, ); }, + async familiarContract( + familiarId: string, + context?: OperationContext, + ): Promise { + const result = await invokeBoundOperation( + 'cave_familiar_contract', + { + familiarId: canonicalFamiliarId(familiarId), + }, + context, + ); + return canonicalFamiliarContractData(result) as unknown as CaveFamiliarContractResponse; + }, + async familiarAnalytics( + familiarId: string, + options?: CaveFamiliarAnalyticsTransportOptions, + context?: OperationContext, + ): Promise { + const result = await invokeBoundOperation( + 'cave_familiar_analytics', + { + familiarId: canonicalFamiliarId(familiarId), + window: canonicalAnalyticsWindow(options?.window), + recentLimit: canonicalRecentLimit(options?.recentLimit), + }, + context, + ); + return canonicalFamiliarAnalyticsData(result) as unknown as CaveFamiliarAnalyticsResponse; + }, }); } diff --git a/src/lib/sdk/query-adapter.test.ts b/src/lib/sdk/query-adapter.test.ts index 41849e3d..65fb789e 100644 --- a/src/lib/sdk/query-adapter.test.ts +++ b/src/lib/sdk/query-adapter.test.ts @@ -85,6 +85,17 @@ function createReadClient(overrides: Partial = {}): CaveReadClie ], cursor: { current: 'cursor-messages', hasMore: false }, }), + familiarContract: vi.fn().mockResolvedValue({ + id: 'familiar-1', + present: { soul: true, identity: true, ward: true, memory: true }, + report: { specVersion: '1.0', pass: true, properties: [], violations: [], warnings: [] }, + }), + familiarAnalytics: vi.fn().mockResolvedValue({ + generatedAt: '2026-08-25T00:00:00.000Z', + windows: {}, + recentAttempts: [], + backfill: { state: 'complete', imported: 0 }, + }), ...overrides, }; } diff --git a/src/lib/sdk/query-adapter.ts b/src/lib/sdk/query-adapter.ts index 2a4bcf89..f3ac3d84 100644 --- a/src/lib/sdk/query-adapter.ts +++ b/src/lib/sdk/query-adapter.ts @@ -1,3 +1,8 @@ +import type { + CaveAnalyticsWindowKey, + CaveFamiliarAnalytics, + CaveFamiliarContract, +} from '@opencoven/cave-client'; import { type CaveCanonicalFamiliar, type CaveConversation, @@ -17,6 +22,11 @@ export type QueryResult = | { status: 'error'; code: string } | { status: 'ok'; data: T }; +export type FamiliarAnalyticsQuery = Readonly<{ + window?: CaveAnalyticsWindowKey; + recentLimit?: number; +}>; + export type QueryAdapter = { listFamiliars(options?: PageOptions): Promise>>; listProjects(options?: PageOptions): Promise>>; @@ -26,6 +36,11 @@ export type QueryAdapter = { conversationId: string, options?: PageOptions, ): Promise>>; + familiarContract(familiarId: string): Promise>; + familiarAnalytics( + familiarId: string, + options?: FamiliarAnalyticsQuery, + ): Promise>; invalidate(): void; dispose(): void; }; @@ -37,7 +52,14 @@ export type QueryAdapterOptions = Readonly<{ maxCacheEntries?: number; }>; -type QueryChannel = 'familiars' | 'projects' | 'conversations' | 'conversation-detail' | 'messages'; +type QueryChannel = + | 'familiars' + | 'projects' + | 'conversations' + | 'conversation-detail' + | 'messages' + | 'familiar-contract' + | 'familiar-analytics'; type InflightEntry = Readonly<{ channelGeneration: number; @@ -432,6 +454,26 @@ export function createQueryAdapter( (client, signal) => client.listConversationMessages(conversationId, { ...page, signal }), ); }, + familiarContract(familiarId) { + return runRead('familiar-contract', familiarId, detailTtlMs, (client, signal) => + client.familiarContract(familiarId, { signal }), + ); + }, + familiarAnalytics(familiarId, query) { + const window = query?.window; + const recentLimit = query?.recentLimit; + return runRead( + 'familiar-analytics', + `${familiarId}:${window ?? 'all-windows'}:${recentLimit ?? 'default-recent'}`, + detailTtlMs, + (client, signal) => + client.familiarAnalytics(familiarId, { + ...(window === undefined ? {} : { window }), + ...(recentLimit === undefined ? {} : { recentLimit }), + signal, + }), + ); + }, invalidate, dispose, }); diff --git a/src/specification-guards.test.ts b/src/specification-guards.test.ts index d6ff42c3..14b34c81 100644 --- a/src/specification-guards.test.ts +++ b/src/specification-guards.test.ts @@ -227,6 +227,8 @@ describe('Phase 1 specification guards', () => { 'allow-cave-list-conversations', 'allow-cave-get-conversation', 'allow-cave-list-conversation-messages', + 'allow-cave-familiar-contract', + 'allow-cave-familiar-analytics', ]); for (const permission of capability.permissions) { @@ -680,6 +682,8 @@ describe('Phase 1 specification guards', () => { 'cave_list_conversations', 'cave_get_conversation', 'cave_list_conversation_messages', + 'cave_familiar_contract', + 'cave_familiar_analytics', ]) { expect(buildScript).toContain(`"${command}"`); } @@ -706,6 +710,8 @@ describe('Phase 1 specification guards', () => { 'cave_list_conversations', 'cave_get_conversation', 'cave_list_conversation_messages', + 'cave_familiar_contract', + 'cave_familiar_analytics', ]; const schemaCommands = [...schema.matchAll(/"const": "(?:allow|deny)-([^"]+)"/g)] .map((match) => match[1]?.replaceAll('-', '_') ?? '') @@ -743,6 +749,8 @@ describe('Phase 1 specification guards', () => { 'cave_list_conversations', 'cave_get_conversation', 'cave_list_conversation_messages', + 'cave_familiar_contract', + 'cave_familiar_analytics', ]; expect(registeredCommandNames(commands)).toEqual(expected); diff --git a/vendor/opencoven-sdk/cave-client-0.1.0.tgz b/vendor/opencoven-sdk/cave-client-0.1.0.tgz index ca3888ad0251fc6e3ad6e4becaabcdc349a016e7..8df95547debaf0c6d2adc8d9f75741f0d0ce2883 100644 GIT binary patch delta 84448 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 delta 80577 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 YBK`97<>$-KU-9RE0nfsclK>I|01ULt`v3p{ From f221d25c621263adb792eac4edc6c49fc4284f1d Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Thu, 3 Sep 2026 20:43:00 -0500 Subject: [PATCH 2/5] feat(familiars): data-source seam, mock source, and mappers Stage 1 Task 4 of the familiars integration plan (docs/superpowers/plans/2026-09-02-familiars-integration.md), built on top of the previous commit's native contract/analytics reads. Against the mock source only -- no shell wiring here (Task 5) and no dependency on the contract-canary lock re-pin. - src/familiars/source.ts: the `FamiliarsSource` interface and its Stage 1 view types (`FamiliarSummary`, `FamiliarDetail` with ward/identity/ report, `FamiliarActivity`, `ConversationSummary`, `ThreadMessage`) and the `Capability` union from the integration design's data model and capability-gating tables. - src/familiars/mappers.ts (+ tests): the only module that knows the shape of a `CaveCanonicalFamiliar`, `CaveFamiliarContract`, or `CaveExecutionWindow` -- pure functions from SDK wire types to the view types above, tested against literal SDK-fixture-shaped objects (renames, optional-field omission, the window-not-served and null-completion-rate cases). - src/familiars/cave-source.ts (+ tests): `CaveFamiliarsSource`, a thin fetch-then-map over `QueryAdapter` (already carrying `familiarContract`/ `familiarAnalytics` from the previous commit) -- no caching or retry logic of its own, non-ok `QueryResult`s pass straight through unmapped. - src/familiars/mock-source.ts (+ tests): `MockFamiliarsSource` wrapping today's `src/demo/familiars-data.ts` and `mock-familiars.ts` into the same view types. The demo's `FamActivity` is presentation-shaped ("100%", "1m 36s") because it matches the design mockup verbatim, so reconstructing numeric fields from it is necessarily best-effort; reasoning/hold/image/divider messages are dropped rather than faked, since Cave does not serve rich content, attachments, or attention items until Stage 3/4. - src/familiars/capabilities.ts (+ tests): `availabilityFor(control, capabilities)`, covering every row of the design's gating table. Not included: wiring `FamiliarsShell` to either source (Task 5), or `ChatShell` retirement (Task 6) -- those come once Task 3's lock re-pin unblocks a real `CaveFamiliarsSource` in production. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_016ueGDYGKGaMzNq5mTE6ogG --- src/familiars/capabilities.test.ts | 117 ++++++++++ src/familiars/capabilities.ts | 66 ++++++ src/familiars/cave-source.test.ts | 170 ++++++++++++++ src/familiars/cave-source.ts | 93 ++++++++ src/familiars/mappers.test.ts | 344 ++++++++++++++++++++++++++++ src/familiars/mappers.ts | 189 ++++++++++++++++ src/familiars/mock-source.test.ts | 136 +++++++++++ src/familiars/mock-source.ts | 352 +++++++++++++++++++++++++++++ src/familiars/source.ts | 188 +++++++++++++++ 9 files changed, 1655 insertions(+) create mode 100644 src/familiars/capabilities.test.ts create mode 100644 src/familiars/capabilities.ts create mode 100644 src/familiars/cave-source.test.ts create mode 100644 src/familiars/cave-source.ts create mode 100644 src/familiars/mappers.test.ts create mode 100644 src/familiars/mappers.ts create mode 100644 src/familiars/mock-source.test.ts create mode 100644 src/familiars/mock-source.ts create mode 100644 src/familiars/source.ts diff --git a/src/familiars/capabilities.test.ts b/src/familiars/capabilities.test.ts new file mode 100644 index 00000000..e3060ee9 --- /dev/null +++ b/src/familiars/capabilities.test.ts @@ -0,0 +1,117 @@ +import { describe, expect, it } from 'vitest'; + +import { availabilityFor, CONTROL_NAMES } from './capabilities'; +import type { Capability } from './source'; + +const STAGE_1: ReadonlySet = new Set([ + 'familiars', + 'conversations', + 'conversation-messages', +]); +const STAGE_1_PLUS_CONTRACT: ReadonlySet = new Set([...STAGE_1, 'familiar-contract']); +const STAGE_1_PLUS_ANALYTICS: ReadonlySet = new Set([...STAGE_1, 'familiar-analytics']); +const EVERYTHING: ReadonlySet = new Set([ + 'familiars', + 'conversations', + 'conversation-messages', + 'familiar-contract', + 'familiar-analytics', + 'conversations-write', + 'runs', + 'conversation-participants', + 'attention', + 'rich-content', + 'attachments', + 'familiars-write', + 'screen', +]); + +describe('availabilityFor', () => { + it('covers every control the design gating table names', () => { + expect(CONTROL_NAMES).toEqual([ + 'sidebar', + 'thread', + 'overview', + 'access', + 'activity', + 'composer-send', + 'mentions', + 'held-actions', + 'reasoning-steps', + 'image-cards', + 'summon', + 'screen', + ]); + }); + + it('enables sidebar, thread, and overview once the shipped Stage 1 reads are present', () => { + for (const control of ['sidebar', 'thread', 'overview'] as const) { + expect(availabilityFor(control, STAGE_1)).toEqual({ enabled: true }); + expect(availabilityFor(control, new Set())).toEqual({ + enabled: false, + reason: expect.stringContaining('familiars'), + }); + } + }); + + it('gates the Access tab on familiar-contract alone', () => { + expect(availabilityFor('access', STAGE_1)).toEqual({ + enabled: false, + reason: 'Not available yet — this instance does not advertise familiar-contract.', + }); + expect(availabilityFor('access', STAGE_1_PLUS_CONTRACT)).toEqual({ enabled: true }); + }); + + it('gates the Activity tab on familiar-analytics alone', () => { + expect(availabilityFor('activity', STAGE_1)).toEqual({ + enabled: false, + reason: 'Not available yet — this instance does not advertise familiar-analytics.', + }); + expect(availabilityFor('activity', STAGE_1_PLUS_ANALYTICS)).toEqual({ enabled: true }); + }); + + it('gates composer send on both conversations-write and runs, naming every missing one', () => { + expect(availabilityFor('composer-send', STAGE_1)).toEqual({ + enabled: false, + reason: 'Not available yet — this instance does not advertise conversations-write, runs.', + }); + expect(availabilityFor('composer-send', new Set([...STAGE_1, 'conversations-write']))).toEqual({ + enabled: false, + reason: 'Not available yet — this instance does not advertise runs.', + }); + }); + + it('gates mentions, held actions, reasoning steps, image cards, summon, and screen on their own capability', () => { + expect(availabilityFor('mentions', STAGE_1)).toMatchObject({ enabled: false }); + expect(availabilityFor('mentions', new Set([...STAGE_1, 'conversation-participants']))).toEqual( + { + enabled: true, + }, + ); + expect(availabilityFor('held-actions', new Set([...STAGE_1, 'attention']))).toEqual({ + enabled: true, + }); + expect(availabilityFor('reasoning-steps', new Set([...STAGE_1, 'rich-content']))).toEqual({ + enabled: true, + }); + expect(availabilityFor('image-cards', new Set([...STAGE_1, 'attachments']))).toEqual({ + enabled: true, + }); + expect(availabilityFor('summon', new Set([...STAGE_1, 'familiars-write']))).toEqual({ + enabled: true, + }); + expect(availabilityFor('screen', new Set([...STAGE_1, 'screen']))).toEqual({ enabled: true }); + }); + + it('enables every control once every capability is advertised', () => { + for (const control of CONTROL_NAMES) { + expect(availabilityFor(control, EVERYTHING)).toEqual({ enabled: true }); + } + }); + + it('disables every control given no capabilities at all', () => { + for (const control of CONTROL_NAMES) { + expect(availabilityFor(control, new Set()).enabled).toBe(false); + } + }); +}); diff --git a/src/familiars/capabilities.ts b/src/familiars/capabilities.ts new file mode 100644 index 00000000..77feb7a8 --- /dev/null +++ b/src/familiars/capabilities.ts @@ -0,0 +1,66 @@ +import type { Capability } from './source'; + +/** + * Per-control capability gating, from the integration design's table + * (`docs/superpowers/specs/2026-09-02-familiars-integration-design.md` + * "Capability gating"). A control whose capability the source does not + * advertise renders disabled with a one-line reason -- never as a working + * mock. + */ +export type ControlName = + | 'sidebar' + | 'thread' + | 'overview' + | 'access' + | 'activity' + | 'composer-send' + | 'mentions' + | 'held-actions' + | 'reasoning-steps' + | 'image-cards' + | 'summon' + | 'screen'; + +export type ControlAvailability = Readonly<{ enabled: boolean; reason?: string }>; + +const CONTROL_REQUIREMENTS: Readonly> = { + sidebar: ['familiars', 'conversations', 'conversation-messages'], + thread: ['familiars', 'conversations', 'conversation-messages'], + overview: ['familiars', 'conversations', 'conversation-messages'], + access: ['familiar-contract'], + activity: ['familiar-analytics'], + 'composer-send': ['conversations-write', 'runs'], + mentions: ['conversation-participants'], + 'held-actions': ['attention'], + 'reasoning-steps': ['rich-content'], + 'image-cards': ['attachments'], + summon: ['familiars-write'], + screen: ['screen'], +}; + +/** The controls every `FamiliarsSource` must be gated on. Order is stable for tests. */ +export const CONTROL_NAMES: readonly ControlName[] = Object.keys( + CONTROL_REQUIREMENTS, +) as ControlName[]; + +function reasonFor(missing: readonly Capability[]): string { + return missing.length === 1 + ? `Not available yet — this instance does not advertise ${missing[0]}.` + : `Not available yet — this instance does not advertise ${missing.join(', ')}.`; +} + +/** Whether `control` is enabled given the capabilities a source advertises. */ +export function availabilityFor( + control: ControlName, + capabilities: ReadonlySet, +): ControlAvailability { + const missing = CONTROL_REQUIREMENTS[control].filter( + (capability) => !capabilities.has(capability), + ); + + if (missing.length === 0) { + return { enabled: true }; + } + + return { enabled: false, reason: reasonFor(missing) }; +} diff --git a/src/familiars/cave-source.test.ts b/src/familiars/cave-source.test.ts new file mode 100644 index 00000000..9fb0dfd4 --- /dev/null +++ b/src/familiars/cave-source.test.ts @@ -0,0 +1,170 @@ +import { describe, expect, it, vi } from 'vitest'; + +import type { QueryAdapter } from '../lib/sdk/query-adapter'; +import { createCaveFamiliarsSource } from './cave-source'; +import type { Capability, QueryResult } from './source'; + +function ok(data: T): QueryResult { + return { status: 'ok', data }; +} + +function makeQueryAdapter(overrides: Partial = {}): QueryAdapter { + return { + listFamiliars: vi.fn().mockResolvedValue(ok({ data: [] })), + listProjects: vi.fn().mockResolvedValue(ok({ data: [] })), + listConversations: vi.fn().mockResolvedValue(ok({ data: [] })), + getConversation: vi.fn().mockResolvedValue({ status: 'not_ready' }), + listMessages: vi.fn().mockResolvedValue(ok({ data: [] })), + familiarContract: vi.fn().mockResolvedValue({ status: 'not_ready' }), + familiarAnalytics: vi.fn().mockResolvedValue({ status: 'not_ready' }), + invalidate: vi.fn(), + dispose: vi.fn(), + ...overrides, + }; +} + +const CAPABILITIES: ReadonlySet = new Set(['familiars', 'familiar-contract']); + +describe('createCaveFamiliarsSource', () => { + it('maps a familiars page through mapFamiliarSummary', async () => { + const queryAdapter = makeQueryAdapter({ + listFamiliars: vi + .fn() + .mockResolvedValue(ok({ data: [{ id: 'astra', displayName: 'Astra', role: 'Guide' }] })), + }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + const result = await source.familiars(); + expect(result).toEqual( + ok({ data: [{ id: 'astra', name: 'Astra', role: 'Guide', status: 'offline' }] }), + ); + }); + + it('passes a non-ok familiars result straight through unmapped', async () => { + const queryAdapter = makeQueryAdapter({ + listFamiliars: vi.fn().mockResolvedValue({ status: 'error', code: 'service_unavailable' }), + }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + expect(await source.familiars()).toEqual({ status: 'error', code: 'service_unavailable' }); + }); + + it('fetches a familiar contract by id and maps it to a detail', async () => { + const familiarContract = vi.fn().mockResolvedValue( + ok({ + id: 'astra', + present: { soul: true, identity: true, ward: true, memory: true }, + report: { specVersion: '0.1.0', pass: true, properties: [], violations: [], warnings: [] }, + }), + ); + const queryAdapter = makeQueryAdapter({ familiarContract }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + const result = await source.familiar('astra'); + expect(familiarContract).toHaveBeenCalledWith('astra'); + expect(result.status).toBe('ok'); + expect(result).toMatchObject({ data: { id: 'astra' } }); + }); + + it('requests the default 7d window when none is given, and maps the response', async () => { + const familiarAnalytics = vi.fn().mockResolvedValue( + ok({ + generatedAt: '2026-08-25T00:00:00.000Z', + windows: { + '7d': { + attempts: 1, + completed: 1, + failed: 0, + cancelled: 0, + successRate: 1, + toolCalls: 4, + toolFailures: 0, + models: [], + harnesses: [], + coverage: {}, + }, + }, + recentAttempts: [], + backfill: { state: 'complete', imported: 1 }, + }), + ); + const queryAdapter = makeQueryAdapter({ familiarAnalytics }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + const result = await source.activity('astra'); + expect(familiarAnalytics).toHaveBeenCalledWith('astra', { window: '7d' }); + expect(result).toMatchObject({ status: 'ok', data: { window: '7d', attempts: 1 } }); + }); + + it('requests an explicit window and returns not_found when Cave omits it from the response', async () => { + const familiarAnalytics = vi.fn().mockResolvedValue( + ok({ + generatedAt: '2026-08-25T00:00:00.000Z', + windows: {}, + recentAttempts: [], + backfill: { state: 'not-started', imported: 0 }, + }), + ); + const queryAdapter = makeQueryAdapter({ familiarAnalytics }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + const result = await source.activity('astra', '14d'); + expect(familiarAnalytics).toHaveBeenCalledWith('astra', { window: '14d' }); + expect(result).toEqual({ status: 'error', code: 'not_found' }); + }); + + it('passes a non-ok analytics result straight through without mapping', async () => { + const queryAdapter = makeQueryAdapter({ + familiarAnalytics: vi.fn().mockResolvedValue({ status: 'reconcile_required' }), + }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + expect(await source.activity('astra')).toEqual({ status: 'reconcile_required' }); + }); + + it('maps a conversations page and a messages page through their mappers', async () => { + const queryAdapter = makeQueryAdapter({ + listConversations: vi + .fn() + .mockResolvedValue( + ok({ data: [{ id: 'c1', familiarId: 'astra', updatedAt: '2026-08-25T00:00:00.000Z' }] }), + ), + listMessages: vi.fn().mockResolvedValue( + ok({ + data: [ + { + id: 'm1', + conversationId: 'c1', + parentId: null, + role: 'user', + text: 'Hi', + createdAt: '2026-08-25T00:00:00.000Z', + attachmentCount: 0, + toolCount: 0, + }, + ], + }), + ), + }); + const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); + + const conversations = await source.conversations(); + expect(conversations).toMatchObject({ + data: { data: [{ id: 'c1', failed: false, pending: false }] }, + }); + + const messages = await source.messages('c1'); + expect(queryAdapter.listMessages).toHaveBeenCalledWith('c1'); + expect(messages).toMatchObject({ + data: { data: [{ id: 'm1', role: 'user', isError: false }] }, + }); + }); + + it('returns the capabilities it was constructed with, unchanged', () => { + const source = createCaveFamiliarsSource({ + queryAdapter: makeQueryAdapter(), + capabilities: CAPABILITIES, + }); + expect(source.capabilities()).toBe(CAPABILITIES); + }); +}); diff --git a/src/familiars/cave-source.ts b/src/familiars/cave-source.ts new file mode 100644 index 00000000..ec629830 --- /dev/null +++ b/src/familiars/cave-source.ts @@ -0,0 +1,93 @@ +import type { Page } from '@opencoven/sdk-core/browser'; + +import type { QueryAdapter } from '../lib/sdk/query-adapter'; +import { + mapConversationSummary, + mapFamiliarActivity, + mapFamiliarDetail, + mapFamiliarSummary, + mapThreadMessage, +} from './mappers'; +import type { + ActivityWindow, + Capability, + ConversationSummary, + FamiliarActivity, + FamiliarDetail, + FamiliarSummary, + FamiliarsSource, + QueryResult, + ThreadMessage, +} from './source'; + +/** + * `FamiliarsSource` over `QueryAdapter` and the managed `CaveClient`. + * + * Every method is a thin fetch-then-map: `QueryAdapter` owns the TTL / LRU / + * abort / epoch semantics the rest of the production shell already uses, + * and `./mappers.ts` owns the SDK-wire-type -> view-type translation. This + * module adds no caching, retry, or formatting logic of its own. + */ + +const DEFAULT_ACTIVITY_WINDOW: ActivityWindow = '7d'; + +export type CaveFamiliarsSourceOptions = Readonly<{ + queryAdapter: QueryAdapter; + /** + * The set of capability names the connected Cave instance advertises + * (`CaveHealth.capabilities`). A snapshot rather than a live subscription: + * the shell re-creates the source when connection state changes. + */ + capabilities: ReadonlySet; +}>; + +function mapResult(result: QueryResult, map: (value: T) => U): QueryResult { + return result.status === 'ok' ? { status: 'ok', data: map(result.data) } : result; +} + +function mapPageResult( + result: QueryResult>, + map: (value: T) => U, +): QueryResult> { + return result.status === 'ok' + ? { status: 'ok', data: { ...result.data, data: result.data.data.map(map) } } + : result; +} + +export function createCaveFamiliarsSource(options: CaveFamiliarsSourceOptions): FamiliarsSource { + const { queryAdapter, capabilities } = options; + + return Object.freeze({ + async familiars(): Promise>> { + return mapPageResult(await queryAdapter.listFamiliars(), mapFamiliarSummary); + }, + async familiar(id: string): Promise> { + return mapResult(await queryAdapter.familiarContract(id), mapFamiliarDetail); + }, + async activity( + id: string, + window: ActivityWindow = DEFAULT_ACTIVITY_WINDOW, + ): Promise> { + const result = await queryAdapter.familiarAnalytics(id, { window }); + if (result.status !== 'ok') { + return result; + } + const activity = mapFamiliarActivity(result.data, window); + // Cave omitted the requested window (e.g. an instance with a shorter + // retained history than `window` implies) rather than the read + // failing outright. + return activity === undefined + ? { status: 'error', code: 'not_found' } + : { status: 'ok', data: activity }; + }, + async conversations(): Promise>> { + return mapPageResult(await queryAdapter.listConversations(), mapConversationSummary); + }, + async messages(conversationId: string): Promise>> { + return mapPageResult(await queryAdapter.listMessages(conversationId), mapThreadMessage); + }, + capabilities(): ReadonlySet { + return capabilities; + }, + }); +} diff --git a/src/familiars/mappers.test.ts b/src/familiars/mappers.test.ts new file mode 100644 index 00000000..d07787db --- /dev/null +++ b/src/familiars/mappers.test.ts @@ -0,0 +1,344 @@ +import type { + CaveExecutionAttempt, + CaveExecutionWindow, + CaveFamiliarAnalytics, + CaveFamiliarContract, +} from '@opencoven/cave-client'; +import type { + CaveCanonicalFamiliar, + CaveConversation, + CaveConversationMessage, +} from '@opencoven/cave-client/managed'; +import { describe, expect, it } from 'vitest'; + +import { + mapConversationSummary, + mapFamiliarActivity, + mapFamiliarDetail, + mapFamiliarSummary, + mapThreadMessage, +} from './mappers'; + +describe('mapFamiliarSummary', () => { + it('renames displayName to name and passes optional fields through', () => { + const familiar: CaveCanonicalFamiliar = { + id: 'astra', + displayName: 'Astra', + role: 'Research and synthesis', + description: 'Reads widely.', + pronouns: 'she/her', + status: 'working', + }; + + expect(mapFamiliarSummary(familiar)).toEqual({ + id: 'astra', + name: 'Astra', + role: 'Research and synthesis', + description: 'Reads widely.', + pronouns: 'she/her', + status: 'working', + }); + }); + + it('defaults an unrecognized or missing status to offline, and omits absent optional fields', () => { + const bare: CaveCanonicalFamiliar = { id: 'astra', displayName: 'Astra', role: 'Guide' }; + + expect(mapFamiliarSummary(bare)).toEqual({ + id: 'astra', + name: 'Astra', + role: 'Guide', + status: 'offline', + }); + expect(mapFamiliarSummary({ ...bare, status: 'unknown-future-value' })).toMatchObject({ + status: 'offline', + }); + }); +}); + +describe('mapFamiliarDetail', () => { + const contract: CaveFamiliarContract = { + id: 'astra', + workspace: '/workspace/astra', + present: { soul: true, identity: true, ward: true, memory: true }, + identity: { name: 'Astra', creature: 'Cartographer', person: 'Val Alexander' }, + ward: { + version: '0.3.1', + protectedFiles: ['SOUL.md', 'IDENTITY.md', 'MEMORY.md', 'ward.toml'], + invariants: ['familiar.name', 'familiar.person'], + editablePaths: ['TOOLS.md', 'notes/'], + approvalTiers: { auto: ['read files'], humanReview: ['publish a finding'] }, + }, + report: { + specVersion: '0.1.0', + pass: true, + properties: [{ property: 'Named Identity', pass: true }], + violations: [], + warnings: [{ file: 'MEMORY.md', field: 'entries', message: 'No memory yet.' }], + }, + }; + + it('maps identity, ward, and the contract report field-for-field', () => { + expect(mapFamiliarDetail(contract)).toEqual({ + id: 'astra', + workspace: '/workspace/astra', + present: { soul: true, identity: true, ward: true, memory: true }, + identity: { name: 'Astra', creature: 'Cartographer', person: 'Val Alexander' }, + ward: { + version: '0.3.1', + protectedFiles: ['SOUL.md', 'IDENTITY.md', 'MEMORY.md', 'ward.toml'], + invariants: ['familiar.name', 'familiar.person'], + editablePaths: ['TOOLS.md', 'notes/'], + approvalTiers: { auto: ['read files'], humanReview: ['publish a finding'] }, + }, + report: contract.report, + }); + }); + + it('omits identity and ward when Cave withholds or lacks them', () => { + const minimal: CaveFamiliarContract = { + id: 'echo', + present: { soul: true, identity: true, ward: false, memory: false }, + report: { specVersion: '0.1.0', pass: false, properties: [], violations: [], warnings: [] }, + }; + + const detail = mapFamiliarDetail(minimal); + expect(detail.identity).toBeUndefined(); + expect(detail.ward).toBeUndefined(); + expect(detail.workspace).toBeUndefined(); + expect(detail.present).toEqual({ soul: true, identity: true, ward: false, memory: false }); + }); +}); + +function executionAttempt(overrides: Partial = {}): CaveExecutionAttempt { + return { + id: 'attempt-1', + executionKind: 'run', + occurredAt: '2026-08-25T00:00:00.000Z', + harnessId: 'claude-code', + status: 'completed', + toolCalls: 14, + toolFailures: 0, + ...overrides, + }; +} + +function executionWindow(overrides: Partial = {}): CaveExecutionWindow { + return { + attempts: 12, + completed: 12, + failed: 0, + cancelled: 0, + successRate: 1, + medianDurationMs: 96_000, + p95DurationMs: 168_000, + toolCalls: 148, + toolFailures: 2, + models: [], + harnesses: [ + { + key: 'files.read', + attempts: 58, + completed: 58, + failed: 0, + cancelled: 0, + successRate: 1, + toolCalls: 58, + toolFailures: 0, + }, + { + key: 'web.fetch', + label: 'web.fetch', + attempts: 22, + completed: 20, + failed: 2, + cancelled: 0, + successRate: 0.9, + toolCalls: 22, + toolFailures: 2, + }, + ], + coverage: {}, + days: [{ date: '2026-08-24', completed: 3, failed: 1, cancelled: 0 }], + ...overrides, + }; +} + +describe('mapFamiliarActivity', () => { + it('renames the window fields the plan specifies and maps harnesses to tool usage', () => { + const analytics: CaveFamiliarAnalytics = { + generatedAt: '2026-08-25T00:00:00.000Z', + windows: { '7d': executionWindow() }, + recentAttempts: [ + executionAttempt(), + executionAttempt({ id: 'attempt-2', status: 'failed', toolFailures: 1 }), + ], + backfill: { state: 'complete', imported: 12 }, + }; + + expect(mapFamiliarActivity(analytics, '7d')).toEqual({ + window: '7d', + generatedAt: '2026-08-25T00:00:00.000Z', + attempts: 12, + completed: 12, + failed: 0, + cancelled: 0, + completion: 1, + medianDurationMs: 96_000, + p95DurationMs: 168_000, + calls: 148, + callFailures: 2, + tools: [ + { name: 'files.read', calls: 58, failed: 0 }, + { name: 'web.fetch', calls: 22, failed: 2 }, + ], + days: [{ date: '2026-08-24', completed: 3, failed: 1, cancelled: 0 }], + recent: [ + { + id: 'attempt-1', + occurredAt: '2026-08-25T00:00:00.000Z', + harnessId: 'claude-code', + status: 'completed', + toolCalls: 14, + toolFailures: 0, + }, + { + id: 'attempt-2', + occurredAt: '2026-08-25T00:00:00.000Z', + harnessId: 'claude-code', + status: 'failed', + toolCalls: 14, + toolFailures: 1, + }, + ], + backfillState: 'complete', + }); + }); + + it('omits days on a window that does not carry the runs-per-day series', () => { + const { days: _days, ...windowWithoutDays } = executionWindow(); + const analytics: CaveFamiliarAnalytics = { + generatedAt: '2026-08-25T00:00:00.000Z', + windows: { all: windowWithoutDays }, + recentAttempts: [], + backfill: { state: 'partial', imported: 40, remaining: 8 }, + }; + + expect(mapFamiliarActivity(analytics, 'all')?.days).toBeUndefined(); + }); + + it('returns undefined when Cave did not serve the requested window', () => { + const analytics: CaveFamiliarAnalytics = { + generatedAt: '2026-08-25T00:00:00.000Z', + windows: { '7d': executionWindow() }, + recentAttempts: [], + backfill: { state: 'not-started', imported: 0 }, + }; + + expect(mapFamiliarActivity(analytics, '14d')).toBeUndefined(); + }); + + it('carries a null completion rate through rather than coercing it to zero', () => { + const analytics: CaveFamiliarAnalytics = { + generatedAt: '2026-08-25T00:00:00.000Z', + windows: { + '7d': executionWindow({ attempts: 0, completed: 0, failed: 0, successRate: null }), + }, + recentAttempts: [], + backfill: { state: 'complete', imported: 0 }, + }; + + expect(mapFamiliarActivity(analytics, '7d')?.completion).toBeNull(); + }); +}); + +describe('mapConversationSummary', () => { + it('derives failed from status and treats a nonzero exit code as failed even with no status', () => { + const base: CaveConversation = { + id: 'c1', + familiarId: 'astra', + updatedAt: '2026-08-25T00:00:00.000Z', + }; + + expect(mapConversationSummary(base).failed).toBe(false); + expect(mapConversationSummary({ ...base, status: 'failed' }).failed).toBe(true); + expect(mapConversationSummary({ ...base, status: 'error' }).failed).toBe(true); + expect(mapConversationSummary({ ...base, exitCode: 1 }).failed).toBe(true); + expect(mapConversationSummary({ ...base, exitCode: 0 }).failed).toBe(false); + expect(mapConversationSummary({ ...base, exitCode: null }).failed).toBe(false); + }); + + it('maps pending straight through and omits title when Cave omits it', () => { + const conversation: CaveConversation = { + id: 'c1', + familiarId: 'astra', + title: 'Q3 pricing evidence map', + updatedAt: '2026-08-25T00:00:00.000Z', + pending: true, + }; + + expect(mapConversationSummary(conversation)).toEqual({ + id: 'c1', + familiarId: 'astra', + title: 'Q3 pricing evidence map', + updatedAt: '2026-08-25T00:00:00.000Z', + failed: false, + pending: true, + }); + expect( + mapConversationSummary({ + id: 'c1', + familiarId: 'astra', + updatedAt: '2026-08-25T00:00:00.000Z', + }).title, + ).toBeUndefined(); + }); +}); + +describe('mapThreadMessage', () => { + it('maps every field, defaulting isError and cancelled to false', () => { + const message: CaveConversationMessage = { + id: 'm1', + conversationId: 'c1', + parentId: null, + role: 'assistant', + text: 'On it.', + createdAt: '2026-08-25T00:00:00.000Z', + attachmentCount: 0, + toolCount: 3, + }; + + expect(mapThreadMessage(message)).toEqual({ + id: 'm1', + conversationId: 'c1', + parentId: null, + role: 'assistant', + text: 'On it.', + createdAt: '2026-08-25T00:00:00.000Z', + attachmentCount: 0, + toolCount: 3, + isError: false, + cancelled: false, + }); + }); + + it('carries isError and cancelled through when Cave sets them', () => { + const message: CaveConversationMessage = { + id: 'm2', + conversationId: 'c1', + parentId: 'm1', + role: 'assistant', + text: '', + createdAt: '2026-08-25T00:00:00.000Z', + attachmentCount: 0, + toolCount: 0, + isError: true, + cancelled: true, + }; + + expect(mapThreadMessage(message)).toMatchObject({ + isError: true, + cancelled: true, + parentId: 'm1', + }); + }); +}); diff --git a/src/familiars/mappers.ts b/src/familiars/mappers.ts new file mode 100644 index 00000000..96a5e5a9 --- /dev/null +++ b/src/familiars/mappers.ts @@ -0,0 +1,189 @@ +import type { + CaveExecutionAttempt, + CaveExecutionDay, + CaveExecutionSlice, + CaveFamiliarAnalytics, + CaveFamiliarContract, + CaveFamiliarIdentity, + CaveFamiliarWard, +} from '@opencoven/cave-client'; +import type { + CaveCanonicalFamiliar, + CaveConversation, + CaveConversationMessage, +} from '@opencoven/cave-client/managed'; + +import type { + ActivityAttempt, + ActivityDay, + ActivityToolUsage, + ActivityWindow, + ConversationSummary, + FamiliarActivity, + FamiliarDetail, + FamiliarIdentity, + FamiliarStatus, + FamiliarSummary, + FamiliarWard, + ThreadMessage, +} from './source'; + +/** + * SDK wire types -> the Familiars surface's view types. + * + * This is the only module that knows the shape of a `CaveCanonicalFamiliar`, + * a `CaveFamiliarContract`, or a `CaveExecutionWindow`. Both + * `CaveFamiliarsSource` and its tests depend on this file rather than + * reaching into `@opencoven/cave-client` themselves, so a wire change is a + * type error here and nowhere else. + */ + +function normalizeFamiliarStatus(status: string | undefined): FamiliarStatus { + // Cave's `status` is a bare string today (no reviewed literal union). An + // unrecognized or missing value defaults to the least-permissive reading + // rather than a guess at "available". + return status === 'available' || status === 'working' ? status : 'offline'; +} + +export function mapFamiliarSummary(familiar: CaveCanonicalFamiliar): FamiliarSummary { + return { + id: familiar.id, + name: familiar.displayName, + role: familiar.role, + ...(familiar.description === undefined ? {} : { description: familiar.description }), + ...(familiar.pronouns === undefined ? {} : { pronouns: familiar.pronouns }), + status: normalizeFamiliarStatus(familiar.status), + }; +} + +function mapFamiliarIdentity(identity: CaveFamiliarIdentity): FamiliarIdentity { + return { + ...(identity.name === undefined ? {} : { name: identity.name }), + ...(identity.creature === undefined ? {} : { creature: identity.creature }), + ...(identity.person === undefined ? {} : { person: identity.person }), + }; +} + +function mapFamiliarWard(ward: CaveFamiliarWard): FamiliarWard { + return { + ...(ward.version === undefined ? {} : { version: ward.version }), + protectedFiles: ward.protectedFiles, + invariants: ward.invariants, + editablePaths: ward.editablePaths, + approvalTiers: { + auto: ward.approvalTiers.auto, + humanReview: ward.approvalTiers.humanReview, + }, + }; +} + +export function mapFamiliarDetail(contract: CaveFamiliarContract): FamiliarDetail { + return { + id: contract.id, + ...(contract.workspace === undefined ? {} : { workspace: contract.workspace }), + present: contract.present, + ...(contract.identity === undefined + ? {} + : { identity: mapFamiliarIdentity(contract.identity) }), + ...(contract.ward === undefined ? {} : { ward: mapFamiliarWard(contract.ward) }), + report: { + specVersion: contract.report.specVersion, + pass: contract.report.pass, + properties: contract.report.properties, + violations: contract.report.violations, + warnings: contract.report.warnings, + }, + }; +} + +function mapActivityToolUsage(slice: CaveExecutionSlice): ActivityToolUsage { + // Cave's Stage 1 analytics contract does not break usage down by literal + // tool name; a harness slice is the closest available concept. + return { + name: slice.label ?? slice.key, + calls: slice.toolCalls, + failed: slice.toolFailures, + }; +} + +function mapActivityDay(day: CaveExecutionDay): ActivityDay { + return { date: day.date, completed: day.completed, failed: day.failed, cancelled: day.cancelled }; +} + +function mapActivityAttempt(attempt: CaveExecutionAttempt): ActivityAttempt { + return { + id: attempt.id, + occurredAt: attempt.occurredAt, + harnessId: attempt.harnessId, + status: attempt.status, + ...(attempt.durationMs === undefined ? {} : { durationMs: attempt.durationMs }), + toolCalls: attempt.toolCalls, + toolFailures: attempt.toolFailures, + }; +} + +/** + * Maps one requested window out of `analytics.windows`. Returns `undefined` + * when Cave did not serve that window (an instance with a shorter history, + * or a window key the analytics response simply omits). + */ +export function mapFamiliarActivity( + analytics: CaveFamiliarAnalytics, + window: ActivityWindow, +): FamiliarActivity | undefined { + const source = analytics.windows[window]; + if (source === undefined) { + return undefined; + } + + return { + window, + generatedAt: analytics.generatedAt, + attempts: source.attempts, + completed: source.completed, + failed: source.failed, + cancelled: source.cancelled, + completion: source.successRate, + ...(source.medianDurationMs === undefined ? {} : { medianDurationMs: source.medianDurationMs }), + ...(source.p95DurationMs === undefined ? {} : { p95DurationMs: source.p95DurationMs }), + calls: source.toolCalls, + callFailures: source.toolFailures, + tools: source.harnesses.map(mapActivityToolUsage), + ...(source.days === undefined ? {} : { days: source.days.map(mapActivityDay) }), + recent: analytics.recentAttempts.map(mapActivityAttempt), + backfillState: analytics.backfill.state, + }; +} + +function isConversationFailed(conversation: CaveConversation): boolean { + if (conversation.status === 'failed' || conversation.status === 'error') { + return true; + } + return typeof conversation.exitCode === 'number' && conversation.exitCode !== 0; +} + +export function mapConversationSummary(conversation: CaveConversation): ConversationSummary { + return { + id: conversation.id, + familiarId: conversation.familiarId, + ...(conversation.title === undefined ? {} : { title: conversation.title }), + updatedAt: conversation.updatedAt, + failed: isConversationFailed(conversation), + pending: conversation.pending === true, + }; +} + +export function mapThreadMessage(message: CaveConversationMessage): ThreadMessage { + return { + id: message.id, + conversationId: message.conversationId, + parentId: message.parentId, + role: message.role, + text: message.text, + createdAt: message.createdAt, + attachmentCount: message.attachmentCount, + toolCount: message.toolCount, + isError: message.isError === true, + cancelled: message.cancelled === true, + }; +} diff --git a/src/familiars/mock-source.test.ts b/src/familiars/mock-source.test.ts new file mode 100644 index 00000000..8e670de8 --- /dev/null +++ b/src/familiars/mock-source.test.ts @@ -0,0 +1,136 @@ +import { describe, expect, it } from 'vitest'; + +import { FAM_CONVERSATIONS, FAM_MESSAGES } from '../demo/familiars-data'; +import { MOCK_FAMILIARS } from '../demo/mock-familiars'; +import { createMockFamiliarsSource } from './mock-source'; +import type { QueryResult } from './source'; + +function unwrap(result: QueryResult): T { + if (result.status !== 'ok') { + throw new Error(`Expected an ok result, got ${result.status}.`); + } + return result.data; +} + +describe('createMockFamiliarsSource', () => { + it('lists every mock familiar as a summary', async () => { + const source = createMockFamiliarsSource(); + const page = unwrap(await source.familiars()); + + expect(page.data.map((familiar) => familiar.id)).toEqual( + MOCK_FAMILIARS.map((familiar) => familiar.id), + ); + expect(page.data[0]).toEqual({ + id: 'astra', + name: 'Astra', + role: 'Research and synthesis', + description: MOCK_FAMILIARS[0]?.description, + pronouns: 'she/her', + status: 'available', + }); + }); + + it('resolves a known familiar detail with identity, ward, and a passing report', async () => { + const source = createMockFamiliarsSource(); + const detail = unwrap(await source.familiar('astra')); + + expect(detail.id).toBe('astra'); + expect(detail.identity).toEqual({ + name: 'Astra', + creature: 'Cartographer', + person: 'Val Alexander', + }); + expect(detail.ward?.approvalTiers.humanReview).toContain('publish a finding'); + expect(detail.report.pass).toBe(true); + expect(detail.present).toEqual({ soul: true, identity: true, ward: true, memory: true }); + }); + + it('reports memory absence as a failing contract property without a violation', async () => { + const source = createMockFamiliarsSource(); + const detail = unwrap(await source.familiar('echo')); + + expect(detail.present.memory).toBe(false); + expect(detail.report.pass).toBe(false); + expect( + detail.report.violations.some((violation) => violation.field === 'Persistent Memory'), + ).toBe(true); + }); + + it('returns not_found for an unknown familiar id', async () => { + const source = createMockFamiliarsSource(); + expect(await source.familiar('nonexistent')).toEqual({ status: 'error', code: 'not_found' }); + }); + + it('derives a numeric activity view from the presentation-shaped mock data', async () => { + const source = createMockFamiliarsSource({ now: () => new Date('2026-08-25T00:00:00.000Z') }); + const activity = unwrap(await source.activity('astra')); + + expect(activity.window).toBe('7d'); + expect(activity.completion).toBe(1); + expect(activity.completed).toBe(13); // 12 completed + 1 held-for-you + expect(activity.failed).toBe(0); + expect(activity.calls).toBe(148); + expect(activity.medianDurationMs).toBe(96_000); // "1m 36s" + expect(activity.days).toHaveLength(7); + expect(activity.days?.[6]?.date).toBe('2026-08-25'); + expect(activity.recent.length).toBeGreaterThan(0); + expect(activity.recent[0]?.toolCalls).toBe(14); + }); + + it('returns not_found activity for a familiar id with no activity entry', async () => { + const source = createMockFamiliarsSource(); + expect(await source.activity('nonexistent')).toEqual({ status: 'error', code: 'not_found' }); + }); + + it('lists conversations with held mapped to pending and failed carried through', async () => { + const source = createMockFamiliarsSource(); + const page = unwrap(await source.conversations()); + + expect(page.data).toHaveLength(FAM_CONVERSATIONS.length); + const pricing = page.data.find((conversation) => conversation.id === 'pricing'); + expect(pricing?.pending).toBe(true); + expect(pricing?.failed).toBe(false); + const flaky = page.data.find((conversation) => conversation.id === 'flaky'); + expect(flaky?.failed).toBe(true); + expect(flaky?.pending).toBe(false); + }); + + it('drops reasoning, hold, image, and divider messages, keeping only user and familiar text', async () => { + const source = createMockFamiliarsSource(); + const page = unwrap(await source.messages('pricing')); + const sourceKinds = new Set(FAM_MESSAGES.pricing?.map((message) => message.kind)); + + expect(sourceKinds.has('reasoning')).toBe(true); // the fixture actually exercises the drop + expect( + page.data.every((message) => message.role === 'user' || message.role === 'assistant'), + ).toBe(true); + expect(page.data.length).toBeLessThan(FAM_MESSAGES.pricing?.length ?? 0); + }); + + it('chains parentId across the filtered message list, not the original index', async () => { + const source = createMockFamiliarsSource(); + const page = unwrap(await source.messages('pricing')); + + expect(page.data[0]?.parentId).toBeNull(); + for (let index = 1; index < page.data.length; index += 1) { + expect(page.data[index]?.parentId).toBe(page.data[index - 1]?.id); + } + }); + + it('returns not_found for an unknown conversation id', async () => { + const source = createMockFamiliarsSource(); + expect(await source.messages('nonexistent')).toEqual({ status: 'error', code: 'not_found' }); + }); + + it('advertises the Stage 1 capability set by default and honors an override', async () => { + expect([...createMockFamiliarsSource().capabilities()].sort()).toEqual([ + 'conversation-messages', + 'conversations', + 'familiar-analytics', + 'familiar-contract', + 'familiars', + ]); + const empty = createMockFamiliarsSource({ capabilities: new Set() }); + expect(empty.capabilities().size).toBe(0); + }); +}); diff --git a/src/familiars/mock-source.ts b/src/familiars/mock-source.ts new file mode 100644 index 00000000..9820951f --- /dev/null +++ b/src/familiars/mock-source.ts @@ -0,0 +1,352 @@ +import type { Page, PageCursor } from '@opencoven/sdk-core/browser'; + +import { + FAM_ACTIVITY, + FAM_CONVERSATIONS, + FAM_MESSAGES, + type FamActivity, + type FamConversation, + type FamMessage, + type FamRun, + runRow, +} from '../demo/familiars-data'; +import { contractReport, MOCK_FAMILIARS, type MockFamiliar } from '../demo/mock-familiars'; +import type { + ActivityAttempt, + ActivityDay, + ActivityWindow, + Capability, + ConversationSummary, + FamiliarActivity, + FamiliarDetail, + FamiliarPresence, + FamiliarSummary, + FamiliarsSource, + QueryResult, + ThreadMessage, +} from './source'; + +/** + * `FamiliarsSource` over today's demo fixtures (`src/demo/familiars-data.ts`, + * `src/demo/mock-familiars.ts`). + * + * This is the only place mock content lives, per the integration design. + * Used by the demo build, tests, and the design board states. It always + * resolves synchronously and never returns anything but `status: 'ok'`. + * + * The demo's `FamActivity` is presentation-shaped (`completion: '100%'`, + * `median: '1m 36s'`) because it was authored to match the design mockup + * verbatim. Reconstructing the numeric `FamiliarActivity` view type from it + * is necessarily best-effort -- fields with no honest numeric source + * (per-attempt harness ids, real calendar dates) are synthesized rather than + * invented as if real. `CaveFamiliarsSource` (`./cave-source.ts`) gets these + * fields directly from Cave; only the mock path parses strings. + */ + +const STAGE_1_CAPABILITIES: ReadonlySet = new Set([ + 'familiars', + 'conversations', + 'conversation-messages', + 'familiar-contract', + 'familiar-analytics', +]); + +export type MockFamiliarsSourceOptions = Readonly<{ + now?: () => Date; + capabilities?: ReadonlySet; +}>; + +function pageOf(data: readonly T[]): Page { + const cursor: PageCursor = { hasMore: false }; + return { data, cursor }; +} + +function ok(data: T): QueryResult { + return { status: 'ok', data }; +} + +function mockFamiliarSummary(familiar: MockFamiliar): FamiliarSummary { + return { + id: familiar.id, + name: familiar.name, + role: familiar.role, + description: familiar.description, + pronouns: familiar.pronouns, + status: familiar.status, + }; +} + +function mockFamiliarPresence(familiar: MockFamiliar): FamiliarPresence { + return { + soul: familiar.soul.purpose.trim().length > 0, + identity: familiar.name.trim().length > 0 && familiar.creature.trim().length > 0, + ward: true, + memory: familiar.memory !== null, + }; +} + +function mockFamiliarDetail(familiar: MockFamiliar): FamiliarDetail { + const checks = contractReport(familiar); + + return { + id: familiar.id, + present: mockFamiliarPresence(familiar), + identity: { name: familiar.name, creature: familiar.creature, person: familiar.person }, + ward: { + version: familiar.ward.version, + protectedFiles: familiar.ward.protectedFiles, + invariants: familiar.ward.invariants, + editablePaths: familiar.ward.editablePaths, + approvalTiers: { + auto: familiar.ward.approvalTiers.auto, + humanReview: familiar.ward.approvalTiers.humanReview, + }, + }, + report: { + specVersion: '0.1.0', + pass: checks.every((check) => check.pass), + properties: checks.map((check) => ({ property: check.property, pass: check.pass })), + violations: checks + .filter((check) => !check.pass) + .map((check) => ({ file: check.file, field: check.property, message: check.note })), + warnings: [], + }, + }; +} + +function parsePercent(value: string): number | null { + const match = /^(\d+(?:\.\d+)?)%$/.exec(value.trim()); + return match?.[1] === undefined ? null : Number(match[1]) / 100; +} + +function parseIntLoose(value: string): number { + const match = /\d+/.exec(value); + return match === null ? 0 : Number(match[0]); +} + +/** Parses a "1h 2m 3s" / "4m 12s" / "58s" duration into milliseconds. */ +function parseDurationMs(value: string | undefined): number | undefined { + if (value === undefined) { + return undefined; + } + const match = /^(?:(\d+)h)?\s*(?:(\d+)m)?\s*(?:(\d+)s)?$/.exec(value.trim()); + if ( + match === null || + (match[1] === undefined && match[2] === undefined && match[3] === undefined) + ) { + return undefined; + } + const hours = Number(match[1] ?? 0); + const minutes = Number(match[2] ?? 0); + const seconds = Number(match[3] ?? 0); + return (hours * 3600 + minutes * 60 + seconds) * 1000; +} + +function findSpread(activity: FamActivity, label: string): string | undefined { + return activity.spread.find(([entryLabel]) => entryLabel === label)?.[1]; +} + +function outcomeCount(activity: FamActivity, label: string): number { + return activity.outcomes.find(([entryLabel]) => entryLabel === label)?.[1] ?? 0; +} + +function slugify(text: string): string { + return text + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/(^-+|-+$)/g, ''); +} + +function mockDayDate(now: Date, index: number, total: number): string { + const offset = total - 1 - index; + const date = new Date(now.getTime()); + date.setUTCDate(date.getUTCDate() - offset); + return date.toISOString().slice(0, 10); +} + +function mockActivityDay( + [completed, failed]: readonly [number, number], + index: number, + now: Date, + total: number, +): ActivityDay { + return { date: mockDayDate(now, index, total), completed, failed, cancelled: 0 }; +} + +function mockActivityAttempt(run: FamRun, index: number, now: Date): ActivityAttempt { + const row = runRow(run); + const durationMs = parseDurationMs(row.dur); + + return { + id: `${slugify(run.title)}-${index}`, + occurredAt: new Date(now.getTime() - index * 60 * 60 * 1000).toISOString(), + harnessId: 'demo-harness', + status: run.status === 'failed' ? 'failed' : 'completed', + ...(durationMs === undefined ? {} : { durationMs }), + toolCalls: parseIntLoose(row.calls), + toolFailures: run.status === 'failed' ? 1 : 0, + }; +} + +function mockFamiliarActivity( + activity: FamActivity, + window: ActivityWindow, + now: Date, +): FamiliarActivity { + const completed = outcomeCount(activity, 'completed') + outcomeCount(activity, 'held for you'); + const failed = outcomeCount(activity, 'failed'); + const medianDurationMs = parseDurationMs(findSpread(activity, 'p50')); + const p95DurationMs = parseDurationMs(findSpread(activity, 'p90')); + + return { + window, + generatedAt: now.toISOString(), + attempts: completed + failed, + completed, + failed, + cancelled: 0, + completion: parsePercent(activity.completion), + ...(medianDurationMs === undefined ? {} : { medianDurationMs }), + ...(p95DurationMs === undefined ? {} : { p95DurationMs }), + calls: parseIntLoose(activity.calls), + callFailures: activity.tools.reduce((sum, tool) => sum + (tool.failed ?? 0), 0), + tools: activity.tools.map((tool) => ({ + name: tool.name, + calls: tool.calls, + failed: tool.failed ?? 0, + })), + days: activity.days.map((day, index) => mockActivityDay(day, index, now, activity.days.length)), + recent: activity.recent.map((run, index) => mockActivityAttempt(run, index, now)), + backfillState: 'complete', + }; +} + +function mockConversationSummary( + conversation: FamConversation, + index: number, + now: Date, +): ConversationSummary { + return { + id: conversation.id, + familiarId: conversation.familiarId, + title: conversation.title, + // The demo carries a display string ("10:52 PM", "Yesterday"), not a + // timestamp; index-ordered synthesis keeps the list's own order stable. + updatedAt: new Date(now.getTime() - index * 60_000).toISOString(), + failed: conversation.failed === true, + pending: conversation.held === true, + }; +} + +/** + * One `FamMessage` -> zero or one `ThreadMessage`. + * + * `divider`, `reasoning`, `image`, `hold`, and `failed` messages have no + * Stage 1 equivalent (Cave does not serve the rich-content AST, attachments, + * or attention items yet) and are dropped rather than faked. + */ +function mockThreadMessage( + conversationId: string, + message: FamMessage, + id: string, + parentId: string | null, + createdAt: string, +): ThreadMessage | undefined { + if (message.kind === 'user') { + return { + id, + conversationId, + parentId, + role: 'user', + text: message.text, + createdAt, + attachmentCount: message.attachments?.length ?? 0, + toolCount: 0, + isError: false, + cancelled: false, + }; + } + if (message.kind === 'familiar') { + return { + id, + conversationId, + parentId, + role: 'assistant', + text: message.text, + createdAt, + attachmentCount: 0, + toolCount: 0, + isError: false, + cancelled: false, + }; + } + return undefined; +} + +function mockThreadMessages( + conversationId: string, + messages: readonly FamMessage[], + now: Date, +): ThreadMessage[] { + const result: ThreadMessage[] = []; + let parentId: string | null = null; + + messages.forEach((message, index) => { + const id = `${conversationId}-${index}`; + const createdAt = new Date(now.getTime() - (messages.length - index) * 60_000).toISOString(); + const mapped = mockThreadMessage(conversationId, message, id, parentId, createdAt); + if (mapped !== undefined) { + result.push(mapped); + parentId = mapped.id; + } + }); + + return result; +} + +export function createMockFamiliarsSource( + options: MockFamiliarsSourceOptions = {}, +): FamiliarsSource { + const now = options.now ?? (() => new Date()); + const capabilities = options.capabilities ?? STAGE_1_CAPABILITIES; + + return Object.freeze({ + async familiars(): Promise>> { + return ok(pageOf(MOCK_FAMILIARS.map(mockFamiliarSummary))); + }, + async familiar(id: string): Promise> { + const familiar = MOCK_FAMILIARS.find((candidate) => candidate.id === id); + return familiar === undefined + ? { status: 'error', code: 'not_found' } + : ok(mockFamiliarDetail(familiar)); + }, + async activity( + id: string, + window: ActivityWindow = '7d', + ): Promise> { + const activity = FAM_ACTIVITY[id]; + return activity === undefined + ? { status: 'error', code: 'not_found' } + : ok(mockFamiliarActivity(activity, window, now())); + }, + async conversations(): Promise>> { + const current = now(); + return ok( + pageOf( + FAM_CONVERSATIONS.map((conversation, index) => + mockConversationSummary(conversation, index, current), + ), + ), + ); + }, + async messages(conversationId: string): Promise>> { + const messages = FAM_MESSAGES[conversationId]; + return messages === undefined + ? { status: 'error', code: 'not_found' } + : ok(pageOf(mockThreadMessages(conversationId, messages, now()))); + }, + capabilities(): ReadonlySet { + return capabilities; + }, + }); +} diff --git a/src/familiars/source.ts b/src/familiars/source.ts new file mode 100644 index 00000000..4af33ec2 --- /dev/null +++ b/src/familiars/source.ts @@ -0,0 +1,188 @@ +import type { Page, PageCursor } from '@opencoven/sdk-core/browser'; + +import type { QueryResult } from '../lib/sdk/query-adapter'; + +export type { Page, PageCursor, QueryResult }; + +/** + * The Familiars surface's data-source seam. + * + * `FamiliarsShell` reads through this interface rather than module + * constants. Two implementations exist: `MockFamiliarsSource` + * (`./mock-source.ts`), wrapping today's `src/demo/familiars-data.ts` for + * the demo build and tests, and `CaveFamiliarsSource` (`./cave-source.ts`), + * built on `QueryAdapter` and the managed `CaveClient`. The mapping from SDK + * wire types to these view types lives in one place, `./mappers.ts`, so a + * wire change is a type error there and nowhere else. + * + * Scoped to Stage 1 (reads only) of + * `docs/superpowers/plans/2026-09-02-familiars-integration.md`. Send, + * attention, and mutation members are added by later stages, once Cave + * serves them. + */ + +/** Mirrors `CaveCanonicalFamiliar.status`, defaulted when Cave omits it. */ +export type FamiliarStatus = 'available' | 'working' | 'offline'; + +export type FamiliarSummary = Readonly<{ + id: string; + name: string; + role: string; + description?: string; + pronouns?: string; + status: FamiliarStatus; +}>; + +/** Which of the four contract files Cave found present. */ +export type FamiliarPresence = Readonly<{ + soul: boolean; + identity: boolean; + ward: boolean; + memory: boolean; +}>; + +/** IDENTITY.md-derived fields. Absent when Cave withholds or lacks them. */ +export type FamiliarIdentity = Readonly<{ + name?: string; + creature?: string; + person?: string; +}>; + +/** The ward parsed from `ward.toml`. Absent when Cave withholds or lacks it. */ +export type FamiliarWard = Readonly<{ + version?: string; + protectedFiles: readonly string[]; + invariants: readonly string[]; + editablePaths: readonly string[]; + approvalTiers: Readonly<{ + auto: readonly string[]; + humanReview: readonly string[]; + }>; +}>; + +export type ContractPropertyCoverage = Readonly<{ property: string; pass: boolean }>; +export type ContractViolation = Readonly<{ file: string; field: string; message: string }>; + +/** `pass` is true when there are zero hard violations; warnings never fail it. */ +export type ContractReport = Readonly<{ + specVersion: string; + pass: boolean; + properties: readonly ContractPropertyCoverage[]; + violations: readonly ContractViolation[]; + warnings: readonly ContractViolation[]; +}>; + +export type FamiliarDetail = Readonly<{ + id: string; + workspace?: string; + present: FamiliarPresence; + identity?: FamiliarIdentity; + ward?: FamiliarWard; + report: ContractReport; +}>; + +/** The windows Cave aggregates execution analytics over. */ +export type ActivityWindow = '7d' | '14d' | '8w' | 'all'; + +export type ExecutionOutcome = 'completed' | 'failed' | 'cancelled'; + +export type ActivityAttempt = Readonly<{ + id: string; + occurredAt: string; + harnessId: string; + status: ExecutionOutcome; + durationMs?: number; + toolCalls: number; + toolFailures: number; +}>; + +/** One UTC calendar day of a window's runs-per-day series. */ +export type ActivityDay = Readonly<{ + date: string; + completed: number; + failed: number; + cancelled: number; +}>; + +/** + * A tool- or harness-level usage slice. + * + * Cave's Stage 1 analytics contract does not break usage down by literal + * tool name; `mappers.ts` maps this from the window's `harnesses` slices, + * which is the closest Cave concept to the design's per-tool call counts. + */ +export type ActivityToolUsage = Readonly<{ name: string; calls: number; failed: number }>; + +/** Whether the history behind these numbers is complete. */ +export type ActivityBackfillState = 'complete' | 'partial' | 'not-started'; + +export type FamiliarActivity = Readonly<{ + window: ActivityWindow; + generatedAt: string; + attempts: number; + completed: number; + failed: number; + cancelled: number; + /** Null when there were no attempts: a rate over nothing is not zero. */ + completion: number | null; + medianDurationMs?: number; + p95DurationMs?: number; + calls: number; + callFailures: number; + tools: readonly ActivityToolUsage[]; + /** Present only on the day-shaped windows (`7d`, `14d`). */ + days?: readonly ActivityDay[]; + recent: readonly ActivityAttempt[]; + backfillState: ActivityBackfillState; +}>; + +export type ConversationSummary = Readonly<{ + id: string; + familiarId: string; + title?: string; + updatedAt: string; + failed: boolean; + pending: boolean; +}>; + +export type ThreadMessage = Readonly<{ + id: string; + conversationId: string; + parentId: string | null; + role: string; + text: string; + createdAt: string; + attachmentCount: number; + toolCount: number; + isError: boolean; + cancelled: boolean; +}>; + +/** + * Capability names a `FamiliarsSource` may advertise, gating which controls + * the shell renders as enabled. See `./capabilities.ts`. + */ +export type Capability = + | 'familiars' + | 'conversations' + | 'conversation-messages' + | 'familiar-contract' + | 'familiar-analytics' + | 'conversations-write' + | 'runs' + | 'conversation-participants' + | 'attention' + | 'rich-content' + | 'attachments' + | 'familiars-write' + | 'screen'; + +/** Stage 1 (reads) of the Familiars surface data-source seam. */ +export type FamiliarsSource = Readonly<{ + familiars(): Promise>>; + familiar(id: string): Promise>; + activity(id: string, window?: ActivityWindow): Promise>; + conversations(): Promise>>; + messages(conversationId: string): Promise>>; + capabilities(): ReadonlySet; +}>; From d4e10b101a00d2baf0d639535cd0c6f7ab09e7fb Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Thu, 3 Sep 2026 21:53:54 -0500 Subject: [PATCH 3/5] feat(familiars): a Stage 1 reads shell, separate from the design preview Continues Task 5 of the familiars integration plan, scoped down after reading the shipped demo shell closely: `src/demo/familiars-shell.tsx` renders reasoning cards, held actions, image cards, @-mention guest replies, summoning, and a screen-watch overlay -- Stage 2-4 concepts with no Cave route yet -- plus fields (emoji, soul, memory) Cave's Stage 1 contract never serves. Reworking that component against `FamiliarsSource` today would mean either inventing data Cave doesn't send or silently downgrading the shipped, reviewed demo. Neither is honest, so this is a new, smaller `FamiliarsReadsShell` instead: sidebar, thread, and inspector driven entirely by a `FamiliarsSource`, rendering only Stage 1 reads (familiars, conversations, per-conversation text messages, ward/contract, analytics), with every other control -- send, mentions, held actions, reasoning, images, summon, screen -- showing a one-line "not available yet" notice from `availabilityFor` instead of a working mock. `src/demo/familiars-shell.tsx` is untouched; the existing rich `?demo=chat` experience is unaffected. Reachable at `?demo=familiars-reads` against `MockFamiliarsSource`, added to the route-preservation e2e smoke test. 7 new component tests cover the happy path, conversation switching, tab gating (both advertised and not), and a source that fails every read. `CaveFamiliarsSource` (previous commit) plugs into `FamiliarsReadsShell` today, mechanically -- switching `main.tsx` or `app.tsx` to it, and `ChatShell` retirement, still wait on the Task 3 lock re-pin so the first real render is against verified reads rather than an unverified one. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_016ueGDYGKGaMzNq5mTE6ogG --- e2e/app.smoke.spec.ts | 9 + src/familiars/reads-shell.css | 213 +++++++++++++++ src/familiars/reads-shell.test.tsx | 118 ++++++++ src/familiars/reads-shell.tsx | 415 +++++++++++++++++++++++++++++ src/main.tsx | 19 +- 5 files changed, 771 insertions(+), 3 deletions(-) create mode 100644 src/familiars/reads-shell.css create mode 100644 src/familiars/reads-shell.test.tsx create mode 100644 src/familiars/reads-shell.tsx diff --git a/e2e/app.smoke.spec.ts b/e2e/app.smoke.spec.ts index da248558..c7c657a5 100644 --- a/e2e/app.smoke.spec.ts +++ b/e2e/app.smoke.spec.ts @@ -21,6 +21,15 @@ test('preserves the local demo routes alongside the default app', async ({ page await expect(page).toHaveURL('http://127.0.0.1:4174/?demo=minimal'); await expect(page.getByText('Chats', { exact: true })).toBeVisible(); await expect(page.getByText('Familiars', { exact: true })).toBeVisible(); + + await page.goto('/?demo=familiars-reads'); + + await expect(page).toHaveURL('http://127.0.0.1:4174/?demo=familiars-reads'); + await expect(page.getByRole('complementary', { name: 'Conversations sidebar' })).toBeVisible(); + await expect(page.getByRole('button', { name: /Q3 pricing evidence map/ })).toBeVisible(); + // Stage 1 has no send capability yet; the composer notice says so rather + // than offering a working-looking control. + await expect(page.getByText(/^Sending: Not available yet/)).toBeVisible(); }); test('keeps the chat sidebar compact and fully interactive', async ({ page }) => { diff --git a/src/familiars/reads-shell.css b/src/familiars/reads-shell.css new file mode 100644 index 00000000..cbd2bdd5 --- /dev/null +++ b/src/familiars/reads-shell.css @@ -0,0 +1,213 @@ +/* + * Minimal styling for `FamiliarsReadsShell` (`.frs-*`). + * + * This is a functional Stage 1 preview, not a design pass: three columns, + * readable defaults, and the app's own tokens where they already exist. + * It intentionally does not borrow `.fr-*` from the demo shell -- the two + * surfaces render different things and must not couple their CSS. + */ + +.frs-shell { + display: grid; + grid-template-columns: 260px minmax(0, 1fr) 300px; + height: 100%; + min-height: 0; + color: var(--text-primary, #e6e6e6); + background: var(--bg-base, #0b0b0d); + font-family: var(--font-inter, -apple-system, sans-serif); +} + +.frs-sidebar, +.frs-inspector { + display: flex; + flex-direction: column; + gap: 16px; + padding: 16px; + overflow-y: auto; + border-inline: 1px solid var(--border-subtle, #232326); +} + +.frs-heading { + margin: 0 0 8px; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.02em; + text-transform: uppercase; + color: var(--text-secondary, #9a9aa2); +} + +.frs-familiars-list, +.frs-conv-list, +.frs-messages { + display: flex; + flex-direction: column; + gap: 4px; + margin: 0; + padding: 0; + list-style: none; +} + +.frs-familiar-row { + display: flex; + justify-content: space-between; + padding: 6px 8px; + border-radius: var(--radius-control, 8px); +} + +.frs-conv { + display: flex; + flex-direction: column; + gap: 2px; + width: 100%; + padding: 8px; + text-align: left; + color: inherit; + background: none; + border: none; + border-radius: var(--radius-control, 8px); + cursor: pointer; +} + +.frs-conv:hover { + background: var(--bg-raised, #17171a); +} + +.frs-conv[aria-current="true"] { + background: var(--bg-raised, #17171a); + outline: 1px solid var(--accent-presence, #a79bf5); +} + +.frs-conv-title { + font-size: 13px; + font-weight: 500; +} + +.frs-conv-flag { + font-size: 11px; + color: var(--danger-text, #f28b82); +} + +.frs-conv-time { + font-size: 11px; + color: var(--text-secondary, #9a9aa2); +} + +.frs-thread { + display: flex; + flex-direction: column; + min-width: 0; +} + +.frs-thread-header { + display: flex; + align-items: center; + gap: 8px; + padding: 12px 16px; + border-bottom: 1px solid var(--border-subtle, #232326); +} + +.frs-thread-title { + font-weight: 600; +} + +.frs-thread-familiar { + color: var(--text-secondary, #9a9aa2); +} + +.frs-transcript { + flex: 1; + min-height: 0; + padding: 16px; + overflow-y: auto; +} + +.frs-message { + max-width: 65%; + margin-bottom: 10px; + padding: 8px 12px; + border-radius: var(--radius-control, 8px); + background: var(--bg-raised, #17171a); +} + +.frs-message--user { + margin-inline-start: auto; + background: var(--accent-presence, #a79bf5); + color: #16131f; +} + +.frs-message-role { + display: block; + font-size: 10px; + text-transform: uppercase; + opacity: 0.7; +} + +.frs-message-text { + margin: 2px 0 0; + white-space: pre-wrap; +} + +.frs-status { + font-size: 13px; + color: var(--text-secondary, #9a9aa2); +} + +.frs-status--error { + color: var(--danger-text, #f28b82); +} + +.frs-muted { + color: var(--text-secondary, #9a9aa2); +} + +.frs-notices { + display: flex; + flex-direction: column; + gap: 4px; + padding: 8px 16px 16px; +} + +.frs-capability-notice { + margin: 0; + padding: 6px 10px; + font-size: 12px; + color: var(--text-secondary, #9a9aa2); + background: var(--bg-raised, #17171a); + border-radius: var(--radius-control, 8px); +} + +.frs-tabs { + display: flex; + gap: 4px; + padding: 4px; + background: var(--bg-raised, #17171a); + border-radius: var(--radius-control, 8px); +} + +.frs-tab { + flex: 1; + padding: 6px 8px; + font-size: 12px; + text-transform: capitalize; + color: var(--text-secondary, #9a9aa2); + background: none; + border: none; + border-radius: calc(var(--radius-control, 8px) - 2px); + cursor: pointer; +} + +.frs-tab[aria-selected="true"] { + color: var(--text-primary, #e6e6e6); + background: var(--bg-base, #0b0b0d); +} + +.frs-inspector-body { + display: flex; + flex-direction: column; + gap: 8px; +} + +.frs-inspector-body ul { + margin: 4px 0 0; + padding-left: 18px; +} diff --git a/src/familiars/reads-shell.test.tsx b/src/familiars/reads-shell.test.tsx new file mode 100644 index 00000000..3ec7d7f9 --- /dev/null +++ b/src/familiars/reads-shell.test.tsx @@ -0,0 +1,118 @@ +import { fireEvent, render, screen, waitFor, within } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; + +import { MOCK_FAMILIARS } from '../demo/mock-familiars'; +import { createMockFamiliarsSource } from './mock-source'; +import { FamiliarsReadsShell } from './reads-shell'; +import type { Capability, FamiliarsSource, QueryResult } from './source'; + +describe('FamiliarsReadsShell', () => { + it('lists familiars and conversations, then selects the first conversation', async () => { + render(); + + const sidebar = screen.getByRole('complementary', { name: 'Conversations sidebar' }); + await waitFor(() => { + expect(within(sidebar).getByText('Astra')).toBeInTheDocument(); + }); + for (const familiar of MOCK_FAMILIARS) { + expect(within(sidebar).getByText(familiar.name)).toBeInTheDocument(); + } + expect(screen.getByRole('button', { name: /Q3 pricing evidence map/ })).toHaveAttribute( + 'aria-current', + 'true', + ); + }); + + it('loads messages for the selected conversation, keeping only user and familiar text', async () => { + render(); + + await waitFor(() => { + expect( + screen.getByText( + 'Map the evidence for the Q3 pricing decision. Start from the two vendor decks in notes/pricing/.', + ), + ).toBeInTheDocument(); + }); + }); + + it('switches conversations on click and loads that thread', async () => { + render(); + + const flakyButton = await screen.findByRole('button', { name: /Flaky test in auth suite/ }); + fireEvent.click(flakyButton); + + await waitFor(() => { + expect(flakyButton).toHaveAttribute('aria-current', 'true'); + }); + }); + + it('shows the ward on the Access tab and analytics on the Activity tab', async () => { + render(); + await screen.findAllByText('Astra'); + + fireEvent.click(screen.getByRole('tab', { name: 'access' })); + await waitFor(() => { + expect(screen.getByText('publish a finding')).toBeInTheDocument(); + }); + + fireEvent.click(screen.getByRole('tab', { name: 'activity' })); + await waitFor(() => { + expect(screen.getByText(/runs completed/)).toBeInTheDocument(); + }); + }); + + it('renders a not-available notice for every Stage 2-4 control the mock source does not advertise', async () => { + render(); + await screen.findAllByText('Astra'); + + for (const label of ['Sending', '@-mentions', 'Held actions', 'Reasoning steps', 'Images']) { + expect(screen.getByText(new RegExp(`^${label}: Not available yet`))).toBeInTheDocument(); + } + for (const label of ['Summoning', 'Screen view']) { + expect(screen.getByText(new RegExp(`^${label}: Not available yet`))).toBeInTheDocument(); + } + }); + + it('renders the Access and Activity tabs disabled when the source does not advertise those capabilities', async () => { + const source = createMockFamiliarsSource({ capabilities: new Set() }); + render(); + await screen.findAllByText('Astra'); + + fireEvent.click(screen.getByRole('tab', { name: 'access' })); + expect(screen.getByText(/^Access: Not available yet/)).toBeInTheDocument(); + expect(screen.queryByText('publish a finding')).not.toBeInTheDocument(); + + fireEvent.click(screen.getByRole('tab', { name: 'activity' })); + expect(screen.getByText(/^Activity: Not available yet/)).toBeInTheDocument(); + expect(screen.queryByText(/runs completed/)).not.toBeInTheDocument(); + }); + + it('renders a diagnostic error state rather than crashing when a read fails', async () => { + const failingSource: FamiliarsSource = { + async familiars(): Promise> { + return { status: 'error', code: 'service_unavailable' }; + }, + async familiar() { + return { status: 'not_ready' }; + }, + async activity() { + return { status: 'not_ready' }; + }, + async conversations(): Promise> { + return { status: 'error', code: 'service_unavailable' }; + }, + async messages() { + return { status: 'not_ready' }; + }, + capabilities(): ReadonlySet { + return new Set(); + }, + }; + + render(); + + await waitFor(() => { + expect(screen.getAllByText(/Couldn’t load .* \(service_unavailable\)\./)).toHaveLength(2); + }); + }); +}); diff --git a/src/familiars/reads-shell.tsx b/src/familiars/reads-shell.tsx new file mode 100644 index 00000000..403c44c1 --- /dev/null +++ b/src/familiars/reads-shell.tsx @@ -0,0 +1,415 @@ +import { useEffect, useMemo, useState } from 'react'; + +import { availabilityFor, type ControlName } from './capabilities'; +import type { + Capability, + ConversationSummary, + FamiliarActivity, + FamiliarDetail, + FamiliarSummary, + FamiliarsSource, + Page, + QueryResult, + ThreadMessage, +} from './source'; + +/** + * The Familiars surface's Stage 1 shell: sidebar, thread, and inspector + * driven entirely by a `FamiliarsSource`, rendering only what Stage 1 + * (`docs/superpowers/plans/2026-09-02-familiars-integration.md`) can + * honestly serve. + * + * This is deliberately a *different*, smaller component from + * `src/demo/familiars-shell.tsx`. That shell previews the full design -- + * reasoning cards, held actions, image cards, `@`-mentions, summoning, the + * screen view -- none of which Cave serves yet. Rebuilding those against + * `FamiliarsSource` today would mean either inventing data Cave does not + * send or silently downgrading the shipped demo; neither is honest. Every + * control this shell cannot back with a real read renders a one-line + * "not available yet" notice instead, per `./capabilities.ts`, and nothing + * here is a working mock of a control it does not have data for. + */ + +export type FamiliarsReadsShellProps = Readonly<{ + source: FamiliarsSource; + initialConversationId?: string; +}>; + +type InspectorTab = 'overview' | 'access' | 'activity'; + +const INSPECTOR_TABS: readonly InspectorTab[] = ['overview', 'access', 'activity']; +const NOT_READY: QueryResult = { status: 'not_ready' }; + +function statusMessage(status: QueryResult['status']): string | null { + switch (status) { + case 'not_ready': + case 'loading': + return 'Loading…'; + case 'stale': + return 'Updating…'; + case 'reconcile_required': + return 'Reconnect to Cave to continue.'; + default: + return null; + } +} + +function ResultStatus({ result, label }: { result: QueryResult; label: string }) { + if (result.status === 'ok') { + return null; + } + if (result.status === 'error') { + return ( +

+ Couldn’t load {label} ({result.code}). +

+ ); + } + const message = statusMessage(result.status); + return message === null ? null : ( +

+ {message} +

+ ); +} + +function CapabilityNotice({ + control, + capabilities, + label, +}: { + control: ControlName; + capabilities: ReadonlySet; + label: string; +}) { + const availability = availabilityFor(control, capabilities); + return availability.enabled ? null : ( + + {label}: {availability.reason} + + ); +} + +function formatRelativeTime(iso: string, now: Date): string { + const then = new Date(iso).getTime(); + if (Number.isNaN(then)) { + return iso; + } + const minutes = Math.round((now.getTime() - then) / 60_000); + if (minutes < 1) { + return 'Just now'; + } + if (minutes < 60) { + return `${minutes}m ago`; + } + const hours = Math.round(minutes / 60); + if (hours < 24) { + return `${hours}h ago`; + } + return `${Math.round(hours / 24)}d ago`; +} + +function formatDuration(ms: number): string { + const totalSeconds = Math.round(ms / 1000); + const minutes = Math.floor(totalSeconds / 60); + const seconds = totalSeconds % 60; + return minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`; +} + +export function FamiliarsReadsShell({ source, initialConversationId }: FamiliarsReadsShellProps) { + const capabilities = useMemo(() => source.capabilities(), [source]); + const [familiarsResult, setFamiliarsResult] = + useState>>(NOT_READY); + const [conversationsResult, setConversationsResult] = + useState>>(NOT_READY); + const [conversationId, setConversationId] = useState( + initialConversationId ?? null, + ); + const [messagesResult, setMessagesResult] = useState>>(NOT_READY); + const [tab, setTab] = useState('overview'); + const [detailResult, setDetailResult] = useState>(NOT_READY); + const [activityResult, setActivityResult] = useState>(NOT_READY); + + useEffect(() => { + let cancelled = false; + setFamiliarsResult({ status: 'loading' }); + setConversationsResult({ status: 'loading' }); + + void source.familiars().then((result) => { + if (!cancelled) { + setFamiliarsResult(result); + } + }); + void source.conversations().then((result) => { + if (cancelled) { + return; + } + setConversationsResult(result); + if (result.status === 'ok') { + setConversationId((current) => current ?? result.data.data[0]?.id ?? null); + } + }); + + return () => { + cancelled = true; + }; + }, [source]); + + useEffect(() => { + if (conversationId === null) { + return; + } + let cancelled = false; + setMessagesResult({ status: 'loading' }); + void source.messages(conversationId).then((result) => { + if (!cancelled) { + setMessagesResult(result); + } + }); + + return () => { + cancelled = true; + }; + }, [source, conversationId]); + + const activeConversation = + conversationsResult.status === 'ok' + ? conversationsResult.data.data.find((item) => item.id === conversationId) + : undefined; + const activeFamiliarId = activeConversation?.familiarId ?? null; + + useEffect(() => { + if (activeFamiliarId === null) { + return; + } + let cancelled = false; + + if (tab === 'access' && availabilityFor('access', capabilities).enabled) { + setDetailResult({ status: 'loading' }); + void source.familiar(activeFamiliarId).then((result) => { + if (!cancelled) { + setDetailResult(result); + } + }); + } + if (tab === 'activity' && availabilityFor('activity', capabilities).enabled) { + setActivityResult({ status: 'loading' }); + void source.activity(activeFamiliarId).then((result) => { + if (!cancelled) { + setActivityResult(result); + } + }); + } + + return () => { + cancelled = true; + }; + }, [source, activeFamiliarId, tab, capabilities]); + + const familiarsById = + familiarsResult.status === 'ok' + ? new Map(familiarsResult.data.data.map((item) => [item.id, item])) + : new Map(); + const activeFamiliar = + activeFamiliarId === null ? undefined : familiarsById.get(activeFamiliarId); + const now = new Date(); + const accessAvailability = availabilityFor('access', capabilities); + const activityAvailability = availabilityFor('activity', capabilities); + + return ( +
+ + +
+
+ + {activeConversation?.title ?? 'Select a conversation'} + + {activeFamiliar ? ( + {activeFamiliar.name} + ) : null} +
+
+ + {messagesResult.status === 'ok' ? ( +
    + {messagesResult.data.data.map((message) => ( +
  • + {message.role} +

    {message.text}

    +
  • + ))} + {messagesResult.data.data.length === 0 ? ( +
  • No messages yet.
  • + ) : null} +
+ ) : null} +
+
+ + + + + +
+
+ + +
+ ); +} diff --git a/src/main.tsx b/src/main.tsx index 990dd304..706006de 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -8,6 +8,9 @@ import { DemoShell } from './demo/chat-demo'; import './demo/chat-demo.css'; import { FamiliarsShell } from './demo/familiars-shell'; import './demo/familiars-shell.css'; +import { createMockFamiliarsSource } from './familiars/mock-source'; +import { FamiliarsReadsShell } from './familiars/reads-shell'; +import './familiars/reads-shell.css'; import { MinimalMacOS } from './demo/minimal-macos'; import './demo/minimal-macos.css'; import './styles.css'; @@ -20,8 +23,9 @@ if (!rootElement) { } /** - * `?demo=chat`, `?demo=messages`, and `?demo=minimal` render a - * proof-of-concept surface instead of the Phase 1 read-only production app. + * `?demo=chat`, `?demo=messages`, `?demo=minimal`, and `?demo=familiars-reads` + * render a proof-of-concept surface instead of the Phase 1 read-only + * production app. * * A query flag rather than a replacement: the read-only production app is * still what ships, and what the default browser and desktop checks assert. @@ -33,7 +37,12 @@ if (!rootElement) { * at the centre of the chat. `messages` is the earlier Messages-shaped * surface it replaced, kept reachable so the two can be compared side by * side rather than from memory; `minimal` implements the approved "Coven Cave - * Minimal (macOS)" design. + * Minimal (macOS)" design. `familiars-reads` is Stage 1 of the familiars + * integration plan (`docs/superpowers/plans/2026-09-02-familiars-integration.md`): + * a separate, smaller shell rendering only what `FamiliarsSource` can + * honestly serve today, against `MockFamiliarsSource`. It previews the + * eventual production route; `chat`'s richer, Stage 2-4 behavior stays + * demo-only until Cave serves it. */ /** * A demo build opens on a demo surface without a query flag. @@ -54,6 +63,10 @@ function surfaceFor(name: string | null) { return ; } + if (name === 'familiars-reads') { + return ; + } + return name === 'minimal' ? : ; } From 85f44bddd607eeb6103b65529787c41dc869b3a2 Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Fri, 4 Sep 2026 02:31:36 -0500 Subject: [PATCH 4/5] feat(familiars): land the Stage 1 reads shell against the pinned SDK Splits the Cave-backed data path out of the Stage 1 work so the rest can land now. The vendored SDK tarballs are restored to the artifacts that contract-canary.lock.json pins, which the canary job checks out and verifies against the reviewed SDK revision. Bumping them needs a release manifest, and that needs the authorized release cut, so the vendor bump waits rather than turning main's canary red. What lands: the native familiar contract and analytics read paths, the data-source seam and its mock implementation, the capability additions, and the reads shell. All of it typechecks against the pinned SDK. What waits for the SDK bump: mappers.ts and cave-source.ts, plus the familiar transport in native-boundary.ts. Between them they need six symbols the pinned tarball does not export -- CaveFamiliarIdentity, CaveFamiliarWard, CaveExecutionDay, CaveFamiliarAnalyticsTransportOptions, canonicalFamiliarContractData, and canonicalFamiliarAnalyticsData. Nothing in the app imports either module yet, so removing them costs no wiring; the seam is shaped so the Cave-backed source arrives additively. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01KacEJmkX5GhkViPUhx9Mie --- pnpm-lock.yaml | 4 +- src/familiars/cave-source.test.ts | 170 ---------- src/familiars/cave-source.ts | 93 ------ src/familiars/mappers.test.ts | 344 --------------------- src/familiars/mappers.ts | 189 ----------- src/familiars/source.ts | 12 +- src/lib/sdk/native-boundary.ts | 76 +---- vendor/opencoven-sdk/cave-client-0.1.0.tgz | Bin 85426 -> 81543 bytes vendor/opencoven-sdk/sdk-core-0.1.0.tgz | Bin 33332 -> 33284 bytes 9 files changed, 11 insertions(+), 877 deletions(-) delete mode 100644 src/familiars/cave-source.test.ts delete mode 100644 src/familiars/cave-source.ts delete mode 100644 src/familiars/mappers.test.ts delete mode 100644 src/familiars/mappers.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 010817a4..10beb722 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -280,7 +280,7 @@ packages: resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} '@opencoven/cave-client@file:vendor/opencoven-sdk/cave-client-0.1.0.tgz': - resolution: {integrity: sha512-5USz/yPGgqvj9QQGZYMowU5FVCG74SP5BEyYQuOAzFltpgieBAHie0JDfhmEfykvJIEv2ldpRXX+Eq8OwT2hiQ==, tarball: file:vendor/opencoven-sdk/cave-client-0.1.0.tgz} + resolution: {integrity: sha512-RcVL85gfejq70t+KOv2SHXd+pD0nMH+0VClncyTYmis/n2TBOwzDx1hXt8iJLfpSYm72we5GTkrBo8A+4PdTpQ==, tarball: file:vendor/opencoven-sdk/cave-client-0.1.0.tgz} version: 0.1.0 engines: {node: '>=24.18.0 <25'} @@ -290,7 +290,7 @@ packages: engines: {node: '>=24.18.0 <25'} '@opencoven/sdk-core@file:vendor/opencoven-sdk/sdk-core-0.1.0.tgz': - resolution: {integrity: sha512-vPAANJLfsetoT9dnOvExz2zXpBf2a2j1BcMYNIkmnOpSpEe411EMzNRXafKmxepQ7YP18iXCOTF1jZLKZa1ztg==, tarball: file:vendor/opencoven-sdk/sdk-core-0.1.0.tgz} + resolution: {integrity: sha512-ZLfkfFNETnLjwg/Lxa5nIXrYs1L1q+y0fChyzZdorIpB1Rq8NeJt2S2PLQsaQXLls3GyCSkVe9+SCD2qoITkiA==, tarball: file:vendor/opencoven-sdk/sdk-core-0.1.0.tgz} version: 0.1.0 engines: {node: '>=24.18.0 <25'} diff --git a/src/familiars/cave-source.test.ts b/src/familiars/cave-source.test.ts deleted file mode 100644 index 9fb0dfd4..00000000 --- a/src/familiars/cave-source.test.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; - -import type { QueryAdapter } from '../lib/sdk/query-adapter'; -import { createCaveFamiliarsSource } from './cave-source'; -import type { Capability, QueryResult } from './source'; - -function ok(data: T): QueryResult { - return { status: 'ok', data }; -} - -function makeQueryAdapter(overrides: Partial = {}): QueryAdapter { - return { - listFamiliars: vi.fn().mockResolvedValue(ok({ data: [] })), - listProjects: vi.fn().mockResolvedValue(ok({ data: [] })), - listConversations: vi.fn().mockResolvedValue(ok({ data: [] })), - getConversation: vi.fn().mockResolvedValue({ status: 'not_ready' }), - listMessages: vi.fn().mockResolvedValue(ok({ data: [] })), - familiarContract: vi.fn().mockResolvedValue({ status: 'not_ready' }), - familiarAnalytics: vi.fn().mockResolvedValue({ status: 'not_ready' }), - invalidate: vi.fn(), - dispose: vi.fn(), - ...overrides, - }; -} - -const CAPABILITIES: ReadonlySet = new Set(['familiars', 'familiar-contract']); - -describe('createCaveFamiliarsSource', () => { - it('maps a familiars page through mapFamiliarSummary', async () => { - const queryAdapter = makeQueryAdapter({ - listFamiliars: vi - .fn() - .mockResolvedValue(ok({ data: [{ id: 'astra', displayName: 'Astra', role: 'Guide' }] })), - }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - const result = await source.familiars(); - expect(result).toEqual( - ok({ data: [{ id: 'astra', name: 'Astra', role: 'Guide', status: 'offline' }] }), - ); - }); - - it('passes a non-ok familiars result straight through unmapped', async () => { - const queryAdapter = makeQueryAdapter({ - listFamiliars: vi.fn().mockResolvedValue({ status: 'error', code: 'service_unavailable' }), - }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - expect(await source.familiars()).toEqual({ status: 'error', code: 'service_unavailable' }); - }); - - it('fetches a familiar contract by id and maps it to a detail', async () => { - const familiarContract = vi.fn().mockResolvedValue( - ok({ - id: 'astra', - present: { soul: true, identity: true, ward: true, memory: true }, - report: { specVersion: '0.1.0', pass: true, properties: [], violations: [], warnings: [] }, - }), - ); - const queryAdapter = makeQueryAdapter({ familiarContract }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - const result = await source.familiar('astra'); - expect(familiarContract).toHaveBeenCalledWith('astra'); - expect(result.status).toBe('ok'); - expect(result).toMatchObject({ data: { id: 'astra' } }); - }); - - it('requests the default 7d window when none is given, and maps the response', async () => { - const familiarAnalytics = vi.fn().mockResolvedValue( - ok({ - generatedAt: '2026-08-25T00:00:00.000Z', - windows: { - '7d': { - attempts: 1, - completed: 1, - failed: 0, - cancelled: 0, - successRate: 1, - toolCalls: 4, - toolFailures: 0, - models: [], - harnesses: [], - coverage: {}, - }, - }, - recentAttempts: [], - backfill: { state: 'complete', imported: 1 }, - }), - ); - const queryAdapter = makeQueryAdapter({ familiarAnalytics }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - const result = await source.activity('astra'); - expect(familiarAnalytics).toHaveBeenCalledWith('astra', { window: '7d' }); - expect(result).toMatchObject({ status: 'ok', data: { window: '7d', attempts: 1 } }); - }); - - it('requests an explicit window and returns not_found when Cave omits it from the response', async () => { - const familiarAnalytics = vi.fn().mockResolvedValue( - ok({ - generatedAt: '2026-08-25T00:00:00.000Z', - windows: {}, - recentAttempts: [], - backfill: { state: 'not-started', imported: 0 }, - }), - ); - const queryAdapter = makeQueryAdapter({ familiarAnalytics }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - const result = await source.activity('astra', '14d'); - expect(familiarAnalytics).toHaveBeenCalledWith('astra', { window: '14d' }); - expect(result).toEqual({ status: 'error', code: 'not_found' }); - }); - - it('passes a non-ok analytics result straight through without mapping', async () => { - const queryAdapter = makeQueryAdapter({ - familiarAnalytics: vi.fn().mockResolvedValue({ status: 'reconcile_required' }), - }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - expect(await source.activity('astra')).toEqual({ status: 'reconcile_required' }); - }); - - it('maps a conversations page and a messages page through their mappers', async () => { - const queryAdapter = makeQueryAdapter({ - listConversations: vi - .fn() - .mockResolvedValue( - ok({ data: [{ id: 'c1', familiarId: 'astra', updatedAt: '2026-08-25T00:00:00.000Z' }] }), - ), - listMessages: vi.fn().mockResolvedValue( - ok({ - data: [ - { - id: 'm1', - conversationId: 'c1', - parentId: null, - role: 'user', - text: 'Hi', - createdAt: '2026-08-25T00:00:00.000Z', - attachmentCount: 0, - toolCount: 0, - }, - ], - }), - ), - }); - const source = createCaveFamiliarsSource({ queryAdapter, capabilities: CAPABILITIES }); - - const conversations = await source.conversations(); - expect(conversations).toMatchObject({ - data: { data: [{ id: 'c1', failed: false, pending: false }] }, - }); - - const messages = await source.messages('c1'); - expect(queryAdapter.listMessages).toHaveBeenCalledWith('c1'); - expect(messages).toMatchObject({ - data: { data: [{ id: 'm1', role: 'user', isError: false }] }, - }); - }); - - it('returns the capabilities it was constructed with, unchanged', () => { - const source = createCaveFamiliarsSource({ - queryAdapter: makeQueryAdapter(), - capabilities: CAPABILITIES, - }); - expect(source.capabilities()).toBe(CAPABILITIES); - }); -}); diff --git a/src/familiars/cave-source.ts b/src/familiars/cave-source.ts deleted file mode 100644 index ec629830..00000000 --- a/src/familiars/cave-source.ts +++ /dev/null @@ -1,93 +0,0 @@ -import type { Page } from '@opencoven/sdk-core/browser'; - -import type { QueryAdapter } from '../lib/sdk/query-adapter'; -import { - mapConversationSummary, - mapFamiliarActivity, - mapFamiliarDetail, - mapFamiliarSummary, - mapThreadMessage, -} from './mappers'; -import type { - ActivityWindow, - Capability, - ConversationSummary, - FamiliarActivity, - FamiliarDetail, - FamiliarSummary, - FamiliarsSource, - QueryResult, - ThreadMessage, -} from './source'; - -/** - * `FamiliarsSource` over `QueryAdapter` and the managed `CaveClient`. - * - * Every method is a thin fetch-then-map: `QueryAdapter` owns the TTL / LRU / - * abort / epoch semantics the rest of the production shell already uses, - * and `./mappers.ts` owns the SDK-wire-type -> view-type translation. This - * module adds no caching, retry, or formatting logic of its own. - */ - -const DEFAULT_ACTIVITY_WINDOW: ActivityWindow = '7d'; - -export type CaveFamiliarsSourceOptions = Readonly<{ - queryAdapter: QueryAdapter; - /** - * The set of capability names the connected Cave instance advertises - * (`CaveHealth.capabilities`). A snapshot rather than a live subscription: - * the shell re-creates the source when connection state changes. - */ - capabilities: ReadonlySet; -}>; - -function mapResult(result: QueryResult, map: (value: T) => U): QueryResult { - return result.status === 'ok' ? { status: 'ok', data: map(result.data) } : result; -} - -function mapPageResult( - result: QueryResult>, - map: (value: T) => U, -): QueryResult> { - return result.status === 'ok' - ? { status: 'ok', data: { ...result.data, data: result.data.data.map(map) } } - : result; -} - -export function createCaveFamiliarsSource(options: CaveFamiliarsSourceOptions): FamiliarsSource { - const { queryAdapter, capabilities } = options; - - return Object.freeze({ - async familiars(): Promise>> { - return mapPageResult(await queryAdapter.listFamiliars(), mapFamiliarSummary); - }, - async familiar(id: string): Promise> { - return mapResult(await queryAdapter.familiarContract(id), mapFamiliarDetail); - }, - async activity( - id: string, - window: ActivityWindow = DEFAULT_ACTIVITY_WINDOW, - ): Promise> { - const result = await queryAdapter.familiarAnalytics(id, { window }); - if (result.status !== 'ok') { - return result; - } - const activity = mapFamiliarActivity(result.data, window); - // Cave omitted the requested window (e.g. an instance with a shorter - // retained history than `window` implies) rather than the read - // failing outright. - return activity === undefined - ? { status: 'error', code: 'not_found' } - : { status: 'ok', data: activity }; - }, - async conversations(): Promise>> { - return mapPageResult(await queryAdapter.listConversations(), mapConversationSummary); - }, - async messages(conversationId: string): Promise>> { - return mapPageResult(await queryAdapter.listMessages(conversationId), mapThreadMessage); - }, - capabilities(): ReadonlySet { - return capabilities; - }, - }); -} diff --git a/src/familiars/mappers.test.ts b/src/familiars/mappers.test.ts deleted file mode 100644 index d07787db..00000000 --- a/src/familiars/mappers.test.ts +++ /dev/null @@ -1,344 +0,0 @@ -import type { - CaveExecutionAttempt, - CaveExecutionWindow, - CaveFamiliarAnalytics, - CaveFamiliarContract, -} from '@opencoven/cave-client'; -import type { - CaveCanonicalFamiliar, - CaveConversation, - CaveConversationMessage, -} from '@opencoven/cave-client/managed'; -import { describe, expect, it } from 'vitest'; - -import { - mapConversationSummary, - mapFamiliarActivity, - mapFamiliarDetail, - mapFamiliarSummary, - mapThreadMessage, -} from './mappers'; - -describe('mapFamiliarSummary', () => { - it('renames displayName to name and passes optional fields through', () => { - const familiar: CaveCanonicalFamiliar = { - id: 'astra', - displayName: 'Astra', - role: 'Research and synthesis', - description: 'Reads widely.', - pronouns: 'she/her', - status: 'working', - }; - - expect(mapFamiliarSummary(familiar)).toEqual({ - id: 'astra', - name: 'Astra', - role: 'Research and synthesis', - description: 'Reads widely.', - pronouns: 'she/her', - status: 'working', - }); - }); - - it('defaults an unrecognized or missing status to offline, and omits absent optional fields', () => { - const bare: CaveCanonicalFamiliar = { id: 'astra', displayName: 'Astra', role: 'Guide' }; - - expect(mapFamiliarSummary(bare)).toEqual({ - id: 'astra', - name: 'Astra', - role: 'Guide', - status: 'offline', - }); - expect(mapFamiliarSummary({ ...bare, status: 'unknown-future-value' })).toMatchObject({ - status: 'offline', - }); - }); -}); - -describe('mapFamiliarDetail', () => { - const contract: CaveFamiliarContract = { - id: 'astra', - workspace: '/workspace/astra', - present: { soul: true, identity: true, ward: true, memory: true }, - identity: { name: 'Astra', creature: 'Cartographer', person: 'Val Alexander' }, - ward: { - version: '0.3.1', - protectedFiles: ['SOUL.md', 'IDENTITY.md', 'MEMORY.md', 'ward.toml'], - invariants: ['familiar.name', 'familiar.person'], - editablePaths: ['TOOLS.md', 'notes/'], - approvalTiers: { auto: ['read files'], humanReview: ['publish a finding'] }, - }, - report: { - specVersion: '0.1.0', - pass: true, - properties: [{ property: 'Named Identity', pass: true }], - violations: [], - warnings: [{ file: 'MEMORY.md', field: 'entries', message: 'No memory yet.' }], - }, - }; - - it('maps identity, ward, and the contract report field-for-field', () => { - expect(mapFamiliarDetail(contract)).toEqual({ - id: 'astra', - workspace: '/workspace/astra', - present: { soul: true, identity: true, ward: true, memory: true }, - identity: { name: 'Astra', creature: 'Cartographer', person: 'Val Alexander' }, - ward: { - version: '0.3.1', - protectedFiles: ['SOUL.md', 'IDENTITY.md', 'MEMORY.md', 'ward.toml'], - invariants: ['familiar.name', 'familiar.person'], - editablePaths: ['TOOLS.md', 'notes/'], - approvalTiers: { auto: ['read files'], humanReview: ['publish a finding'] }, - }, - report: contract.report, - }); - }); - - it('omits identity and ward when Cave withholds or lacks them', () => { - const minimal: CaveFamiliarContract = { - id: 'echo', - present: { soul: true, identity: true, ward: false, memory: false }, - report: { specVersion: '0.1.0', pass: false, properties: [], violations: [], warnings: [] }, - }; - - const detail = mapFamiliarDetail(minimal); - expect(detail.identity).toBeUndefined(); - expect(detail.ward).toBeUndefined(); - expect(detail.workspace).toBeUndefined(); - expect(detail.present).toEqual({ soul: true, identity: true, ward: false, memory: false }); - }); -}); - -function executionAttempt(overrides: Partial = {}): CaveExecutionAttempt { - return { - id: 'attempt-1', - executionKind: 'run', - occurredAt: '2026-08-25T00:00:00.000Z', - harnessId: 'claude-code', - status: 'completed', - toolCalls: 14, - toolFailures: 0, - ...overrides, - }; -} - -function executionWindow(overrides: Partial = {}): CaveExecutionWindow { - return { - attempts: 12, - completed: 12, - failed: 0, - cancelled: 0, - successRate: 1, - medianDurationMs: 96_000, - p95DurationMs: 168_000, - toolCalls: 148, - toolFailures: 2, - models: [], - harnesses: [ - { - key: 'files.read', - attempts: 58, - completed: 58, - failed: 0, - cancelled: 0, - successRate: 1, - toolCalls: 58, - toolFailures: 0, - }, - { - key: 'web.fetch', - label: 'web.fetch', - attempts: 22, - completed: 20, - failed: 2, - cancelled: 0, - successRate: 0.9, - toolCalls: 22, - toolFailures: 2, - }, - ], - coverage: {}, - days: [{ date: '2026-08-24', completed: 3, failed: 1, cancelled: 0 }], - ...overrides, - }; -} - -describe('mapFamiliarActivity', () => { - it('renames the window fields the plan specifies and maps harnesses to tool usage', () => { - const analytics: CaveFamiliarAnalytics = { - generatedAt: '2026-08-25T00:00:00.000Z', - windows: { '7d': executionWindow() }, - recentAttempts: [ - executionAttempt(), - executionAttempt({ id: 'attempt-2', status: 'failed', toolFailures: 1 }), - ], - backfill: { state: 'complete', imported: 12 }, - }; - - expect(mapFamiliarActivity(analytics, '7d')).toEqual({ - window: '7d', - generatedAt: '2026-08-25T00:00:00.000Z', - attempts: 12, - completed: 12, - failed: 0, - cancelled: 0, - completion: 1, - medianDurationMs: 96_000, - p95DurationMs: 168_000, - calls: 148, - callFailures: 2, - tools: [ - { name: 'files.read', calls: 58, failed: 0 }, - { name: 'web.fetch', calls: 22, failed: 2 }, - ], - days: [{ date: '2026-08-24', completed: 3, failed: 1, cancelled: 0 }], - recent: [ - { - id: 'attempt-1', - occurredAt: '2026-08-25T00:00:00.000Z', - harnessId: 'claude-code', - status: 'completed', - toolCalls: 14, - toolFailures: 0, - }, - { - id: 'attempt-2', - occurredAt: '2026-08-25T00:00:00.000Z', - harnessId: 'claude-code', - status: 'failed', - toolCalls: 14, - toolFailures: 1, - }, - ], - backfillState: 'complete', - }); - }); - - it('omits days on a window that does not carry the runs-per-day series', () => { - const { days: _days, ...windowWithoutDays } = executionWindow(); - const analytics: CaveFamiliarAnalytics = { - generatedAt: '2026-08-25T00:00:00.000Z', - windows: { all: windowWithoutDays }, - recentAttempts: [], - backfill: { state: 'partial', imported: 40, remaining: 8 }, - }; - - expect(mapFamiliarActivity(analytics, 'all')?.days).toBeUndefined(); - }); - - it('returns undefined when Cave did not serve the requested window', () => { - const analytics: CaveFamiliarAnalytics = { - generatedAt: '2026-08-25T00:00:00.000Z', - windows: { '7d': executionWindow() }, - recentAttempts: [], - backfill: { state: 'not-started', imported: 0 }, - }; - - expect(mapFamiliarActivity(analytics, '14d')).toBeUndefined(); - }); - - it('carries a null completion rate through rather than coercing it to zero', () => { - const analytics: CaveFamiliarAnalytics = { - generatedAt: '2026-08-25T00:00:00.000Z', - windows: { - '7d': executionWindow({ attempts: 0, completed: 0, failed: 0, successRate: null }), - }, - recentAttempts: [], - backfill: { state: 'complete', imported: 0 }, - }; - - expect(mapFamiliarActivity(analytics, '7d')?.completion).toBeNull(); - }); -}); - -describe('mapConversationSummary', () => { - it('derives failed from status and treats a nonzero exit code as failed even with no status', () => { - const base: CaveConversation = { - id: 'c1', - familiarId: 'astra', - updatedAt: '2026-08-25T00:00:00.000Z', - }; - - expect(mapConversationSummary(base).failed).toBe(false); - expect(mapConversationSummary({ ...base, status: 'failed' }).failed).toBe(true); - expect(mapConversationSummary({ ...base, status: 'error' }).failed).toBe(true); - expect(mapConversationSummary({ ...base, exitCode: 1 }).failed).toBe(true); - expect(mapConversationSummary({ ...base, exitCode: 0 }).failed).toBe(false); - expect(mapConversationSummary({ ...base, exitCode: null }).failed).toBe(false); - }); - - it('maps pending straight through and omits title when Cave omits it', () => { - const conversation: CaveConversation = { - id: 'c1', - familiarId: 'astra', - title: 'Q3 pricing evidence map', - updatedAt: '2026-08-25T00:00:00.000Z', - pending: true, - }; - - expect(mapConversationSummary(conversation)).toEqual({ - id: 'c1', - familiarId: 'astra', - title: 'Q3 pricing evidence map', - updatedAt: '2026-08-25T00:00:00.000Z', - failed: false, - pending: true, - }); - expect( - mapConversationSummary({ - id: 'c1', - familiarId: 'astra', - updatedAt: '2026-08-25T00:00:00.000Z', - }).title, - ).toBeUndefined(); - }); -}); - -describe('mapThreadMessage', () => { - it('maps every field, defaulting isError and cancelled to false', () => { - const message: CaveConversationMessage = { - id: 'm1', - conversationId: 'c1', - parentId: null, - role: 'assistant', - text: 'On it.', - createdAt: '2026-08-25T00:00:00.000Z', - attachmentCount: 0, - toolCount: 3, - }; - - expect(mapThreadMessage(message)).toEqual({ - id: 'm1', - conversationId: 'c1', - parentId: null, - role: 'assistant', - text: 'On it.', - createdAt: '2026-08-25T00:00:00.000Z', - attachmentCount: 0, - toolCount: 3, - isError: false, - cancelled: false, - }); - }); - - it('carries isError and cancelled through when Cave sets them', () => { - const message: CaveConversationMessage = { - id: 'm2', - conversationId: 'c1', - parentId: 'm1', - role: 'assistant', - text: '', - createdAt: '2026-08-25T00:00:00.000Z', - attachmentCount: 0, - toolCount: 0, - isError: true, - cancelled: true, - }; - - expect(mapThreadMessage(message)).toMatchObject({ - isError: true, - cancelled: true, - parentId: 'm1', - }); - }); -}); diff --git a/src/familiars/mappers.ts b/src/familiars/mappers.ts deleted file mode 100644 index 96a5e5a9..00000000 --- a/src/familiars/mappers.ts +++ /dev/null @@ -1,189 +0,0 @@ -import type { - CaveExecutionAttempt, - CaveExecutionDay, - CaveExecutionSlice, - CaveFamiliarAnalytics, - CaveFamiliarContract, - CaveFamiliarIdentity, - CaveFamiliarWard, -} from '@opencoven/cave-client'; -import type { - CaveCanonicalFamiliar, - CaveConversation, - CaveConversationMessage, -} from '@opencoven/cave-client/managed'; - -import type { - ActivityAttempt, - ActivityDay, - ActivityToolUsage, - ActivityWindow, - ConversationSummary, - FamiliarActivity, - FamiliarDetail, - FamiliarIdentity, - FamiliarStatus, - FamiliarSummary, - FamiliarWard, - ThreadMessage, -} from './source'; - -/** - * SDK wire types -> the Familiars surface's view types. - * - * This is the only module that knows the shape of a `CaveCanonicalFamiliar`, - * a `CaveFamiliarContract`, or a `CaveExecutionWindow`. Both - * `CaveFamiliarsSource` and its tests depend on this file rather than - * reaching into `@opencoven/cave-client` themselves, so a wire change is a - * type error here and nowhere else. - */ - -function normalizeFamiliarStatus(status: string | undefined): FamiliarStatus { - // Cave's `status` is a bare string today (no reviewed literal union). An - // unrecognized or missing value defaults to the least-permissive reading - // rather than a guess at "available". - return status === 'available' || status === 'working' ? status : 'offline'; -} - -export function mapFamiliarSummary(familiar: CaveCanonicalFamiliar): FamiliarSummary { - return { - id: familiar.id, - name: familiar.displayName, - role: familiar.role, - ...(familiar.description === undefined ? {} : { description: familiar.description }), - ...(familiar.pronouns === undefined ? {} : { pronouns: familiar.pronouns }), - status: normalizeFamiliarStatus(familiar.status), - }; -} - -function mapFamiliarIdentity(identity: CaveFamiliarIdentity): FamiliarIdentity { - return { - ...(identity.name === undefined ? {} : { name: identity.name }), - ...(identity.creature === undefined ? {} : { creature: identity.creature }), - ...(identity.person === undefined ? {} : { person: identity.person }), - }; -} - -function mapFamiliarWard(ward: CaveFamiliarWard): FamiliarWard { - return { - ...(ward.version === undefined ? {} : { version: ward.version }), - protectedFiles: ward.protectedFiles, - invariants: ward.invariants, - editablePaths: ward.editablePaths, - approvalTiers: { - auto: ward.approvalTiers.auto, - humanReview: ward.approvalTiers.humanReview, - }, - }; -} - -export function mapFamiliarDetail(contract: CaveFamiliarContract): FamiliarDetail { - return { - id: contract.id, - ...(contract.workspace === undefined ? {} : { workspace: contract.workspace }), - present: contract.present, - ...(contract.identity === undefined - ? {} - : { identity: mapFamiliarIdentity(contract.identity) }), - ...(contract.ward === undefined ? {} : { ward: mapFamiliarWard(contract.ward) }), - report: { - specVersion: contract.report.specVersion, - pass: contract.report.pass, - properties: contract.report.properties, - violations: contract.report.violations, - warnings: contract.report.warnings, - }, - }; -} - -function mapActivityToolUsage(slice: CaveExecutionSlice): ActivityToolUsage { - // Cave's Stage 1 analytics contract does not break usage down by literal - // tool name; a harness slice is the closest available concept. - return { - name: slice.label ?? slice.key, - calls: slice.toolCalls, - failed: slice.toolFailures, - }; -} - -function mapActivityDay(day: CaveExecutionDay): ActivityDay { - return { date: day.date, completed: day.completed, failed: day.failed, cancelled: day.cancelled }; -} - -function mapActivityAttempt(attempt: CaveExecutionAttempt): ActivityAttempt { - return { - id: attempt.id, - occurredAt: attempt.occurredAt, - harnessId: attempt.harnessId, - status: attempt.status, - ...(attempt.durationMs === undefined ? {} : { durationMs: attempt.durationMs }), - toolCalls: attempt.toolCalls, - toolFailures: attempt.toolFailures, - }; -} - -/** - * Maps one requested window out of `analytics.windows`. Returns `undefined` - * when Cave did not serve that window (an instance with a shorter history, - * or a window key the analytics response simply omits). - */ -export function mapFamiliarActivity( - analytics: CaveFamiliarAnalytics, - window: ActivityWindow, -): FamiliarActivity | undefined { - const source = analytics.windows[window]; - if (source === undefined) { - return undefined; - } - - return { - window, - generatedAt: analytics.generatedAt, - attempts: source.attempts, - completed: source.completed, - failed: source.failed, - cancelled: source.cancelled, - completion: source.successRate, - ...(source.medianDurationMs === undefined ? {} : { medianDurationMs: source.medianDurationMs }), - ...(source.p95DurationMs === undefined ? {} : { p95DurationMs: source.p95DurationMs }), - calls: source.toolCalls, - callFailures: source.toolFailures, - tools: source.harnesses.map(mapActivityToolUsage), - ...(source.days === undefined ? {} : { days: source.days.map(mapActivityDay) }), - recent: analytics.recentAttempts.map(mapActivityAttempt), - backfillState: analytics.backfill.state, - }; -} - -function isConversationFailed(conversation: CaveConversation): boolean { - if (conversation.status === 'failed' || conversation.status === 'error') { - return true; - } - return typeof conversation.exitCode === 'number' && conversation.exitCode !== 0; -} - -export function mapConversationSummary(conversation: CaveConversation): ConversationSummary { - return { - id: conversation.id, - familiarId: conversation.familiarId, - ...(conversation.title === undefined ? {} : { title: conversation.title }), - updatedAt: conversation.updatedAt, - failed: isConversationFailed(conversation), - pending: conversation.pending === true, - }; -} - -export function mapThreadMessage(message: CaveConversationMessage): ThreadMessage { - return { - id: message.id, - conversationId: message.conversationId, - parentId: message.parentId, - role: message.role, - text: message.text, - createdAt: message.createdAt, - attachmentCount: message.attachmentCount, - toolCount: message.toolCount, - isError: message.isError === true, - cancelled: message.cancelled === true, - }; -} diff --git a/src/familiars/source.ts b/src/familiars/source.ts index 4af33ec2..f230d897 100644 --- a/src/familiars/source.ts +++ b/src/familiars/source.ts @@ -8,12 +8,12 @@ export type { Page, PageCursor, QueryResult }; * The Familiars surface's data-source seam. * * `FamiliarsShell` reads through this interface rather than module - * constants. Two implementations exist: `MockFamiliarsSource` - * (`./mock-source.ts`), wrapping today's `src/demo/familiars-data.ts` for - * the demo build and tests, and `CaveFamiliarsSource` (`./cave-source.ts`), - * built on `QueryAdapter` and the managed `CaveClient`. The mapping from SDK - * wire types to these view types lives in one place, `./mappers.ts`, so a - * wire change is a type error there and nowhere else. + * constants. One implementation exists today: `MockFamiliarsSource` + * (`./mock-source.ts`), wrapping `src/demo/familiars-data.ts` for the demo + * build and tests. The Cave-backed implementation, and the single mapping + * from SDK wire types to these view types, land with the SDK bump that + * exports `CaveFamiliarIdentity`, `CaveFamiliarWard`, and + * `CaveExecutionDay`; the seam is shaped for it so that arrival is additive. * * Scoped to Stage 1 (reads only) of * `docs/superpowers/plans/2026-09-02-familiars-integration.md`. Send, diff --git a/src/lib/sdk/native-boundary.ts b/src/lib/sdk/native-boundary.ts index 1c10beb9..38d0c100 100644 --- a/src/lib/sdk/native-boundary.ts +++ b/src/lib/sdk/native-boundary.ts @@ -1,16 +1,7 @@ import type { - CaveAnalyticsWindowKey, - CaveFamiliarAnalyticsResponse, - CaveFamiliarAnalyticsTransportOptions, - CaveFamiliarContractResponse, -} from '@opencoven/cave-client'; -import { - CAVE_ANALYTICS_WINDOWS, - type CaveManagedCredentialTransport, - type CaveManagedDiscoverySource, - type CavePairingRequest, - canonicalFamiliarAnalyticsData, - canonicalFamiliarContractData, + CaveManagedCredentialTransport, + CaveManagedDiscoverySource, + CavePairingRequest, } from '@opencoven/cave-client/managed'; import { type OperationContext, @@ -426,38 +417,6 @@ function canonicalConversationId(value: unknown): string { return value; } -function canonicalFamiliarId(value: unknown): string { - if ( - typeof value !== 'string' || - value.length === 0 || - value.length > 64 || - !/^[A-Za-z0-9][A-Za-z0-9_-]*$/u.test(value) - ) { - return invalidNativeInput(); - } - return value; -} - -function canonicalAnalyticsWindow(value: CaveAnalyticsWindowKey | undefined): string | undefined { - if (value === undefined) { - return undefined; - } - if (!(CAVE_ANALYTICS_WINDOWS as readonly string[]).includes(value)) { - return invalidNativeInput(); - } - return value; -} - -function canonicalRecentLimit(value: number | undefined): number | undefined { - if (value === undefined) { - return undefined; - } - if (!Number.isInteger(value) || value < 0 || value > 100) { - return invalidNativeInput(); - } - return value; -} - function containsControlCharacter(value: string): boolean { for (const character of value) { const codePoint = character.codePointAt(0); @@ -647,34 +606,5 @@ export function createCaveManagedCredentialTransport( context, ); }, - async familiarContract( - familiarId: string, - context?: OperationContext, - ): Promise { - const result = await invokeBoundOperation( - 'cave_familiar_contract', - { - familiarId: canonicalFamiliarId(familiarId), - }, - context, - ); - return canonicalFamiliarContractData(result) as unknown as CaveFamiliarContractResponse; - }, - async familiarAnalytics( - familiarId: string, - options?: CaveFamiliarAnalyticsTransportOptions, - context?: OperationContext, - ): Promise { - const result = await invokeBoundOperation( - 'cave_familiar_analytics', - { - familiarId: canonicalFamiliarId(familiarId), - window: canonicalAnalyticsWindow(options?.window), - recentLimit: canonicalRecentLimit(options?.recentLimit), - }, - context, - ); - return canonicalFamiliarAnalyticsData(result) as unknown as CaveFamiliarAnalyticsResponse; - }, }); } diff --git a/vendor/opencoven-sdk/cave-client-0.1.0.tgz b/vendor/opencoven-sdk/cave-client-0.1.0.tgz index 8df95547debaf0c6d2adc8d9f75741f0d0ce2883..ca3888ad0251fc6e3ad6e4becaabcdc349a016e7 100644 GIT binary patch delta 80577 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 diff --git a/vendor/opencoven-sdk/sdk-core-0.1.0.tgz b/vendor/opencoven-sdk/sdk-core-0.1.0.tgz index 84a81bcc3b66132defbb479521e70136a17f36b4..18a3e4588e6a44bb330f201e6f110ea3ad1ea32a 100644 GIT binary patch literal 33284 zcmV(|K+(S+iwFP!000006YPC!ciTpi=zPYn=y0U#G=PTt8Yb?|kny4gKLGWMcLM4;*S|#`L@ZHWN%~V$`WLAiDDvFsBqlHQi;k`IJ z`mrmbT!c#*@5IzWD3(d6GOiz1`qQb(Qt^XIR3>9_ zy1a~|i3UMjKj`g#`K4(0e>gqfdC=S4Nt1Zh>55z_@tP@g2VTByyMJ|_h%__9yd0kE z4xz7?!}D?vFNf#019;yHf?v|5n9G$|=Bg{^X&6mcT_KZDgi&5((dDvGqL@Xw$kS?X=pFZlHJU-htG=@ksnII2nxl$Kv$W_s7FS!Bi5|eId?=o0N{KVQqn@YBB$Ti@x?-42dg8lT zQ7rQPd-taKw3lXA_nrn~aILacnkZmD3zf~I0`@|Yib=Xym3Qp5$}VLQ&EaLF@_;y5 zlndUXB1|XCxk`$zxLg)uGLy+wlw66ZfbNsD5HgO_8x{6~ra9x!X{O}-GFH&)e5S-^ zRu|<$ifN`)7Xgpev@k$T(=0G-24;jiUA&8u5ZTO4n!U@rB44OUG>s-Qj#na7d32Q! zCRCCyGZjqIbfGfDr?`oV8FH6NI-f6-s91?8p$9StJ}nYeK))ha*|o|Ho9pQ*F>pCR zC+2Bhh#C+VnVb{=5y6NoPD2(HsVL+-CFG4<5nqJ)hv^((&S$zOTm*%%VJAHyzF&z6 zuuhp5-2gtUM=FgMC51{t!o<~5W-=+1DvuXb#*=Xj;n5nslrqHFh ziSk*eYlaY+nyBa+K3--M=rU9y&BR0|;z|{`r|`qzMkes5^C`4(*4+%BW`Ihuh}49j zgH95WsG9)chmlj+{P%LDtdLB1;Q3;nN&> zSRT-px=BS|s71an+It-#^IT;G?r7q4Y2r2_>MXn}k63T2PE>)tY5lVESnyMrOk^`zm ziv6>pj))KwMDs-kY+NNpF6J_X?ImPfs4S7hU(JSrad|zuu+qg$tpZIGH&LkaMW$p( z64s@fq;nTNwYNg@UahlQ000 zcA3d56^ctjPNwo@T)@N~4%rjpMS7#IRn{$WM!Un8AmpY=iB;xZT0-g;g~+LlVp=Jf z<7K)mdVxL`8qNbc$^ggja7k!2BNb{K<78r0AmE5=>Hs9jJco?|Z8ZA^;!Kx?fC-6A z#Y*OMuH}KdJ&V-os&}W;%kUfT7%I|$P9G#6L}k95%n+A|C}k(+0z&kVTY?A}G;?0{ zgct(r{oiGjsT|+Y;sN0RyDlAIMH&Fb}Y+{oNJTjXSt&KJ;5K#4ND)TxwMq&L z2?|pN)jSIg)9En@VEp$?<^d5cY+_*d%^xz$)cYq>G$O1c>QsR%?->$bWNH%ST6M!i zE=|IS6f@vOz+|K3%Hgwm4-)1lBv(ySkPn-s!}G!T<(cT89Erox$QlOz1Vjw3o z-GpT2Fw9hrI3kHYZifT0yq}MROT~eB*>-cgwc|KJ;S?< z;bJD~pkba5%p(cZdpRKqg1C%xTp@5#t~a%0z#T5oVweIYvp9lt06qcW>9^LUq%*9A z1G}wQRA_+#C{rOmYcVRwu7RH{6Eh|+w$nZK9
AuMLtHS-Ox{vQSk#he#$UpOK~# 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 YBK`97<>$-KU-9RE0nfsclK>I|01ULt`v3p{ literal 33332 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 Date: Fri, 4 Sep 2026 03:02:35 -0500 Subject: [PATCH 5/5] test(familiars): cover the familiar reads and correct two stale descriptions Addresses the review on #89. The query adapter gained familiarContract and familiarAnalytics without tests of its own; the suite only widened the mock client's shape. Adds six covering how they forward parameters, that an unsupplied window and recentLimit are omitted rather than passed as undefined, that the cache is keyed on familiar id and on the analytics query, that the ttl expires, and that both go stale when the ready client identity changes and not_ready when there is none. The omission test asserts an exact options object rather than objectContaining, since the property under test is absence. Also two descriptions that contradicted their code: a mock-source test named "without a violation" that asserts a Persistent Memory violation is present, and a doc comment claiming the mock never returns anything but status ok when an uncovered id resolves not_found. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01KacEJmkX5GhkViPUhx9Mie --- src/familiars/mock-source.test.ts | 2 +- src/familiars/mock-source.ts | 4 +- src/lib/sdk/query-adapter.test.ts | 93 +++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+), 2 deletions(-) diff --git a/src/familiars/mock-source.test.ts b/src/familiars/mock-source.test.ts index 8e670de8..c33dfb2a 100644 --- a/src/familiars/mock-source.test.ts +++ b/src/familiars/mock-source.test.ts @@ -45,7 +45,7 @@ describe('createMockFamiliarsSource', () => { expect(detail.present).toEqual({ soul: true, identity: true, ward: true, memory: true }); }); - it('reports memory absence as a failing contract property without a violation', async () => { + it('reports memory absence as a failing contract property with a matching violation', async () => { const source = createMockFamiliarsSource(); const detail = unwrap(await source.familiar('echo')); diff --git a/src/familiars/mock-source.ts b/src/familiars/mock-source.ts index 9820951f..08620dec 100644 --- a/src/familiars/mock-source.ts +++ b/src/familiars/mock-source.ts @@ -32,7 +32,9 @@ import type { * * This is the only place mock content lives, per the integration design. * Used by the demo build, tests, and the design board states. It always - * resolves synchronously and never returns anything but `status: 'ok'`. + * resolves synchronously, and returns `status: 'ok'` for every id the demo + * fixtures cover; an id they do not cover resolves + * `{ status: 'error', code: 'not_found' }` rather than throwing. * * The demo's `FamActivity` is presentation-shaped (`completion: '100%'`, * `median: '1m 36s'`) because it was authored to match the design mockup diff --git a/src/lib/sdk/query-adapter.test.ts b/src/lib/sdk/query-adapter.test.ts index 65fb789e..2e7e41d2 100644 --- a/src/lib/sdk/query-adapter.test.ts +++ b/src/lib/sdk/query-adapter.test.ts @@ -586,6 +586,99 @@ describe('createQueryAdapter', () => { } }); + it('forwards the familiar id for a contract read and caches it within the ttl', async () => { + let now = 1_000; + const client = createReadClient(); + const adapter = createQueryAdapter(() => client, { now: () => now }); + + const first = await adapter.familiarContract('familiar-1'); + const second = await adapter.familiarContract('familiar-1'); + + expect(client.familiarContract).toHaveBeenCalledTimes(1); + expect(client.familiarContract).toHaveBeenCalledWith( + 'familiar-1', + expect.objectContaining({ signal: expect.any(AbortSignal) }), + ); + expect(second).toBe(first); + expect(first).toMatchObject({ status: 'ok', data: { id: 'familiar-1' } }); + + now += 5_001; + await adapter.familiarContract('familiar-1'); + + expect(client.familiarContract).toHaveBeenCalledTimes(2); + }); + + it('reads a different familiar rather than serving the cached contract of another', async () => { + const client = createReadClient(); + const adapter = createQueryAdapter(() => client); + + await adapter.familiarContract('familiar-1'); + await adapter.familiarContract('familiar-2'); + + expect(client.familiarContract).toHaveBeenCalledTimes(2); + expect(client.familiarContract).toHaveBeenLastCalledWith('familiar-2', expect.anything()); + }); + + it('omits analytics query members that were not supplied', async () => { + const client = createReadClient(); + const adapter = createQueryAdapter(() => client); + + await adapter.familiarAnalytics('familiar-1'); + + // An exact match, not objectContaining: the point is that `window` and + // `recentLimit` are absent rather than forwarded as undefined. + expect(client.familiarAnalytics).toHaveBeenCalledWith('familiar-1', { + signal: expect.any(AbortSignal), + }); + }); + + it('forwards the analytics window and recent limit, keying the cache on both', async () => { + const client = createReadClient(); + const adapter = createQueryAdapter(() => client); + + await adapter.familiarAnalytics('familiar-1', { window: '7d', recentLimit: 5 }); + await adapter.familiarAnalytics('familiar-1', { window: '7d', recentLimit: 5 }); + + expect(client.familiarAnalytics).toHaveBeenCalledTimes(1); + expect(client.familiarAnalytics).toHaveBeenCalledWith( + 'familiar-1', + expect.objectContaining({ window: '7d', recentLimit: 5, signal: expect.any(AbortSignal) }), + ); + + // A different window is a different read, not a cache hit on the first. + await adapter.familiarAnalytics('familiar-1', { window: '14d', recentLimit: 5 }); + + expect(client.familiarAnalytics).toHaveBeenCalledTimes(2); + }); + + it('marks an older analytics read stale once the ready client identity changes', async () => { + const pending = deferred>>(); + const first = createReadClient({ + familiarAnalytics: vi.fn().mockImplementation(() => pending.promise), + }); + const second = createReadClient(); + let current: CaveReadClient = first; + const adapter = createQueryAdapter(() => current); + + const inflight = adapter.familiarAnalytics('familiar-1'); + current = second; + pending.resolve({ + generatedAt: '2026-08-25T00:00:00.000Z', + windows: {}, + recentAttempts: [], + backfill: { state: 'complete', imported: 0 }, + }); + + await expect(inflight).resolves.toEqual({ status: 'stale' }); + }); + + it('returns not_ready for familiar reads when no ready client is available', async () => { + const adapter = createQueryAdapter(() => null); + + await expect(adapter.familiarContract('familiar-1')).resolves.toEqual({ status: 'not_ready' }); + await expect(adapter.familiarAnalytics('familiar-1')).resolves.toEqual({ status: 'not_ready' }); + }); + it('returns frozen immutable snapshots for successful reads and result objects', async () => { const source = { data: [{ id: 'familiar-1', displayName: 'Mara', role: 'Guide' }],