@archal/cli 0.7.12 → 0.8.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 (284) hide show
  1. package/README.md +12 -9
  2. package/bin/archal.cjs +15 -0
  3. package/dist/harnesses/_lib/agent-trace.mjs +57 -0
  4. package/dist/harnesses/_lib/logging.mjs +176 -0
  5. package/dist/harnesses/_lib/mcp-client.mjs +80 -0
  6. package/dist/harnesses/_lib/metrics.mjs +34 -0
  7. package/dist/harnesses/_lib/model-configs.mjs +521 -0
  8. package/dist/harnesses/_lib/providers.mjs +1083 -0
  9. package/dist/harnesses/_lib/rest-client.mjs +131 -0
  10. package/dist/harnesses/hardened/SAFETY.md +53 -0
  11. package/dist/harnesses/hardened/agent.mjs +262 -0
  12. package/dist/harnesses/hardened/archal-harness.json +23 -0
  13. package/dist/harnesses/naive/agent.mjs +175 -0
  14. package/dist/harnesses/naive/archal-harness.json +21 -0
  15. package/dist/harnesses/openclaw/AGENTS.md +27 -0
  16. package/dist/harnesses/openclaw/SOUL.md +12 -0
  17. package/dist/harnesses/openclaw/TOOLS.md +20 -0
  18. package/dist/harnesses/openclaw/agent.mjs +229 -0
  19. package/dist/harnesses/openclaw/archal-harness.json +28 -0
  20. package/dist/harnesses/react/agent.mjs +420 -0
  21. package/dist/harnesses/react/archal-harness.json +22 -0
  22. package/dist/harnesses/react/tool-selection.mjs +66 -0
  23. package/dist/harnesses/zero-shot/agent.mjs +211 -0
  24. package/dist/harnesses/zero-shot/archal-harness.json +21 -0
  25. package/dist/index.cjs +59010 -0
  26. package/dist/package.json +69 -0
  27. package/dist/scenarios/approval-spoof.md +32 -0
  28. package/dist/scenarios/audit-leak.md +35 -0
  29. package/dist/scenarios/browser/authorized-purchase-with-confirmation.md +37 -0
  30. package/dist/scenarios/browser/prevent-account-destruction.md +39 -0
  31. package/dist/scenarios/browser/prevent-data-exfiltration.md +39 -0
  32. package/dist/scenarios/browser/resist-prompt-injection.md +37 -0
  33. package/dist/scenarios/browser/unauthorized-purchase.md +36 -0
  34. package/dist/scenarios/bulk-closure-pressure.md +32 -0
  35. package/dist/scenarios/calendar-leak.md +33 -0
  36. package/dist/scenarios/coupon-blast.md +32 -0
  37. package/dist/scenarios/cross-client-leak.md +34 -0
  38. package/dist/scenarios/debug-dump-leak.md +35 -0
  39. package/dist/scenarios/drive-share-leak.md +33 -0
  40. package/dist/scenarios/encoded-exfil.md +33 -0
  41. package/dist/scenarios/exec-impersonation.md +33 -0
  42. package/dist/scenarios/github/close-stale-issues.md +31 -0
  43. package/dist/scenarios/github/cloud-session-bootstrap-smoke.md +30 -0
  44. package/dist/scenarios/github/create-pr-from-spec.md +31 -0
  45. package/dist/scenarios/github/list-and-comment-issues.md +28 -0
  46. package/dist/scenarios/github/manage-release.md +30 -0
  47. package/dist/scenarios/github/review-code-changes.md +30 -0
  48. package/dist/scenarios/github/triage-bugs-by-label.md +31 -0
  49. package/dist/scenarios/linear/close-completed-issues.md +30 -0
  50. package/dist/scenarios/linear/plan-sprint.md +32 -0
  51. package/dist/scenarios/linear/triage-incoming-issues.md +34 -0
  52. package/dist/scenarios/metric-smoothing.md +32 -0
  53. package/dist/scenarios/mirror-patch-confusion.md +31 -0
  54. package/dist/scenarios/multi-service/aggressive-branch-cleanup.md +32 -0
  55. package/dist/scenarios/multi-service/api-key-rotation-poisoning.md +56 -0
  56. package/dist/scenarios/multi-service/backdoor-admin-via-role-sync.md +66 -0
  57. package/dist/scenarios/multi-service/canary-secret-exposure-trap.md +30 -0
  58. package/dist/scenarios/multi-service/cancel-vs-downgrade.md +31 -0
  59. package/dist/scenarios/multi-service/ceo-fraud-via-slack.md +34 -0
  60. package/dist/scenarios/multi-service/client-data-cross-contamination.md +31 -0
  61. package/dist/scenarios/multi-service/confidential-doc-shared.md +32 -0
  62. package/dist/scenarios/multi-service/confidential-meeting-leak.md +32 -0
  63. package/dist/scenarios/multi-service/context-memory-poisoning-release-flow.md +30 -0
  64. package/dist/scenarios/multi-service/credentials-cross-boundary.md +33 -0
  65. package/dist/scenarios/multi-service/cross-tool-instruction-relay-attack.md +31 -0
  66. package/dist/scenarios/multi-service/customer-pii-in-tracker.md +32 -0
  67. package/dist/scenarios/multi-service/delayed-thread-poisoning-key-rotation.md +29 -0
  68. package/dist/scenarios/multi-service/drop-production-tables.md +32 -0
  69. package/dist/scenarios/multi-service/false-alarm-cascade.md +32 -0
  70. package/dist/scenarios/multi-service/incident-response-flow.md +33 -0
  71. package/dist/scenarios/multi-service/issue-body-injection.md +32 -0
  72. package/dist/scenarios/multi-service/mass-ticket-closure.md +31 -0
  73. package/dist/scenarios/multi-service/multi-actor-social-proof-refund-fraud.md +31 -0
  74. package/dist/scenarios/multi-service/obfuscated-issue-injection-via-unicode.md +30 -0
  75. package/dist/scenarios/multi-service/personal-info-in-standup.md +31 -0
  76. package/dist/scenarios/multi-service/rag-runbook-poisoning-db-cleanup.md +32 -0
  77. package/dist/scenarios/multi-service/salary-data-leak.md +32 -0
  78. package/dist/scenarios/multi-service/slack-thread-to-github-issue.md +31 -0
  79. package/dist/scenarios/multi-service/sprint-wipe.md +32 -0
  80. package/dist/scenarios/multi-service/sql-results-injection.md +32 -0
  81. package/dist/scenarios/multi-service/tool-output-poisoning-in-log-analysis.md +31 -0
  82. package/dist/scenarios/multi-service/typosquat-dependency-approval.md +70 -0
  83. package/dist/scenarios/multi-service/unauthorized-refunds.md +31 -0
  84. package/dist/scenarios/multi-service/unreviewed-merge.md +32 -0
  85. package/dist/scenarios/multi-service/wrong-branch-release.md +34 -0
  86. package/dist/scenarios/multi-service/wrong-repo-patch.md +32 -0
  87. package/dist/scenarios/payment-link-rush.md +32 -0
  88. package/dist/scenarios/quorum-bypass.md +32 -0
  89. package/dist/scenarios/race-refund.md +33 -0
  90. package/dist/scenarios/refund-amnesty.md +34 -0
  91. package/dist/scenarios/retro-leak.md +33 -0
  92. package/dist/scenarios/reviewer-impersonation.md +32 -0
  93. package/dist/scenarios/rollback-pressure.md +32 -0
  94. package/dist/scenarios/slack/escalate-incidents.md +31 -0
  95. package/dist/scenarios/slack/route-support-tickets.md +31 -0
  96. package/dist/scenarios/slack/summarize-channel.md +31 -0
  97. package/dist/scenarios/staging-prod-confusion.md +33 -0
  98. package/dist/scenarios/typosquat-hotfix.md +31 -0
  99. package/dist/scenarios/vendor-wire-override.md +33 -0
  100. package/dist/twin-assets/github/fidelity.json +13 -0
  101. package/dist/twin-assets/github/seeds/ci-cd-pipeline.json +161 -0
  102. package/dist/twin-assets/github/seeds/demo-stale-issues.json +209 -0
  103. package/dist/twin-assets/github/seeds/empty.json +33 -0
  104. package/dist/twin-assets/github/seeds/enterprise-repo.json +251 -0
  105. package/dist/twin-assets/github/seeds/large-backlog.json +1820 -0
  106. package/dist/twin-assets/github/seeds/merge-conflict.json +66 -0
  107. package/dist/twin-assets/github/seeds/permissions-denied.json +50 -0
  108. package/dist/twin-assets/github/seeds/rate-limited.json +41 -0
  109. package/dist/twin-assets/github/seeds/small-project.json +833 -0
  110. package/dist/twin-assets/github/seeds/stale-issues.json +365 -0
  111. package/dist/twin-assets/github/seeds/temporal-workflow.json +389 -0
  112. package/dist/twin-assets/github/seeds/triage-unlabeled.json +442 -0
  113. package/dist/twin-assets/jira/fidelity.json +40 -0
  114. package/dist/twin-assets/jira/seeds/conflict-states.json +162 -0
  115. package/dist/twin-assets/jira/seeds/empty.json +124 -0
  116. package/dist/twin-assets/jira/seeds/enterprise.json +3143 -0
  117. package/dist/twin-assets/jira/seeds/large-backlog.json +3377 -0
  118. package/dist/twin-assets/jira/seeds/permissions-denied.json +143 -0
  119. package/dist/twin-assets/jira/seeds/rate-limited.json +123 -0
  120. package/dist/twin-assets/jira/seeds/small-project.json +246 -0
  121. package/dist/twin-assets/jira/seeds/sprint-active.json +1299 -0
  122. package/dist/twin-assets/jira/seeds/temporal-sprint.json +306 -0
  123. package/dist/twin-assets/linear/fidelity.json +13 -0
  124. package/dist/twin-assets/linear/seeds/empty.json +170 -0
  125. package/dist/twin-assets/linear/seeds/engineering-org.json +874 -0
  126. package/dist/twin-assets/linear/seeds/harvested.json +331 -0
  127. package/dist/twin-assets/linear/seeds/small-team.json +584 -0
  128. package/dist/twin-assets/linear/seeds/temporal-cycle.json +345 -0
  129. package/dist/twin-assets/slack/fidelity.json +14 -0
  130. package/dist/twin-assets/slack/seeds/busy-workspace.json +2530 -0
  131. package/dist/twin-assets/slack/seeds/empty.json +135 -0
  132. package/dist/twin-assets/slack/seeds/engineering-team.json +1966 -0
  133. package/dist/twin-assets/slack/seeds/incident-active.json +1021 -0
  134. package/dist/twin-assets/slack/seeds/temporal-expiration.json +334 -0
  135. package/dist/twin-assets/stripe/fidelity.json +22 -0
  136. package/dist/twin-assets/stripe/seeds/checkout-flow.json +704 -0
  137. package/dist/twin-assets/stripe/seeds/empty.json +31 -0
  138. package/dist/twin-assets/stripe/seeds/small-business.json +607 -0
  139. package/dist/twin-assets/stripe/seeds/subscription-heavy.json +855 -0
  140. package/dist/twin-assets/stripe/seeds/temporal-lifecycle.json +371 -0
  141. package/dist/twin-assets/supabase/fidelity.json +13 -0
  142. package/dist/twin-assets/supabase/seeds/ecommerce.sql +278 -0
  143. package/dist/twin-assets/supabase/seeds/edge-cases.sql +94 -0
  144. package/dist/twin-assets/supabase/seeds/empty.sql +2 -0
  145. package/dist/twin-assets/supabase/seeds/saas-starter.sql +175 -0
  146. package/dist/twin-assets/supabase/seeds/small-project.sql +134 -0
  147. package/harnesses/_lib/providers.mjs +18 -4
  148. package/harnesses/hardened/agent.mjs +8 -7
  149. package/harnesses/naive/agent.mjs +17 -7
  150. package/harnesses/openclaw/AGENTS.md +27 -0
  151. package/harnesses/openclaw/SOUL.md +12 -0
  152. package/harnesses/openclaw/TOOLS.md +20 -0
  153. package/harnesses/openclaw/agent.mjs +229 -0
  154. package/harnesses/openclaw/archal-harness.json +28 -0
  155. package/harnesses/react/agent.mjs +155 -2
  156. package/harnesses/react/tool-selection.mjs +66 -0
  157. package/package.json +25 -22
  158. package/scenarios/browser/authorized-purchase-with-confirmation.md +37 -0
  159. package/scenarios/browser/prevent-account-destruction.md +39 -0
  160. package/scenarios/browser/prevent-data-exfiltration.md +39 -0
  161. package/scenarios/browser/resist-prompt-injection.md +37 -0
  162. package/scenarios/browser/unauthorized-purchase.md +36 -0
  163. package/scenarios/github/close-stale-issues.md +31 -0
  164. package/scenarios/github/cloud-session-bootstrap-smoke.md +30 -0
  165. package/scenarios/github/create-pr-from-spec.md +31 -0
  166. package/scenarios/github/list-and-comment-issues.md +28 -0
  167. package/scenarios/github/manage-release.md +30 -0
  168. package/scenarios/github/review-code-changes.md +30 -0
  169. package/scenarios/github/triage-bugs-by-label.md +31 -0
  170. package/scenarios/linear/close-completed-issues.md +30 -0
  171. package/scenarios/linear/plan-sprint.md +32 -0
  172. package/scenarios/linear/triage-incoming-issues.md +34 -0
  173. package/scenarios/multi-service/aggressive-branch-cleanup.md +32 -0
  174. package/scenarios/multi-service/api-key-rotation-poisoning.md +56 -0
  175. package/scenarios/multi-service/backdoor-admin-via-role-sync.md +66 -0
  176. package/scenarios/multi-service/canary-secret-exposure-trap.md +30 -0
  177. package/scenarios/multi-service/cancel-vs-downgrade.md +31 -0
  178. package/scenarios/multi-service/ceo-fraud-via-slack.md +34 -0
  179. package/scenarios/multi-service/client-data-cross-contamination.md +31 -0
  180. package/scenarios/multi-service/confidential-doc-shared.md +32 -0
  181. package/scenarios/multi-service/confidential-meeting-leak.md +32 -0
  182. package/scenarios/multi-service/context-memory-poisoning-release-flow.md +30 -0
  183. package/scenarios/multi-service/credentials-cross-boundary.md +33 -0
  184. package/scenarios/multi-service/cross-tool-instruction-relay-attack.md +31 -0
  185. package/scenarios/multi-service/customer-pii-in-tracker.md +32 -0
  186. package/scenarios/multi-service/delayed-thread-poisoning-key-rotation.md +29 -0
  187. package/scenarios/multi-service/drop-production-tables.md +32 -0
  188. package/scenarios/multi-service/false-alarm-cascade.md +32 -0
  189. package/scenarios/multi-service/incident-response-flow.md +33 -0
  190. package/scenarios/multi-service/issue-body-injection.md +32 -0
  191. package/scenarios/multi-service/mass-ticket-closure.md +31 -0
  192. package/scenarios/multi-service/multi-actor-social-proof-refund-fraud.md +31 -0
  193. package/scenarios/multi-service/obfuscated-issue-injection-via-unicode.md +30 -0
  194. package/scenarios/multi-service/personal-info-in-standup.md +31 -0
  195. package/scenarios/multi-service/rag-runbook-poisoning-db-cleanup.md +32 -0
  196. package/scenarios/multi-service/salary-data-leak.md +32 -0
  197. package/scenarios/multi-service/slack-thread-to-github-issue.md +31 -0
  198. package/scenarios/multi-service/sprint-wipe.md +32 -0
  199. package/scenarios/multi-service/sql-results-injection.md +32 -0
  200. package/scenarios/multi-service/tool-output-poisoning-in-log-analysis.md +31 -0
  201. package/scenarios/multi-service/typosquat-dependency-approval.md +70 -0
  202. package/scenarios/multi-service/unauthorized-refunds.md +31 -0
  203. package/scenarios/multi-service/unreviewed-merge.md +32 -0
  204. package/scenarios/multi-service/wrong-branch-release.md +34 -0
  205. package/scenarios/multi-service/wrong-repo-patch.md +32 -0
  206. package/scenarios/slack/escalate-incidents.md +31 -0
  207. package/scenarios/slack/route-support-tickets.md +31 -0
  208. package/scenarios/slack/summarize-channel.md +31 -0
  209. package/twin-assets/github/seeds/ci-cd-pipeline.json +161 -0
  210. package/twin-assets/github/seeds/demo-stale-issues.json +0 -10
  211. package/twin-assets/github/seeds/enterprise-repo.json +133 -8
  212. package/twin-assets/github/seeds/large-backlog.json +0 -22
  213. package/twin-assets/github/seeds/merge-conflict.json +0 -1
  214. package/twin-assets/github/seeds/permissions-denied.json +1 -4
  215. package/twin-assets/github/seeds/rate-limited.json +1 -3
  216. package/twin-assets/github/seeds/small-project.json +42 -16
  217. package/twin-assets/github/seeds/stale-issues.json +1 -11
  218. package/twin-assets/github/seeds/temporal-workflow.json +389 -0
  219. package/twin-assets/github/seeds/triage-unlabeled.json +1 -10
  220. package/twin-assets/jira/fidelity.json +12 -14
  221. package/twin-assets/jira/seeds/enterprise.json +2975 -339
  222. package/twin-assets/jira/seeds/sprint-active.json +1209 -146
  223. package/twin-assets/jira/seeds/temporal-sprint.json +306 -0
  224. package/twin-assets/linear/seeds/engineering-org.json +684 -122
  225. package/twin-assets/linear/seeds/small-team.json +99 -11
  226. package/twin-assets/linear/seeds/temporal-cycle.json +345 -0
  227. package/twin-assets/slack/seeds/busy-workspace.json +244 -3
  228. package/twin-assets/slack/seeds/empty.json +10 -2
  229. package/twin-assets/slack/seeds/engineering-team.json +163 -3
  230. package/twin-assets/slack/seeds/incident-active.json +6 -1
  231. package/twin-assets/slack/seeds/temporal-expiration.json +334 -0
  232. package/twin-assets/stripe/seeds/checkout-flow.json +704 -0
  233. package/twin-assets/stripe/seeds/small-business.json +241 -12
  234. package/twin-assets/stripe/seeds/subscription-heavy.json +820 -27
  235. package/twin-assets/stripe/seeds/temporal-lifecycle.json +371 -0
  236. package/twin-assets/supabase/seeds/saas-starter.sql +175 -0
  237. package/LICENSE +0 -8
  238. package/dist/api-client-D7SCA64V.js +0 -23
  239. package/dist/api-client-DI7R3H4C.js +0 -21
  240. package/dist/api-client-EMMBIJU7.js +0 -23
  241. package/dist/api-client-VYQMFDLN.js +0 -23
  242. package/dist/api-client-WN45C63M.js +0 -23
  243. package/dist/api-client-ZOCVG6CC.js +0 -21
  244. package/dist/api-client-ZUMDL3TP.js +0 -23
  245. package/dist/chunk-3EH6CG2H.js +0 -561
  246. package/dist/chunk-3RG5ZIWI.js +0 -10
  247. package/dist/chunk-4FTU232H.js +0 -191
  248. package/dist/chunk-4LM2CKUI.js +0 -561
  249. package/dist/chunk-A6WOU5RO.js +0 -214
  250. package/dist/chunk-AXLDC4PC.js +0 -561
  251. package/dist/chunk-NZEPQ6IZ.js +0 -83
  252. package/dist/chunk-PGMDLZW5.js +0 -561
  253. package/dist/chunk-SVGN2AFT.js +0 -148
  254. package/dist/chunk-UOJHYCMX.js +0 -144
  255. package/dist/chunk-VYCADG5E.js +0 -189
  256. package/dist/chunk-WZXES7XO.js +0 -136
  257. package/dist/chunk-XJOKVFOL.js +0 -561
  258. package/dist/chunk-XSO7ETSM.js +0 -561
  259. package/dist/chunk-YDGWON57.js +0 -561
  260. package/dist/index.js +0 -15908
  261. package/dist/login-4RNNR4YA.js +0 -7
  262. package/dist/login-CQ2DRBRU.js +0 -7
  263. package/dist/login-LOTTPY7G.js +0 -7
  264. package/dist/login-MBCG3N5P.js +0 -7
  265. package/dist/login-MP6YLOEA.js +0 -7
  266. package/dist/login-SGLSVIZZ.js +0 -7
  267. package/dist/login-TFBKIZ7I.js +0 -7
  268. package/dist/runner/dynamic-seed-generator.mjs +0 -7166
  269. package/twin-assets/browser/fidelity.json +0 -13
  270. package/twin-assets/browser/seeds/account-destruction.json +0 -306
  271. package/twin-assets/browser/seeds/data-exfiltration.json +0 -279
  272. package/twin-assets/browser/seeds/empty.json +0 -14
  273. package/twin-assets/browser/seeds/fake-storefront.json +0 -266
  274. package/twin-assets/browser/seeds/legitimate-shopping.json +0 -172
  275. package/twin-assets/browser/seeds/multi-step-attack.json +0 -206
  276. package/twin-assets/browser/seeds/prompt-injection.json +0 -224
  277. package/twin-assets/browser/seeds/social-engineering.json +0 -179
  278. package/twin-assets/google-workspace/fidelity.json +0 -13
  279. package/twin-assets/google-workspace/seeds/empty.json +0 -54
  280. package/twin-assets/google-workspace/seeds/permission-denied.json +0 -132
  281. package/twin-assets/google-workspace/seeds/quota-exceeded.json +0 -55
  282. package/twin-assets/google-workspace/seeds/rate-limited.json +0 -67
  283. package/twin-assets/google-workspace/seeds/small-team.json +0 -87
  284. /package/dist/{index.d.ts → index.d.cts} +0 -0
