gsd-pi 2.28.0 → 2.29.0-dev.49d972f

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 (1181) hide show
  1. package/README.md +23 -0
  2. package/dist/cli.js +20 -21
  3. package/dist/extension-discovery.d.ts +16 -0
  4. package/dist/extension-discovery.js +66 -0
  5. package/dist/headless-answers.d.ts +51 -0
  6. package/dist/headless-answers.js +224 -0
  7. package/dist/headless-context.d.ts +18 -0
  8. package/dist/headless-context.js +44 -0
  9. package/dist/headless-events.d.ts +28 -0
  10. package/dist/headless-events.js +59 -0
  11. package/dist/headless-query.d.ts +4 -0
  12. package/dist/headless-query.js +22 -4
  13. package/dist/headless-ui.d.ts +23 -0
  14. package/dist/headless-ui.js +103 -0
  15. package/dist/headless.d.ts +2 -0
  16. package/dist/headless.js +61 -183
  17. package/dist/help-text.js +4 -0
  18. package/dist/loader.js +18 -59
  19. package/dist/onboarding.js +8 -7
  20. package/dist/remote-questions-config.js +8 -3
  21. package/dist/resource-loader.d.ts +1 -6
  22. package/dist/resource-loader.js +125 -96
  23. package/dist/resources/extensions/ask-user-questions.ts +3 -2
  24. package/dist/resources/extensions/bg-shell/bg-shell-command.ts +219 -0
  25. package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.ts +400 -0
  26. package/dist/resources/extensions/bg-shell/bg-shell-tool.ts +985 -0
  27. package/dist/resources/extensions/bg-shell/index.ts +17 -1561
  28. package/dist/resources/extensions/bg-shell/overlay.ts +4 -0
  29. package/dist/resources/extensions/bg-shell/utilities.ts +4 -16
  30. package/dist/resources/extensions/browser-tools/capture.ts +34 -2
  31. package/dist/resources/extensions/browser-tools/lifecycle.ts +5 -5
  32. package/dist/resources/extensions/browser-tools/settle.ts +1 -1
  33. package/dist/resources/extensions/browser-tools/state.ts +5 -5
  34. package/dist/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs +1 -1
  35. package/dist/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs +3 -3
  36. package/dist/resources/extensions/browser-tools/tools/assertions.ts +1 -1
  37. package/dist/resources/extensions/browser-tools/tools/device.ts +1 -1
  38. package/dist/resources/extensions/browser-tools/tools/extract.ts +1 -1
  39. package/dist/resources/extensions/browser-tools/tools/navigation.ts +6 -6
  40. package/dist/resources/extensions/browser-tools/tools/network-mock.ts +1 -1
  41. package/dist/resources/extensions/browser-tools/tools/pages.ts +1 -1
  42. package/dist/resources/extensions/browser-tools/tools/screenshot.ts +28 -10
  43. package/dist/resources/extensions/browser-tools/tools/state-persistence.ts +1 -1
  44. package/dist/resources/extensions/browser-tools/tools/visual-diff.ts +1 -1
  45. package/dist/resources/extensions/browser-tools/utils.ts +5 -5
  46. package/dist/resources/extensions/get-secrets-from-user.ts +1 -1
  47. package/dist/resources/extensions/google-search/index.ts +21 -8
  48. package/dist/resources/extensions/gsd/activity-log.ts +2 -1
  49. package/dist/resources/extensions/gsd/atomic-write.ts +35 -0
  50. package/dist/resources/extensions/gsd/auto/session.ts +12 -0
  51. package/dist/resources/extensions/gsd/auto-dashboard.ts +84 -3
  52. package/dist/resources/extensions/gsd/auto-idempotency.ts +150 -0
  53. package/dist/resources/extensions/gsd/auto-post-unit.ts +591 -0
  54. package/dist/resources/extensions/gsd/auto-prompts.ts +116 -22
  55. package/dist/resources/extensions/gsd/auto-recovery.ts +36 -31
  56. package/dist/resources/extensions/gsd/auto-start.ts +500 -0
  57. package/dist/resources/extensions/gsd/auto-stuck-detection.ts +220 -0
  58. package/dist/resources/extensions/gsd/auto-timers.ts +223 -0
  59. package/dist/resources/extensions/gsd/auto-unit-closeout.ts +3 -1
  60. package/dist/resources/extensions/gsd/auto-verification.ts +229 -0
  61. package/dist/resources/extensions/gsd/auto-worktree-sync.ts +29 -37
  62. package/dist/resources/extensions/gsd/auto-worktree.ts +83 -67
  63. package/dist/resources/extensions/gsd/auto.ts +375 -1890
  64. package/dist/resources/extensions/gsd/commands-config.ts +102 -0
  65. package/dist/resources/extensions/gsd/commands-handlers.ts +394 -0
  66. package/dist/resources/extensions/gsd/commands-inspect.ts +90 -0
  67. package/dist/resources/extensions/gsd/commands-logs.ts +536 -0
  68. package/dist/resources/extensions/gsd/commands-maintenance.ts +206 -0
  69. package/dist/resources/extensions/gsd/commands-prefs-wizard.ts +760 -0
  70. package/dist/resources/extensions/gsd/commands.ts +365 -1495
  71. package/dist/resources/extensions/gsd/constants.ts +21 -0
  72. package/dist/resources/extensions/gsd/context-budget.ts +25 -2
  73. package/dist/resources/extensions/gsd/crash-recovery.ts +3 -4
  74. package/dist/resources/extensions/gsd/dashboard-overlay.ts +15 -5
  75. package/dist/resources/extensions/gsd/db-writer.ts +21 -2
  76. package/dist/resources/extensions/gsd/detection.ts +469 -0
  77. package/dist/resources/extensions/gsd/diff-context.ts +2 -1
  78. package/dist/resources/extensions/gsd/dispatch-guard.ts +4 -0
  79. package/dist/resources/extensions/gsd/doctor-checks.ts +564 -0
  80. package/dist/resources/extensions/gsd/doctor-format.ts +78 -0
  81. package/dist/resources/extensions/gsd/doctor-types.ts +72 -0
  82. package/dist/resources/extensions/gsd/doctor.ts +64 -701
  83. package/dist/resources/extensions/gsd/errors.ts +0 -2
  84. package/dist/resources/extensions/gsd/export-html.ts +367 -11
  85. package/dist/resources/extensions/gsd/export.ts +31 -5
  86. package/dist/resources/extensions/gsd/files.ts +8 -126
  87. package/dist/resources/extensions/gsd/forensics.ts +2 -12
  88. package/dist/resources/extensions/gsd/git-constants.ts +11 -0
  89. package/dist/resources/extensions/gsd/git-service.ts +13 -9
  90. package/dist/resources/extensions/gsd/gsd-db.ts +26 -6
  91. package/dist/resources/extensions/gsd/guided-flow-queue.ts +451 -0
  92. package/dist/resources/extensions/gsd/guided-flow.ts +231 -514
  93. package/dist/resources/extensions/gsd/history.ts +2 -20
  94. package/dist/resources/extensions/gsd/index.ts +208 -46
  95. package/dist/resources/extensions/gsd/init-wizard.ts +615 -0
  96. package/dist/resources/extensions/gsd/json-persistence.ts +67 -0
  97. package/dist/resources/extensions/gsd/jsonl-utils.ts +21 -0
  98. package/dist/resources/extensions/gsd/key-manager.ts +995 -0
  99. package/dist/resources/extensions/gsd/metrics.ts +49 -36
  100. package/dist/resources/extensions/gsd/migrate/command.ts +1 -1
  101. package/dist/resources/extensions/gsd/migrate/parsers.ts +10 -95
  102. package/dist/resources/extensions/gsd/milestone-actions.ts +126 -0
  103. package/dist/resources/extensions/gsd/milestone-ids.ts +95 -0
  104. package/dist/resources/extensions/gsd/native-git-bridge.ts +5 -10
  105. package/dist/resources/extensions/gsd/parallel-eligibility.ts +3 -3
  106. package/dist/resources/extensions/gsd/paths.ts +1 -11
  107. package/dist/resources/extensions/gsd/plugin-importer.ts +3 -2
  108. package/dist/resources/extensions/gsd/preferences-models.ts +323 -0
  109. package/dist/resources/extensions/gsd/preferences-skills.ts +169 -0
  110. package/dist/resources/extensions/gsd/preferences-types.ts +223 -0
  111. package/dist/resources/extensions/gsd/preferences-validation.ts +597 -0
  112. package/dist/resources/extensions/gsd/preferences.ts +219 -1305
  113. package/dist/resources/extensions/gsd/prompt-cache-optimizer.ts +213 -0
  114. package/dist/resources/extensions/gsd/prompt-compressor.ts +508 -0
  115. package/dist/resources/extensions/gsd/prompt-loader.ts +4 -2
  116. package/dist/resources/extensions/gsd/prompt-ordering.ts +200 -0
  117. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +2 -2
  118. package/dist/resources/extensions/gsd/prompts/complete-slice.md +4 -4
  119. package/dist/resources/extensions/gsd/prompts/discuss-headless.md +2 -4
  120. package/dist/resources/extensions/gsd/prompts/discuss.md +13 -5
  121. package/dist/resources/extensions/gsd/prompts/execute-task.md +0 -1
  122. package/dist/resources/extensions/gsd/prompts/guided-complete-slice.md +1 -1
  123. package/dist/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -1
  124. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +0 -1
  125. package/dist/resources/extensions/gsd/prompts/plan-slice.md +0 -1
  126. package/dist/resources/extensions/gsd/prompts/queue.md +30 -0
  127. package/dist/resources/extensions/gsd/prompts/quick-task.md +0 -6
  128. package/dist/resources/extensions/gsd/prompts/replan-slice.md +0 -1
  129. package/dist/resources/extensions/gsd/prompts/rewrite-docs.md +0 -1
  130. package/dist/resources/extensions/gsd/prompts/system.md +1 -1
  131. package/dist/resources/extensions/gsd/provider-error-pause.ts +59 -10
  132. package/dist/resources/extensions/gsd/queue-order.ts +11 -12
  133. package/dist/resources/extensions/gsd/queue-reorder-ui.ts +15 -2
  134. package/dist/resources/extensions/gsd/quick.ts +18 -15
  135. package/dist/resources/extensions/gsd/reports.ts +1 -7
  136. package/dist/resources/extensions/gsd/routing-history.ts +13 -17
  137. package/dist/resources/extensions/gsd/safe-fs.ts +47 -0
  138. package/dist/resources/extensions/gsd/semantic-chunker.ts +336 -0
  139. package/dist/resources/extensions/gsd/session-forensics.ts +8 -23
  140. package/dist/resources/extensions/gsd/session-lock.ts +284 -0
  141. package/dist/resources/extensions/gsd/session-status-io.ts +23 -41
  142. package/dist/resources/extensions/gsd/skills/gsd-headless/SKILL.md +38 -1
  143. package/dist/resources/extensions/gsd/skills/gsd-headless/references/answer-injection.md +35 -6
  144. package/dist/resources/extensions/gsd/state.ts +54 -2
  145. package/dist/resources/extensions/gsd/structured-data-formatter.ts +144 -0
  146. package/dist/resources/extensions/gsd/summary-distiller.ts +258 -0
  147. package/dist/resources/extensions/gsd/tests/activity-log.test.ts +213 -0
  148. package/dist/resources/extensions/gsd/tests/agent-end-retry.test.ts +107 -0
  149. package/dist/resources/extensions/gsd/tests/all-milestones-complete-merge.test.ts +197 -0
  150. package/dist/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +1 -1
  151. package/dist/resources/extensions/gsd/tests/auto-preflight.test.ts +33 -39
  152. package/dist/resources/extensions/gsd/tests/auto-secrets-gate.test.ts +108 -2
  153. package/dist/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +257 -0
  154. package/dist/resources/extensions/gsd/tests/auto-skip-loop.test.ts +1 -1
  155. package/dist/resources/extensions/gsd/tests/auto-worktree-milestone-merge.test.ts +3 -0
  156. package/dist/resources/extensions/gsd/tests/commands-logs.test.ts +241 -0
  157. package/dist/resources/extensions/gsd/tests/context-budget.test.ts +69 -0
  158. package/dist/resources/extensions/gsd/tests/detection.test.ts +398 -0
  159. package/dist/resources/extensions/gsd/tests/discuss-prompt.test.ts +12 -24
  160. package/dist/resources/extensions/gsd/tests/dispatch-guard.test.ts +118 -94
  161. package/dist/resources/extensions/gsd/tests/dispatch-stall-guard.test.ts +126 -0
  162. package/dist/resources/extensions/gsd/tests/dist-redirect.mjs +7 -3
  163. package/dist/resources/extensions/gsd/tests/doctor-fixlevel.test.ts +75 -0
  164. package/dist/resources/extensions/gsd/tests/doctor-git.test.ts +17 -55
  165. package/dist/resources/extensions/gsd/tests/export-html-enhancements.test.ts +375 -0
  166. package/dist/resources/extensions/gsd/tests/extension-selector-separator.test.ts +122 -0
  167. package/dist/resources/extensions/gsd/tests/feature-branch-lifecycle-integration.test.ts +3 -0
  168. package/dist/resources/extensions/gsd/tests/gsd-inspect.test.ts +1 -1
  169. package/dist/resources/extensions/gsd/tests/headless-answers.test.ts +340 -0
  170. package/dist/resources/extensions/gsd/tests/in-flight-tool-tracking.test.ts +24 -82
  171. package/dist/resources/extensions/gsd/tests/init-wizard.test.ts +197 -0
  172. package/dist/resources/extensions/gsd/tests/key-manager.test.ts +414 -0
  173. package/dist/resources/extensions/gsd/tests/metrics.test.ts +173 -305
  174. package/dist/resources/extensions/gsd/tests/milestone-transition-worktree.test.ts +3 -0
  175. package/dist/resources/extensions/gsd/tests/model-isolation.test.ts +59 -1
  176. package/dist/resources/extensions/gsd/tests/next-milestone-id.test.ts +18 -61
  177. package/dist/resources/extensions/gsd/tests/none-mode-gates.test.ts +17 -8
  178. package/dist/resources/extensions/gsd/tests/parallel-merge.test.ts +3 -0
  179. package/dist/resources/extensions/gsd/tests/parallel-workers-multi-milestone-e2e.test.ts +1 -1
  180. package/dist/resources/extensions/gsd/tests/park-edge-cases.test.ts +276 -0
  181. package/dist/resources/extensions/gsd/tests/park-milestone.test.ts +401 -0
  182. package/dist/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +23 -47
  183. package/dist/resources/extensions/gsd/tests/preferences.test.ts +284 -0
  184. package/dist/resources/extensions/gsd/tests/prompt-cache-optimizer.test.ts +314 -0
  185. package/dist/resources/extensions/gsd/tests/prompt-compressor.test.ts +529 -0
  186. package/dist/resources/extensions/gsd/tests/prompt-ordering.test.ts +296 -0
  187. package/dist/resources/extensions/gsd/tests/provider-errors.test.ts +338 -0
  188. package/dist/resources/extensions/gsd/tests/reassess-detection.test.ts +154 -0
  189. package/dist/resources/extensions/gsd/tests/remote-questions.test.ts +1 -1
  190. package/dist/resources/extensions/gsd/tests/remote-status.test.ts +2 -2
  191. package/dist/resources/extensions/gsd/tests/roadmap-slices.test.ts +43 -60
  192. package/dist/resources/extensions/gsd/tests/semantic-chunker.test.ts +426 -0
  193. package/dist/resources/extensions/gsd/tests/session-lock.test.ts +315 -0
  194. package/dist/resources/extensions/gsd/tests/stale-worktree-cwd.test.ts +3 -0
  195. package/dist/resources/extensions/gsd/tests/stop-auto-remote.test.ts +8 -5
  196. package/dist/resources/extensions/gsd/tests/structured-data-formatter.test.ts +365 -0
  197. package/dist/resources/extensions/gsd/tests/summary-distiller.test.ts +323 -0
  198. package/dist/resources/extensions/gsd/tests/token-counter.test.ts +129 -0
  199. package/dist/resources/extensions/gsd/tests/token-optimization-benchmark.test.ts +1272 -0
  200. package/dist/resources/extensions/gsd/tests/token-optimization-prefs.test.ts +164 -0
  201. package/dist/resources/extensions/gsd/tests/token-profile.test.ts +8 -1
  202. package/dist/resources/extensions/gsd/tests/triage-dispatch.test.ts +69 -73
  203. package/dist/resources/extensions/gsd/tests/validate-directory.test.ts +222 -0
  204. package/dist/resources/extensions/gsd/tests/validate-milestone.test.ts +55 -0
  205. package/dist/resources/extensions/gsd/tests/verification-evidence.test.ts +26 -24
  206. package/dist/resources/extensions/gsd/tests/verification-gate.test.ts +251 -8
  207. package/dist/resources/extensions/gsd/tests/visualizer-overlay.test.ts +2 -2
  208. package/dist/resources/extensions/gsd/tests/visualizer-views.test.ts +2 -1
  209. package/dist/resources/extensions/gsd/tests/workspace-index.test.ts +24 -61
  210. package/dist/resources/extensions/gsd/tests/worktree-e2e.test.ts +5 -2
  211. package/dist/resources/extensions/gsd/tests/write-gate.test.ts +132 -43
  212. package/dist/resources/extensions/gsd/token-counter.ts +20 -0
  213. package/dist/resources/extensions/gsd/triage-ui.ts +1 -1
  214. package/dist/resources/extensions/gsd/types.ts +5 -1
  215. package/dist/resources/extensions/gsd/unit-runtime.ts +16 -13
  216. package/dist/resources/extensions/gsd/validate-directory.ts +164 -0
  217. package/dist/resources/extensions/gsd/verification-evidence.ts +9 -4
  218. package/dist/resources/extensions/gsd/verification-gate.ts +83 -7
  219. package/dist/resources/extensions/gsd/visualizer-data.ts +1 -1
  220. package/dist/resources/extensions/gsd/visualizer-overlay.ts +5 -2
  221. package/dist/resources/extensions/gsd/visualizer-views.ts +2 -3
  222. package/dist/resources/extensions/gsd/worktree-command.ts +4 -51
  223. package/dist/resources/extensions/gsd/worktree-manager.ts +7 -9
  224. package/dist/resources/extensions/gsd/worktree.ts +41 -1
  225. package/dist/resources/extensions/mcporter/index.ts +27 -14
  226. package/dist/resources/extensions/remote-questions/discord-adapter.ts +9 -20
  227. package/dist/resources/extensions/remote-questions/http-client.ts +76 -0
  228. package/dist/resources/extensions/remote-questions/manager.ts +6 -24
  229. package/dist/resources/extensions/remote-questions/mod.ts +16 -0
  230. package/dist/resources/extensions/remote-questions/notify.ts +90 -0
  231. package/dist/resources/extensions/remote-questions/remote-command.ts +1 -1
  232. package/dist/resources/extensions/remote-questions/slack-adapter.ts +11 -18
  233. package/dist/resources/extensions/remote-questions/store.ts +5 -1
  234. package/dist/resources/extensions/remote-questions/telegram-adapter.ts +8 -20
  235. package/dist/resources/extensions/remote-questions/types.ts +29 -3
  236. package/dist/resources/extensions/search-the-web/native-search.ts +7 -0
  237. package/dist/resources/extensions/search-the-web/provider.ts +15 -3
  238. package/dist/resources/extensions/search-the-web/tool-llm-context.ts +1 -13
  239. package/dist/resources/extensions/search-the-web/tool-search.ts +1 -13
  240. package/dist/resources/extensions/shared/format-utils.ts +53 -0
  241. package/dist/resources/extensions/shared/frontmatter.ts +117 -0
  242. package/dist/resources/extensions/shared/mod.ts +33 -0
  243. package/dist/resources/extensions/shared/sanitize.ts +19 -0
  244. package/dist/resources/extensions/slash-commands/create-extension.ts +1 -1
  245. package/dist/resources/extensions/slash-commands/create-slash-command.ts +1 -1
  246. package/dist/resources/extensions/subagent/index.ts +1 -2
  247. package/dist/resources/extensions/ttsr/index.ts +5 -0
  248. package/dist/resources/extensions/ttsr/rule-loader.ts +4 -51
  249. package/dist/resources/extensions/universal-config/discovery.ts +37 -15
  250. package/dist/resources/extensions/voice/index.ts +1 -1
  251. package/dist/resources/skills/accessibility/SKILL.md +522 -0
  252. package/dist/resources/skills/accessibility/references/WCAG.md +162 -0
  253. package/dist/resources/skills/agent-browser/SKILL.md +517 -0
  254. package/dist/resources/skills/agent-browser/references/authentication.md +202 -0
  255. package/dist/resources/skills/agent-browser/references/commands.md +263 -0
  256. package/dist/resources/skills/agent-browser/references/profiling.md +120 -0
  257. package/dist/resources/skills/agent-browser/references/proxy-support.md +194 -0
  258. package/dist/resources/skills/agent-browser/references/session-management.md +193 -0
  259. package/dist/resources/skills/agent-browser/references/snapshot-refs.md +194 -0
  260. package/dist/resources/skills/agent-browser/references/video-recording.md +173 -0
  261. package/dist/resources/skills/agent-browser/templates/authenticated-session.sh +105 -0
  262. package/dist/resources/skills/agent-browser/templates/capture-workflow.sh +69 -0
  263. package/dist/resources/skills/agent-browser/templates/form-automation.sh +62 -0
  264. package/dist/resources/skills/best-practices/SKILL.md +583 -0
  265. package/dist/resources/skills/code-optimizer/SKILL.md +160 -0
  266. package/dist/resources/skills/code-optimizer/references/algorithmic-complexity.md +66 -0
  267. package/dist/resources/skills/code-optimizer/references/build-compilation.md +90 -0
  268. package/dist/resources/skills/code-optimizer/references/bundle-dependencies.md +82 -0
  269. package/dist/resources/skills/code-optimizer/references/caching-memoization.md +76 -0
  270. package/dist/resources/skills/code-optimizer/references/concurrency-async.md +80 -0
  271. package/dist/resources/skills/code-optimizer/references/config-infra.md +71 -0
  272. package/dist/resources/skills/code-optimizer/references/data-structures.md +80 -0
  273. package/dist/resources/skills/code-optimizer/references/database-queries.md +76 -0
  274. package/dist/resources/skills/code-optimizer/references/dead-code-redundancy.md +84 -0
  275. package/dist/resources/skills/code-optimizer/references/error-resilience.md +80 -0
  276. package/dist/resources/skills/code-optimizer/references/io-network.md +89 -0
  277. package/dist/resources/skills/code-optimizer/references/logging-observability.md +64 -0
  278. package/dist/resources/skills/code-optimizer/references/memory-resources.md +66 -0
  279. package/dist/resources/skills/code-optimizer/references/rendering-ui.md +90 -0
  280. package/dist/resources/skills/code-optimizer/references/security-performance.md +68 -0
  281. package/dist/resources/skills/core-web-vitals/SKILL.md +441 -0
  282. package/dist/resources/skills/core-web-vitals/references/LCP.md +208 -0
  283. package/dist/resources/skills/make-interfaces-feel-better/SKILL.md +122 -0
  284. package/dist/resources/skills/make-interfaces-feel-better/animations.md +379 -0
  285. package/dist/resources/skills/make-interfaces-feel-better/performance.md +88 -0
  286. package/dist/resources/skills/make-interfaces-feel-better/surfaces.md +247 -0
  287. package/dist/resources/skills/make-interfaces-feel-better/typography.md +123 -0
  288. package/dist/resources/skills/react-best-practices/README.md +123 -0
  289. package/dist/resources/skills/react-best-practices/SKILL.md +136 -0
  290. package/dist/resources/skills/react-best-practices/metadata.json +15 -0
  291. package/dist/resources/skills/react-best-practices/rules/_sections.md +46 -0
  292. package/dist/resources/skills/react-best-practices/rules/_template.md +28 -0
  293. package/dist/resources/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  294. package/dist/resources/skills/react-best-practices/rules/advanced-init-once.md +42 -0
  295. package/dist/resources/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
  296. package/dist/resources/skills/react-best-practices/rules/async-api-routes.md +38 -0
  297. package/dist/resources/skills/react-best-practices/rules/async-defer-await.md +80 -0
  298. package/dist/resources/skills/react-best-practices/rules/async-dependencies.md +51 -0
  299. package/dist/resources/skills/react-best-practices/rules/async-parallel.md +28 -0
  300. package/dist/resources/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  301. package/dist/resources/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  302. package/dist/resources/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  303. package/dist/resources/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  304. package/dist/resources/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  305. package/dist/resources/skills/react-best-practices/rules/bundle-preload.md +50 -0
  306. package/dist/resources/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  307. package/dist/resources/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  308. package/dist/resources/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  309. package/dist/resources/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  310. package/dist/resources/skills/react-best-practices/rules/js-batch-dom-css.md +107 -0
  311. package/dist/resources/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  312. package/dist/resources/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  313. package/dist/resources/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  314. package/dist/resources/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  315. package/dist/resources/skills/react-best-practices/rules/js-early-exit.md +50 -0
  316. package/dist/resources/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  317. package/dist/resources/skills/react-best-practices/rules/js-index-maps.md +37 -0
  318. package/dist/resources/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  319. package/dist/resources/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  320. package/dist/resources/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  321. package/dist/resources/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  322. package/dist/resources/skills/react-best-practices/rules/rendering-activity.md +26 -0
  323. package/dist/resources/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  324. package/dist/resources/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  325. package/dist/resources/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  326. package/dist/resources/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  327. package/dist/resources/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  328. package/dist/resources/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  329. package/dist/resources/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  330. package/dist/resources/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  331. package/dist/resources/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  332. package/dist/resources/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  333. package/dist/resources/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  334. package/dist/resources/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  335. package/dist/resources/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  336. package/dist/resources/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  337. package/dist/resources/skills/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  338. package/dist/resources/skills/react-best-practices/rules/rerender-memo.md +44 -0
  339. package/dist/resources/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  340. package/dist/resources/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  341. package/dist/resources/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  342. package/dist/resources/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  343. package/dist/resources/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  344. package/dist/resources/skills/react-best-practices/rules/server-auth-actions.md +96 -0
  345. package/dist/resources/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  346. package/dist/resources/skills/react-best-practices/rules/server-cache-react.md +76 -0
  347. package/dist/resources/skills/react-best-practices/rules/server-dedup-props.md +65 -0
  348. package/dist/resources/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  349. package/dist/resources/skills/react-best-practices/rules/server-serialization.md +38 -0
  350. package/dist/resources/skills/userinterface-wiki/SKILL.md +253 -0
  351. package/dist/resources/skills/userinterface-wiki/rules/_sections.md +66 -0
  352. package/dist/resources/skills/userinterface-wiki/rules/_template.md +24 -0
  353. package/dist/resources/skills/userinterface-wiki/rules/a11y-reduced-motion-check.md +30 -0
  354. package/dist/resources/skills/userinterface-wiki/rules/a11y-toggle-setting.md +30 -0
  355. package/dist/resources/skills/userinterface-wiki/rules/a11y-visual-equivalent.md +36 -0
  356. package/dist/resources/skills/userinterface-wiki/rules/a11y-volume-control.md +28 -0
  357. package/dist/resources/skills/userinterface-wiki/rules/appropriate-confirmations-only.md +19 -0
  358. package/dist/resources/skills/userinterface-wiki/rules/appropriate-errors-warnings.md +18 -0
  359. package/dist/resources/skills/userinterface-wiki/rules/appropriate-no-decorative.md +21 -0
  360. package/dist/resources/skills/userinterface-wiki/rules/appropriate-no-high-frequency.md +28 -0
  361. package/dist/resources/skills/userinterface-wiki/rules/appropriate-no-punishing.md +27 -0
  362. package/dist/resources/skills/userinterface-wiki/rules/container-callback-ref.md +31 -0
  363. package/dist/resources/skills/userinterface-wiki/rules/container-guard-initial-zero.md +25 -0
  364. package/dist/resources/skills/userinterface-wiki/rules/container-no-excessive-use.md +13 -0
  365. package/dist/resources/skills/userinterface-wiki/rules/container-overflow-hidden.md +25 -0
  366. package/dist/resources/skills/userinterface-wiki/rules/container-transition-delay.md +21 -0
  367. package/dist/resources/skills/userinterface-wiki/rules/container-two-div-pattern.md +35 -0
  368. package/dist/resources/skills/userinterface-wiki/rules/container-use-resize-observer.md +48 -0
  369. package/dist/resources/skills/userinterface-wiki/rules/context-cleanup-nodes.md +25 -0
  370. package/dist/resources/skills/userinterface-wiki/rules/context-resume-suspended.md +28 -0
  371. package/dist/resources/skills/userinterface-wiki/rules/context-reuse-single.md +30 -0
  372. package/dist/resources/skills/userinterface-wiki/rules/design-filter-for-character.md +25 -0
  373. package/dist/resources/skills/userinterface-wiki/rules/design-noise-for-percussion.md +26 -0
  374. package/dist/resources/skills/userinterface-wiki/rules/design-oscillator-for-tonal.md +22 -0
  375. package/dist/resources/skills/userinterface-wiki/rules/duration-max-300ms.md +21 -0
  376. package/dist/resources/skills/userinterface-wiki/rules/duration-press-hover.md +21 -0
  377. package/dist/resources/skills/userinterface-wiki/rules/duration-shorten-before-curve.md +21 -0
  378. package/dist/resources/skills/userinterface-wiki/rules/duration-small-state.md +15 -0
  379. package/dist/resources/skills/userinterface-wiki/rules/easing-entrance-ease-out.md +21 -0
  380. package/dist/resources/skills/userinterface-wiki/rules/easing-exit-ease-in.md +21 -0
  381. package/dist/resources/skills/userinterface-wiki/rules/easing-for-state-change.md +27 -0
  382. package/dist/resources/skills/userinterface-wiki/rules/easing-linear-only-progress.md +21 -0
  383. package/dist/resources/skills/userinterface-wiki/rules/easing-natural-decay.md +22 -0
  384. package/dist/resources/skills/userinterface-wiki/rules/easing-no-linear-motion.md +22 -0
  385. package/dist/resources/skills/userinterface-wiki/rules/easing-transition-ease-in-out.md +15 -0
  386. package/dist/resources/skills/userinterface-wiki/rules/envelope-exponential-decay.md +21 -0
  387. package/dist/resources/skills/userinterface-wiki/rules/envelope-no-zero-target.md +21 -0
  388. package/dist/resources/skills/userinterface-wiki/rules/envelope-set-initial-value.md +22 -0
  389. package/dist/resources/skills/userinterface-wiki/rules/exit-key-required.md +29 -0
  390. package/dist/resources/skills/userinterface-wiki/rules/exit-matches-initial.md +29 -0
  391. package/dist/resources/skills/userinterface-wiki/rules/exit-prop-required.md +33 -0
  392. package/dist/resources/skills/userinterface-wiki/rules/exit-requires-wrapper.md +27 -0
  393. package/dist/resources/skills/userinterface-wiki/rules/impl-default-subtle.md +21 -0
  394. package/dist/resources/skills/userinterface-wiki/rules/impl-preload-audio.md +34 -0
  395. package/dist/resources/skills/userinterface-wiki/rules/impl-reset-current-time.md +26 -0
  396. package/dist/resources/skills/userinterface-wiki/rules/mode-pop-layout-for-lists.md +25 -0
  397. package/dist/resources/skills/userinterface-wiki/rules/mode-sync-layout-conflict.md +29 -0
  398. package/dist/resources/skills/userinterface-wiki/rules/mode-wait-doubles-duration.md +25 -0
  399. package/dist/resources/skills/userinterface-wiki/rules/morphing-aria-hidden.md +21 -0
  400. package/dist/resources/skills/userinterface-wiki/rules/morphing-consistent-viewbox.md +23 -0
  401. package/dist/resources/skills/userinterface-wiki/rules/morphing-group-variants.md +33 -0
  402. package/dist/resources/skills/userinterface-wiki/rules/morphing-jump-non-grouped.md +29 -0
  403. package/dist/resources/skills/userinterface-wiki/rules/morphing-reduced-motion.md +28 -0
  404. package/dist/resources/skills/userinterface-wiki/rules/morphing-spring-rotation.md +23 -0
  405. package/dist/resources/skills/userinterface-wiki/rules/morphing-strokelinecap-round.md +21 -0
  406. package/dist/resources/skills/userinterface-wiki/rules/morphing-three-lines.md +32 -0
  407. package/dist/resources/skills/userinterface-wiki/rules/morphing-use-collapsed.md +33 -0
  408. package/dist/resources/skills/userinterface-wiki/rules/native-backdrop-styling.md +27 -0
  409. package/dist/resources/skills/userinterface-wiki/rules/native-placeholder-styling.md +27 -0
  410. package/dist/resources/skills/userinterface-wiki/rules/native-selection-styling.md +18 -0
  411. package/dist/resources/skills/userinterface-wiki/rules/nested-consistent-timing.md +25 -0
  412. package/dist/resources/skills/userinterface-wiki/rules/nested-propagate-required.md +41 -0
  413. package/dist/resources/skills/userinterface-wiki/rules/none-context-menu-entrance.md +25 -0
  414. package/dist/resources/skills/userinterface-wiki/rules/none-high-frequency.md +29 -0
  415. package/dist/resources/skills/userinterface-wiki/rules/none-keyboard-navigation.md +32 -0
  416. package/dist/resources/skills/userinterface-wiki/rules/param-click-duration.md +21 -0
  417. package/dist/resources/skills/userinterface-wiki/rules/param-filter-frequency-range.md +21 -0
  418. package/dist/resources/skills/userinterface-wiki/rules/param-q-value-range.md +21 -0
  419. package/dist/resources/skills/userinterface-wiki/rules/param-reasonable-gain.md +21 -0
  420. package/dist/resources/skills/userinterface-wiki/rules/physics-active-state.md +23 -0
  421. package/dist/resources/skills/userinterface-wiki/rules/physics-no-excessive-stagger.md +22 -0
  422. package/dist/resources/skills/userinterface-wiki/rules/physics-spring-for-overshoot.md +23 -0
  423. package/dist/resources/skills/userinterface-wiki/rules/physics-subtle-deformation.md +22 -0
  424. package/dist/resources/skills/userinterface-wiki/rules/prefetch-hit-slop.md +27 -0
  425. package/dist/resources/skills/userinterface-wiki/rules/prefetch-keyboard-tab.md +19 -0
  426. package/dist/resources/skills/userinterface-wiki/rules/prefetch-not-everything.md +22 -0
  427. package/dist/resources/skills/userinterface-wiki/rules/prefetch-touch-fallback.md +34 -0
  428. package/dist/resources/skills/userinterface-wiki/rules/prefetch-trajectory-over-hover.md +32 -0
  429. package/dist/resources/skills/userinterface-wiki/rules/prefetch-use-selectively.md +13 -0
  430. package/dist/resources/skills/userinterface-wiki/rules/presence-disable-interactions.md +31 -0
  431. package/dist/resources/skills/userinterface-wiki/rules/presence-hook-in-child.md +31 -0
  432. package/dist/resources/skills/userinterface-wiki/rules/presence-safe-to-remove.md +37 -0
  433. package/dist/resources/skills/userinterface-wiki/rules/pseudo-content-required.md +28 -0
  434. package/dist/resources/skills/userinterface-wiki/rules/pseudo-first-line-styling.md +27 -0
  435. package/dist/resources/skills/userinterface-wiki/rules/pseudo-hit-target-expansion.md +31 -0
  436. package/dist/resources/skills/userinterface-wiki/rules/pseudo-marker-styling.md +28 -0
  437. package/dist/resources/skills/userinterface-wiki/rules/pseudo-over-dom-node.md +32 -0
  438. package/dist/resources/skills/userinterface-wiki/rules/pseudo-position-relative-parent.md +33 -0
  439. package/dist/resources/skills/userinterface-wiki/rules/pseudo-z-index-layering.md +37 -0
  440. package/dist/resources/skills/userinterface-wiki/rules/spring-for-gestures.md +27 -0
  441. package/dist/resources/skills/userinterface-wiki/rules/spring-for-interruptible.md +27 -0
  442. package/dist/resources/skills/userinterface-wiki/rules/spring-params-balanced.md +29 -0
  443. package/dist/resources/skills/userinterface-wiki/rules/spring-preserves-velocity.md +28 -0
  444. package/dist/resources/skills/userinterface-wiki/rules/staging-dim-background.md +22 -0
  445. package/dist/resources/skills/userinterface-wiki/rules/staging-one-focal-point.md +24 -0
  446. package/dist/resources/skills/userinterface-wiki/rules/staging-z-index-hierarchy.md +22 -0
  447. package/dist/resources/skills/userinterface-wiki/rules/timing-consistent.md +24 -0
  448. package/dist/resources/skills/userinterface-wiki/rules/timing-no-entrance-context-menu.md +22 -0
  449. package/dist/resources/skills/userinterface-wiki/rules/timing-under-300ms.md +22 -0
  450. package/dist/resources/skills/userinterface-wiki/rules/transition-name-cleanup.md +28 -0
  451. package/dist/resources/skills/userinterface-wiki/rules/transition-name-required.md +27 -0
  452. package/dist/resources/skills/userinterface-wiki/rules/transition-name-unique.md +24 -0
  453. package/dist/resources/skills/userinterface-wiki/rules/transition-over-js-library.md +32 -0
  454. package/dist/resources/skills/userinterface-wiki/rules/transition-style-pseudo-elements.md +24 -0
  455. package/dist/resources/skills/userinterface-wiki/rules/type-antialiased-on-retina.md +18 -0
  456. package/dist/resources/skills/userinterface-wiki/rules/type-disambiguation-stylistic-set.md +15 -0
  457. package/dist/resources/skills/userinterface-wiki/rules/type-font-display-swap.md +28 -0
  458. package/dist/resources/skills/userinterface-wiki/rules/type-justify-with-hyphens.md +24 -0
  459. package/dist/resources/skills/userinterface-wiki/rules/type-letter-spacing-uppercase.md +28 -0
  460. package/dist/resources/skills/userinterface-wiki/rules/type-no-font-synthesis.md +18 -0
  461. package/dist/resources/skills/userinterface-wiki/rules/type-oldstyle-nums-for-prose.md +21 -0
  462. package/dist/resources/skills/userinterface-wiki/rules/type-opentype-contextual-alternates.md +15 -0
  463. package/dist/resources/skills/userinterface-wiki/rules/type-optical-sizing-auto.md +25 -0
  464. package/dist/resources/skills/userinterface-wiki/rules/type-proper-fractions.md +15 -0
  465. package/dist/resources/skills/userinterface-wiki/rules/type-slashed-zero.md +17 -0
  466. package/dist/resources/skills/userinterface-wiki/rules/type-tabular-nums-for-data.md +21 -0
  467. package/dist/resources/skills/userinterface-wiki/rules/type-text-wrap-balance-headings.md +21 -0
  468. package/dist/resources/skills/userinterface-wiki/rules/type-text-wrap-pretty.md +16 -0
  469. package/dist/resources/skills/userinterface-wiki/rules/type-underline-offset.md +25 -0
  470. package/dist/resources/skills/userinterface-wiki/rules/type-variable-weight-continuous.md +23 -0
  471. package/dist/resources/skills/userinterface-wiki/rules/ux-aesthetic-usability.md +32 -0
  472. package/dist/resources/skills/userinterface-wiki/rules/ux-cognitive-load-reduce.md +49 -0
  473. package/dist/resources/skills/userinterface-wiki/rules/ux-common-region-boundaries.md +50 -0
  474. package/dist/resources/skills/userinterface-wiki/rules/ux-doherty-perceived-speed.md +29 -0
  475. package/dist/resources/skills/userinterface-wiki/rules/ux-doherty-under-400ms.md +30 -0
  476. package/dist/resources/skills/userinterface-wiki/rules/ux-fitts-hit-area.md +32 -0
  477. package/dist/resources/skills/userinterface-wiki/rules/ux-fitts-target-size.md +31 -0
  478. package/dist/resources/skills/userinterface-wiki/rules/ux-goal-gradient-progress.md +33 -0
  479. package/dist/resources/skills/userinterface-wiki/rules/ux-hicks-minimize-choices.md +45 -0
  480. package/dist/resources/skills/userinterface-wiki/rules/ux-jakobs-familiar-patterns.md +37 -0
  481. package/dist/resources/skills/userinterface-wiki/rules/ux-millers-chunking.md +23 -0
  482. package/dist/resources/skills/userinterface-wiki/rules/ux-pareto-prioritize-features.md +36 -0
  483. package/dist/resources/skills/userinterface-wiki/rules/ux-peak-end-finish-strong.md +35 -0
  484. package/dist/resources/skills/userinterface-wiki/rules/ux-postels-accept-messy-input.md +45 -0
  485. package/dist/resources/skills/userinterface-wiki/rules/ux-pragnanz-simplify.md +33 -0
  486. package/dist/resources/skills/userinterface-wiki/rules/ux-progressive-disclosure.md +41 -0
  487. package/dist/resources/skills/userinterface-wiki/rules/ux-proximity-grouping.md +38 -0
  488. package/dist/resources/skills/userinterface-wiki/rules/ux-serial-position.md +31 -0
  489. package/dist/resources/skills/userinterface-wiki/rules/ux-similarity-consistency.md +35 -0
  490. package/dist/resources/skills/userinterface-wiki/rules/ux-teslers-complexity.md +28 -0
  491. package/dist/resources/skills/userinterface-wiki/rules/ux-uniform-connectedness.md +43 -0
  492. package/dist/resources/skills/userinterface-wiki/rules/ux-von-restorff-emphasis.md +29 -0
  493. package/dist/resources/skills/userinterface-wiki/rules/ux-zeigarnik-show-incomplete.md +36 -0
  494. package/dist/resources/skills/userinterface-wiki/rules/visual-animate-shadow-pseudo.md +49 -0
  495. package/dist/resources/skills/userinterface-wiki/rules/visual-border-alpha-colors.md +25 -0
  496. package/dist/resources/skills/userinterface-wiki/rules/visual-button-shadow-anatomy.md +49 -0
  497. package/dist/resources/skills/userinterface-wiki/rules/visual-concentric-radius.md +40 -0
  498. package/dist/resources/skills/userinterface-wiki/rules/visual-consistent-spacing-scale.md +35 -0
  499. package/dist/resources/skills/userinterface-wiki/rules/visual-layered-shadows.md +30 -0
  500. package/dist/resources/skills/userinterface-wiki/rules/visual-no-pure-black-shadow.md +25 -0
  501. package/dist/resources/skills/userinterface-wiki/rules/visual-shadow-direction.md +25 -0
  502. package/dist/resources/skills/userinterface-wiki/rules/visual-shadow-matches-elevation.md +23 -0
  503. package/dist/resources/skills/userinterface-wiki/rules/weight-duration-matches-action.md +29 -0
  504. package/dist/resources/skills/userinterface-wiki/rules/weight-match-action.md +32 -0
  505. package/dist/resources/skills/web-design-guidelines/SKILL.md +39 -0
  506. package/dist/resources/skills/web-quality-audit/SKILL.md +170 -0
  507. package/dist/resources/skills/web-quality-audit/scripts/analyze.sh +91 -0
  508. package/package.json +22 -8
  509. package/packages/native/package.json +28 -0
  510. package/packages/pi-agent-core/package.json +6 -0
  511. package/packages/pi-ai/dist/models.generated.d.ts +43 -11
  512. package/packages/pi-ai/dist/models.generated.d.ts.map +1 -1
  513. package/packages/pi-ai/dist/models.generated.js +34 -26
  514. package/packages/pi-ai/dist/models.generated.js.map +1 -1
  515. package/packages/pi-ai/dist/providers/anthropic.js +3 -2
  516. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  517. package/packages/pi-ai/dist/providers/openai-codex-responses.js +14 -4
  518. package/packages/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  519. package/packages/pi-ai/oauth.d.ts +1 -0
  520. package/packages/pi-ai/oauth.js +1 -0
  521. package/packages/pi-ai/package.json +2 -2
  522. package/packages/pi-ai/src/models.generated.ts +42 -34
  523. package/packages/pi-ai/src/providers/anthropic.ts +3 -2
  524. package/packages/pi-ai/src/providers/openai-codex-responses.ts +15 -4
  525. package/packages/pi-coding-agent/dist/core/agent-session.js +1 -1
  526. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  527. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  528. package/packages/pi-coding-agent/dist/core/auth-storage.js +2 -1
  529. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  530. package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  531. package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.js +2 -1
  532. package/packages/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
  533. package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
  534. package/packages/pi-coding-agent/dist/core/compaction/compaction.js +3 -2
  535. package/packages/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
  536. package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
  537. package/packages/pi-coding-agent/dist/core/compaction/utils.js +2 -2
  538. package/packages/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
  539. package/packages/pi-coding-agent/dist/core/constants.d.ts +29 -0
  540. package/packages/pi-coding-agent/dist/core/constants.d.ts.map +1 -0
  541. package/packages/pi-coding-agent/dist/core/constants.js +44 -0
  542. package/packages/pi-coding-agent/dist/core/constants.js.map +1 -0
  543. package/packages/pi-coding-agent/dist/core/extensions/loader.js +1 -1
  544. package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  545. package/packages/pi-coding-agent/dist/core/lsp/index.d.ts.map +1 -1
  546. package/packages/pi-coding-agent/dist/core/lsp/index.js +30 -4
  547. package/packages/pi-coding-agent/dist/core/lsp/index.js.map +1 -1
  548. package/packages/pi-coding-agent/dist/core/lsp/lspmux.d.ts.map +1 -1
  549. package/packages/pi-coding-agent/dist/core/lsp/lspmux.js +13 -5
  550. package/packages/pi-coding-agent/dist/core/lsp/lspmux.js.map +1 -1
  551. package/packages/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  552. package/packages/pi-coding-agent/dist/core/model-resolver.js +14 -0
  553. package/packages/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  554. package/packages/pi-coding-agent/dist/core/resolve-config-value.d.ts.map +1 -1
  555. package/packages/pi-coding-agent/dist/core/resolve-config-value.js +12 -4
  556. package/packages/pi-coding-agent/dist/core/resolve-config-value.js.map +1 -1
  557. package/packages/pi-coding-agent/dist/core/resolve-config-value.test.js +49 -0
  558. package/packages/pi-coding-agent/dist/core/resolve-config-value.test.js.map +1 -1
  559. package/packages/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  560. package/packages/pi-coding-agent/dist/core/session-manager.js +25 -2
  561. package/packages/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  562. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +6 -0
  563. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  564. package/packages/pi-coding-agent/dist/core/settings-manager.js +22 -5
  565. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  566. package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
  567. package/packages/pi-coding-agent/dist/core/system-prompt.js +10 -0
  568. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  569. package/packages/pi-coding-agent/dist/core/tools/edit-diff.js +2 -2
  570. package/packages/pi-coding-agent/dist/core/tools/edit-diff.js.map +1 -1
  571. package/packages/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  572. package/packages/pi-coding-agent/dist/core/tools/find.js +2 -1
  573. package/packages/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  574. package/packages/pi-coding-agent/dist/core/tools/hashline-edit.js +4 -4
  575. package/packages/pi-coding-agent/dist/core/tools/hashline-edit.js.map +1 -1
  576. package/packages/pi-coding-agent/dist/core/tools/hashline.d.ts +1 -1
  577. package/packages/pi-coding-agent/dist/core/tools/hashline.js +1 -1
  578. package/packages/pi-coding-agent/dist/core/tools/hashline.js.map +1 -1
  579. package/packages/pi-coding-agent/dist/core/tools/hashline.test.js +8 -8
  580. package/packages/pi-coding-agent/dist/core/tools/hashline.test.js.map +1 -1
  581. package/packages/pi-coding-agent/dist/core/tools/index.d.ts +1 -1
  582. package/packages/pi-coding-agent/dist/core/tools/index.js +1 -1
  583. package/packages/pi-coding-agent/dist/core/tools/index.js.map +1 -1
  584. package/packages/pi-coding-agent/dist/core/tools/path-utils.d.ts +1 -0
  585. package/packages/pi-coding-agent/dist/core/tools/path-utils.d.ts.map +1 -1
  586. package/packages/pi-coding-agent/dist/core/tools/path-utils.js +1 -1
  587. package/packages/pi-coding-agent/dist/core/tools/path-utils.js.map +1 -1
  588. package/packages/pi-coding-agent/dist/core/tools/truncate.d.ts.map +1 -1
  589. package/packages/pi-coding-agent/dist/core/tools/truncate.js +2 -1
  590. package/packages/pi-coding-agent/dist/core/tools/truncate.js.map +1 -1
  591. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-selector.d.ts +9 -0
  592. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  593. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-selector.js +47 -5
  594. package/packages/pi-coding-agent/dist/modes/interactive/components/extension-selector.js.map +1 -1
  595. package/packages/pi-coding-agent/dist/modes/interactive/components/index.d.ts +1 -1
  596. package/packages/pi-coding-agent/dist/modes/interactive/components/index.d.ts.map +1 -1
  597. package/packages/pi-coding-agent/dist/modes/interactive/components/index.js +1 -1
  598. package/packages/pi-coding-agent/dist/modes/interactive/components/index.js.map +1 -1
  599. package/packages/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +4 -4
  600. package/packages/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -1
  601. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +2 -0
  602. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  603. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +12 -0
  604. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  605. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  606. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +25 -1
  607. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  608. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  609. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js +12 -2
  610. package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  611. package/packages/pi-coding-agent/dist/resources/extensions/memory/pipeline.d.ts.map +1 -1
  612. package/packages/pi-coding-agent/dist/resources/extensions/memory/pipeline.js +25 -3
  613. package/packages/pi-coding-agent/dist/resources/extensions/memory/pipeline.js.map +1 -1
  614. package/packages/pi-coding-agent/package.json +1 -5
  615. package/packages/pi-coding-agent/scripts/copy-assets.cjs +39 -8
  616. package/packages/pi-coding-agent/src/core/agent-session.ts +1 -1
  617. package/packages/pi-coding-agent/src/core/auth-storage.ts +2 -1
  618. package/packages/pi-coding-agent/src/core/compaction/branch-summarization.ts +2 -1
  619. package/packages/pi-coding-agent/src/core/compaction/compaction.ts +3 -2
  620. package/packages/pi-coding-agent/src/core/compaction/utils.ts +2 -2
  621. package/packages/pi-coding-agent/src/core/constants.ts +59 -0
  622. package/packages/pi-coding-agent/src/core/extensions/loader.ts +1 -1
  623. package/packages/pi-coding-agent/src/core/lsp/index.ts +31 -5
  624. package/packages/pi-coding-agent/src/core/lsp/lspmux.ts +13 -5
  625. package/packages/pi-coding-agent/src/core/model-resolver.ts +14 -0
  626. package/packages/pi-coding-agent/src/core/resolve-config-value.test.ts +58 -0
  627. package/packages/pi-coding-agent/src/core/resolve-config-value.ts +14 -4
  628. package/packages/pi-coding-agent/src/core/session-manager.ts +29 -6
  629. package/packages/pi-coding-agent/src/core/settings-manager.ts +33 -5
  630. package/packages/pi-coding-agent/src/core/system-prompt.ts +11 -0
  631. package/packages/pi-coding-agent/src/core/tools/edit-diff.ts +2 -2
  632. package/packages/pi-coding-agent/src/core/tools/find.ts +2 -1
  633. package/packages/pi-coding-agent/src/core/tools/hashline-edit.ts +4 -4
  634. package/packages/pi-coding-agent/src/core/tools/hashline.test.ts +8 -8
  635. package/packages/pi-coding-agent/src/core/tools/hashline.ts +1 -1
  636. package/packages/pi-coding-agent/src/core/tools/index.ts +1 -1
  637. package/packages/pi-coding-agent/src/core/tools/path-utils.ts +1 -1
  638. package/packages/pi-coding-agent/src/core/tools/truncate.ts +3 -1
  639. package/packages/pi-coding-agent/src/modes/interactive/components/extension-selector.ts +49 -5
  640. package/packages/pi-coding-agent/src/modes/interactive/components/index.ts +1 -1
  641. package/packages/pi-coding-agent/src/modes/interactive/components/login-dialog.ts +4 -4
  642. package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +15 -0
  643. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +26 -0
  644. package/packages/pi-coding-agent/src/modes/rpc/rpc-mode.ts +11 -2
  645. package/packages/pi-coding-agent/src/resources/extensions/memory/pipeline.ts +23 -3
  646. package/packages/pi-tui/dist/__tests__/autocomplete.test.d.ts +2 -0
  647. package/packages/pi-tui/dist/__tests__/autocomplete.test.d.ts.map +1 -0
  648. package/packages/pi-tui/dist/__tests__/autocomplete.test.js +149 -0
  649. package/packages/pi-tui/dist/__tests__/autocomplete.test.js.map +1 -0
  650. package/packages/pi-tui/dist/__tests__/fuzzy.test.d.ts +2 -0
  651. package/packages/pi-tui/dist/__tests__/fuzzy.test.d.ts.map +1 -0
  652. package/packages/pi-tui/dist/__tests__/fuzzy.test.js +94 -0
  653. package/packages/pi-tui/dist/__tests__/fuzzy.test.js.map +1 -0
  654. package/packages/pi-tui/dist/autocomplete.d.ts +8 -1
  655. package/packages/pi-tui/dist/autocomplete.d.ts.map +1 -1
  656. package/packages/pi-tui/dist/autocomplete.js +20 -2
  657. package/packages/pi-tui/dist/autocomplete.js.map +1 -1
  658. package/packages/pi-tui/package.json +8 -2
  659. package/packages/pi-tui/src/__tests__/autocomplete.test.ts +186 -0
  660. package/packages/pi-tui/src/__tests__/fuzzy.test.ts +112 -0
  661. package/packages/pi-tui/src/autocomplete.ts +26 -1
  662. package/pkg/package.json +1 -1
  663. package/src/resources/extensions/ask-user-questions.ts +3 -2
  664. package/src/resources/extensions/bg-shell/bg-shell-command.ts +219 -0
  665. package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +400 -0
  666. package/src/resources/extensions/bg-shell/bg-shell-tool.ts +985 -0
  667. package/src/resources/extensions/bg-shell/index.ts +17 -1561
  668. package/src/resources/extensions/bg-shell/overlay.ts +4 -0
  669. package/src/resources/extensions/bg-shell/utilities.ts +4 -16
  670. package/src/resources/extensions/browser-tools/capture.ts +34 -2
  671. package/src/resources/extensions/browser-tools/lifecycle.ts +5 -5
  672. package/src/resources/extensions/browser-tools/settle.ts +1 -1
  673. package/src/resources/extensions/browser-tools/state.ts +5 -5
  674. package/src/resources/extensions/browser-tools/tests/browser-tools-integration.test.mjs +1 -1
  675. package/src/resources/extensions/browser-tools/tests/browser-tools-unit.test.cjs +3 -3
  676. package/src/resources/extensions/browser-tools/tools/assertions.ts +1 -1
  677. package/src/resources/extensions/browser-tools/tools/device.ts +1 -1
  678. package/src/resources/extensions/browser-tools/tools/extract.ts +1 -1
  679. package/src/resources/extensions/browser-tools/tools/navigation.ts +6 -6
  680. package/src/resources/extensions/browser-tools/tools/network-mock.ts +1 -1
  681. package/src/resources/extensions/browser-tools/tools/pages.ts +1 -1
  682. package/src/resources/extensions/browser-tools/tools/screenshot.ts +28 -10
  683. package/src/resources/extensions/browser-tools/tools/state-persistence.ts +1 -1
  684. package/src/resources/extensions/browser-tools/tools/visual-diff.ts +1 -1
  685. package/src/resources/extensions/browser-tools/utils.ts +5 -5
  686. package/src/resources/extensions/get-secrets-from-user.ts +1 -1
  687. package/src/resources/extensions/google-search/index.ts +21 -8
  688. package/src/resources/extensions/gsd/activity-log.ts +2 -1
  689. package/src/resources/extensions/gsd/atomic-write.ts +35 -0
  690. package/src/resources/extensions/gsd/auto/session.ts +12 -0
  691. package/src/resources/extensions/gsd/auto-dashboard.ts +84 -3
  692. package/src/resources/extensions/gsd/auto-idempotency.ts +150 -0
  693. package/src/resources/extensions/gsd/auto-post-unit.ts +591 -0
  694. package/src/resources/extensions/gsd/auto-prompts.ts +116 -22
  695. package/src/resources/extensions/gsd/auto-recovery.ts +36 -31
  696. package/src/resources/extensions/gsd/auto-start.ts +500 -0
  697. package/src/resources/extensions/gsd/auto-stuck-detection.ts +220 -0
  698. package/src/resources/extensions/gsd/auto-timers.ts +223 -0
  699. package/src/resources/extensions/gsd/auto-unit-closeout.ts +3 -1
  700. package/src/resources/extensions/gsd/auto-verification.ts +229 -0
  701. package/src/resources/extensions/gsd/auto-worktree-sync.ts +29 -37
  702. package/src/resources/extensions/gsd/auto-worktree.ts +83 -67
  703. package/src/resources/extensions/gsd/auto.ts +375 -1890
  704. package/src/resources/extensions/gsd/commands-config.ts +102 -0
  705. package/src/resources/extensions/gsd/commands-handlers.ts +394 -0
  706. package/src/resources/extensions/gsd/commands-inspect.ts +90 -0
  707. package/src/resources/extensions/gsd/commands-logs.ts +536 -0
  708. package/src/resources/extensions/gsd/commands-maintenance.ts +206 -0
  709. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +760 -0
  710. package/src/resources/extensions/gsd/commands.ts +365 -1495
  711. package/src/resources/extensions/gsd/constants.ts +21 -0
  712. package/src/resources/extensions/gsd/context-budget.ts +25 -2
  713. package/src/resources/extensions/gsd/crash-recovery.ts +3 -4
  714. package/src/resources/extensions/gsd/dashboard-overlay.ts +15 -5
  715. package/src/resources/extensions/gsd/db-writer.ts +21 -2
  716. package/src/resources/extensions/gsd/detection.ts +469 -0
  717. package/src/resources/extensions/gsd/diff-context.ts +2 -1
  718. package/src/resources/extensions/gsd/dispatch-guard.ts +4 -0
  719. package/src/resources/extensions/gsd/doctor-checks.ts +564 -0
  720. package/src/resources/extensions/gsd/doctor-format.ts +78 -0
  721. package/src/resources/extensions/gsd/doctor-types.ts +72 -0
  722. package/src/resources/extensions/gsd/doctor.ts +64 -701
  723. package/src/resources/extensions/gsd/errors.ts +0 -2
  724. package/src/resources/extensions/gsd/export-html.ts +367 -11
  725. package/src/resources/extensions/gsd/export.ts +31 -5
  726. package/src/resources/extensions/gsd/files.ts +8 -126
  727. package/src/resources/extensions/gsd/forensics.ts +2 -12
  728. package/src/resources/extensions/gsd/git-constants.ts +11 -0
  729. package/src/resources/extensions/gsd/git-service.ts +13 -9
  730. package/src/resources/extensions/gsd/gsd-db.ts +26 -6
  731. package/src/resources/extensions/gsd/guided-flow-queue.ts +451 -0
  732. package/src/resources/extensions/gsd/guided-flow.ts +231 -514
  733. package/src/resources/extensions/gsd/history.ts +2 -20
  734. package/src/resources/extensions/gsd/index.ts +208 -46
  735. package/src/resources/extensions/gsd/init-wizard.ts +615 -0
  736. package/src/resources/extensions/gsd/json-persistence.ts +67 -0
  737. package/src/resources/extensions/gsd/jsonl-utils.ts +21 -0
  738. package/src/resources/extensions/gsd/key-manager.ts +995 -0
  739. package/src/resources/extensions/gsd/metrics.ts +49 -36
  740. package/src/resources/extensions/gsd/migrate/command.ts +1 -1
  741. package/src/resources/extensions/gsd/migrate/parsers.ts +10 -95
  742. package/src/resources/extensions/gsd/milestone-actions.ts +126 -0
  743. package/src/resources/extensions/gsd/milestone-ids.ts +95 -0
  744. package/src/resources/extensions/gsd/native-git-bridge.ts +5 -10
  745. package/src/resources/extensions/gsd/parallel-eligibility.ts +3 -3
  746. package/src/resources/extensions/gsd/paths.ts +1 -11
  747. package/src/resources/extensions/gsd/plugin-importer.ts +3 -2
  748. package/src/resources/extensions/gsd/preferences-models.ts +323 -0
  749. package/src/resources/extensions/gsd/preferences-skills.ts +169 -0
  750. package/src/resources/extensions/gsd/preferences-types.ts +223 -0
  751. package/src/resources/extensions/gsd/preferences-validation.ts +597 -0
  752. package/src/resources/extensions/gsd/preferences.ts +219 -1305
  753. package/src/resources/extensions/gsd/prompt-cache-optimizer.ts +213 -0
  754. package/src/resources/extensions/gsd/prompt-compressor.ts +508 -0
  755. package/src/resources/extensions/gsd/prompt-loader.ts +4 -2
  756. package/src/resources/extensions/gsd/prompt-ordering.ts +200 -0
  757. package/src/resources/extensions/gsd/prompts/complete-milestone.md +2 -2
  758. package/src/resources/extensions/gsd/prompts/complete-slice.md +4 -4
  759. package/src/resources/extensions/gsd/prompts/discuss-headless.md +2 -4
  760. package/src/resources/extensions/gsd/prompts/discuss.md +13 -5
  761. package/src/resources/extensions/gsd/prompts/execute-task.md +0 -1
  762. package/src/resources/extensions/gsd/prompts/guided-complete-slice.md +1 -1
  763. package/src/resources/extensions/gsd/prompts/guided-plan-milestone.md +0 -1
  764. package/src/resources/extensions/gsd/prompts/plan-milestone.md +0 -1
  765. package/src/resources/extensions/gsd/prompts/plan-slice.md +0 -1
  766. package/src/resources/extensions/gsd/prompts/queue.md +30 -0
  767. package/src/resources/extensions/gsd/prompts/quick-task.md +0 -6
  768. package/src/resources/extensions/gsd/prompts/replan-slice.md +0 -1
  769. package/src/resources/extensions/gsd/prompts/rewrite-docs.md +0 -1
  770. package/src/resources/extensions/gsd/prompts/system.md +1 -1
  771. package/src/resources/extensions/gsd/provider-error-pause.ts +59 -10
  772. package/src/resources/extensions/gsd/queue-order.ts +11 -12
  773. package/src/resources/extensions/gsd/queue-reorder-ui.ts +15 -2
  774. package/src/resources/extensions/gsd/quick.ts +18 -15
  775. package/src/resources/extensions/gsd/reports.ts +1 -7
  776. package/src/resources/extensions/gsd/routing-history.ts +13 -17
  777. package/src/resources/extensions/gsd/safe-fs.ts +47 -0
  778. package/src/resources/extensions/gsd/semantic-chunker.ts +336 -0
  779. package/src/resources/extensions/gsd/session-forensics.ts +8 -23
  780. package/src/resources/extensions/gsd/session-lock.ts +284 -0
  781. package/src/resources/extensions/gsd/session-status-io.ts +23 -41
  782. package/src/resources/extensions/gsd/skills/gsd-headless/SKILL.md +38 -1
  783. package/src/resources/extensions/gsd/skills/gsd-headless/references/answer-injection.md +35 -6
  784. package/src/resources/extensions/gsd/state.ts +54 -2
  785. package/src/resources/extensions/gsd/structured-data-formatter.ts +144 -0
  786. package/src/resources/extensions/gsd/summary-distiller.ts +258 -0
  787. package/src/resources/extensions/gsd/tests/activity-log.test.ts +213 -0
  788. package/src/resources/extensions/gsd/tests/agent-end-retry.test.ts +107 -0
  789. package/src/resources/extensions/gsd/tests/all-milestones-complete-merge.test.ts +197 -0
  790. package/src/resources/extensions/gsd/tests/auto-budget-alerts.test.ts +1 -1
  791. package/src/resources/extensions/gsd/tests/auto-preflight.test.ts +33 -39
  792. package/src/resources/extensions/gsd/tests/auto-secrets-gate.test.ts +108 -2
  793. package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +257 -0
  794. package/src/resources/extensions/gsd/tests/auto-skip-loop.test.ts +1 -1
  795. package/src/resources/extensions/gsd/tests/auto-worktree-milestone-merge.test.ts +3 -0
  796. package/src/resources/extensions/gsd/tests/commands-logs.test.ts +241 -0
  797. package/src/resources/extensions/gsd/tests/context-budget.test.ts +69 -0
  798. package/src/resources/extensions/gsd/tests/detection.test.ts +398 -0
  799. package/src/resources/extensions/gsd/tests/discuss-prompt.test.ts +12 -24
  800. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +118 -94
  801. package/src/resources/extensions/gsd/tests/dispatch-stall-guard.test.ts +126 -0
  802. package/src/resources/extensions/gsd/tests/dist-redirect.mjs +7 -3
  803. package/src/resources/extensions/gsd/tests/doctor-fixlevel.test.ts +75 -0
  804. package/src/resources/extensions/gsd/tests/doctor-git.test.ts +17 -55
  805. package/src/resources/extensions/gsd/tests/export-html-enhancements.test.ts +375 -0
  806. package/src/resources/extensions/gsd/tests/extension-selector-separator.test.ts +122 -0
  807. package/src/resources/extensions/gsd/tests/feature-branch-lifecycle-integration.test.ts +3 -0
  808. package/src/resources/extensions/gsd/tests/gsd-inspect.test.ts +1 -1
  809. package/src/resources/extensions/gsd/tests/headless-answers.test.ts +340 -0
  810. package/src/resources/extensions/gsd/tests/in-flight-tool-tracking.test.ts +24 -82
  811. package/src/resources/extensions/gsd/tests/init-wizard.test.ts +197 -0
  812. package/src/resources/extensions/gsd/tests/key-manager.test.ts +414 -0
  813. package/src/resources/extensions/gsd/tests/metrics.test.ts +173 -305
  814. package/src/resources/extensions/gsd/tests/milestone-transition-worktree.test.ts +3 -0
  815. package/src/resources/extensions/gsd/tests/model-isolation.test.ts +59 -1
  816. package/src/resources/extensions/gsd/tests/next-milestone-id.test.ts +18 -61
  817. package/src/resources/extensions/gsd/tests/none-mode-gates.test.ts +17 -8
  818. package/src/resources/extensions/gsd/tests/parallel-merge.test.ts +3 -0
  819. package/src/resources/extensions/gsd/tests/parallel-workers-multi-milestone-e2e.test.ts +1 -1
  820. package/src/resources/extensions/gsd/tests/park-edge-cases.test.ts +276 -0
  821. package/src/resources/extensions/gsd/tests/park-milestone.test.ts +401 -0
  822. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +23 -47
  823. package/src/resources/extensions/gsd/tests/preferences.test.ts +284 -0
  824. package/src/resources/extensions/gsd/tests/prompt-cache-optimizer.test.ts +314 -0
  825. package/src/resources/extensions/gsd/tests/prompt-compressor.test.ts +529 -0
  826. package/src/resources/extensions/gsd/tests/prompt-ordering.test.ts +296 -0
  827. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +338 -0
  828. package/src/resources/extensions/gsd/tests/reassess-detection.test.ts +154 -0
  829. package/src/resources/extensions/gsd/tests/remote-questions.test.ts +1 -1
  830. package/src/resources/extensions/gsd/tests/remote-status.test.ts +2 -2
  831. package/src/resources/extensions/gsd/tests/roadmap-slices.test.ts +43 -60
  832. package/src/resources/extensions/gsd/tests/semantic-chunker.test.ts +426 -0
  833. package/src/resources/extensions/gsd/tests/session-lock.test.ts +315 -0
  834. package/src/resources/extensions/gsd/tests/stale-worktree-cwd.test.ts +3 -0
  835. package/src/resources/extensions/gsd/tests/stop-auto-remote.test.ts +8 -5
  836. package/src/resources/extensions/gsd/tests/structured-data-formatter.test.ts +365 -0
  837. package/src/resources/extensions/gsd/tests/summary-distiller.test.ts +323 -0
  838. package/src/resources/extensions/gsd/tests/token-counter.test.ts +129 -0
  839. package/src/resources/extensions/gsd/tests/token-optimization-benchmark.test.ts +1272 -0
  840. package/src/resources/extensions/gsd/tests/token-optimization-prefs.test.ts +164 -0
  841. package/src/resources/extensions/gsd/tests/token-profile.test.ts +8 -1
  842. package/src/resources/extensions/gsd/tests/triage-dispatch.test.ts +69 -73
  843. package/src/resources/extensions/gsd/tests/validate-directory.test.ts +222 -0
  844. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +55 -0
  845. package/src/resources/extensions/gsd/tests/verification-evidence.test.ts +26 -24
  846. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +251 -8
  847. package/src/resources/extensions/gsd/tests/visualizer-overlay.test.ts +2 -2
  848. package/src/resources/extensions/gsd/tests/visualizer-views.test.ts +2 -1
  849. package/src/resources/extensions/gsd/tests/workspace-index.test.ts +24 -61
  850. package/src/resources/extensions/gsd/tests/worktree-e2e.test.ts +5 -2
  851. package/src/resources/extensions/gsd/tests/write-gate.test.ts +132 -43
  852. package/src/resources/extensions/gsd/token-counter.ts +20 -0
  853. package/src/resources/extensions/gsd/triage-ui.ts +1 -1
  854. package/src/resources/extensions/gsd/types.ts +5 -1
  855. package/src/resources/extensions/gsd/unit-runtime.ts +16 -13
  856. package/src/resources/extensions/gsd/validate-directory.ts +164 -0
  857. package/src/resources/extensions/gsd/verification-evidence.ts +9 -4
  858. package/src/resources/extensions/gsd/verification-gate.ts +83 -7
  859. package/src/resources/extensions/gsd/visualizer-data.ts +1 -1
  860. package/src/resources/extensions/gsd/visualizer-overlay.ts +5 -2
  861. package/src/resources/extensions/gsd/visualizer-views.ts +2 -3
  862. package/src/resources/extensions/gsd/worktree-command.ts +4 -51
  863. package/src/resources/extensions/gsd/worktree-manager.ts +7 -9
  864. package/src/resources/extensions/gsd/worktree.ts +41 -1
  865. package/src/resources/extensions/mcporter/index.ts +27 -14
  866. package/src/resources/extensions/remote-questions/discord-adapter.ts +9 -20
  867. package/src/resources/extensions/remote-questions/http-client.ts +76 -0
  868. package/src/resources/extensions/remote-questions/manager.ts +6 -24
  869. package/src/resources/extensions/remote-questions/mod.ts +16 -0
  870. package/src/resources/extensions/remote-questions/notify.ts +90 -0
  871. package/src/resources/extensions/remote-questions/remote-command.ts +1 -1
  872. package/src/resources/extensions/remote-questions/slack-adapter.ts +11 -18
  873. package/src/resources/extensions/remote-questions/store.ts +5 -1
  874. package/src/resources/extensions/remote-questions/telegram-adapter.ts +8 -20
  875. package/src/resources/extensions/remote-questions/types.ts +29 -3
  876. package/src/resources/extensions/search-the-web/native-search.ts +7 -0
  877. package/src/resources/extensions/search-the-web/provider.ts +15 -3
  878. package/src/resources/extensions/search-the-web/tool-llm-context.ts +1 -13
  879. package/src/resources/extensions/search-the-web/tool-search.ts +1 -13
  880. package/src/resources/extensions/shared/format-utils.ts +53 -0
  881. package/src/resources/extensions/shared/frontmatter.ts +117 -0
  882. package/src/resources/extensions/shared/mod.ts +33 -0
  883. package/src/resources/extensions/shared/sanitize.ts +19 -0
  884. package/src/resources/extensions/slash-commands/create-extension.ts +1 -1
  885. package/src/resources/extensions/slash-commands/create-slash-command.ts +1 -1
  886. package/src/resources/extensions/subagent/index.ts +1 -2
  887. package/src/resources/extensions/ttsr/index.ts +5 -0
  888. package/src/resources/extensions/ttsr/rule-loader.ts +4 -51
  889. package/src/resources/extensions/universal-config/discovery.ts +37 -15
  890. package/src/resources/extensions/voice/index.ts +1 -1
  891. package/src/resources/skills/accessibility/SKILL.md +522 -0
  892. package/src/resources/skills/accessibility/references/WCAG.md +162 -0
  893. package/src/resources/skills/agent-browser/SKILL.md +517 -0
  894. package/src/resources/skills/agent-browser/references/authentication.md +202 -0
  895. package/src/resources/skills/agent-browser/references/commands.md +263 -0
  896. package/src/resources/skills/agent-browser/references/profiling.md +120 -0
  897. package/src/resources/skills/agent-browser/references/proxy-support.md +194 -0
  898. package/src/resources/skills/agent-browser/references/session-management.md +193 -0
  899. package/src/resources/skills/agent-browser/references/snapshot-refs.md +194 -0
  900. package/src/resources/skills/agent-browser/references/video-recording.md +173 -0
  901. package/src/resources/skills/agent-browser/templates/authenticated-session.sh +105 -0
  902. package/src/resources/skills/agent-browser/templates/capture-workflow.sh +69 -0
  903. package/src/resources/skills/agent-browser/templates/form-automation.sh +62 -0
  904. package/src/resources/skills/best-practices/SKILL.md +583 -0
  905. package/src/resources/skills/code-optimizer/SKILL.md +160 -0
  906. package/src/resources/skills/code-optimizer/references/algorithmic-complexity.md +66 -0
  907. package/src/resources/skills/code-optimizer/references/build-compilation.md +90 -0
  908. package/src/resources/skills/code-optimizer/references/bundle-dependencies.md +82 -0
  909. package/src/resources/skills/code-optimizer/references/caching-memoization.md +76 -0
  910. package/src/resources/skills/code-optimizer/references/concurrency-async.md +80 -0
  911. package/src/resources/skills/code-optimizer/references/config-infra.md +71 -0
  912. package/src/resources/skills/code-optimizer/references/data-structures.md +80 -0
  913. package/src/resources/skills/code-optimizer/references/database-queries.md +76 -0
  914. package/src/resources/skills/code-optimizer/references/dead-code-redundancy.md +84 -0
  915. package/src/resources/skills/code-optimizer/references/error-resilience.md +80 -0
  916. package/src/resources/skills/code-optimizer/references/io-network.md +89 -0
  917. package/src/resources/skills/code-optimizer/references/logging-observability.md +64 -0
  918. package/src/resources/skills/code-optimizer/references/memory-resources.md +66 -0
  919. package/src/resources/skills/code-optimizer/references/rendering-ui.md +90 -0
  920. package/src/resources/skills/code-optimizer/references/security-performance.md +68 -0
  921. package/src/resources/skills/core-web-vitals/SKILL.md +441 -0
  922. package/src/resources/skills/core-web-vitals/references/LCP.md +208 -0
  923. package/src/resources/skills/make-interfaces-feel-better/SKILL.md +122 -0
  924. package/src/resources/skills/make-interfaces-feel-better/animations.md +379 -0
  925. package/src/resources/skills/make-interfaces-feel-better/performance.md +88 -0
  926. package/src/resources/skills/make-interfaces-feel-better/surfaces.md +247 -0
  927. package/src/resources/skills/make-interfaces-feel-better/typography.md +123 -0
  928. package/src/resources/skills/react-best-practices/README.md +123 -0
  929. package/src/resources/skills/react-best-practices/SKILL.md +136 -0
  930. package/src/resources/skills/react-best-practices/metadata.json +15 -0
  931. package/src/resources/skills/react-best-practices/rules/_sections.md +46 -0
  932. package/src/resources/skills/react-best-practices/rules/_template.md +28 -0
  933. package/src/resources/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  934. package/src/resources/skills/react-best-practices/rules/advanced-init-once.md +42 -0
  935. package/src/resources/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
  936. package/src/resources/skills/react-best-practices/rules/async-api-routes.md +38 -0
  937. package/src/resources/skills/react-best-practices/rules/async-defer-await.md +80 -0
  938. package/src/resources/skills/react-best-practices/rules/async-dependencies.md +51 -0
  939. package/src/resources/skills/react-best-practices/rules/async-parallel.md +28 -0
  940. package/src/resources/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  941. package/src/resources/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  942. package/src/resources/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  943. package/src/resources/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  944. package/src/resources/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  945. package/src/resources/skills/react-best-practices/rules/bundle-preload.md +50 -0
  946. package/src/resources/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  947. package/src/resources/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  948. package/src/resources/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  949. package/src/resources/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  950. package/src/resources/skills/react-best-practices/rules/js-batch-dom-css.md +107 -0
  951. package/src/resources/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  952. package/src/resources/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  953. package/src/resources/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  954. package/src/resources/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  955. package/src/resources/skills/react-best-practices/rules/js-early-exit.md +50 -0
  956. package/src/resources/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  957. package/src/resources/skills/react-best-practices/rules/js-index-maps.md +37 -0
  958. package/src/resources/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  959. package/src/resources/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  960. package/src/resources/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  961. package/src/resources/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  962. package/src/resources/skills/react-best-practices/rules/rendering-activity.md +26 -0
  963. package/src/resources/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  964. package/src/resources/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  965. package/src/resources/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  966. package/src/resources/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  967. package/src/resources/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  968. package/src/resources/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  969. package/src/resources/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  970. package/src/resources/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  971. package/src/resources/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  972. package/src/resources/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  973. package/src/resources/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  974. package/src/resources/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  975. package/src/resources/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  976. package/src/resources/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  977. package/src/resources/skills/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  978. package/src/resources/skills/react-best-practices/rules/rerender-memo.md +44 -0
  979. package/src/resources/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  980. package/src/resources/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  981. package/src/resources/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  982. package/src/resources/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  983. package/src/resources/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  984. package/src/resources/skills/react-best-practices/rules/server-auth-actions.md +96 -0
  985. package/src/resources/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  986. package/src/resources/skills/react-best-practices/rules/server-cache-react.md +76 -0
  987. package/src/resources/skills/react-best-practices/rules/server-dedup-props.md +65 -0
  988. package/src/resources/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  989. package/src/resources/skills/react-best-practices/rules/server-serialization.md +38 -0
  990. package/src/resources/skills/userinterface-wiki/SKILL.md +253 -0
  991. package/src/resources/skills/userinterface-wiki/rules/_sections.md +66 -0
  992. package/src/resources/skills/userinterface-wiki/rules/_template.md +24 -0
  993. package/src/resources/skills/userinterface-wiki/rules/a11y-reduced-motion-check.md +30 -0
  994. package/src/resources/skills/userinterface-wiki/rules/a11y-toggle-setting.md +30 -0
  995. package/src/resources/skills/userinterface-wiki/rules/a11y-visual-equivalent.md +36 -0
  996. package/src/resources/skills/userinterface-wiki/rules/a11y-volume-control.md +28 -0
  997. package/src/resources/skills/userinterface-wiki/rules/appropriate-confirmations-only.md +19 -0
  998. package/src/resources/skills/userinterface-wiki/rules/appropriate-errors-warnings.md +18 -0
  999. package/src/resources/skills/userinterface-wiki/rules/appropriate-no-decorative.md +21 -0
  1000. package/src/resources/skills/userinterface-wiki/rules/appropriate-no-high-frequency.md +28 -0
  1001. package/src/resources/skills/userinterface-wiki/rules/appropriate-no-punishing.md +27 -0
  1002. package/src/resources/skills/userinterface-wiki/rules/container-callback-ref.md +31 -0
  1003. package/src/resources/skills/userinterface-wiki/rules/container-guard-initial-zero.md +25 -0
  1004. package/src/resources/skills/userinterface-wiki/rules/container-no-excessive-use.md +13 -0
  1005. package/src/resources/skills/userinterface-wiki/rules/container-overflow-hidden.md +25 -0
  1006. package/src/resources/skills/userinterface-wiki/rules/container-transition-delay.md +21 -0
  1007. package/src/resources/skills/userinterface-wiki/rules/container-two-div-pattern.md +35 -0
  1008. package/src/resources/skills/userinterface-wiki/rules/container-use-resize-observer.md +48 -0
  1009. package/src/resources/skills/userinterface-wiki/rules/context-cleanup-nodes.md +25 -0
  1010. package/src/resources/skills/userinterface-wiki/rules/context-resume-suspended.md +28 -0
  1011. package/src/resources/skills/userinterface-wiki/rules/context-reuse-single.md +30 -0
  1012. package/src/resources/skills/userinterface-wiki/rules/design-filter-for-character.md +25 -0
  1013. package/src/resources/skills/userinterface-wiki/rules/design-noise-for-percussion.md +26 -0
  1014. package/src/resources/skills/userinterface-wiki/rules/design-oscillator-for-tonal.md +22 -0
  1015. package/src/resources/skills/userinterface-wiki/rules/duration-max-300ms.md +21 -0
  1016. package/src/resources/skills/userinterface-wiki/rules/duration-press-hover.md +21 -0
  1017. package/src/resources/skills/userinterface-wiki/rules/duration-shorten-before-curve.md +21 -0
  1018. package/src/resources/skills/userinterface-wiki/rules/duration-small-state.md +15 -0
  1019. package/src/resources/skills/userinterface-wiki/rules/easing-entrance-ease-out.md +21 -0
  1020. package/src/resources/skills/userinterface-wiki/rules/easing-exit-ease-in.md +21 -0
  1021. package/src/resources/skills/userinterface-wiki/rules/easing-for-state-change.md +27 -0
  1022. package/src/resources/skills/userinterface-wiki/rules/easing-linear-only-progress.md +21 -0
  1023. package/src/resources/skills/userinterface-wiki/rules/easing-natural-decay.md +22 -0
  1024. package/src/resources/skills/userinterface-wiki/rules/easing-no-linear-motion.md +22 -0
  1025. package/src/resources/skills/userinterface-wiki/rules/easing-transition-ease-in-out.md +15 -0
  1026. package/src/resources/skills/userinterface-wiki/rules/envelope-exponential-decay.md +21 -0
  1027. package/src/resources/skills/userinterface-wiki/rules/envelope-no-zero-target.md +21 -0
  1028. package/src/resources/skills/userinterface-wiki/rules/envelope-set-initial-value.md +22 -0
  1029. package/src/resources/skills/userinterface-wiki/rules/exit-key-required.md +29 -0
  1030. package/src/resources/skills/userinterface-wiki/rules/exit-matches-initial.md +29 -0
  1031. package/src/resources/skills/userinterface-wiki/rules/exit-prop-required.md +33 -0
  1032. package/src/resources/skills/userinterface-wiki/rules/exit-requires-wrapper.md +27 -0
  1033. package/src/resources/skills/userinterface-wiki/rules/impl-default-subtle.md +21 -0
  1034. package/src/resources/skills/userinterface-wiki/rules/impl-preload-audio.md +34 -0
  1035. package/src/resources/skills/userinterface-wiki/rules/impl-reset-current-time.md +26 -0
  1036. package/src/resources/skills/userinterface-wiki/rules/mode-pop-layout-for-lists.md +25 -0
  1037. package/src/resources/skills/userinterface-wiki/rules/mode-sync-layout-conflict.md +29 -0
  1038. package/src/resources/skills/userinterface-wiki/rules/mode-wait-doubles-duration.md +25 -0
  1039. package/src/resources/skills/userinterface-wiki/rules/morphing-aria-hidden.md +21 -0
  1040. package/src/resources/skills/userinterface-wiki/rules/morphing-consistent-viewbox.md +23 -0
  1041. package/src/resources/skills/userinterface-wiki/rules/morphing-group-variants.md +33 -0
  1042. package/src/resources/skills/userinterface-wiki/rules/morphing-jump-non-grouped.md +29 -0
  1043. package/src/resources/skills/userinterface-wiki/rules/morphing-reduced-motion.md +28 -0
  1044. package/src/resources/skills/userinterface-wiki/rules/morphing-spring-rotation.md +23 -0
  1045. package/src/resources/skills/userinterface-wiki/rules/morphing-strokelinecap-round.md +21 -0
  1046. package/src/resources/skills/userinterface-wiki/rules/morphing-three-lines.md +32 -0
  1047. package/src/resources/skills/userinterface-wiki/rules/morphing-use-collapsed.md +33 -0
  1048. package/src/resources/skills/userinterface-wiki/rules/native-backdrop-styling.md +27 -0
  1049. package/src/resources/skills/userinterface-wiki/rules/native-placeholder-styling.md +27 -0
  1050. package/src/resources/skills/userinterface-wiki/rules/native-selection-styling.md +18 -0
  1051. package/src/resources/skills/userinterface-wiki/rules/nested-consistent-timing.md +25 -0
  1052. package/src/resources/skills/userinterface-wiki/rules/nested-propagate-required.md +41 -0
  1053. package/src/resources/skills/userinterface-wiki/rules/none-context-menu-entrance.md +25 -0
  1054. package/src/resources/skills/userinterface-wiki/rules/none-high-frequency.md +29 -0
  1055. package/src/resources/skills/userinterface-wiki/rules/none-keyboard-navigation.md +32 -0
  1056. package/src/resources/skills/userinterface-wiki/rules/param-click-duration.md +21 -0
  1057. package/src/resources/skills/userinterface-wiki/rules/param-filter-frequency-range.md +21 -0
  1058. package/src/resources/skills/userinterface-wiki/rules/param-q-value-range.md +21 -0
  1059. package/src/resources/skills/userinterface-wiki/rules/param-reasonable-gain.md +21 -0
  1060. package/src/resources/skills/userinterface-wiki/rules/physics-active-state.md +23 -0
  1061. package/src/resources/skills/userinterface-wiki/rules/physics-no-excessive-stagger.md +22 -0
  1062. package/src/resources/skills/userinterface-wiki/rules/physics-spring-for-overshoot.md +23 -0
  1063. package/src/resources/skills/userinterface-wiki/rules/physics-subtle-deformation.md +22 -0
  1064. package/src/resources/skills/userinterface-wiki/rules/prefetch-hit-slop.md +27 -0
  1065. package/src/resources/skills/userinterface-wiki/rules/prefetch-keyboard-tab.md +19 -0
  1066. package/src/resources/skills/userinterface-wiki/rules/prefetch-not-everything.md +22 -0
  1067. package/src/resources/skills/userinterface-wiki/rules/prefetch-touch-fallback.md +34 -0
  1068. package/src/resources/skills/userinterface-wiki/rules/prefetch-trajectory-over-hover.md +32 -0
  1069. package/src/resources/skills/userinterface-wiki/rules/prefetch-use-selectively.md +13 -0
  1070. package/src/resources/skills/userinterface-wiki/rules/presence-disable-interactions.md +31 -0
  1071. package/src/resources/skills/userinterface-wiki/rules/presence-hook-in-child.md +31 -0
  1072. package/src/resources/skills/userinterface-wiki/rules/presence-safe-to-remove.md +37 -0
  1073. package/src/resources/skills/userinterface-wiki/rules/pseudo-content-required.md +28 -0
  1074. package/src/resources/skills/userinterface-wiki/rules/pseudo-first-line-styling.md +27 -0
  1075. package/src/resources/skills/userinterface-wiki/rules/pseudo-hit-target-expansion.md +31 -0
  1076. package/src/resources/skills/userinterface-wiki/rules/pseudo-marker-styling.md +28 -0
  1077. package/src/resources/skills/userinterface-wiki/rules/pseudo-over-dom-node.md +32 -0
  1078. package/src/resources/skills/userinterface-wiki/rules/pseudo-position-relative-parent.md +33 -0
  1079. package/src/resources/skills/userinterface-wiki/rules/pseudo-z-index-layering.md +37 -0
  1080. package/src/resources/skills/userinterface-wiki/rules/spring-for-gestures.md +27 -0
  1081. package/src/resources/skills/userinterface-wiki/rules/spring-for-interruptible.md +27 -0
  1082. package/src/resources/skills/userinterface-wiki/rules/spring-params-balanced.md +29 -0
  1083. package/src/resources/skills/userinterface-wiki/rules/spring-preserves-velocity.md +28 -0
  1084. package/src/resources/skills/userinterface-wiki/rules/staging-dim-background.md +22 -0
  1085. package/src/resources/skills/userinterface-wiki/rules/staging-one-focal-point.md +24 -0
  1086. package/src/resources/skills/userinterface-wiki/rules/staging-z-index-hierarchy.md +22 -0
  1087. package/src/resources/skills/userinterface-wiki/rules/timing-consistent.md +24 -0
  1088. package/src/resources/skills/userinterface-wiki/rules/timing-no-entrance-context-menu.md +22 -0
  1089. package/src/resources/skills/userinterface-wiki/rules/timing-under-300ms.md +22 -0
  1090. package/src/resources/skills/userinterface-wiki/rules/transition-name-cleanup.md +28 -0
  1091. package/src/resources/skills/userinterface-wiki/rules/transition-name-required.md +27 -0
  1092. package/src/resources/skills/userinterface-wiki/rules/transition-name-unique.md +24 -0
  1093. package/src/resources/skills/userinterface-wiki/rules/transition-over-js-library.md +32 -0
  1094. package/src/resources/skills/userinterface-wiki/rules/transition-style-pseudo-elements.md +24 -0
  1095. package/src/resources/skills/userinterface-wiki/rules/type-antialiased-on-retina.md +18 -0
  1096. package/src/resources/skills/userinterface-wiki/rules/type-disambiguation-stylistic-set.md +15 -0
  1097. package/src/resources/skills/userinterface-wiki/rules/type-font-display-swap.md +28 -0
  1098. package/src/resources/skills/userinterface-wiki/rules/type-justify-with-hyphens.md +24 -0
  1099. package/src/resources/skills/userinterface-wiki/rules/type-letter-spacing-uppercase.md +28 -0
  1100. package/src/resources/skills/userinterface-wiki/rules/type-no-font-synthesis.md +18 -0
  1101. package/src/resources/skills/userinterface-wiki/rules/type-oldstyle-nums-for-prose.md +21 -0
  1102. package/src/resources/skills/userinterface-wiki/rules/type-opentype-contextual-alternates.md +15 -0
  1103. package/src/resources/skills/userinterface-wiki/rules/type-optical-sizing-auto.md +25 -0
  1104. package/src/resources/skills/userinterface-wiki/rules/type-proper-fractions.md +15 -0
  1105. package/src/resources/skills/userinterface-wiki/rules/type-slashed-zero.md +17 -0
  1106. package/src/resources/skills/userinterface-wiki/rules/type-tabular-nums-for-data.md +21 -0
  1107. package/src/resources/skills/userinterface-wiki/rules/type-text-wrap-balance-headings.md +21 -0
  1108. package/src/resources/skills/userinterface-wiki/rules/type-text-wrap-pretty.md +16 -0
  1109. package/src/resources/skills/userinterface-wiki/rules/type-underline-offset.md +25 -0
  1110. package/src/resources/skills/userinterface-wiki/rules/type-variable-weight-continuous.md +23 -0
  1111. package/src/resources/skills/userinterface-wiki/rules/ux-aesthetic-usability.md +32 -0
  1112. package/src/resources/skills/userinterface-wiki/rules/ux-cognitive-load-reduce.md +49 -0
  1113. package/src/resources/skills/userinterface-wiki/rules/ux-common-region-boundaries.md +50 -0
  1114. package/src/resources/skills/userinterface-wiki/rules/ux-doherty-perceived-speed.md +29 -0
  1115. package/src/resources/skills/userinterface-wiki/rules/ux-doherty-under-400ms.md +30 -0
  1116. package/src/resources/skills/userinterface-wiki/rules/ux-fitts-hit-area.md +32 -0
  1117. package/src/resources/skills/userinterface-wiki/rules/ux-fitts-target-size.md +31 -0
  1118. package/src/resources/skills/userinterface-wiki/rules/ux-goal-gradient-progress.md +33 -0
  1119. package/src/resources/skills/userinterface-wiki/rules/ux-hicks-minimize-choices.md +45 -0
  1120. package/src/resources/skills/userinterface-wiki/rules/ux-jakobs-familiar-patterns.md +37 -0
  1121. package/src/resources/skills/userinterface-wiki/rules/ux-millers-chunking.md +23 -0
  1122. package/src/resources/skills/userinterface-wiki/rules/ux-pareto-prioritize-features.md +36 -0
  1123. package/src/resources/skills/userinterface-wiki/rules/ux-peak-end-finish-strong.md +35 -0
  1124. package/src/resources/skills/userinterface-wiki/rules/ux-postels-accept-messy-input.md +45 -0
  1125. package/src/resources/skills/userinterface-wiki/rules/ux-pragnanz-simplify.md +33 -0
  1126. package/src/resources/skills/userinterface-wiki/rules/ux-progressive-disclosure.md +41 -0
  1127. package/src/resources/skills/userinterface-wiki/rules/ux-proximity-grouping.md +38 -0
  1128. package/src/resources/skills/userinterface-wiki/rules/ux-serial-position.md +31 -0
  1129. package/src/resources/skills/userinterface-wiki/rules/ux-similarity-consistency.md +35 -0
  1130. package/src/resources/skills/userinterface-wiki/rules/ux-teslers-complexity.md +28 -0
  1131. package/src/resources/skills/userinterface-wiki/rules/ux-uniform-connectedness.md +43 -0
  1132. package/src/resources/skills/userinterface-wiki/rules/ux-von-restorff-emphasis.md +29 -0
  1133. package/src/resources/skills/userinterface-wiki/rules/ux-zeigarnik-show-incomplete.md +36 -0
  1134. package/src/resources/skills/userinterface-wiki/rules/visual-animate-shadow-pseudo.md +49 -0
  1135. package/src/resources/skills/userinterface-wiki/rules/visual-border-alpha-colors.md +25 -0
  1136. package/src/resources/skills/userinterface-wiki/rules/visual-button-shadow-anatomy.md +49 -0
  1137. package/src/resources/skills/userinterface-wiki/rules/visual-concentric-radius.md +40 -0
  1138. package/src/resources/skills/userinterface-wiki/rules/visual-consistent-spacing-scale.md +35 -0
  1139. package/src/resources/skills/userinterface-wiki/rules/visual-layered-shadows.md +30 -0
  1140. package/src/resources/skills/userinterface-wiki/rules/visual-no-pure-black-shadow.md +25 -0
  1141. package/src/resources/skills/userinterface-wiki/rules/visual-shadow-direction.md +25 -0
  1142. package/src/resources/skills/userinterface-wiki/rules/visual-shadow-matches-elevation.md +23 -0
  1143. package/src/resources/skills/userinterface-wiki/rules/weight-duration-matches-action.md +29 -0
  1144. package/src/resources/skills/userinterface-wiki/rules/weight-match-action.md +32 -0
  1145. package/src/resources/skills/web-design-guidelines/SKILL.md +39 -0
  1146. package/src/resources/skills/web-quality-audit/SKILL.md +170 -0
  1147. package/src/resources/skills/web-quality-audit/scripts/analyze.sh +91 -0
  1148. package/dist/resources/extensions/gsd/complexity.ts +0 -237
  1149. package/dist/resources/extensions/gsd/github-client.ts +0 -235
  1150. package/dist/resources/extensions/gsd/tests/activity-log-prune.test.ts +0 -297
  1151. package/dist/resources/extensions/gsd/tests/activity-log-save.test.ts +0 -127
  1152. package/dist/resources/extensions/gsd/tests/agent-end-provider-error.test.ts +0 -110
  1153. package/dist/resources/extensions/gsd/tests/auto-draft-pause.test.ts +0 -115
  1154. package/dist/resources/extensions/gsd/tests/complexity-routing.test.ts +0 -294
  1155. package/dist/resources/extensions/gsd/tests/metrics-io.test.ts +0 -176
  1156. package/dist/resources/extensions/gsd/tests/network-error-fallback.test.ts +0 -104
  1157. package/dist/resources/extensions/gsd/tests/preferences-git.test.ts +0 -120
  1158. package/dist/resources/extensions/gsd/tests/preferences-hooks.test.ts +0 -226
  1159. package/dist/resources/extensions/gsd/tests/preferences-mode.test.ts +0 -110
  1160. package/dist/resources/extensions/gsd/tests/preferences-models.test.ts +0 -207
  1161. package/dist/resources/extensions/gsd/tests/preferences-schema-validation.test.ts +0 -183
  1162. package/dist/resources/extensions/gsd/tests/preferences-wizard-fields.test.ts +0 -168
  1163. package/dist/resources/extensions/shared/progress-widget.ts +0 -282
  1164. package/dist/resources/extensions/shared/thinking-widget.ts +0 -107
  1165. package/src/resources/extensions/gsd/complexity.ts +0 -237
  1166. package/src/resources/extensions/gsd/github-client.ts +0 -235
  1167. package/src/resources/extensions/gsd/tests/activity-log-prune.test.ts +0 -297
  1168. package/src/resources/extensions/gsd/tests/activity-log-save.test.ts +0 -127
  1169. package/src/resources/extensions/gsd/tests/agent-end-provider-error.test.ts +0 -110
  1170. package/src/resources/extensions/gsd/tests/auto-draft-pause.test.ts +0 -115
  1171. package/src/resources/extensions/gsd/tests/complexity-routing.test.ts +0 -294
  1172. package/src/resources/extensions/gsd/tests/metrics-io.test.ts +0 -176
  1173. package/src/resources/extensions/gsd/tests/network-error-fallback.test.ts +0 -104
  1174. package/src/resources/extensions/gsd/tests/preferences-git.test.ts +0 -120
  1175. package/src/resources/extensions/gsd/tests/preferences-hooks.test.ts +0 -226
  1176. package/src/resources/extensions/gsd/tests/preferences-mode.test.ts +0 -110
  1177. package/src/resources/extensions/gsd/tests/preferences-models.test.ts +0 -207
  1178. package/src/resources/extensions/gsd/tests/preferences-schema-validation.test.ts +0 -183
  1179. package/src/resources/extensions/gsd/tests/preferences-wizard-fields.test.ts +0 -168
  1180. package/src/resources/extensions/shared/progress-widget.ts +0 -282
  1181. package/src/resources/extensions/shared/thinking-widget.ts +0 -107
