Files
temetro/.agents/skills/ai-elements/scripts/commit.tsx
T
Khalid Abdi 929bec8f31 feat: AI-added records save with placeholders + "Added by AI" provenance
Stop blocking AI imports/proposals on missing non-critical fields. Records
the chat agent drafts now save with safe placeholders, auto-generated file
numbers, and a source="ai" marker that surfaces an "Added by AI" badge so a
clinician can review/edit them later.

Backend:
- add `source` (manual|ai) column to patients/appointments/prescriptions
  (migration 0014) + canonical types, services, validation schemas
- relax patient/appointment validation: empty file number allowed, demographic
  + type/provider/initials fall back to placeholders (initials derived from name)
- patients.generateFileNumber() auto-assigns an MRN when one is missing
- proposeAppointment accepts a name when no file number resolves; AI commits +
  /api/ai/import stamp source="ai"

Frontend:
- `source` on Appointment/Patient/Prescription types; AI commits send source="ai"
- reusable <AiBadge> shown on the Patients table/detail and prescriptions list

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 19:27:17 +03:00

95 lines
2.1 KiB
TypeScript

"use client";
import {
Commit,
CommitActions,
CommitAuthor,
CommitAuthorAvatar,
CommitContent,
CommitCopyButton,
CommitFile,
CommitFileAdditions,
CommitFileChanges,
CommitFileDeletions,
CommitFileIcon,
CommitFileInfo,
CommitFilePath,
CommitFileStatus,
CommitFiles,
CommitHash,
CommitHeader,
CommitInfo,
CommitMessage,
CommitMetadata,
CommitSeparator,
CommitTimestamp,
} from "@/components/ai-elements/commit";
const handleCopy = () => {
console.log("Copied hash!");
};
const hash = "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0";
const timestamp = new Date(Date.now() - 1000 * 60 * 60 * 2);
const files = [
{
additions: 150,
deletions: 0,
path: "src/auth/login.tsx",
status: "added" as const,
},
{
additions: 45,
deletions: 0,
path: "src/auth/logout.tsx",
status: "added" as const,
},
{
additions: 23,
deletions: 8,
path: "src/lib/session.ts",
status: "modified" as const,
},
];
const Example = () => (
<Commit>
<CommitHeader>
<CommitAuthor>
<CommitAuthorAvatar initials="HB" />
</CommitAuthor>
<CommitInfo>
<CommitMessage>feat: Add user authentication flow</CommitMessage>
<CommitMetadata>
<CommitHash>{hash.slice(0, 7)}</CommitHash>
<CommitSeparator />
<CommitTimestamp date={timestamp} />
</CommitMetadata>
</CommitInfo>
<CommitActions>
<CommitCopyButton hash={hash} onCopy={handleCopy} />
</CommitActions>
</CommitHeader>
<CommitContent>
<CommitFiles>
{files.map((file) => (
<CommitFile key={file.path}>
<CommitFileInfo>
<CommitFileStatus status={file.status} />
<CommitFileIcon />
<CommitFilePath>{file.path}</CommitFilePath>
</CommitFileInfo>
<CommitFileChanges>
<CommitFileAdditions count={file.additions} />
<CommitFileDeletions count={file.deletions} />
</CommitFileChanges>
</CommitFile>
))}
</CommitFiles>
</CommitContent>
</Commit>
);
export default Example;