@ai-matrx/agents 0.20.6 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../context/react/ContextRulesTable.tsx","../../../context/index.ts","../../../context/react/icons.tsx","../../../context/react/InlineMaxInput.tsx","../../../context/react/shared.ts","../../../context/react/ContextRulesChip.tsx","../../../context/react/ContextRulesPanelBody.tsx"],"sourcesContent":["import * as React from \"react\";\nimport {\n Switch,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n cn,\n} from \"@ai-matrx/design-system\";\n\nimport {\n formatChars,\n type ContextReceiptMismatch,\n type ContextRowOrigin,\n type ResolvedContextRow,\n type SavedContextRule,\n} from \"../index\";\nimport { ArrowDownToLineIcon, TriangleAlertIcon } from \"./icons\";\nimport { InlineMaxInput } from \"./InlineMaxInput\";\nimport {\n LAYER_LABEL,\n describeMismatches,\n inheritedLimit,\n onRequestReason,\n rowId,\n withInclude,\n withLimit,\n} from \"./shared\";\n\nexport type ContextRulesDensity = \"compact\" | \"comfortable\";\n\nexport interface ContextRulesTableProps {\n rows: readonly ResolvedContextRow[];\n cap: number;\n readOnly?: boolean | undefined;\n /** From `compareReceipt` — rows with a mismatch get an amber marker. */\n mismatches?: readonly ContextReceiptMismatch[];\n /** `next === null` resets the person's rule for that key. */\n onChange: (key: string, surfaceKey: string, next: SavedContextRule | null) => void;\n onOpenRow?: (key: string) => void;\n /** `comfortable` = 44px touch rows. Default `compact`. */\n density?: ContextRulesDensity;\n /** Highlights the open row (master/detail). */\n selectedKey?: string | null;\n className?: string;\n}\n\nconst GROUPS: Array<{ origin: ContextRowOrigin; label: string }> = [\n { origin: \"page\", label: \"Page\" },\n { origin: \"attached\", label: \"Attached\" },\n { origin: \"system\", label: \"System\" },\n];\n\nconst GRID = {\n compact: \"grid grid-cols-[minmax(0,1fr)_2.75rem_4rem_6.5rem] items-center gap-x-2 px-2\",\n comfortable: \"grid grid-cols-[minmax(0,1fr)_3rem_4.5rem_9rem] items-center gap-x-2 px-3\",\n} as const;\n\n/**\n * The context rules table: Item | Include | Chars | Inline max. Presentational\n * and state-agnostic — every edit goes out through `onChange`.\n */\nexport function ContextRulesTable({\n rows,\n cap,\n readOnly,\n mismatches,\n onChange,\n onOpenRow,\n density = \"compact\",\n selectedKey,\n className,\n}: ContextRulesTableProps) {\n const comfortable = density === \"comfortable\";\n const present = GROUPS.filter((g) => rows.some((r) => r.origin === g.origin));\n const grouped = present.length > 1;\n\n return (\n <TooltipProvider delayDuration={300} titleTooltips={false}>\n <div role=\"table\" aria-label=\"Context\" data-density={density} className={cn(\"text-xs\", className)}>\n <div\n role=\"row\"\n className={cn(\n GRID[density],\n \"sticky top-0 z-10 h-7 border-b border-border bg-card font-medium text-muted-foreground\",\n )}\n >\n <span role=\"columnheader\">Item</span>\n <span role=\"columnheader\" className=\"text-center\">\n Include\n </span>\n <span role=\"columnheader\" className=\"text-right\">\n Chars\n </span>\n <span role=\"columnheader\" className=\"pr-6 text-right\">\n Inline max\n </span>\n </div>\n {rows.length === 0 ? (\n <div className=\"px-2 py-3 text-center text-muted-foreground\">Nothing in context</div>\n ) : (\n present.map((g) => (\n <div role=\"rowgroup\" key={g.origin} aria-label={grouped ? g.label : undefined}>\n {grouped ? (\n <div\n role=\"row\"\n className=\"flex h-6 items-center bg-muted/40 px-2 font-medium text-muted-foreground\"\n >\n <span role=\"cell\">{g.label}</span>\n </div>\n ) : null}\n {rows\n .filter((r) => r.origin === g.origin)\n .map((row) => (\n <ContextRuleRow\n key={rowId(row)}\n row={row}\n cap={cap}\n density={density}\n readOnly={readOnly}\n selected={selectedKey === row.key}\n mismatches={mismatches?.filter((m) => m.key === row.key) ?? []}\n onChange={onChange}\n onOpenRow={onOpenRow}\n comfortable={comfortable}\n />\n ))}\n </div>\n ))\n )}\n </div>\n </TooltipProvider>\n );\n}\n\ninterface RowProps {\n row: ResolvedContextRow;\n cap: number;\n density: ContextRulesDensity;\n comfortable: boolean;\n readOnly: boolean | undefined;\n selected: boolean;\n mismatches: ContextReceiptMismatch[];\n onChange: ContextRulesTableProps[\"onChange\"];\n onOpenRow: ContextRulesTableProps[\"onOpenRow\"];\n}\n\nfunction ContextRuleRow({\n row,\n cap,\n density,\n comfortable,\n readOnly,\n selected,\n mismatches,\n onChange,\n onOpenRow,\n}: RowProps) {\n const decided = `Include: ${LAYER_LABEL[row.decided_by.include]} · Limit: ${LAYER_LABEL[row.decided_by.max_inline_chars]}`;\n const labelNode = onOpenRow ? (\n <button\n type=\"button\"\n onClick={() => onOpenRow(row.key)}\n className=\"min-w-0 truncate text-left hover:underline focus-visible:underline focus-visible:outline-none\"\n >\n {row.label}\n </button>\n ) : (\n <span className=\"min-w-0 truncate\">{row.label}</span>\n );\n\n return (\n <div\n role=\"row\"\n data-key={row.key}\n data-included={row.include ? \"true\" : \"false\"}\n data-mismatch={mismatches.length > 0 ? \"true\" : undefined}\n aria-selected={selected || undefined}\n className={cn(\n GRID[density],\n \"border-b border-border/50\",\n comfortable ? \"min-h-11\" : \"h-7\",\n selected && \"bg-accent\",\n )}\n >\n <div role=\"cell\" className={cn(\"flex min-w-0 items-center gap-1.5\", !row.include && \"opacity-50\")}>\n {mismatches.length > 0 ? (\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n role=\"img\"\n aria-label=\"Mismatch\"\n className=\"inline-flex shrink-0 text-warning\"\n >\n <TriangleAlertIcon className=\"h-3.5 w-3.5\" />\n </span>\n </TooltipTrigger>\n <TooltipContent>{describeMismatches(mismatches)}</TooltipContent>\n </Tooltip>\n ) : null}\n <Tooltip>\n <TooltipTrigger asChild>{labelNode}</TooltipTrigger>\n <TooltipContent>\n <div>{row.label}</div>\n <div className=\"font-normal text-muted-foreground\">{decided}</div>\n </TooltipContent>\n </Tooltip>\n {comfortable ? (\n <span className=\"ml-auto shrink-0 rounded bg-muted px-1 text-[0.6875rem] leading-4 text-muted-foreground\">\n {LAYER_LABEL[row.decided_by.max_inline_chars]}\n </span>\n ) : null}\n </div>\n <div role=\"cell\" className=\"flex justify-center\">\n <Switch\n size=\"sm\"\n aria-label={`Include ${row.label}`}\n checked={row.include}\n disabled={readOnly}\n onCheckedChange={(next) => onChange(row.key, row.surfaceKey, withInclude(row, next))}\n />\n </div>\n <div\n role=\"cell\"\n className={cn(\"flex items-center justify-end gap-1 tabular-nums\", !row.include && \"opacity-50\")}\n >\n {row.include && row.delivery === \"on_request\" ? (\n <Tooltip>\n <TooltipTrigger asChild>\n <span role=\"img\" aria-label=\"On request\" className=\"inline-flex text-muted-foreground\">\n <ArrowDownToLineIcon className=\"h-3 w-3\" />\n </span>\n </TooltipTrigger>\n <TooltipContent>{onRequestReason(row)}</TooltipContent>\n </Tooltip>\n ) : null}\n <span>{formatChars(row.chars)}</span>\n </div>\n <div role=\"cell\">\n <InlineMaxInput\n label={row.label}\n value={row.userRule?.max_inline_chars ?? null}\n inherited={inheritedLimit(row, cap)}\n cap={cap}\n disabled={readOnly}\n comfortable={comfortable}\n onCommit={(next) => onChange(row.key, row.surfaceKey, withLimit(row, next))}\n />\n </div>\n </div>\n );\n}\n","/**\n * @ai-matrx/agents/context — the context value rules, headless.\n *\n * Contract: common-docs/systems/scopes-context/context-delivery/RULES.md.\n * Parity corpus: ./rules-corpus.json (run here by rules.test.ts and by aidream's\n * pytest against the Python twin `resolve_context_rule`). Every function here\n * is pure, zero-React, and safe to import on a server.\n *\n * The one flow a client runs per turn:\n * rows = values.map(v => resolveContextRow(v, savedRows, cap)) // what the table shows\n * context = buildContextWire(rows) // what the request sends\n * …on `context_receipt`: compareReceipt(rows, receipt) // screen vs server\n */\n\n// ── Constants ───────────────────────────────────────────────────────────────\n\n/** `users.user_surface_state.feature` for the person's saved rules. */\nexport const CONTEXT_RULES_FEATURE = \"context_rules\";\n/** Surface key for values no surface emitted (attachments, server-added values). */\nexport const DEFAULT_SURFACE_KEY = \"_default\";\n/** The server's default inline threshold when no layer sets one. */\nexport const DEFAULT_INLINE_MAX_CHARS = 200;\n/** The default ceiling every resolved limit is clamped to (a server knob). */\nexport const DEFAULT_INLINE_CAP = 50000;\n\n// ── Types ───────────────────────────────────────────────────────────────────\n\n/** Which layer decided a field — lowest to highest. */\nexport type ContextLayer = \"default\" | \"page\" | \"agent\" | \"you\";\nexport type ContextDelivery = \"inline\" | \"on_request\" | \"off\";\n\n/** One saved per-person rule (one key on one surface). Both fields optional. */\nexport interface SavedContextRule {\n include?: boolean;\n max_inline_chars?: number;\n}\n\n/** `{ [surface_key]: { [context key]: SavedContextRule } }` — the person's rows. */\nexport type SavedContextRuleRows = Record<string, Record<string, SavedContextRule>>;\n\n/** The agent layer for one key (RULES.md §2). */\nexport interface ContextAgentLayer {\n /** The agent's Context Policy declares this key (or the value is the agent's own seed). */\n declared?: boolean;\n /** The policy's ceiling; only read when `declared`. */\n max_inline_chars?: number | null;\n /** `auto_context_disabled` — closes every undeclared key. */\n kill_switch?: boolean;\n}\n\n/** The page layer for one key: the surface that emitted the value. */\nexport interface ContextSurfaceLayer {\n /** The surface declares this value (a `ui_surface_value` row / manifest entry). */\n declared?: boolean;\n /** `false` drops the value unless the agent declares it. */\n auto_context?: boolean | null;\n /** `inlineUpTo` / envelope `max_inline_chars` / DB column. */\n max_inline_chars?: number | null;\n}\n\n/** The non-person layers for one value — what the table's layer breakdown shows. */\nexport interface ContextRuleLayers {\n /** The server's per-key default limit; `null`/absent = 200. */\n default_max?: number | null;\n agent?: ContextAgentLayer | null;\n surface?: ContextSurfaceLayer | null;\n}\n\n/**\n * Input to `resolveContextRule`. Snake case on purpose: it is the corpus shape\n * and the Python twin's shape. `user` is typed loosely because invalid saved\n * values (non-boolean include, non-integer or negative limit) must be ignored,\n * not trusted.\n */\nexport interface ContextRuleInput extends ContextRuleLayers {\n /** Size in code points; `null` = an unresolved lazy source. */\n chars: number | null;\n user?: { include?: unknown; max_inline_chars?: unknown } | null;\n /** Ceiling; default `DEFAULT_INLINE_CAP`. */\n cap?: number;\n}\n\nexport interface ContextRuleResult {\n include: boolean;\n /** Effective limit, after the clamp. */\n max_inline_chars: number;\n delivery: ContextDelivery;\n decided_by: { include: ContextLayer; max_inline_chars: ContextLayer };\n clamped: boolean;\n}\n\n/** One receipt row — RULES.md §5, wire fields exactly. */\nexport interface ContextReceiptRow {\n key: string;\n label: string;\n surface_key: string;\n origin: \"client\" | \"server\" | \"surroundings\" | \"rule\";\n chars: number | null;\n include: boolean;\n max_inline_chars: number;\n delivery: ContextDelivery;\n decided_by: { include: ContextLayer; max_inline_chars: ContextLayer };\n user_rule: { include?: boolean; max_inline_chars?: number } | null;\n clamped: boolean;\n /** The CLIENT itself sent a value the person turned off. */\n client_sent_excluded: boolean;\n /** `\"model\"`: nothing reached a model that reads no context. */\n blocked_by: \"model\" | null;\n}\n\n/** The per-turn receipt the server streams as `context_receipt` — RULES.md §5. */\nexport interface ContextReceipt {\n version: 1;\n surface: string | null;\n cap: number;\n /** False: this turn's model cannot read context at all (every row `blocked_by: \"model\"`). */\n model_reads_context: boolean;\n /** The person's saved rules could not be read; the turn ran without them. */\n rules_error: string | null;\n rows: ContextReceiptRow[];\n}\n\nexport type ContextRowOrigin = \"page\" | \"attached\" | \"system\";\n\n/** A client's resolved row: what its table renders and what `buildContextWire` sends. */\nexport interface ResolvedContextRow extends ContextRuleResult {\n key: string;\n label: string;\n surfaceKey: string;\n origin: ContextRowOrigin;\n /** The raw value, or an already-rich envelope (`{ content, type, … }`). */\n value: unknown;\n chars: number | null;\n /** The saved rule that was applied (merged `_default` + surface row), or null. */\n userRule: SavedContextRule | null;\n description?: string;\n /** Context object type for the wire envelope (`text`, `json`, …). */\n type?: string;\n /** The non-person layers the rule was resolved from. Absent = default only. */\n layers?: ContextRuleLayers;\n}\n\n/** What a client knows about one value before resolution. */\nexport interface ContextRowSource {\n key: string;\n label: string;\n surfaceKey?: string;\n origin: ContextRowOrigin;\n value: unknown;\n /** Override the measured size (e.g. `null` for an unresolved lazy source). */\n chars?: number | null;\n description?: string;\n type?: string;\n layers?: ContextRuleLayers;\n}\n\n// ── Helpers ─────────────────────────────────────────────────────────────────\n\nconst isNum = (v: unknown): v is number => typeof v === \"number\" && Number.isFinite(v);\nconst isValidLimit = (v: unknown): v is number =>\n typeof v === \"number\" && Number.isInteger(v) && v >= 0;\n\n// ── resolveContextRule — RULES.md §2, line for line ─────────────────────────\n\nexport function resolveContextRule(input: ContextRuleInput): ContextRuleResult {\n const agent = input.agent ?? null;\n const surface = input.surface ?? null;\n const user = input.user ?? null;\n const cap = isNum(input.cap) ? input.cap : DEFAULT_INLINE_CAP;\n const agentDeclared = agent?.declared === true;\n\n let include = true;\n let includeBy: ContextLayer = \"default\";\n if (surface?.declared === true && surface.auto_context === false) {\n if (agentDeclared) {\n include = true;\n includeBy = \"agent\";\n } else {\n include = false;\n includeBy = \"page\";\n }\n }\n if (agent?.kill_switch === true && !agentDeclared) {\n include = false;\n includeBy = \"agent\";\n }\n if (user && typeof user.include === \"boolean\") {\n include = user.include;\n includeBy = \"you\";\n }\n\n let limit = isNum(input.default_max) ? input.default_max : DEFAULT_INLINE_MAX_CHARS;\n let limitBy: ContextLayer = \"default\";\n const a = agentDeclared && isNum(agent?.max_inline_chars) ? agent.max_inline_chars : null;\n const s = isNum(surface?.max_inline_chars) ? surface.max_inline_chars : null;\n if (a !== null && s !== null) {\n if (s < a) {\n limit = s;\n limitBy = \"page\";\n } else {\n limit = a;\n limitBy = \"agent\";\n }\n } else if (a !== null) {\n limit = a;\n limitBy = \"agent\";\n } else if (s !== null) {\n limit = s;\n limitBy = \"page\";\n }\n if (user && isValidLimit(user.max_inline_chars)) {\n limit = user.max_inline_chars;\n limitBy = \"you\";\n }\n const clamped = limit > cap;\n limit = Math.min(limit, cap);\n\n const chars = input.chars;\n const delivery: ContextDelivery = !include\n ? \"off\"\n : chars === null || chars === undefined || limit === 0 || chars > limit\n ? \"on_request\"\n : \"inline\";\n\n return {\n include,\n max_inline_chars: limit,\n delivery,\n decided_by: { include: includeBy, max_inline_chars: limitBy },\n clamped,\n };\n}\n\n// ── contextValueChars — RULES.md §1 ─────────────────────────────────────────\n\n/** Count Unicode code points (never UTF-16 units: `\"😀\".length` is 2). */\nfunction codePoints(s: string): number {\n let n = 0;\n for (const _ of s) n += 1;\n return n;\n}\n\n/**\n * Size of a value in code points, exactly as the server's `content_as_str()`:\n * a string is itself; anything else is `JSON.stringify(value, null, 2)`\n * (Python `json.dumps(value, ensure_ascii=False, indent=2)`). `undefined` → 0.\n */\nexport function contextValueChars(value: unknown): number {\n if (value === undefined) return 0;\n if (typeof value === \"string\") return codePoints(value);\n let text: string | undefined;\n try {\n text = JSON.stringify(value, null, 2);\n } catch {\n text = String(value);\n }\n return text === undefined ? 0 : codePoints(text);\n}\n\n// ── lookupSavedRule — RULES.md §3 ───────────────────────────────────────────\n\nfunction sanitizeRule(raw: unknown): SavedContextRule {\n const out: SavedContextRule = {};\n if (!raw || typeof raw !== \"object\") return out;\n const r = raw as Record<string, unknown>;\n if (typeof r.include === \"boolean\") out.include = r.include;\n if (isValidLimit(r.max_inline_chars)) out.max_inline_chars = r.max_inline_chars;\n return out;\n}\n\n/**\n * The person's rule for one key on one surface: `_default[key]` merged per\n * field under `rows[surfaceKey][key]`, invalid fields stripped. `null` when\n * nothing valid is saved.\n */\nexport function lookupSavedRule(\n rows: SavedContextRuleRows | null | undefined,\n surfaceKey: string,\n key: string,\n): SavedContextRule | null {\n if (!rows || typeof rows !== \"object\") return null;\n const base = sanitizeRule(rows[DEFAULT_SURFACE_KEY]?.[key]);\n const own = surfaceKey === DEFAULT_SURFACE_KEY ? {} : sanitizeRule(rows[surfaceKey]?.[key]);\n const merged: SavedContextRule = { ...base, ...own };\n return Object.keys(merged).length === 0 ? null : merged;\n}\n\n// ── resolveContextRow — the glue a client runs per value ────────────────────\n\n/** Resolve one value into the row the table renders and the wire sends. */\nexport function resolveContextRow(\n source: ContextRowSource,\n savedRows: SavedContextRuleRows | null | undefined,\n cap: number = DEFAULT_INLINE_CAP,\n): ResolvedContextRow {\n const surfaceKey = source.surfaceKey ?? DEFAULT_SURFACE_KEY;\n const chars =\n source.chars !== undefined ? source.chars : contextValueChars(envelopeContent(source.value));\n const userRule = lookupSavedRule(savedRows, surfaceKey, source.key);\n const result = resolveContextRule({ ...(source.layers ?? {}), chars, user: userRule, cap });\n const row: ResolvedContextRow = {\n ...result,\n key: source.key,\n label: source.label,\n surfaceKey,\n origin: source.origin,\n value: source.value,\n chars,\n userRule,\n };\n if (source.description !== undefined) row.description = source.description;\n if (source.type !== undefined) row.type = source.type;\n if (source.layers !== undefined) row.layers = source.layers;\n return row;\n}\n\n// ── buildContextWire — the ONLY producer of a request's `context` ──────────\n\nfunction isEnvelope(value: unknown): value is Record<string, unknown> {\n return (\n !!value &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n Object.prototype.hasOwnProperty.call(value, \"content\")\n );\n}\n\nfunction envelopeContent(value: unknown): unknown {\n return isEnvelope(value) ? value.content : value;\n}\n\n/**\n * Build the request's `context` object from the resolved rows. This is the\n * ONLY function that may produce it, so what the table shows and what the\n * request carries cannot drift apart.\n *\n * - A row whose `include` is false is omitted entirely — it never reaches the\n * wire (RULES.md §1: off means off everywhere).\n * - An included row becomes `{ content, type?, label, description?,\n * max_inline_chars? }`. An already-rich envelope (a value with its own\n * `content`, e.g. a working document carrying `source`/`mutable`/`persist`)\n * keeps every non-rule field it already has; `label`/`description`/`type`\n * are only filled when missing.\n * - `max_inline_chars` on the envelope is the PAGE layer's value only\n * (`layers.surface.max_inline_chars`, else the envelope's own page value).\n * The server reads the person's saved rules itself every turn (RULES.md §3)\n * and the agent layer from its own policy, so the wire must never carry the\n * person's number or the resolved effective limit dressed up as a page rule\n * — that would make a stale client value outrank the server's fresh read.\n */\nexport function buildContextWire(rows: readonly ResolvedContextRow[]): Record<string, unknown> {\n const wire: Record<string, unknown> = {};\n for (const row of rows) {\n if (!row.include) continue;\n const rich = isEnvelope(row.value);\n const envelope: Record<string, unknown> = rich\n ? { ...(row.value as Record<string, unknown>) }\n : { content: row.value };\n delete envelope.max_inline_chars;\n if (envelope.type === undefined && row.type !== undefined) envelope.type = row.type;\n if (envelope.label === undefined) envelope.label = row.label;\n if (envelope.description === undefined && row.description !== undefined) {\n envelope.description = row.description;\n }\n const pageLimit = row.layers?.surface?.max_inline_chars;\n const ownPageLimit = rich ? (row.value as Record<string, unknown>).max_inline_chars : undefined;\n if (isValidLimit(pageLimit)) envelope.max_inline_chars = pageLimit;\n else if (isValidLimit(ownPageLimit)) envelope.max_inline_chars = ownPageLimit;\n wire[row.key] = envelope;\n }\n return wire;\n}\n\n// ── compareReceipt — RULES.md §6 ────────────────────────────────────────────\n\nexport interface ContextReceiptMismatch {\n key: string;\n field: \"include\" | \"max_inline_chars\" | \"delivery\" | \"user_rule\" | \"missing\";\n expected: unknown;\n actual: unknown;\n}\n\nfunction normalizeUserRule(rule: SavedContextRule | null | undefined): SavedContextRule | null {\n const clean = sanitizeRule(rule);\n return Object.keys(clean).length === 0 ? null : clean;\n}\n\nfunction sameRule(a: SavedContextRule | null, b: SavedContextRule | null): boolean {\n if (a === null || b === null) return a === b;\n return a.include === b.include && a.max_inline_chars === b.max_inline_chars;\n}\n\n/**\n * Compare the rows the client resolved (and rendered, and sent) with the\n * receipt the server emitted for the same turn.\n *\n * For each expected row, the receipt row is matched by key + surface key, then\n * by key alone. Compared: `include`, `max_inline_chars`, `delivery` (only when\n * both sides know the size) and `user_rule`. An expected row absent from the\n * receipt is a `missing` mismatch — except a row the client correctly withheld\n * for a reason other than the person's own rule (page `auto_context` off, the\n * agent's kill switch): the client never sent it and the server lists only\n * the person's saved `include: false` rules as `origin: \"rule\"` rows, so its\n * absence is the truth, not a lie. Receipt rows nobody expected are returned\n * as `systemRows` — shown, never hidden.\n */\nexport function compareReceipt(\n expected: readonly ResolvedContextRow[],\n receipt: ContextReceipt,\n): { mismatches: ContextReceiptMismatch[]; systemRows: ContextReceiptRow[] } {\n const mismatches: ContextReceiptMismatch[] = [];\n const used = new Set<ContextReceiptRow>();\n const rows = receipt.rows ?? [];\n\n for (const exp of expected) {\n const actual =\n rows.find((r) => !used.has(r) && r.key === exp.key && r.surface_key === exp.surfaceKey) ??\n rows.find((r) => !used.has(r) && r.key === exp.key);\n if (!actual) {\n const withheldByOthers = !exp.include && exp.decided_by.include !== \"you\";\n if (!withheldByOthers) {\n mismatches.push({ key: exp.key, field: \"missing\", expected: exp.delivery, actual: null });\n }\n continue;\n }\n used.add(actual);\n if (actual.include !== exp.include) {\n mismatches.push({ key: exp.key, field: \"include\", expected: exp.include, actual: actual.include });\n }\n if (actual.max_inline_chars !== exp.max_inline_chars) {\n mismatches.push({\n key: exp.key,\n field: \"max_inline_chars\",\n expected: exp.max_inline_chars,\n actual: actual.max_inline_chars,\n });\n }\n if (exp.chars !== null && actual.chars !== null && actual.delivery !== exp.delivery) {\n mismatches.push({ key: exp.key, field: \"delivery\", expected: exp.delivery, actual: actual.delivery });\n }\n const expRule = normalizeUserRule(exp.userRule);\n const actRule = normalizeUserRule(actual.user_rule);\n if (!sameRule(expRule, actRule)) {\n mismatches.push({ key: exp.key, field: \"user_rule\", expected: expRule, actual: actRule });\n }\n }\n\n return { mismatches, systemRows: rows.filter((r) => !used.has(r)) };\n}\n\n// ── Display ─────────────────────────────────────────────────────────────────\n\n/** Compact size for a tabular column: `950`, `18.4k`, `184k`, `1.2M`, `—` for unknown. */\nexport function formatChars(n: number | null | undefined): string {\n if (n === null || n === undefined || !Number.isFinite(n)) return \"—\";\n const abs = Math.abs(n);\n const trim = (s: string) => s.replace(/\\.0$/, \"\");\n if (abs < 1000) return String(Math.round(n));\n if (abs < 100_000) return `${trim((n / 1000).toFixed(1))}k`;\n if (abs < 1_000_000) return `${Math.round(n / 1000)}k`;\n return `${trim((n / 1_000_000).toFixed(1))}M`;\n}\n","/**\n * Inlined Lucide shapes (C19 — no icon-library dependency): same 24×24 grid,\n * 2px stroke, `currentColor` only. Names match the Lucide originals.\n */\nimport type { ReactNode, SVGProps } from \"react\";\n\nexport type ContextIconProps = SVGProps<SVGSVGElement>;\n\nfunction icon(children: ReactNode) {\n return function Icon(props: ContextIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n {children}\n </svg>\n );\n };\n}\n\nexport const EyeIcon = icon(\n <>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n);\nexport const EyeOffIcon = icon(\n <>\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </>,\n);\nexport const RotateCcwIcon = icon(\n <>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </>,\n);\nexport const PanelRightIcon = icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M15 3v18\" />\n </>,\n);\nexport const ChevronLeftIcon = icon(<path d=\"m15 18-6-6 6-6\" />);\nexport const TriangleAlertIcon = icon(\n <>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </>,\n);\nexport const SearchIcon = icon(\n <>\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </>,\n);\n/** \"On request\" — the agent pulls the value down when it needs it. */\nexport const ArrowDownToLineIcon = icon(\n <>\n <path d=\"M12 17V3\" />\n <path d=\"m6 11 6 6 6-6\" />\n <path d=\"M19 21H5\" />\n </>,\n);\n","import * as React from \"react\";\nimport {\n Input,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n cn,\n} from \"@ai-matrx/design-system\";\n\nimport { RotateCcwIcon } from \"./icons\";\nimport { formatLimit } from \"./shared\";\n\nexport interface InlineMaxInputProps {\n /** The person's own limit, or null when inherited. */\n value: number | null;\n /** What applies without the person's number (shown muted). */\n inherited: number;\n cap: number;\n /** Next limit, or null to drop the person's number. */\n onCommit: (next: number | null) => void;\n disabled?: boolean | undefined;\n /** Accessible name — the row's label. */\n label: string;\n comfortable?: boolean;\n}\n\n/**\n * The Inline max cell: a 6ch numeric field. Inherited value shows as muted\n * placeholder text; an override shows a dot and a reset button. `0` reads\n * \"Never\". Commits on blur/Enter, Escape reverts, above-cap is clamped on\n * commit with a brief \"Limit is {cap}\" tooltip.\n */\nexport function InlineMaxInput({\n value,\n inherited,\n cap,\n onCommit,\n disabled,\n label,\n comfortable,\n}: InlineMaxInputProps) {\n const [focused, setFocused] = React.useState(false);\n const [draft, setDraft] = React.useState(\"\");\n const [notice, setNotice] = React.useState(false);\n const skip = React.useRef(false);\n\n React.useEffect(() => {\n if (!notice) return;\n const t = setTimeout(() => setNotice(false), 2000);\n return () => clearTimeout(t);\n }, [notice]);\n\n const commit = () => {\n const text = draft.trim();\n let next: number | null;\n if (text === \"\") next = null;\n else if (/^never$/i.test(text)) next = 0;\n else if (/^\\d+$/.test(text)) next = Number(text);\n else return;\n if (next !== null && next > cap) {\n next = cap;\n setNotice(true);\n }\n if (next !== value) onCommit(next);\n };\n\n const overridden = value !== null;\n\n return (\n <div className=\"flex items-center justify-end gap-1\">\n <span\n aria-hidden=\"true\"\n className={cn(\"h-1.5 w-1.5 shrink-0 rounded-full\", overridden ? \"bg-primary\" : \"bg-transparent\")}\n />\n <Tooltip open={notice}>\n <TooltipTrigger asChild>\n <Input\n type=\"text\"\n inputMode=\"numeric\"\n aria-label={`Inline max for ${label}`}\n disabled={disabled}\n value={focused ? draft : overridden ? formatLimit(value) : \"\"}\n placeholder={overridden ? undefined : formatLimit(inherited)}\n onFocus={() => {\n setDraft(overridden ? String(value) : \"\");\n setFocused(true);\n }}\n onChange={(e) => setDraft(e.target.value)}\n onBlur={() => {\n setFocused(false);\n if (skip.current) {\n skip.current = false;\n return;\n }\n commit();\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") e.currentTarget.blur();\n else if (e.key === \"Escape\") {\n e.stopPropagation();\n skip.current = true;\n e.currentTarget.blur();\n }\n }}\n className={cn(\n \"w-[6.5ch] min-w-0 rounded px-1 py-0 text-right tabular-nums shadow-none\",\n comfortable ? \"h-8 text-base\" : \"h-6 text-xs\",\n )}\n />\n </TooltipTrigger>\n <TooltipContent>{`Limit is ${cap}`}</TooltipContent>\n </Tooltip>\n {overridden && !disabled ? (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label={`Reset inline max for ${label}`}\n onClick={() => onCommit(null)}\n className={cn(\n \"inline-flex shrink-0 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-foreground\",\n comfortable ? \"h-8 w-8\" : \"h-5 w-5\",\n )}\n >\n <RotateCcwIcon className=\"h-3 w-3\" />\n </button>\n </TooltipTrigger>\n <TooltipContent>{`Reset to ${formatLimit(inherited)}`}</TooltipContent>\n </Tooltip>\n ) : (\n <span aria-hidden=\"true\" className={cn(\"shrink-0\", comfortable ? \"w-8\" : \"w-5\")} />\n )}\n </div>\n );\n}\n","import {\n resolveContextRule,\n type ContextDelivery,\n type ContextLayer,\n type ContextReceiptMismatch,\n type ResolvedContextRow,\n type SavedContextRule,\n} from \"../index\";\n\nexport const LAYER_LABEL: Record<ContextLayer, string> = {\n default: \"Default\",\n page: \"Page\",\n agent: \"Agent\",\n you: \"You\",\n};\n\nexport const DELIVERY_LABEL: Record<ContextDelivery, string> = {\n inline: \"Inline\",\n on_request: \"On request\",\n off: \"Off\",\n};\n\n/** `0` is \"Never\"; anything else is the number as typed. */\nexport function formatLimit(n: number): string {\n return n === 0 ? \"Never\" : String(n);\n}\n\n/** The limit this row would have without the person's own number. */\nexport function inheritedLimit(row: ResolvedContextRow, cap: number): number {\n return resolveContextRule({ ...(row.layers ?? {}), chars: row.chars, cap, user: null })\n .max_inline_chars;\n}\n\nexport function hasOverride(row: ResolvedContextRow): boolean {\n return row.userRule !== null && Object.keys(row.userRule).length > 0;\n}\n\nexport function withInclude(row: ResolvedContextRow, include: boolean): SavedContextRule {\n return { ...(row.userRule ?? {}), include };\n}\n\nexport function withLimit(row: ResolvedContextRow, limit: number | null): SavedContextRule | null {\n const next: SavedContextRule = { ...(row.userRule ?? {}) };\n if (limit === null) delete next.max_inline_chars;\n else next.max_inline_chars = limit;\n return Object.keys(next).length === 0 ? null : next;\n}\n\nexport function rowId(row: ResolvedContextRow): string {\n return `${row.surfaceKey}::${row.key}`;\n}\n\nfunction show(field: ContextReceiptMismatch[\"field\"], v: unknown): string {\n if (v === null || v === undefined) return \"none\";\n if (typeof v === \"boolean\") return v ? \"On\" : \"Off\";\n if (typeof v === \"number\") return formatLimit(v);\n if (field === \"delivery\" || field === \"missing\") {\n return DELIVERY_LABEL[v as ContextDelivery] ?? String(v);\n }\n if (typeof v === \"object\") {\n const r = v as SavedContextRule;\n const parts: string[] = [];\n if (r.include !== undefined) parts.push(r.include ? \"On\" : \"Off\");\n if (r.max_inline_chars !== undefined) parts.push(formatLimit(r.max_inline_chars));\n return parts.join(\", \") || \"none\";\n }\n return String(v);\n}\n\nconst FIELD_LABEL: Record<ContextReceiptMismatch[\"field\"], string> = {\n include: \"Include\",\n max_inline_chars: \"Inline max\",\n delivery: \"Delivery\",\n user_rule: \"Your rule\",\n missing: \"Not sent\",\n};\n\n/** One line per mismatch — \"Inline max: expected 8000, got 200\". Tooltip-sized. */\nexport function describeMismatches(list: readonly ContextReceiptMismatch[]): string {\n const text = list\n .map((m) =>\n m.field === \"missing\"\n ? \"Missing from the server's receipt\"\n : `${FIELD_LABEL[m.field]}: expected ${show(m.field, m.expected)}, got ${show(m.field, m.actual)}`,\n )\n .join(\" · \");\n return text.length > 140 ? `${text.slice(0, 139)}…` : text;\n}\n\n/** Tooltip for the \"on request\" marker, by why the value is not inline. */\nexport function onRequestReason(row: ResolvedContextRow): string {\n if (row.chars === null) return \"Size unknown — the agent reads it on request\";\n if (row.max_inline_chars === 0) return \"Never inline — the agent reads it on request\";\n return \"Over the limit — the agent reads it on request\";\n}\n","import * as React from \"react\";\nimport {\n BottomSheet,\n Popover,\n PopoverContent,\n PopoverTrigger,\n Switch,\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n cn,\n} from \"@ai-matrx/design-system\";\n\nimport {\n formatChars,\n type ContextReceiptMismatch,\n type ResolvedContextRow,\n type SavedContextRule,\n} from \"../index\";\nimport { ContextRulesTable } from \"./ContextRulesTable\";\nimport { EyeIcon, EyeOffIcon, PanelRightIcon, RotateCcwIcon, TriangleAlertIcon } from \"./icons\";\nimport { hasOverride } from \"./shared\";\n\nexport interface ContextRulesChipProps {\n /** The page's name — \"Notes\", \"Invoice 1042\". */\n label: string;\n rows: readonly ResolvedContextRow[];\n cap: number;\n /** Page context on/off. */\n on: boolean;\n onToggleAll: (next: boolean) => void;\n onChange: (key: string, surfaceKey: string, next: SavedContextRule | null) => void;\n onResetAll: () => void;\n onOpenFullView: () => void;\n mismatchCount?: number;\n mismatches?: readonly ContextReceiptMismatch[];\n onOpenRow?: (key: string) => void;\n /** Bottom sheet instead of a popover. */\n isMobile?: boolean;\n readOnly?: boolean | undefined;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n className?: string;\n}\n\nfunction summarize(rows: readonly ResolvedContextRow[]) {\n let count = 0;\n let chars = 0;\n for (const r of rows) {\n if (!r.include) continue;\n count += 1;\n chars += r.chars ?? 0;\n }\n return { count, chars };\n}\n\nfunction IconButton({\n label,\n onClick,\n comfortable,\n children,\n}: {\n label: string;\n onClick: () => void;\n comfortable: boolean;\n children: React.ReactNode;\n}) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n onClick={onClick}\n className={cn(\n \"inline-flex shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground\",\n comfortable ? \"h-11 w-11\" : \"h-7 w-7\",\n )}\n >\n {children}\n </button>\n </TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n );\n}\n\n/**\n * The composer's context chip and the surface it opens: a header (label,\n * \"N · chars\" summary, page master switch, reset-all, full view) over the\n * compact rules table. Popover on desktop, bottom sheet on mobile.\n */\nexport function ContextRulesChip({\n label,\n rows,\n cap,\n on,\n onToggleAll,\n onChange,\n onResetAll,\n onOpenFullView,\n mismatchCount = 0,\n mismatches,\n onOpenRow,\n isMobile,\n readOnly,\n open: openProp,\n onOpenChange,\n className,\n}: ContextRulesChipProps) {\n const [openState, setOpenState] = React.useState(false);\n const open = openProp ?? openState;\n const setOpen = (next: boolean) => {\n if (openProp === undefined) setOpenState(next);\n onOpenChange?.(next);\n };\n const { count, chars } = summarize(rows);\n const anyOverride = rows.some(hasOverride);\n const warn = mismatchCount > 0;\n const comfortable = !!isMobile;\n\n const face = (\n <button\n type=\"button\"\n aria-label={`Context: ${label}`}\n data-mismatch={warn ? \"true\" : undefined}\n onClick={isMobile ? () => setOpen(true) : undefined}\n className={cn(\n \"inline-flex h-7 max-w-[14rem] items-center gap-1.5 rounded-full border border-border bg-card px-2 text-xs text-foreground hover:bg-accent\",\n !on && \"text-muted-foreground\",\n warn && \"border-warning/60 ring-1 ring-warning\",\n className,\n )}\n >\n {on ? <EyeIcon className=\"h-3.5 w-3.5 shrink-0\" /> : <EyeOffIcon className=\"h-3.5 w-3.5 shrink-0\" />}\n <span className=\"min-w-0 truncate\">{label}</span>\n <span className=\"shrink-0 tabular-nums text-muted-foreground\">{count}</span>\n {warn ? (\n <span className=\"inline-flex shrink-0 items-center gap-0.5 tabular-nums text-warning\">\n <TriangleAlertIcon className=\"h-3 w-3\" />\n {mismatchCount}\n </span>\n ) : null}\n </button>\n );\n\n const body = (\n <div className=\"flex min-h-0 flex-col\">\n <div\n className={cn(\n \"flex shrink-0 items-center gap-2 border-b border-border px-3\",\n comfortable ? \"h-12\" : \"h-10\",\n )}\n >\n {on ? (\n <EyeIcon className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n ) : (\n <EyeOffIcon className=\"h-4 w-4 shrink-0 text-muted-foreground\" />\n )}\n <span className=\"min-w-0 truncate text-sm font-medium\">{label}</span>\n <span className=\"shrink-0 text-xs tabular-nums text-muted-foreground\">\n {`${count} · ${formatChars(chars)} chars`}\n </span>\n <div className=\"ml-auto flex shrink-0 items-center gap-0.5\">\n <Switch\n size=\"sm\"\n aria-label=\"Page context\"\n checked={on}\n disabled={readOnly}\n onCheckedChange={onToggleAll}\n className=\"mr-1\"\n />\n {anyOverride && !readOnly ? (\n <IconButton label=\"Reset all\" onClick={onResetAll} comfortable={comfortable}>\n <RotateCcwIcon className=\"h-3.5 w-3.5\" />\n </IconButton>\n ) : null}\n <IconButton\n label=\"Open full view\"\n comfortable={comfortable}\n onClick={() => {\n setOpen(false);\n onOpenFullView();\n }}\n >\n <PanelRightIcon className=\"h-3.5 w-3.5\" />\n </IconButton>\n </div>\n </div>\n <div className={cn(\"min-h-0 overflow-y-auto\", comfortable ? \"max-h-[70dvh]\" : \"max-h-[min(24rem,60vh)]\")}>\n <ContextRulesTable\n rows={rows}\n cap={cap}\n readOnly={readOnly}\n density={comfortable ? \"comfortable\" : \"compact\"}\n onChange={onChange}\n {...(mismatches ? { mismatches } : {})}\n {...(onOpenRow ? { onOpenRow } : {})}\n />\n </div>\n </div>\n );\n\n if (isMobile) {\n return (\n <TooltipProvider delayDuration={300} titleTooltips={false}>\n {face}\n <BottomSheet open={open} onOpenChange={setOpen} title={label} surface=\"solid\">\n {body}\n </BottomSheet>\n </TooltipProvider>\n );\n }\n\n return (\n <TooltipProvider delayDuration={300} titleTooltips={false}>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>{face}</PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-[26rem] max-w-[calc(100vw-1rem)] overflow-hidden p-0\"\n >\n {body}\n </PopoverContent>\n </Popover>\n </TooltipProvider>\n );\n}\n","import * as React from \"react\";\nimport {\n Input,\n Switch,\n TooltipProvider,\n cn,\n} from \"@ai-matrx/design-system\";\n\nimport {\n DEFAULT_INLINE_MAX_CHARS,\n formatChars,\n type ContextLayer,\n type ContextReceiptMismatch,\n type ResolvedContextRow,\n type SavedContextRule,\n} from \"../index\";\nimport { ContextRulesTable } from \"./ContextRulesTable\";\nimport { ChevronLeftIcon, SearchIcon, TriangleAlertIcon } from \"./icons\";\nimport { InlineMaxInput } from \"./InlineMaxInput\";\nimport {\n DELIVERY_LABEL,\n LAYER_LABEL,\n describeMismatches,\n formatLimit,\n inheritedLimit,\n withInclude,\n withLimit,\n} from \"./shared\";\n\nexport interface ContextRulesPanelBodyProps {\n rows: readonly ResolvedContextRow[];\n cap: number;\n mismatches?: readonly ContextReceiptMismatch[];\n readOnly?: boolean | undefined;\n onChange: (key: string, surfaceKey: string, next: SavedContextRule | null) => void;\n /** Host content under the built-in controls (a value preview, source link…). */\n renderDetail?: (row: ResolvedContextRow) => React.ReactNode;\n isMobile?: boolean;\n /** Controlled selection; omit for internal state. */\n selectedKey?: string | null;\n onSelectedKeyChange?: (key: string | null) => void;\n className?: string;\n}\n\ninterface LayerCell {\n include: string;\n limit: string;\n}\n\n/** What each layer says about this row; \"—\" where the layer is silent. */\nfunction layerCells(row: ResolvedContextRow): Record<ContextLayer, LayerCell> {\n const { surface, agent, default_max } = row.layers ?? {};\n const declared = agent?.declared === true;\n const pageOff = surface?.declared === true && surface.auto_context === false;\n const num = (n: number | null | undefined) => (typeof n === \"number\" ? formatLimit(n) : \"—\");\n const rule = row.userRule;\n return {\n default: { include: \"On\", limit: formatLimit(default_max ?? DEFAULT_INLINE_MAX_CHARS) },\n page: { include: pageOff ? \"Off\" : \"—\", limit: num(surface?.max_inline_chars) },\n agent: {\n include: agent?.kill_switch && !declared ? \"Off\" : declared && pageOff ? \"On\" : \"—\",\n limit: declared ? num(agent?.max_inline_chars) : \"—\",\n },\n you: {\n include: rule?.include === undefined ? \"—\" : rule.include ? \"On\" : \"Off\",\n limit: num(rule?.max_inline_chars),\n },\n };\n}\n\nconst LAYERS: ContextLayer[] = [\"default\", \"page\", \"agent\", \"you\"];\n\nfunction LayerTable({ row }: { row: ResolvedContextRow }) {\n const cells = layerCells(row);\n const cell = (text: string, winning: boolean) => (\n <span\n role=\"cell\"\n data-winning={winning ? \"true\" : undefined}\n className={cn(\n \"rounded px-1.5 py-0.5 text-right tabular-nums\",\n winning ? \"bg-primary/10 font-medium text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {text}\n </span>\n );\n return (\n <div role=\"table\" aria-label=\"Layers\" className=\"text-xs\">\n <div\n role=\"row\"\n className=\"grid h-7 grid-cols-[1fr_5rem_5rem] items-center gap-x-2 border-b border-border font-medium text-muted-foreground\"\n >\n <span role=\"columnheader\">Layer</span>\n <span role=\"columnheader\" className=\"text-right\">\n Include\n </span>\n <span role=\"columnheader\" className=\"text-right\">\n Inline max\n </span>\n </div>\n {LAYERS.map((layer) => (\n <div\n role=\"row\"\n key={layer}\n className=\"grid h-7 grid-cols-[1fr_5rem_5rem] items-center gap-x-2 border-b border-border/50\"\n >\n <span role=\"cell\">{LAYER_LABEL[layer]}</span>\n {cell(cells[layer].include, row.decided_by.include === layer)}\n {cell(cells[layer].limit, row.decided_by.max_inline_chars === layer)}\n </div>\n ))}\n </div>\n );\n}\n\nfunction RowDetail({\n row,\n cap,\n readOnly,\n mismatches,\n onChange,\n renderDetail,\n comfortable,\n}: {\n row: ResolvedContextRow;\n cap: number;\n readOnly: boolean | undefined;\n mismatches: ContextReceiptMismatch[];\n onChange: ContextRulesPanelBodyProps[\"onChange\"];\n renderDetail: ContextRulesPanelBodyProps[\"renderDetail\"];\n comfortable: boolean;\n}) {\n return (\n <div className=\"flex flex-col gap-3 p-3\">\n <div className=\"flex min-w-0 items-baseline gap-2\">\n <h3 className=\"min-w-0 truncate text-sm font-medium\">{row.label}</h3>\n <span className=\"shrink-0 text-xs tabular-nums text-muted-foreground\">\n {`${formatChars(row.chars)} chars · ${DELIVERY_LABEL[row.delivery]}`}\n </span>\n </div>\n {mismatches.length > 0 ? (\n <div className=\"flex items-start gap-1.5 rounded-md border border-warning/40 bg-warning/10 px-2 py-1.5 text-xs text-warning\">\n <TriangleAlertIcon className=\"mt-0.5 h-3.5 w-3.5 shrink-0\" />\n <span>{describeMismatches(mismatches)}</span>\n </div>\n ) : null}\n <div className=\"grid grid-cols-[auto_1fr] items-center gap-x-4 gap-y-2 text-xs\">\n <span className=\"text-muted-foreground\">Include</span>\n <div className={cn(\"flex items-center\", comfortable ? \"h-11\" : \"h-7\")}>\n <Switch\n size=\"sm\"\n aria-label={`Include ${row.label}`}\n checked={row.include}\n disabled={readOnly}\n onCheckedChange={(next) => onChange(row.key, row.surfaceKey, withInclude(row, next))}\n />\n </div>\n <span className=\"text-muted-foreground\">Inline max</span>\n <div className=\"flex\">\n <InlineMaxInput\n label={row.label}\n value={row.userRule?.max_inline_chars ?? null}\n inherited={inheritedLimit(row, cap)}\n cap={cap}\n disabled={readOnly}\n comfortable={comfortable}\n onCommit={(next) => onChange(row.key, row.surfaceKey, withLimit(row, next))}\n />\n </div>\n </div>\n <LayerTable row={row} />\n {renderDetail ? renderDetail(row) : null}\n </div>\n );\n}\n\n/**\n * Master/detail body for a docked context panel: search + compact table on\n * the left, the open row's controls, layer breakdown and host detail on the\n * right. On mobile: list, then detail with Back.\n */\nexport function ContextRulesPanelBody({\n rows,\n cap,\n mismatches,\n readOnly,\n onChange,\n renderDetail,\n isMobile,\n selectedKey: selectedProp,\n onSelectedKeyChange,\n className,\n}: ContextRulesPanelBodyProps) {\n const [selectedState, setSelectedState] = React.useState<string | null>(null);\n const [query, setQuery] = React.useState(\"\");\n const selectedKey = selectedProp !== undefined ? selectedProp : selectedState;\n const select = (key: string | null) => {\n if (selectedProp === undefined) setSelectedState(key);\n onSelectedKeyChange?.(key);\n };\n\n const q = query.trim().toLowerCase();\n const visible = q\n ? rows.filter((r) => r.label.toLowerCase().includes(q) || r.key.toLowerCase().includes(q))\n : rows;\n const selected = selectedKey ? rows.find((r) => r.key === selectedKey) ?? null : null;\n const comfortable = !!isMobile;\n\n const search = (\n <div className=\"relative shrink-0 border-b border-border p-2\">\n <SearchIcon className=\"pointer-events-none absolute left-4 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground\" />\n <Input\n type=\"search\"\n aria-label=\"Search context\"\n placeholder=\"Search\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n className={cn(\"pl-7 shadow-none\", comfortable ? \"h-11 text-base\" : \"h-8 text-xs\")}\n />\n </div>\n );\n\n const table = (\n <div className=\"min-h-0 flex-1 overflow-y-auto\">\n <ContextRulesTable\n rows={visible}\n cap={cap}\n readOnly={readOnly}\n density={comfortable ? \"comfortable\" : \"compact\"}\n selectedKey={selectedKey}\n onChange={onChange}\n onOpenRow={(key) => select(key)}\n {...(mismatches ? { mismatches } : {})}\n />\n </div>\n );\n\n const detail = selected ? (\n <RowDetail\n row={selected}\n cap={cap}\n readOnly={readOnly}\n mismatches={mismatches?.filter((m) => m.key === selected.key) ?? []}\n onChange={onChange}\n renderDetail={renderDetail}\n comfortable={comfortable}\n />\n ) : null;\n\n if (isMobile) {\n return (\n <TooltipProvider delayDuration={300} titleTooltips={false}>\n <div className={cn(\"flex h-full min-h-0 flex-col\", className)}>\n {selected ? (\n <>\n <div className=\"flex h-12 shrink-0 items-center border-b border-border px-1\">\n <button\n type=\"button\"\n onClick={() => select(null)}\n className=\"inline-flex h-11 items-center gap-1 rounded-md px-2 text-sm text-muted-foreground hover:text-foreground\"\n >\n <ChevronLeftIcon className=\"h-4 w-4\" />\n Back\n </button>\n </div>\n <div className=\"min-h-0 flex-1 overflow-y-auto\">{detail}</div>\n </>\n ) : (\n <>\n {search}\n {table}\n </>\n )}\n </div>\n </TooltipProvider>\n );\n }\n\n return (\n <TooltipProvider delayDuration={300} titleTooltips={false}>\n <div className={cn(\"flex h-full min-h-0\", className)}>\n <aside className=\"flex w-[22rem] shrink-0 flex-col border-r border-border\">\n {search}\n {table}\n </aside>\n <section className=\"min-h-0 min-w-0 flex-1 overflow-y-auto\">\n {detail ?? (\n <div className=\"flex h-full items-center justify-center text-xs text-muted-foreground\">\n Select an item\n </div>\n )}\n </section>\n </div>\n </TooltipProvider>\n );\n}\n"],"mappings":"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","names":["Tooltip","TooltipContent","TooltipTrigger","cn","jsx","jsxs","jsx","jsxs","cn","Tooltip","TooltipTrigger","TooltipContent","React","Switch","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","cn","jsx","jsxs","Tooltip","TooltipTrigger","cn","TooltipContent","Switch","TooltipProvider","React","Input","Switch","TooltipProvider","cn","Fragment","jsx","jsxs","cn","Switch","Input","TooltipProvider"]}
@@ -36,9 +36,9 @@ module.exports = __toCommonJS(mandates_exports);
36
36
 
