site-agent-pro 1.0.0

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 (81) hide show
  1. package/README.md +689 -0
  2. package/dist/auth/credentialStore.js +62 -0
  3. package/dist/auth/inbox.js +193 -0
  4. package/dist/auth/profile.js +379 -0
  5. package/dist/auth/runner.js +1124 -0
  6. package/dist/backend/dashboardData.js +194 -0
  7. package/dist/backend/runArtifacts.js +48 -0
  8. package/dist/backend/runRepository.js +93 -0
  9. package/dist/bin.js +2 -0
  10. package/dist/cli/backfillSiteChecks.js +143 -0
  11. package/dist/cli/run.js +309 -0
  12. package/dist/cli/trade.js +69 -0
  13. package/dist/config.js +199 -0
  14. package/dist/core/agentProfiles.js +55 -0
  15. package/dist/core/aggregateReport.js +382 -0
  16. package/dist/core/audit.js +30 -0
  17. package/dist/core/customTaskSuite.js +148 -0
  18. package/dist/core/evaluator.js +217 -0
  19. package/dist/core/executor.js +788 -0
  20. package/dist/core/fallbackReport.js +335 -0
  21. package/dist/core/formHeuristics.js +411 -0
  22. package/dist/core/gameplaySummary.js +164 -0
  23. package/dist/core/interaction.js +202 -0
  24. package/dist/core/pageState.js +201 -0
  25. package/dist/core/planner.js +1669 -0
  26. package/dist/core/processSubmissionBatch.js +204 -0
  27. package/dist/core/runAuditJob.js +170 -0
  28. package/dist/core/runner.js +2352 -0
  29. package/dist/core/siteBrief.js +107 -0
  30. package/dist/core/siteChecks.js +1526 -0
  31. package/dist/core/taskDirectives.js +279 -0
  32. package/dist/core/taskHeuristics.js +263 -0
  33. package/dist/dashboard/client.js +1256 -0
  34. package/dist/dashboard/contracts.js +95 -0
  35. package/dist/dashboard/narrative.js +277 -0
  36. package/dist/dashboard/server.js +458 -0
  37. package/dist/dashboard/theme.js +888 -0
  38. package/dist/index.js +84 -0
  39. package/dist/llm/client.js +188 -0
  40. package/dist/paystack/account.js +123 -0
  41. package/dist/paystack/client.js +100 -0
  42. package/dist/paystack/index.js +13 -0
  43. package/dist/paystack/test-paystack.js +83 -0
  44. package/dist/paystack/transfer.js +138 -0
  45. package/dist/paystack/types.js +74 -0
  46. package/dist/paystack/webhook.js +121 -0
  47. package/dist/prompts/browserAgent.js +124 -0
  48. package/dist/prompts/reviewer.js +71 -0
  49. package/dist/reporting/clickReplay.js +290 -0
  50. package/dist/reporting/html.js +930 -0
  51. package/dist/reporting/markdown.js +238 -0
  52. package/dist/reporting/template.js +1141 -0
  53. package/dist/schemas/types.js +361 -0
  54. package/dist/submissions/customTasks.js +196 -0
  55. package/dist/submissions/html.js +770 -0
  56. package/dist/submissions/model.js +56 -0
  57. package/dist/submissions/publicUrl.js +76 -0
  58. package/dist/submissions/service.js +74 -0
  59. package/dist/submissions/store.js +37 -0
  60. package/dist/submissions/types.js +65 -0
  61. package/dist/trade/engine.js +241 -0
  62. package/dist/trade/evm/erc20.js +44 -0
  63. package/dist/trade/extractor.js +148 -0
  64. package/dist/trade/policy.js +35 -0
  65. package/dist/trade/session.js +31 -0
  66. package/dist/trade/types.js +107 -0
  67. package/dist/trade/validator.js +148 -0
  68. package/dist/utils/files.js +59 -0
  69. package/dist/utils/log.js +24 -0
  70. package/dist/utils/playwrightCompat.js +14 -0
  71. package/dist/utils/time.js +3 -0
  72. package/dist/wallet/provider.js +345 -0
  73. package/dist/wallet/relay.js +129 -0
  74. package/dist/wallet/wallet.js +178 -0
  75. package/docs/01-installation.md +134 -0
  76. package/docs/02-running-your-first-audit.md +136 -0
  77. package/docs/03-configuration.md +233 -0
  78. package/docs/04-how-the-agent-thinks.md +41 -0
  79. package/docs/05-extending-personas-and-tasks.md +42 -0
  80. package/docs/06-hardening-for-production.md +92 -0
  81. package/package.json +60 -0