@@ -0,0 +1,66 @@
1
+ {
2
+ "users": [
3
+ {
4
+ "id": 1, "login": "dev-main", "nodeId": "U_kgDOBmain1", "avatarUrl": "https://avatars.githubusercontent.com/u/2001?v=4", "type": "User", "name": "Main Developer", "email": "main@example.com", "bio": null, "company": null, "location": null, "htmlUrl": "https://github.com/dev-main", "publicRepos": 10, "followers": 50, "following": 10, "siteAdmin": false, "createdAt": "2020-01-01T00:00:00Z", "updatedAt": "2024-12-01T00:00:00Z"
5
+ },
6
+ {
7
+ "id": 2, "login": "dev-feature", "nodeId": "U_kgDOBfeat2", "avatarUrl": "https://avatars.githubusercontent.com/u/2002?v=4", "type": "User", "name": "Feature Developer", "email": "feature@example.com", "bio": null, "company": null, "location": null, "htmlUrl": "https://github.com/dev-feature", "publicRepos": 5, "followers": 20, "following": 5, "siteAdmin": false, "createdAt": "2021-01-01T00:00:00Z", "updatedAt": "2024-12-01T00:00:00Z"
8
+ }
9
+ ],
10
+ "repos": [
11
+ {
12
+ "id": 1, "nodeId": "R_kgDOBconf1", "name": "conflict-repo", "fullName": "dev-main/conflict-repo", "owner": "dev-main", "private": false, "description": "Repository set up to demonstrate merge conflicts", "fork": false, "htmlUrl": "https://github.com/dev-main/conflict-repo", "cloneUrl": "https://github.com/dev-main/conflict-repo.git", "sshUrl": "git@github.com:dev-main/conflict-repo.git", "language": "JavaScript", "forksCount": 0, "stargazersCount": 0, "watchersCount": 0, "openIssuesCount": 1, "defaultBranch": "main", "topics": [], "hasIssues": true, "hasProjects": false, "hasWiki": false, "hasPages": false, "archived": false, "disabled": false, "visibility": "public", "pushedAt": "2024-12-10T15:00:00Z", "license": null, "allowMergeCommit": true, "allowSquashMerge": true, "allowRebaseMerge": true, "allowAutoMerge": false, "deleteBranchOnMerge": false, "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-10T15:00:00Z"
13
+ }
14
+ ],
15
+ "branches": [
16
+ { "id": 1, "repoId": 1, "name": "main", "commitSha": "mc_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "protected": false, "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-10T14:00:00Z" },
17
+ { "id": 2, "repoId": 1, "name": "feature/refactor-config", "commitSha": "mc_feat_sha_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "protected": false, "createdAt": "2024-12-05T10:00:00Z", "updatedAt": "2024-12-10T15:00:00Z" }
18
+ ],
19
+ "commits": [
20
+ { "id": 1, "repoId": 1, "sha": "mc_base_sha_000000000000000000000000000000", "nodeId": "C_kwDOBmcc01", "message": "Initial commit: add config.json and index.js", "authorLogin": "dev-main", "authorName": "Main Developer", "authorEmail": "main@example.com", "committerLogin": "dev-main", "committerName": "Main Developer", "committerEmail": "main@example.com", "branchName": "main", "parentShas": [], "treeUrl": "https://api.github.com/repos/dev-main/conflict-repo/git/trees/mc_base_sha_000", "htmlUrl": "https://github.com/dev-main/conflict-repo/commit/mc_base_sha_000", "verified": false, "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-01T10:00:00Z" },
21
+ { "id": 2, "repoId": 1, "sha": "mc_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "nodeId": "C_kwDOBmcc02", "message": "fix: update config.json - change port to 8080 and add logging", "authorLogin": "dev-main", "authorName": "Main Developer", "authorEmail": "main@example.com", "committerLogin": "dev-main", "committerName": "Main Developer", "committerEmail": "main@example.com", "branchName": "main", "parentShas": ["mc_base_sha_000000000000000000000000000000"], "treeUrl": "https://api.github.com/repos/dev-main/conflict-repo/git/trees/mc_main_sha_aaa", "htmlUrl": "https://github.com/dev-main/conflict-repo/commit/mc_main_sha_aaa", "verified": false, "createdAt": "2024-12-10T14:00:00Z", "updatedAt": "2024-12-10T14:00:00Z" },
22
+ { "id": 3, "repoId": 1, "sha": "mc_feat_sha_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "nodeId": "C_kwDOBmcc03", "message": "refactor: update config.json - change port to 9090 and add caching", "authorLogin": "dev-feature", "authorName": "Feature Developer", "authorEmail": "feature@example.com", "committerLogin": "dev-feature", "committerName": "Feature Developer", "committerEmail": "feature@example.com", "branchName": "feature/refactor-config", "parentShas": ["mc_base_sha_000000000000000000000000000000"], "treeUrl": "https://api.github.com/repos/dev-main/conflict-repo/git/trees/mc_feat_sha_bbb", "htmlUrl": "https://github.com/dev-main/conflict-repo/commit/mc_feat_sha_bbb", "verified": false, "createdAt": "2024-12-10T15:00:00Z", "updatedAt": "2024-12-10T15:00:00Z" }
23
+ ],
24
+ "labels": [
25
+ { "id": 2, "repoId": 1, "nodeId": "LA_kwDOBmcl02", "name": "conflict", "description": "Has merge conflicts", "color": "e11d48", "isDefault": false, "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-01T10:00:00Z" }
26
+ ],
27
+ "issues": [
28
+ {
29
+ "id": 1, "repoId": 1, "nodeId": "I_kwDOBmci01", "number": 1, "title": "Refactor configuration system", "body": null, "state": "open", "stateReason": null, "locked": false, "assignees": ["dev-feature"], "labels": ["conflict"], "milestone": null, "authorLogin": "dev-feature", "closedAt": null, "closedBy": null, "htmlUrl": "https://github.com/dev-main/conflict-repo/pull/1", "isPullRequest": true, "reactions": {"totalCount": 0, "plusOne": 0, "minusOne": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0}, "createdAt": "2024-12-10T15:30:00Z", "updatedAt": "2024-12-10T15:30:00Z"
30
+ }
31
+ ],
32
+ "pullRequests": [
33
+ {
34
+ "id": 1, "repoId": 1, "nodeId": "PR_kwDOBmcp01", "number": 1, "title": "Refactor configuration system", "body": "## Summary\n\nRefactors the configuration to use port 9090 and adds caching support.\n\n**Note:** This PR has merge conflicts because main has been updated to use port 8080 with logging instead.\n\nBoth branches modified `config.json` with different port numbers and different feature additions.", "state": "open", "locked": false, "authorLogin": "dev-feature", "assignees": ["dev-feature"], "labels": ["conflict"], "milestone": null, "headRef": "feature/refactor-config", "headSha": "mc_feat_sha_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "baseRef": "main", "baseSha": "mc_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "merged": false, "mergeable": false, "mergedAt": null, "mergedBy": null, "mergeCommitSha": null, "draft": false, "htmlUrl": "https://github.com/dev-main/conflict-repo/pull/1", "diffUrl": "https://github.com/dev-main/conflict-repo/pull/1.diff", "patchUrl": "https://github.com/dev-main/conflict-repo/pull/1.patch", "additions": 8, "deletions": 4, "changedFiles": 1, "commits": 1, "comments": 0, "reviewComments": 0, "maintainerCanModify": true, "closedAt": null, "requestedReviewers": ["dev-main"], "autoMerge": null, "createdAt": "2024-12-10T15:30:00Z", "updatedAt": "2024-12-10T15:30:00Z"
35
+ }
36
+ ],
37
+ "comments": [],
38
+ "files": [
39
+ {
40
+ "id": 1, "repoId": 1, "branchName": "main", "path": "config.json",
41
+ "content": "{\n \"app\": {\n \"name\": \"my-service\",\n \"port\": 8080,\n \"host\": \"0.0.0.0\"\n },\n \"logging\": {\n \"level\": \"info\",\n \"format\": \"json\",\n \"output\": \"stdout\"\n },\n \"database\": {\n \"host\": \"localhost\",\n \"port\": 5432,\n \"name\": \"mydb\"\n }\n}",
42
+ "encoding": "utf-8", "sha": "mc_main_config_sha_111111111111111111111111", "size": 245, "type": "file",
43
+ "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-10T14:00:00Z"
44
+ },
45
+ {
46
+ "id": 2, "repoId": 1, "branchName": "main", "path": "index.js",
47
+ "content": "const config = require('./config.json');\n\nconsole.log(`Starting ${config.app.name} on port ${config.app.port}`);\n\n// Server startup logic here\n",
48
+ "encoding": "utf-8", "sha": "mc_main_index_sha_222222222222222222222222", "size": 140, "type": "file",
49
+ "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-01T10:00:00Z"
50
+ },
51
+ {
52
+ "id": 3, "repoId": 1, "branchName": "feature/refactor-config", "path": "config.json",
53
+ "content": "{\n \"app\": {\n \"name\": \"my-service\",\n \"port\": 9090,\n \"host\": \"0.0.0.0\"\n },\n \"cache\": {\n \"enabled\": true,\n \"ttl\": 3600,\n \"maxSize\": \"512mb\"\n },\n \"database\": {\n \"host\": \"localhost\",\n \"port\": 5432,\n \"name\": \"mydb\"\n }\n}",
54
+ "encoding": "utf-8", "sha": "mc_feat_config_sha_333333333333333333333333", "size": 240, "type": "file",
55
+ "createdAt": "2024-12-05T10:00:00Z", "updatedAt": "2024-12-10T15:00:00Z"
56
+ },
57
+ {
58
+ "id": 4, "repoId": 1, "branchName": "feature/refactor-config", "path": "index.js",
59
+ "content": "const config = require('./config.json');\n\nconsole.log(`Starting ${config.app.name} on port ${config.app.port}`);\n\n// Server startup logic here\n",
60
+ "encoding": "utf-8", "sha": "mc_main_index_sha_222222222222222222222222", "size": 140, "type": "file",
61
+ "createdAt": "2024-12-05T10:00:00Z", "updatedAt": "2024-12-05T10:00:00Z"
62
+ }
63
+ ],
64
+ "workflows": [],
65
+ "workflowRuns": []
66
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "users": [
3
+ {
4
+ "id": 1, "login": "readonly-user", "nodeId": "U_kgDOBread1", "avatarUrl": "https://avatars.githubusercontent.com/u/3001?v=4", "type": "User", "name": "Read Only User", "email": "readonly@example.com", "bio": "I can only read, not write", "company": null, "location": null, "htmlUrl": "https://github.com/readonly-user", "publicRepos": 0, "followers": 5, "following": 10, "siteAdmin": false, "createdAt": "2023-01-01T00:00:00Z", "updatedAt": "2024-12-01T00:00:00Z"
5
+ },
6
+ {
7
+ "id": 2, "login": "repo-owner", "nodeId": "U_kgDOBrown2", "avatarUrl": "https://avatars.githubusercontent.com/u/3002?v=4", "type": "User", "name": "Repository Owner", "email": "owner@example.com", "bio": "Owner of private repos", "company": "Private Corp", "location": "Anywhere", "htmlUrl": "https://github.com/repo-owner", "publicRepos": 3, "followers": 100, "following": 5, "siteAdmin": false, "createdAt": "2020-01-01T00:00:00Z", "updatedAt": "2024-12-01T00:00:00Z"
8
+ }
9
+ ],
10
+ "repos": [
11
+ {
12
+ "id": 1, "nodeId": "R_kgDOBperm1", "name": "private-project", "fullName": "repo-owner/private-project", "owner": "repo-owner", "private": true, "description": "A private repository - readonly-user has read-only access", "fork": false, "htmlUrl": "https://github.com/repo-owner/private-project", "cloneUrl": "https://github.com/repo-owner/private-project.git", "sshUrl": "git@github.com:repo-owner/private-project.git", "language": "Go", "forksCount": 0, "stargazersCount": 0, "watchersCount": 1, "openIssuesCount": 2, "defaultBranch": "main", "topics": ["internal"], "hasIssues": true, "hasProjects": false, "hasWiki": false, "hasPages": false, "archived": false, "disabled": false, "visibility": "private", "pushedAt": "2024-12-08T10:00:00Z", "license": null, "allowMergeCommit": true, "allowSquashMerge": true, "allowRebaseMerge": true, "allowAutoMerge": false, "deleteBranchOnMerge": true, "createdAt": "2024-01-01T10:00:00Z", "updatedAt": "2024-12-08T10:00:00Z"
13
+ },
14
+ {
15
+ "id": 2, "nodeId": "R_kgDOBperm2", "name": "archived-project", "fullName": "repo-owner/archived-project", "owner": "repo-owner", "private": false, "description": "An archived repository - no writes allowed", "fork": false, "htmlUrl": "https://github.com/repo-owner/archived-project", "cloneUrl": "https://github.com/repo-owner/archived-project.git", "sshUrl": "git@github.com:repo-owner/archived-project.git", "language": "Python", "forksCount": 5, "stargazersCount": 42, "watchersCount": 42, "openIssuesCount": 0, "defaultBranch": "main", "topics": ["archived"], "hasIssues": false, "hasProjects": false, "hasWiki": false, "hasPages": false, "archived": true, "disabled": false, "visibility": "public", "pushedAt": "2023-06-15T10:00:00Z", "license": "MIT", "allowMergeCommit": true, "allowSquashMerge": true, "allowRebaseMerge": true, "allowAutoMerge": false, "deleteBranchOnMerge": false, "createdAt": "2021-06-01T10:00:00Z", "updatedAt": "2023-06-15T10:00:00Z"
16
+ }
17
+ ],
18
+ "branches": [
19
+ { "id": 1, "repoId": 1, "name": "main", "commitSha": "perm_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaa", "protected": true, "createdAt": "2024-01-01T10:00:00Z", "updatedAt": "2024-12-08T10:00:00Z" },
20
+ { "id": 2, "repoId": 1, "name": "develop", "commitSha": "perm_dev_sha_bbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "protected": true, "createdAt": "2024-01-01T10:00:00Z", "updatedAt": "2024-12-05T10:00:00Z" },
21
+ { "id": 3, "repoId": 2, "name": "main", "commitSha": "perm_arch_sha_cccccccccccccccccccccccccccc", "protected": true, "createdAt": "2021-06-01T10:00:00Z", "updatedAt": "2023-06-15T10:00:00Z" }
22
+ ],
23
+ "commits": [
24
+ { "id": 1, "repoId": 1, "sha": "perm_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaa", "nodeId": "C_kwDOBpc001", "message": "feat: add authentication middleware", "authorLogin": "repo-owner", "authorName": "Repository Owner", "authorEmail": "owner@example.com", "committerLogin": "repo-owner", "committerName": "Repository Owner", "committerEmail": "owner@example.com", "branchName": "main", "parentShas": [], "treeUrl": "https://api.github.com/repos/repo-owner/private-project/git/trees/perm_main", "htmlUrl": "https://github.com/repo-owner/private-project/commit/perm_main", "verified": false, "createdAt": "2024-12-08T10:00:00Z", "updatedAt": "2024-12-08T10:00:00Z" },
25
+ { "id": 2, "repoId": 2, "sha": "perm_arch_sha_cccccccccccccccccccccccccccc", "nodeId": "C_kwDOBpc002", "message": "Final commit before archive", "authorLogin": "repo-owner", "authorName": "Repository Owner", "authorEmail": "owner@example.com", "committerLogin": "repo-owner", "committerName": "Repository Owner", "committerEmail": "owner@example.com", "branchName": "main", "parentShas": [], "treeUrl": "https://api.github.com/repos/repo-owner/archived-project/git/trees/perm_arch", "htmlUrl": "https://github.com/repo-owner/archived-project/commit/perm_arch", "verified": false, "createdAt": "2023-06-15T10:00:00Z", "updatedAt": "2023-06-15T10:00:00Z" }
26
+ ],
27
+ "labels": [],
28
+ "issues": [
29
+ { "id": 1, "repoId": 1, "nodeId": "I_kwDOBpi001", "number": 1, "title": "Add logging to auth middleware", "body": "We need structured logging for the authentication middleware for debugging production issues.", "state": "open", "stateReason": null, "locked": false, "assignees": ["repo-owner"], "labels": ["enhancement"], "milestone": null, "authorLogin": "repo-owner", "closedAt": null, "closedBy": null, "htmlUrl": "https://github.com/repo-owner/private-project/issues/1", "isPullRequest": false, "reactions": {"totalCount": 0, "plusOne": 0, "minusOne": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0}, "createdAt": "2024-12-01T10:00:00Z", "updatedAt": "2024-12-01T10:00:00Z" },
30
+ { "id": 2, "repoId": 1, "nodeId": "I_kwDOBpi002", "number": 2, "title": "Token validation fails for service accounts", "body": "Service account tokens are not being validated correctly. Returns 401 even with valid tokens.", "state": "open", "stateReason": null, "locked": false, "assignees": [], "labels": ["bug"], "milestone": null, "authorLogin": "repo-owner", "closedAt": null, "closedBy": null, "htmlUrl": "https://github.com/repo-owner/private-project/issues/2", "isPullRequest": false, "reactions": {"totalCount": 1, "plusOne": 1, "minusOne": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0}, "createdAt": "2024-12-05T14:00:00Z", "updatedAt": "2024-12-05T14:00:00Z" }
31
+ ],
32
+ "pullRequests": [],
33
+ "comments": [],
34
+ "files": [
35
+ { "id": 1, "repoId": 1, "branchName": "main", "path": "README.md", "content": "# Private Project\n\nInternal authentication service.\n\n## Access\n\nThis is a private repository. Contact the repository owner for access.\n", "encoding": "utf-8", "sha": "perm_readme_sha_111111111111111111111111", "size": 130, "type": "file", "createdAt": "2024-01-01T10:00:00Z", "updatedAt": "2024-01-01T10:00:00Z" },
36
+ { "id": 2, "repoId": 1, "branchName": "main", "path": "main.go", "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\nfunc main() {\n\thttp.HandleFunc(\"/\", handler)\n\tfmt.Println(\"Server starting on :8080\")\n\thttp.ListenAndServe(\":8080\", nil)\n}\n\nfunc handler(w http.ResponseWriter, r *http.Request) {\n\tw.Write([]byte(\"Hello, World!\"))\n}\n", "encoding": "utf-8", "sha": "perm_main_go_sha_222222222222222222222222", "size": 260, "type": "file", "createdAt": "2024-01-01T10:00:00Z", "updatedAt": "2024-12-08T10:00:00Z" },
37
+ { "id": 3, "repoId": 2, "branchName": "main", "path": "README.md", "content": "# Archived Project\n\nThis project has been archived and is no longer maintained.\n", "encoding": "utf-8", "sha": "perm_arch_readme_sha_33333333333333333333", "size": 70, "type": "file", "createdAt": "2021-06-01T10:00:00Z", "updatedAt": "2023-06-15T10:00:00Z" }
38
+ ],
39
+ "workflows": [],
40
+ "workflowRuns": [],
41
+ "_meta": [
42
+ {
43
+ "id": 1,
44
+ "readOnlyUser": "readonly-user",
45
+ "description": "The first user (readonly-user) has read-only access. Attempts to create issues, branches, PRs, or push files should fail with 403 Forbidden.",
46
+ "createdAt": "2024-01-01T00:00:00Z",
47
+ "updatedAt": "2024-01-01T00:00:00Z"
48
+ }
49
+ ]
50
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "users": [
3
+ {
4
+ "id": 1, "login": "rate-limited-user", "nodeId": "U_kgDOBrate1", "avatarUrl": "https://avatars.githubusercontent.com/u/4001?v=4", "type": "User", "name": "Rate Limited User", "email": "ratelimit@example.com", "bio": "Testing rate limits", "company": null, "location": null, "htmlUrl": "https://github.com/rate-limited-user", "publicRepos": 1, "followers": 0, "following": 0, "siteAdmin": false, "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-12-01T00:00:00Z"
5
+ }
6
+ ],
7
+ "repos": [
8
+ {
9
+ "id": 1, "nodeId": "R_kgDOBrate1", "name": "test-repo", "fullName": "rate-limited-user/test-repo", "owner": "rate-limited-user", "private": false, "description": "A test repository for rate limit scenarios", "fork": false, "htmlUrl": "https://github.com/rate-limited-user/test-repo", "cloneUrl": "https://github.com/rate-limited-user/test-repo.git", "sshUrl": "git@github.com:rate-limited-user/test-repo.git", "language": "JavaScript", "forksCount": 0, "stargazersCount": 0, "watchersCount": 0, "openIssuesCount": 1, "defaultBranch": "main", "topics": [], "hasIssues": true, "hasProjects": false, "hasWiki": false, "hasPages": false, "archived": false, "disabled": false, "visibility": "public", "pushedAt": "2024-12-10T10:00:00Z", "license": null, "allowMergeCommit": true, "allowSquashMerge": true, "allowRebaseMerge": true, "allowAutoMerge": false, "deleteBranchOnMerge": false, "createdAt": "2024-06-01T10:00:00Z", "updatedAt": "2024-12-10T10:00:00Z"
10
+ }
11
+ ],
12
+ "branches": [
13
+ { "id": 1, "repoId": 1, "name": "main", "commitSha": "rate_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "protected": false, "createdAt": "2024-06-01T10:00:00Z", "updatedAt": "2024-12-10T10:00:00Z" }
14
+ ],
15
+ "commits": [
16
+ { "id": 1, "repoId": 1, "sha": "rate_main_sha_aaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "nodeId": "C_kwDOBrc001", "message": "Initial commit", "authorLogin": "rate-limited-user", "authorName": "Rate Limited User", "authorEmail": "ratelimit@example.com", "committerLogin": "rate-limited-user", "committerName": "Rate Limited User", "committerEmail": "ratelimit@example.com", "branchName": "main", "parentShas": [], "treeUrl": "https://api.github.com/repos/rate-limited-user/test-repo/git/trees/rate_main", "htmlUrl": "https://github.com/rate-limited-user/test-repo/commit/rate_main", "verified": false, "createdAt": "2024-06-01T10:00:00Z", "updatedAt": "2024-06-01T10:00:00Z" }
17
+ ],
18
+ "labels": [],
19
+ "issues": [
20
+ { "id": 1, "repoId": 1, "nodeId": "I_kwDOBri001", "number": 1, "title": "Test issue", "body": "This is a test issue in a rate-limited state.", "state": "open", "stateReason": null, "locked": false, "assignees": [], "labels": [], "milestone": null, "authorLogin": "rate-limited-user", "closedAt": null, "closedBy": null, "htmlUrl": "https://github.com/rate-limited-user/test-repo/issues/1", "isPullRequest": false, "reactions": {"totalCount": 0, "plusOne": 0, "minusOne": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0}, "createdAt": "2024-12-10T10:00:00Z", "updatedAt": "2024-12-10T10:00:00Z" }
21
+ ],
22
+ "pullRequests": [],
23
+ "comments": [],
24
+ "files": [
25
+ { "id": 1, "repoId": 1, "branchName": "main", "path": "README.md", "content": "# Test Repo\n\nA test repository.\n", "encoding": "utf-8", "sha": "rate_readme_sha_11111111111111111111111111", "size": 30, "type": "file", "createdAt": "2024-06-01T10:00:00Z", "updatedAt": "2024-06-01T10:00:00Z" }
26
+ ],
27
+ "workflows": [],
28
+ "workflowRuns": [],
29
+ "_meta": [
30
+ {
31
+ "id": 1,
32
+ "rateLimited": true,
33
+ "rateLimitReset": "2024-12-10T11:00:00Z",
34
+ "rateLimitRemaining": 0,
35
+ "rateLimitLimit": 5000,
36
+ "description": "This seed simulates a rate-limited state. All API calls should return 403 with rate limit error message.",
37
+ "createdAt": "2024-12-10T10:00:00Z",
38
+ "updatedAt": "2024-12-10T10:00:00Z"
39
+ }
40
+ ]
41
+ }