@@ -0,0 +1,162 @@
1
+ # WCAG 2.1 Quick Reference
2
+
3
+ ## Success criteria by level
4
+
5
+ ### Level A (minimum)
6
+
7
+ | Criterion | Description |
8
+ |-----------|-------------|
9
+ | **1.1.1** Non-text Content | All images, icons have text alternatives |
10
+ | **1.2.1** Audio-only/Video-only | Provide transcript or audio description |
11
+ | **1.2.2** Captions | Video with audio has captions |
12
+ | **1.2.3** Audio Description | Video has audio description |
13
+ | **1.3.1** Info and Relationships | Information conveyed through presentation is available programmatically |
14
+ | **1.3.2** Meaningful Sequence | Reading order is logical |
15
+ | **1.3.3** Sensory Characteristics | Instructions don't rely solely on shape, color, size, location, orientation, or sound |
16
+ | **1.4.1** Use of Color | Color is not the only visual means of conveying information |
17
+ | **1.4.2** Audio Control | Audio playing automatically can be paused/stopped |
18
+ | **2.1.1** Keyboard | All functionality available via keyboard |
19
+ | **2.1.2** No Keyboard Trap | Keyboard focus can be moved away from any component |
20
+ | **2.1.4** Character Key Shortcuts | Single-key shortcuts can be turned off or remapped |
21
+ | **2.2.1** Timing Adjustable | Time limits can be extended |
22
+ | **2.2.2** Pause, Stop, Hide | Moving/blinking content can be paused |
23
+ | **2.3.1** Three Flashes | Nothing flashes more than 3 times per second |
24
+ | **2.4.1** Bypass Blocks | Skip link or landmark navigation available |
25
+ | **2.4.2** Page Titled | Pages have descriptive titles |
26
+ | **2.4.3** Focus Order | Focus order preserves meaning |
27
+ | **2.4.4** Link Purpose | Link purpose clear from link text or context |
28
+ | **2.5.1** Pointer Gestures | Multi-point gestures have single-pointer alternatives |
29
+ | **2.5.2** Pointer Cancellation | Down-event doesn't trigger action (use up-event or click) |
30
+ | **2.5.3** Label in Name | Accessible name contains visible label text |
31
+ | **2.5.4** Motion Actuation | Motion-triggered functions have alternatives |
32
+ | **3.1.1** Language of Page | Default language specified in HTML |
33
+ | **3.2.1** On Focus | Focus doesn't trigger unexpected changes |
34
+ | **3.2.2** On Input | Input doesn't trigger unexpected changes |
35
+ | **3.3.1** Error Identification | Input errors clearly described |
36
+ | **3.3.2** Labels or Instructions | Form inputs have labels or instructions |
37
+ | **4.1.1** Parsing | HTML is well-formed (no duplicate IDs, proper nesting) |
38
+ | **4.1.2** Name, Role, Value | UI components have accessible names and correct roles |
39
+
40
+ ### Level AA (standard)
41
+
42
+ | Criterion | Description |
43
+ |-----------|-------------|
44
+ | **1.2.4** Captions (Live) | Live audio has captions |
45
+ | **1.2.5** Audio Description | Pre-recorded video has audio description |
46
+ | **1.3.4** Orientation | Content doesn't restrict orientation |
47
+ | **1.3.5** Identify Input Purpose | Input purpose can be programmatically determined |
48
+ | **1.4.3** Contrast (Minimum) | 4.5:1 for normal text, 3:1 for large text |
49
+ | **1.4.4** Resize Text | Text can be resized to 200% without loss of functionality |
50
+ | **1.4.5** Images of Text | Text used instead of images of text |
51
+ | **1.4.10** Reflow | Content reflows at 320px width without horizontal scroll |
52
+ | **1.4.11** Non-text Contrast | UI components have 3:1 contrast |
53
+ | **1.4.12** Text Spacing | Content adapts to text spacing changes |
54
+ | **1.4.13** Content on Hover/Focus | Additional content is dismissible, hoverable, persistent |
55
+ | **2.4.5** Multiple Ways | Multiple ways to find pages |
56
+ | **2.4.6** Headings and Labels | Headings and labels are descriptive |
57
+ | **2.4.7** Focus Visible | Focus indicator is visible |
58
+ | **3.1.2** Language of Parts | Language changes are marked |
59
+ | **3.2.3** Consistent Navigation | Navigation is consistent across pages |
60
+ | **3.2.4** Consistent Identification | Same functionality uses same labels |
61
+ | **3.3.3** Error Suggestion | Error corrections suggested when known |
62
+ | **3.3.4** Error Prevention (Legal) | Actions can be reversed or confirmed |
63
+ | **4.1.3** Status Messages | Status messages announced to screen readers |
64
+
65
+ ### Level AAA (enhanced)
66
+
67
+ | Criterion | Description |
68
+ |-----------|-------------|
69
+ | **1.4.6** Contrast (Enhanced) | 7:1 for normal text, 4.5:1 for large text |
70
+ | **1.4.8** Visual Presentation | Foreground/background colors can be selected |
71
+ | **1.4.9** Images of Text (No Exception) | No images of text |
72
+ | **2.1.3** Keyboard (No Exception) | All functionality keyboard accessible |
73
+ | **2.2.3** No Timing | No time limits |
74
+ | **2.2.4** Interruptions | Interruptions can be postponed |
75
+ | **2.2.5** Re-authenticating | Data preserved on re-authentication |
76
+ | **2.2.6** Timeouts | Users warned about data loss from inactivity |
77
+ | **2.3.2** Three Flashes | No content flashes more than 3 times |
78
+ | **2.3.3** Animation from Interactions | Motion animation can be disabled |
79
+ | **2.4.8** Location | User location within site is available |
80
+ | **2.4.9** Link Purpose (Link Only) | Link purpose clear from link text alone |
81
+ | **2.4.10** Section Headings | Sections have headings |
82
+ | **3.1.3** Unusual Words | Definitions available for unusual words |
83
+ | **3.1.4** Abbreviations | Abbreviations expanded |
84
+ | **3.1.5** Reading Level | Alternative content for complex text |
85
+ | **3.1.6** Pronunciation | Pronunciation available where needed |
86
+ | **3.2.5** Change on Request | Changes initiated only by user |
87
+ | **3.3.5** Help | Context-sensitive help available |
88
+ | **3.3.6** Error Prevention (All) | All form submissions can be reviewed |
89
+
90
+ ## Common ARIA patterns
91
+
92
+ ### Buttons
93
+ ```html
94
+ <button>Label</button>
95
+ <!-- or -->
96
+ <button aria-label="Close dialog">×</button>
97
+ ```
98
+
99
+ ### Links
100
+ ```html
101
+ <a href="/page">Descriptive link text</a>
102
+ <!-- External links -->
103
+ <a href="https://external.com" target="_blank" rel="noopener">
104
+ External site
105
+ <span class="visually-hidden">(opens in new tab)</span>
106
+ </a>
107
+ ```
108
+
109
+ ### Form fields
110
+ ```html
111
+ <label for="email">Email address</label>
112
+ <input type="email" id="email" aria-describedby="email-hint">
113
+ <p id="email-hint">We'll never share your email.</p>
114
+ ```
115
+
116
+ ### Error states
117
+ ```html
118
+ <label for="email">Email</label>
119
+ <input type="email" id="email" aria-invalid="true" aria-describedby="email-error">
120
+ <p id="email-error" role="alert">Please enter a valid email address.</p>
121
+ ```
122
+
123
+ ### Navigation
124
+ ```html
125
+ <nav aria-label="Main">
126
+ <ul>
127
+ <li><a href="/" aria-current="page">Home</a></li>
128
+ <li><a href="/about">About</a></li>
129
+ </ul>
130
+ </nav>
131
+ ```
132
+
133
+ ### Modals
134
+ ```html
135
+ <div role="dialog" aria-modal="true" aria-labelledby="dialog-title">
136
+ <h2 id="dialog-title">Confirm Action</h2>
137
+ <!-- content -->
138
+ </div>
139
+ ```
140
+
141
+ ### Live regions
142
+ ```html
143
+ <!-- Polite (waits for pause in speech) -->
144
+ <div aria-live="polite">Status update here</div>
145
+
146
+ <!-- Assertive (interrupts immediately) -->
147
+ <div aria-live="assertive" role="alert">Error message here</div>
148
+
149
+ <!-- Status (polite, implicit) -->
150
+ <div role="status">Loading complete</div>
151
+ ```
152
+
153
+ ## Testing tools
154
+
155
+ | Tool | Type | URL |
156
+ |------|------|-----|
157
+ | axe DevTools | Browser extension | [deque.com/axe](https://www.deque.com/axe/) |
158
+ | WAVE | Browser extension | [wave.webaim.org](https://wave.webaim.org/) |
159
+ | Lighthouse | Built into Chrome | DevTools → Lighthouse |
160
+ | NVDA | Screen reader (Windows) | [nvaccess.org](https://www.nvaccess.org/) |
161
+ | VoiceOver | Screen reader (Mac) | Built into macOS |
162
+ | Colour Contrast Analyser | Desktop app | [tpgi.com](https://www.tpgi.com/color-contrast-checker/) |
@@ -0,0 +1,517 @@
1
+ ---
2
+ name: agent-browser
3
+ description: Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
4
+ allowed-tools: Bash(npx agent-browser:*), Bash(agent-browser:*)
5
+ ---
6
+
7
+ # Browser Automation with agent-browser
8
+
9
+ ## Core Workflow
10
+
11
+ Every browser automation follows this pattern:
12
+
13
+ 1. **Navigate**: `agent-browser open <url>`
14
+ 2. **Snapshot**: `agent-browser snapshot -i` (get element refs like `@e1`, `@e2`)
15
+ 3. **Interact**: Use refs to click, fill, select
16
+ 4. **Re-snapshot**: After navigation or DOM changes, get fresh refs
17
+
18
+ ```bash
19
+ agent-browser open https://example.com/form
20
+ agent-browser snapshot -i
21
+ # Output: @e1 [input type="email"], @e2 [input type="password"], @e3 [button] "Submit"
22
+
23
+ agent-browser fill @e1 "user@example.com"
24
+ agent-browser fill @e2 "password123"
25
+ agent-browser click @e3
26
+ agent-browser wait --load networkidle
27
+ agent-browser snapshot -i # Check result
28
+ ```
29
+
30
+ ## Command Chaining
31
+
32
+ Commands can be chained with `&&` in a single shell invocation. The browser persists between commands via a background daemon, so chaining is safe and more efficient than separate calls.
33
+
34
+ ```bash
35
+ # Chain open + wait + snapshot in one call
36
+ agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser snapshot -i
37
+
38
+ # Chain multiple interactions
39
+ agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3
40
+
41
+ # Navigate and capture
42
+ agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser screenshot page.png
43
+ ```
44
+
45
+ **When to chain:** Use `&&` when you don't need to read the output of an intermediate command before proceeding (e.g., open + wait + screenshot). Run commands separately when you need to parse the output first (e.g., snapshot to discover refs, then interact using those refs).
46
+
47
+ ## Essential Commands
48
+
49
+ ```bash
50
+ # Navigation
51
+ agent-browser open <url> # Navigate (aliases: goto, navigate)
52
+ agent-browser close # Close browser
53
+
54
+ # Snapshot
55
+ agent-browser snapshot -i # Interactive elements with refs (recommended)
56
+ agent-browser snapshot -i -C # Include cursor-interactive elements (divs with onclick, cursor:pointer)
57
+ agent-browser snapshot -s "#selector" # Scope to CSS selector
58
+
59
+ # Interaction (use @refs from snapshot)
60
+ agent-browser click @e1 # Click element
61
+ agent-browser click @e1 --new-tab # Click and open in new tab
62
+ agent-browser fill @e2 "text" # Clear and type text
63
+ agent-browser type @e2 "text" # Type without clearing
64
+ agent-browser select @e1 "option" # Select dropdown option
65
+ agent-browser check @e1 # Check checkbox
66
+ agent-browser press Enter # Press key
67
+ agent-browser keyboard type "text" # Type at current focus (no selector)
68
+ agent-browser keyboard inserttext "text" # Insert without key events
69
+ agent-browser scroll down 500 # Scroll page
70
+ agent-browser scroll down 500 --selector "div.content" # Scroll within a specific container
71
+
72
+ # Get information
73
+ agent-browser get text @e1 # Get element text
74
+ agent-browser get url # Get current URL
75
+ agent-browser get title # Get page title
76
+
77
+ # Wait
78
+ agent-browser wait @e1 # Wait for element
79
+ agent-browser wait --load networkidle # Wait for network idle
80
+ agent-browser wait --url "**/page" # Wait for URL pattern
81
+ agent-browser wait 2000 # Wait milliseconds
82
+
83
+ # Downloads
84
+ agent-browser download @e1 ./file.pdf # Click element to trigger download
85
+ agent-browser wait --download ./output.zip # Wait for any download to complete
86
+ agent-browser --download-path ./downloads open <url> # Set default download directory
87
+
88
+ # Capture
89
+ agent-browser screenshot # Screenshot to temp dir
90
+ agent-browser screenshot --full # Full page screenshot
91
+ agent-browser screenshot --annotate # Annotated screenshot with numbered element labels
92
+ agent-browser pdf output.pdf # Save as PDF
93
+
94
+ # Diff (compare page states)
95
+ agent-browser diff snapshot # Compare current vs last snapshot
96
+ agent-browser diff snapshot --baseline before.txt # Compare current vs saved file
97
+ agent-browser diff screenshot --baseline before.png # Visual pixel diff
98
+ agent-browser diff url <url1> <url2> # Compare two pages
99
+ agent-browser diff url <url1> <url2> --wait-until networkidle # Custom wait strategy
100
+ agent-browser diff url <url1> <url2> --selector "#main" # Scope to element
101
+ ```
102
+
103
+ ## Common Patterns
104
+
105
+ ### Form Submission
106
+
107
+ ```bash
108
+ agent-browser open https://example.com/signup
109
+ agent-browser snapshot -i
110
+ agent-browser fill @e1 "Jane Doe"
111
+ agent-browser fill @e2 "jane@example.com"
112
+ agent-browser select @e3 "California"
113
+ agent-browser check @e4
114
+ agent-browser click @e5
115
+ agent-browser wait --load networkidle
116
+ ```
117
+
118
+ ### Authentication with Auth Vault (Recommended)
119
+
120
+ ```bash
121
+ # Save credentials once (encrypted with AGENT_BROWSER_ENCRYPTION_KEY)
122
+ # Recommended: pipe password via stdin to avoid shell history exposure
123
+ echo "pass" | agent-browser auth save github --url https://github.com/login --username user --password-stdin
124
+
125
+ # Login using saved profile (LLM never sees password)
126
+ agent-browser auth login github
127
+
128
+ # List/show/delete profiles
129
+ agent-browser auth list
130
+ agent-browser auth show github
131
+ agent-browser auth delete github
132
+ ```
133
+
134
+ ### Authentication with State Persistence
135
+
136
+ ```bash
137
+ # Login once and save state
138
+ agent-browser open https://app.example.com/login
139
+ agent-browser snapshot -i
140
+ agent-browser fill @e1 "$USERNAME"
141
+ agent-browser fill @e2 "$PASSWORD"
142
+ agent-browser click @e3
143
+ agent-browser wait --url "**/dashboard"
144
+ agent-browser state save auth.json
145
+
146
+ # Reuse in future sessions
147
+ agent-browser state load auth.json
148
+ agent-browser open https://app.example.com/dashboard
149
+ ```
150
+
151
+ ### Session Persistence
152
+
153
+ ```bash
154
+ # Auto-save/restore cookies and localStorage across browser restarts
155
+ agent-browser --session-name myapp open https://app.example.com/login
156
+ # ... login flow ...
157
+ agent-browser close # State auto-saved to ~/.agent-browser/sessions/
158
+
159
+ # Next time, state is auto-loaded
160
+ agent-browser --session-name myapp open https://app.example.com/dashboard
161
+
162
+ # Encrypt state at rest
163
+ export AGENT_BROWSER_ENCRYPTION_KEY=$(openssl rand -hex 32)
164
+ agent-browser --session-name secure open https://app.example.com
165
+
166
+ # Manage saved states
167
+ agent-browser state list
168
+ agent-browser state show myapp-default.json
169
+ agent-browser state clear myapp
170
+ agent-browser state clean --older-than 7
171
+ ```
172
+
173
+ ### Data Extraction
174
+
175
+ ```bash
176
+ agent-browser open https://example.com/products
177
+ agent-browser snapshot -i
178
+ agent-browser get text @e5 # Get specific element text
179
+ agent-browser get text body > page.txt # Get all page text
180
+
181
+ # JSON output for parsing
182
+ agent-browser snapshot -i --json
183
+ agent-browser get text @e1 --json
184
+ ```
185
+
186
+ ### Parallel Sessions
187
+
188
+ ```bash
189
+ agent-browser --session site1 open https://site-a.com
190
+ agent-browser --session site2 open https://site-b.com
191
+
192
+ agent-browser --session site1 snapshot -i
193
+ agent-browser --session site2 snapshot -i
194
+
195
+ agent-browser session list
196
+ ```
197
+
198
+ ### Connect to Existing Chrome
199
+
200
+ ```bash
201
+ # Auto-discover running Chrome with remote debugging enabled
202
+ agent-browser --auto-connect open https://example.com
203
+ agent-browser --auto-connect snapshot
204
+
205
+ # Or with explicit CDP port
206
+ agent-browser --cdp 9222 snapshot
207
+ ```
208
+
209
+ ### Color Scheme (Dark Mode)
210
+
211
+ ```bash
212
+ # Persistent dark mode via flag (applies to all pages and new tabs)
213
+ agent-browser --color-scheme dark open https://example.com
214
+
215
+ # Or via environment variable
216
+ AGENT_BROWSER_COLOR_SCHEME=dark agent-browser open https://example.com
217
+
218
+ # Or set during session (persists for subsequent commands)
219
+ agent-browser set media dark
220
+ ```
221
+
222
+ ### Visual Browser (Debugging)
223
+
224
+ ```bash
225
+ agent-browser --headed open https://example.com
226
+ agent-browser highlight @e1 # Highlight element
227
+ agent-browser record start demo.webm # Record session
228
+ agent-browser profiler start # Start Chrome DevTools profiling
229
+ agent-browser profiler stop trace.json # Stop and save profile (path optional)
230
+ ```
231
+
232
+ Use `AGENT_BROWSER_HEADED=1` to enable headed mode via environment variable. Browser extensions work in both headed and headless mode.
233
+
234
+ ### Local Files (PDFs, HTML)
235
+
236
+ ```bash
237
+ # Open local files with file:// URLs
238
+ agent-browser --allow-file-access open file:///path/to/document.pdf
239
+ agent-browser --allow-file-access open file:///path/to/page.html
240
+ agent-browser screenshot output.png
241
+ ```
242
+
243
+ ### iOS Simulator (Mobile Safari)
244
+
245
+ ```bash
246
+ # List available iOS simulators
247
+ agent-browser device list
248
+
249
+ # Launch Safari on a specific device
250
+ agent-browser -p ios --device "iPhone 16 Pro" open https://example.com
251
+
252
+ # Same workflow as desktop - snapshot, interact, re-snapshot
253
+ agent-browser -p ios snapshot -i
254
+ agent-browser -p ios tap @e1 # Tap (alias for click)
255
+ agent-browser -p ios fill @e2 "text"
256
+ agent-browser -p ios swipe up # Mobile-specific gesture
257
+
258
+ # Take screenshot
259
+ agent-browser -p ios screenshot mobile.png
260
+
261
+ # Close session (shuts down simulator)
262
+ agent-browser -p ios close
263
+ ```
264
+
265
+ **Requirements:** macOS with Xcode, Appium (`npm install -g appium && appium driver install xcuitest`)
266
+
267
+ **Real devices:** Works with physical iOS devices if pre-configured. Use `--device "<UDID>"` where UDID is from `xcrun xctrace list devices`.
268
+
269
+ ## Security
270
+
271
+ All security features are opt-in. By default, agent-browser imposes no restrictions on navigation, actions, or output.
272
+
273
+ ### Content Boundaries (Recommended for AI Agents)
274
+
275
+ Enable `--content-boundaries` to wrap page-sourced output in markers that help LLMs distinguish tool output from untrusted page content:
276
+
277
+ ```bash
278
+ export AGENT_BROWSER_CONTENT_BOUNDARIES=1
279
+ agent-browser snapshot
280
+ # Output:
281
+ # --- AGENT_BROWSER_PAGE_CONTENT nonce=<hex> origin=https://example.com ---
282
+ # [accessibility tree]
283
+ # --- END_AGENT_BROWSER_PAGE_CONTENT nonce=<hex> ---
284
+ ```
285
+
286
+ ### Domain Allowlist
287
+
288
+ Restrict navigation to trusted domains. Wildcards like `*.example.com` also match the bare domain `example.com`. Sub-resource requests, WebSocket, and EventSource connections to non-allowed domains are also blocked. Include CDN domains your target pages depend on:
289
+
290
+ ```bash
291
+ export AGENT_BROWSER_ALLOWED_DOMAINS="example.com,*.example.com"
292
+ agent-browser open https://example.com # OK
293
+ agent-browser open https://malicious.com # Blocked
294
+ ```
295
+
296
+ ### Action Policy
297
+
298
+ Use a policy file to gate destructive actions:
299
+
300
+ ```bash
301
+ export AGENT_BROWSER_ACTION_POLICY=./policy.json
302
+ ```
303
+
304
+ Example `policy.json`:
305
+ ```json
306
+ {"default": "deny", "allow": ["navigate", "snapshot", "click", "scroll", "wait", "get"]}
307
+ ```
308
+
309
+ Auth vault operations (`auth login`, etc.) bypass action policy but domain allowlist still applies.
310
+
311
+ ### Output Limits
312
+
313
+ Prevent context flooding from large pages:
314
+
315
+ ```bash
316
+ export AGENT_BROWSER_MAX_OUTPUT=50000
317
+ ```
318
+
319
+ ## Diffing (Verifying Changes)
320
+
321
+ Use `diff snapshot` after performing an action to verify it had the intended effect. This compares the current accessibility tree against the last snapshot taken in the session.
322
+
323
+ ```bash
324
+ # Typical workflow: snapshot -> action -> diff
325
+ agent-browser snapshot -i # Take baseline snapshot
326
+ agent-browser click @e2 # Perform action
327
+ agent-browser diff snapshot # See what changed (auto-compares to last snapshot)
328
+ ```
329
+
330
+ For visual regression testing or monitoring:
331
+
332
+ ```bash
333
+ # Save a baseline screenshot, then compare later
334
+ agent-browser screenshot baseline.png
335
+ # ... time passes or changes are made ...
336
+ agent-browser diff screenshot --baseline baseline.png
337
+
338
+ # Compare staging vs production
339
+ agent-browser diff url https://staging.example.com https://prod.example.com --screenshot
340
+ ```
341
+
342
+ `diff snapshot` output uses `+` for additions and `-` for removals, similar to git diff. `diff screenshot` produces a diff image with changed pixels highlighted in red, plus a mismatch percentage.
343
+
344
+ ## Timeouts and Slow Pages
345
+
346
+ The default Playwright timeout is 25 seconds for local browsers. This can be overridden with the `AGENT_BROWSER_DEFAULT_TIMEOUT` environment variable (value in milliseconds). For slow websites or large pages, use explicit waits instead of relying on the default timeout:
347
+
348
+ ```bash
349
+ # Wait for network activity to settle (best for slow pages)
350
+ agent-browser wait --load networkidle
351
+
352
+ # Wait for a specific element to appear
353
+ agent-browser wait "#content"
354
+ agent-browser wait @e1
355
+
356
+ # Wait for a specific URL pattern (useful after redirects)
357
+ agent-browser wait --url "**/dashboard"
358
+
359
+ # Wait for a JavaScript condition
360
+ agent-browser wait --fn "document.readyState === 'complete'"
361
+
362
+ # Wait a fixed duration (milliseconds) as a last resort
363
+ agent-browser wait 5000
364
+ ```
365
+
366
+ When dealing with consistently slow websites, use `wait --load networkidle` after `open` to ensure the page is fully loaded before taking a snapshot. If a specific element is slow to render, wait for it directly with `wait <selector>` or `wait @ref`.
367
+
368
+ ## Session Management and Cleanup
369
+
370
+ When running multiple agents or automations concurrently, always use named sessions to avoid conflicts:
371
+
372
+ ```bash
373
+ # Each agent gets its own isolated session
374
+ agent-browser --session agent1 open site-a.com
375
+ agent-browser --session agent2 open site-b.com
376
+
377
+ # Check active sessions
378
+ agent-browser session list
379
+ ```
380
+
381
+ Always close your browser session when done to avoid leaked processes:
382
+
383
+ ```bash
384
+ agent-browser close # Close default session
385
+ agent-browser --session agent1 close # Close specific session
386
+ ```
387
+
388
+ If a previous session was not closed properly, the daemon may still be running. Use `agent-browser close` to clean it up before starting new work.
389
+
390
+ ## Ref Lifecycle (Important)
391
+
392
+ Refs (`@e1`, `@e2`, etc.) are invalidated when the page changes. Always re-snapshot after:
393
+
394
+ - Clicking links or buttons that navigate
395
+ - Form submissions
396
+ - Dynamic content loading (dropdowns, modals)
397
+
398
+ ```bash
399
+ agent-browser click @e5 # Navigates to new page
400
+ agent-browser snapshot -i # MUST re-snapshot
401
+ agent-browser click @e1 # Use new refs
402
+ ```
403
+
404
+ ## Annotated Screenshots (Vision Mode)
405
+
406
+ Use `--annotate` to take a screenshot with numbered labels overlaid on interactive elements. Each label `[N]` maps to ref `@eN`. This also caches refs, so you can interact with elements immediately without a separate snapshot.
407
+
408
+ ```bash
409
+ agent-browser screenshot --annotate
410
+ # Output includes the image path and a legend:
411
+ # [1] @e1 button "Submit"
412
+ # [2] @e2 link "Home"
413
+ # [3] @e3 textbox "Email"
414
+ agent-browser click @e2 # Click using ref from annotated screenshot
415
+ ```
416
+
417
+ Use annotated screenshots when:
418
+ - The page has unlabeled icon buttons or visual-only elements
419
+ - You need to verify visual layout or styling
420
+ - Canvas or chart elements are present (invisible to text snapshots)
421
+ - You need spatial reasoning about element positions
422
+
423
+ ## Semantic Locators (Alternative to Refs)
424
+
425
+ When refs are unavailable or unreliable, use semantic locators:
426
+
427
+ ```bash
428
+ agent-browser find text "Sign In" click
429
+ agent-browser find label "Email" fill "user@test.com"
430
+ agent-browser find role button click --name "Submit"
431
+ agent-browser find placeholder "Search" type "query"
432
+ agent-browser find testid "submit-btn" click
433
+ ```
434
+
435
+ ## JavaScript Evaluation (eval)
436
+
437
+ Use `eval` to run JavaScript in the browser context. **Shell quoting can corrupt complex expressions** -- use `--stdin` or `-b` to avoid issues.
438
+
439
+ ```bash
440
+ # Simple expressions work with regular quoting
441
+ agent-browser eval 'document.title'
442
+ agent-browser eval 'document.querySelectorAll("img").length'
443
+
444
+ # Complex JS: use --stdin with heredoc (RECOMMENDED)
445
+ agent-browser eval --stdin <<'EVALEOF'
446
+ JSON.stringify(
447
+ Array.from(document.querySelectorAll("img"))
448
+ .filter(i => !i.alt)
449
+ .map(i => ({ src: i.src.split("/").pop(), width: i.width }))
450
+ )
451
+ EVALEOF
452
+
453
+ # Alternative: base64 encoding (avoids all shell escaping issues)
454
+ agent-browser eval -b "$(echo -n 'Array.from(document.querySelectorAll("a")).map(a => a.href)' | base64)"
455
+ ```
456
+
457
+ **Why this matters:** When the shell processes your command, inner double quotes, `!` characters (history expansion), backticks, and `$()` can all corrupt the JavaScript before it reaches agent-browser. The `--stdin` and `-b` flags bypass shell interpretation entirely.
458
+
459
+ **Rules of thumb:**
460
+ - Single-line, no nested quotes -> regular `eval 'expression'` with single quotes is fine
461
+ - Nested quotes, arrow functions, template literals, or multiline -> use `eval --stdin <<'EVALEOF'`
462
+ - Programmatic/generated scripts -> use `eval -b` with base64
463
+
464
+ ## Configuration File
465
+
466
+ Create `agent-browser.json` in the project root for persistent settings:
467
+
468
+ ```json
469
+ {
470
+ "headed": true,
471
+ "proxy": "http://localhost:8080",
472
+ "profile": "./browser-data"
473
+ }
474
+ ```
475
+
476
+ Priority (lowest to highest): `~/.agent-browser/config.json` < `./agent-browser.json` < env vars < CLI flags. Use `--config <path>` or `AGENT_BROWSER_CONFIG` env var for a custom config file (exits with error if missing/invalid). All CLI options map to camelCase keys (e.g., `--executable-path` -> `"executablePath"`). Boolean flags accept `true`/`false` values (e.g., `--headed false` overrides config). Extensions from user and project configs are merged, not replaced.
477
+
478
+ ## Deep-Dive Documentation
479
+
480
+ | Reference | When to Use |
481
+ |-----------|-------------|
482
+ | [references/commands.md](references/commands.md) | Full command reference with all options |
483
+ | [references/snapshot-refs.md](references/snapshot-refs.md) | Ref lifecycle, invalidation rules, troubleshooting |
484
+ | [references/session-management.md](references/session-management.md) | Parallel sessions, state persistence, concurrent scraping |
485
+ | [references/authentication.md](references/authentication.md) | Login flows, OAuth, 2FA handling, state reuse |
486
+ | [references/video-recording.md](references/video-recording.md) | Recording workflows for debugging and documentation |
487
+ | [references/profiling.md](references/profiling.md) | Chrome DevTools profiling for performance analysis |
488
+ | [references/proxy-support.md](references/proxy-support.md) | Proxy configuration, geo-testing, rotating proxies |
489
+
490
+ ## Experimental: Native Mode
491
+
492
+ agent-browser has an experimental native Rust daemon that communicates with Chrome directly via CDP, bypassing Node.js and Playwright entirely. It is opt-in and not recommended for production use yet.
493
+
494
+ ```bash
495
+ # Enable via flag
496
+ agent-browser --native open example.com
497
+
498
+ # Enable via environment variable (avoids passing --native every time)
499
+ export AGENT_BROWSER_NATIVE=1
500
+ agent-browser open example.com
501
+ ```
502
+
503
+ The native daemon supports Chromium and Safari (via WebDriver). Firefox and WebKit are not yet supported. All core commands (navigate, snapshot, click, fill, screenshot, cookies, storage, tabs, eval, etc.) work identically in native mode. Use `agent-browser close` before switching between native and default mode within the same session.
504
+
505
+ ## Ready-to-Use Templates
506
+
507
+ | Template | Description |
508
+ |----------|-------------|
509
+ | [templates/form-automation.sh](templates/form-automation.sh) | Form filling with validation |
510
+ | [templates/authenticated-session.sh](templates/authenticated-session.sh) | Login once, reuse state |
511
+ | [templates/capture-workflow.sh](templates/capture-workflow.sh) | Content extraction with screenshots |
512
+
513
+ ```bash
514
+ ./templates/form-automation.sh https://example.com/form
515
+ ./templates/authenticated-session.sh https://app.example.com/login
516
+ ./templates/capture-workflow.sh https://example.com ./output
517
+ ```