37
37
  // mandates/keys.generated.ts
38
38
  var MANDATE_KEYS_META = {
39
- aidreamRevision: "9e22c4d92deb1c588e4e6061b34f431aa03e67ac",
39
+ aidreamRevision: "5aef83f3d58f9e3d002f99d2279c68e945debfef",
40
40
  generatorVersion: "1.0.0",
41
- packageVersion: "0.20.6",
41
+ packageVersion: "0.21.1",
42
42
  retireWindow: 3
43
43
  };
44
44
  var MANDATE_KEYS = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../mandates/index.ts","../../mandates/keys.generated.ts"],"sourcesContent":["/**\n * `@ai-matrx/agents/mandates` — the ONE place a TypeScript client learns a\n * mandate key.\n *\n * 🚨 **Clients never declare a mandate.** aidream's `declare_mandate` is the\n * only declaration path in the system; this subpath publishes the key set that\n * declaration produced, so a hand-typed `\"seo.keyword_cluster\"` literal, a local\n * `mandates.ts` mirror, or an `as MandateKey` cast is a defect with a real\n * replacement — not a style preference. Every carrier that takes a key should\n * type it `MandateKey` (or `MandateKey | DynamicMandateKey` when it genuinely\n * accepts a DB-authored one) so a wrong key fails type-check instead of failing\n * at run time as a 404 nobody sees.\n *\n * The key data lives in `keys.generated.ts`, emitted by THE ONE GENERATOR\n * (`aidream/scripts/mandates_generate.py`, stage (h)) from the in-process\n * declarations — never edit it. The per-version key set that shipped with each\n * published version is committed beside it under `snapshots/`, so a scan can\n * resolve a client's references against the key set of the version it actually\n * ships (Mandate Declaration & Usage Reporting, DESIGN § 4.5 step 2).\n */\n\nexport {\n ALL_MANDATE_KEYS,\n DYNAMIC_MANDATE_FAMILIES,\n MANDATE_FAMILIES,\n MANDATE_KEYS,\n MANDATE_KEYS_META,\n RETIRING_MANDATE_KEYS,\n mandateKeyOfApp,\n mandateKeyOfShortcut,\n type DynamicMandateFamilyPrefix,\n type DynamicMandateKey,\n type MandateFamilyMember,\n type MandateFamilyPrefix,\n type MandateKey,\n} from \"./keys.generated\";\n\nimport {\n ALL_MANDATE_KEYS,\n MANDATE_KEYS_META,\n type DynamicMandateKey,\n type MandateKey,\n} from \"./keys.generated\";\n\n/**\n * What a carrier accepts when the key may be a declared one OR a DB-authored\n * one (`app.*` / `shortcut.*`, a `mandate.definition` row with origin='user').\n * Carriers that only ever run a declared job stay `MandateKey`.\n *\n * The mandate reference scanner reads a binding of this type as a proven key in\n * flight (`passthrough`), never an `UNRESOLVED_KEY` — so this is THE one\n * definition every client imports, never a local copy.\n */\nexport type AnyMandateKey = MandateKey | DynamicMandateKey;\n\n/**\n * A KEY THE CODE DID NOT CHOOSE, entering the typed world named for what it is:\n * a `mandate_key` column the platform wrote (an agent app's own mandate, a\n * shortcut's, a stored binding row), a stored `mandate:` ref, a saved config.\n *\n * It TYPES and never rejects. The server is the authority on whether the key\n * exists — a key declared after this package version shipped is real there and\n * absent from this build's key set — so narrowing here would send such a key\n * through the wrong door. The server answers an unknown key with a 404 that\n * names it.\n *\n * Never use it on a key your code picks: that key belongs to\n * `MANDATE_KEYS.<id>`, and routing it through here hides a rename from the\n * compiler. For a value that must be PROVEN declared (a URL segment a person\n * could have edited), use `isMandateKey` / `assertMandateKey` instead.\n */\nexport function storedMandateKey(value: string): AnyMandateKey {\n return value as AnyMandateKey;\n}\n\nconst KEY_SET: ReadonlySet<string> = new Set<string>(ALL_MANDATE_KEYS);\n\n/**\n * Narrow an unknown string to a declared `MandateKey`.\n *\n * Use it on anything that crossed a wire — a URL segment, a stored preference,\n * a row's `mandate_key` column. It answers only for the key set THIS package\n * version ships; a key declared after this version was published is correctly\n * `false` here, which is the point of the per-version snapshots.\n */\nexport function isMandateKey(value: unknown): value is MandateKey {\n return typeof value === \"string\" && KEY_SET.has(value);\n}\n\n/**\n * Assert an unknown value is a declared `MandateKey`, or throw with a remedy.\n *\n * Nothing fails silently: the message names the value, the package version its\n * key set came from, and what to do — never a bare \"invalid key\".\n */\nexport function assertMandateKey(\n value: unknown,\n context?: string,\n): asserts value is MandateKey {\n if (isMandateKey(value)) return;\n const where = context ? ` at ${context}` : \"\";\n throw new Error(\n `${JSON.stringify(value)} is not a declared mandate key${where}. ` +\n `@ai-matrx/agents@${MANDATE_KEYS_META.packageVersion} ships ` +\n `${ALL_MANDATE_KEYS.length} keys (aidream ${MANDATE_KEYS_META.aidreamRevision.slice(0, 12)}). ` +\n \"If the key is real, this package is behind — take `latest` and re-check. \" +\n \"If it is a user-built app or shortcut, it is DB-authored: build it with \" +\n \"mandateKeyOfApp() / mandateKeyOfShortcut(), which return DynamicMandateKey.\",\n );\n}\n","/**\n * GENERATED — DO NOT EDIT. Regenerate with:\n * uv run python scripts/mandates_generate.py (aidream repo; --dry-run also writes this file)\n *\n * THE ONE GENERATOR (`aidream/scripts/mandates_generate.py`, stage (h)) emits this\n * from the IN-PROCESS mandate declarations — the same `declared_mandates()` the\n * boot sync writes to the database from. There is no hand list anywhere.\n *\n * aidream revision: 9e22c4d92deb1c588e4e6061b34f431aa03e67ac\n * generator version: 1.0.0\n * package version: 0.20.6\n * active keys: 543\n * retiring keys: 0\n *\n * THE IDENTIFIER RULE: every `.` in a key becomes `__`, any character outside\n * [A-Za-z0-9_] becomes `_`, a leading digit gets an `_` prefix. So\n * `seo.keyword_classifier` is `MANDATE_KEYS.seo__keyword_classifier`. Collisions are a\n * fatal generator error, never a silently dropped key.\n */\n\n/** Where this module came from — surfaced so a report can name the exact build. */\nexport const MANDATE_KEYS_META = {\n aidreamRevision: \"9e22c4d92deb1c588e4e6061b34f431aa03e67ac\",\n generatorVersion: \"1.0.0\",\n packageVersion: \"0.20.6\",\n retireWindow: 3,\n} as const;\n\n/** Every declared mandate key, by THE IDENTIFIER RULE. */\nexport const MANDATE_KEYS = {\n agent_apps__auto_create: \"agent_apps.auto_create\",\n agent_apps__auto_create_lightning: \"agent_apps.auto_create_lightning\",\n agent_apps__metadata: \"agent_apps.metadata\",\n agent_apps__prompt_app_dev: \"agent_apps.prompt_app_dev\",\n agent_factory__structure_builder: \"agent_factory.structure_builder\",\n alchemy__prepare_content: \"alchemy.prepare_content\",\n ambient__page_guidance: \"ambient.page_guidance\",\n ambient__spoken_summary: \"ambient.spoken_summary\",\n audio__live_music: \"audio.live_music\",\n audio__speech: \"audio.speech\",\n brand__voice_rewrite: \"brand.voice_rewrite\",\n chat__cx_default: \"chat.cx_default\",\n chat__default_new_chat: \"chat.default_new_chat\",\n chat__quick_audio_plan: \"chat.quick_audio_plan\",\n chat__quick_fair_news: \"chat.quick_fair_news\",\n chat__quick_flashcards: \"chat.quick_flashcards\",\n chat__quick_image: \"chat.quick_image\",\n chat__quick_org_chart: \"chat.quick_org_chart\",\n chat__quick_research: \"chat.quick_research\",\n chat__quick_showcase: \"chat.quick_showcase\",\n chat__quick_writing_partner: \"chat.quick_writing_partner\",\n chat__response_mode_brainstorm: \"chat.response_mode_brainstorm\",\n chat__response_mode_data: \"chat.response_mode_data\",\n chat__response_mode_research: \"chat.response_mode_research\",\n chat__response_mode_video: \"chat.response_mode_video\",\n checks__cleanup_bakeoff__answer: \"checks.cleanup_bakeoff.answer\",\n checks__cleanup_bakeoff__judge: \"checks.cleanup_bakeoff.judge\",\n checks__finding_disposition: \"checks.finding_disposition\",\n checks__finding_disposition_review: \"checks.finding_disposition_review\",\n cms__content_writing: \"cms.content_writing\",\n cms__publish_review: \"cms.publish_review\",\n cms__seo_metadata: \"cms.seo_metadata\",\n cms__site_editing: \"cms.site_editing\",\n cms__theme_design: \"cms.theme_design\",\n code_editor__code_edit: \"code_editor.code_edit\",\n code_editor__dynamic_context_edit: \"code_editor.dynamic_context_edit\",\n code_editor__prompt_app_ui_edit: \"code_editor.prompt_app_ui_edit\",\n coding_session__conversation_responder: \"coding_session.conversation_responder\",\n coding_session__managed_translation_reference: \"coding_session.managed_translation_reference\",\n commerce_intake__assess_value: \"commerce_intake.assess_value\",\n commerce_intake__extract_vision: \"commerce_intake.extract_vision\",\n commerce_intake__grading: \"commerce_intake.grading\",\n commerce_intake__instant_analysis: \"commerce_intake.instant_analysis\",\n commerce_intake__refute_no_value: \"commerce_intake.refute_no_value\",\n commerce_intake__research_product: \"commerce_intake.research_product\",\n commerce_intake__segment_photos: \"commerce_intake.segment_photos\",\n commerce_intake__verify_enrichment: \"commerce_intake.verify_enrichment\",\n content_gate__section_relevance_decision: \"content_gate.section_relevance_decision\",\n content_ir__component_artisan: \"content_ir.component_artisan\",\n content_ir__kind_architect: \"content_ir.kind_architect\",\n content_ir__kind_component_builder: \"content_ir.kind_component_builder\",\n content_ir__kind_creator: \"content_ir.kind_creator\",\n content_plan__branch_purpose: \"content_plan.branch_purpose\",\n content_plan__brief_writer: \"content_plan.brief_writer\",\n content_plan__deepen_page: \"content_plan.deepen_page\",\n content_plan__entity_attacher: \"content_plan.entity_attacher\",\n content_plan__entity_curator: \"content_plan.entity_curator\",\n content_plan__family_namer: \"content_plan.family_namer\",\n content_plan__keyword_strategist: \"content_plan.keyword_strategist\",\n content_plan__merge_wave: \"content_plan.merge_wave\",\n content_plan__p3_family: \"content_plan.p3_family\",\n content_plan__p4_write: \"content_plan.p4_write\",\n content_plan__p5_review: \"content_plan.p5_review\",\n content_plan__p6_build: \"content_plan.p6_build\",\n content_plan__p6_build__about: \"content_plan.p6_build.about\",\n content_plan__p6_build__blog: \"content_plan.p6_build.blog\",\n content_plan__p6_build__comparison: \"content_plan.p6_build.comparison\",\n content_plan__p6_build__contact: \"content_plan.p6_build.contact\",\n content_plan__p6_build__faq: \"content_plan.p6_build.faq\",\n content_plan__p6_build__guide: \"content_plan.p6_build.guide\",\n content_plan__p6_build__home: \"content_plan.p6_build.home\",\n content_plan__p6_build__index: \"content_plan.p6_build.index\",\n content_plan__p6_build__location: \"content_plan.p6_build.location\",\n content_plan__p6_build__pillar: \"content_plan.p6_build.pillar\",\n content_plan__p6_build__pricing: \"content_plan.p6_build.pricing\",\n content_plan__p6_build__service: \"content_plan.p6_build.service\",\n content_plan__plan_reviewer: \"content_plan.plan_reviewer\",\n content_plan__research_wave__audience_journey: \"content_plan.research_wave.audience_journey\",\n content_plan__research_wave__competitor_coverage: \"content_plan.research_wave.competitor_coverage\",\n content_plan__research_wave__keyword_value: \"content_plan.research_wave.keyword_value\",\n content_plan__route_picker: \"content_plan.route_picker\",\n content_plan__shape_planner: \"content_plan.shape_planner\",\n conversation__action_auditor: \"conversation.action_auditor\",\n conversation__decision_ledger: \"conversation.decision_ledger\",\n conversation__drift_auditor: \"conversation.drift_auditor\",\n conversation__label_agent_run: \"conversation.label_agent_run\",\n conversation__label_chat: \"conversation.label_chat\",\n conversation__outcome_summarizer: \"conversation.outcome_summarizer\",\n conversation__vision_extractor: \"conversation.vision_extractor\",\n conversation__vision_interviewer: \"conversation.vision_interviewer\",\n crm__journalist_beat_analyst: \"crm.journalist_beat_analyst\",\n crm__media_list_ranker: \"crm.media_list_ranker\",\n crm__outreach_draft_reviewer: \"crm.outreach_draft_reviewer\",\n crm__outreach_fact_check: \"crm.outreach_fact_check\",\n crm__outreach_personalization_coach: \"crm.outreach_personalization_coach\",\n crm__outreach_personalization_writer: \"crm.outreach_personalization_writer\",\n crm__outreach_pitch_writer: \"crm.outreach_pitch_writer\",\n crm__outreach_recipient_shortlister: \"crm.outreach_recipient_shortlister\",\n crm__outreach_reply_drafter: \"crm.outreach_reply_drafter\",\n crm__outreach_strategy: \"crm.outreach_strategy\",\n crm__party_kind_judge: \"crm.party_kind_judge\",\n crm__save_contact: \"crm.save_contact\",\n data__formula_writing: \"data.formula_writing\",\n data__page_guidance: \"data.page_guidance\",\n data__row_action: \"data.row_action\",\n dictionary__workspace_guide: \"dictionary.workspace_guide\",\n distillation__timeline_distiller: \"distillation.timeline_distiller\",\n distillation__timeline_unfolder: \"distillation.timeline_unfolder\",\n docproc__content_structure: \"docproc.content_structure\",\n education__admin_guidance: \"education.admin_guidance\",\n education__analytics_narrate: \"education.analytics_narrate\",\n education__audio_study_guidance: \"education.audio_study_guidance\",\n education__card_image_generator: \"education.card_image_generator\",\n education__card_image_prompt_writer: \"education.card_image_prompt_writer\",\n education__card_image_qc_judge: \"education.card_image_qc_judge\",\n education__card_image_web_source: \"education.card_image_web_source\",\n education__classes_guidance: \"education.classes_guidance\",\n education__creator_guidance: \"education.creator_guidance\",\n education__data_guidance: \"education.data_guidance\",\n education__exam_prep_guidance: \"education.exam_prep_guidance\",\n education__family_guidance: \"education.family_guidance\",\n education__fastfire_guidance: \"education.fastfire_guidance\",\n education__features_guidance: \"education.features_guidance\",\n education__flashcards_guidance: \"education.flashcards_guidance\",\n education__game_guidance: \"education.game_guidance\",\n education__grade_handwritten: \"education.grade_handwritten\",\n education__grade_work_guidance: \"education.grade_work_guidance\",\n education__kit_title: \"education.kit_title\",\n education__learn_guidance: \"education.learn_guidance\",\n education__levels_guidance: \"education.levels_guidance\",\n education__library_guidance: \"education.library_guidance\",\n education__media_guidance: \"education.media_guidance\",\n education__memory_generate: \"education.memory_generate\",\n education__memory_guidance: \"education.memory_guidance\",\n education__memory_hint: \"education.memory_hint\",\n education__mind_maps_guidance: \"education.mind_maps_guidance\",\n education__mindmap_generate: \"education.mindmap_generate\",\n education__notes_generate: \"education.notes_generate\",\n education__notes_guidance: \"education.notes_guidance\",\n education__offline_guidance: \"education.offline_guidance\",\n education__page_guidance: \"education.page_guidance\",\n education__plan_generate: \"education.plan_generate\",\n education__planner_guidance: \"education.planner_guidance\",\n education__practice_oral_guidance: \"education.practice_oral_guidance\",\n education__practice_tests_guidance: \"education.practice_tests_guidance\",\n education__progress_guidance: \"education.progress_guidance\",\n education__quiz_deepen_item: \"education.quiz_deepen_item\",\n education__quiz_generate: \"education.quiz_generate\",\n education__quiz_generate_from_source: \"education.quiz_generate_from_source\",\n education__quizzes_guidance: \"education.quizzes_guidance\",\n education__spoken_practice_design: \"education.spoken_practice_design\",\n education__spoken_practice_design_language: \"education.spoken_practice_design_language\",\n education__spoken_practice_grade: \"education.spoken_practice_grade\",\n education__spoken_practice_grade_pronunciation: \"education.spoken_practice_grade_pronunciation\",\n education__spoken_practice_review: \"education.spoken_practice_review\",\n education__start_guidance: \"education.start_guidance\",\n education__study_aids_guidance: \"education.study_aids_guidance\",\n education__study_pack_flashcards: \"education.study_pack_flashcards\",\n education__study_pack_lessons: \"education.study_pack_lessons\",\n education__study_pack_notes: \"education.study_pack_notes\",\n education__study_pack_quiz: \"education.study_pack_quiz\",\n education__study_pack_v2_flashcards: \"education.study_pack_v2_flashcards\",\n education__study_pack_v2_lessons: \"education.study_pack_v2_lessons\",\n education__study_pack_v2_notes: \"education.study_pack_v2_notes\",\n education__study_pack_v2_quiz: \"education.study_pack_v2_quiz\",\n education__subjects_guidance: \"education.subjects_guidance\",\n education__summaries_guidance: \"education.summaries_guidance\",\n education__summarize: \"education.summarize\",\n education__tutor_guidance: \"education.tutor_guidance\",\n education__tutor_message: \"education.tutor_message\",\n education__voice_tutor: \"education.voice_tutor\",\n evaluators__comparative_judge: \"evaluators.comparative_judge\",\n evaluators__rubric_judge: \"evaluators.rubric_judge\",\n extend__browser_chat: \"extend.browser_chat\",\n extend__pattern_from_data: \"extend.pattern_from_data\",\n extend__structured_extractor: \"extend.structured_extractor\",\n feedback__item_triage_decision: \"feedback.item_triage_decision\",\n flashcards__enrich_card: \"flashcards.enrich_card\",\n flashcards__expand_card: \"flashcards.expand_card\",\n flashcards__generate_cards: \"flashcards.generate_cards\",\n flashcards__generate_from_source: \"flashcards.generate_from_source\",\n flashcards__grade_spoken: \"flashcards.grade_spoken\",\n flashcards__grade_typed_answer: \"flashcards.grade_typed_answer\",\n flashcards__help_live: \"flashcards.help_live\",\n flashcards__helper_tts: \"flashcards.helper_tts\",\n flashcards__make_quiz_items: \"flashcards.make_quiz_items\",\n flashcards__micro_coach: \"flashcards.micro_coach\",\n flashcards__review_batch: \"flashcards.review_batch\",\n flashcards__spoken_front_tts: \"flashcards.spoken_front_tts\",\n flashcards__verify_against_source: \"flashcards.verify_against_source\",\n foundry__planner: \"foundry.planner\",\n google__channel_video_plan: \"google.channel_video_plan\",\n google__desk_work: \"google.desk_work\",\n google__traffic_change_explanation: \"google.traffic_change_explanation\",\n growth_loop__quality_analyze: \"growth_loop.quality_analyze\",\n growth_loop__quality_brief: \"growth_loop.quality_brief\",\n growth_loop__quality_crawl: \"growth_loop.quality_crawl\",\n growth_loop__quality_fill: \"growth_loop.quality_fill\",\n growth_loop__quality_measure: \"growth_loop.quality_measure\",\n growth_loop__quality_plan: \"growth_loop.quality_plan\",\n growth_loop__quality_publish: \"growth_loop.quality_publish\",\n growth_loop__quality_realize: \"growth_loop.quality_realize\",\n growth_loop__quality_research: \"growth_loop.quality_research\",\n growth_loop__quality_serve: \"growth_loop.quality_serve\",\n growth_loop__quality_suggest: \"growth_loop.quality_suggest\",\n growth_loop__quality_writeback: \"growth_loop.quality_writeback\",\n growth_loop__supervisor: \"growth_loop.supervisor\",\n hindsight__crystallizer: \"hindsight.crystallizer\",\n hindsight__replay_judge: \"hindsight.replay_judge\",\n hindsight__reviewer: \"hindsight.reviewer\",\n human_decisions__fallback_decider: \"human_decisions.fallback_decider\",\n image__generate: \"image.generate\",\n image_pipeline__concept: \"image_pipeline.concept\",\n image_pipeline__prompt_write: \"image_pipeline.prompt_write\",\n image_pipeline__qc_judge: \"image_pipeline.qc_judge\",\n iteration__architect: \"iteration.architect\",\n iteration__diagnostic: \"iteration.diagnostic\",\n iteration__root_cause: \"iteration.root_cause\",\n iteration__thinking_display: \"iteration.thinking_display\",\n kg__cluster_namer: \"kg.cluster_namer\",\n kg__ner_extractor: \"kg.ner_extractor\",\n knowledge__document_verifier: \"knowledge.document_verifier\",\n knowledge__qa_generator: \"knowledge.qa_generator\",\n knowledge__section_summarizer: \"knowledge.section_summarizer\",\n local__answer_question: \"local.answer_question\",\n local__chat_persona_brainstorm: \"local.chat_persona_brainstorm\",\n local__chat_persona_code_review: \"local.chat_persona_code_review\",\n local__chat_persona_explain_simply: \"local.chat_persona_explain_simply\",\n local__chat_persona_helpful: \"local.chat_persona_helpful\",\n local__chat_persona_spoken_replies: \"local.chat_persona_spoken_replies\",\n local__chat_persona_summarize: \"local.chat_persona_summarize\",\n local__chat_persona_transcript_polish: \"local.chat_persona_transcript_polish\",\n local__cloud_chat: \"local.cloud_chat\",\n local__cloud_chat_reply: \"local.cloud_chat_reply\",\n local__confidential_chat: \"local.confidential_chat\",\n local__explain_code: \"local.explain_code\",\n local__extract_action_items: \"local.extract_action_items\",\n local__improve_writing: \"local.improve_writing\",\n local__polish_style_action_items: \"local.polish_style_action_items\",\n local__polish_style_bullets: \"local.polish_style_bullets\",\n local__polish_style_custom: \"local.polish_style_custom\",\n local__polish_style_formal: \"local.polish_style_formal\",\n local__polish_style_light_cleanup: \"local.polish_style_light_cleanup\",\n local__polish_style_meeting_notes: \"local.polish_style_meeting_notes\",\n local__polish_style_standard: \"local.polish_style_standard\",\n local__polish_transcript: \"local.polish_transcript\",\n local__raw_completion: \"local.raw_completion\",\n local__summarize_text: \"local.summarize_text\",\n local__tool_calling_chat: \"local.tool_calling_chat\",\n mandate_outcome__goal_clause_extraction: \"mandate_outcome.goal_clause_extraction\",\n mandate_outcome__goal_fitness_decision: \"mandate_outcome.goal_fitness_decision\",\n mandates__holder_draft: \"mandates.holder_draft\",\n marketing__endowment_analysis: \"marketing.endowment_analysis\",\n marketing__endowment_portfolio: \"marketing.endowment_portfolio\",\n marketing__image_prompt: \"marketing.image_prompt\",\n marketing__page_image: \"marketing.page_image\",\n marketing__page_image_all_in_one: \"marketing.page_image_all_in_one\",\n marketing__video_metadata: \"marketing.video_metadata\",\n masterwork__approach_selector: \"masterwork.approach_selector\",\n masterwork__audition_judge: \"masterwork.audition_judge\",\n masterwork__bad_draft: \"masterwork.bad_draft\",\n masterwork__bad_example_probe: \"masterwork.bad_example_probe\",\n masterwork__case_oracle: \"masterwork.case_oracle\",\n masterwork__checkup_auditor: \"masterwork.checkup_auditor\",\n masterwork__coherence_partner: \"masterwork.coherence_partner\",\n masterwork__conductor: \"masterwork.conductor\",\n masterwork__corpus_cleaner: \"masterwork.corpus_cleaner\",\n masterwork__corpus_synthesizer: \"masterwork.corpus_synthesizer\",\n masterwork__counterparty: \"masterwork.counterparty\",\n masterwork__critique_distiller: \"masterwork.critique_distiller\",\n masterwork__draft_triage: \"masterwork.draft_triage\",\n masterwork__drip_distiller: \"masterwork.drip_distiller\",\n masterwork__drip_question: \"masterwork.drip_question\",\n masterwork__elicitation_judge: \"masterwork.elicitation_judge\",\n masterwork__exception_hunter: \"masterwork.exception_hunter\",\n masterwork__exemplar_distiller: \"masterwork.exemplar_distiller\",\n masterwork__faithfulness_judge: \"masterwork.faithfulness_judge\",\n masterwork__intake_designer: \"masterwork.intake_designer\",\n masterwork__markup_distiller: \"masterwork.markup_distiller\",\n masterwork__meeting_scavenger: \"masterwork.meeting_scavenger\",\n masterwork__monologue_distiller: \"masterwork.monologue_distiller\",\n masterwork__outcome_judge: \"masterwork.outcome_judge\",\n masterwork__pairwise_judge: \"masterwork.pairwise_judge\",\n masterwork__prediction_boundary: \"masterwork.prediction_boundary\",\n masterwork__prediction_distiller: \"masterwork.prediction_distiller\",\n masterwork__relationship_auditor: \"masterwork.relationship_auditor\",\n masterwork__rule_improver: \"masterwork.rule_improver\",\n masterwork__rulebook_auditor: \"masterwork.rulebook_auditor\",\n masterwork__scout: \"masterwork.scout\",\n masterwork__sealed_case_oracle: \"masterwork.sealed_case_oracle\",\n masterwork__sort_case_writer: \"masterwork.sort_case_writer\",\n masterwork__sort_distiller: \"masterwork.sort_distiller\",\n masterwork__source_distiller: \"masterwork.source_distiller\",\n masterwork__teach_back_distiller: \"masterwork.teach_back_distiller\",\n masterwork__teach_back_explainer: \"masterwork.teach_back_explainer\",\n masterwork__template__chief_edit: \"masterwork.template.chief_edit\",\n masterwork__template__chief_generate: \"masterwork.template.chief_generate\",\n masterwork__template__editor: \"masterwork.template.editor\",\n masterwork__template__maker: \"masterwork.template.maker\",\n masterwork__timeline_distiller: \"masterwork.timeline_distiller\",\n masterwork__timeline_segmenter: \"masterwork.timeline_segmenter\",\n masterwork__transcript_distiller: \"masterwork.transcript_distiller\",\n masterwork__transcript_shortlister: \"masterwork.transcript_shortlister\",\n masterwork__triad_distiller: \"masterwork.triad_distiller\",\n masterwork__triad_generator: \"masterwork.triad_generator\",\n masterwork__understudy: \"masterwork.understudy\",\n masterwork__unfolding_judge: \"masterwork.unfolding_judge\",\n masterworks__bench__a2_loop: \"masterworks.bench.a2_loop\",\n masterworks__bench__calibration_decoy: \"masterworks.bench.calibration_decoy\",\n masterworks__bench__consensus: \"masterworks.bench.consensus\",\n masterworks__bench__extract: \"masterworks.bench.extract\",\n masterworks__bench__judge: \"masterworks.bench.judge\",\n masterworks__bench__panel: \"masterworks.bench.panel\",\n masterworks__bench__raw_arm: \"masterworks.bench.raw_arm\",\n masterworks__vanilla_arm__answer_from_facts: \"masterworks.vanilla_arm.answer_from_facts\",\n masterworks__vanilla_arm__best_work: \"masterworks.vanilla_arm.best_work\",\n masterworks__vanilla_arm__outcome_case: \"masterworks.vanilla_arm.outcome_case\",\n masterworks__vanilla_arm__professional_help: \"masterworks.vanilla_arm.professional_help\",\n media__youtube_analyzer: \"media.youtube_analyzer\",\n media_catalog__item_vetting_decision: \"media_catalog.item_vetting_decision\",\n meet__agenda_draft: \"meet.agenda_draft\",\n meet__live_intelligence: \"meet.live_intelligence\",\n meet__live_notes: \"meet.live_notes\",\n meet__pre_meeting_brief: \"meet.pre_meeting_brief\",\n meet__transcription: \"meet.transcription\",\n meet__wrap_up: \"meet.wrap_up\",\n memory__observer: \"memory.observer\",\n memory__reflector: \"memory.reflector\",\n mermaid__diagram_editing: \"mermaid.diagram_editing\",\n messaging__action_item_extraction: \"messaging.action_item_extraction\",\n messaging__conversation_catch_up: \"messaging.conversation_catch_up\",\n messaging__conversation_summary: \"messaging.conversation_summary\",\n messaging__reply_drafting: \"messaging.reply_drafting\",\n ner__deep_chunk_extractor: \"ner.deep_chunk_extractor\",\n ner__document_orienter: \"ner.document_orienter\",\n ner__entity_canonicalizer: \"ner.entity_canonicalizer\",\n ner__finisher: \"ner.finisher\",\n ner__item_proposer: \"ner.item_proposer\",\n ner__magic_moment_detector: \"ner.magic_moment_detector\",\n ner__scope_proposer: \"ner.scope_proposer\",\n ner__scope_slot_filler: \"ner.scope_slot_filler\",\n ner__suggestion_reviewer: \"ner.suggestion_reviewer\",\n ner__sweep_scope_discoverer: \"ner.sweep_scope_discoverer\",\n ner__sweep_scope_reference_finder: \"ner.sweep_scope_reference_finder\",\n ner__sweep_value_miner: \"ner.sweep_value_miner\",\n news__angles: \"news.angles\",\n news__coarse_relevance: \"news.coarse_relevance\",\n news__monitor_setup_proposer: \"news.monitor_setup_proposer\",\n news__report: \"news.report\",\n news__story_origin: \"news.story_origin\",\n news__triage: \"news.triage\",\n notes__organizer: \"notes.organizer\",\n notes__page_guidance: \"notes.page_guidance\",\n observability__tool_trace_pattern_detection: \"observability.tool_trace_pattern_detection\",\n observability__tool_trace_triage: \"observability.tool_trace_triage\",\n orchestras__role_describer: \"orchestras.role_describer\",\n orchestration__tool_failure_standoff_decision: \"orchestration.tool_failure_standoff_decision\",\n pdf__chunk_clean_ocr_text: \"pdf.chunk_clean_ocr_text\",\n pdf__chunk_flashcards_json: \"pdf.chunk_flashcards_json\",\n pdf__chunk_flashcards_typescript: \"pdf.chunk_flashcards_typescript\",\n pdf__content_cleaner: \"pdf.content_cleaner\",\n personal_staff__escalation: \"personal_staff.escalation\",\n personal_staff__front_line: \"personal_staff.front_line\",\n podcast__audience_adapter: \"podcast.audience_adapter\",\n podcast__audio_dialogue: \"podcast.audio_dialogue\",\n podcast__audio_english: \"podcast.audio_english\",\n podcast__audio_persian: \"podcast.audio_persian\",\n podcast__chapter_marker: \"podcast.chapter_marker\",\n podcast__content_extractor: \"podcast.content_extractor\",\n podcast__deep_research: \"podcast.deep_research\",\n podcast__image_v1: \"podcast.image_v1\",\n podcast__image_v2: \"podcast.image_v2\",\n podcast__image_v3: \"podcast.image_v3\",\n podcast__image_v4: \"podcast.image_v4\",\n podcast__image_v5: \"podcast.image_v5\",\n podcast__image_v6_feature: \"podcast.image_v6_feature\",\n podcast__image_v6_feature_prompt: \"podcast.image_v6_feature_prompt\",\n podcast__live_rewrite: \"podcast.live_rewrite\",\n podcast__metadata: \"podcast.metadata\",\n podcast__multihost_script: \"podcast.multihost_script\",\n podcast__post_prep_expansion: \"podcast.post_prep_expansion\",\n podcast__post_prep_fact_checking: \"podcast.post_prep_fact_checking\",\n podcast__post_prep_summarization: \"podcast.post_prep_summarization\",\n podcast__post_prep_translation: \"podcast.post_prep_translation\",\n podcast__race_frontier: \"podcast.race_frontier\",\n podcast__relevance_gate: \"podcast.relevance_gate\",\n podcast__roundtable_script: \"podcast.roundtable_script\",\n podcast__script_educational: \"podcast.script_educational\",\n podcast__script_news: \"podcast.script_news\",\n podcast__script_persian: \"podcast.script_persian\",\n podcast__solo_script: \"podcast.solo_script\",\n podcast__title_optimizer: \"podcast.title_optimizer\",\n podcast__video_v1: \"podcast.video_v1\",\n podcast__video_v2: \"podcast.video_v2\",\n podcast_client__blog_writer: \"podcast_client.blog_writer\",\n podcast_client__show_notes: \"podcast_client.show_notes\",\n podcast_client__topic_ideas: \"podcast_client.topic_ideas\",\n podcast_client__web_content_extractor: \"podcast_client.web_content_extractor\",\n podcast_client__youtube_research: \"podcast_client.youtube_research\",\n product_capture__instant_analysis: \"product_capture.instant_analysis\",\n projects__creation_guide: \"projects.creation_guide\",\n proof_runs__judge: \"proof_runs.judge\",\n purpose__writer: \"purpose.writer\",\n rag__chunk_contextualizer: \"rag.chunk_contextualizer\",\n rag__grounded_synthesis: \"rag.grounded_synthesis\",\n rag__grounding_claim_extract: \"rag.grounding_claim_extract\",\n rag__grounding_judge: \"rag.grounding_judge\",\n rag__hyde_generator: \"rag.hyde_generator\",\n rag__image_caption: \"rag.image_caption\",\n rag__pdf_page_cleaner: \"rag.pdf_page_cleaner\",\n rag__query_expander: \"rag.query_expander\",\n rag_kinds__grounded_synthesis: \"rag_kinds.grounded_synthesis\",\n records__enrichment: \"records.enrichment\",\n research__auto_tagger: \"research.auto_tagger\",\n research__condenser_1: \"research.condenser_1\",\n research__condenser_2: \"research.condenser_2\",\n research__coverage_audit: \"research.coverage_audit\",\n research__cross_cutting_tags: \"research.cross_cutting_tags\",\n research__document_assembly: \"research.document_assembly\",\n research__keyword_synthesis: \"research.keyword_synthesis\",\n research__report: \"research.report\",\n research__report_updater: \"research.report_updater\",\n research__source_authority: \"research.source_authority\",\n research__source_triage_decision: \"research.source_triage_decision\",\n research__structured_page_summary: \"research.structured_page_summary\",\n research__suggest_setup: \"research.suggest_setup\",\n research__tag_consolidation: \"research.tag_consolidation\",\n research__topic_deep_research: \"research.topic_deep_research\",\n research_client__output_blog: \"research_client.output_blog\",\n research_client__output_brand_profile: \"research_client.output_brand_profile\",\n research_client__output_competitive_landscape: \"research_client.output_competitive_landscape\",\n research_client__output_gap_analysis: \"research_client.output_gap_analysis\",\n research_client__output_literature_review: \"research_client.output_literature_review\",\n research_client__output_reputation_business: \"research_client.output_reputation_business\",\n research_client__output_reputation_personal: \"research_client.output_reputation_personal\",\n research_client__output_seo: \"research_client.output_seo\",\n research_client__output_slides: \"research_client.output_slides\",\n scraper__fact_check: \"scraper.fact_check\",\n scraper__keyword_analysis: \"scraper.keyword_analysis\",\n scraper__page_fetch_verdict: \"scraper.page_fetch_verdict\",\n seo__ai_visibility_blind_question_writer: \"seo.ai_visibility_blind_question_writer\",\n seo__ai_visibility_buyer_jobs: \"seo.ai_visibility_buyer_jobs\",\n seo__ai_visibility_decision_analyst: \"seo.ai_visibility_decision_analyst\",\n seo__ai_visibility_evidence_icp: \"seo.ai_visibility_evidence_icp\",\n seo__ai_visibility_panel_designer: \"seo.ai_visibility_panel_designer\",\n seo__ai_visibility_panel_report: \"seo.ai_visibility_panel_report\",\n seo__ai_visibility_question_architect: \"seo.ai_visibility_question_architect\",\n seo__ai_visibility_question_qa: \"seo.ai_visibility_question_qa\",\n seo__ai_visibility_writing_audit: \"seo.ai_visibility_writing_audit\",\n seo__backlink_analysis: \"seo.backlink_analysis\",\n seo__backlink_context_assessor: \"seo.backlink_context_assessor\",\n seo__backlink_work_planner: \"seo.backlink_work_planner\",\n seo__business_model_verdict: \"seo.business_model_verdict\",\n seo__competitor_classifier: \"seo.competitor_classifier\",\n seo__competitor_opportunity_autopsy: \"seo.competitor_opportunity_autopsy\",\n seo__competitor_page_autopsy: \"seo.competitor_page_autopsy\",\n seo__coverage_analyst: \"seo.coverage_analyst\",\n seo__digital_pr_reputation_adjudicator: \"seo.digital_pr_reputation_adjudicator\",\n seo__evidence_workbench: \"seo.evidence_workbench\",\n seo__finding_fixer: \"seo.finding_fixer\",\n seo__guidelines_drafter: \"seo.guidelines_drafter\",\n seo__ideal_customer_profile: \"seo.ideal_customer_profile\",\n seo__keyword_classifier: \"seo.keyword_classifier\",\n seo__keyword_expander: \"seo.keyword_expander\",\n seo__keyword_researcher: \"seo.keyword_researcher\",\n seo__keyword_serp_intent_analyst: \"seo.keyword_serp_intent_analyst\",\n seo__landscape_brief: \"seo.landscape_brief\",\n seo__map_author: \"seo.map_author\",\n seo__map_curation: \"seo.map_curation\",\n seo__money_map: \"seo.money_map\",\n seo__offering_extraction: \"seo.offering_extraction\",\n seo__offering_valuation: \"seo.offering_valuation\",\n seo__page_analyzer: \"seo.page_analyzer\",\n seo__page_intent_proposer: \"seo.page_intent_proposer\",\n seo__page_keyword_mapper: \"seo.page_keyword_mapper\",\n seo__page_mapper: \"seo.page_mapper\",\n seo__press_calendar_planner: \"seo.press_calendar_planner\",\n seo__press_clip_reviewer: \"seo.press_clip_reviewer\",\n seo__press_headlines: \"seo.press_headlines\",\n seo__press_moment_researcher: \"seo.press_moment_researcher\",\n seo__press_newsworthiness_check: \"seo.press_newsworthiness_check\",\n seo__press_source_request_responder: \"seo.press_source_request_responder\",\n seo__press_story_analyst: \"seo.press_story_analyst\",\n seo__press_strategist: \"seo.press_strategist\",\n seo__reputation_crisis_holding: \"seo.reputation_crisis_holding\",\n seo__session_rule_writer: \"seo.session_rule_writer\",\n seo__session_stamp_proposer: \"seo.session_stamp_proposer\",\n seo__site_intake: \"seo.site_intake\",\n seo__site_link_authority_router: \"seo.site_link_authority_router\",\n seo__site_strategist: \"seo.site_strategist\",\n seo__starter_pack_proposer: \"seo.starter_pack_proposer\",\n seo__strategy__site_brief__generate: \"seo.strategy.site_brief.generate\",\n seo__topic_assigner: \"seo.topic_assigner\",\n seo__topic_curation: \"seo.topic_curation\",\n sms__owner_beta: \"sms.owner_beta\",\n surfaces_client__binding_mapper: \"surfaces_client.binding_mapper\",\n tasks__triage: \"tasks.triage\",\n tool_viz__component_generator: \"tool_viz.component_generator\",\n tools__summarize_content: \"tools.summarize_content\",\n transcript_studio__document_edit: \"transcript_studio.document_edit\",\n transcript_studio__scribe_live: \"transcript_studio.scribe_live\",\n transcripts__clean_with_context: \"transcripts.clean_with_context\",\n transcripts__clean_with_context_variable: \"transcripts.clean_with_context_variable\",\n transcripts__clean_without_context: \"transcripts.clean_without_context\",\n vision_interview__adversary: \"vision_interview.adversary\",\n vision_interview__amplifier: \"vision_interview.amplifier\",\n vision_interview__answer_tracker: \"vision_interview.answer_tracker\",\n vision_interview__archaeologist: \"vision_interview.archaeologist\",\n vision_interview__architect: \"vision_interview.architect\",\n vision_interview__cartographer: \"vision_interview.cartographer\",\n vision_interview__requirements_author: \"vision_interview.requirements_author\",\n vision_interview__scribe: \"vision_interview.scribe\",\n vision_interview__sounding_board: \"vision_interview.sounding_board\",\n vision_interview__transcript_cleaner: \"vision_interview.transcript_cleaner\",\n vision_interview__vision_author: \"vision_interview.vision_author\",\n voice__communicator: \"voice.communicator\",\n voice__gemini_live: \"voice.gemini_live\",\n voice__intro: \"voice.intro\",\n voice__owner_beta: \"voice.owner_beta\",\n war_room__master: \"war_room.master\",\n war_room__room: \"war_room.room\",\n war_room__thread: \"war_room.thread\",\n web__endpoint_family_judge: \"web.endpoint_family_judge\",\n workflow__complex_research__keyword_synthesis: \"workflow.complex_research.keyword_synthesis\",\n workflow__complex_research__page_summary: \"workflow.complex_research.page_summary\",\n workflow__complex_research__report: \"workflow.complex_research.report\",\n workflow__conductor: \"workflow.conductor\",\n workflow__deep_research__keyword_synthesis: \"workflow.deep_research.keyword_synthesis\",\n workflow__extract_namer: \"workflow.extract_namer\",\n workflow__plan_design: \"workflow.plan_design\",\n workflow__plan_input_kind_authoring: \"workflow.plan_input_kind_authoring\",\n workflow__plan_node_type_recommender: \"workflow.plan_node_type_recommender\",\n workflow__plan_notes_writer: \"workflow.plan_notes_writer\",\n workflow__plan_output_kind_authoring: \"workflow.plan_output_kind_authoring\",\n workflow__recovery_advisor: \"workflow.recovery_advisor\",\n workflow__run_assist_suggester: \"workflow.run_assist_suggester\",\n workflow__step_intelligence: \"workflow.step_intelligence\",\n workflow__steward: \"workflow.steward\",\n workflow__steward__agent_run: \"workflow.steward.agent_run\",\n workflow__steward__data: \"workflow.steward.data\",\n workflow__steward__decision: \"workflow.steward.decision\",\n workflow__steward__user_input: \"workflow.steward.user_input\",\n workflow__wizard__agent_run: \"workflow.wizard.agent_run\",\n} as const;\n\n/** Every key this package version accepts — active plus retiring. */\nexport type MandateKey = (typeof MANDATE_KEYS)[keyof typeof MANDATE_KEYS];\n\n/** The key set as a runtime array, in generated order. */\nexport const ALL_MANDATE_KEYS: readonly MandateKey[] = Object.values(MANDATE_KEYS) as readonly MandateKey[];\n\n/** Keys still in the union but no longer declared (two-phase retire, phase 1). */\nexport const RETIRING_MANDATE_KEYS = {\n} as const;\n\n/**\n * Declared FAMILIES — a prefix the feature's own roster owns, and its members.\n * Emitted from `declared_families()` (aidream `services/mandates/carriers.py`).\n */\nexport const MANDATE_FAMILIES = {\n \"ambient.page_guidance_overrides\": [\n \"data.page_guidance\",\n \"education.admin_guidance\",\n \"education.audio_study_guidance\",\n \"education.classes_guidance\",\n \"education.creator_guidance\",\n \"education.data_guidance\",\n \"education.exam_prep_guidance\",\n \"education.family_guidance\",\n \"education.fastfire_guidance\",\n \"education.features_guidance\",\n \"education.flashcards_guidance\",\n \"education.game_guidance\",\n \"education.grade_work_guidance\",\n \"education.learn_guidance\",\n \"education.levels_guidance\",\n \"education.library_guidance\",\n \"education.media_guidance\",\n \"education.memory_guidance\",\n \"education.mind_maps_guidance\",\n \"education.notes_guidance\",\n \"education.offline_guidance\",\n \"education.page_guidance\",\n \"education.planner_guidance\",\n \"education.practice_oral_guidance\",\n \"education.practice_tests_guidance\",\n \"education.progress_guidance\",\n \"education.quizzes_guidance\",\n \"education.start_guidance\",\n \"education.study_aids_guidance\",\n \"education.subjects_guidance\",\n \"education.summaries_guidance\",\n \"education.tutor_guidance\",\n \"notes.page_guidance\",\n ],\n \"checks.cleanup_bakeoff\": [\n \"checks.cleanup_bakeoff.answer\",\n \"checks.cleanup_bakeoff.judge\",\n ],\n \"content_plan.p6_build\": [\n \"content_plan.p6_build.about\",\n \"content_plan.p6_build.blog\",\n \"content_plan.p6_build.comparison\",\n \"content_plan.p6_build.contact\",\n \"content_plan.p6_build.faq\",\n \"content_plan.p6_build.guide\",\n \"content_plan.p6_build.home\",\n \"content_plan.p6_build.index\",\n \"content_plan.p6_build.location\",\n \"content_plan.p6_build.pillar\",\n \"content_plan.p6_build.pricing\",\n \"content_plan.p6_build.service\",\n ],\n \"content_plan.research_wave\": [\n \"content_plan.research_wave.audience_journey\",\n \"content_plan.research_wave.competitor_coverage\",\n \"content_plan.research_wave.keyword_value\",\n ],\n \"conversation\": [\n \"conversation.action_auditor\",\n \"conversation.decision_ledger\",\n \"conversation.drift_auditor\",\n \"conversation.outcome_summarizer\",\n \"conversation.vision_extractor\",\n \"conversation.vision_interviewer\",\n ],\n \"masterworks.bench\": [\n \"masterworks.bench.a2_loop\",\n \"masterworks.bench.calibration_decoy\",\n \"masterworks.bench.consensus\",\n \"masterworks.bench.extract\",\n \"masterworks.bench.judge\",\n \"masterworks.bench.panel\",\n \"masterworks.bench.raw_arm\",\n ],\n \"masterworks.vanilla_arm\": [\n \"masterworks.vanilla_arm.answer_from_facts\",\n \"masterworks.vanilla_arm.best_work\",\n \"masterworks.vanilla_arm.outcome_case\",\n \"masterworks.vanilla_arm.professional_help\",\n ],\n \"vision_interview\": [\n \"vision_interview.adversary\",\n \"vision_interview.amplifier\",\n \"vision_interview.answer_tracker\",\n \"vision_interview.archaeologist\",\n \"vision_interview.architect\",\n \"vision_interview.cartographer\",\n \"vision_interview.requirements_author\",\n \"vision_interview.scribe\",\n \"vision_interview.sounding_board\",\n \"vision_interview.transcript_cleaner\",\n \"vision_interview.vision_author\",\n ],\n} as const;\n\nexport type MandateFamilyPrefix = keyof typeof MANDATE_FAMILIES;\n\n/** Members of a declared family, typed as real keys. */\nexport type MandateFamilyMember<P extends MandateFamilyPrefix> =\n (typeof MANDATE_FAMILIES)[P][number];\n\n/**\n * THE DYNAMIC FAMILIES — DB-authored (`mandate.definition` origin='user'). No\n * generated union can contain them, so their accessors return a BRANDED\n * `DynamicMandateKey`, deliberately NOT assignable to `MandateKey`: a carrier that\n * demands a declared key still refuses one, and a carrier that accepts either\n * says so in its own signature (`MandateKey | DynamicMandateKey`).\n */\ndeclare const dynamicMandateKeyBrand: unique symbol;\n\nexport type DynamicMandateKey = string & {\n readonly [dynamicMandateKeyBrand]: true;\n};\n\nexport const DYNAMIC_MANDATE_FAMILIES = {\n \"app\": { prefix: \"app\", note: \"One mandate per user-built app (`mandate.definition` origin='user').\" },\n \"shortcut\": { prefix: \"shortcut\", note: \"One mandate per user-authored shortcut (origin='user').\" },\n} as const;\n\nexport type DynamicMandateFamilyPrefix = keyof typeof DYNAMIC_MANDATE_FAMILIES;\n\nconst DYNAMIC_SLUG = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;\n\nfunction dynamicKey(\n prefix: DynamicMandateFamilyPrefix,\n ...slugs: readonly (string | undefined)[]\n): DynamicMandateKey {\n const parts = slugs.filter((slug): slug is string => slug !== undefined);\n if (parts.length === 0) {\n throw new Error(\n `mandate family \"${prefix}\" needs at least a member slug — it was given none.`,\n );\n }\n for (const slug of parts) {\n if (!DYNAMIC_SLUG.test(slug)) {\n throw new Error(\n `mandate family \"${prefix}\" cannot name a member from ` +\n `${JSON.stringify(slug)}: a segment is lowercase words joined by single ` +\n \"underscores. Pass the slug the row carries, never a display name.\",\n );\n }\n }\n return [prefix, ...parts].join(\".\") as DynamicMandateKey;\n}\n\n/**\n * The mandate key of a user-built app. DB-authored — never a declared key.\n * `surfaceSlug` names the per-surface row a few apps carry\n * (`app.<app>.<surface>`); omit it for the app's own mandate.\n */\nexport function mandateKeyOfApp(\n appSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"app\", appSlug, surfaceSlug);\n}\n\n/**\n * The mandate key of a user-authored shortcut. DB-authored. `surfaceSlug` names\n * the per-surface row (`shortcut.<shortcut>.<surface>`), which is how most live\n * shortcut rows are keyed; omit it for the shortcut's own mandate.\n */\nexport function mandateKeyOfShortcut(\n shortcutSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"shortcut\", shortcutSlug, surfaceSlug);\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../mandates/index.ts","../../mandates/keys.generated.ts"],"sourcesContent":["/**\n * `@ai-matrx/agents/mandates` — the ONE place a TypeScript client learns a\n * mandate key.\n *\n * 🚨 **Clients never declare a mandate.** aidream's `declare_mandate` is the\n * only declaration path in the system; this subpath publishes the key set that\n * declaration produced, so a hand-typed `\"seo.keyword_cluster\"` literal, a local\n * `mandates.ts` mirror, or an `as MandateKey` cast is a defect with a real\n * replacement — not a style preference. Every carrier that takes a key should\n * type it `MandateKey` (or `MandateKey | DynamicMandateKey` when it genuinely\n * accepts a DB-authored one) so a wrong key fails type-check instead of failing\n * at run time as a 404 nobody sees.\n *\n * The key data lives in `keys.generated.ts`, emitted by THE ONE GENERATOR\n * (`aidream/scripts/mandates_generate.py`, stage (h)) from the in-process\n * declarations — never edit it. The per-version key set that shipped with each\n * published version is committed beside it under `snapshots/`, so a scan can\n * resolve a client's references against the key set of the version it actually\n * ships (Mandate Declaration & Usage Reporting, DESIGN § 4.5 step 2).\n */\n\nexport {\n ALL_MANDATE_KEYS,\n DYNAMIC_MANDATE_FAMILIES,\n MANDATE_FAMILIES,\n MANDATE_KEYS,\n MANDATE_KEYS_META,\n RETIRING_MANDATE_KEYS,\n mandateKeyOfApp,\n mandateKeyOfShortcut,\n type DynamicMandateFamilyPrefix,\n type DynamicMandateKey,\n type MandateFamilyMember,\n type MandateFamilyPrefix,\n type MandateKey,\n} from \"./keys.generated\";\n\nimport {\n ALL_MANDATE_KEYS,\n MANDATE_KEYS_META,\n type DynamicMandateKey,\n type MandateKey,\n} from \"./keys.generated\";\n\n/**\n * What a carrier accepts when the key may be a declared one OR a DB-authored\n * one (`app.*` / `shortcut.*`, a `mandate.definition` row with origin='user').\n * Carriers that only ever run a declared job stay `MandateKey`.\n *\n * The mandate reference scanner reads a binding of this type as a proven key in\n * flight (`passthrough`), never an `UNRESOLVED_KEY` — so this is THE one\n * definition every client imports, never a local copy.\n */\nexport type AnyMandateKey = MandateKey | DynamicMandateKey;\n\n/**\n * A KEY THE CODE DID NOT CHOOSE, entering the typed world named for what it is:\n * a `mandate_key` column the platform wrote (an agent app's own mandate, a\n * shortcut's, a stored binding row), a stored `mandate:` ref, a saved config.\n *\n * It TYPES and never rejects. The server is the authority on whether the key\n * exists — a key declared after this package version shipped is real there and\n * absent from this build's key set — so narrowing here would send such a key\n * through the wrong door. The server answers an unknown key with a 404 that\n * names it.\n *\n * Never use it on a key your code picks: that key belongs to\n * `MANDATE_KEYS.<id>`, and routing it through here hides a rename from the\n * compiler. For a value that must be PROVEN declared (a URL segment a person\n * could have edited), use `isMandateKey` / `assertMandateKey` instead.\n */\nexport function storedMandateKey(value: string): AnyMandateKey {\n return value as AnyMandateKey;\n}\n\nconst KEY_SET: ReadonlySet<string> = new Set<string>(ALL_MANDATE_KEYS);\n\n/**\n * Narrow an unknown string to a declared `MandateKey`.\n *\n * Use it on anything that crossed a wire — a URL segment, a stored preference,\n * a row's `mandate_key` column. It answers only for the key set THIS package\n * version ships; a key declared after this version was published is correctly\n * `false` here, which is the point of the per-version snapshots.\n */\nexport function isMandateKey(value: unknown): value is MandateKey {\n return typeof value === \"string\" && KEY_SET.has(value);\n}\n\n/**\n * Assert an unknown value is a declared `MandateKey`, or throw with a remedy.\n *\n * Nothing fails silently: the message names the value, the package version its\n * key set came from, and what to do — never a bare \"invalid key\".\n */\nexport function assertMandateKey(\n value: unknown,\n context?: string,\n): asserts value is MandateKey {\n if (isMandateKey(value)) return;\n const where = context ? ` at ${context}` : \"\";\n throw new Error(\n `${JSON.stringify(value)} is not a declared mandate key${where}. ` +\n `@ai-matrx/agents@${MANDATE_KEYS_META.packageVersion} ships ` +\n `${ALL_MANDATE_KEYS.length} keys (aidream ${MANDATE_KEYS_META.aidreamRevision.slice(0, 12)}). ` +\n \"If the key is real, this package is behind — take `latest` and re-check. \" +\n \"If it is a user-built app or shortcut, it is DB-authored: build it with \" +\n \"mandateKeyOfApp() / mandateKeyOfShortcut(), which return DynamicMandateKey.\",\n );\n}\n","/**\n * GENERATED — DO NOT EDIT. Regenerate with:\n * uv run python scripts/mandates_generate.py (aidream repo; --dry-run also writes this file)\n *\n * THE ONE GENERATOR (`aidream/scripts/mandates_generate.py`, stage (h)) emits this\n * from the IN-PROCESS mandate declarations — the same `declared_mandates()` the\n * boot sync writes to the database from. There is no hand list anywhere.\n *\n * aidream revision: 5aef83f3d58f9e3d002f99d2279c68e945debfef\n * generator version: 1.0.0\n * package version: 0.21.1\n * active keys: 543\n * retiring keys: 0\n *\n * THE IDENTIFIER RULE: every `.` in a key becomes `__`, any character outside\n * [A-Za-z0-9_] becomes `_`, a leading digit gets an `_` prefix. So\n * `seo.keyword_classifier` is `MANDATE_KEYS.seo__keyword_classifier`. Collisions are a\n * fatal generator error, never a silently dropped key.\n */\n\n/** Where this module came from — surfaced so a report can name the exact build. */\nexport const MANDATE_KEYS_META = {\n aidreamRevision: \"5aef83f3d58f9e3d002f99d2279c68e945debfef\",\n generatorVersion: \"1.0.0\",\n packageVersion: \"0.21.1\",\n retireWindow: 3,\n} as const;\n\n/** Every declared mandate key, by THE IDENTIFIER RULE. */\nexport const MANDATE_KEYS = {\n agent_apps__auto_create: \"agent_apps.auto_create\",\n agent_apps__auto_create_lightning: \"agent_apps.auto_create_lightning\",\n agent_apps__metadata: \"agent_apps.metadata\",\n agent_apps__prompt_app_dev: \"agent_apps.prompt_app_dev\",\n agent_factory__structure_builder: \"agent_factory.structure_builder\",\n alchemy__prepare_content: \"alchemy.prepare_content\",\n ambient__page_guidance: \"ambient.page_guidance\",\n ambient__spoken_summary: \"ambient.spoken_summary\",\n audio__live_music: \"audio.live_music\",\n audio__speech: \"audio.speech\",\n brand__voice_rewrite: \"brand.voice_rewrite\",\n chat__cx_default: \"chat.cx_default\",\n chat__default_new_chat: \"chat.default_new_chat\",\n chat__quick_audio_plan: \"chat.quick_audio_plan\",\n chat__quick_fair_news: \"chat.quick_fair_news\",\n chat__quick_flashcards: \"chat.quick_flashcards\",\n chat__quick_image: \"chat.quick_image\",\n chat__quick_org_chart: \"chat.quick_org_chart\",\n chat__quick_research: \"chat.quick_research\",\n chat__quick_showcase: \"chat.quick_showcase\",\n chat__quick_writing_partner: \"chat.quick_writing_partner\",\n chat__response_mode_brainstorm: \"chat.response_mode_brainstorm\",\n chat__response_mode_data: \"chat.response_mode_data\",\n chat__response_mode_research: \"chat.response_mode_research\",\n chat__response_mode_video: \"chat.response_mode_video\",\n checks__cleanup_bakeoff__answer: \"checks.cleanup_bakeoff.answer\",\n checks__cleanup_bakeoff__judge: \"checks.cleanup_bakeoff.judge\",\n checks__finding_disposition: \"checks.finding_disposition\",\n checks__finding_disposition_review: \"checks.finding_disposition_review\",\n cms__content_writing: \"cms.content_writing\",\n cms__publish_review: \"cms.publish_review\",\n cms__seo_metadata: \"cms.seo_metadata\",\n cms__site_editing: \"cms.site_editing\",\n cms__theme_design: \"cms.theme_design\",\n code_editor__code_edit: \"code_editor.code_edit\",\n code_editor__dynamic_context_edit: \"code_editor.dynamic_context_edit\",\n code_editor__prompt_app_ui_edit: \"code_editor.prompt_app_ui_edit\",\n coding_session__conversation_responder: \"coding_session.conversation_responder\",\n coding_session__managed_translation_reference: \"coding_session.managed_translation_reference\",\n commerce_intake__assess_value: \"commerce_intake.assess_value\",\n commerce_intake__extract_vision: \"commerce_intake.extract_vision\",\n commerce_intake__grading: \"commerce_intake.grading\",\n commerce_intake__instant_analysis: \"commerce_intake.instant_analysis\",\n commerce_intake__refute_no_value: \"commerce_intake.refute_no_value\",\n commerce_intake__research_product: \"commerce_intake.research_product\",\n commerce_intake__segment_photos: \"commerce_intake.segment_photos\",\n commerce_intake__verify_enrichment: \"commerce_intake.verify_enrichment\",\n content_gate__section_relevance_decision: \"content_gate.section_relevance_decision\",\n content_ir__component_artisan: \"content_ir.component_artisan\",\n content_ir__kind_architect: \"content_ir.kind_architect\",\n content_ir__kind_component_builder: \"content_ir.kind_component_builder\",\n content_ir__kind_creator: \"content_ir.kind_creator\",\n content_plan__branch_purpose: \"content_plan.branch_purpose\",\n content_plan__brief_writer: \"content_plan.brief_writer\",\n content_plan__deepen_page: \"content_plan.deepen_page\",\n content_plan__entity_attacher: \"content_plan.entity_attacher\",\n content_plan__entity_curator: \"content_plan.entity_curator\",\n content_plan__family_namer: \"content_plan.family_namer\",\n content_plan__keyword_strategist: \"content_plan.keyword_strategist\",\n content_plan__merge_wave: \"content_plan.merge_wave\",\n content_plan__p3_family: \"content_plan.p3_family\",\n content_plan__p4_write: \"content_plan.p4_write\",\n content_plan__p5_review: \"content_plan.p5_review\",\n content_plan__p6_build: \"content_plan.p6_build\",\n content_plan__p6_build__about: \"content_plan.p6_build.about\",\n content_plan__p6_build__blog: \"content_plan.p6_build.blog\",\n content_plan__p6_build__comparison: \"content_plan.p6_build.comparison\",\n content_plan__p6_build__contact: \"content_plan.p6_build.contact\",\n content_plan__p6_build__faq: \"content_plan.p6_build.faq\",\n content_plan__p6_build__guide: \"content_plan.p6_build.guide\",\n content_plan__p6_build__home: \"content_plan.p6_build.home\",\n content_plan__p6_build__index: \"content_plan.p6_build.index\",\n content_plan__p6_build__location: \"content_plan.p6_build.location\",\n content_plan__p6_build__pillar: \"content_plan.p6_build.pillar\",\n content_plan__p6_build__pricing: \"content_plan.p6_build.pricing\",\n content_plan__p6_build__service: \"content_plan.p6_build.service\",\n content_plan__plan_reviewer: \"content_plan.plan_reviewer\",\n content_plan__research_wave__audience_journey: \"content_plan.research_wave.audience_journey\",\n content_plan__research_wave__competitor_coverage: \"content_plan.research_wave.competitor_coverage\",\n content_plan__research_wave__keyword_value: \"content_plan.research_wave.keyword_value\",\n content_plan__route_picker: \"content_plan.route_picker\",\n content_plan__shape_planner: \"content_plan.shape_planner\",\n conversation__action_auditor: \"conversation.action_auditor\",\n conversation__decision_ledger: \"conversation.decision_ledger\",\n conversation__drift_auditor: \"conversation.drift_auditor\",\n conversation__label_agent_run: \"conversation.label_agent_run\",\n conversation__label_chat: \"conversation.label_chat\",\n conversation__outcome_summarizer: \"conversation.outcome_summarizer\",\n conversation__vision_extractor: \"conversation.vision_extractor\",\n conversation__vision_interviewer: \"conversation.vision_interviewer\",\n crm__journalist_beat_analyst: \"crm.journalist_beat_analyst\",\n crm__media_list_ranker: \"crm.media_list_ranker\",\n crm__outreach_draft_reviewer: \"crm.outreach_draft_reviewer\",\n crm__outreach_fact_check: \"crm.outreach_fact_check\",\n crm__outreach_personalization_coach: \"crm.outreach_personalization_coach\",\n crm__outreach_personalization_writer: \"crm.outreach_personalization_writer\",\n crm__outreach_pitch_writer: \"crm.outreach_pitch_writer\",\n crm__outreach_recipient_shortlister: \"crm.outreach_recipient_shortlister\",\n crm__outreach_reply_drafter: \"crm.outreach_reply_drafter\",\n crm__outreach_strategy: \"crm.outreach_strategy\",\n crm__party_kind_judge: \"crm.party_kind_judge\",\n crm__save_contact: \"crm.save_contact\",\n data__formula_writing: \"data.formula_writing\",\n data__page_guidance: \"data.page_guidance\",\n data__row_action: \"data.row_action\",\n dictionary__workspace_guide: \"dictionary.workspace_guide\",\n distillation__timeline_distiller: \"distillation.timeline_distiller\",\n distillation__timeline_unfolder: \"distillation.timeline_unfolder\",\n docproc__content_structure: \"docproc.content_structure\",\n education__admin_guidance: \"education.admin_guidance\",\n education__analytics_narrate: \"education.analytics_narrate\",\n education__audio_study_guidance: \"education.audio_study_guidance\",\n education__card_image_generator: \"education.card_image_generator\",\n education__card_image_prompt_writer: \"education.card_image_prompt_writer\",\n education__card_image_qc_judge: \"education.card_image_qc_judge\",\n education__card_image_web_source: \"education.card_image_web_source\",\n education__classes_guidance: \"education.classes_guidance\",\n education__creator_guidance: \"education.creator_guidance\",\n education__data_guidance: \"education.data_guidance\",\n education__exam_prep_guidance: \"education.exam_prep_guidance\",\n education__family_guidance: \"education.family_guidance\",\n education__fastfire_guidance: \"education.fastfire_guidance\",\n education__features_guidance: \"education.features_guidance\",\n education__flashcards_guidance: \"education.flashcards_guidance\",\n education__game_guidance: \"education.game_guidance\",\n education__grade_handwritten: \"education.grade_handwritten\",\n education__grade_work_guidance: \"education.grade_work_guidance\",\n education__kit_title: \"education.kit_title\",\n education__learn_guidance: \"education.learn_guidance\",\n education__levels_guidance: \"education.levels_guidance\",\n education__library_guidance: \"education.library_guidance\",\n education__media_guidance: \"education.media_guidance\",\n education__memory_generate: \"education.memory_generate\",\n education__memory_guidance: \"education.memory_guidance\",\n education__memory_hint: \"education.memory_hint\",\n education__mind_maps_guidance: \"education.mind_maps_guidance\",\n education__mindmap_generate: \"education.mindmap_generate\",\n education__notes_generate: \"education.notes_generate\",\n education__notes_guidance: \"education.notes_guidance\",\n education__offline_guidance: \"education.offline_guidance\",\n education__page_guidance: \"education.page_guidance\",\n education__plan_generate: \"education.plan_generate\",\n education__planner_guidance: \"education.planner_guidance\",\n education__practice_oral_guidance: \"education.practice_oral_guidance\",\n education__practice_tests_guidance: \"education.practice_tests_guidance\",\n education__progress_guidance: \"education.progress_guidance\",\n education__quiz_deepen_item: \"education.quiz_deepen_item\",\n education__quiz_generate: \"education.quiz_generate\",\n education__quiz_generate_from_source: \"education.quiz_generate_from_source\",\n education__quizzes_guidance: \"education.quizzes_guidance\",\n education__spoken_practice_design: \"education.spoken_practice_design\",\n education__spoken_practice_design_language: \"education.spoken_practice_design_language\",\n education__spoken_practice_grade: \"education.spoken_practice_grade\",\n education__spoken_practice_grade_pronunciation: \"education.spoken_practice_grade_pronunciation\",\n education__spoken_practice_review: \"education.spoken_practice_review\",\n education__start_guidance: \"education.start_guidance\",\n education__study_aids_guidance: \"education.study_aids_guidance\",\n education__study_pack_flashcards: \"education.study_pack_flashcards\",\n education__study_pack_lessons: \"education.study_pack_lessons\",\n education__study_pack_notes: \"education.study_pack_notes\",\n education__study_pack_quiz: \"education.study_pack_quiz\",\n education__study_pack_v2_flashcards: \"education.study_pack_v2_flashcards\",\n education__study_pack_v2_lessons: \"education.study_pack_v2_lessons\",\n education__study_pack_v2_notes: \"education.study_pack_v2_notes\",\n education__study_pack_v2_quiz: \"education.study_pack_v2_quiz\",\n education__subjects_guidance: \"education.subjects_guidance\",\n education__summaries_guidance: \"education.summaries_guidance\",\n education__summarize: \"education.summarize\",\n education__tutor_guidance: \"education.tutor_guidance\",\n education__tutor_message: \"education.tutor_message\",\n education__voice_tutor: \"education.voice_tutor\",\n evaluators__comparative_judge: \"evaluators.comparative_judge\",\n evaluators__rubric_judge: \"evaluators.rubric_judge\",\n extend__browser_chat: \"extend.browser_chat\",\n extend__pattern_from_data: \"extend.pattern_from_data\",\n extend__structured_extractor: \"extend.structured_extractor\",\n feedback__item_triage_decision: \"feedback.item_triage_decision\",\n flashcards__enrich_card: \"flashcards.enrich_card\",\n flashcards__expand_card: \"flashcards.expand_card\",\n flashcards__generate_cards: \"flashcards.generate_cards\",\n flashcards__generate_from_source: \"flashcards.generate_from_source\",\n flashcards__grade_spoken: \"flashcards.grade_spoken\",\n flashcards__grade_typed_answer: \"flashcards.grade_typed_answer\",\n flashcards__help_live: \"flashcards.help_live\",\n flashcards__helper_tts: \"flashcards.helper_tts\",\n flashcards__make_quiz_items: \"flashcards.make_quiz_items\",\n flashcards__micro_coach: \"flashcards.micro_coach\",\n flashcards__review_batch: \"flashcards.review_batch\",\n flashcards__spoken_front_tts: \"flashcards.spoken_front_tts\",\n flashcards__verify_against_source: \"flashcards.verify_against_source\",\n foundry__planner: \"foundry.planner\",\n google__channel_video_plan: \"google.channel_video_plan\",\n google__desk_work: \"google.desk_work\",\n google__traffic_change_explanation: \"google.traffic_change_explanation\",\n growth_loop__quality_analyze: \"growth_loop.quality_analyze\",\n growth_loop__quality_brief: \"growth_loop.quality_brief\",\n growth_loop__quality_crawl: \"growth_loop.quality_crawl\",\n growth_loop__quality_fill: \"growth_loop.quality_fill\",\n growth_loop__quality_measure: \"growth_loop.quality_measure\",\n growth_loop__quality_plan: \"growth_loop.quality_plan\",\n growth_loop__quality_publish: \"growth_loop.quality_publish\",\n growth_loop__quality_realize: \"growth_loop.quality_realize\",\n growth_loop__quality_research: \"growth_loop.quality_research\",\n growth_loop__quality_serve: \"growth_loop.quality_serve\",\n growth_loop__quality_suggest: \"growth_loop.quality_suggest\",\n growth_loop__quality_writeback: \"growth_loop.quality_writeback\",\n growth_loop__supervisor: \"growth_loop.supervisor\",\n hindsight__crystallizer: \"hindsight.crystallizer\",\n hindsight__replay_judge: \"hindsight.replay_judge\",\n hindsight__reviewer: \"hindsight.reviewer\",\n human_decisions__fallback_decider: \"human_decisions.fallback_decider\",\n image__generate: \"image.generate\",\n image_pipeline__concept: \"image_pipeline.concept\",\n image_pipeline__prompt_write: \"image_pipeline.prompt_write\",\n image_pipeline__qc_judge: \"image_pipeline.qc_judge\",\n iteration__architect: \"iteration.architect\",\n iteration__diagnostic: \"iteration.diagnostic\",\n iteration__root_cause: \"iteration.root_cause\",\n iteration__thinking_display: \"iteration.thinking_display\",\n kg__cluster_namer: \"kg.cluster_namer\",\n kg__ner_extractor: \"kg.ner_extractor\",\n knowledge__document_verifier: \"knowledge.document_verifier\",\n knowledge__qa_generator: \"knowledge.qa_generator\",\n knowledge__section_summarizer: \"knowledge.section_summarizer\",\n local__answer_question: \"local.answer_question\",\n local__chat_persona_brainstorm: \"local.chat_persona_brainstorm\",\n local__chat_persona_code_review: \"local.chat_persona_code_review\",\n local__chat_persona_explain_simply: \"local.chat_persona_explain_simply\",\n local__chat_persona_helpful: \"local.chat_persona_helpful\",\n local__chat_persona_spoken_replies: \"local.chat_persona_spoken_replies\",\n local__chat_persona_summarize: \"local.chat_persona_summarize\",\n local__chat_persona_transcript_polish: \"local.chat_persona_transcript_polish\",\n local__cloud_chat: \"local.cloud_chat\",\n local__cloud_chat_reply: \"local.cloud_chat_reply\",\n local__confidential_chat: \"local.confidential_chat\",\n local__explain_code: \"local.explain_code\",\n local__extract_action_items: \"local.extract_action_items\",\n local__improve_writing: \"local.improve_writing\",\n local__polish_style_action_items: \"local.polish_style_action_items\",\n local__polish_style_bullets: \"local.polish_style_bullets\",\n local__polish_style_custom: \"local.polish_style_custom\",\n local__polish_style_formal: \"local.polish_style_formal\",\n local__polish_style_light_cleanup: \"local.polish_style_light_cleanup\",\n local__polish_style_meeting_notes: \"local.polish_style_meeting_notes\",\n local__polish_style_standard: \"local.polish_style_standard\",\n local__polish_transcript: \"local.polish_transcript\",\n local__raw_completion: \"local.raw_completion\",\n local__summarize_text: \"local.summarize_text\",\n local__tool_calling_chat: \"local.tool_calling_chat\",\n mandate_outcome__goal_clause_extraction: \"mandate_outcome.goal_clause_extraction\",\n mandate_outcome__goal_fitness_decision: \"mandate_outcome.goal_fitness_decision\",\n mandates__holder_draft: \"mandates.holder_draft\",\n marketing__endowment_analysis: \"marketing.endowment_analysis\",\n marketing__endowment_portfolio: \"marketing.endowment_portfolio\",\n marketing__image_prompt: \"marketing.image_prompt\",\n marketing__page_image: \"marketing.page_image\",\n marketing__page_image_all_in_one: \"marketing.page_image_all_in_one\",\n marketing__video_metadata: \"marketing.video_metadata\",\n masterwork__approach_selector: \"masterwork.approach_selector\",\n masterwork__audition_judge: \"masterwork.audition_judge\",\n masterwork__bad_draft: \"masterwork.bad_draft\",\n masterwork__bad_example_probe: \"masterwork.bad_example_probe\",\n masterwork__case_oracle: \"masterwork.case_oracle\",\n masterwork__checkup_auditor: \"masterwork.checkup_auditor\",\n masterwork__coherence_partner: \"masterwork.coherence_partner\",\n masterwork__conductor: \"masterwork.conductor\",\n masterwork__corpus_cleaner: \"masterwork.corpus_cleaner\",\n masterwork__corpus_synthesizer: \"masterwork.corpus_synthesizer\",\n masterwork__counterparty: \"masterwork.counterparty\",\n masterwork__critique_distiller: \"masterwork.critique_distiller\",\n masterwork__draft_triage: \"masterwork.draft_triage\",\n masterwork__drip_distiller: \"masterwork.drip_distiller\",\n masterwork__drip_question: \"masterwork.drip_question\",\n masterwork__elicitation_judge: \"masterwork.elicitation_judge\",\n masterwork__exception_hunter: \"masterwork.exception_hunter\",\n masterwork__exemplar_distiller: \"masterwork.exemplar_distiller\",\n masterwork__faithfulness_judge: \"masterwork.faithfulness_judge\",\n masterwork__intake_designer: \"masterwork.intake_designer\",\n masterwork__markup_distiller: \"masterwork.markup_distiller\",\n masterwork__meeting_scavenger: \"masterwork.meeting_scavenger\",\n masterwork__monologue_distiller: \"masterwork.monologue_distiller\",\n masterwork__outcome_judge: \"masterwork.outcome_judge\",\n masterwork__pairwise_judge: \"masterwork.pairwise_judge\",\n masterwork__prediction_boundary: \"masterwork.prediction_boundary\",\n masterwork__prediction_distiller: \"masterwork.prediction_distiller\",\n masterwork__relationship_auditor: \"masterwork.relationship_auditor\",\n masterwork__rule_improver: \"masterwork.rule_improver\",\n masterwork__rulebook_auditor: \"masterwork.rulebook_auditor\",\n masterwork__scout: \"masterwork.scout\",\n masterwork__sealed_case_oracle: \"masterwork.sealed_case_oracle\",\n masterwork__sort_case_writer: \"masterwork.sort_case_writer\",\n masterwork__sort_distiller: \"masterwork.sort_distiller\",\n masterwork__source_distiller: \"masterwork.source_distiller\",\n masterwork__teach_back_distiller: \"masterwork.teach_back_distiller\",\n masterwork__teach_back_explainer: \"masterwork.teach_back_explainer\",\n masterwork__template__chief_edit: \"masterwork.template.chief_edit\",\n masterwork__template__chief_generate: \"masterwork.template.chief_generate\",\n masterwork__template__editor: \"masterwork.template.editor\",\n masterwork__template__maker: \"masterwork.template.maker\",\n masterwork__timeline_distiller: \"masterwork.timeline_distiller\",\n masterwork__timeline_segmenter: \"masterwork.timeline_segmenter\",\n masterwork__transcript_distiller: \"masterwork.transcript_distiller\",\n masterwork__transcript_shortlister: \"masterwork.transcript_shortlister\",\n masterwork__triad_distiller: \"masterwork.triad_distiller\",\n masterwork__triad_generator: \"masterwork.triad_generator\",\n masterwork__understudy: \"masterwork.understudy\",\n masterwork__unfolding_judge: \"masterwork.unfolding_judge\",\n masterworks__bench__a2_loop: \"masterworks.bench.a2_loop\",\n masterworks__bench__calibration_decoy: \"masterworks.bench.calibration_decoy\",\n masterworks__bench__consensus: \"masterworks.bench.consensus\",\n masterworks__bench__extract: \"masterworks.bench.extract\",\n masterworks__bench__judge: \"masterworks.bench.judge\",\n masterworks__bench__panel: \"masterworks.bench.panel\",\n masterworks__bench__raw_arm: \"masterworks.bench.raw_arm\",\n masterworks__vanilla_arm__answer_from_facts: \"masterworks.vanilla_arm.answer_from_facts\",\n masterworks__vanilla_arm__best_work: \"masterworks.vanilla_arm.best_work\",\n masterworks__vanilla_arm__outcome_case: \"masterworks.vanilla_arm.outcome_case\",\n masterworks__vanilla_arm__professional_help: \"masterworks.vanilla_arm.professional_help\",\n media__youtube_analyzer: \"media.youtube_analyzer\",\n media_catalog__item_vetting_decision: \"media_catalog.item_vetting_decision\",\n meet__agenda_draft: \"meet.agenda_draft\",\n meet__live_intelligence: \"meet.live_intelligence\",\n meet__live_notes: \"meet.live_notes\",\n meet__pre_meeting_brief: \"meet.pre_meeting_brief\",\n meet__transcription: \"meet.transcription\",\n meet__wrap_up: \"meet.wrap_up\",\n memory__observer: \"memory.observer\",\n memory__reflector: \"memory.reflector\",\n mermaid__diagram_editing: \"mermaid.diagram_editing\",\n messaging__action_item_extraction: \"messaging.action_item_extraction\",\n messaging__conversation_catch_up: \"messaging.conversation_catch_up\",\n messaging__conversation_summary: \"messaging.conversation_summary\",\n messaging__reply_drafting: \"messaging.reply_drafting\",\n ner__deep_chunk_extractor: \"ner.deep_chunk_extractor\",\n ner__document_orienter: \"ner.document_orienter\",\n ner__entity_canonicalizer: \"ner.entity_canonicalizer\",\n ner__finisher: \"ner.finisher\",\n ner__item_proposer: \"ner.item_proposer\",\n ner__magic_moment_detector: \"ner.magic_moment_detector\",\n ner__scope_proposer: \"ner.scope_proposer\",\n ner__scope_slot_filler: \"ner.scope_slot_filler\",\n ner__suggestion_reviewer: \"ner.suggestion_reviewer\",\n ner__sweep_scope_discoverer: \"ner.sweep_scope_discoverer\",\n ner__sweep_scope_reference_finder: \"ner.sweep_scope_reference_finder\",\n ner__sweep_value_miner: \"ner.sweep_value_miner\",\n news__angles: \"news.angles\",\n news__coarse_relevance: \"news.coarse_relevance\",\n news__monitor_setup_proposer: \"news.monitor_setup_proposer\",\n news__report: \"news.report\",\n news__story_origin: \"news.story_origin\",\n news__triage: \"news.triage\",\n notes__organizer: \"notes.organizer\",\n notes__page_guidance: \"notes.page_guidance\",\n observability__tool_trace_pattern_detection: \"observability.tool_trace_pattern_detection\",\n observability__tool_trace_triage: \"observability.tool_trace_triage\",\n orchestras__role_describer: \"orchestras.role_describer\",\n orchestration__tool_failure_standoff_decision: \"orchestration.tool_failure_standoff_decision\",\n pdf__chunk_clean_ocr_text: \"pdf.chunk_clean_ocr_text\",\n pdf__chunk_flashcards_json: \"pdf.chunk_flashcards_json\",\n pdf__chunk_flashcards_typescript: \"pdf.chunk_flashcards_typescript\",\n pdf__content_cleaner: \"pdf.content_cleaner\",\n personal_staff__escalation: \"personal_staff.escalation\",\n personal_staff__front_line: \"personal_staff.front_line\",\n podcast__audience_adapter: \"podcast.audience_adapter\",\n podcast__audio_dialogue: \"podcast.audio_dialogue\",\n podcast__audio_english: \"podcast.audio_english\",\n podcast__audio_persian: \"podcast.audio_persian\",\n podcast__chapter_marker: \"podcast.chapter_marker\",\n podcast__content_extractor: \"podcast.content_extractor\",\n podcast__deep_research: \"podcast.deep_research\",\n podcast__image_v1: \"podcast.image_v1\",\n podcast__image_v2: \"podcast.image_v2\",\n podcast__image_v3: \"podcast.image_v3\",\n podcast__image_v4: \"podcast.image_v4\",\n podcast__image_v5: \"podcast.image_v5\",\n podcast__image_v6_feature: \"podcast.image_v6_feature\",\n podcast__image_v6_feature_prompt: \"podcast.image_v6_feature_prompt\",\n podcast__live_rewrite: \"podcast.live_rewrite\",\n podcast__metadata: \"podcast.metadata\",\n podcast__multihost_script: \"podcast.multihost_script\",\n podcast__post_prep_expansion: \"podcast.post_prep_expansion\",\n podcast__post_prep_fact_checking: \"podcast.post_prep_fact_checking\",\n podcast__post_prep_summarization: \"podcast.post_prep_summarization\",\n podcast__post_prep_translation: \"podcast.post_prep_translation\",\n podcast__race_frontier: \"podcast.race_frontier\",\n podcast__relevance_gate: \"podcast.relevance_gate\",\n podcast__roundtable_script: \"podcast.roundtable_script\",\n podcast__script_educational: \"podcast.script_educational\",\n podcast__script_news: \"podcast.script_news\",\n podcast__script_persian: \"podcast.script_persian\",\n podcast__solo_script: \"podcast.solo_script\",\n podcast__title_optimizer: \"podcast.title_optimizer\",\n podcast__video_v1: \"podcast.video_v1\",\n podcast__video_v2: \"podcast.video_v2\",\n podcast_client__blog_writer: \"podcast_client.blog_writer\",\n podcast_client__show_notes: \"podcast_client.show_notes\",\n podcast_client__topic_ideas: \"podcast_client.topic_ideas\",\n podcast_client__web_content_extractor: \"podcast_client.web_content_extractor\",\n podcast_client__youtube_research: \"podcast_client.youtube_research\",\n product_capture__instant_analysis: \"product_capture.instant_analysis\",\n projects__creation_guide: \"projects.creation_guide\",\n proof_runs__judge: \"proof_runs.judge\",\n purpose__writer: \"purpose.writer\",\n rag__chunk_contextualizer: \"rag.chunk_contextualizer\",\n rag__grounded_synthesis: \"rag.grounded_synthesis\",\n rag__grounding_claim_extract: \"rag.grounding_claim_extract\",\n rag__grounding_judge: \"rag.grounding_judge\",\n rag__hyde_generator: \"rag.hyde_generator\",\n rag__image_caption: \"rag.image_caption\",\n rag__pdf_page_cleaner: \"rag.pdf_page_cleaner\",\n rag__query_expander: \"rag.query_expander\",\n rag_kinds__grounded_synthesis: \"rag_kinds.grounded_synthesis\",\n records__enrichment: \"records.enrichment\",\n research__auto_tagger: \"research.auto_tagger\",\n research__condenser_1: \"research.condenser_1\",\n research__condenser_2: \"research.condenser_2\",\n research__coverage_audit: \"research.coverage_audit\",\n research__cross_cutting_tags: \"research.cross_cutting_tags\",\n research__document_assembly: \"research.document_assembly\",\n research__keyword_synthesis: \"research.keyword_synthesis\",\n research__report: \"research.report\",\n research__report_updater: \"research.report_updater\",\n research__source_authority: \"research.source_authority\",\n research__source_triage_decision: \"research.source_triage_decision\",\n research__structured_page_summary: \"research.structured_page_summary\",\n research__suggest_setup: \"research.suggest_setup\",\n research__tag_consolidation: \"research.tag_consolidation\",\n research__topic_deep_research: \"research.topic_deep_research\",\n research_client__output_blog: \"research_client.output_blog\",\n research_client__output_brand_profile: \"research_client.output_brand_profile\",\n research_client__output_competitive_landscape: \"research_client.output_competitive_landscape\",\n research_client__output_gap_analysis: \"research_client.output_gap_analysis\",\n research_client__output_literature_review: \"research_client.output_literature_review\",\n research_client__output_reputation_business: \"research_client.output_reputation_business\",\n research_client__output_reputation_personal: \"research_client.output_reputation_personal\",\n research_client__output_seo: \"research_client.output_seo\",\n research_client__output_slides: \"research_client.output_slides\",\n scraper__fact_check: \"scraper.fact_check\",\n scraper__keyword_analysis: \"scraper.keyword_analysis\",\n scraper__page_fetch_verdict: \"scraper.page_fetch_verdict\",\n seo__ai_visibility_blind_question_writer: \"seo.ai_visibility_blind_question_writer\",\n seo__ai_visibility_buyer_jobs: \"seo.ai_visibility_buyer_jobs\",\n seo__ai_visibility_decision_analyst: \"seo.ai_visibility_decision_analyst\",\n seo__ai_visibility_evidence_icp: \"seo.ai_visibility_evidence_icp\",\n seo__ai_visibility_panel_designer: \"seo.ai_visibility_panel_designer\",\n seo__ai_visibility_panel_report: \"seo.ai_visibility_panel_report\",\n seo__ai_visibility_question_architect: \"seo.ai_visibility_question_architect\",\n seo__ai_visibility_question_qa: \"seo.ai_visibility_question_qa\",\n seo__ai_visibility_writing_audit: \"seo.ai_visibility_writing_audit\",\n seo__backlink_analysis: \"seo.backlink_analysis\",\n seo__backlink_context_assessor: \"seo.backlink_context_assessor\",\n seo__backlink_work_planner: \"seo.backlink_work_planner\",\n seo__business_model_verdict: \"seo.business_model_verdict\",\n seo__competitor_classifier: \"seo.competitor_classifier\",\n seo__competitor_opportunity_autopsy: \"seo.competitor_opportunity_autopsy\",\n seo__competitor_page_autopsy: \"seo.competitor_page_autopsy\",\n seo__coverage_analyst: \"seo.coverage_analyst\",\n seo__digital_pr_reputation_adjudicator: \"seo.digital_pr_reputation_adjudicator\",\n seo__evidence_workbench: \"seo.evidence_workbench\",\n seo__finding_fixer: \"seo.finding_fixer\",\n seo__guidelines_drafter: \"seo.guidelines_drafter\",\n seo__ideal_customer_profile: \"seo.ideal_customer_profile\",\n seo__keyword_classifier: \"seo.keyword_classifier\",\n seo__keyword_expander: \"seo.keyword_expander\",\n seo__keyword_researcher: \"seo.keyword_researcher\",\n seo__keyword_serp_intent_analyst: \"seo.keyword_serp_intent_analyst\",\n seo__landscape_brief: \"seo.landscape_brief\",\n seo__map_author: \"seo.map_author\",\n seo__map_curation: \"seo.map_curation\",\n seo__money_map: \"seo.money_map\",\n seo__offering_extraction: \"seo.offering_extraction\",\n seo__offering_valuation: \"seo.offering_valuation\",\n seo__page_analyzer: \"seo.page_analyzer\",\n seo__page_intent_proposer: \"seo.page_intent_proposer\",\n seo__page_keyword_mapper: \"seo.page_keyword_mapper\",\n seo__page_mapper: \"seo.page_mapper\",\n seo__press_calendar_planner: \"seo.press_calendar_planner\",\n seo__press_clip_reviewer: \"seo.press_clip_reviewer\",\n seo__press_headlines: \"seo.press_headlines\",\n seo__press_moment_researcher: \"seo.press_moment_researcher\",\n seo__press_newsworthiness_check: \"seo.press_newsworthiness_check\",\n seo__press_source_request_responder: \"seo.press_source_request_responder\",\n seo__press_story_analyst: \"seo.press_story_analyst\",\n seo__press_strategist: \"seo.press_strategist\",\n seo__reputation_crisis_holding: \"seo.reputation_crisis_holding\",\n seo__session_rule_writer: \"seo.session_rule_writer\",\n seo__session_stamp_proposer: \"seo.session_stamp_proposer\",\n seo__site_intake: \"seo.site_intake\",\n seo__site_link_authority_router: \"seo.site_link_authority_router\",\n seo__site_strategist: \"seo.site_strategist\",\n seo__starter_pack_proposer: \"seo.starter_pack_proposer\",\n seo__strategy__site_brief__generate: \"seo.strategy.site_brief.generate\",\n seo__topic_assigner: \"seo.topic_assigner\",\n seo__topic_curation: \"seo.topic_curation\",\n sms__owner_beta: \"sms.owner_beta\",\n surfaces_client__binding_mapper: \"surfaces_client.binding_mapper\",\n tasks__triage: \"tasks.triage\",\n tool_viz__component_generator: \"tool_viz.component_generator\",\n tools__summarize_content: \"tools.summarize_content\",\n transcript_studio__document_edit: \"transcript_studio.document_edit\",\n transcript_studio__scribe_live: \"transcript_studio.scribe_live\",\n transcripts__clean_with_context: \"transcripts.clean_with_context\",\n transcripts__clean_with_context_variable: \"transcripts.clean_with_context_variable\",\n transcripts__clean_without_context: \"transcripts.clean_without_context\",\n vision_interview__adversary: \"vision_interview.adversary\",\n vision_interview__amplifier: \"vision_interview.amplifier\",\n vision_interview__answer_tracker: \"vision_interview.answer_tracker\",\n vision_interview__archaeologist: \"vision_interview.archaeologist\",\n vision_interview__architect: \"vision_interview.architect\",\n vision_interview__cartographer: \"vision_interview.cartographer\",\n vision_interview__requirements_author: \"vision_interview.requirements_author\",\n vision_interview__scribe: \"vision_interview.scribe\",\n vision_interview__sounding_board: \"vision_interview.sounding_board\",\n vision_interview__transcript_cleaner: \"vision_interview.transcript_cleaner\",\n vision_interview__vision_author: \"vision_interview.vision_author\",\n voice__communicator: \"voice.communicator\",\n voice__gemini_live: \"voice.gemini_live\",\n voice__intro: \"voice.intro\",\n voice__owner_beta: \"voice.owner_beta\",\n war_room__master: \"war_room.master\",\n war_room__room: \"war_room.room\",\n war_room__thread: \"war_room.thread\",\n web__endpoint_family_judge: \"web.endpoint_family_judge\",\n workflow__complex_research__keyword_synthesis: \"workflow.complex_research.keyword_synthesis\",\n workflow__complex_research__page_summary: \"workflow.complex_research.page_summary\",\n workflow__complex_research__report: \"workflow.complex_research.report\",\n workflow__conductor: \"workflow.conductor\",\n workflow__deep_research__keyword_synthesis: \"workflow.deep_research.keyword_synthesis\",\n workflow__extract_namer: \"workflow.extract_namer\",\n workflow__plan_design: \"workflow.plan_design\",\n workflow__plan_input_kind_authoring: \"workflow.plan_input_kind_authoring\",\n workflow__plan_node_type_recommender: \"workflow.plan_node_type_recommender\",\n workflow__plan_notes_writer: \"workflow.plan_notes_writer\",\n workflow__plan_output_kind_authoring: \"workflow.plan_output_kind_authoring\",\n workflow__recovery_advisor: \"workflow.recovery_advisor\",\n workflow__run_assist_suggester: \"workflow.run_assist_suggester\",\n workflow__step_intelligence: \"workflow.step_intelligence\",\n workflow__steward: \"workflow.steward\",\n workflow__steward__agent_run: \"workflow.steward.agent_run\",\n workflow__steward__data: \"workflow.steward.data\",\n workflow__steward__decision: \"workflow.steward.decision\",\n workflow__steward__user_input: \"workflow.steward.user_input\",\n workflow__wizard__agent_run: \"workflow.wizard.agent_run\",\n} as const;\n\n/** Every key this package version accepts — active plus retiring. */\nexport type MandateKey = (typeof MANDATE_KEYS)[keyof typeof MANDATE_KEYS];\n\n/** The key set as a runtime array, in generated order. */\nexport const ALL_MANDATE_KEYS: readonly MandateKey[] = Object.values(MANDATE_KEYS) as readonly MandateKey[];\n\n/** Keys still in the union but no longer declared (two-phase retire, phase 1). */\nexport const RETIRING_MANDATE_KEYS = {\n} as const;\n\n/**\n * Declared FAMILIES — a prefix the feature's own roster owns, and its members.\n * Emitted from `declared_families()` (aidream `services/mandates/carriers.py`).\n */\nexport const MANDATE_FAMILIES = {\n \"ambient.page_guidance_overrides\": [\n \"data.page_guidance\",\n \"education.admin_guidance\",\n \"education.audio_study_guidance\",\n \"education.classes_guidance\",\n \"education.creator_guidance\",\n \"education.data_guidance\",\n \"education.exam_prep_guidance\",\n \"education.family_guidance\",\n \"education.fastfire_guidance\",\n \"education.features_guidance\",\n \"education.flashcards_guidance\",\n \"education.game_guidance\",\n \"education.grade_work_guidance\",\n \"education.learn_guidance\",\n \"education.levels_guidance\",\n \"education.library_guidance\",\n \"education.media_guidance\",\n \"education.memory_guidance\",\n \"education.mind_maps_guidance\",\n \"education.notes_guidance\",\n \"education.offline_guidance\",\n \"education.page_guidance\",\n \"education.planner_guidance\",\n \"education.practice_oral_guidance\",\n \"education.practice_tests_guidance\",\n \"education.progress_guidance\",\n \"education.quizzes_guidance\",\n \"education.start_guidance\",\n \"education.study_aids_guidance\",\n \"education.subjects_guidance\",\n \"education.summaries_guidance\",\n \"education.tutor_guidance\",\n \"notes.page_guidance\",\n ],\n \"checks.cleanup_bakeoff\": [\n \"checks.cleanup_bakeoff.answer\",\n \"checks.cleanup_bakeoff.judge\",\n ],\n \"content_plan.p6_build\": [\n \"content_plan.p6_build.about\",\n \"content_plan.p6_build.blog\",\n \"content_plan.p6_build.comparison\",\n \"content_plan.p6_build.contact\",\n \"content_plan.p6_build.faq\",\n \"content_plan.p6_build.guide\",\n \"content_plan.p6_build.home\",\n \"content_plan.p6_build.index\",\n \"content_plan.p6_build.location\",\n \"content_plan.p6_build.pillar\",\n \"content_plan.p6_build.pricing\",\n \"content_plan.p6_build.service\",\n ],\n \"content_plan.research_wave\": [\n \"content_plan.research_wave.audience_journey\",\n \"content_plan.research_wave.competitor_coverage\",\n \"content_plan.research_wave.keyword_value\",\n ],\n \"conversation\": [\n \"conversation.action_auditor\",\n \"conversation.decision_ledger\",\n \"conversation.drift_auditor\",\n \"conversation.outcome_summarizer\",\n \"conversation.vision_extractor\",\n \"conversation.vision_interviewer\",\n ],\n \"masterworks.bench\": [\n \"masterworks.bench.a2_loop\",\n \"masterworks.bench.calibration_decoy\",\n \"masterworks.bench.consensus\",\n \"masterworks.bench.extract\",\n \"masterworks.bench.judge\",\n \"masterworks.bench.panel\",\n \"masterworks.bench.raw_arm\",\n ],\n \"masterworks.vanilla_arm\": [\n \"masterworks.vanilla_arm.answer_from_facts\",\n \"masterworks.vanilla_arm.best_work\",\n \"masterworks.vanilla_arm.outcome_case\",\n \"masterworks.vanilla_arm.professional_help\",\n ],\n \"vision_interview\": [\n \"vision_interview.adversary\",\n \"vision_interview.amplifier\",\n \"vision_interview.answer_tracker\",\n \"vision_interview.archaeologist\",\n \"vision_interview.architect\",\n \"vision_interview.cartographer\",\n \"vision_interview.requirements_author\",\n \"vision_interview.scribe\",\n \"vision_interview.sounding_board\",\n \"vision_interview.transcript_cleaner\",\n \"vision_interview.vision_author\",\n ],\n} as const;\n\nexport type MandateFamilyPrefix = keyof typeof MANDATE_FAMILIES;\n\n/** Members of a declared family, typed as real keys. */\nexport type MandateFamilyMember<P extends MandateFamilyPrefix> =\n (typeof MANDATE_FAMILIES)[P][number];\n\n/**\n * THE DYNAMIC FAMILIES — DB-authored (`mandate.definition` origin='user'). No\n * generated union can contain them, so their accessors return a BRANDED\n * `DynamicMandateKey`, deliberately NOT assignable to `MandateKey`: a carrier that\n * demands a declared key still refuses one, and a carrier that accepts either\n * says so in its own signature (`MandateKey | DynamicMandateKey`).\n */\ndeclare const dynamicMandateKeyBrand: unique symbol;\n\nexport type DynamicMandateKey = string & {\n readonly [dynamicMandateKeyBrand]: true;\n};\n\nexport const DYNAMIC_MANDATE_FAMILIES = {\n \"app\": { prefix: \"app\", note: \"One mandate per user-built app (`mandate.definition` origin='user').\" },\n \"shortcut\": { prefix: \"shortcut\", note: \"One mandate per user-authored shortcut (origin='user').\" },\n} as const;\n\nexport type DynamicMandateFamilyPrefix = keyof typeof DYNAMIC_MANDATE_FAMILIES;\n\nconst DYNAMIC_SLUG = /^[a-z0-9]+(?:_[a-z0-9]+)*$/;\n\nfunction dynamicKey(\n prefix: DynamicMandateFamilyPrefix,\n ...slugs: readonly (string | undefined)[]\n): DynamicMandateKey {\n const parts = slugs.filter((slug): slug is string => slug !== undefined);\n if (parts.length === 0) {\n throw new Error(\n `mandate family \"${prefix}\" needs at least a member slug — it was given none.`,\n );\n }\n for (const slug of parts) {\n if (!DYNAMIC_SLUG.test(slug)) {\n throw new Error(\n `mandate family \"${prefix}\" cannot name a member from ` +\n `${JSON.stringify(slug)}: a segment is lowercase words joined by single ` +\n \"underscores. Pass the slug the row carries, never a display name.\",\n );\n }\n }\n return [prefix, ...parts].join(\".\") as DynamicMandateKey;\n}\n\n/**\n * The mandate key of a user-built app. DB-authored — never a declared key.\n * `surfaceSlug` names the per-surface row a few apps carry\n * (`app.<app>.<surface>`); omit it for the app's own mandate.\n */\nexport function mandateKeyOfApp(\n appSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"app\", appSlug, surfaceSlug);\n}\n\n/**\n * The mandate key of a user-authored shortcut. DB-authored. `surfaceSlug` names\n * the per-surface row (`shortcut.<shortcut>.<surface>`), which is how most live\n * shortcut rows are keyed; omit it for the shortcut's own mandate.\n */\nexport function mandateKeyOfShortcut(\n shortcutSlug: string,\n surfaceSlug?: string,\n): DynamicMandateKey {\n return dynamicKey(\"shortcut\", shortcutSlug, surfaceSlug);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACqBO,IAAM,oBAAoB;AAAA,EAC/B,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,cAAc;AAChB;AAGO,IAAM,eAAe;AAAA,EAC1B,yBAAyB;AAAA,EACzB,mCAAmC;AAAA,EACnC,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,kCAAkC;AAAA,EAClC,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,6BAA6B;AAAA,EAC7B,gCAAgC;AAAA,EAChC,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,iCAAiC;AAAA,EACjC,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,oCAAoC;AAAA,EACpC,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,wBAAwB;AAAA,EACxB,mCAAmC;AAAA,EACnC,iCAAiC;AAAA,EACjC,wCAAwC;AAAA,EACxC,+CAA+C;AAAA,EAC/C,+BAA+B;AAAA,EAC/B,iCAAiC;AAAA,EACjC,0BAA0B;AAAA,EAC1B,mCAAmC;AAAA,EACnC,kCAAkC;AAAA,EAClC,mCAAmC;AAAA,EACnC,iCAAiC;AAAA,EACjC,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,EAC1C,+BAA+B;AAAA,EAC/B,4BAA4B;AAAA,EAC5B,oCAAoC;AAAA,EACpC,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,4BAA4B;AAAA,EAC5B,kCAAkC;AAAA,EAClC,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,oCAAoC;AAAA,EACpC,iCAAiC;AAAA,EACjC,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,+BAA+B;AAAA,EAC/B,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,EAChC,iCAAiC;AAAA,EACjC,iCAAiC;AAAA,EACjC,6BAA6B;AAAA,EAC7B,+CAA+C;AAAA,EAC/C,kDAAkD;AAAA,EAClD,4CAA4C;AAAA,EAC5C,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,8BAA8B;AAAA,EAC9B,+BAA+B;AAAA,EAC/B,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,0BAA0B;AAAA,EAC1B,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,EAChC,kCAAkC;AAAA,EAClC,8BAA8B;AAAA,EAC9B,wBAAwB;AAAA,EACxB,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,qCAAqC;AAAA,EACrC,sCAAsC;AAAA,EACtC,4BAA4B;AAAA,EAC5B,qCAAqC;AAAA,EACrC,6BAA6B;AAAA,EAC7B,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,6BAA6B;AAAA,EAC7B,kCAAkC;AAAA,EAClC,iCAAiC;AAAA,EACjC,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EACjC,iCAAiC;AAAA,EACjC,qCAAqC;AAAA,EACrC,gCAAgC;AAAA,EAChC,kCAAkC;AAAA,EAClC,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,+BAA+B;AAAA,EAC/B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,8BAA8B;AAAA,EAC9B,gCAAgC;AAAA,EAChC,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,gCAAgC;AAAA,EAChC,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,2BAA2B;AAAA,EAC3B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAC5B,wBAAwB;AAAA,EACxB,+BAA+B;AAAA,EAC/B,6BAA6B;AAAA,EAC7B,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,mCAAmC;AAAA,EACnC,oCAAoC;AAAA,EACpC,8BAA8B;AAAA,EAC9B,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,sCAAsC;AAAA,EACtC,6BAA6B;AAAA,EAC7B,mCAAmC;AAAA,EACnC,4CAA4C;AAAA,EAC5C,kCAAkC;AAAA,EAClC,gDAAgD;AAAA,EAChD,mCAAmC;AAAA,EACnC,2BAA2B;AAAA,EAC3B,gCAAgC;AAAA,EAChC,kCAAkC;AAAA,EAClC,+BAA+B;AAAA,EAC/B,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,qCAAqC;AAAA,EACrC,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,EAChC,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,+BAA+B;AAAA,EAC/B,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB,+BAA+B;AAAA,EAC/B,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,gCAAgC;AAAA,EAChC,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,4BAA4B;AAAA,EAC5B,kCAAkC;AAAA,EAClC,0BAA0B;AAAA,EAC1B,gCAAgC;AAAA,EAChC,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,mCAAmC;AAAA,EACnC,kBAAkB;AAAA,EAClB,4BAA4B;AAAA,EAC5B,mBAAmB;AAAA,EACnB,oCAAoC;AAAA,EACpC,8BAA8B;AAAA,EAC9B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,8BAA8B;AAAA,EAC9B,+BAA+B;AAAA,EAC/B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,gCAAgC;AAAA,EAChC,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,mCAAmC;AAAA,EACnC,iBAAiB;AAAA,EACjB,yBAAyB;AAAA,EACzB,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,6BAA6B;AAAA,EAC7B,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,8BAA8B;AAAA,EAC9B,yBAAyB;AAAA,EACzB,+BAA+B;AAAA,EAC/B,wBAAwB;AAAA,EACxB,gCAAgC;AAAA,EAChC,iCAAiC;AAAA,EACjC,oCAAoC;AAAA,EACpC,6BAA6B;AAAA,EAC7B,oCAAoC;AAAA,EACpC,+BAA+B;AAAA,EAC/B,uCAAuC;AAAA,EACvC,mBAAmB;AAAA,EACnB,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,qBAAqB;AAAA,EACrB,6BAA6B;AAAA,EAC7B,wBAAwB;AAAA,EACxB,kCAAkC;AAAA,EAClC,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAC5B,mCAAmC;AAAA,EACnC,mCAAmC;AAAA,EACnC,8BAA8B;AAAA,EAC9B,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,0BAA0B;AAAA,EAC1B,yCAAyC;AAAA,EACzC,wCAAwC;AAAA,EACxC,wBAAwB;AAAA,EACxB,+BAA+B;AAAA,EAC/B,gCAAgC;AAAA,EAChC,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,kCAAkC;AAAA,EAClC,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,4BAA4B;AAAA,EAC5B,uBAAuB;AAAA,EACvB,+BAA+B;AAAA,EAC/B,yBAAyB;AAAA,EACzB,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,uBAAuB;AAAA,EACvB,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,EAChC,0BAA0B;AAAA,EAC1B,gCAAgC;AAAA,EAChC,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,gCAAgC;AAAA,EAChC,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,8BAA8B;AAAA,EAC9B,+BAA+B;AAAA,EAC/B,iCAAiC;AAAA,EACjC,2BAA2B;AAAA,EAC3B,4BAA4B;AAAA,EAC5B,iCAAiC;AAAA,EACjC,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,EAClC,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,mBAAmB;AAAA,EACnB,gCAAgC;AAAA,EAChC,8BAA8B;AAAA,EAC9B,4BAA4B;AAAA,EAC5B,8BAA8B;AAAA,EAC9B,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,EAClC,sCAAsC;AAAA,EACtC,8BAA8B;AAAA,EAC9B,6BAA6B;AAAA,EAC7B,gCAAgC;AAAA,EAChC,gCAAgC;AAAA,EAChC,kCAAkC;AAAA,EAClC,oCAAoC;AAAA,EACpC,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,wBAAwB;AAAA,EACxB,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,uCAAuC;AAAA,EACvC,+BAA+B;AAAA,EAC/B,6BAA6B;AAAA,EAC7B,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,6CAA6C;AAAA,EAC7C,qCAAqC;AAAA,EACrC,wCAAwC;AAAA,EACxC,6CAA6C;AAAA,EAC7C,yBAAyB;AAAA,EACzB,sCAAsC;AAAA,EACtC,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,mCAAmC;AAAA,EACnC,kCAAkC;AAAA,EAClC,iCAAiC;AAAA,EACjC,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,wBAAwB;AAAA,EACxB,2BAA2B;AAAA,EAC3B,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,4BAA4B;AAAA,EAC5B,qBAAqB;AAAA,EACrB,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,mCAAmC;AAAA,EACnC,wBAAwB;AAAA,EACxB,cAAc;AAAA,EACd,wBAAwB;AAAA,EACxB,8BAA8B;AAAA,EAC9B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,6CAA6C;AAAA,EAC7C,kCAAkC;AAAA,EAClC,4BAA4B;AAAA,EAC5B,+CAA+C;AAAA,EAC/C,2BAA2B;AAAA,EAC3B,4BAA4B;AAAA,EAC5B,kCAAkC;AAAA,EAClC,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAC5B,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,4BAA4B;AAAA,EAC5B,wBAAwB;AAAA,EACxB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,2BAA2B;AAAA,EAC3B,kCAAkC;AAAA,EAClC,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,2BAA2B;AAAA,EAC3B,8BAA8B;AAAA,EAC9B,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,uCAAuC;AAAA,EACvC,kCAAkC;AAAA,EAClC,mCAAmC;AAAA,EACnC,0BAA0B;AAAA,EAC1B,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,8BAA8B;AAAA,EAC9B,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,+BAA+B;AAAA,EAC/B,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,uBAAuB;AAAA,EACvB,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAC5B,kCAAkC;AAAA,EAClC,mCAAmC;AAAA,EACnC,yBAAyB;AAAA,EACzB,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,uCAAuC;AAAA,EACvC,+CAA+C;AAAA,EAC/C,sCAAsC;AAAA,EACtC,2CAA2C;AAAA,EAC3C,6CAA6C;AAAA,EAC7C,6CAA6C;AAAA,EAC7C,6BAA6B;AAAA,EAC7B,gCAAgC;AAAA,EAChC,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,0CAA0C;AAAA,EAC1C,+BAA+B;AAAA,EAC/B,qCAAqC;AAAA,EACrC,iCAAiC;AAAA,EACjC,mCAAmC;AAAA,EACnC,iCAAiC;AAAA,EACjC,uCAAuC;AAAA,EACvC,gCAAgC;AAAA,EAChC,kCAAkC;AAAA,EAClC,wBAAwB;AAAA,EACxB,gCAAgC;AAAA,EAChC,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,qCAAqC;AAAA,EACrC,8BAA8B;AAAA,EAC9B,uBAAuB;AAAA,EACvB,wCAAwC;AAAA,EACxC,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,kCAAkC;AAAA,EAClC,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,0BAA0B;AAAA,EAC1B,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,iCAAiC;AAAA,EACjC,qCAAqC;AAAA,EACrC,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,gCAAgC;AAAA,EAChC,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,kBAAkB;AAAA,EAClB,iCAAiC;AAAA,EACjC,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,qCAAqC;AAAA,EACrC,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,iBAAiB;AAAA,EACjB,iCAAiC;AAAA,EACjC,eAAe;AAAA,EACf,+BAA+B;AAAA,EAC/B,0BAA0B;AAAA,EAC1B,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,EAChC,iCAAiC;AAAA,EACjC,0CAA0C;AAAA,EAC1C,oCAAoC;AAAA,EACpC,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA,EAC7B,kCAAkC;AAAA,EAClC,iCAAiC;AAAA,EACjC,6BAA6B;AAAA,EAC7B,gCAAgC;AAAA,EAChC,uCAAuC;AAAA,EACvC,0BAA0B;AAAA,EAC1B,kCAAkC;AAAA,EAClC,sCAAsC;AAAA,EACtC,iCAAiC;AAAA,EACjC,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,4BAA4B;AAAA,EAC5B,+CAA+C;AAAA,EAC/C,0CAA0C;AAAA,EAC1C,oCAAoC;AAAA,EACpC,qBAAqB;AAAA,EACrB,4CAA4C;AAAA,EAC5C,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,qCAAqC;AAAA,EACrC,sCAAsC;AAAA,EACtC,6BAA6B;AAAA,EAC7B,sCAAsC;AAAA,EACtC,4BAA4B;AAAA,EAC5B,gCAAgC;AAAA,EAChC,6BAA6B;AAAA,EAC7B,mBAAmB;AAAA,EACnB,8BAA8B;AAAA,EAC9B,yBAAyB;AAAA,EACzB,6BAA6B;AAAA,EAC7B,+BAA+B;AAAA,EAC/B,6BAA6B;AAC/B;AAMO,IAAM,mBAA0C,OAAO,OAAO,YAAY;AAG1E,IAAM,wBAAwB,CACrC;AAMO,IAAM,mBAAmB;AAAA,EAC9B,mCAAmC;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,0BAA0B;AAAA,IACxB;AAAA,IACA;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,8BAA8B;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,qBAAqB;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,2BAA2B;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,oBAAoB;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAqBO,IAAM,2BAA2B;AAAA,EACtC,OAAO,EAAE,QAAQ,OAAO,MAAM,uEAAuE;AAAA,EACrG,YAAY,EAAE,QAAQ,YAAY,MAAM,0DAA0D;AACpG;AAIA,IAAM,eAAe;AAErB,SAAS,WACP,WACG,OACgB;AACnB,QAAM,QAAQ,MAAM,OAAO,CAAC,SAAyB,SAAS,MAAS;AACvE,MAAI,MAAM,WAAW,GAAG;AACtB,UAAM,IAAI;AAAA,MACR,mBAAmB,MAAM;AAAA,IAC3B;AAAA,EACF;AACA,aAAW,QAAQ,OAAO;AACxB,QAAI,CAAC,aAAa,KAAK,IAAI,GAAG;AAC5B,YAAM,IAAI;AAAA,QACR,mBAAmB,MAAM,+BACpB,KAAK,UAAU,IAAI,CAAC;AAAA,MAE3B;AAAA,IACF;AAAA,EACF;AACA,SAAO,CAAC,QAAQ,GAAG,KAAK,EAAE,KAAK,GAAG;AACpC;AAOO,SAAS,gBACd,SACA,aACmB;AACnB,SAAO,WAAW,OAAO,SAAS,WAAW;AAC/C;AAOO,SAAS,qBACd,cACA,aACmB;AACnB,SAAO,WAAW,YAAY,cAAc,WAAW;AACzD;;;AD/qBO,SAAS,iBAAiB,OAA8B;AAC7D,SAAO;AACT;AAEA,IAAM,UAA+B,IAAI,IAAY,gBAAgB;AAU9D,SAAS,aAAa,OAAqC;AAChE,SAAO,OAAO,UAAU,YAAY,QAAQ,IAAI,KAAK;AACvD;AAQO,SAAS,iBACd,OACA,SAC6B;AAC7B,MAAI,aAAa,KAAK,EAAG;AACzB,QAAM,QAAQ,UAAU,OAAO,OAAO,KAAK;AAC3C,QAAM,IAAI;AAAA,IACR,GAAG,KAAK,UAAU,KAAK,CAAC,iCAAiC,KAAK,sBACxC,kBAAkB,cAAc,UACjD,iBAAiB,MAAM,kBAAkB,kBAAkB,gBAAgB,MAAM,GAAG,EAAE,CAAC;AAAA,EAI9F;AACF;","names":[]}
