diff --git a/.gitignore b/.gitignore index e6cfa118..7a3d7918 100644 --- a/.gitignore +++ b/.gitignore @@ -233,3 +233,7 @@ package.json package-lock.json .worktrees/ .gstack/ + +# graphify knowledge graph outputs +graphify-out/ +.graphify_python diff --git a/frontend/src/components/assistant/ChatMessage.tsx b/frontend/src/components/assistant/ChatMessage.tsx index 0cba31c7..d905aada 100644 --- a/frontend/src/components/assistant/ChatMessage.tsx +++ b/frontend/src/components/assistant/ChatMessage.tsx @@ -17,7 +17,7 @@ export function ChatMessage({ role, content, suggestedFlows }: ChatMessageProps) className={`shrink-0 w-8 h-8 rounded-full flex items-center justify-center ${ role === 'assistant' ? 'bg-primary/15 text-primary' - : 'bg-white/[0.08] text-muted-foreground' + : 'bg-elevated text-muted-foreground' }`} > {role === 'assistant' ? : } diff --git a/frontend/src/components/assistant/ChatSidebar.tsx b/frontend/src/components/assistant/ChatSidebar.tsx index bea51f18..831677cf 100644 --- a/frontend/src/components/assistant/ChatSidebar.tsx +++ b/frontend/src/components/assistant/ChatSidebar.tsx @@ -193,7 +193,7 @@ function ChatItem({ className={cn( 'group flex items-center gap-2 px-3 py-2.5 mx-1.5 rounded-lg cursor-pointer transition-colors', confirming - ? 'bg-rose-500/10 border border-rose-500/20' + ? 'bg-danger-dim border border-danger/20' : isActive ? 'bg-accent-dim text-foreground' : 'text-muted-foreground hover:bg-input hover:text-foreground' @@ -203,10 +203,10 @@ function ChatItem({
{confirming ? (
- Delete? + Delete? @@ -230,14 +230,14 @@ function ChatItem({
{error && ( -
+
{error}
)} @@ -410,7 +410,7 @@ export function ConcludeSessionModal({
) : streamError ? ( -
+
{streamError}
@@ -467,7 +467,7 @@ export function ConcludeSessionModal({ {/* Paused/Escalated: generating spinner */} {(outcome === 'paused' || outcome === 'escalated') && generatingUpdate && (
- +

Generating status update...

)} @@ -544,7 +544,7 @@ export function ConcludeSessionModal({ {outcome === 'paused' && ( @@ -193,7 +193,7 @@ export function FlowPilotActionBar({ diff --git a/frontend/src/components/flowpilot/FlowPilotIntake.tsx b/frontend/src/components/flowpilot/FlowPilotIntake.tsx index a0ff603c..5946dfac 100644 --- a/frontend/src/components/flowpilot/FlowPilotIntake.tsx +++ b/frontend/src/components/flowpilot/FlowPilotIntake.tsx @@ -155,7 +155,7 @@ export function FlowPilotIntake({ onSubmit, isLoading, defaultProblem }: FlowPil
@@ -215,7 +215,7 @@ export function FlowPilotIntake({ onSubmit, isLoading, defaultProblem }: FlowPil Pull from Ticket {psaChecked && !psaConnection && ( - + No PSA connected diff --git a/frontend/src/components/flowpilot/FlowPilotMessageBar.tsx b/frontend/src/components/flowpilot/FlowPilotMessageBar.tsx index 88794982..adbe3478 100644 --- a/frontend/src/components/flowpilot/FlowPilotMessageBar.tsx +++ b/frontend/src/components/flowpilot/FlowPilotMessageBar.tsx @@ -243,17 +243,17 @@ export function FlowPilotMessageBar({ onRespond, disabled = false, isProcessing )} {upload.status === 'error' && (
retryUpload(upload.id)} > - +
)}
diff --git a/frontend/src/components/flowpilot/FlowPilotSession.tsx b/frontend/src/components/flowpilot/FlowPilotSession.tsx index b3693feb..70697ff6 100644 --- a/frontend/src/components/flowpilot/FlowPilotSession.tsx +++ b/frontend/src/components/flowpilot/FlowPilotSession.tsx @@ -148,7 +148,7 @@ export function FlowPilotSession({
diff --git a/frontend/src/components/flowpilot/InSessionScriptGenerator.tsx b/frontend/src/components/flowpilot/InSessionScriptGenerator.tsx index 1ea639d6..d46880a1 100644 --- a/frontend/src/components/flowpilot/InSessionScriptGenerator.tsx +++ b/frontend/src/components/flowpilot/InSessionScriptGenerator.tsx @@ -128,7 +128,7 @@ export function InSessionScriptGenerator({ onClick={handleCopy} className="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors" > - {copied ? : } + {copied ? : } {copied ? 'Copied' : 'Copy'}
diff --git a/frontend/src/components/flowpilot/ProposalCard.tsx b/frontend/src/components/flowpilot/ProposalCard.tsx index 466eb855..183f9b4f 100644 --- a/frontend/src/components/flowpilot/ProposalCard.tsx +++ b/frontend/src/components/flowpilot/ProposalCard.tsx @@ -2,9 +2,9 @@ import { GitBranch, ArrowUpRight, Sparkles, Clock, Hash } from 'lucide-react' import type { FlowProposalSummary } from '@/types/flow-proposal' const TYPE_CONFIG = { - new_flow: { label: 'New Flow', color: 'text-emerald-400 bg-emerald-400/10 border-emerald-400/20', icon: Sparkles }, - enhancement: { label: 'Enhancement', color: 'text-amber-400 bg-amber-400/10 border-amber-400/20', icon: ArrowUpRight }, - branch_addition: { label: 'Branch', color: 'text-blue-400 bg-blue-400/10 border-blue-400/20', icon: GitBranch }, + new_flow: { label: 'New Flow', color: 'text-success bg-emerald-400/10 border-emerald-400/20', icon: Sparkles }, + enhancement: { label: 'Enhancement', color: 'text-warning bg-warning-dim border-warning/20', icon: ArrowUpRight }, + branch_addition: { label: 'Branch', color: 'text-accent bg-accent-dim border-accent/20', icon: GitBranch }, auto_reinforced: { label: 'Reinforced', color: 'text-muted-foreground bg-card border-border', icon: Sparkles }, } as const diff --git a/frontend/src/components/flowpilot/ProposalDetail.tsx b/frontend/src/components/flowpilot/ProposalDetail.tsx index 9b343e86..358310fd 100644 --- a/frontend/src/components/flowpilot/ProposalDetail.tsx +++ b/frontend/src/components/flowpilot/ProposalDetail.tsx @@ -105,7 +105,7 @@ export function ProposalDetail({ proposal, onReview }: ProposalDetailProps) { {proposal.proposed_diff && (() => { const diff = proposal.proposed_diff as { diff_description?: string; new_nodes?: Array<{ title?: string; question?: string; description?: string }> } return ( -
+

Proposed Changes

{diff.diff_description && (

{diff.diff_description}

@@ -114,8 +114,8 @@ export function ProposalDetail({ proposal, onReview }: ProposalDetailProps) {

New nodes:

{diff.new_nodes.map((node, i) => ( -
- + +
+ + {node.title || node.question || node.description || 'New node'}
))} @@ -196,7 +196,7 @@ export function ProposalDetail({ proposal, onReview }: ProposalDetailProps) { diff --git a/frontend/src/components/flowpilot/SimilarSessions.tsx b/frontend/src/components/flowpilot/SimilarSessions.tsx index f1f20004..4970b230 100644 --- a/frontend/src/components/flowpilot/SimilarSessions.tsx +++ b/frontend/src/components/flowpilot/SimilarSessions.tsx @@ -80,9 +80,9 @@ export function SimilarSessions({ sessionId }: SimilarSessionsProps) { className={cn( 'text-[0.5rem] font-sans text-xs uppercase', session.status === 'resolved' - ? 'text-emerald-400' + ? 'text-success' : session.status === 'escalated' - ? 'text-amber-400' + ? 'text-warning' : 'text-muted-foreground' )} > diff --git a/frontend/src/components/flowpilot/StatusUpdateModal.tsx b/frontend/src/components/flowpilot/StatusUpdateModal.tsx index 4279807e..c08213cb 100644 --- a/frontend/src/components/flowpilot/StatusUpdateModal.tsx +++ b/frontend/src/components/flowpilot/StatusUpdateModal.tsx @@ -168,7 +168,7 @@ export function StatusUpdateModal({ open, onClose, onGenerate, context = 'status {/* Step 3: Generating */} {step === 'generating' && (
- +

Generating {audience === 'email_draft' ? 'email draft' : audience === 'client_update' ? 'client update' : 'ticket notes'}...

@@ -180,7 +180,7 @@ export function StatusUpdateModal({ open, onClose, onGenerate, context = 'status
{/* Meta badges */}
- + {AUDIENCES.find(a => a.value === result.audience)?.label} @@ -208,8 +208,8 @@ export function StatusUpdateModal({ open, onClose, onGenerate, context = 'status className={cn( 'flex items-center gap-2 rounded-lg px-4 py-2 min-h-[44px] text-sm font-medium transition-colors', copied - ? 'bg-emerald-500/20 border border-emerald-500/30 text-emerald-400' - : 'bg-blue-500/10 border border-blue-500/20 text-blue-400 hover:bg-blue-500/20' + ? 'bg-success/20 border border-success/30 text-success' + : 'bg-accent-dim border border-accent/20 text-accent hover:bg-accent/20' )} > {copied ? : } diff --git a/frontend/src/components/script-builder/ScriptBuilderChat.tsx b/frontend/src/components/script-builder/ScriptBuilderChat.tsx index 875b2803..e90efae7 100644 --- a/frontend/src/components/script-builder/ScriptBuilderChat.tsx +++ b/frontend/src/components/script-builder/ScriptBuilderChat.tsx @@ -57,7 +57,7 @@ export function ScriptBuilderChat({ > {msg.role === 'assistant' && (
- +
)} @@ -99,10 +99,10 @@ export function ScriptBuilderChat({ {isLoading && (
- +
- + Generating script...
diff --git a/frontend/src/components/script-builder/ScriptCodeBlock.tsx b/frontend/src/components/script-builder/ScriptCodeBlock.tsx index 9b9eb487..fcee8b63 100644 --- a/frontend/src/components/script-builder/ScriptCodeBlock.tsx +++ b/frontend/src/components/script-builder/ScriptCodeBlock.tsx @@ -55,7 +55,7 @@ export function ScriptCodeBlock({
{/* Header */}
- + {filename || 'script'} {lineCount != null && ( @@ -110,14 +110,14 @@ export function ScriptCodeBlock({ "bg-[rgba(255,255,255,0.04)] border border-[rgba(255,255,255,0.06)] text-foreground hover:border-[rgba(255,255,255,0.12)]" )} > - {copied ? : } + {copied ? : } {copied ? 'Copied' : 'Copy'}
)} {upload.status === 'done' && ( - )} {upload.status === 'error' && ( -
retryUpload(upload.id)}> - +
retryUpload(upload.id)}> +
)}
@@ -755,11 +755,11 @@ export default function AssistantChatPage() { )} {messages.length >= 2 && ( <> - - diff --git a/frontend/src/pages/FlowPilotSessionPage.tsx b/frontend/src/pages/FlowPilotSessionPage.tsx index 55927daf..0d9dd91c 100644 --- a/frontend/src/pages/FlowPilotSessionPage.tsx +++ b/frontend/src/pages/FlowPilotSessionPage.tsx @@ -108,7 +108,7 @@ export default function FlowPilotSessionPage() { return (
-

{fp.error}

+

{fp.error}

@@ -196,8 +196,8 @@ export default function FlowPilotSessionPage() {
- - + +

Active Session

@@ -207,7 +207,7 @@ export default function FlowPilotSessionPage() {
@@ -246,7 +246,7 @@ export default function FlowPilotSessionPage() { @@ -473,7 +473,7 @@ export default function FlowPilotSessionPage() { } }} disabled={submitting} - className="rounded-lg bg-rose-500/20 border border-rose-500/30 px-4 py-2 min-h-[44px] text-sm font-medium text-rose-400 hover:bg-rose-500/30 disabled:opacity-50 transition-colors" + className="rounded-lg bg-danger/20 border border-danger/30 px-4 py-2 min-h-[44px] text-sm font-medium text-danger hover:bg-danger/30 disabled:opacity-50 transition-colors" > {submitting ? 'Closing...' : 'Close Session'}