mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 22:36:08 +00:00
Add opt-in Frida session status summaries linked to complete retained Evidence. Share canonical session facts across contracts and preserve observed state, source identity and capture truncation. Validated with native SDK/client workflows, default delivery compatibility, lifecycle and provenance tests. The completed large-history task uses 50.9% fewer estimated request tokens; no general CPU or latency improvement is claimed. Fixes #5640
28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { z } from "zod";
|
|
|
|
/** Delivery selection is separate from the provider's live session lookup. */
|
|
export const fridaSessionStatusInputSchema = z.strictObject({
|
|
session_id: z.string().uuid(),
|
|
detail: z.enum(["complete", "summary"]).optional(),
|
|
});
|
|
|
|
/** Session identity and state shared by start, status and one-shot observations. */
|
|
export const fridaSessionObservationSchema = z.strictObject({
|
|
session_id: z.string().uuid(),
|
|
device_id: z.string(),
|
|
state: z.enum(["paused", "running", "detached"]),
|
|
target: z.string(),
|
|
pid: z.number().int().nonnegative(),
|
|
mode: z.enum(["attach", "spawn"]),
|
|
});
|
|
|
|
/** Canonical captured facts; message payload meanings remain caller-defined. */
|
|
export const fridaSessionStatusSchema = fridaSessionObservationSchema.extend({
|
|
scripts: z.array(
|
|
z.strictObject({ script_id: z.string().uuid(), name: z.string() }),
|
|
),
|
|
// Evidence validates JSON payloads; status views validate only this envelope.
|
|
messages: z.array(z.unknown()),
|
|
messages_truncated: z.boolean(),
|
|
});
|