@@ -6,9 +6,9 @@
6
6
  * from the IN-PROCESS mandate declarations — the same `declared_mandates()` the
7
7
  * boot sync writes to the database from. There is no hand list anywhere.
8
8
  *
9
- * aidream revision: 9e22c4d92deb1c588e4e6061b34f431aa03e67ac
9
+ * aidream revision: 5aef83f3d58f9e3d002f99d2279c68e945debfef
10
10
  * generator version: 1.0.0
11
- * package version: 0.20.6
11
+ * package version: 0.21.1
12
12
  * active keys: 543
13
13
  * retiring keys: 0
14
14
  *
@@ -19,9 +19,9 @@
19
19
  */
20
20
  /** Where this module came from — surfaced so a report can name the exact build. */
21
21
  declare const MANDATE_KEYS_META: {
22
- readonly aidreamRevision: "9e22c4d92deb1c588e4e6061b34f431aa03e67ac";
22
+ readonly aidreamRevision: "5aef83f3d58f9e3d002f99d2279c68e945debfef";
23
23
  readonly generatorVersion: "1.0.0";
24
- readonly packageVersion: "0.20.6";
24
+ readonly packageVersion: "0.21.1";
25
25
  readonly retireWindow: 3;
26
26
  };
27
27
  /** Every declared mandate key, by THE IDENTIFIER RULE. */
