agentfit 0.1.3 → 0.1.6

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 (42) hide show
  1. package/.github/workflows/release.yml +4 -0
  2. package/README.md +0 -2
  3. package/app/(dashboard)/ai-insights/page.tsx +271 -0
  4. package/app/(dashboard)/models/page.tsx +21 -0
  5. package/app/(dashboard)/page.tsx +2 -0
  6. package/app/(dashboard)/sessions/[id]/page.tsx +16 -2
  7. package/app/(dashboard)/settings/page.tsx +168 -0
  8. package/app/api/analyze/aggregate/route.ts +88 -0
  9. package/app/api/analyze/estimate/route.ts +62 -0
  10. package/app/api/analyze/route.ts +142 -0
  11. package/app/api/cc-versions/route.ts +84 -0
  12. package/app/api/config/route.ts +35 -0
  13. package/bin/agentfit.mjs +18 -8
  14. package/components/analyze-confirm-dialog.tsx +81 -0
  15. package/components/app-sidebar.tsx +14 -0
  16. package/components/data-provider.tsx +4 -2
  17. package/components/model-usage-chart.tsx +216 -0
  18. package/components/overview-cards.tsx +1 -1
  19. package/components/session-ai-analysis.tsx +318 -0
  20. package/components/sessions-table.tsx +169 -15
  21. package/components/version-lag-chart.tsx +284 -0
  22. package/electron/main.mjs +61 -34
  23. package/generated/prisma/browser.ts +5 -0
  24. package/generated/prisma/client.ts +5 -0
  25. package/generated/prisma/internal/class.ts +14 -4
  26. package/generated/prisma/internal/prismaNamespace.ts +95 -2
  27. package/generated/prisma/internal/prismaNamespaceBrowser.ts +19 -1
  28. package/generated/prisma/models/Session.ts +57 -1
  29. package/generated/prisma/models/SessionAnalysis.ts +1321 -0
  30. package/generated/prisma/models.ts +1 -0
  31. package/lib/config.ts +45 -0
  32. package/lib/openai.ts +253 -0
  33. package/lib/parse-codex.ts +2 -0
  34. package/lib/parse-logs.ts +21 -7
  35. package/lib/queries.ts +5 -1
  36. package/lib/sync.ts +17 -5
  37. package/package.json +2 -1
  38. package/prisma/migrations/20260404151230_add_session_analysis/migration.sql +18 -0
  39. package/prisma/migrations/20260405230736_add_cli_version/migration.sql +41 -0
  40. package/prisma/migrations/20260406205546_add_model_counts/migration.sql +42 -0
  41. package/prisma/schema.prisma +16 -0
  42. package/prisma/schema.sql +21 -0
package/prisma/schema.sql CHANGED
@@ -26,6 +26,8 @@ CREATE TABLE IF NOT EXISTS "Session" (
26
26
  "userInterruptions" INTEGER NOT NULL DEFAULT 0,
27
27
  "permissionModesJson" TEXT NOT NULL DEFAULT '{}',
28
28
  "systemPromptEdits" INTEGER NOT NULL DEFAULT 0,
29
+ "cliVersion" TEXT NOT NULL DEFAULT 'unknown',
30
+ "modelCountsJson" TEXT NOT NULL DEFAULT '{}',
29
31
  "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
30
32
  );
31
33
 
@@ -61,6 +63,19 @@ CREATE TABLE IF NOT EXISTS "Report" (
61
63
  "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
62
64
  );
63
65
 
66
+ -- CreateTable
67
+ CREATE TABLE IF NOT EXISTS "SessionAnalysis" (
68
+ "id" TEXT NOT NULL PRIMARY KEY,
69
+ "sessionId" TEXT NOT NULL,
70
+ "model" TEXT NOT NULL,
71
+ "classifications" TEXT NOT NULL,
72
+ "totalMessages" INTEGER NOT NULL,
73
+ "inputTokens" INTEGER NOT NULL,
74
+ "outputTokens" INTEGER NOT NULL,
75
+ "costUSD" REAL NOT NULL,
76
+ "analyzedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
77
+ );
78
+
64
79
  -- CreateIndex
65
80
  CREATE UNIQUE INDEX IF NOT EXISTS "Session_sessionId_key" ON "Session"("sessionId");
66
81
 
@@ -79,3 +94,9 @@ CREATE UNIQUE INDEX IF NOT EXISTS "Image_sessionId_messageId_filename_key" ON "I
79
94
  -- CreateIndex
80
95
  CREATE INDEX IF NOT EXISTS "Report_generatedAt_idx" ON "Report"("generatedAt");
81
96
 
97
+ -- CreateIndex
98
+ CREATE UNIQUE INDEX IF NOT EXISTS "SessionAnalysis_sessionId_key" ON "SessionAnalysis"("sessionId");
99
+
100
+ -- CreateIndex
101
+ CREATE INDEX IF NOT EXISTS "SessionAnalysis_sessionId_idx" ON "SessionAnalysis"("sessionId");
102
+