jeeves-watcher
    Preparing search index...

    Variable watcherHealthSchemaConst

    watcherHealthSchema: ZodObject<
        {
            changeSource: ZodOptional<
                ZodObject<
                    {
                        lastReconcileAt: ZodNullable<ZodString>;
                        lastReconcileDurationMs: ZodNullable<ZodNumber>;
                        lastRenewDurationMs: ZodNullable<ZodNumber>;
                        lastRestartAt: ZodNullable<ZodString>;
                        lastRestartCause: ZodNullable<
                            ZodEnum<
                                {
                                    "root-gone": "root-gone";
                                    "subscription-error": "subscription-error";
                                    "watch-config-changed": "watch-config-changed";
                                },
                            >,
                        >;
                        pendingStability: ZodNumber;
                        reconcileErrors: ZodNumber;
                        reconcileEvents: ZodNumber;
                        renewFailures: ZodNumber;
                        resubscribes: ZodNumber;
                        source: ZodEnum<{ chokidar: "chokidar"; parcel: "parcel" }>;
                        unavailableRoots: ZodNumber;
                    },
                    $strip,
                >,
            >;
            collection: ZodOptional<
                ZodObject<
                    {
                        dimensions: ZodNumber;
                        name: ZodString;
                        pointCount: ZodNumber;
                        systemIndexes: ZodOptional<
                            ZodRecord<
                                ZodString,
                                ZodEnum<
                                    {
                                        building: "building";
                                        conflict: "conflict";
                                        failed: "failed";
                                        ready: "ready";
                                    },
                                >,
                            >,
                        >;
                    },
                    $strip,
                >,
            >;
            embedding: ZodOptional<
                ZodObject<
                    {
                        backoffUntil: ZodNullable<ZodString>;
                        failingSince: ZodNullable<ZodString>;
                        lastError: ZodNullable<
                            ZodObject<{ at: ZodString; code: ZodString }, $strip>,
                        >;
                        lastSuccessAt: ZodNullable<ZodString>;
                        state: ZodEnum<{ failing: "failing"; ok: "ok" }>;
                    },
                    $strip,
                >,
            >;
            error: ZodOptional<ZodString>;
            indexCheck: ZodOptional<
                ZodObject<
                    {
                        at: ZodNullable<ZodString>;
                        capped: ZodNumber;
                        checked: ZodNumber;
                        durationMs: ZodNullable<ZodNumber>;
                        removed: ZodNumber;
                        skippedRoots: ZodNumber;
                        state: ZodEnum<
                            {
                                done: "done";
                                failed: "failed";
                                off: "off";
                                pending: "pending";
                                running: "running";
                            },
                        >;
                    },
                    $strip,
                >,
            >;
            initialScan: ZodOptional<
                ZodObject<
                    {
                        active: ZodBoolean;
                        completedAt: ZodOptional<ZodString>;
                        durationMs: ZodOptional<ZodNumber>;
                        filesEnqueued: ZodOptional<ZodNumber>;
                        filesMatched: ZodOptional<ZodNumber>;
                        startedAt: ZodOptional<ZodString>;
                    },
                    $strip,
                >,
            >;
            reindex: ZodOptional<
                ZodObject<
                    {
                        active: ZodBoolean;
                        filesProcessed: ZodOptional<ZodNumber>;
                        scope: ZodOptional<ZodString>;
                        startedAt: ZodOptional<ZodString>;
                        totalFiles: ZodOptional<ZodNumber>;
                    },
                    $strip,
                >,
            >;
            vcs: ZodOptional<
                ZodObject<
                    {
                        oldestTrippedAt: ZodNullable<ZodString>;
                        pending: ZodNumber;
                        roots: ZodNumber;
                        trippedRoots: ZodNumber;
                    },
                    $strip,
                >,
            >;
        },
        $loose,
    > = ...

    GET /status health: collection, reindex and initial-scan state, or { error } when the vector store is unreachable (status degraded). Loose and optional throughout, so new health keys pass through.