@@ -0,0 +1,238 @@
1
+ import { buildStructuredReviewTemplate, labelForCoverageStatus, labelForMetricStatus } from "./template.js";
2
+ function renderList(items) {
3
+ return items.length > 0 ? items.map((item) => `- ${item}`).join("\n") : "- None recorded.";
4
+ }
5
+ function renderMetricTable(metrics) {
6
+ const header = "| Metric | Value | Status | Coverage |\n| --- | --- | --- | --- |";
7
+ const rows = metrics.map((metric) => `| ${metric.label} | ${metric.value} | ${labelForMetricStatus(metric.status)} | ${labelForCoverageStatus(metric.verification)} |`);
8
+ return [header, ...rows].join("\n");
9
+ }
10
+ function renderMetricGroups(groups) {
11
+ return groups
12
+ .map((group) => `### ${group.title}\n\n${renderMetricTable(group.metrics)}`)
13
+ .join("\n\n");
14
+ }
15
+ function renderCoverage(coverage) {
16
+ return `- Coverage: ${labelForCoverageStatus(coverage.status)}\n- Coverage note: ${coverage.summary}\n${coverage.evidence.length > 0 ? `- Evidence:\n${coverage.evidence.map((item) => ` - ${item}`).join("\n")}` : ""}${coverage.blockers.length > 0 ? `\n- Blockers:\n${coverage.blockers.map((item) => ` - ${item}`).join("\n")}` : ""}`;
17
+ }
18
+ function formatTaskOutcome(status) {
19
+ switch (status) {
20
+ case "success":
21
+ return "Succeeded";
22
+ case "partial_success":
23
+ return "Partially Succeeded";
24
+ case "failed":
25
+ default:
26
+ return "Failed";
27
+ }
28
+ }
29
+ export function renderMarkdownReport(args) {
30
+ const template = buildStructuredReviewTemplate({
31
+ website: args.website,
32
+ report: args.report,
33
+ taskResults: args.taskResults,
34
+ accessibility: args.accessibility,
35
+ siteChecks: args.siteChecks,
36
+ rawEvents: args.rawEvents,
37
+ startedAt: args.startedAt,
38
+ mobile: args.mobile,
39
+ timeZone: args.timeZone
40
+ });
41
+ return `# Task Execution Output: ${args.website}
42
+
43
+ ## 1. Task Summary
44
+
45
+ - Website URL: ${template.executiveSummary.websiteUrl}
46
+ - Run Date: ${template.executiveSummary.auditDate}
47
+ - Overall Score: ${template.executiveSummary.overallScore}
48
+ - Visitor Lens: ${args.persona}
49
+
50
+ ### Summary
51
+
52
+ ${template.executiveSummary.summary}
53
+
54
+ ### Key Strengths
55
+
56
+ ${renderList(template.executiveSummary.keyStrengths)}
57
+
58
+ ### Critical Issues
59
+
60
+ ${renderList(template.executiveSummary.criticalIssues)}
61
+
62
+ ### Business Impact
63
+
64
+ ${template.executiveSummary.businessImpact}
65
+
66
+ ${args.siteBrief
67
+ ? `### What This Site Appears To Do
68
+
69
+ ${args.siteBrief.summary}
70
+
71
+ ${args.siteBrief.intendedUserActions.length > 0 ? renderList(args.siteBrief.intendedUserActions) : ""}
72
+ `
73
+ : ""}
74
+
75
+ ${(args.acceptedTasks?.length ?? 0) > 0 || args.instructionText?.trim()
76
+ ? `### Instructions I Followed
77
+
78
+ ${(args.acceptedTasks?.length ?? 0) > 0 ? renderList(args.acceptedTasks ?? []) : args.instructionText?.trim() ?? ""}
79
+ `
80
+ : ""}
81
+
82
+ ### Accepted Task Outcomes
83
+
84
+ ${renderList(args.report.task_results.map((task) => `${task.name}: ${formatTaskOutcome(task.status)}. ${task.reason}`))}
85
+
86
+ ${args.report.gameplay_summary
87
+ ? `### Gameplay Results
88
+
89
+ - Summary: ${args.report.gameplay_summary.summary}
90
+ - Rounds requested: ${args.report.gameplay_summary.roundsRequested}
91
+ - Rounds recorded: ${args.report.gameplay_summary.roundsRecorded}
92
+ - Wins: ${args.report.gameplay_summary.wins}
93
+ - Losses: ${args.report.gameplay_summary.losses}
94
+ - Draws: ${args.report.gameplay_summary.draws}
95
+ - Inconclusive rounds: ${args.report.gameplay_summary.inconclusiveRounds}
96
+ - How-to-play confirmed: ${args.report.gameplay_summary.howToPlayConfirmed ? "Yes" : "No"}
97
+ - Replay confirmed: ${args.report.gameplay_summary.replayConfirmed ? "Yes" : "No"}
98
+ `
99
+ : ""}
100
+
101
+ ## 2. Performance Analysis
102
+
103
+ - Tools: ${template.performance.tools.join(", ")}
104
+
105
+ ${renderCoverage(template.performance.coverage)}
106
+
107
+ ${renderMetricTable(template.performance.metrics)}
108
+
109
+ ### Insights
110
+
111
+ ${renderList(template.performance.insights)}
112
+
113
+ ### Recommendations
114
+
115
+ ${renderList(template.performance.recommendations)}
116
+
117
+ ## 3. SEO Audit
118
+
119
+ - Tools: ${template.seo.tools.join(", ")}
120
+
121
+ ${renderCoverage(template.seo.coverage)}
122
+
123
+ ${renderMetricGroups(template.seo.groups)}
124
+
125
+ ### Recommendations
126
+
127
+ ${renderList(template.seo.recommendations)}
128
+
129
+ ## 4. UI/UX Evaluation
130
+
131
+ ${renderCoverage(template.uiux.coverage)}
132
+
133
+ ${renderMetricTable(template.uiux.metrics)}
134
+
135
+ ### Key Issues
136
+
137
+ ${renderList(template.uiux.issues)}
138
+
139
+ ### Recommendations
140
+
141
+ ${renderList(template.uiux.recommendations)}
142
+
143
+ ## 5. Security Analysis
144
+
145
+ - Tools: ${template.security.tools.join(", ")}
146
+
147
+ ${renderCoverage(template.security.coverage)}
148
+
149
+ ${renderMetricTable(template.security.metrics)}
150
+
151
+ ### Recommendations
152
+
153
+ ${renderList(template.security.recommendations)}
154
+
155
+ ## 6. Technical Health
156
+
157
+ ${renderCoverage(template.technicalHealth.coverage)}
158
+
159
+ ${renderMetricTable(template.technicalHealth.metrics)}
160
+
161
+ ### Recommendations
162
+
163
+ ${renderList(template.technicalHealth.recommendations)}
164
+
165
+ ## 7. Mobile Optimization
166
+
167
+ ${renderCoverage(template.mobileOptimization.coverage)}
168
+
169
+ ${renderMetricTable(template.mobileOptimization.metrics)}
170
+
171
+ ### Recommendations
172
+
173
+ ${renderList(template.mobileOptimization.recommendations)}
174
+
175
+ ## 8. Content Quality
176
+
177
+ ${renderCoverage(template.contentQuality.coverage)}
178
+
179
+ ${renderMetricTable(template.contentQuality.metrics)}
180
+
181
+ ### Recommendations
182
+
183
+ ${renderList(template.contentQuality.recommendations)}
184
+
185
+ ## 9. Conversion Optimization (CRO)
186
+
187
+ ${renderCoverage(template.cro.coverage)}
188
+
189
+ ${renderMetricTable(template.cro.metrics)}
190
+
191
+ ### Recommendations
192
+
193
+ ${renderList(template.cro.recommendations)}
194
+
195
+ ## 10. Action Plan (Prioritized)
196
+
197
+ ### High Priority
198
+
199
+ ${renderList(template.actionPlan.high)}
200
+
201
+ ### Medium Priority
202
+
203
+ ${renderList(template.actionPlan.medium)}
204
+
205
+ ### Low Priority
206
+
207
+ ${renderList(template.actionPlan.low)}
208
+
209
+ ## 11. Final Score Breakdown
210
+
211
+ | Category | Score |
212
+ | --- | --- |
213
+ ${template.scoreBreakdown.map((item) => `| ${item.category} | ${item.score} |`).join("\n")}
214
+
215
+ ## 12. AI Agent Notes
216
+
217
+ - Confidence level: ${template.agentNotes.confidence}
218
+
219
+ ### Data Sources Used
220
+
221
+ ${renderList(template.agentNotes.dataSources)}
222
+
223
+ ### Limitations of Analysis
224
+
225
+ ${renderList(template.agentNotes.limitations)}
226
+
227
+ ## Appendix: Task Evidence
228
+
229
+ ${args.report.task_results
230
+ .map((task) => `### ${task.name}
231
+
232
+ - Status: ${task.status}
233
+ - Reason: ${task.reason}
234
+ - Evidence:
235
+ ${task.evidence.length > 0 ? task.evidence.map((item) => ` - ${item}`).join("\n") : " - None recorded."}`)
236
+ .join("\n\n")}
237
+ `;
238
+ }