@@ -6,9 +6,9 @@
6
6
  * from the IN-PROCESS mandate declarations — the same `declared_mandates()` the
7
7
  * boot sync writes to the database from. There is no hand list anywhere.
8
8
  *
9
- * aidream revision: 9e22c4d92deb1c588e4e6061b34f431aa03e67ac
9
+ * aidream revision: 5aef83f3d58f9e3d002f99d2279c68e945debfef
10
10
  * generator version: 1.0.0
11
- * package version: 0.20.6
11
+ * package version: 0.21.1
12
12
  * active keys: 543
13
13
  * retiring keys: 0
14
14
  *
@@ -19,9 +19,9 @@
19
19
  */
20
20
  /** Where this module came from — surfaced so a report can name the exact build. */
21
21
  declare const MANDATE_KEYS_META: {
22
- readonly aidreamRevision: "9e22c4d92deb1c588e4e6061b34f431aa03e67ac";
22
+ readonly aidreamRevision: "5aef83f3d58f9e3d002f99d2279c68e945debfef";
23
23
  readonly generatorVersion: "1.0.0";
24
- readonly packageVersion: "0.20.6";
24
+ readonly packageVersion: "0.21.1";
25
25
  readonly retireWindow: 3;
26
26
  };
27
27
  /** Every declared mandate key, by THE IDENTIFIER RULE. */
@@ -1,8 +1,8 @@
1
1
  // mandates/keys.generated.ts
2
2
  var MANDATE_KEYS_META = {
3
- aidreamRevision: "9e22c4d92deb1c588e4e6061b34f431aa03e67ac",
3
+ aidreamRevision: "5aef83f3d58f9e3d002f99d2279c68e945debfef",
4
4
  generatorVersion: "1.0.0",
5
- packageVersion: "0.20.6",
5
+ packageVersion: "0.21.1",
6
6
  retireWindow: 3
7
7
  };
8
8
  var MANDATE_KEYS = {