gik-components 0.2.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.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +373 -0
  3. package/dist/agent-facing-DjAMQ4Ju.d.ts +110 -0
  4. package/dist/agent-facing.d.ts +8 -0
  5. package/dist/agent-facing.js +2 -0
  6. package/dist/agent-facing.js.map +1 -0
  7. package/dist/chunk-2I33SAGT.js +2 -0
  8. package/dist/chunk-2I33SAGT.js.map +1 -0
  9. package/dist/chunk-2XVVN3LX.js +7 -0
  10. package/dist/chunk-2XVVN3LX.js.map +1 -0
  11. package/dist/chunk-4BIHH7HT.js +2 -0
  12. package/dist/chunk-4BIHH7HT.js.map +1 -0
  13. package/dist/chunk-6JMFZS2Y.js +2 -0
  14. package/dist/chunk-6JMFZS2Y.js.map +1 -0
  15. package/dist/chunk-6TBEAKS7.js +2 -0
  16. package/dist/chunk-6TBEAKS7.js.map +1 -0
  17. package/dist/chunk-DMIV5ZI5.js +2 -0
  18. package/dist/chunk-DMIV5ZI5.js.map +1 -0
  19. package/dist/chunk-DNHCWSHQ.js +2 -0
  20. package/dist/chunk-DNHCWSHQ.js.map +1 -0
  21. package/dist/chunk-GL7PGK3G.js +2 -0
  22. package/dist/chunk-GL7PGK3G.js.map +1 -0
  23. package/dist/chunk-H6T3CCU5.js +2 -0
  24. package/dist/chunk-H6T3CCU5.js.map +1 -0
  25. package/dist/chunk-OFWGYY7S.js +2 -0
  26. package/dist/chunk-OFWGYY7S.js.map +1 -0
  27. package/dist/chunk-UP2OAMPY.js +2 -0
  28. package/dist/chunk-UP2OAMPY.js.map +1 -0
  29. package/dist/chunk-VR5CS5LA.js +2 -0
  30. package/dist/chunk-VR5CS5LA.js.map +1 -0
  31. package/dist/chunk-XA6FE7ZK.js +6 -0
  32. package/dist/chunk-XA6FE7ZK.js.map +1 -0
  33. package/dist/component-authoring-internal-DfFqqPhw.d.ts +40 -0
  34. package/dist/fluent.d.ts +103 -0
  35. package/dist/fluent.js +2 -0
  36. package/dist/fluent.js.map +1 -0
  37. package/dist/index.d.ts +139 -0
  38. package/dist/index.js +2 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/primitives.d.ts +440 -0
  41. package/dist/primitives.js +2 -0
  42. package/dist/primitives.js.map +1 -0
  43. package/dist/security.d.ts +39 -0
  44. package/dist/security.js +2 -0
  45. package/dist/security.js.map +1 -0
  46. package/dist/semantic.d.ts +147 -0
  47. package/dist/semantic.js +2 -0
  48. package/dist/semantic.js.map +1 -0
  49. package/dist/software.d.ts +44 -0
  50. package/dist/software.js +2 -0
  51. package/dist/software.js.map +1 -0
  52. package/package.json +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/semantic/argument/Argument.tsx","../src/semantic/assessment/Assessment.tsx","../src/semantic/change-proposal/ChangeProposal.tsx","../src/semantic/consistency-case/ConsistencyCase.tsx","../src/semantic/finding-set/FindingSet.tsx","../src/semantic/measure-set/MeasureSet.tsx","../src/semantic/milestones/Milestones.tsx","../src/semantic/event-series/Timeline.tsx","../src/semantic/narrative/Narrative.tsx","../src/semantic/work-set/WorkSet.tsx","../src/semantic/canonical-adapters.tsx","../src/semantic/decision/DecisionSummary.tsx","../src/semantic/entity-set/EntityConstellation.tsx","../src/semantic/evidence-case/EvidenceTrail.tsx","../src/semantic/process/Sequence.tsx","../src/semantic/registry.ts","../src/semantic/authoring.ts"],"sourcesContent":["import React from \"react\";\nimport { Badge, Card, Text, makeStyles, tokens, type BadgeProps } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { GraphDiagram, type GraphDiagramModel } from \"../../primitives/graph-diagram\";\nimport { asRecord, componentRootProps, componentStylePropsSchema, records, textAt, type DataRecord } from \"../../shared/component\";\nimport { componentNode, defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const ARGUMENT_SEMANTIC_TOKENS = [\"conclusion\", \"premise\", \"evidence\", \"objection\", \"neutral\"] as const;\nexport const ARGUMENT_VARIANTS = [\"map\", \"outline\", \"text\"] as const;\ntype ArgumentRole = Exclude<typeof ARGUMENT_SEMANTIC_TOKENS[number], \"neutral\">;\ntype ArgumentVariant = typeof ARGUMENT_VARIANTS[number];\ntype ArgumentRelationKind = \"supports\" | \"opposes\" | \"qualifies\";\n\ninterface ArgumentSpec {\n title?: string;\n description?: string;\n emptyText?: string;\n density?: \"comfortable\" | \"compact\";\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"argument\", \"spec\"],\n properties: {\n ...componentStylePropsSchema, variant: { enum: ARGUMENT_VARIANTS },\n argument: { type: \"object\", additionalProperties: false, required: [\"claims\", \"relations\"], properties: {\n claims: { type: \"array\", minItems: 1, items: {\n type: \"object\", additionalProperties: false, required: [\"id\", \"statement\", \"role\"], properties: {\n id: { type: \"string\", minLength: 1 }, statement: { type: \"string\", minLength: 1 }, detail: { type: \"string\" }, role: { enum: [\"conclusion\", \"premise\", \"evidence\", \"objection\"] },\n },\n } },\n relations: { type: \"array\", items: {\n type: \"object\", additionalProperties: false, required: [\"id\", \"source\", \"target\", \"kind\"], properties: {\n id: { type: \"string\", minLength: 1 }, source: { type: \"string\", minLength: 1 }, target: { type: \"string\", minLength: 1 }, kind: { enum: [\"supports\", \"opposes\", \"qualifies\"] },\n },\n } },\n } },\n spec: { type: \"object\", additionalProperties: false, properties: {\n title: { type: \"string\" }, description: { type: \"string\" }, emptyText: { type: \"string\" }, density: { enum: [\"comfortable\", \"compact\"] },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM, minWidth: 0 },\n compact: { gap: tokens.spacingVerticalS },\n header: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n description: { color: tokens.colorNeutralForeground3 },\n claims: { display: \"grid\", gap: tokens.spacingVerticalS },\n claim: { display: \"grid\", gap: tokens.spacingVerticalS },\n claimHeader: { display: \"flex\", alignItems: \"flex-start\", justifyContent: \"space-between\", gap: tokens.spacingHorizontalM },\n detail: { color: tokens.colorNeutralForeground2 },\n relations: { display: \"grid\", gap: tokens.spacingVerticalXXS, paddingLeft: tokens.spacingHorizontalL },\n relation: { color: tokens.colorNeutralForeground3 },\n text: { display: \"grid\", gap: tokens.spacingVerticalS },\n});\n\nfunction roleColor(role: ArgumentRole): BadgeProps[\"color\"] {\n if (role === \"conclusion\") return \"brand\";\n if (role === \"evidence\") return \"success\";\n if (role === \"objection\") return \"danger\";\n return \"informative\";\n}\n\nfunction claimRole(claim: DataRecord): ArgumentRole {\n return textAt(claim, \"role\") as ArgumentRole;\n}\n\nfunction relationKind(relation: DataRecord): ArgumentRelationKind {\n return textAt(relation, \"kind\") as ArgumentRelationKind;\n}\n\nexport const Argument: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const argument = asRecord(node.props.argument);\n const claims = records(argument.claims);\n const relations = records(argument.relations);\n const spec = (node.props.spec ?? {}) as unknown as ArgumentSpec;\n const variant = (node.props.variant ?? \"map\") as ArgumentVariant;\n if (claims.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No argument available.\"}</Text>;\n\n const byId = new Map(claims.map((claim) => [textAt(claim, \"id\"), claim]));\n const root = componentRootProps(node, styles.root, spec.density === \"compact\" && styles.compact);\n const header = <div className={styles.header}>{spec.title ? <Text as=\"h2\" weight=\"semibold\" size={600}>{spec.title}</Text> : null}{spec.description ? <Text className={styles.description}>{spec.description}</Text> : null}</div>;\n\n if (variant === \"text\") return <section {...root}>{header}<div className={styles.text}>{claims.map((claim) => <Text key={textAt(claim, \"id\")}>[{claimRole(claim)}] {textAt(claim, \"statement\")}{textAt(claim, \"detail\") ? `: ${textAt(claim, \"detail\")}` : \"\"}</Text>)}{relations.map((relation) => <Text key={textAt(relation, \"id\")}>{textAt(byId.get(textAt(relation, \"source\")) ?? {}, \"statement\")} {relationKind(relation)} {textAt(byId.get(textAt(relation, \"target\")) ?? {}, \"statement\")}</Text>)}</div></section>;\n\n if (variant === \"outline\") return <section {...root}>{header}<div className={styles.claims}>{claims.map((claim) => {\n const outgoing = relations.filter((relation) => textAt(relation, \"source\") === textAt(claim, \"id\"));\n return <Card appearance=\"outline\" className={styles.claim} key={textAt(claim, \"id\")}><div className={styles.claimHeader}><Text weight=\"semibold\">{textAt(claim, \"statement\")}</Text><Badge appearance=\"tint\" color={roleColor(claimRole(claim))}>{claimRole(claim)}</Badge></div>{textAt(claim, \"detail\") ? <Text className={styles.detail}>{textAt(claim, \"detail\")}</Text> : null}{outgoing.length > 0 ? <div className={styles.relations}>{outgoing.map((relation) => <Text className={styles.relation} size={200} key={textAt(relation, \"id\")}>{relationKind(relation)}: {textAt(byId.get(textAt(relation, \"target\")) ?? {}, \"statement\")}</Text>)}</div> : null}</Card>;\n })}</div></section>;\n\n const graph: GraphDiagramModel = {\n nodes: claims.map((claim) => ({\n id: textAt(claim, \"id\"),\n label: textAt(claim, \"statement\"),\n detail: textAt(claim, \"detail\") || undefined,\n category: claimRole(claim),\n tone: claimRole(claim) === \"conclusion\" ? \"accent\" : claimRole(claim) === \"evidence\" ? \"success\" : claimRole(claim) === \"objection\" ? \"danger\" : \"neutral\",\n })),\n edges: relations.map((relation) => ({ id: textAt(relation, \"id\"), source: textAt(relation, \"source\"), target: textAt(relation, \"target\"), label: relationKind(relation), directed: true })),\n };\n return <GraphDiagram node={componentNode(`${node.id}-map`, \"primitive:graph-diagram\", {\n graph: graph as unknown as Json, variant: \"diagram\", spec: { ...(spec.title ? { title: spec.title } : {}), ...(spec.description ? { description: spec.description } : {}), ...(spec.emptyText ? { emptyText: spec.emptyText } : {}), layout: \"hierarchical\" },\n ...(typeof node.props.className === \"string\" ? { className: node.props.className } : {}), ...(node.props.style ? { style: node.props.style } : {}),\n })} emit={() => undefined} children={undefined} />;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:argument\", summary: \"Presents authored claims and inferential links as an argument map, outline, or text.\", dataProp: \"argument\", events: [], semanticTokens: ARGUMENT_SEMANTIC_TOKENS, defaultVariant: \"map\",\n variants: [\n { value: \"map\", summary: \"Directed claim and inference topology.\", useWhen: [\"Inferential structure is primary\"] },\n { value: \"outline\", summary: \"Claim cards with their outgoing reasoning links.\", useWhen: [\"Claims and supporting detail need close reading\"] },\n { value: \"text\", summary: \"Complete linear claims and inference statements.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n ],\n authoring: { useWhen: [\"Claims are connected by explicit support, opposition, or qualification\"], avoidWhen: [\"Several positions merely differ without an authored inference structure\"], rules: [\"Use conclusion, premise, evidence, and objection only as authored claim roles\", \"Every relation must reference declared claim IDs\", \"Do not infer omitted links or collapse disagreement into opposition\", \"All variants preserve every claim and relation\"] },\n agentFacing: {\n detail: {\n notes: [\"Relations express authored inference, not merely visual connectivity.\"],\n },\n },\n};\n\nexport function getArgumentSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateArgument(props: unknown): ComponentValidationReport { return runDeclarativeValidators([\n { kind: \"ajv-schema\", schema: getArgumentSchema(), message: \"Invalid semantic:argument props\", code: \"argument-schema\" },\n { kind: \"jsonata\", expr: \"$count(data.argument.claims.id) = $count($distinct(data.argument.claims.id))\", message: \"Argument claim IDs must be unique\", code: \"argument-unique-claim-id\" },\n { kind: \"jsonata\", expr: \"$count(data.argument.relations.id) = $count($distinct(data.argument.relations.id))\", message: \"Argument relation IDs must be unique\", code: \"argument-unique-relation-id\" },\n { kind: \"jsonata\", expr: \"($ids := data.argument.claims.id; $count(data.argument.relations[source in $ids and target in $ids]) = $count(data.argument.relations))\", message: \"Argument relations must reference declared claim IDs\", code: \"argument-reference\" },\n], props as Json); }\nexport function materializeArgumentTrial() { return trialNode(\"semantic:argument\", { variant: \"map\", argument: { claims: [{ id: \"conclusion\", statement: \"Contain the affected identity\", detail: \"The observed activity creates an immediate lateral movement risk.\", role: \"conclusion\" }, { id: \"evidence\", statement: \"A new credential was registered\", detail: \"The registration followed an anomalous sign-in from an unfamiliar device.\", role: \"evidence\" }, { id: \"premise\", statement: \"Unfamiliar credential registration indicates account compromise\", role: \"premise\" }, { id: \"objection\", statement: \"The registration may have been legitimate\", role: \"objection\" }], relations: [{ id: \"evidence-supports-premise\", source: \"evidence\", target: \"premise\", kind: \"supports\" }, { id: \"premise-supports-conclusion\", source: \"premise\", target: \"conclusion\", kind: \"supports\" }, { id: \"objection-opposes-premise\", source: \"objection\", target: \"premise\", kind: \"opposes\" }] }, spec: { title: \"Containment argument\", description: \"Authored reasoning behind the recommended response\", density: \"comfortable\" } }); }\nexport const argumentDefinition = defineComponent({ description, version: \"1.0.0\", component: Argument, getSchema: getArgumentSchema, validate: validateArgument, materializeTrial: materializeArgumentTrial });","import React from \"react\";\nimport { Badge, Card, Divider, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { asRecord, componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor } from \"../../shared/component\";\nimport { defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const ASSESSMENT_SEMANTIC_TOKENS = [\"ready\", \"not-ready\", \"attention\", \"unknown\"] as const;\nexport const ASSESSMENT_VARIANTS = [\"summary\", \"compact\"] as const;\ntype AssessmentToken = typeof ASSESSMENT_SEMANTIC_TOKENS[number];\ntype AssessmentVariant = typeof ASSESSMENT_VARIANTS[number];\n\ninterface AssessmentSpec {\n emptyText?: string;\n fields: { title: string; status: string; summary: string; confidence?: string };\n checkFields?: { title: string; outcome: string; explanation?: string };\n toneMap?: Record<string, AssessmentToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"assessment\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n assessment: { type: \"object\" }, checks: { type: \"array\", items: { type: \"object\" } },\n variant: { enum: ASSESSMENT_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n emptyText: { type: \"string\" },\n fields: { type: \"object\", additionalProperties: false, required: [\"title\", \"status\", \"summary\"], properties: {\n title: { type: \"string\", minLength: 1 }, status: { type: \"string\", minLength: 1 }, summary: { type: \"string\", minLength: 1 }, confidence: { type: \"string\", minLength: 1 },\n } },\n checkFields: { type: \"object\", additionalProperties: false, required: [\"title\", \"outcome\"], properties: { title: { type: \"string\", minLength: 1 }, outcome: { type: \"string\", minLength: 1 }, explanation: { type: \"string\", minLength: 1 } } },\n toneMap: { type: \"object\", additionalProperties: { enum: ASSESSMENT_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM },\n summary: { color: tokens.colorNeutralForeground2 },\n checks: { display: \"grid\", gap: tokens.spacingVerticalS },\n check: { display: \"grid\", gridTemplateColumns: \"minmax(0, 1fr) auto\", alignItems: \"start\", gap: tokens.spacingHorizontalM },\n explanation: { color: tokens.colorNeutralForeground3 },\n});\n\nfunction tone(token: AssessmentToken | undefined): BadgeColor {\n if (token === \"ready\") return \"success\";\n if (token === \"not-ready\") return \"danger\";\n if (token === \"attention\") return \"warning\";\n return \"informative\";\n}\n\nexport const Assessment: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const record = asRecord(node.props.assessment);\n const spec = (node.props.spec ?? {}) as unknown as AssessmentSpec;\n const variant = (node.props.variant ?? \"summary\") as AssessmentVariant;\n if (!spec.fields || Object.keys(record).length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No assessment available.\"}</Text>;\n const status = textAt(record, spec.fields.status);\n const token = spec.toneMap?.[status];\n const checks = records(node.props.checks);\n const root = componentRootProps(node, styles.root);\n return <Card {...root} appearance=\"outline\">\n <Text weight=\"semibold\" size={600}>{textAt(record, spec.fields.title)}</Text>\n <div><Badge appearance=\"filled\" color={tone(token)}>{status}</Badge></div>\n <Text className={styles.summary}>{textAt(record, spec.fields.summary)}</Text>\n {spec.fields.confidence && textAt(record, spec.fields.confidence) ? <Text size={200}>Confidence: {textAt(record, spec.fields.confidence)}</Text> : null}\n {variant === \"summary\" && checks.length > 0 && spec.checkFields ? <>\n <Divider />\n <div className={styles.checks} aria-label=\"Contributing checks\">{checks.map((check, index) => {\n const outcome = textAt(check, spec.checkFields!.outcome);\n const checkToken = spec.toneMap?.[outcome];\n return <div className={styles.check} key={index}>\n <div><Text weight=\"semibold\">{textAt(check, spec.checkFields!.title)}</Text>{spec.checkFields!.explanation ? <Text block className={styles.explanation}>{textAt(check, spec.checkFields!.explanation)}</Text> : null}</div>\n <Badge appearance=\"tint\" color={tone(checkToken)}>{outcome}</Badge>\n </div>;\n })}</div>\n </> : null}\n </Card>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:assessment\", summary: \"Presents an overall judgment with its status, summary, and contributing checks.\", dataProp: \"assessment\", events: [], semanticTokens: ASSESSMENT_SEMANTIC_TOKENS, defaultVariant: \"summary\",\n variants: [\n { value: \"summary\", summary: \"Overall judgment plus contributing checks and their outcomes.\", useWhen: [\"The reasoning behind the overall judgment matters\"] },\n { value: \"compact\", summary: \"Overall judgment only.\", useWhen: [\"The assessment appears in a scanning list\"] },\n ],\n authoring: { useWhen: [\"Several checks or factors are combined into one overall judgment\"], avoidWhen: [\"Only one finding or comparison is being presented\"], rules: [\"Map title, status, and summary fields for the overall judgment\", \"Map contributing checks with their own outcome and explanation\", \"Never infer overall status from checks; use the authored status\"] },\n};\n\nexport function getAssessmentSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateAssessment(props: unknown): ComponentValidationReport {\n return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getAssessmentSchema(), message: \"Invalid semantic:assessment props\", code: \"assessment-schema\" }], props as Json);\n}\nexport function materializeAssessmentTrial() {\n return trialNode(\"semantic:assessment\", {\n variant: \"summary\",\n assessment: { name: \"Filing readiness\", state: \"not-ready\", overview: \"The account is not ready for filing because two required checks failed and one remains unresolved.\", certainty: \"high\" },\n checks: [\n { name: \"Lot allocation reconciles\", result: \"failed\", note: \"Allocated quantity does not equal sold quantity for sale:2026-013.\" },\n { name: \"Cost basis complete\", result: \"failed\", note: \"lot:2025-011 has no recorded cost basis.\" },\n { name: \"Broker statement matched\", result: \"pending\", note: \"Awaiting the September broker statement.\" },\n ],\n spec: { fields: { title: \"name\", status: \"state\", summary: \"overview\", confidence: \"certainty\" }, checkFields: { title: \"name\", outcome: \"result\", explanation: \"note\" }, toneMap: { \"not-ready\": \"not-ready\", ready: \"ready\", failed: \"not-ready\", passed: \"ready\", pending: \"attention\" } },\n });\n}\nexport const assessmentDefinition = defineComponent({ description, version: \"1.0.0\", component: Assessment, getSchema: getAssessmentSchema, validate: validateAssessment, materializeTrial: materializeAssessmentTrial });\n","import React from \"react\";\nimport { Badge, Button, Card, Divider, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { asRecord, componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor } from \"../../shared/component\";\nimport { defineComponent, eventContract, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const CHANGE_PROPOSAL_SEMANTIC_TOKENS = [\"pending\", \"approved\", \"rejected\", \"changes-requested\"] as const;\nexport const CHANGE_PROPOSAL_VARIANTS = [\"review\", \"compact\"] as const;\ntype ChangeProposalToken = typeof CHANGE_PROPOSAL_SEMANTIC_TOKENS[number];\ntype ChangeProposalVariant = typeof CHANGE_PROPOSAL_VARIANTS[number];\n\ninterface ChangeProposalSpec {\n emptyText?: string;\n fields: { id: string; title: string; status: string; rationale: string; impact?: string; target?: string };\n changeFields?: { field: string; before: string; after: string };\n toneMap?: Record<string, ChangeProposalToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"proposal\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n proposal: { type: \"object\" }, changes: { type: \"array\", items: { type: \"object\" } }, references: { type: \"array\", items: { type: \"string\" } },\n variant: { enum: CHANGE_PROPOSAL_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n emptyText: { type: \"string\" },\n fields: { type: \"object\", additionalProperties: false, required: [\"id\", \"title\", \"status\", \"rationale\"], properties: {\n id: { type: \"string\", minLength: 1 }, title: { type: \"string\", minLength: 1 }, status: { type: \"string\", minLength: 1 }, rationale: { type: \"string\", minLength: 1 }, impact: { type: \"string\", minLength: 1 }, target: { type: \"string\", minLength: 1 },\n } },\n changeFields: { type: \"object\", additionalProperties: false, required: [\"field\", \"before\", \"after\"], properties: { field: { type: \"string\", minLength: 1 }, before: { type: \"string\", minLength: 1 }, after: { type: \"string\", minLength: 1 } } },\n toneMap: { type: \"object\", additionalProperties: { enum: CHANGE_PROPOSAL_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM },\n rationale: { color: tokens.colorNeutralForeground2 },\n meta: { color: tokens.colorNeutralForeground3 },\n changes: { display: \"grid\", gap: tokens.spacingVerticalXS },\n change: { display: \"grid\", gridTemplateColumns: \"minmax(0, 1fr) auto minmax(0, 1fr)\", alignItems: \"center\", gap: tokens.spacingHorizontalS },\n before: { color: tokens.colorPaletteRedForeground2, textDecorationLine: \"line-through\" },\n after: { color: tokens.colorPaletteGreenForeground2 },\n refs: { display: \"flex\", flexWrap: \"wrap\", gap: tokens.spacingHorizontalXS },\n actions: { display: \"flex\", gap: tokens.spacingHorizontalS },\n});\n\nfunction tone(token: ChangeProposalToken | undefined): BadgeColor {\n if (token === \"approved\") return \"success\";\n if (token === \"rejected\") return \"danger\";\n if (token === \"changes-requested\") return \"warning\";\n return \"informative\";\n}\n\nexport const ChangeProposal: ProjectionView = ({ node, emit }) => {\n const styles = useStyles();\n const record = asRecord(node.props.proposal);\n const spec = (node.props.spec ?? {}) as unknown as ChangeProposalSpec;\n const variant = (node.props.variant ?? \"review\") as ChangeProposalVariant;\n if (!spec.fields || Object.keys(record).length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No change proposal available.\"}</Text>;\n const status = textAt(record, spec.fields.status);\n const token = spec.toneMap?.[status];\n const id = textAt(record, spec.fields.id);\n const changes = records(node.props.changes);\n const references = Array.isArray(node.props.references) ? node.props.references.map(String) : [];\n const root = componentRootProps(node, styles.root);\n return <Card {...root} appearance=\"outline\">\n <Text weight=\"semibold\" size={500}>{textAt(record, spec.fields.title)}</Text>\n <div><Badge appearance=\"filled\" color={tone(token)}>{status}</Badge></div>\n {spec.fields.target && textAt(record, spec.fields.target) ? <Text className={styles.meta} size={200}>Target: {textAt(record, spec.fields.target)}</Text> : null}\n {variant === \"review\" ? <>\n <Text className={styles.rationale}>{textAt(record, spec.fields.rationale)}</Text>\n {spec.fields.impact && textAt(record, spec.fields.impact) ? <Text size={200}>Impact: {textAt(record, spec.fields.impact)}</Text> : null}\n {changes.length > 0 && spec.changeFields ? <><Divider /><div className={styles.changes} aria-label=\"Proposed changes\">{changes.map((change, index) => <div className={styles.change} key={index}>\n <Text className={styles.before}>{textAt(change, spec.changeFields!.before)}</Text>\n <Text>{textAt(change, spec.changeFields!.field)}</Text>\n <Text className={styles.after}>{textAt(change, spec.changeFields!.after)}</Text>\n </div>)}</div></> : null}\n {references.length > 0 ? <div className={styles.refs} aria-label=\"Motivating findings and evidence\">{references.map((ref) => <Badge key={ref} appearance=\"ghost\" shape=\"rounded\">{ref}</Badge>)}</div> : null}\n <div className={styles.actions}>\n <Button appearance=\"primary\" onClick={() => void emit(\"approve\", { id })}>Approve</Button>\n <Button onClick={() => void emit(\"requestChanges\", { id })}>Request changes</Button>\n <Button appearance=\"outline\" onClick={() => void emit(\"reject\", { id })}>Reject</Button>\n </div>\n </> : null}\n </Card>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:change-proposal\", summary: \"Presents a proposed correction for human review before a Blueprint performs any write.\", dataProp: \"proposal\", events: [\"approve\", \"reject\", \"requestChanges\"],\n eventContracts: {\n approve: eventContract(\"The user approves the proposed change.\", { id: { type: \"string\" } }),\n reject: eventContract(\"The user rejects the proposed change.\", { id: { type: \"string\" } }),\n requestChanges: eventContract(\"The user requests changes to the proposal before it can be approved.\", { id: { type: \"string\" } }),\n },\n semanticTokens: CHANGE_PROPOSAL_SEMANTIC_TOKENS, defaultVariant: \"review\",\n variants: [\n { value: \"review\", summary: \"Full rationale, before/after changes, references, and review actions.\", useWhen: [\"A human must review and act on the proposal\"] },\n { value: \"compact\", summary: \"Title, target, and status only.\", useWhen: [\"The proposal appears in a scanning list\"] },\n ],\n authoring: { useWhen: [\"A correction is proposed for human review before a write is performed\"], avoidWhen: [\"The change has already been applied; use assessment or finding-set to report the result\"], rules: [\"The Blueprint, not this component, performs the write when approve is emitted\", \"Preserve finding and evidence references as authored data\", \"Represent before and after values without altering them\"] },\n};\n\nexport function getChangeProposalSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateChangeProposal(props: unknown): ComponentValidationReport {\n return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getChangeProposalSchema(), message: \"Invalid semantic:change-proposal props\", code: \"change-proposal-schema\" }], props as Json);\n}\nexport function materializeChangeProposalTrial() {\n return trialNode(\"semantic:change-proposal\", {\n variant: \"review\",\n proposal: { key: \"cp-2026-013\", name: \"Correct purchase-lot allocation for sale:2026-013\", state: \"pending\", reason: \"The current allocation understates the sold quantity by 20 shares.\", consequence: \"Realized gain for 2026 would increase by an estimated $412.\", subject: \"lot:2025-011\" },\n changes: [{ attribute: \"allocatedQuantity\", was: \"80 shares\", now: \"100 shares\" }],\n references: [\"finding:lot-alloc-mismatch\", \"lot:2025-004\", \"lot:2025-011\"],\n spec: { fields: { id: \"key\", title: \"name\", status: \"state\", rationale: \"reason\", impact: \"consequence\", target: \"subject\" }, changeFields: { field: \"attribute\", before: \"was\", after: \"now\" }, toneMap: { pending: \"pending\", approved: \"approved\", rejected: \"rejected\" } },\n });\n}\nexport const changeProposalDefinition = defineComponent({ description, version: \"1.0.0\", component: ChangeProposal, getSchema: getChangeProposalSchema, validate: validateChangeProposal, materializeTrial: materializeChangeProposalTrial });\n","import React from \"react\";\nimport { Badge, Card, Divider, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { asRecord, componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor } from \"../../shared/component\";\nimport { defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const CONSISTENCY_CASE_SEMANTIC_TOKENS = [\"consistent\", \"contradictory\", \"ambiguous\", \"insufficient-information\"] as const;\nexport const CONSISTENCY_CASE_VARIANTS = [\"detailed\", \"compact\"] as const;\ntype ConsistencyToken = typeof CONSISTENCY_CASE_SEMANTIC_TOKENS[number];\ntype ConsistencyCaseVariant = typeof CONSISTENCY_CASE_VARIANTS[number];\n\ninterface ConsistencyCaseSpec {\n title?: string;\n emptyText?: string;\n fields: { question: string; outcome: string; rationale: string; confidence?: string };\n subjectFields?: { label: string; detail?: string };\n toneMap?: Record<string, ConsistencyToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"case\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n case: { type: \"object\" }, subjects: { type: \"array\", items: { type: \"object\" } }, evidence: { type: \"array\", items: { type: \"string\" } },\n variant: { enum: CONSISTENCY_CASE_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n title: { type: \"string\" }, emptyText: { type: \"string\" },\n fields: { type: \"object\", additionalProperties: false, required: [\"question\", \"outcome\", \"rationale\"], properties: {\n question: { type: \"string\", minLength: 1 }, outcome: { type: \"string\", minLength: 1 }, rationale: { type: \"string\", minLength: 1 }, confidence: { type: \"string\", minLength: 1 },\n } },\n subjectFields: { type: \"object\", additionalProperties: false, required: [\"label\"], properties: { label: { type: \"string\", minLength: 1 }, detail: { type: \"string\", minLength: 1 } } },\n toneMap: { type: \"object\", additionalProperties: { enum: CONSISTENCY_CASE_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM },\n question: { color: tokens.colorNeutralForeground3 },\n rationale: { color: tokens.colorNeutralForeground2 },\n subjects: { display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(12rem, 1fr))\", gap: tokens.spacingHorizontalM },\n subject: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n refs: { display: \"flex\", flexWrap: \"wrap\", gap: tokens.spacingHorizontalXS },\n});\n\nfunction tone(token: ConsistencyToken | undefined): BadgeColor {\n if (token === \"consistent\") return \"success\";\n if (token === \"contradictory\") return \"danger\";\n if (token === \"ambiguous\") return \"warning\";\n return \"informative\";\n}\n\nexport const ConsistencyCase: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const record = asRecord(node.props.case);\n const spec = (node.props.spec ?? {}) as unknown as ConsistencyCaseSpec;\n const variant = (node.props.variant ?? \"detailed\") as ConsistencyCaseVariant;\n if (!spec.fields || Object.keys(record).length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No consistency case available.\"}</Text>;\n const outcome = textAt(record, spec.fields.outcome);\n const token = spec.toneMap?.[outcome];\n const subjects = records(node.props.subjects);\n const evidence = Array.isArray(node.props.evidence) ? node.props.evidence.map(String) : [];\n const root = componentRootProps(node, styles.root);\n return <Card {...root} appearance=\"outline\">\n {spec.title ? <Text weight=\"semibold\" size={200} className={styles.question}>{spec.title}</Text> : null}\n <Text weight=\"semibold\" size={500}>{textAt(record, spec.fields.question)}</Text>\n <div><Badge appearance=\"filled\" color={tone(token)}>{outcome}</Badge></div>\n {variant === \"detailed\" ? <>\n <Text className={styles.rationale}>{textAt(record, spec.fields.rationale)}</Text>\n {spec.fields.confidence && textAt(record, spec.fields.confidence) ? <Text size={200}>Confidence: {textAt(record, spec.fields.confidence)}</Text> : null}\n {subjects.length > 0 && spec.subjectFields ? <><Divider /><div className={styles.subjects} aria-label=\"Compared records\">{subjects.map((subject, index) => <div className={styles.subject} key={index}><Text weight=\"semibold\">{textAt(subject, spec.subjectFields!.label)}</Text>{spec.subjectFields!.detail ? <Text size={200}>{textAt(subject, spec.subjectFields!.detail)}</Text> : null}</div>)}</div></> : null}\n {evidence.length > 0 ? <div className={styles.refs} aria-label=\"Supporting evidence\">{evidence.map((ref) => <Badge key={ref} appearance=\"ghost\" shape=\"rounded\">{ref}</Badge>)}</div> : null}\n </> : null}\n </Card>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:consistency-case\", summary: \"Presents whether compared records agree, contradict, or leave a question unresolved, and why.\", dataProp: \"case\", events: [], semanticTokens: CONSISTENCY_CASE_SEMANTIC_TOKENS, defaultVariant: \"detailed\",\n variants: [\n { value: \"detailed\", summary: \"Question, outcome, rationale, compared subjects, and evidence.\", useWhen: [\"Reviewers need the full comparison and its supporting detail\"] },\n { value: \"compact\", summary: \"Question and outcome only.\", useWhen: [\"The case appears in a scanning list\"] },\n ],\n authoring: { useWhen: [\"Two or more records or assertions are compared for agreement\"], avoidWhen: [\"A single record is being evaluated in isolation; use finding-set or assessment\"], rules: [\"Represent consistent, contradictory, ambiguous, and insufficient-information outcomes\", \"Preserve subject and evidence references as authored data\", \"Never infer an outcome the authored data does not state\"] },\n};\n\nexport function getConsistencyCaseSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateConsistencyCase(props: unknown): ComponentValidationReport {\n const report = runDeclarativeValidators([\n { kind: \"ajv-schema\", schema: getConsistencyCaseSchema(), message: \"Invalid semantic:consistency-case props\", code: \"consistency-case-schema\" },\n ], props as Json);\n if (!report.ok) return report;\n\n const value = asRecord(props);\n const record = asRecord(value.case);\n const fields = asRecord(asRecord(value.spec).fields);\n const missingRequiredField = [\"question\", \"outcome\", \"rationale\"]\n .some((name) => !textAt(record, textAt(fields, name)).trim());\n if (!missingRequiredField) return report;\n\n return {\n ...report,\n ok: false,\n errors: [...report.errors, {\n detail: \"Consistency case question, outcome, and rationale are required\",\n code: \"consistency-case-required-fields\",\n }],\n };\n}\nexport function materializeConsistencyCaseTrial() {\n return trialNode(\"semantic:consistency-case\", {\n variant: \"detailed\",\n case: { prompt: \"Does the reported quantity match the recorded purchase lots?\", verdict: \"contradictory\", reason: \"The broker transaction reports 100 shares sold, but the recorded purchase lots only allocate 80 shares.\", certainty: \"high\" },\n subjects: [{ label: \"Broker transaction\", detail: \"Reports 100 shares sold on 2026-08-04\" }, { label: \"Recorded purchase lots\", detail: \"Allocate 80 shares across lot:2025-004 and lot:2025-011\" }],\n evidence: [\"ledger:trade-2026-013\", \"lot:2025-004\", \"lot:2025-011\"],\n spec: { title: \"Consistency check\", fields: { question: \"prompt\", outcome: \"verdict\", rationale: \"reason\", confidence: \"certainty\" }, subjectFields: { label: \"label\", detail: \"detail\" }, toneMap: { contradictory: \"contradictory\", consistent: \"consistent\" } },\n });\n}\nexport const consistencyCaseDefinition = defineComponent({ description, version: \"1.0.0\", component: ConsistencyCase, getSchema: getConsistencyCaseSchema, validate: validateConsistencyCase, materializeTrial: materializeConsistencyCaseTrial });\n","import React from \"react\";\nimport { Badge, Card, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor, type DataRecord } from \"../../shared/component\";\nimport { defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const FINDING_SET_SEMANTIC_TOKENS = [\"critical\", \"high\", \"medium\", \"low\", \"informational\"] as const;\nexport const FINDING_SET_VARIANTS = [\"list\", \"compact\", \"text\"] as const;\ntype FindingToken = typeof FINDING_SET_SEMANTIC_TOKENS[number];\ntype FindingSetVariant = typeof FINDING_SET_VARIANTS[number];\n\ninterface FindingSetSpec {\n title?: string;\n description?: string;\n emptyText?: string;\n fields: { id: string; title: string; explanation: string; severity: string; status: string; confidence?: string; affects?: string; evidence?: string };\n toneMap?: Record<string, FindingToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"findings\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n findings: { type: \"array\", items: { type: \"object\" } }, variant: { enum: FINDING_SET_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n title: { type: \"string\" }, description: { type: \"string\" }, emptyText: { type: \"string\" },\n fields: { type: \"object\", additionalProperties: false, required: [\"id\", \"title\", \"explanation\", \"severity\", \"status\"], properties: {\n id: { type: \"string\", minLength: 1 }, title: { type: \"string\", minLength: 1 }, explanation: { type: \"string\", minLength: 1 },\n severity: { type: \"string\", minLength: 1 }, status: { type: \"string\", minLength: 1 }, confidence: { type: \"string\", minLength: 1 },\n affects: { type: \"string\", minLength: 1 }, evidence: { type: \"string\", minLength: 1 },\n } },\n toneMap: { type: \"object\", additionalProperties: { enum: FINDING_SET_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM },\n header: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n description: { color: tokens.colorNeutralForeground3 },\n list: { display: \"grid\", gap: tokens.spacingVerticalS },\n item: { display: \"grid\", gap: tokens.spacingVerticalXS },\n compactItem: { display: \"grid\", gridTemplateColumns: \"minmax(0, 1fr) auto auto\", alignItems: \"center\", gap: tokens.spacingHorizontalS },\n titleRow: { display: \"flex\", alignItems: \"baseline\", gap: tokens.spacingHorizontalS, flexWrap: \"wrap\" },\n explanation: { color: tokens.colorNeutralForeground2 },\n meta: { color: tokens.colorNeutralForeground3 },\n refs: { display: \"flex\", flexWrap: \"wrap\", gap: tokens.spacingHorizontalXS },\n text: { display: \"grid\", gap: tokens.spacingVerticalXS },\n});\n\nfunction severityColor(token: FindingToken | undefined): BadgeColor {\n if (token === \"critical\" || token === \"high\") return \"danger\";\n if (token === \"medium\") return \"warning\";\n return \"informative\";\n}\n\nfunction refs(finding: DataRecord, path: string | undefined): string[] {\n if (!path) return [];\n const value = path.split(\".\").reduce<unknown>((current, segment) => (current && typeof current === \"object\" && !Array.isArray(current) ? (current as DataRecord)[segment] : undefined), finding);\n return Array.isArray(value) ? value.map((entry) => String(entry)) : [];\n}\n\nexport const FindingSet: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const findings = records(node.props.findings);\n const spec = (node.props.spec ?? {}) as unknown as FindingSetSpec;\n const variant = (node.props.variant ?? \"list\") as FindingSetVariant;\n if (!spec.fields || findings.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No findings available.\"}</Text>;\n const header = spec.title || spec.description ? <header className={styles.header}>{spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null}{spec.description ? <Text className={styles.description}>{spec.description}</Text> : null}</header> : null;\n const root = componentRootProps(node, styles.root);\n\n if (variant === \"text\") return <section {...root}>{header}<div className={styles.text}>{findings.map((finding, index) => <Text key={textAt(finding, spec.fields.id) || index}>[{textAt(finding, spec.fields.severity)}] {textAt(finding, spec.fields.title)} ({textAt(finding, spec.fields.status)}): {textAt(finding, spec.fields.explanation)}</Text>)}</div></section>;\n\n if (variant === \"compact\") return <section {...root}>{header}<div className={styles.list}>{findings.map((finding, index) => {\n const severity = textAt(finding, spec.fields.severity); const token = spec.toneMap?.[severity];\n return <Card appearance=\"outline\" className={styles.compactItem} key={textAt(finding, spec.fields.id) || index}>\n <Text weight=\"semibold\">{textAt(finding, spec.fields.title)}</Text>\n <Badge appearance=\"tint\" color={severityColor(token)}>{severity}</Badge>\n <Badge appearance=\"outline\">{textAt(finding, spec.fields.status)}</Badge>\n </Card>;\n })}</div></section>;\n\n return <section {...root}>{header}<div className={styles.list}>{findings.map((finding, index) => {\n const severity = textAt(finding, spec.fields.severity); const token = spec.toneMap?.[severity];\n const confidence = spec.fields.confidence ? textAt(finding, spec.fields.confidence) : \"\";\n const affected = refs(finding, spec.fields.affects); const evidence = refs(finding, spec.fields.evidence);\n return <Card appearance=\"outline\" className={styles.item} key={textAt(finding, spec.fields.id) || index}>\n <div className={styles.titleRow}>\n <Text weight=\"semibold\" size={400}>{textAt(finding, spec.fields.title)}</Text>\n <Badge appearance=\"tint\" color={severityColor(token)}>{severity}</Badge>\n <Badge appearance=\"outline\">{textAt(finding, spec.fields.status)}</Badge>\n </div>\n <Text className={styles.explanation}>{textAt(finding, spec.fields.explanation)}</Text>\n {confidence ? <Text className={styles.meta} size={200}>Confidence: {confidence}</Text> : null}\n {affected.length > 0 ? <div className={styles.refs} aria-label=\"Affected items\">{affected.map((ref) => <Badge key={ref} appearance=\"ghost\" shape=\"rounded\">{ref}</Badge>)}</div> : null}\n {evidence.length > 0 ? <div className={styles.refs} aria-label=\"Supporting evidence\">{evidence.map((ref) => <Badge key={ref} appearance=\"ghost\" shape=\"rounded\" color=\"informative\">{ref}</Badge>)}</div> : null}\n </Card>;\n })}</div></section>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:finding-set\", summary: \"Presents data-quality or reconciliation findings as scannable cards, compact rows, or text.\", dataProp: \"findings\", events: [], semanticTokens: FINDING_SET_SEMANTIC_TOKENS, defaultVariant: \"list\",\n variants: [\n { value: \"list\", summary: \"Detailed findings with explanation, affected items, and evidence.\", useWhen: [\"Findings need full supporting detail for review\"] },\n { value: \"compact\", summary: \"Dense scanning rows of title, severity, and status.\", useWhen: [\"Many findings must be scanned quickly\"] },\n { value: \"text\", summary: \"Complete linear text projection.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n ],\n authoring: { useWhen: [\"Records are individual data-quality, reconciliation, or review findings\"], avoidWhen: [\"A single overall judgment is the subject; use assessment\", \"Two records are being compared for agreement; use consistency-case\"], rules: [\"Map identity, title, explanation, severity, and status fields\", \"Preserve affected-item and evidence references as authored strings\", \"Never infer severity or status from explanation text\"] },\n};\n\nexport function getFindingSetSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateFindingSet(props: unknown): ComponentValidationReport {\n return runDeclarativeValidators([\n { kind: \"ajv-schema\", schema: getFindingSetSchema(), message: \"Invalid semantic:finding-set props\", code: \"finding-set-schema\" },\n { kind: \"jsonata\", expr: \"($field := data.spec.fields.id; $ids := data.findings.$lookup($, $field); $count($ids) = $count($distinct($ids)))\", message: \"Finding IDs must be unique\", code: \"finding-set-unique-id\" },\n ], props as Json);\n}\nexport function materializeFindingSetTrial() {\n return trialNode(\"semantic:finding-set\", {\n variant: \"list\",\n findings: [\n { key: \"lot-alloc-mismatch\", title: \"Allocated quantity does not equal sold quantity\", detail: \"The sale references purchase lots whose allocated quantity totals 80 shares, but 100 shares were sold.\", level: \"high\", state: \"open\", certainty: \"high\", related: [\"sale:2026-013\", \"lot:2025-004\", \"lot:2025-011\"], sources: [\"ledger:trade-2026-013\"] },\n { key: \"missing-cost-basis\", title: \"Missing cost basis for a purchase lot\", detail: \"Purchase lot lot:2025-011 has no recorded cost basis.\", level: \"medium\", state: \"investigating\", certainty: \"medium\", related: [\"lot:2025-011\"], sources: [] },\n ],\n spec: { title: \"Data-quality findings\", description: \"Findings from the reconciliation pass\", fields: { id: \"key\", title: \"title\", explanation: \"detail\", severity: \"level\", status: \"state\", confidence: \"certainty\", affects: \"related\", evidence: \"sources\" }, toneMap: { high: \"high\", medium: \"medium\" } },\n });\n}\nexport const findingSetDefinition = defineComponent({ description, version: \"1.0.0\", component: FindingSet, getSchema: getFindingSetSchema, validate: validateFindingSet, materializeTrial: materializeFindingSetTrial });\n","import React from \"react\";\nimport { Badge, Card, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor, type DataRecord } from \"../../shared/component\";\nimport { defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const MEASURE_SET_SEMANTIC_TOKENS = [\"positive\", \"negative\", \"warning\", \"neutral\", \"unknown\"] as const;\nexport const MEASURE_SET_VARIANTS = [\"tiles\", \"table\", \"ranking\", \"text\"] as const;\ntype MeasureToken = typeof MEASURE_SET_SEMANTIC_TOKENS[number];\ntype MeasureSetVariant = typeof MEASURE_SET_VARIANTS[number];\n\ninterface MeasureSetSpec {\n title?: string;\n emptyText?: string;\n density?: \"comfortable\" | \"compact\";\n fields: { id: string; label: string; value: string; unit?: string; baseline?: string; delta?: string; order?: string; tone?: string };\n toneMap?: Record<string, MeasureToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n additionalProperties: false,\n required: [\"measures\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n measures: { type: \"array\", items: { type: \"object\" } },\n variant: { enum: MEASURE_SET_VARIANTS },\n spec: {\n type: \"object\",\n additionalProperties: false,\n required: [\"fields\"],\n properties: {\n title: { type: \"string\" },\n emptyText: { type: \"string\" },\n density: { enum: [\"comfortable\", \"compact\"] },\n fields: {\n type: \"object\",\n additionalProperties: false,\n required: [\"id\", \"label\", \"value\"],\n properties: {\n id: { type: \"string\", minLength: 1 }, label: { type: \"string\", minLength: 1 }, value: { type: \"string\", minLength: 1 },\n unit: { type: \"string\", minLength: 1 }, baseline: { type: \"string\", minLength: 1 }, delta: { type: \"string\", minLength: 1 },\n order: { type: \"string\", minLength: 1 }, tone: { type: \"string\", minLength: 1 },\n },\n },\n toneMap: { type: \"object\", additionalProperties: { enum: MEASURE_SET_SEMANTIC_TOKENS } },\n },\n },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM, minWidth: 0 },\n tiles: { display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(11rem, 1fr))\", gap: tokens.spacingHorizontalM },\n tile: { display: \"grid\", gap: tokens.spacingVerticalS, minWidth: 0 },\n valueRow: { display: \"flex\", alignItems: \"baseline\", flexWrap: \"wrap\", gap: tokens.spacingHorizontalXS },\n value: { fontSize: tokens.fontSizeHero700, lineHeight: tokens.lineHeightHero700 },\n compactValue: { fontSize: tokens.fontSizeBase500, lineHeight: tokens.lineHeightBase500 },\n secondary: { color: tokens.colorNeutralForeground3 },\n tableWrap: { overflowX: \"auto\" },\n table: { width: \"100%\", borderCollapse: \"collapse\" },\n cell: { padding: tokens.spacingVerticalS, textAlign: \"left\", borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}` },\n ranking: { display: \"grid\", gap: tokens.spacingVerticalS, margin: 0, padding: 0, listStyle: \"none\" },\n rankRow: { display: \"grid\", gridTemplateColumns: \"2rem minmax(0, 1fr) auto\", alignItems: \"center\", gap: tokens.spacingHorizontalM },\n rankBody: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n rankValue: { display: \"grid\", gap: tokens.spacingVerticalXXS, textAlign: \"right\" },\n rank: { color: tokens.colorNeutralForeground3 },\n text: { display: \"grid\", gap: tokens.spacingVerticalXS },\n});\n\nfunction color(token: MeasureToken | undefined): BadgeColor | undefined {\n if (token === \"positive\") return \"success\";\n if (token === \"negative\") return \"danger\";\n if (token === \"warning\") return \"warning\";\n return token ? \"informative\" : undefined;\n}\n\nfunction orderedMeasures(measures: DataRecord[], orderField?: string) {\n return orderField ? [...measures].sort((left, right) => Number(textAt(left, orderField)) - Number(textAt(right, orderField))) : measures;\n}\n\nfunction formattedValue(measure: DataRecord, spec: MeasureSetSpec) {\n return `${textAt(measure, spec.fields.value)}${spec.fields.unit && textAt(measure, spec.fields.unit) ? ` ${textAt(measure, spec.fields.unit)}` : \"\"}`;\n}\n\nexport const MeasureSet: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const measures = records(node.props.measures);\n const spec = (node.props.spec ?? {}) as unknown as MeasureSetSpec;\n const variant = (node.props.variant ?? \"tiles\") as MeasureSetVariant;\n if (!spec.fields || measures.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No measures available.\"}</Text>;\n const ordered = orderedMeasures(measures, spec.fields.order);\n const root = componentRootProps(node, styles.root);\n\n const title = spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null;\n if (variant === \"text\") return <section {...root}>{title}<div className={styles.text}>{ordered.map((measure) => <Text key={textAt(measure, spec.fields.id)}>{textAt(measure, spec.fields.label)}: {formattedValue(measure, spec)}{spec.fields.baseline && textAt(measure, spec.fields.baseline) ? ` (${textAt(measure, spec.fields.baseline)})` : \"\"}{spec.fields.delta && textAt(measure, spec.fields.delta) ? `, ${textAt(measure, spec.fields.delta)}` : \"\"}</Text>)}</div></section>;\n\n if (variant === \"table\") return <section {...root}>{title}<div className={styles.tableWrap}><table className={styles.table}><thead><tr><th className={styles.cell}>Measure</th><th className={styles.cell}>Value</th><th className={styles.cell}>Baseline</th><th className={styles.cell}>Delta</th></tr></thead><tbody>{ordered.map((measure) => <tr key={textAt(measure, spec.fields.id)}><td className={styles.cell}>{textAt(measure, spec.fields.label)}</td><td className={styles.cell}>{formattedValue(measure, spec)}</td><td className={styles.cell}>{textAt(measure, spec.fields.baseline)}</td><td className={styles.cell}>{textAt(measure, spec.fields.delta)}</td></tr>)}</tbody></table></div></section>;\n\n if (variant === \"ranking\") return <section {...root}>{title}<ol className={styles.ranking}>{ordered.map((measure, index) => <li className={styles.rankRow} key={textAt(measure, spec.fields.id)}><Text className={styles.rank} size={500} weight=\"semibold\">{index + 1}</Text><div className={styles.rankBody}><Text weight=\"semibold\">{textAt(measure, spec.fields.label)}</Text>{spec.fields.baseline ? <Text className={styles.secondary} size={200}>{textAt(measure, spec.fields.baseline)}</Text> : null}</div><div className={styles.rankValue}><Text>{formattedValue(measure, spec)}</Text>{spec.fields.delta ? <Text className={styles.secondary} size={200}>{textAt(measure, spec.fields.delta)}</Text> : null}</div></li>)}</ol></section>;\n\n return <section {...root}>{title}<div className={styles.tiles}>{ordered.map((measure) => {\n const toneValue = textAt(measure, spec.fields.tone);\n const token = toneValue ? spec.toneMap?.[toneValue] : undefined;\n const delta = textAt(measure, spec.fields.delta);\n return <Card className={styles.tile} appearance=\"outline\" key={textAt(measure, spec.fields.id)}><Text weight=\"semibold\">{textAt(measure, spec.fields.label)}</Text><div className={styles.valueRow}><Text className={spec.density === \"compact\" ? styles.compactValue : styles.value} weight=\"semibold\">{textAt(measure, spec.fields.value)}</Text>{spec.fields.unit ? <Text className={styles.secondary}>{textAt(measure, spec.fields.unit)}</Text> : null}</div>{spec.fields.baseline ? <Text className={styles.secondary} size={200}>{textAt(measure, spec.fields.baseline)}</Text> : null}{delta ? <Badge appearance={token ? \"filled\" : \"outline\"} color={color(token)}>{delta}</Badge> : null}</Card>;\n })}</div></section>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:measure-set\", summary: \"Presents a related set of authored measurements without changing their meaning or order.\", dataProp: \"measures\", events: [], semanticTokens: MEASURE_SET_SEMANTIC_TOKENS, defaultVariant: \"tiles\",\n variants: [\n { value: \"tiles\", summary: \"Prominent measure tiles for rapid scanning.\", useWhen: [\"A small measure set is a primary result\"] },\n { value: \"table\", summary: \"Aligned values, baselines, and deltas.\", useWhen: [\"Exact cross-measure comparison matters\"] },\n { value: \"ranking\", summary: \"Authored measure order with explicit ordinal positions.\", useWhen: [\"The supplied order communicates rank\"] },\n { value: \"text\", summary: \"Complete textual measure projection.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n ],\n authoring: { useWhen: [\"Several measurements form one comparison set\"], avoidWhen: [\"Values form a continuous trend; use chart\"], rules: [\"All variants consume the same measures\", \"Ranking uses authored order and never infers importance\", \"Put density in spec\"] },\n};\n\nexport function getMeasureSetSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateMeasureSet(props: unknown): ComponentValidationReport { return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getMeasureSetSchema(), message: \"Invalid semantic:measure-set props\", code: \"measure-set-schema\" }], props as Json); }\nexport function materializeMeasureSetTrial() { return trialNode(\"semantic:measure-set\", { variant: \"tiles\", measures: [{ id: \"affected\", label: \"Affected identities\", value: \"24\", baseline: \"7-day average: 9\", delta: \"+167%\", order: 1, direction: \"adverse\" }, { id: \"contained\", label: \"Contained\", value: \"18\", baseline: \"75% of affected\", delta: \"+6 today\", order: 2, direction: \"favorable\" }, { id: \"response\", label: \"Mean response\", value: \"14\", unit: \"min\", baseline: \"Target: 20 min\", delta: \"-6 min\", order: 3, direction: \"favorable\" }], spec: { title: \"Incident measures\", density: \"comfortable\", fields: { id: \"id\", label: \"label\", value: \"value\", unit: \"unit\", baseline: \"baseline\", delta: \"delta\", order: \"order\", tone: \"direction\" }, toneMap: { adverse: \"negative\", favorable: \"positive\" } } }); }\nexport const measureSetDefinition = defineComponent({ description, version: \"1.0.0\", component: MeasureSet, getSchema: getMeasureSetSchema, validate: validateMeasureSet, materializeTrial: materializeMeasureSetTrial });","import React from \"react\";\nimport { Badge, Card, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json, ResolvedNode } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor, type DataRecord } from \"../../shared/component\";\nimport { componentNode, defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\nimport { Timeline, validateTimeline } from \"../event-series\";\n\nexport const MILESTONE_SEMANTIC_TOKENS = [\"achieved\", \"current\", \"upcoming\", \"blocked\", \"unknown\"] as const;\nexport const MILESTONE_VARIANTS = [\"rail\", \"timeline\", \"list\", \"axis\", \"text\"] as const;\ntype MilestoneToken = typeof MILESTONE_SEMANTIC_TOKENS[number];\ntype MilestoneVariant = typeof MILESTONE_VARIANTS[number];\n\ninterface MilestoneSpec {\n title?: string;\n description?: string;\n emptyText?: string;\n density?: \"comfortable\" | \"compact\";\n fields: { id: string; title: string; timestamp: string; detail?: string; status?: string; order?: string };\n scale?: { kind: \"datetime\" | \"linear\"; hourFormat?: \"24\" | \"12\"; displayPrefix?: string; minimum?: number; maximum?: number; tickStep?: number; showSeconds?: boolean; showTimeZone?: boolean };\n sort?: { direction: \"ascending\" | \"descending\" | \"none\" };\n toneMap?: Record<string, MilestoneToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"milestones\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n milestones: { type: \"array\", items: { type: \"object\" } }, variant: { enum: MILESTONE_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n title: { type: \"string\" }, description: { type: \"string\" }, emptyText: { type: \"string\" }, density: { enum: [\"comfortable\", \"compact\"] },\n fields: { type: \"object\", additionalProperties: false, required: [\"id\", \"title\", \"timestamp\"], properties: {\n id: { type: \"string\", minLength: 1 }, title: { type: \"string\", minLength: 1 }, timestamp: { type: \"string\", minLength: 1 },\n detail: { type: \"string\", minLength: 1 }, status: { type: \"string\", minLength: 1 }, order: { type: \"string\", minLength: 1 },\n } },\n scale: { type: \"object\", additionalProperties: false, required: [\"kind\"], properties: {\n kind: { enum: [\"datetime\", \"linear\"] }, hourFormat: { enum: [\"24\", \"12\"] }, displayPrefix: { type: \"string\" }, minimum: { type: \"number\" }, maximum: { type: \"number\" }, tickStep: { type: \"number\", exclusiveMinimum: 0 }, showSeconds: { type: \"boolean\" }, showTimeZone: { type: \"boolean\" },\n } },\n sort: { type: \"object\", additionalProperties: false, required: [\"direction\"], properties: { direction: { enum: [\"ascending\", \"descending\", \"none\"] } } },\n toneMap: { type: \"object\", additionalProperties: { enum: MILESTONE_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM, minWidth: 0, maxWidth: \"52rem\" },\n header: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n description: { color: tokens.colorNeutralForeground3 },\n rail: { position: \"relative\", display: \"grid\", gap: tokens.spacingVerticalL, paddingBlock: tokens.spacingVerticalXS, \"::before\": { content: '\"\"', position: \"absolute\", top: tokens.spacingVerticalM, bottom: tokens.spacingVerticalM, left: \"0.45rem\", width: tokens.strokeWidthThick, backgroundColor: tokens.colorNeutralStroke1 } },\n railItem: { position: \"relative\", display: \"grid\", gridTemplateColumns: \"1rem minmax(0, 1fr)\", gap: tokens.spacingHorizontalL },\n marker: { zIndex: 1, width: \"0.65rem\", height: \"0.65rem\", marginTop: \"0.35rem\", marginLeft: \"0.1rem\", boxSizing: \"border-box\", transform: \"rotate(45deg)\", border: `${tokens.strokeWidthThick} solid ${tokens.colorBrandStroke1}`, backgroundColor: tokens.colorNeutralBackground1 },\n markerAchieved: { backgroundColor: tokens.colorPaletteGreenBackground3 },\n markerCurrent: { backgroundColor: tokens.colorBrandBackground },\n markerBlocked: { backgroundColor: tokens.colorPaletteRedBackground3 },\n content: { display: \"grid\", gap: tokens.spacingVerticalXS, minWidth: 0 },\n titleRow: { display: \"flex\", alignItems: \"baseline\", gap: tokens.spacingHorizontalS, flexWrap: \"wrap\" },\n railTitle: { fontFamily: tokens.fontFamilyMonospace, letterSpacing: 0 },\n detail: { color: tokens.colorNeutralForeground2 },\n time: { color: tokens.colorNeutralForeground3, fontVariantNumeric: \"tabular-nums\" },\n list: { display: \"grid\", gap: tokens.spacingVerticalS },\n listItem: { display: \"grid\", gridTemplateColumns: \"minmax(0, 1fr) auto\", alignItems: \"start\", gap: tokens.spacingHorizontalM },\n text: { display: \"grid\", gap: tokens.spacingVerticalXS },\n});\n\nfunction color(token: MilestoneToken | undefined): BadgeColor {\n if (token === \"achieved\") return \"success\";\n if (token === \"current\") return \"brand\";\n if (token === \"upcoming\") return \"warning\";\n if (token === \"blocked\") return \"danger\";\n return \"informative\";\n}\n\nfunction orderedMilestones(items: DataRecord[], spec: MilestoneSpec) {\n if (spec.fields.order) return [...items].sort((left, right) => Number(textAt(left, spec.fields.order)) - Number(textAt(right, spec.fields.order)));\n if (spec.sort?.direction === \"none\") return items;\n const direction = spec.sort?.direction === \"descending\" ? -1 : 1;\n return [...items].sort((left, right) => textAt(left, spec.fields.timestamp).localeCompare(textAt(right, spec.fields.timestamp)) * direction);\n}\n\nfunction timelineProps(props: ResolvedNode[\"props\"], spec: MilestoneSpec, variant: \"standard\" | \"axis\"): Record<string, Json> {\n const toneMap = Object.fromEntries(Object.entries(spec.toneMap ?? {}).map(([value, token]) => [value, token === \"achieved\" ? \"past\" : token])) as Record<string, Json>;\n return {\n items: props.milestones,\n variant,\n spec: {\n ...(spec.title ? { title: spec.title } : {}), ...(spec.description ? { description: spec.description } : {}), ...(spec.emptyText ? { emptyText: spec.emptyText } : {}),\n fields: { id: spec.fields.id, title: spec.fields.title, timestamp: spec.fields.timestamp, ...(spec.fields.detail ? { detail: spec.fields.detail } : {}), ...(spec.fields.status ? { status: spec.fields.status } : {}) },\n ...(spec.scale ? { scale: spec.scale } : {}), sort: spec.sort ?? { direction: \"ascending\" }, toneMap,\n },\n ...(typeof props.className === \"string\" ? { className: props.className } : {}), ...(props.style ? { style: props.style } : {}),\n } as Record<string, Json>;\n}\n\nexport const Milestones: ProjectionView = ({ node, emit }) => {\n const styles = useStyles();\n const milestones = records(node.props.milestones);\n const spec = (node.props.spec ?? {}) as unknown as MilestoneSpec;\n const variant = (node.props.variant ?? \"rail\") as MilestoneVariant;\n if (!spec.fields || milestones.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No milestones available.\"}</Text>;\n if (variant === \"timeline\" || variant === \"axis\") return <Timeline node={componentNode(`${node.id}-${variant}`, \"semantic:timeline\", timelineProps(node.props, spec, variant === \"axis\" ? \"axis\" : \"standard\"))} emit={emit} children={undefined} />;\n const ordered = orderedMilestones(milestones, spec);\n const header = spec.title || spec.description ? <header className={styles.header}>{spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null}{spec.description ? <Text className={styles.description}>{spec.description}</Text> : null}</header> : null;\n const root = componentRootProps(node, styles.root);\n\n if (variant === \"text\") return <section {...root}>{header}<div className={styles.text}>{ordered.map((milestone) => <Text key={textAt(milestone, spec.fields.id)}>{textAt(milestone, spec.fields.timestamp)} - {textAt(milestone, spec.fields.title)}{spec.fields.detail ? `: ${textAt(milestone, spec.fields.detail)}` : \"\"}{spec.fields.status ? ` [${textAt(milestone, spec.fields.status)}]` : \"\"}</Text>)}</div></section>;\n if (variant === \"list\") return <section {...root}>{header}<div className={styles.list}>{ordered.map((milestone) => { const status = textAt(milestone, spec.fields.status); const token = status ? spec.toneMap?.[status] : undefined; return <Card appearance=\"outline\" className={styles.listItem} key={textAt(milestone, spec.fields.id)}><div className={styles.content}><Text weight=\"semibold\">{textAt(milestone, spec.fields.title)}</Text>{spec.fields.detail ? <Text className={styles.detail}>{textAt(milestone, spec.fields.detail)}</Text> : null}</div><div className={styles.content}><Text className={styles.time} size={200}>{textAt(milestone, spec.fields.timestamp)}</Text>{status ? <Badge appearance=\"tint\" color={color(token)}>{status}</Badge> : null}</div></Card>; })}</div></section>;\n return <section {...root}>{header}<div className={styles.rail}>{ordered.map((milestone) => { const status = textAt(milestone, spec.fields.status); const token = status ? spec.toneMap?.[status] : undefined; const markerClass = token === \"achieved\" ? styles.markerAchieved : token === \"current\" ? styles.markerCurrent : token === \"blocked\" ? styles.markerBlocked : undefined; return <section className={styles.railItem} key={textAt(milestone, spec.fields.id)}><span className={`${styles.marker} ${markerClass ?? \"\"}`} aria-hidden=\"true\" /><div className={styles.content}><div className={styles.titleRow}><Text className={styles.railTitle} as=\"h3\" weight=\"semibold\" size={500}>{textAt(milestone, spec.fields.title)}</Text>{status ? <Badge appearance=\"tint\" color={color(token)}>{status}</Badge> : null}</div><Text className={styles.time} size={200}>{textAt(milestone, spec.fields.timestamp)}</Text>{spec.fields.detail ? <Text className={styles.detail}>{textAt(milestone, spec.fields.detail)}</Text> : null}</div></section>; })}</div></section>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:milestones\", summary: \"Presents authored dated checkpoints as a rail, timeline, list, axis, or text without changing milestone meaning.\", dataProp: \"milestones\", events: [], semanticTokens: MILESTONE_SEMANTIC_TOKENS, defaultVariant: \"rail\",\n variants: [\n { value: \"rail\", summary: \"Vertical milestone progression with diamond checkpoints.\", useWhen: [\"Ordered checkpoint progress should be rapidly scannable\"] },\n { value: \"timeline\", summary: \"Dated vertical milestone chronology.\", useWhen: [\"Milestone dates are the primary reading path\"] },\n { value: \"list\", summary: \"Compact milestone records with date and state.\", useWhen: [\"Precise record scanning matters more than progression\"] },\n { value: \"axis\", summary: \"Scaled horizontal milestone axis.\", useWhen: [\"Temporal spacing between milestones matters\"] },\n { value: \"text\", summary: \"Complete linear milestone projection.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n ],\n authoring: { useWhen: [\"Records are meaningful dated targets or achievements\"], avoidWhen: [\"Records are procedural work phases; use process\", \"Records are general observed events; use event-series\"], rules: [\"All variants consume the same milestones\", \"Use authored order for rail and list when supplied\", \"Never infer milestone achievement from dates\", \"Put density and scale in spec\"] },\n};\n\nexport function getMilestonesSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateMilestones(props: unknown): ComponentValidationReport {\n const report = runDeclarativeValidators([\n { kind: \"ajv-schema\", schema: getMilestonesSchema(), message: \"Invalid semantic:milestones props\", code: \"milestones-schema\" },\n { kind: \"jsonata\", expr: \"($field := data.spec.fields.id; $ids := data.milestones.$lookup($, $field); $count($ids) = $count($distinct($ids)))\", message: \"Milestone IDs must be unique\", code: \"milestones-unique-id\" },\n ], props as Json);\n if (!report.ok) return report;\n const value = props as Record<string, Json>;\n return validateTimeline(timelineProps(value, value.spec as unknown as MilestoneSpec, \"axis\"));\n}\nexport function materializeMilestonesTrial() { return trialNode(\"semantic:milestones\", { variant: \"rail\", milestones: [{ id: \"presets\", title: \"Loading presets\", detail: \"Configuration presets loaded successfully.\", at: \"2026-08-04T09:00:00Z\", order: 1, state: \"done\" }, { id: \"manager\", title: \"Building manager\", detail: \"Management surface is ready.\", at: \"2026-08-04T09:05:00Z\", order: 2, state: \"done\" }, { id: \"services\", title: \"Building open services\", detail: \"Service endpoints are being prepared.\", at: \"2026-08-04T09:10:00Z\", order: 3, state: \"active\" }, { id: \"preview\", title: \"Building preview\", detail: \"Production preview is queued.\", at: \"2026-08-04T09:15:00Z\", order: 4, state: \"next\" }], spec: { title: \"Release milestones\", density: \"comfortable\", fields: { id: \"id\", title: \"title\", detail: \"detail\", timestamp: \"at\", order: \"order\", status: \"state\" }, scale: { kind: \"datetime\" }, sort: { direction: \"ascending\" }, toneMap: { done: \"achieved\", active: \"current\", next: \"upcoming\" } } }); }\nexport const milestonesDefinition = defineComponent({ description, version: \"1.0.0\", component: Milestones, getSchema: getMilestonesSchema, validate: validateMilestones, materializeTrial: materializeMilestonesTrial });","import React from \"react\";\nimport {\n Badge,\n Card,\n CardHeader,\n Text,\n makeStyles,\n mergeClasses,\n tokens,\n} from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport type { ComponentValidationReport } from \"../../shared/definition\";\nimport { componentRootProps, componentStylePropsSchema, readPath } from \"../../shared/component\";\nimport {\n MAX_COORDINATE_TICKS,\n formatAxisCoordinate,\n formatCoordinate,\n parseCoordinate,\n type CoordinateScale,\n} from \"../../shared/coordinateScale\";\n\nconst MAX_TIMELINE_TICKS = MAX_COORDINATE_TICKS;\n\nexport const TIMELINE_SEMANTIC_TOKENS = [\"past\", \"current\", \"upcoming\", \"blocked\", \"unknown\"] as const;\nexport const TIMELINE_VARIANTS = [\"standard\", \"compact\", \"minimal\", \"axis\"] as const;\ntype TimelineVariant = typeof TIMELINE_VARIANTS[number];\n\nconst timelinePropsSchema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n additionalProperties: false,\n required: [\"items\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n items: { type: \"array\", items: { type: \"object\" } },\n variant: { enum: TIMELINE_VARIANTS },\n spec: {\n type: \"object\",\n additionalProperties: false,\n required: [\"fields\"],\n properties: {\n title: { type: \"string\" },\n description: { type: \"string\" },\n emptyText: { type: \"string\" },\n scale: {\n type: \"object\",\n additionalProperties: false,\n required: [\"kind\"],\n properties: {\n kind: { enum: [\"datetime\", \"linear\"] },\n hourFormat: { enum: [\"24\", \"12\"] },\n displayPrefix: { type: \"string\" },\n minimum: { type: \"number\" },\n maximum: { type: \"number\" },\n tickStep: { type: \"number\", exclusiveMinimum: 0 },\n showSeconds: { type: \"boolean\" },\n showTimeZone: { type: \"boolean\" },\n },\n },\n fields: {\n type: \"object\",\n additionalProperties: false,\n required: [\"id\", \"title\", \"timestamp\"],\n properties: {\n id: { type: \"string\", minLength: 1 },\n title: { type: \"string\", minLength: 1 },\n timestamp: { type: \"string\", minLength: 1 },\n detail: { type: \"string\", minLength: 1 },\n status: { type: \"string\", minLength: 1 },\n },\n },\n sort: {\n type: \"object\",\n additionalProperties: false,\n required: [\"direction\"],\n properties: { direction: { enum: [\"ascending\", \"descending\", \"none\"] } },\n },\n toneMap: {\n type: \"object\",\n additionalProperties: { enum: TIMELINE_SEMANTIC_TOKENS },\n },\n },\n },\n },\n} as const;\n\ntype TimelineItem = Record<string, unknown>;\ntype TimelineFields = {\n id: string;\n title: string;\n timestamp: string;\n detail?: string;\n status?: string;\n};\n\ntype TimelineSpec = {\n title?: string;\n description?: string;\n emptyText?: string;\n scale?: CoordinateScale;\n fields: TimelineFields;\n sort?: { direction: \"ascending\" | \"descending\" | \"none\" };\n toneMap?: Record<string, typeof TIMELINE_SEMANTIC_TOKENS[number]>;\n};\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM, minWidth: 0, maxWidth: \"100%\" },\n compactRoot: { gap: tokens.spacingVerticalS },\n minimalRoot: { gap: tokens.spacingVerticalXS },\n heading: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n list: { display: \"grid\", gap: tokens.spacingVerticalS, margin: 0, padding: 0, listStyle: \"none\" },\n item: { display: \"grid\", gridTemplateColumns: \"9rem minmax(0, 1fr)\", gap: tokens.spacingHorizontalM },\n compactItem: { gridTemplateColumns: \"6rem minmax(0, 1fr)\", gap: tokens.spacingHorizontalS },\n minimalItem: { gridTemplateColumns: \"5rem minmax(0, 1fr)\", gap: tokens.spacingHorizontalXS },\n time: { color: tokens.colorNeutralForeground3, fontVariantNumeric: \"tabular-nums\" },\n content: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n titleRow: { display: \"flex\", alignItems: \"center\", gap: tokens.spacingHorizontalS, flexWrap: \"wrap\" },\n detail: { color: tokens.colorNeutralForeground3 },\n axisViewport: { width: \"100%\", minWidth: 0, maxWidth: \"100%\", overflowX: \"auto\", overflowY: \"hidden\", contain: \"layout paint\", paddingBlock: tokens.spacingVerticalXS },\n axis: { position: \"relative\", height: \"11rem\", minWidth: \"42rem\", marginInline: tokens.spacingHorizontalM },\n axisLine: { position: \"absolute\", top: \"5.5rem\", left: 0, right: 0, height: tokens.strokeWidthThick, backgroundColor: tokens.colorNeutralStroke1 },\n axisTick: { position: \"absolute\", top: \"5.25rem\", width: tokens.strokeWidthThin, height: \"0.75rem\", backgroundColor: tokens.colorNeutralStroke1 },\n axisTickLabel: { position: \"absolute\", top: \"6.25rem\", color: tokens.colorNeutralForeground3, fontVariantNumeric: \"tabular-nums\", whiteSpace: \"nowrap\", transform: \"translateX(-50%)\" },\n axisEvent: { position: \"absolute\", top: 0, bottom: 0, width: \"1px\" },\n axisMarker: { position: \"absolute\", top: \"5rem\", left: \"-0.375rem\", width: \"0.75rem\", height: \"0.75rem\", borderRadius: tokens.borderRadiusCircular, border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`, backgroundColor: tokens.colorBrandBackground },\n axisStemAbove: { position: \"absolute\", top: \"3.75rem\", left: 0, width: tokens.strokeWidthThin, height: \"1.25rem\", backgroundColor: tokens.colorNeutralStroke1 },\n axisStemBelow: { position: \"absolute\", top: \"5.75rem\", left: 0, width: tokens.strokeWidthThin, height: \"1.25rem\", backgroundColor: tokens.colorNeutralStroke1 },\n axisLabel: { position: \"absolute\", left: 0, width: \"9rem\", display: \"grid\", gap: tokens.spacingVerticalXXS, transform: \"translateX(-50%)\", textAlign: \"center\" },\n axisFirstLabel: { transform: \"none\", textAlign: \"left\" },\n axisLastLabel: { transform: \"translateX(-100%)\", textAlign: \"right\" },\n axisLabelAbove: { bottom: \"7.25rem\" },\n axisLabelBelow: { top: \"7.25rem\" },\n axisTime: { color: tokens.colorNeutralForeground3, fontVariantNumeric: \"tabular-nums\" },\n});\n\nfunction asObject(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? value as Record<string, unknown>\n : {};\n}\n\nfunction badgeColor(token: typeof TIMELINE_SEMANTIC_TOKENS[number]): \"brand\" | \"danger\" | \"warning\" | \"success\" | \"informative\" {\n if (token === \"current\") return \"brand\";\n if (token === \"blocked\") return \"danger\";\n if (token === \"upcoming\") return \"warning\";\n if (token === \"past\") return \"success\";\n return \"informative\";\n}\n\nfunction sortItems(items: TimelineItem[], fields: TimelineFields, direction: \"ascending\" | \"descending\" | \"none\", scale?: CoordinateScale): TimelineItem[] {\n if (direction === \"none\") return items;\n const multiplier = direction === \"descending\" ? -1 : 1;\n if (scale) return [...items].sort((left, right) => (parseCoordinate(readPath(left, fields.timestamp), scale) - parseCoordinate(readPath(right, fields.timestamp), scale)) * multiplier);\n return [...items].sort((left, right) => String(left[fields.timestamp] ?? \"\").localeCompare(String(right[fields.timestamp] ?? \"\")) * multiplier);\n}\n\nfunction renderAxisTimeline(items: TimelineItem[], spec: TimelineSpec, styles: ReturnType<typeof useStyles>) {\n const scale = spec.scale ?? { kind: \"datetime\" };\n const events = items.map((item, index) => {\n const rawCoordinate = readPath(item, spec.fields.timestamp);\n return { id: String(readPath(item, spec.fields.id) ?? index), title: String(readPath(item, spec.fields.title) ?? \"\"), coordinate: parseCoordinate(rawCoordinate, scale), coordinateText: formatCoordinate(rawCoordinate, scale) };\n }).filter((event) => event.title && Number.isFinite(event.coordinate));\n if (events.length === 0) return <Text>{spec.emptyText ?? \"No timeline data.\"}</Text>;\n const minimum = scale.kind === \"linear\" && scale.minimum !== undefined ? scale.minimum : Math.min(...events.map((event) => event.coordinate));\n const maximum = scale.kind === \"linear\" && scale.maximum !== undefined ? scale.maximum : Math.max(...events.map((event) => event.coordinate));\n const span = Math.max(1, maximum - minimum);\n const tickStep = scale.tickStep;\n const ticks = tickStep ? Array.from({ length: Math.min(MAX_TIMELINE_TICKS, Math.floor(span / tickStep) + 1) }, (_, index) => minimum + index * tickStep).filter((value) => value <= maximum) : [];\n return <div className={styles.axisViewport}><div className={styles.axis} role=\"group\" aria-label={spec.title ?? \"Timeline axis\"}><div className={styles.axisLine} aria-hidden=\"true\" />\n {ticks.map((tick) => { const left = ((tick - minimum) / span) * 100; return <React.Fragment key={tick}><span className={styles.axisTick} style={{ left: `${left}%` }} aria-hidden=\"true\" /><Text className={styles.axisTickLabel} size={200} style={{ left: `${left}%` }}>{formatAxisCoordinate(tick, scale)}</Text></React.Fragment>; })}\n {events.map((event, index) => { const left = ((event.coordinate - minimum) / span) * 100; const above = index % 2 === 0; return <div className={styles.axisEvent} style={{ left: `${left}%` }} key={event.id}><span className={above ? styles.axisStemAbove : styles.axisStemBelow} aria-hidden=\"true\" /><span className={styles.axisMarker} aria-hidden=\"true\" /><div className={mergeClasses(styles.axisLabel, above ? styles.axisLabelAbove : styles.axisLabelBelow, event.coordinate === minimum && styles.axisFirstLabel, event.coordinate === maximum && styles.axisLastLabel)}><Text weight=\"semibold\">{event.title}</Text><Text className={styles.axisTime} size={200}>{event.coordinateText}</Text></div></div>; })}\n </div></div>;\n}\n\nexport const Timeline: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const items = Array.isArray(node.props.items) ? node.props.items.map(asObject) : [];\n const spec = asObject(node.props.spec) as TimelineSpec;\n const variant = (node.props.variant ?? \"standard\") as TimelineVariant;\n const fields = spec.fields;\n\n if (!fields || items.length === 0) {\n return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No timeline data.\"}</Text>;\n }\n\n const ordered = sortItems(items, fields, spec.sort?.direction ?? \"ascending\", variant === \"axis\" ? spec.scale ?? { kind: \"datetime\" } : undefined);\n return (\n <Card {...componentRootProps(node, mergeClasses(styles.root, variant === \"compact\" && styles.compactRoot, variant === \"minimal\" && styles.minimalRoot))} appearance=\"outline\">\n {spec.title || spec.description ? (\n <CardHeader header={<div className={styles.heading}>{spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null}{spec.description ? <Text>{spec.description}</Text> : null}</div>} />\n ) : null}\n {variant === \"axis\" ? null : <ol className={styles.list}>\n {ordered.map((item, index) => {\n const id = String(item[fields.id] ?? index);\n const status = fields.status ? String(item[fields.status] ?? \"\") : \"\";\n const token = spec.toneMap?.[status];\n return (\n <li className={mergeClasses(styles.item, variant === \"compact\" && styles.compactItem, variant === \"minimal\" && styles.minimalItem)} key={id}>\n <time className={styles.time}><Text>{String(item[fields.timestamp] ?? \"\")}</Text></time>\n <div className={styles.content}>\n <div className={styles.titleRow}>\n <Text weight=\"semibold\">{String(item[fields.title] ?? \"\")}</Text>\n {token && variant !== \"minimal\" ? <Badge appearance=\"tint\" color={badgeColor(token)}>{status}</Badge> : null}\n </div>\n {variant !== \"minimal\" && fields.detail && item[fields.detail] != null ? <Text className={styles.detail}>{String(item[fields.detail])}</Text> : null}\n </div>\n </li>\n );\n })}\n </ol>}\n {variant === \"axis\" ? renderAxisTimeline(ordered, spec, styles) : null}\n </Card>\n );\n};\n\nexport function getTimelineSchema(): Record<string, unknown> {\n return timelinePropsSchema as unknown as Record<string, unknown>;\n}\n\nexport function validateTimeline(props: unknown): ComponentValidationReport {\n const report = runDeclarativeValidators([\n { kind: \"ajv-schema\", schema: getTimelineSchema(), message: \"Invalid timeline renderer props\", code: \"timeline-schema\" },\n { kind: \"jsonata\", expr: \"($field := data.spec.fields.id; $ids := data.items.$lookup($, $field); $count($ids) = $count($distinct($ids)))\", message: \"Timeline item identities must be unique\", code: \"timeline-unique-id\" },\n ], props as Json);\n if (!report.ok) return report;\n const value = asObject(props);\n if (value.variant !== \"axis\") return report;\n const spec = asObject(value.spec) as TimelineSpec;\n const scale = spec.scale ?? { kind: \"datetime\" };\n const coordinates = (Array.isArray(value.items) ? value.items.map(asObject) : []).map((item) => parseCoordinate(readPath(item, spec.fields.timestamp), scale));\n const minimum = scale.kind === \"linear\" ? scale.minimum : undefined;\n const maximum = scale.kind === \"linear\" ? scale.maximum : undefined;\n const domainMinimum = minimum ?? Math.min(...coordinates);\n const domainMaximum = maximum ?? Math.max(...coordinates);\n const invalid = coordinates.some((coordinate) => !Number.isFinite(coordinate) || (minimum !== undefined && coordinate < minimum) || (maximum !== undefined && coordinate > maximum));\n const invalidDomain = minimum !== undefined && maximum !== undefined && maximum <= minimum;\n const invalidTickCount = scale.tickStep !== undefined && Math.floor((domainMaximum - domainMinimum) / scale.tickStep) + 1 > MAX_TIMELINE_TICKS;\n if (invalid || invalidDomain || invalidTickCount) { report.ok = false; report.errors.push({ detail: \"Axis timeline events must use valid coordinates within the configured scale bounds\", code: \"timeline-valid-coordinate\" }); }\n return report;\n}","import React from \"react\";\nimport { Badge, Card, Divider, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor, type DataRecord } from \"../../shared/component\";\nimport { defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const NARRATIVE_SEMANTIC_TOKENS = [\"primary\", \"supporting\", \"caution\", \"critical\", \"neutral\"] as const;\nexport const NARRATIVE_VARIANTS = [\"article\", \"outline\", \"briefing\", \"text\"] as const;\ntype NarrativeToken = typeof NARRATIVE_SEMANTIC_TOKENS[number];\ntype NarrativeVariant = typeof NARRATIVE_VARIANTS[number];\n\ninterface NarrativeSpec {\n title?: string;\n emptyText?: string;\n density?: \"comfortable\" | \"compact\";\n fields: { id: string; heading: string; body: string; parent?: string; order?: string; role?: string; tone?: string };\n toneMap?: Record<string, NarrativeToken>;\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"sections\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n sections: { type: \"array\", items: { type: \"object\" } }, variant: { enum: NARRATIVE_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n title: { type: \"string\" }, emptyText: { type: \"string\" }, density: { enum: [\"comfortable\", \"compact\"] },\n fields: { type: \"object\", additionalProperties: false, required: [\"id\", \"heading\", \"body\"], properties: {\n id: { type: \"string\", minLength: 1 }, heading: { type: \"string\", minLength: 1 }, body: { type: \"string\", minLength: 1 },\n parent: { type: \"string\", minLength: 1 }, order: { type: \"string\", minLength: 1 }, role: { type: \"string\", minLength: 1 }, tone: { type: \"string\", minLength: 1 },\n } },\n toneMap: { type: \"object\", additionalProperties: { enum: NARRATIVE_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalL, maxWidth: \"52rem\", minWidth: 0 },\n compact: { gap: tokens.spacingVerticalM },\n section: { display: \"grid\", gap: tokens.spacingVerticalS },\n heading: { display: \"flex\", justifyContent: \"space-between\", alignItems: \"baseline\", gap: tokens.spacingHorizontalM, flexWrap: \"wrap\" },\n body: { color: tokens.colorNeutralForeground2, whiteSpace: \"pre-line\", lineHeight: tokens.lineHeightBase400 },\n outline: { display: \"grid\", gap: tokens.spacingVerticalM },\n outlineItem: { display: \"grid\", gap: tokens.spacingVerticalXS, borderLeft: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralStroke2}`, paddingLeft: tokens.spacingHorizontalM },\n briefing: { display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(15rem, 1fr))\", gap: tokens.spacingHorizontalM },\n briefingCard: { display: \"grid\", gap: tokens.spacingVerticalS, alignContent: \"start\" },\n text: { display: \"grid\", gap: tokens.spacingVerticalM },\n});\n\nfunction color(token: NarrativeToken | undefined): BadgeColor | undefined {\n if (token === \"critical\") return \"danger\";\n if (token === \"caution\") return \"warning\";\n if (token === \"primary\") return \"brand\";\n return token ? \"informative\" : undefined;\n}\n\nfunction orderedSections(sections: DataRecord[], orderField?: string) {\n return orderField ? [...sections].sort((left, right) => Number(textAt(left, orderField)) - Number(textAt(right, orderField))) : sections;\n}\n\nfunction outlineDepth(section: DataRecord, byId: Map<string, DataRecord>, spec: NarrativeSpec): number {\n if (!spec.fields.parent) return 0;\n let parentId = textAt(section, spec.fields.parent);\n let depth = 0;\n const visited = new Set<string>();\n while (parentId && byId.has(parentId) && !visited.has(parentId)) {\n visited.add(parentId);\n depth += 1;\n parentId = textAt(byId.get(parentId)!, spec.fields.parent);\n }\n return depth;\n}\n\nfunction sectionBadge(section: DataRecord, spec: NarrativeSpec) {\n const role = textAt(section, spec.fields.role);\n const toneValue = textAt(section, spec.fields.tone);\n const token = toneValue ? spec.toneMap?.[toneValue] : undefined;\n return role || toneValue ? <Badge appearance=\"tint\" color={color(token)}>{role || toneValue}</Badge> : null;\n}\n\nexport const Narrative: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const sections = records(node.props.sections);\n const spec = (node.props.spec ?? {}) as unknown as NarrativeSpec;\n const variant = (node.props.variant ?? \"article\") as NarrativeVariant;\n if (!spec.fields || sections.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No narrative available.\"}</Text>;\n const ordered = orderedSections(sections, spec.fields.order);\n const title = spec.title ? <Text as=\"h2\" weight=\"semibold\" size={600}>{spec.title}</Text> : null;\n const root = componentRootProps(node, styles.root, spec.density === \"compact\" && styles.compact);\n\n if (variant === \"text\") return <section {...root}>{title}<div className={styles.text}>{ordered.map((section) => { const role = textAt(section, spec.fields.role) || textAt(section, spec.fields.tone); return <Text key={textAt(section, spec.fields.id)}>{role ? `[${role}] ` : \"\"}{textAt(section, spec.fields.heading)}: {textAt(section, spec.fields.body)}</Text>; })}</div></section>;\n\n if (variant === \"outline\") {\n const byId = new Map(ordered.map((section) => [textAt(section, spec.fields.id), section]));\n return <section {...root}>{title}<div className={styles.outline}>{ordered.map((section) => <section className={styles.outlineItem} style={{ marginLeft: `${outlineDepth(section, byId, spec) * 1.25}rem` }} key={textAt(section, spec.fields.id)}><div className={styles.heading}><Text as=\"h3\" weight=\"semibold\">{textAt(section, spec.fields.heading)}</Text>{sectionBadge(section, spec)}</div><Text className={styles.body}>{textAt(section, spec.fields.body)}</Text></section>)}</div></section>;\n }\n\n if (variant === \"briefing\") return <section {...root}>{title}<div className={styles.briefing}>{ordered.map((section) => <Card appearance=\"outline\" className={styles.briefingCard} key={textAt(section, spec.fields.id)}><div className={styles.heading}><Text as=\"h3\" weight=\"semibold\">{textAt(section, spec.fields.heading)}</Text>{sectionBadge(section, spec)}</div><Text className={styles.body}>{textAt(section, spec.fields.body)}</Text></Card>)}</div></section>;\n\n return <article {...root} aria-label={spec.title ?? \"Narrative\"}>{title}{ordered.map((section, index) => <React.Fragment key={textAt(section, spec.fields.id)}>{index > 0 && spec.density !== \"compact\" ? <Divider /> : null}<section className={styles.section}><div className={styles.heading}><Text as=\"h3\" weight=\"semibold\" size={500}>{textAt(section, spec.fields.heading)}</Text>{sectionBadge(section, spec)}</div><Text className={styles.body}>{textAt(section, spec.fields.body)}</Text></section></React.Fragment>)}</article>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:narrative\", summary: \"Presents the same authored narrative sections as an article, outline, briefing, or text.\", dataProp: \"sections\", events: [], semanticTokens: NARRATIVE_SEMANTIC_TOKENS, defaultVariant: \"article\",\n variants: [\n { value: \"article\", summary: \"Continuous editorial reading flow.\", useWhen: [\"Narrative reading is primary\"] },\n { value: \"outline\", summary: \"Authored section hierarchy with complete section bodies.\", useWhen: [\"Structure and parentage should be visible\"] },\n { value: \"briefing\", summary: \"Compact operational section composition.\", useWhen: [\"Readers need rapid section scanning\"] },\n { value: \"text\", summary: \"Complete linear textual projection.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n ],\n authoring: { useWhen: [\"Explanatory content is organized into stable sections\"], avoidWhen: [\"Records are primarily chronological; use event-series\"], rules: [\"All variants consume and preserve the same sections\", \"Outline depth comes only from authored parent links\", \"Briefing never summarizes or omits content\", \"Put density in spec\"] },\n};\n\nexport function getNarrativeSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateNarrative(props: unknown): ComponentValidationReport { return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getNarrativeSchema(), message: \"Invalid semantic:narrative props\", code: \"narrative-schema\" }], props as Json); }\nexport function materializeNarrativeTrial() { return trialNode(\"semantic:narrative\", { variant: \"article\", sections: [{ id: \"access\", heading: \"Initial access\", body: \"The investigation links the first anomalous sign-in to a newly registered device.\", order: 1, role: \"Finding\", tone: \"primary\" }, { id: \"containment\", heading: \"Containment posture\", body: \"Current controls limit further access while identity review continues.\", parentId: \"access\", order: 2, role: \"Assessment\", tone: \"supporting\" }], spec: { title: \"Incident narrative\", density: \"comfortable\", fields: { id: \"id\", heading: \"heading\", body: \"body\", parent: \"parentId\", order: \"order\", role: \"role\", tone: \"tone\" }, toneMap: { primary: \"primary\", supporting: \"supporting\" } } }); }\nexport const narrativeDefinition = defineComponent({ description, version: \"1.0.0\", component: Narrative, getSchema: getNarrativeSchema, validate: validateNarrative, materializeTrial: materializeNarrativeTrial });","import React from \"react\";\nimport { Text } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { CollectionBoard, collectionBoardDefinition } from \"../../primitives/collection-board\";\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type DataRecord } from \"../../shared/component\";\nimport { componentNode, defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../../shared/definition\";\n\nexport const WORK_SET_VARIANTS = [\"board\", \"queue\", \"list\", \"text\"] as const;\ntype WorkSetVariant = typeof WORK_SET_VARIANTS[number];\n\ninterface WorkSetSpec {\n title?: string;\n description?: string;\n emptyText?: string;\n density?: \"comfortable\" | \"compact\";\n fields: { id: string; title: string; group: string; detail?: string; order?: string };\n groups: Array<{ value: string; label: string }>;\n interaction?: { selection?: \"none\" | \"single\"; reorder?: boolean; moveBetweenGroups?: boolean };\n}\n\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n additionalProperties: false,\n required: [\"items\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n items: { type: \"array\", items: { type: \"object\" } },\n selectedId: { type: \"string\" },\n variant: { enum: WORK_SET_VARIANTS },\n spec: {\n type: \"object\",\n additionalProperties: false,\n required: [\"fields\", \"groups\"],\n properties: {\n title: { type: \"string\" }, description: { type: \"string\" }, emptyText: { type: \"string\" },\n density: { enum: [\"comfortable\", \"compact\"] },\n fields: { type: \"object\", additionalProperties: false, required: [\"id\", \"title\", \"group\"], properties: {\n id: { type: \"string\", minLength: 1 }, title: { type: \"string\", minLength: 1 }, group: { type: \"string\", minLength: 1 },\n detail: { type: \"string\", minLength: 1 }, order: { type: \"string\", minLength: 1 },\n } },\n groups: { type: \"array\", minItems: 1, items: { type: \"object\", additionalProperties: false, required: [\"value\", \"label\"], properties: { value: { type: \"string\" }, label: { type: \"string\" } } } },\n interaction: { type: \"object\", additionalProperties: false, properties: {\n selection: { enum: [\"none\", \"single\"] }, reorder: { type: \"boolean\" }, moveBetweenGroups: { type: \"boolean\" },\n } },\n },\n },\n },\n} as const;\n\nfunction orderedItems(items: DataRecord[], orderField?: string) {\n return orderField ? [...items].sort((left, right) => Number(textAt(left, orderField)) - Number(textAt(right, orderField))) : items;\n}\n\nexport const WorkSet: ProjectionView = ({ node, emit }) => {\n const items = records(node.props.items);\n const spec = (node.props.spec ?? {}) as unknown as WorkSetSpec;\n const variant = (node.props.variant ?? \"board\") as WorkSetVariant;\n if (!spec.fields || !spec.groups || items.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No work items.\"}</Text>;\n\n if (variant === \"board\") {\n return <CollectionBoard node={componentNode(`${node.id}-board`, \"primitive:collection-board\", {\n items,\n selectedId: node.props.selectedId,\n className: node.props.className,\n style: node.props.style,\n variant: spec.density === \"compact\" ? \"compact\" : \"standard\",\n spec: {\n title: spec.title,\n description: spec.description,\n emptyText: spec.emptyText,\n columns: spec.groups.map((group) => ({ id: group.value, label: group.label })),\n fields: { id: spec.fields.id, title: spec.fields.title, column: spec.fields.group, detail: spec.fields.detail, order: spec.fields.order },\n interaction: { selection: spec.interaction?.selection, reorder: spec.interaction?.reorder, moveBetweenColumns: spec.interaction?.moveBetweenGroups },\n },\n } as Record<string, Json>)} emit={emit} children={undefined} />;\n }\n\n const ordered = orderedItems(items, spec.fields.order);\n const visible = variant === \"queue\" ? ordered.filter((item) => textAt(item, spec.fields.group) === spec.groups[0]?.value) : ordered;\n const lines = visible.map((item) => {\n const title = textAt(item, spec.fields.title);\n const detail = spec.fields.detail ? textAt(item, spec.fields.detail) : \"\";\n return detail && spec.density !== \"compact\" ? `${title}: ${detail}` : title;\n });\n return <section {...componentRootProps(node)}>{spec.title ? <Text weight=\"semibold\">{spec.title}</Text> : null}<div>{lines.map((line, index) => <Text block key={`${line}-${index}`}>{variant === \"text\" ? `- ${line}` : line}</Text>)}</div></section>;\n};\n\nconst description: ComponentDescription = {\n capability: \"semantic:work-set\",\n summary: \"Presents actionable work records as a board, queue, list, or textual projection.\",\n dataProp: \"items\",\n events: [\"select\", \"activate\", \"reorder\", \"move\"],\n eventContracts: collectionBoardDefinition.eventContracts,\n semanticTokens: [],\n defaultVariant: \"board\",\n variants: [\n { value: \"board\", summary: \"Work grouped into parallel declared columns.\", useWhen: [\"Placement across groups matters\"] },\n { value: \"queue\", summary: \"Ordered work from the first declared active group.\", useWhen: [\"Users should focus on the next actionable records\"] },\n { value: \"list\", summary: \"A linear scan of all work records.\", useWhen: [\"Cross-group comparison is secondary\"] },\n { value: \"text\", summary: \"Accessible textual work summary.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n ],\n authoring: {\n useWhen: [\"Records represent actionable work with stable placement or order\"],\n avoidWhen: [\"Records are purely informational or encode process steps\"],\n rules: [\"Use variant for the actual representation\", \"Put density and interaction configuration in spec\", \"Persist emitted movement intents outside the component\"],\n },\n};\n\nexport function getWorkSetSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateWorkSet(props: unknown): ComponentValidationReport {\n return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getWorkSetSchema(), message: \"Invalid semantic:work-set props\", code: \"work-set-schema\" }], props as Json);\n}\nexport function materializeWorkSetTrial() {\n return trialNode(\"semantic:work-set\", {\n variant: \"board\",\n items: [{ id: \"investigate\", title: \"Investigate sign-in\", detail: \"Review identity telemetry\", group: \"active\", order: 1 }],\n spec: { title: \"Response work\", density: \"comfortable\", fields: { id: \"id\", title: \"title\", detail: \"detail\", group: \"group\", order: \"order\" }, groups: [{ value: \"active\", label: \"Active\" }], interaction: { selection: \"single\", reorder: true } },\n });\n}\nexport const workSetDefinition = defineComponent({ description, version: \"1.0.0\", component: WorkSet, getSchema: getWorkSetSchema, validate: validateWorkSet, materializeTrial: materializeWorkSetTrial });","import React from \"react\";\nimport { Card, Text, makeStyles, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView, ProjectionViewProps } from \"@gik-ai/react\";\n\nimport { componentRootProps, records, textAt, type DataRecord } from \"../shared/component\";\nimport { componentNode, defineComponent, trialNode, type ComponentDescription, type ComponentValidationReport } from \"../shared/definition\";\nimport { DecisionSummary, DECISION_SUMMARY_SEMANTIC_TOKENS, getDecisionSummarySchema, validateDecisionSummary } from \"./decision\";\nimport { EntityConstellation, ENTITY_CONSTELLATION_SEMANTIC_TOKENS, getEntityConstellationSchema, validateEntityConstellation } from \"./entity-set\";\nimport { EvidenceTrail, EVIDENCE_TRAIL_SEMANTIC_TOKENS, getEvidenceTrailSchema, validateEvidenceTrail } from \"./evidence-case\";\nimport { Sequence, SEQUENCE_SEMANTIC_TOKENS, getSequenceSchema, validateSequence } from \"./process\";\nimport { Timeline, TIMELINE_SEMANTIC_TOKENS, getTimelineSchema, validateTimeline } from \"./event-series\";\n\ntype Schema = Record<string, any>;\ntype VariantMap = Record<string, string>;\n\nconst densitySchema = { enum: [\"comfortable\", \"compact\"] } as const;\n\nfunction canonicalSchema(baseSchema: Record<string, unknown>, variants: readonly string[]): Record<string, unknown> {\n const schema = JSON.parse(JSON.stringify(baseSchema)) as Schema;\n schema.properties.variant = { enum: variants };\n schema.properties.spec.properties.density = densitySchema;\n return schema;\n}\n\nfunction delegatedProps(props: Record<string, Json>, variant: string): Record<string, Json> {\n const spec = { ...((props.spec ?? {}) as Record<string, Json>) };\n delete spec.density;\n return { ...props, variant, spec };\n}\n\nfunction canonicalVariant(props: Record<string, Json>, defaultVariant: string): string {\n return typeof props.variant === \"string\" ? props.variant : defaultVariant;\n}\n\nfunction mappedVariant(props: Record<string, Json>, variants: VariantMap, defaultVariant: string): string {\n const variant = canonicalVariant(props, defaultVariant);\n const density = (props.spec as Record<string, Json> | undefined)?.density;\n const mapped = variants[variant];\n return density === \"compact\" && mapped === \"standard\" ? \"compact\" : mapped;\n}\n\nfunction delegate(Component: ProjectionView, node: ProjectionViewProps[\"node\"], emit: ProjectionViewProps[\"emit\"], variant: string) {\n return <Component node={componentNode(`${node.id}-delegate`, Component.name, delegatedProps(node.props, variant))} emit={emit} children={undefined} />;\n}\n\nfunction validateCanonical(\n capability: string,\n schema: Record<string, unknown>,\n props: unknown,\n map: (props: Record<string, Json>) => Record<string, Json>,\n validateLegacy: (props: unknown) => ComponentValidationReport,\n): ComponentValidationReport {\n const report = runDeclarativeValidators([{ kind: \"ajv-schema\", schema, message: `Invalid ${capability} props`, code: `${capability.replace(\":\", \"-\")}-schema` }], props as Json);\n if (!report.ok) return report;\n return validateLegacy(map(props as Record<string, Json>));\n}\n\nfunction textItems(node: ProjectionViewProps[\"node\"], dataProp: string, labelField: string, detailField?: string) {\n const spec = (node.props.spec ?? {}) as Record<string, any>;\n const items = records(node.props[dataProp]);\n if (items.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No data available.\"}</Text>;\n return <section {...componentRootProps(node)}>{spec.title ? <Text block weight=\"semibold\">{spec.title}</Text> : null}{items.map((item, index) => {\n const label = textAt(item, labelField);\n const detail = detailField ? textAt(item, detailField) : \"\";\n return <Text block key={`${label}-${index}`}>- {label}{detail ? `: ${detail}` : \"\"}</Text>;\n })}</section>;\n}\n\nfunction definition(description: ComponentDescription, component: ProjectionView, schema: Record<string, unknown>, validate: (props: unknown) => ComponentValidationReport, materializeTrial: () => ReturnType<typeof trialNode>) {\n return defineComponent({ description, version: \"1.0.0\", component, getSchema: () => schema, validate, materializeTrial });\n}\n\nfunction variants(values: readonly string[]) {\n return values.map((value) => ({ value, summary: `${value} presentation.`, useWhen: [`The ${value} presentation best matches the authored intent`] }));\n}\n\nexport const EVENT_SERIES_VARIANTS = [\"chronology\", \"axis\", \"text\"] as const;\nconst eventSeriesSchema = canonicalSchema(getTimelineSchema(), EVENT_SERIES_VARIANTS);\nconst eventSeriesMap: VariantMap = { chronology: \"standard\", axis: \"axis\", text: \"minimal\" };\nexport const EventSeries: ProjectionView = ({ node, emit }) => delegate(Timeline, node, emit, mappedVariant(node.props, eventSeriesMap, \"chronology\"));\nconst eventSeriesDescription: ComponentDescription = { capability: \"semantic:event-series\", summary: \"Presents temporally ordered events as a chronology, shared axis, or text.\", dataProp: \"items\", events: [], semanticTokens: TIMELINE_SEMANTIC_TOKENS, defaultVariant: \"chronology\", variants: variants(EVENT_SERIES_VARIANTS), authoring: { useWhen: [\"Timestamped events form the primary relationship\"], avoidWhen: [\"Order is procedural rather than temporal\"], rules: [\"Map stable identity, title, and timestamp fields\", \"Put density and scale configuration in spec\"] } };\nexport function materializeEventSeriesTrial() { return trialNode(\"semantic:event-series\", { variant: \"chronology\", items: [{ eventKey: \"evt-1\", at: \"2026-08-04T09:10:00Z\", title: \"Signal detected\", detail: \"An anomalous sign-in was observed.\", state: \"resolved\" }, { eventKey: \"evt-2\", at: \"2026-08-04T09:24:00Z\", title: \"Investigation opened\", detail: \"The identity team began triage.\", state: \"active\" }], spec: { title: \"Investigation timeline\", description: \"Ordered operational events\", density: \"comfortable\", fields: { id: \"eventKey\", title: \"title\", timestamp: \"at\", detail: \"detail\", status: \"state\" }, scale: { kind: \"datetime\" }, sort: { direction: \"ascending\" }, toneMap: { resolved: \"past\", active: \"current\" } } }); }\nexport const eventSeriesDefinition = definition(eventSeriesDescription, EventSeries, eventSeriesSchema, (props) => validateCanonical(\"semantic:event-series\", eventSeriesSchema, props, (value) => delegatedProps(value, mappedVariant(value, eventSeriesMap, \"chronology\")), validateTimeline), materializeEventSeriesTrial);\n\nexport const PROCESS_VARIANTS = [\"flow\", \"stages\", \"progress\", \"text\"] as const;\nconst processSchema = canonicalSchema(getSequenceSchema(), PROCESS_VARIANTS);\nconst processMap: VariantMap = { flow: \"standard\", stages: \"compact\", progress: \"progress\" };\nconst useProcessTextStyles = makeStyles({\n root: {\n display: \"grid\",\n gap: tokens.spacingVerticalM,\n fontFamily: \"monospace\",\n },\n list: { display: \"grid\", margin: 0, padding: 0, listStyle: \"none\" },\n item: {\n display: \"grid\",\n gridTemplateColumns: \"3ch minmax(0, 1fr)\",\n minWidth: 0,\n },\n status: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 1,\n color: tokens.colorNeutralForeground2,\n },\n line: {\n display: \"grid\",\n gap: tokens.spacingVerticalXXS,\n minWidth: 0,\n paddingBottom: tokens.spacingVerticalXS,\n },\n title: { minWidth: 0, fontFamily: \"inherit\" },\n detail: { minWidth: 0, color: tokens.colorNeutralForeground3, fontFamily: \"inherit\" },\n connector: {\n gridColumn: 1,\n display: \"inline-flex\",\n justifyContent: \"center\",\n minHeight: \"1em\",\n color: tokens.colorNeutralForeground3,\n lineHeight: 1,\n },\n});\nexport const Process: ProjectionView = ({ node, emit }) => {\n if (canonicalVariant(node.props, \"flow\") !== \"text\") {\n return delegate(Sequence, node, emit, mappedVariant(node.props, processMap, \"flow\"));\n }\n const styles = useProcessTextStyles();\n const spec = (node.props.spec ?? {}) as Record<string, any>;\n const fields = spec.fields as { title: string; detail?: string; status?: string };\n const items = records(node.props.items);\n if (items.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No data available.\"}</Text>;\n return <section {...componentRootProps(node, styles.root)}>\n {spec.title ? <Text block weight=\"semibold\">{spec.title}</Text> : null}\n <ol className={styles.list}>\n {items.map((item, index) => {\n const title = textAt(item, fields.title);\n const detail = fields.detail ? textAt(item, fields.detail) : \"\";\n const status = fields.status ? textAt(item, fields.status) : \"\";\n const token = spec.toneMap?.[status] as string | undefined;\n const marker = token === \"complete\" ? \"o\" : token === \"current\" ? \"•\" : token === \"blocked\" ? \"x\" : token === \"skipped\" ? \"-\" : \"·\";\n const markerLabel = token === \"complete\" ? \"Completed\" : token === \"current\" ? \"In progress\" : token === \"blocked\" ? \"Blocked\" : token === \"skipped\" ? \"Skipped\" : \"Pending\";\n return <li\n className={styles.item}\n key={`${title}-${index}`}\n aria-current={token === \"current\" ? \"step\" : undefined}\n title={status ? `${title}: ${status}` : title}\n >\n <span className={styles.status} aria-label={markerLabel}>{marker}</span>\n <span className={styles.line}>\n <Text className={styles.title}>{title}</Text>\n {detail ? <Text className={styles.detail}>{detail}</Text> : null}\n </span>\n {index < items.length - 1 ? <span className={styles.connector} aria-hidden=\"true\">|</span> : null}\n </li>;\n })}\n </ol>\n </section>;\n};\nconst processDescription: ComponentDescription = { capability: \"semantic:process\", summary: \"Presents ordered process steps as a flow, stages, compact progress, or text.\", dataProp: \"items\", events: [], semanticTokens: SEQUENCE_SEMANTIC_TOKENS, defaultVariant: \"flow\", variants: [\n { value: \"flow\", summary: \"Detailed connected process flow.\", useWhen: [\"Step labels and details are part of the primary reading path\"] },\n { value: \"stages\", summary: \"Compact labeled process stages.\", useWhen: [\"The process needs labels in a supporting surface\"] },\n { value: \"progress\", summary: \"Minimal dash-based process progress.\", useWhen: [\"Only completed, current, and upcoming progression needs to remain visible\"] },\n { value: \"text\", summary: \"Complete linear text projection.\", useWhen: [\"Visual layout is unavailable or inappropriate\"] },\n], authoring: { useWhen: [\"Records are ordered procedural steps\"], avoidWhen: [\"Timestamps are the primary ordering relationship\"], rules: [\"Use the existing sequence field and orientation contract\", \"Map optional item icons through fields.icon using step, event, wait, or observe\", \"Use progress for a compact current-item summary\", \"Put density and orientation in spec\"] } };\nexport function materializeProcessTrial() { return trialNode(\"semantic:process\", { variant: \"flow\", items: [{ key: \"s1\", order: 1, label: \"Detect\", state: \"done\", detail: \"Signal identified\", icon: \"event\" }, { key: \"s2\", order: 2, label: \"Investigate\", state: \"active\", detail: \"Evidence under review\", icon: \"observe\" }], spec: { title: \"Response process\", density: \"comfortable\", orientation: \"horizontal\", fields: { id: \"key\", title: \"label\", order: \"order\", detail: \"detail\", status: \"state\", icon: \"icon\" }, toneMap: { done: \"complete\", active: \"current\" } } }); }\nexport const processDefinition = definition(processDescription, Process, processSchema, (props) => validateCanonical(\"semantic:process\", processSchema, props, (value) => delegatedProps(value, canonicalVariant(value, \"flow\") === \"text\" ? \"compact\" : mappedVariant(value, processMap, \"flow\")), validateSequence), materializeProcessTrial);\n\nexport const ENTITY_SET_VARIANTS = [\"clusters\", \"matrix\", \"list\", \"text\"] as const;\nconst entitySetSchema = canonicalSchema(getEntityConstellationSchema(), ENTITY_SET_VARIANTS);\nfunction entityFields(node: ProjectionViewProps[\"node\"]) { return (node.props.spec as any).fields as { label: string; description?: string; type?: string; status?: string }; }\nexport const EntitySet: ProjectionView = ({ node, emit }) => {\n const variant = canonicalVariant(node.props, \"clusters\");\n if (variant === \"clusters\") return delegate(EntityConstellation, node, emit, (node.props.spec as any).density === \"compact\" ? \"compact\" : \"grouped\");\n const fields = entityFields(node);\n if (variant === \"text\") return textItems(node, \"items\", fields.label, fields.description);\n const items = records(node.props.items);\n if (variant === \"list\") return <section {...componentRootProps(node)}>{items.map((item, index) => <Card key={`${textAt(item, fields.label)}-${index}`}><Text weight=\"semibold\">{textAt(item, fields.label)}</Text>{fields.description ? <Text block>{textAt(item, fields.description)}</Text> : null}</Card>)}</section>;\n return <table {...componentRootProps(node)}><thead><tr><th>Entity</th><th>Type</th><th>Status</th></tr></thead><tbody>{items.map((item, index) => <tr key={`${textAt(item, fields.label)}-${index}`}><td>{textAt(item, fields.label)}</td><td>{textAt(item, fields.type)}</td><td>{textAt(item, fields.status)}</td></tr>)}</tbody></table>;\n};\nconst entitySetDescription: ComponentDescription = { capability: \"semantic:entity-set\", summary: \"Presents an entity population as clusters, a matrix, a list, or text.\", dataProp: \"items\", events: [], semanticTokens: ENTITY_CONSTELLATION_SEMANTIC_TOKENS, defaultVariant: \"clusters\", variants: variants(ENTITY_SET_VARIANTS), authoring: { useWhen: [\"A population of entities is the semantic subject\"], avoidWhen: [\"Relationships between entities are primary\"], rules: [\"Use clusters only when grouping is meaningful\", \"Use mapped fields for matrix, list, and text projections\"] } };\nexport function materializeEntitySetTrial() { return trialNode(\"semantic:entity-set\", { variant: \"clusters\", items: [{ key: \"u1\", name: \"Admin account\", kind: \"identity\", condition: \"compromised\", group: \"impacted\", detail: \"Privileged account\" }], spec: { title: \"Entity set\", density: \"comfortable\", fields: { id: \"key\", label: \"name\", type: \"kind\", status: \"condition\", group: \"group\", description: \"detail\" }, groups: [{ value: \"impacted\", label: \"Impacted\" }], toneMap: { compromised: \"affected\" } } }); }\nexport const entitySetDefinition = definition(entitySetDescription, EntitySet, entitySetSchema, (props) => validateCanonical(\"semantic:entity-set\", entitySetSchema, props, (value) => delegatedProps(value, \"grouped\"), validateEntityConstellation), materializeEntitySetTrial);\n\nexport const EVIDENCE_CASE_VARIANTS = [\"case\", \"sources\", \"chain\", \"text\"] as const;\nconst evidenceCaseSchema = canonicalSchema(getEvidenceTrailSchema(), EVIDENCE_CASE_VARIANTS);\nexport const EvidenceCase: ProjectionView = ({ node, emit }) => {\n const variant = canonicalVariant(node.props, \"case\");\n const fields = (node.props.spec as any).fields;\n if (variant === \"chain\") return delegate(EvidenceTrail, node, emit, \"detailed\");\n if (variant === \"sources\") return delegate(EvidenceTrail, node, emit, \"compact\");\n if (variant === \"text\") return textItems(node, \"evidence\", fields.title, fields.excerpt);\n return <section {...componentRootProps(node)}>{(node.props.spec as any).title ? <Text block weight=\"semibold\">{(node.props.spec as any).title}</Text> : null}{records(node.props.evidence).map((item, index) => <Card key={`${textAt(item, fields.id)}-${index}`}><Text block weight=\"semibold\">{textAt(item, fields.title)}</Text><Text block>{textAt(item, fields.source)}</Text>{fields.excerpt ? <Text block>{textAt(item, fields.excerpt)}</Text> : null}</Card>)}</section>;\n};\nconst evidenceCaseDescription: ComponentDescription = { capability: \"semantic:evidence-case\", summary: \"Groups sourced evidence as a case, source scan, evidence chain, or text.\", dataProp: \"evidence\", events: [], semanticTokens: EVIDENCE_TRAIL_SEMANTIC_TOKENS, defaultVariant: \"case\", variants: variants(EVIDENCE_CASE_VARIANTS), authoring: { useWhen: [\"Evidence collectively supports or challenges a case\"], avoidWhen: [\"Records are merely chronological\"], rules: [\"Use chain for ordered provenance\", \"Do not invent excerpts or source attribution\"] } };\nexport function materializeEvidenceCaseTrial() { return trialNode(\"semantic:evidence-case\", { variant: \"case\", evidence: [{ id: \"ev-1\", title: \"Unfamiliar device registration\", source: \"Identity audit log\", at: \"09:14 UTC\", excerpt: \"Device credential registered after the first anomalous sign-in.\", role: \"corroborates\" }, { id: \"ev-2\", title: \"Conditional access challenge\", source: \"Sign-in log\", at: \"09:16 UTC\", excerpt: \"Challenge originated from the same network and user session.\", role: \"primary\" }], spec: { title: \"Evidence case\", density: \"comfortable\", fields: { id: \"id\", title: \"title\", source: \"source\", timestamp: \"at\", excerpt: \"excerpt\", tone: \"role\" }, toneMap: { corroborates: \"corroborating\", primary: \"primary\" } } }); }\nexport const evidenceCaseDefinition = definition(evidenceCaseDescription, EvidenceCase, evidenceCaseSchema, (props) => validateCanonical(\"semantic:evidence-case\", evidenceCaseSchema, props, (value) => delegatedProps(value, \"detailed\"), validateEvidenceTrail), materializeEvidenceCaseTrial);\n\nexport const DECISION_VARIANTS = [\"summary\", \"rationale-chain\", \"text\"] as const;\nconst decisionSchema = canonicalSchema(getDecisionSummarySchema(), DECISION_VARIANTS);\nexport const Decision: ProjectionView = ({ node, emit }) => {\n const variant = canonicalVariant(node.props, \"summary\");\n if (variant === \"summary\") return delegate(DecisionSummary, node, emit, (node.props.spec as any).density === \"compact\" ? \"concise\" : \"detailed\");\n const decision = node.props.decision as DataRecord;\n const fields = (node.props.spec as any).fields;\n if (variant === \"text\") return <Text {...componentRootProps(node)}>{textAt(decision, fields.title)}: {textAt(decision, fields.summary)} ({textAt(decision, fields.outcome)})</Text>;\n return <section {...componentRootProps(node)}><Text block weight=\"semibold\">{textAt(decision, fields.title)}</Text><ol><li>{textAt(decision, fields.rationale)}</li><li>{textAt(decision, fields.outcome)}</li></ol></section>;\n};\nconst decisionDescription: ComponentDescription = { capability: \"semantic:decision\", summary: \"Presents a decision as a summary, rationale chain, or text.\", dataProp: \"decision\", events: [], semanticTokens: DECISION_SUMMARY_SEMANTIC_TOKENS, defaultVariant: \"summary\", variants: variants(DECISION_VARIANTS), authoring: { useWhen: [\"One decision and its justification are the focal result\"], avoidWhen: [\"Users must choose among interactive options\"], rules: [\"Map title, summary, outcome, and rationale\", \"Use rationale-chain only when reasoning order is meaningful\"] } };\nexport function materializeDecisionTrial() { return trialNode(\"semantic:decision\", { variant: \"summary\", decision: { title: \"Contain affected identity\", summary: \"Evidence supports immediate containment.\", verdict: { outcome: \"approved\", confidence: \"high\", rationale: \"Correlated sign-in evidence\" }, impact: \"Reduces lateral movement risk\" }, spec: { eyebrow: \"Decision\", density: \"comfortable\", fields: { title: \"title\", summary: \"summary\", outcome: \"verdict.outcome\", confidence: \"verdict.confidence\", rationale: \"verdict.rationale\", impact: \"impact\" }, toneMap: { approved: \"affirmative\" } } }); }\nexport const decisionDefinition = definition(decisionDescription, Decision, decisionSchema, (props) => validateCanonical(\"semantic:decision\", decisionSchema, props, (value) => delegatedProps(value, \"detailed\"), validateDecisionSummary), materializeDecisionTrial);\n","import React from \"react\";\nimport { Badge, Card, CardHeader, Divider, Text, makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport type { ComponentValidationReport } from \"../../shared/definition\";\nimport { asRecord, componentRootProps, componentStylePropsSchema, textAt, type BadgeColor } from \"../../shared/component\";\n\nexport const DECISION_SUMMARY_SEMANTIC_TOKENS = [\"affirmative\", \"cautionary\", \"negative\", \"uncertain\", \"neutral\"] as const;\nexport const DECISION_SUMMARY_VARIANTS = [\"detailed\", \"concise\"] as const;\ntype DecisionToken = typeof DECISION_SUMMARY_SEMANTIC_TOKENS[number];\ntype DecisionSummaryVariant = typeof DECISION_SUMMARY_VARIANTS[number];\nconst decisionSummaryPropsSchema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"decision\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n decision: { type: \"object\" },\n variant: { enum: DECISION_SUMMARY_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n eyebrow: { type: \"string\" }, emptyText: { type: \"string\" },\n fields: { type: \"object\", additionalProperties: false, required: [\"title\", \"summary\", \"outcome\"], properties: {\n title: { type: \"string\", minLength: 1 }, summary: { type: \"string\", minLength: 1 }, outcome: { type: \"string\", minLength: 1 },\n rationale: { type: \"string\", minLength: 1 }, confidence: { type: \"string\", minLength: 1 }, impact: { type: \"string\", minLength: 1 }, tone: { type: \"string\", minLength: 1 },\n } },\n labels: { type: \"object\", additionalProperties: false, properties: { rationale: { type: \"string\" }, confidence: { type: \"string\" }, impact: { type: \"string\" } } },\n toneMap: { type: \"object\", additionalProperties: { enum: DECISION_SUMMARY_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\ntype DecisionSpec = { eyebrow?: string; emptyText?: string; fields: { title: string; summary: string; outcome: string; rationale?: string; confidence?: string; impact?: string; tone?: string }; labels?: { rationale?: string; confidence?: string; impact?: string }; toneMap?: Record<string, DecisionToken> };\nconst useStyles = makeStyles({ root: { display: \"grid\", gap: tokens.spacingVerticalL }, conciseRoot: { gap: tokens.spacingVerticalS }, header: { display: \"grid\", gap: tokens.spacingVerticalXS }, eyebrow: { color: tokens.colorNeutralForeground3 }, summary: { color: tokens.colorNeutralForeground2 }, facts: { display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(12rem, 1fr))\", gap: tokens.spacingHorizontalL }, fact: { display: \"grid\", gap: tokens.spacingVerticalXXS }, label: { color: tokens.colorNeutralForeground3 } });\nfunction tokenColor(token: DecisionToken): BadgeColor { if (token === \"affirmative\") return \"success\"; if (token === \"cautionary\") return \"warning\"; if (token === \"negative\") return \"danger\"; return \"informative\"; }\nexport const DecisionSummary: ProjectionView = ({ node }) => {\n const styles = useStyles(); const decision = asRecord(node.props.decision); const spec = (node.props.spec ?? {}) as DecisionSpec;\n const variant = (node.props.variant ?? \"detailed\") as DecisionSummaryVariant;\n if (!spec.fields || Object.keys(decision).length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No decision available.\"}</Text>;\n const outcome = textAt(decision, spec.fields.outcome); const toneValue = textAt(decision, spec.fields.tone) || outcome; const token = spec.toneMap?.[toneValue];\n const facts = [[spec.labels?.confidence ?? \"Confidence\", spec.fields.confidence], [spec.labels?.impact ?? \"Impact\", spec.fields.impact], [spec.labels?.rationale ?? \"Rationale\", spec.fields.rationale]] as const;\n return <Card {...componentRootProps(node, mergeClasses(styles.root, variant === \"concise\" && styles.conciseRoot))} appearance=\"outline\"><CardHeader header={<div className={styles.header}>{spec.eyebrow ? <Text className={styles.eyebrow} size={200}>{spec.eyebrow}</Text> : null}<Text weight=\"semibold\" size={600}>{textAt(decision, spec.fields.title)}</Text><div>{token ? <Badge appearance=\"filled\" color={tokenColor(token)}>{outcome}</Badge> : <Badge appearance=\"outline\">{outcome}</Badge>}</div><Text className={styles.summary}>{textAt(decision, spec.fields.summary)}</Text></div>} />{variant === \"detailed\" ? <><Divider /><div className={styles.facts}>{facts.flatMap(([label, field]) => field && textAt(decision, field) ? [<div className={styles.fact} key={label}><Text className={styles.label} size={200}>{label}</Text><Text weight=\"semibold\">{textAt(decision, field)}</Text></div>] : [])}</div></> : null}</Card>;\n};\nexport function getDecisionSummarySchema(): Record<string, unknown> { return decisionSummaryPropsSchema as unknown as Record<string, unknown>; }\nexport function validateDecisionSummary(props: unknown): ComponentValidationReport { return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getDecisionSummarySchema(), message: \"Invalid decision renderer props\", code: \"decision-renderer-schema\" }], props as Json); }","import React from \"react\";\nimport { Badge, Card, CardHeader, Text, makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport type { ComponentValidationReport } from \"../../shared/definition\";\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor, type DataRecord } from \"../../shared/component\";\n\nexport const ENTITY_CONSTELLATION_SEMANTIC_TOKENS = [\"affected\", \"at-risk\", \"observed\", \"positive\", \"unknown\"] as const;\nexport const ENTITY_CONSTELLATION_VARIANTS = [\"grouped\", \"compact\"] as const;\ntype EntityToken = typeof ENTITY_CONSTELLATION_SEMANTIC_TOKENS[number];\ntype EntityConstellationVariant = typeof ENTITY_CONSTELLATION_VARIANTS[number];\n\nconst entityConstellationPropsSchema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"items\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n items: { type: \"array\", items: { type: \"object\" } },\n variant: { enum: ENTITY_CONSTELLATION_VARIANTS },\n spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n title: { type: \"string\" }, description: { type: \"string\" }, emptyText: { type: \"string\" },\n fields: { type: \"object\", additionalProperties: false, required: [\"id\", \"label\"], properties: {\n id: { type: \"string\", minLength: 1 }, label: { type: \"string\", minLength: 1 }, description: { type: \"string\", minLength: 1 },\n type: { type: \"string\", minLength: 1 }, status: { type: \"string\", minLength: 1 }, group: { type: \"string\", minLength: 1 },\n } },\n groups: { type: \"array\", items: { type: \"object\", additionalProperties: false, required: [\"value\", \"label\"], properties: { value: { type: \"string\" }, label: { type: \"string\" } } } },\n toneMap: { type: \"object\", additionalProperties: { enum: ENTITY_CONSTELLATION_SEMANTIC_TOKENS } },\n } },\n },\n} as const;\n\ntype EntitySpec = {\n title?: string; description?: string; emptyText?: string;\n fields: { id: string; label: string; description?: string; type?: string; status?: string; group?: string };\n groups?: Array<{ value: string; label: string }>;\n toneMap?: Record<string, EntityToken>;\n};\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalL }, heading: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n groups: { display: \"grid\", gridTemplateColumns: \"repeat(auto-fit, minmax(14rem, 1fr))\", gap: tokens.spacingHorizontalL },\n compactGroups: { gridTemplateColumns: \"repeat(auto-fit, minmax(10rem, 1fr))\", gap: tokens.spacingHorizontalS },\n group: { display: \"grid\", gap: tokens.spacingVerticalM }, groupTitle: { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: tokens.spacingHorizontalS },\n compactGroup: { gap: tokens.spacingVerticalS },\n entities: { display: \"grid\", gap: tokens.spacingVerticalS }, entity: { display: \"grid\", gap: tokens.spacingVerticalXS },\n compactEntities: { gap: tokens.spacingVerticalXS }, compactEntity: { gap: tokens.spacingVerticalXXS },\n titleRow: { display: \"flex\", alignItems: \"center\", gap: tokens.spacingHorizontalS, flexWrap: \"wrap\" }, detail: { color: tokens.colorNeutralForeground3 },\n});\nfunction tokenColor(token: EntityToken): BadgeColor {\n if (token === \"affected\") return \"danger\";\n if (token === \"at-risk\") return \"warning\";\n if (token === \"positive\") return \"success\";\n return \"informative\";\n}\nfunction groupValues(items: DataRecord[], spec: EntitySpec): Array<{ value: string; label: string }> {\n if (spec.groups?.length) return spec.groups;\n if (!spec.fields.group) return [{ value: \"\", label: \"Entities\" }];\n return [...new Set(items.map((item) => textAt(item, spec.fields.group)))].map((value) => ({ value, label: value || \"Other\" }));\n}\nexport const EntityConstellation: ProjectionView = ({ node }) => {\n const styles = useStyles(); const items = records(node.props.items); const spec = (node.props.spec ?? {}) as EntitySpec;\n const variant = (node.props.variant ?? \"grouped\") as EntityConstellationVariant;\n if (!spec.fields || items.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No entities.\"}</Text>;\n return <section {...componentRootProps(node, styles.root)}>\n {spec.title || spec.description ? <header className={styles.heading}>{spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null}{spec.description ? <Text>{spec.description}</Text> : null}</header> : null}\n <div className={mergeClasses(styles.groups, variant === \"compact\" && styles.compactGroups)}>{groupValues(items, spec).map((group) => {\n const members = items.filter((item) => !spec.fields.group || textAt(item, spec.fields.group) === group.value);\n return members.length ? <section className={mergeClasses(styles.group, variant === \"compact\" && styles.compactGroup)} key={group.value}><div className={styles.groupTitle}><Text weight=\"semibold\">{group.label}</Text><Badge appearance=\"outline\">{members.length}</Badge></div><div className={mergeClasses(styles.entities, variant === \"compact\" && styles.compactEntities)}>{members.map((item, index) => {\n const status = textAt(item, spec.fields.status); const token = spec.toneMap?.[status];\n return <Card className={mergeClasses(styles.entity, variant === \"compact\" && styles.compactEntity)} appearance=\"outline\" key={textAt(item, spec.fields.id) || index}><CardHeader header={<div className={styles.titleRow}>{spec.fields.type && textAt(item, spec.fields.type) ? <Badge appearance=\"tint\">{textAt(item, spec.fields.type)}</Badge> : null}<Text weight=\"semibold\">{textAt(item, spec.fields.label)}</Text>{token ? <Badge appearance=\"tint\" color={tokenColor(token)}>{status}</Badge> : null}</div>} />{spec.fields.description && textAt(item, spec.fields.description) ? <Text className={styles.detail}>{textAt(item, spec.fields.description)}</Text> : null}</Card>;\n })}</div></section> : null;\n })}</div>\n </section>;\n};\nexport function getEntityConstellationSchema(): Record<string, unknown> { return entityConstellationPropsSchema as unknown as Record<string, unknown>; }\nexport function validateEntityConstellation(props: unknown): ComponentValidationReport { return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getEntityConstellationSchema(), message: \"Invalid entity-set renderer props\", code: \"entity-set-renderer-schema\" }], props as Json); }","import React from \"react\";\nimport { Badge, Card, Text, makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport type { ComponentValidationReport } from \"../../shared/definition\";\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor } from \"../../shared/component\";\n\nexport const EVIDENCE_TRAIL_SEMANTIC_TOKENS = [\"corroborating\", \"contradicting\", \"uncertain\", \"primary\", \"context\"] as const;\nexport const EVIDENCE_TRAIL_VARIANTS = [\"detailed\", \"compact\"] as const;\ntype EvidenceToken = typeof EVIDENCE_TRAIL_SEMANTIC_TOKENS[number];\nconst schema = {\n $schema: \"http://json-schema.org/draft-07/schema#\", type: \"object\", additionalProperties: false, required: [\"evidence\", \"spec\"],\n properties: { ...componentStylePropsSchema, evidence: { type: \"array\", items: { type: \"object\" } }, variant: { enum: EVIDENCE_TRAIL_VARIANTS }, spec: { type: \"object\", additionalProperties: false, required: [\"fields\"], properties: {\n title: { type: \"string\" }, emptyText: { type: \"string\" }, fields: { type: \"object\", additionalProperties: false, required: [\"title\", \"source\"], properties: { id: { type: \"string\", minLength: 1 }, title: { type: \"string\", minLength: 1 }, source: { type: \"string\", minLength: 1 }, excerpt: { type: \"string\", minLength: 1 }, timestamp: { type: \"string\", minLength: 1 }, tone: { type: \"string\", minLength: 1 } } }, toneMap: { type: \"object\", additionalProperties: { enum: EVIDENCE_TRAIL_SEMANTIC_TOKENS } },\n } } },\n} as const;\ntype EvidenceSpec = { title?: string; emptyText?: string; fields: { id?: string; title: string; source: string; excerpt?: string; timestamp?: string; tone?: string }; toneMap?: Record<string, EvidenceToken> };\nconst useStyles = makeStyles({ root: { display: \"grid\", gap: tokens.spacingVerticalM }, trail: { display: \"grid\", gap: tokens.spacingVerticalS, borderLeft: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralStroke2}`, paddingLeft: tokens.spacingHorizontalL }, item: { display: \"grid\", gap: tokens.spacingVerticalS }, compactItem: { gridTemplateColumns: \"minmax(0, 1fr) auto\", alignItems: \"center\" }, header: { display: \"flex\", justifyContent: \"space-between\", alignItems: \"flex-start\", flexWrap: \"wrap\", gap: tokens.spacingHorizontalS }, meta: { color: tokens.colorNeutralForeground3 }, excerpt: { color: tokens.colorNeutralForeground2, borderLeft: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`, paddingLeft: tokens.spacingHorizontalM } });\nfunction color(token: EvidenceToken): BadgeColor { if (token === \"corroborating\") return \"success\"; if (token === \"contradicting\") return \"danger\"; if (token === \"uncertain\") return \"warning\"; if (token === \"primary\") return \"brand\"; return \"informative\"; }\nexport const EvidenceTrail: ProjectionView = ({ node }) => {\n const styles = useStyles(); const evidence = records(node.props.evidence); const spec = (node.props.spec ?? {}) as EvidenceSpec; const compact = (node.props.variant ?? \"detailed\") === \"compact\";\n if (!spec.fields || evidence.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No evidence available.\"}</Text>;\n return <section {...componentRootProps(node, styles.root)} aria-label={spec.title ?? \"Evidence trail\"}>{spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null}<div className={styles.trail}>{evidence.map((item, index) => { const toneValue = textAt(item, spec.fields.tone); const token = toneValue ? spec.toneMap?.[toneValue] : undefined; return <Card className={mergeClasses(styles.item, compact && styles.compactItem)} appearance=\"outline\" key={textAt(item, spec.fields.id) || `${textAt(item, spec.fields.title)}-${index}`}>\n <div><div className={styles.header}><Text weight=\"semibold\">{textAt(item, spec.fields.title)}</Text>{token ? <Badge appearance=\"tint\" color={color(token)}>{toneValue}</Badge> : null}</div><Text className={styles.meta} size={200}>{[textAt(item, spec.fields.source), textAt(item, spec.fields.timestamp)].filter(Boolean).join(\" · \")}</Text>{!compact && spec.fields.excerpt && textAt(item, spec.fields.excerpt) ? <Text className={styles.excerpt}>{textAt(item, spec.fields.excerpt)}</Text> : null}</div>\n </Card>; })}</div></section>;\n};\nexport function getEvidenceTrailSchema(): Record<string, unknown> { return schema as unknown as Record<string, unknown>; }\nexport function validateEvidenceTrail(props: unknown): ComponentValidationReport { return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getEvidenceTrailSchema(), message: \"Invalid evidence-case renderer props\", code: \"evidence-case-renderer-schema\" }], props as Json); }","import React from \"react\";\nimport { Badge, Card, CardHeader, Text, makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport {\n CheckmarkCircleRegular,\n CircleRegular,\n ClipboardEditRegular,\n ClockRegular,\n SparkleRegular,\n StepsRegular,\n} from \"@fluentui/react-icons\";\nimport type { Json } from \"@gik-ai/kernel\";\nimport { runDeclarativeValidators } from \"@gik-ai/evaluators\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport type { ComponentValidationReport } from \"../../shared/definition\";\nimport { componentRootProps, componentStylePropsSchema, records, textAt, type BadgeColor } from \"../../shared/component\";\n\nexport const SEQUENCE_SEMANTIC_TOKENS = [\"complete\", \"current\", \"upcoming\", \"blocked\", \"skipped\", \"unknown\"] as const;\nexport const SEQUENCE_VARIANTS = [\"standard\", \"compact\", \"progress\"] as const;\nexport const SEQUENCE_ITEM_ICONS = [\"step\", \"event\", \"wait\", \"observe\"] as const;\ntype SequenceToken = typeof SEQUENCE_SEMANTIC_TOKENS[number];\ntype SequenceVariant = typeof SEQUENCE_VARIANTS[number];\ntype SequenceItemIcon = typeof SEQUENCE_ITEM_ICONS[number];\n\nconst sequencePropsSchema = {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n additionalProperties: false,\n required: [\"items\", \"spec\"],\n properties: {\n ...componentStylePropsSchema,\n items: { type: \"array\", items: { type: \"object\" } },\n variant: { enum: SEQUENCE_VARIANTS },\n spec: {\n type: \"object\",\n additionalProperties: false,\n required: [\"fields\"],\n properties: {\n title: { type: \"string\" }, description: { type: \"string\" }, emptyText: { type: \"string\" },\n orientation: { enum: [\"horizontal\", \"vertical\"] },\n fields: {\n type: \"object\", additionalProperties: false, required: [\"id\", \"title\"],\n properties: {\n id: { type: \"string\", minLength: 1 }, title: { type: \"string\", minLength: 1 },\n detail: { type: \"string\", minLength: 1 }, order: { type: \"string\", minLength: 1 },\n status: { type: \"string\", minLength: 1 }, reference: { type: \"string\", minLength: 1 },\n icon: { type: \"string\", minLength: 1 },\n },\n },\n toneMap: { type: \"object\", additionalProperties: { enum: SEQUENCE_SEMANTIC_TOKENS } },\n },\n },\n },\n} as const;\n\ntype SequenceSpec = {\n title?: string; description?: string; emptyText?: string; orientation?: \"horizontal\" | \"vertical\";\n fields: { id: string; title: string; detail?: string; order?: string; status?: string; reference?: string; icon?: string };\n toneMap?: Record<string, SequenceToken>;\n};\n\nconst useStyles = makeStyles({\n root: { display: \"grid\", gap: tokens.spacingVerticalM },\n compactRoot: { gap: tokens.spacingVerticalS },\n heading: { display: \"grid\", gap: tokens.spacingVerticalXXS },\n titleRow: { display: \"flex\", gap: tokens.spacingHorizontalS, alignItems: \"center\", flexWrap: \"wrap\" },\n itemTitle: { display: \"inline-flex\", gap: tokens.spacingHorizontalXS, alignItems: \"center\", minWidth: 0 },\n itemIcon: { display: \"inline-flex\", flex: \"0 0 auto\" },\n progressItemTitle: {\n fontSize: tokens.fontSizeBase400,\n lineHeight: tokens.lineHeightBase400,\n },\n progressItemIcon: {\n fontSize: tokens.fontSizeBase400,\n lineHeight: tokens.lineHeightBase400,\n \"& svg\": {\n width: \"1em\",\n height: \"1em\",\n },\n },\n detail: { color: tokens.colorNeutralForeground3 },\n flowList: {\n display: \"flex\",\n alignItems: \"stretch\",\n gap: tokens.spacingHorizontalXL,\n margin: 0,\n padding: 0,\n overflowX: \"auto\",\n listStyle: \"none\",\n },\n flowListVertical: {\n flexDirection: \"column\",\n overflowX: \"visible\",\n gap: tokens.spacingVerticalL,\n },\n flowStep: {\n position: \"relative\",\n display: \"grid\",\n gridTemplateColumns: \"auto minmax(0, 1fr)\",\n gap: tokens.spacingHorizontalS,\n flex: \"1 0 12rem\",\n minWidth: 0,\n padding: tokens.spacingVerticalM,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}`,\n borderRadius: tokens.borderRadiusMedium,\n backgroundColor: tokens.colorNeutralBackground1,\n \"&:not(:last-child)::after\": {\n content: '\"\"',\n position: \"absolute\",\n top: \"50%\",\n right: `calc(-1 * ${tokens.spacingHorizontalXL})`,\n width: tokens.spacingHorizontalXL,\n height: tokens.strokeWidthThin,\n backgroundColor: tokens.colorNeutralStrokeAccessible,\n },\n },\n flowStepVertical: {\n flexBasis: \"auto\",\n \"&:not(:last-child)::after\": {\n top: \"100%\",\n left: `calc(${tokens.spacingHorizontalM} + 5px)`,\n width: tokens.strokeWidthThin,\n height: tokens.spacingVerticalL,\n },\n },\n flowNode: {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"24px\",\n height: \"24px\",\n borderRadius: tokens.borderRadiusCircular,\n boxShadow: `inset 0 0 0 ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeAccessible}`,\n color: tokens.colorNeutralForeground2,\n backgroundColor: tokens.colorNeutralBackground1,\n fontSize: tokens.fontSizeBase100,\n fontWeight: tokens.fontWeightSemibold,\n },\n flowNodeComplete: {\n boxShadow: `inset 0 0 0 ${tokens.strokeWidthThin} ${tokens.colorPaletteGreenBorderActive}`,\n color: tokens.colorPaletteGreenForeground1,\n backgroundColor: tokens.colorPaletteGreenBackground1,\n },\n flowNodeCurrent: {\n boxShadow: `inset 0 0 0 ${tokens.strokeWidthThin} ${tokens.colorBrandStroke1}`,\n color: tokens.colorNeutralForegroundOnBrand,\n backgroundColor: tokens.colorBrandBackground,\n },\n flowNodeBlocked: {\n boxShadow: `inset 0 0 0 ${tokens.strokeWidthThin} ${tokens.colorPaletteRedBorderActive}`,\n color: tokens.colorPaletteRedForeground1,\n backgroundColor: tokens.colorPaletteRedBackground1,\n },\n flowCopy: { display: \"grid\", alignContent: \"start\", gap: tokens.spacingVerticalXS, minWidth: 0 },\n stagesRoot: { display: \"grid\", gap: tokens.spacingVerticalM, minWidth: 0 },\n stagesList: {\n display: \"grid\",\n gridAutoFlow: \"column\",\n gridAutoColumns: \"minmax(9rem, 1fr)\",\n gap: tokens.spacingHorizontalXS,\n margin: 0,\n padding: 0,\n overflowX: \"auto\",\n listStyle: \"none\",\n },\n stagesListVertical: {\n gridAutoFlow: \"row\",\n gridAutoRows: \"auto\",\n gridAutoColumns: \"unset\",\n },\n stage: {\n display: \"grid\",\n gap: tokens.spacingVerticalXXS,\n minWidth: 0,\n padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalM}`,\n borderTop: `4px solid ${tokens.colorNeutralStroke2}`,\n backgroundColor: tokens.colorNeutralBackground2,\n },\n stageComplete: { borderTopColor: tokens.colorPaletteGreenBorderActive },\n stageCurrent: {\n borderTopColor: tokens.colorBrandStroke1,\n backgroundColor: tokens.colorBrandBackground2,\n },\n stageBlocked: { borderTopColor: tokens.colorPaletteRedBorderActive },\n stageTitle: { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: tokens.spacingHorizontalS },\n stagePosition: { color: tokens.colorNeutralForeground3, fontVariantNumeric: \"tabular-nums\" },\n progressRoot: { display: \"grid\", gap: tokens.spacingVerticalS, minWidth: 0 },\n progressList: {\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: tokens.spacingHorizontalXS,\n margin: 0,\n padding: 0,\n listStyle: \"none\",\n minWidth: 0,\n },\n progressListWithIcon: {\n paddingLeft: `calc(${tokens.fontSizeBase400} + ${tokens.spacingHorizontalXS})`,\n },\n progressStep: { flex: \"0 0 1rem\", width: \"1rem\", maxWidth: \"1rem\", minWidth: \"1rem\" },\n progressMarker: {\n display: \"block\",\n height: tokens.spacingVerticalXS,\n borderRadius: tokens.borderRadiusCircular,\n backgroundColor: tokens.colorNeutralBackground5,\n },\n progressMarkerComplete: { backgroundColor: tokens.colorBrandBackground },\n progressMarkerCurrent: {\n backgroundColor: tokens.colorBrandBackground2,\n boxShadow: `inset 0 0 0 1px ${tokens.colorBrandStroke1}`,\n },\n progressMarkerBlocked: { backgroundColor: tokens.colorPaletteRedBackground3 },\n visuallyHidden: {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: 0,\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n border: 0,\n },\n});\n\nfunction tokenColor(token: SequenceToken): BadgeColor {\n if (token === \"complete\") return \"success\";\n if (token === \"current\") return \"brand\";\n if (token === \"upcoming\") return \"informative\";\n if (token === \"blocked\") return \"danger\";\n if (token === \"skipped\") return \"subtle\";\n return \"informative\";\n}\n\nexport function sequenceItemIcon(icon: string): React.ReactElement | null {\n if (icon === \"not-started\") return <CircleRegular />;\n if (icon === \"completed\") return <CheckmarkCircleRegular />;\n if (icon === \"step\") return <StepsRegular />;\n if (icon === \"event\") return <SparkleRegular />;\n if (icon === \"wait\") return <ClockRegular />;\n if (icon === \"observe\") return <ClipboardEditRegular />;\n return null;\n}\n\nexport const Sequence: ProjectionView = ({ node }) => {\n const styles = useStyles();\n const items = records(node.props.items);\n const spec = (node.props.spec ?? {}) as SequenceSpec;\n const variant = (node.props.variant ?? \"standard\") as SequenceVariant;\n if (!spec.fields || items.length === 0) return <Text {...componentRootProps(node)}>{spec.emptyText ?? \"No sequence data.\"}</Text>;\n const ordered = spec.fields.order ? [...items].sort((left, right) => Number(textAt(left, spec.fields.order)) - Number(textAt(right, spec.fields.order))) : items;\n if (variant === \"progress\") {\n const itemTokens = ordered.map((item) => {\n const status = textAt(item, spec.fields.status);\n return spec.toneMap?.[status] ?? \"unknown\";\n });\n const notStarted = itemTokens.length > 0 && itemTokens.every((token) => token === \"upcoming\");\n const completed = itemTokens.length > 0 && itemTokens.every((token) => token === \"complete\");\n const progressItem = ordered.find((item) => {\n const status = textAt(item, spec.fields.status);\n return (spec.toneMap?.[status] ?? \"unknown\") === \"current\";\n }) ?? [...ordered].reverse().find((item) => {\n const status = textAt(item, spec.fields.status);\n return (spec.toneMap?.[status] ?? \"unknown\") === \"complete\";\n }) ?? ordered[0];\n const showProcessSummary = Boolean(spec.title) && (notStarted || completed);\n const progressTitle = showProcessSummary\n ? spec.title\n : textAt(progressItem, spec.fields.title) || spec.title;\n const progressIcon = showProcessSummary\n ? sequenceItemIcon(completed ? \"completed\" : \"not-started\")\n : spec.fields.icon\n ? sequenceItemIcon(textAt(progressItem, spec.fields.icon))\n : null;\n const progressIconLabel = showProcessSummary ? (completed ? \"Completed\" : \"Not started\") : undefined;\n return <div {...componentRootProps(node, styles.progressRoot)}>\n {progressTitle ? <span className={mergeClasses(styles.itemTitle, styles.progressItemTitle)}>{progressIcon ? <span className={mergeClasses(styles.itemIcon, styles.progressItemIcon)} aria-label={progressIconLabel} title={progressIconLabel}>{progressIcon}</span> : null}<Text size={400} weight=\"semibold\">{progressTitle}</Text></span> : null}\n <ol\n className={mergeClasses(\n styles.progressList,\n progressIcon ? styles.progressListWithIcon : undefined,\n )}\n aria-label={spec.title ?? \"Process progress\"}\n >\n {ordered.map((item, index) => {\n const status = textAt(item, spec.fields.status);\n const token = spec.toneMap?.[status] ?? \"unknown\";\n return <li\n key={textAt(item, spec.fields.id) || index}\n className={styles.progressStep}\n aria-current={token === \"current\" ? \"step\" : undefined}\n title={`${textAt(item, spec.fields.title)}${status ? `: ${status}` : \"\"}`}\n >\n <span className={mergeClasses(\n styles.progressMarker,\n token === \"complete\" && styles.progressMarkerComplete,\n token === \"current\" && styles.progressMarkerCurrent,\n token === \"blocked\" && styles.progressMarkerBlocked,\n )} />\n <span className={styles.visuallyHidden}>\n {textAt(item, spec.fields.title)}{status ? `: ${status}` : \"\"}\n </span>\n </li>;\n })}\n </ol>\n </div>;\n }\n const heading = spec.title || spec.description\n ? <div className={styles.heading}>{spec.title ? <Text weight=\"semibold\" size={500}>{spec.title}</Text> : null}{spec.description ? <Text>{spec.description}</Text> : null}</div>\n : null;\n if (variant === \"compact\") {\n return <section {...componentRootProps(node, styles.stagesRoot)}>\n {heading}\n <ol className={mergeClasses(styles.stagesList, spec.orientation === \"vertical\" && styles.stagesListVertical)}>\n {ordered.map((item, index) => {\n const status = textAt(item, spec.fields.status);\n const token = spec.toneMap?.[status] ?? \"unknown\";\n const icon = spec.fields.icon ? sequenceItemIcon(textAt(item, spec.fields.icon)) : null;\n return <li\n key={textAt(item, spec.fields.id) || index}\n className={mergeClasses(\n styles.stage,\n token === \"complete\" && styles.stageComplete,\n token === \"current\" && styles.stageCurrent,\n token === \"blocked\" && styles.stageBlocked,\n )}\n aria-current={token === \"current\" ? \"step\" : undefined}\n >\n <div className={styles.stageTitle}>\n <Text weight=\"semibold\">{textAt(item, spec.fields.title)}</Text>\n <Text className={styles.stagePosition} size={200}>{index + 1}</Text>\n </div>\n <div className={styles.titleRow}>\n {token ? <Badge appearance=\"tint\" color={tokenColor(token)}>{status}</Badge> : null}\n {icon ? <span className={styles.itemIcon} title={textAt(item, spec.fields.icon)}>{icon}</span> : null}\n </div>\n </li>;\n })}\n </ol>\n </section>;\n }\n return <Card {...componentRootProps(node, styles.root)} appearance=\"outline\">\n {heading ? <CardHeader header={heading} /> : null}\n <ol className={mergeClasses(styles.flowList, spec.orientation === \"vertical\" && styles.flowListVertical)}>\n {ordered.map((item, index) => {\n const status = textAt(item, spec.fields.status);\n const token = spec.toneMap?.[status] ?? \"unknown\";\n const icon = spec.fields.icon ? sequenceItemIcon(textAt(item, spec.fields.icon)) : null;\n return <li\n key={textAt(item, spec.fields.id) || index}\n className={mergeClasses(styles.flowStep, spec.orientation === \"vertical\" && styles.flowStepVertical)}\n aria-current={token === \"current\" ? \"step\" : undefined}\n >\n <span className={mergeClasses(\n styles.flowNode,\n token === \"complete\" && styles.flowNodeComplete,\n token === \"current\" && styles.flowNodeCurrent,\n token === \"blocked\" && styles.flowNodeBlocked,\n )}>{index + 1}</span>\n <div className={styles.flowCopy}>\n <div className={styles.titleRow}>\n <span className={styles.itemTitle}>\n {icon ? <span className={styles.itemIcon}>{icon}</span> : null}\n <Text weight=\"semibold\">{textAt(item, spec.fields.title)}</Text>\n </span>\n {token ? <Badge appearance=\"tint\" color={tokenColor(token)}>{status}</Badge> : null}\n </div>\n {spec.fields.reference && textAt(item, spec.fields.reference) ? <Text size={200}>{textAt(item, spec.fields.reference)}</Text> : null}\n {spec.fields.detail && textAt(item, spec.fields.detail) ? <Text className={styles.detail}>{textAt(item, spec.fields.detail)}</Text> : null}\n </div>\n </li>;\n })}\n </ol>\n </Card>;\n};\n\nexport function getSequenceSchema(): Record<string, unknown> { return sequencePropsSchema as unknown as Record<string, unknown>; }\nexport function validateSequence(props: unknown): ComponentValidationReport {\n return runDeclarativeValidators([{ kind: \"ajv-schema\", schema: getSequenceSchema(), message: \"Invalid sequence renderer props\", code: \"sequence-schema\" }], props as Json);\n}","import type { CapabilityDescriptor } from \"@gik-ai/kernel\";\nimport type { ProjectionView } from \"@gik-ai/react\";\n\nimport { Argument, argumentDefinition } from \"./argument\";\nimport { Assessment, assessmentDefinition } from \"./assessment\";\nimport { ChangeProposal, changeProposalDefinition } from \"./change-proposal\";\nimport { ConsistencyCase, consistencyCaseDefinition } from \"./consistency-case\";\nimport { FindingSet, findingSetDefinition } from \"./finding-set\";\nimport { MeasureSet, measureSetDefinition } from \"./measure-set\";\nimport { Milestones, milestonesDefinition } from \"./milestones\";\nimport { Narrative, narrativeDefinition } from \"./narrative\";\nimport { RelationshipSet, relationshipSetDefinition } from \"./relationship-set\";\nimport { WorkSet, workSetDefinition } from \"./work-set\";\nimport {\n Decision, EntitySet, EventSeries, EvidenceCase, Process,\n decisionDefinition, entitySetDefinition, eventSeriesDefinition,\n evidenceCaseDefinition, processDefinition,\n} from \"./canonical-adapters\";\n\nexport const semanticComponentViews: Record<string, ProjectionView> = {\n argument: Argument,\n assessment: Assessment,\n \"change-proposal\": ChangeProposal,\n \"consistency-case\": ConsistencyCase,\n \"finding-set\": FindingSet,\n \"measure-set\": MeasureSet,\n milestones: Milestones,\n narrative: Narrative,\n \"relationship-set\": RelationshipSet,\n \"work-set\": WorkSet,\n \"event-series\": EventSeries,\n process: Process,\n \"entity-set\": EntitySet,\n \"evidence-case\": EvidenceCase,\n decision: Decision,\n};\n\nexport const semanticComponentDefinitions = {\n argument: argumentDefinition,\n assessment: assessmentDefinition,\n \"change-proposal\": changeProposalDefinition,\n \"consistency-case\": consistencyCaseDefinition,\n \"finding-set\": findingSetDefinition,\n \"measure-set\": measureSetDefinition,\n milestones: milestonesDefinition,\n narrative: narrativeDefinition,\n \"relationship-set\": relationshipSetDefinition,\n \"work-set\": workSetDefinition,\n \"event-series\": eventSeriesDefinition,\n process: processDefinition,\n \"entity-set\": entitySetDefinition,\n \"evidence-case\": evidenceCaseDefinition,\n decision: decisionDefinition,\n} as const;\n\nexport const semanticComponentCapabilities: Record<string, CapabilityDescriptor> = Object.fromEntries(\n Object.entries(semanticComponentDefinitions).map(([name, definition]) => [name, {\n propsSchema: definition.getSchema(),\n dataProp: definition.dataProp,\n emits: [...definition.events],\n }])\n);","import type { ComponentValidationReport } from \"../shared/definition\";\nimport {\n createComponentAuthoringApi,\n type ComponentAgentKit,\n type ComponentAuthoringDescription,\n type ComponentAuthoringTool,\n type ComponentCatalogEntry,\n type ComponentPreflightReport,\n} from \"../shared/component-authoring-internal\";\nimport { semanticComponentDefinitions } from \"./registry\";\n\nexport interface SemanticComponentCatalogEntry extends ComponentCatalogEntry {}\nexport interface SemanticComponentAuthoringDescription extends ComponentAuthoringDescription {}\nexport type { ComponentAuthoringTool };\nexport interface SemanticComponentPreflightReport extends ComponentPreflightReport {}\nexport interface SemanticComponentAgentKit extends ComponentAgentKit {}\n\nconst api = createComponentAuthoringApi({\n definitions: semanticComponentDefinitions,\n kind: \"semantic\",\n toolKind: \"Semantic\",\n});\n\nexport const listSemanticComponents = (): SemanticComponentCatalogEntry[] => api.list();\n\nexport const describeSemanticComponent = (\n capability: string,\n): SemanticComponentAuthoringDescription => api.describe(capability);\n\nexport const validateSemanticComponentProps = (\n capability: string,\n props: unknown,\n): ComponentValidationReport => api.validate(capability, props);\n\nexport const materializeSemanticComponentTrial = api.materialize;\n\nexport const preflightSemanticComponent = (\n capability: string,\n props: unknown,\n): SemanticComponentPreflightReport => api.preflight(capability, props);\n\nexport const getSemanticComponentAgentInstructions = api.instructions;\n\nexport const createSemanticComponentAuthoringTools = (\n components?: readonly string[],\n): ComponentAuthoringTool[] => api.createTools(components);\n\nexport const getSemanticComponentAgentKit = (\n components?: readonly string[],\n): SemanticComponentAgentKit => api.getKit(components);\n\nexport const semanticComponentAuthoringTools = createSemanticComponentAuthoringTools();"],"mappings":"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","names":["Badge","Card","Text","makeStyles","tokens","runDeclarativeValidators","jsx","jsxs","ARGUMENT_SEMANTIC_TOKENS","ARGUMENT_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","roleColor","role","claimRole","claim","textAt","relationKind","relation","Argument","node","styles","argument","asRecord","claims","records","relations","spec","variant","Text","componentRootProps","byId","root","header","outgoing","Card","Badge","graph","GraphDiagram","componentNode","description","getArgumentSchema","validateArgument","props","runDeclarativeValidators","materializeArgumentTrial","trialNode","argumentDefinition","defineComponent","Badge","Card","Divider","Text","makeStyles","tokens","runDeclarativeValidators","Fragment","jsx","jsxs","ASSESSMENT_SEMANTIC_TOKENS","ASSESSMENT_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","tone","token","Assessment","node","styles","record","asRecord","spec","variant","Text","componentRootProps","status","textAt","checks","records","root","Card","Badge","Divider","check","index","outcome","checkToken","description","getAssessmentSchema","validateAssessment","props","runDeclarativeValidators","materializeAssessmentTrial","trialNode","assessmentDefinition","defineComponent","Badge","Button","Card","Divider","Text","makeStyles","tokens","runDeclarativeValidators","Fragment","jsx","jsxs","CHANGE_PROPOSAL_SEMANTIC_TOKENS","CHANGE_PROPOSAL_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","tone","token","ChangeProposal","node","emit","styles","record","asRecord","spec","variant","Text","componentRootProps","status","textAt","id","changes","records","references","root","Card","Badge","Divider","change","index","ref","Button","description","eventContract","getChangeProposalSchema","validateChangeProposal","props","runDeclarativeValidators","materializeChangeProposalTrial","trialNode","changeProposalDefinition","defineComponent","Badge","Card","Divider","Text","makeStyles","tokens","runDeclarativeValidators","Fragment","jsx","jsxs","CONSISTENCY_CASE_SEMANTIC_TOKENS","CONSISTENCY_CASE_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","tone","token","ConsistencyCase","node","styles","record","asRecord","spec","variant","Text","componentRootProps","outcome","textAt","subjects","records","evidence","root","Card","Badge","Divider","subject","index","ref","description","getConsistencyCaseSchema","validateConsistencyCase","props","report","runDeclarativeValidators","value","fields","name","materializeConsistencyCaseTrial","trialNode","consistencyCaseDefinition","defineComponent","Badge","Card","Text","makeStyles","tokens","runDeclarativeValidators","jsx","jsxs","FINDING_SET_SEMANTIC_TOKENS","FINDING_SET_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","severityColor","token","refs","finding","path","value","current","segment","entry","FindingSet","node","styles","findings","records","spec","variant","Text","componentRootProps","header","root","index","textAt","severity","Card","Badge","confidence","affected","evidence","ref","description","getFindingSetSchema","validateFindingSet","props","runDeclarativeValidators","materializeFindingSetTrial","trialNode","findingSetDefinition","defineComponent","Badge","Card","Text","makeStyles","tokens","runDeclarativeValidators","jsx","jsxs","MEASURE_SET_SEMANTIC_TOKENS","MEASURE_SET_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","color","token","orderedMeasures","measures","orderField","left","right","textAt","formattedValue","measure","spec","MeasureSet","node","styles","records","variant","Text","componentRootProps","ordered","root","title","index","toneValue","delta","Card","Badge","description","getMeasureSetSchema","validateMeasureSet","props","runDeclarativeValidators","materializeMeasureSetTrial","trialNode","measureSetDefinition","defineComponent","Badge","Card","Text","makeStyles","tokens","runDeclarativeValidators","React","Badge","Card","CardHeader","Text","makeStyles","mergeClasses","tokens","runDeclarativeValidators","jsx","jsxs","MAX_TIMELINE_TICKS","MAX_COORDINATE_TICKS","TIMELINE_SEMANTIC_TOKENS","TIMELINE_VARIANTS","timelinePropsSchema","componentStylePropsSchema","useStyles","makeStyles","tokens","asObject","value","badgeColor","token","sortItems","items","fields","direction","scale","multiplier","left","right","parseCoordinate","readPath","renderAxisTimeline","spec","styles","events","item","index","rawCoordinate","formatCoordinate","event","Text","minimum","maximum","span","tickStep","ticks","_","tick","React","formatAxisCoordinate","above","mergeClasses","Timeline","node","variant","componentRootProps","ordered","Card","CardHeader","id","status","Badge","getTimelineSchema","validateTimeline","props","report","runDeclarativeValidators","coordinates","domainMinimum","domainMaximum","invalid","coordinate","invalidDomain","invalidTickCount","jsx","jsxs","MILESTONE_SEMANTIC_TOKENS","MILESTONE_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","color","token","orderedMilestones","items","spec","left","right","textAt","direction","timelineProps","props","variant","toneMap","value","Milestones","node","emit","styles","milestones","records","Text","componentRootProps","Timeline","componentNode","ordered","header","root","milestone","status","Card","Badge","markerClass","description","getMilestonesSchema","validateMilestones","report","runDeclarativeValidators","validateTimeline","materializeMilestonesTrial","trialNode","milestonesDefinition","defineComponent","React","Badge","Card","Divider","Text","makeStyles","tokens","runDeclarativeValidators","jsx","jsxs","NARRATIVE_SEMANTIC_TOKENS","NARRATIVE_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","color","token","orderedSections","sections","orderField","left","right","textAt","outlineDepth","section","byId","spec","parentId","depth","visited","sectionBadge","role","toneValue","Badge","Narrative","node","styles","records","variant","Text","componentRootProps","ordered","title","root","Card","index","React","Divider","description","getNarrativeSchema","validateNarrative","props","runDeclarativeValidators","materializeNarrativeTrial","trialNode","narrativeDefinition","defineComponent","Text","runDeclarativeValidators","jsx","jsxs","WORK_SET_VARIANTS","schema","componentStylePropsSchema","orderedItems","items","orderField","left","right","textAt","WorkSet","node","emit","records","spec","variant","Text","componentRootProps","CollectionBoard","componentNode","group","ordered","lines","item","title","detail","line","index","description","collectionBoardDefinition","getWorkSetSchema","validateWorkSet","props","runDeclarativeValidators","materializeWorkSetTrial","trialNode","workSetDefinition","defineComponent","Card","Text","makeStyles","tokens","runDeclarativeValidators","Badge","Card","CardHeader","Divider","Text","makeStyles","mergeClasses","tokens","runDeclarativeValidators","Fragment","jsx","jsxs","DECISION_SUMMARY_SEMANTIC_TOKENS","DECISION_SUMMARY_VARIANTS","decisionSummaryPropsSchema","componentStylePropsSchema","useStyles","makeStyles","tokens","tokenColor","token","DecisionSummary","node","styles","decision","asRecord","spec","variant","Text","componentRootProps","outcome","textAt","toneValue","facts","Card","mergeClasses","CardHeader","Badge","Divider","label","field","getDecisionSummarySchema","validateDecisionSummary","props","runDeclarativeValidators","Badge","Card","CardHeader","Text","makeStyles","mergeClasses","tokens","runDeclarativeValidators","jsx","jsxs","ENTITY_CONSTELLATION_SEMANTIC_TOKENS","ENTITY_CONSTELLATION_VARIANTS","entityConstellationPropsSchema","componentStylePropsSchema","useStyles","makeStyles","tokens","tokenColor","token","groupValues","items","spec","item","textAt","value","EntityConstellation","node","styles","records","variant","Text","componentRootProps","mergeClasses","group","members","Badge","index","status","Card","CardHeader","getEntityConstellationSchema","validateEntityConstellation","props","runDeclarativeValidators","Badge","Card","Text","makeStyles","mergeClasses","tokens","runDeclarativeValidators","jsx","jsxs","EVIDENCE_TRAIL_SEMANTIC_TOKENS","EVIDENCE_TRAIL_VARIANTS","schema","componentStylePropsSchema","useStyles","makeStyles","tokens","color","token","EvidenceTrail","node","styles","evidence","records","spec","compact","Text","componentRootProps","item","index","toneValue","textAt","Card","mergeClasses","Badge","getEvidenceTrailSchema","validateEvidenceTrail","props","runDeclarativeValidators","Badge","Card","CardHeader","Text","makeStyles","mergeClasses","tokens","CheckmarkCircleRegular","CircleRegular","ClipboardEditRegular","ClockRegular","SparkleRegular","StepsRegular","runDeclarativeValidators","jsx","jsxs","SEQUENCE_SEMANTIC_TOKENS","SEQUENCE_VARIANTS","sequencePropsSchema","componentStylePropsSchema","SEQUENCE_VARIANTS","SEQUENCE_SEMANTIC_TOKENS","useStyles","makeStyles","tokens","tokenColor","token","sequenceItemIcon","icon","jsx","CircleRegular","CheckmarkCircleRegular","StepsRegular","SparkleRegular","ClockRegular","ClipboardEditRegular","Sequence","node","styles","items","records","spec","variant","Text","componentRootProps","ordered","left","right","textAt","itemTokens","item","status","notStarted","completed","progressItem","showProcessSummary","progressTitle","progressIcon","progressIconLabel","jsxs","mergeClasses","index","heading","Badge","Card","CardHeader","getSequenceSchema","validateSequence","props","runDeclarativeValidators","jsx","jsxs","densitySchema","canonicalSchema","baseSchema","variants","schema","delegatedProps","props","variant","spec","canonicalVariant","defaultVariant","mappedVariant","density","mapped","delegate","Component","node","emit","componentNode","validateCanonical","capability","map","validateLegacy","report","runDeclarativeValidators","textItems","dataProp","labelField","detailField","items","records","Text","componentRootProps","item","index","label","textAt","detail","definition","description","component","validate","materializeTrial","defineComponent","values","value","EVENT_SERIES_VARIANTS","eventSeriesSchema","getTimelineSchema","eventSeriesMap","EventSeries","Timeline","eventSeriesDescription","TIMELINE_SEMANTIC_TOKENS","materializeEventSeriesTrial","trialNode","eventSeriesDefinition","validateTimeline","PROCESS_VARIANTS","processSchema","getSequenceSchema","processMap","useProcessTextStyles","makeStyles","tokens","Process","Sequence","styles","fields","title","status","token","marker","markerLabel","processDescription","SEQUENCE_SEMANTIC_TOKENS","materializeProcessTrial","processDefinition","validateSequence","ENTITY_SET_VARIANTS","entitySetSchema","getEntityConstellationSchema","entityFields","EntitySet","EntityConstellation","Card","entitySetDescription","ENTITY_CONSTELLATION_SEMANTIC_TOKENS","materializeEntitySetTrial","entitySetDefinition","validateEntityConstellation","EVIDENCE_CASE_VARIANTS","evidenceCaseSchema","getEvidenceTrailSchema","EvidenceCase","EvidenceTrail","evidenceCaseDescription","EVIDENCE_TRAIL_SEMANTIC_TOKENS","materializeEvidenceCaseTrial","evidenceCaseDefinition","validateEvidenceTrail","DECISION_VARIANTS","decisionSchema","getDecisionSummarySchema","Decision","DecisionSummary","decision","decisionDescription","DECISION_SUMMARY_SEMANTIC_TOKENS","materializeDecisionTrial","decisionDefinition","validateDecisionSummary","semanticComponentViews","Argument","Assessment","ChangeProposal","ConsistencyCase","FindingSet","MeasureSet","Milestones","Narrative","RelationshipSet","WorkSet","EventSeries","Process","EntitySet","EvidenceCase","Decision","semanticComponentDefinitions","argumentDefinition","assessmentDefinition","changeProposalDefinition","consistencyCaseDefinition","findingSetDefinition","measureSetDefinition","milestonesDefinition","narrativeDefinition","relationshipSetDefinition","workSetDefinition","eventSeriesDefinition","processDefinition","entitySetDefinition","evidenceCaseDefinition","decisionDefinition","semanticComponentCapabilities","name","definition","api","createComponentAuthoringApi","semanticComponentDefinitions","listSemanticComponents","describeSemanticComponent","capability","validateSemanticComponentProps","props","materializeSemanticComponentTrial","preflightSemanticComponent","getSemanticComponentAgentInstructions","createSemanticComponentAuthoringTools","components","getSemanticComponentAgentKit","semanticComponentAuthoringTools"]}