@event4u/agent-config 2.26.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) hide show
  1. package/.agent-src/commands/agent-handoff.md +15 -3
  2. package/.agent-src/commands/agent-status.md +12 -0
  3. package/.agent-src/commands/agents/audit.md +12 -0
  4. package/.agent-src/commands/agents/init.md +12 -0
  5. package/.agent-src/commands/agents/optimize.md +12 -0
  6. package/.agent-src/commands/agents/user/accept.md +12 -0
  7. package/.agent-src/commands/agents/user/init.md +12 -0
  8. package/.agent-src/commands/agents/user/review.md +12 -0
  9. package/.agent-src/commands/agents/user/show.md +12 -0
  10. package/.agent-src/commands/agents/user/update.md +12 -0
  11. package/.agent-src/commands/agents/user.md +12 -0
  12. package/.agent-src/commands/agents.md +12 -0
  13. package/.agent-src/commands/analyze-reference-repo.md +15 -3
  14. package/.agent-src/commands/bug-fix.md +12 -0
  15. package/.agent-src/commands/bug-investigate.md +13 -1
  16. package/.agent-src/commands/challenge-me/vision.md +12 -0
  17. package/.agent-src/commands/challenge-me/with-docs.md +12 -0
  18. package/.agent-src/commands/challenge-me.md +12 -0
  19. package/.agent-src/commands/chat-history/import.md +16 -4
  20. package/.agent-src/commands/chat-history/learn.md +15 -3
  21. package/.agent-src/commands/chat-history/show.md +17 -5
  22. package/.agent-src/commands/chat-history.md +14 -2
  23. package/.agent-src/commands/check-current-md.md +12 -0
  24. package/.agent-src/commands/commit/in-chunks.md +12 -0
  25. package/.agent-src/commands/commit.md +12 -0
  26. package/.agent-src/commands/compress.md +12 -0
  27. package/.agent-src/commands/context/create.md +17 -5
  28. package/.agent-src/commands/context/refactor.md +15 -3
  29. package/.agent-src/commands/context.md +12 -0
  30. package/.agent-src/commands/cost-report.md +12 -0
  31. package/.agent-src/commands/council/analysis.md +15 -3
  32. package/.agent-src/commands/council/debate.md +17 -5
  33. package/.agent-src/commands/council/default.md +17 -5
  34. package/.agent-src/commands/council/design.md +12 -0
  35. package/.agent-src/commands/council/optimize.md +12 -0
  36. package/.agent-src/commands/council/pr.md +12 -0
  37. package/.agent-src/commands/council.md +13 -1
  38. package/.agent-src/commands/create-pr/description-only.md +12 -0
  39. package/.agent-src/commands/create-pr.md +39 -0
  40. package/.agent-src/commands/e2e-heal.md +12 -0
  41. package/.agent-src/commands/e2e-plan.md +12 -0
  42. package/.agent-src/commands/estimate-ticket.md +12 -0
  43. package/.agent-src/commands/feature/dev.md +13 -1
  44. package/.agent-src/commands/feature/explore.md +12 -0
  45. package/.agent-src/commands/feature/plan.md +14 -2
  46. package/.agent-src/commands/feature/refactor.md +12 -0
  47. package/.agent-src/commands/feature/roadmap.md +12 -0
  48. package/.agent-src/commands/feature.md +12 -0
  49. package/.agent-src/commands/fix/ci.md +12 -0
  50. package/.agent-src/commands/fix/portability.md +12 -0
  51. package/.agent-src/commands/fix/pr-bot-comments.md +12 -0
  52. package/.agent-src/commands/fix/pr-comments.md +12 -0
  53. package/.agent-src/commands/fix/pr-developer-comments.md +12 -0
  54. package/.agent-src/commands/fix/refs.md +12 -0
  55. package/.agent-src/commands/fix/seeder.md +12 -0
  56. package/.agent-src/commands/fix.md +12 -0
  57. package/.agent-src/commands/ghostwriter/delete.md +20 -8
  58. package/.agent-src/commands/ghostwriter/fetch.md +19 -7
  59. package/.agent-src/commands/ghostwriter/list.md +19 -7
  60. package/.agent-src/commands/ghostwriter/show.md +14 -2
  61. package/.agent-src/commands/ghostwriter/write.md +15 -3
  62. package/.agent-src/commands/ghostwriter.md +14 -2
  63. package/.agent-src/commands/grill-me.md +12 -0
  64. package/.agent-src/commands/implement-ticket.md +12 -0
  65. package/.agent-src/commands/install-via-agent.md +129 -0
  66. package/.agent-src/commands/jira-ticket.md +12 -0
  67. package/.agent-src/commands/judge/on-diff.md +12 -0
  68. package/.agent-src/commands/judge/solo.md +12 -0
  69. package/.agent-src/commands/judge/steps.md +12 -0
  70. package/.agent-src/commands/judge.md +12 -0
  71. package/.agent-src/commands/memory/add.md +12 -0
  72. package/.agent-src/commands/memory/learn-low-impact.md +18 -6
  73. package/.agent-src/commands/memory/load.md +12 -0
  74. package/.agent-src/commands/memory/mine-session.md +12 -0
  75. package/.agent-src/commands/memory/promote.md +12 -0
  76. package/.agent-src/commands/memory/propose.md +12 -0
  77. package/.agent-src/commands/memory.md +12 -0
  78. package/.agent-src/commands/mode.md +12 -0
  79. package/.agent-src/commands/module/create.md +12 -0
  80. package/.agent-src/commands/module/explore.md +13 -1
  81. package/.agent-src/commands/module.md +12 -0
  82. package/.agent-src/commands/optimize/agents-dir.md +14 -2
  83. package/.agent-src/commands/optimize/augmentignore.md +12 -0
  84. package/.agent-src/commands/optimize/rtk.md +12 -0
  85. package/.agent-src/commands/optimize/skills.md +12 -0
  86. package/.agent-src/commands/optimize-prompt.md +12 -0
  87. package/.agent-src/commands/optimize.md +12 -0
  88. package/.agent-src/commands/orchestrate.md +13 -1
  89. package/.agent-src/commands/override/create.md +12 -0
  90. package/.agent-src/commands/override/manage.md +12 -0
  91. package/.agent-src/commands/override.md +12 -0
  92. package/.agent-src/commands/package-reset.md +12 -0
  93. package/.agent-src/commands/package-test.md +12 -0
  94. package/.agent-src/commands/post-as/ghostwriter.md +12 -0
  95. package/.agent-src/commands/post-as/me.md +13 -1
  96. package/.agent-src/commands/post-as.md +12 -0
  97. package/.agent-src/commands/prepare-for-review.md +12 -0
  98. package/.agent-src/commands/project-analyze.md +27 -15
  99. package/.agent-src/commands/project-health.md +13 -1
  100. package/.agent-src/commands/quality-fix.md +12 -0
  101. package/.agent-src/commands/refine-ticket.md +12 -0
  102. package/.agent-src/commands/research/deep.md +12 -0
  103. package/.agent-src/commands/research/report.md +12 -0
  104. package/.agent-src/commands/research.md +12 -0
  105. package/.agent-src/commands/review-changes.md +12 -0
  106. package/.agent-src/commands/review-routing.md +12 -0
  107. package/.agent-src/commands/roadmap/ai-council.md +15 -3
  108. package/.agent-src/commands/roadmap/create.md +13 -1
  109. package/.agent-src/commands/roadmap/process-full.md +12 -0
  110. package/.agent-src/commands/roadmap/process-phase.md +12 -0
  111. package/.agent-src/commands/roadmap/process-step.md +12 -0
  112. package/.agent-src/commands/roadmap.md +12 -0
  113. package/.agent-src/commands/rule-compliance-audit.md +12 -0
  114. package/.agent-src/commands/set-cost-profile.md +12 -0
  115. package/.agent-src/commands/sync-agent-settings.md +12 -0
  116. package/.agent-src/commands/sync-gitignore/fix.md +32 -13
  117. package/.agent-src/commands/sync-gitignore.md +13 -1
  118. package/.agent-src/commands/tests/create.md +12 -0
  119. package/.agent-src/commands/tests/execute.md +12 -0
  120. package/.agent-src/commands/tests.md +12 -0
  121. package/.agent-src/commands/threat-model.md +12 -0
  122. package/.agent-src/commands/update-form-request-messages.md +12 -0
  123. package/.agent-src/commands/upstream-contribute.md +12 -0
  124. package/.agent-src/commands/video/from-script.md +13 -1
  125. package/.agent-src/commands/video/scene.md +12 -0
  126. package/.agent-src/commands/video/stitch.md +13 -1
  127. package/.agent-src/commands/video/storyboard.md +12 -0
  128. package/.agent-src/commands/video.md +13 -1
  129. package/.agent-src/commands/work.md +12 -0
  130. package/.agent-src/contexts/augment-infrastructure.md +2 -2
  131. package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
  132. package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
  133. package/.agent-src/contexts/documentation-hierarchy.md +2 -2
  134. package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
  135. package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
  136. package/.agent-src/ghostwriter/README.md +2 -2
  137. package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
  138. package/.agent-src/personas/README.md +1 -1
  139. package/.agent-src/personas/advisors/contrarian.md +1 -1
  140. package/.agent-src/personas/advisors/executor.md +1 -1
  141. package/.agent-src/personas/advisors/expansionist.md +1 -1
  142. package/.agent-src/personas/advisors/first-principles.md +1 -1
  143. package/.agent-src/personas/advisors/outsider.md +1 -1
  144. package/.agent-src/rules/agent-authority.md +12 -0
  145. package/.agent-src/rules/analysis-skill-routing.md +12 -0
  146. package/.agent-src/rules/architecture.md +13 -1
  147. package/.agent-src/rules/artifact-drafting-protocol.md +13 -1
  148. package/.agent-src/rules/artifact-engagement-recording.md +13 -1
  149. package/.agent-src/rules/ask-when-uncertain.md +12 -0
  150. package/.agent-src/rules/augment-edit-discipline.md +13 -1
  151. package/.agent-src/rules/augment-source-of-truth.md +13 -1
  152. package/.agent-src/rules/autonomous-execution.md +13 -1
  153. package/.agent-src/rules/caveman-speak.md +15 -3
  154. package/.agent-src/rules/cli-output-handling.md +13 -1
  155. package/.agent-src/rules/command-suggestion-policy.md +13 -1
  156. package/.agent-src/rules/commit-conventions.md +13 -1
  157. package/.agent-src/rules/commit-policy.md +12 -0
  158. package/.agent-src/rules/context-hygiene.md +51 -3
  159. package/.agent-src/rules/copilot-routing.md +13 -1
  160. package/.agent-src/rules/devcontainer-routing.md +13 -1
  161. package/.agent-src/rules/direct-answers.md +12 -0
  162. package/.agent-src/rules/docker-commands.md +13 -1
  163. package/.agent-src/rules/domain-adoption-policy.md +17 -5
  164. package/.agent-src/rules/domain-safety-disclaimer.md +13 -1
  165. package/.agent-src/rules/domain-safety-pii.md +13 -1
  166. package/.agent-src/rules/domain-safety-retention.md +13 -1
  167. package/.agent-src/rules/downstream-changes.md +13 -1
  168. package/.agent-src/rules/engineering-safety-floor.md +102 -0
  169. package/.agent-src/rules/external-reference-deep-dive.md +13 -1
  170. package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
  171. package/.agent-src/rules/finance-safety-floor.md +114 -0
  172. package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
  173. package/.agent-src/rules/git-history-discipline.md +14 -2
  174. package/.agent-src/rules/guidelines.md +12 -0
  175. package/.agent-src/rules/improve-before-implement.md +13 -1
  176. package/.agent-src/rules/invite-challenge.md +13 -1
  177. package/.agent-src/rules/language-and-tone.md +12 -0
  178. package/.agent-src/rules/laravel-routing.md +13 -1
  179. package/.agent-src/rules/laravel-translations.md +13 -1
  180. package/.agent-src/rules/low-impact-corpus-privacy-floor.md +17 -5
  181. package/.agent-src/rules/markdown-safe-codeblocks.md +13 -1
  182. package/.agent-src/rules/media-governance-routing.md +27 -15
  183. package/.agent-src/rules/minimal-safe-diff.md +13 -1
  184. package/.agent-src/rules/missing-tool-handling.md +13 -1
  185. package/.agent-src/rules/model-recommendation.md +13 -1
  186. package/.agent-src/rules/no-attribution-footers.md +13 -1
  187. package/.agent-src/rules/no-cheap-questions.md +46 -32
  188. package/.agent-src/rules/no-roadmap-references.md +28 -16
  189. package/.agent-src/rules/non-destructive-by-default.md +12 -0
  190. package/.agent-src/rules/onboarding-gate.md +19 -6
  191. package/.agent-src/rules/package-ci-checks.md +12 -0
  192. package/.agent-src/rules/persona-governance.md +13 -1
  193. package/.agent-src/rules/php-coding.md +13 -1
  194. package/.agent-src/rules/preservation-guard.md +13 -1
  195. package/.agent-src/rules/provider-lifecycle-discipline.md +18 -6
  196. package/.agent-src/rules/reviewer-awareness.md +13 -1
  197. package/.agent-src/rules/roadmap-ci-steps-policy.md +13 -1
  198. package/.agent-src/rules/roadmap-progress-sync.md +18 -1
  199. package/.agent-src/rules/role-mode-adherence.md +13 -1
  200. package/.agent-src/rules/rule-type-governance.md +13 -1
  201. package/.agent-src/rules/runtime-safety.md +13 -1
  202. package/.agent-src/rules/scope-control.md +12 -0
  203. package/.agent-src/rules/security-sensitive-stop.md +13 -1
  204. package/.agent-src/rules/size-enforcement.md +12 -0
  205. package/.agent-src/rules/skill-improvement-trigger.md +13 -1
  206. package/.agent-src/rules/skill-quality.md +13 -1
  207. package/.agent-src/rules/slash-command-routing-policy.md +13 -1
  208. package/.agent-src/rules/strategy-safety-floor.md +114 -0
  209. package/.agent-src/rules/symfony-routing.md +13 -1
  210. package/.agent-src/rules/think-before-action.md +13 -1
  211. package/.agent-src/rules/token-efficiency.md +13 -1
  212. package/.agent-src/rules/token-optimizer-maintenance.md +12 -0
  213. package/.agent-src/rules/tool-safety.md +13 -1
  214. package/.agent-src/rules/ui-audit-gate.md +13 -1
  215. package/.agent-src/rules/upstream-proposal.md +13 -1
  216. package/.agent-src/rules/user-interaction.md +13 -1
  217. package/.agent-src/rules/user-interrupt-priority.md +12 -0
  218. package/.agent-src/rules/verify-before-complete.md +12 -0
  219. package/.agent-src/skills/accessibility-auditor/SKILL.md +12 -0
  220. package/.agent-src/skills/activation-design/SKILL.md +12 -0
  221. package/.agent-src/skills/adr-create/SKILL.md +12 -0
  222. package/.agent-src/skills/adversarial-review/SKILL.md +12 -0
  223. package/.agent-src/skills/agent-docs-writing/SKILL.md +16 -4
  224. package/.agent-src/skills/agents-md-thin-root/SKILL.md +28 -10
  225. package/.agent-src/skills/ai-council/SKILL.md +28 -15
  226. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +12 -0
  227. package/.agent-src/skills/analysis-skill-router/SKILL.md +12 -0
  228. package/.agent-src/skills/api-design/SKILL.md +13 -3
  229. package/.agent-src/skills/api-endpoint/SKILL.md +12 -0
  230. package/.agent-src/skills/api-testing/SKILL.md +12 -0
  231. package/.agent-src/skills/architecture-review-lens/SKILL.md +12 -0
  232. package/.agent-src/skills/artisan-commands/SKILL.md +12 -0
  233. package/.agent-src/skills/async-python-patterns/SKILL.md +13 -1
  234. package/.agent-src/skills/authz-review/SKILL.md +12 -2
  235. package/.agent-src/skills/aws-infrastructure/SKILL.md +12 -0
  236. package/.agent-src/skills/blade-ui/SKILL.md +12 -0
  237. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +12 -0
  238. package/.agent-src/skills/bug-analyzer/SKILL.md +14 -2
  239. package/.agent-src/skills/build-buy-partner/SKILL.md +12 -0
  240. package/.agent-src/skills/canvas-design/SKILL.md +12 -0
  241. package/.agent-src/skills/character-consistency/SKILL.md +23 -11
  242. package/.agent-src/skills/check-refs/SKILL.md +12 -0
  243. package/.agent-src/skills/churn-prevention/SKILL.md +12 -0
  244. package/.agent-src/skills/code-refactoring/SKILL.md +16 -4
  245. package/.agent-src/skills/code-review/SKILL.md +12 -0
  246. package/.agent-src/skills/command-routing/SKILL.md +12 -0
  247. package/.agent-src/skills/command-writing/SKILL.md +14 -2
  248. package/.agent-src/skills/comp-banding/SKILL.md +12 -0
  249. package/.agent-src/skills/competitive-moat-analysis/SKILL.md +12 -2
  250. package/.agent-src/skills/competitive-positioning/SKILL.md +12 -2
  251. package/.agent-src/skills/composer-packages/SKILL.md +12 -0
  252. package/.agent-src/skills/compress-memory/SKILL.md +12 -0
  253. package/.agent-src/skills/content-funnel-design/SKILL.md +12 -2
  254. package/.agent-src/skills/context-authoring/SKILL.md +18 -6
  255. package/.agent-src/skills/context-document/SKILL.md +17 -5
  256. package/.agent-src/skills/contracts-cognition/SKILL.md +12 -2
  257. package/.agent-src/skills/conventional-commits-writing/SKILL.md +12 -0
  258. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +13 -1
  259. package/.agent-src/skills/copilot-config/SKILL.md +12 -0
  260. package/.agent-src/skills/customer-research/SKILL.md +12 -0
  261. package/.agent-src/skills/dashboard-design/SKILL.md +12 -0
  262. package/.agent-src/skills/data-flow-mapper/SKILL.md +12 -0
  263. package/.agent-src/skills/data-handling-judgment/SKILL.md +12 -2
  264. package/.agent-src/skills/database/SKILL.md +14 -2
  265. package/.agent-src/skills/dcf-modeling/SKILL.md +12 -2
  266. package/.agent-src/skills/deal-qualification-meddic/SKILL.md +12 -2
  267. package/.agent-src/skills/decision-record/SKILL.md +12 -0
  268. package/.agent-src/skills/deep-reading-analyst/SKILL.md +12 -0
  269. package/.agent-src/skills/defense-in-depth/SKILL.md +13 -1
  270. package/.agent-src/skills/dependency-upgrade/SKILL.md +12 -0
  271. package/.agent-src/skills/description-assist/SKILL.md +12 -0
  272. package/.agent-src/skills/design-review/SKILL.md +12 -0
  273. package/.agent-src/skills/devcontainer/SKILL.md +12 -0
  274. package/.agent-src/skills/developer-like-execution/SKILL.md +12 -0
  275. package/.agent-src/skills/discovery-interview/SKILL.md +12 -2
  276. package/.agent-src/skills/doc-coauthoring/SKILL.md +12 -0
  277. package/.agent-src/skills/docker/SKILL.md +12 -0
  278. package/.agent-src/skills/editorial-calendar/SKILL.md +12 -2
  279. package/.agent-src/skills/eloquent/SKILL.md +12 -0
  280. package/.agent-src/skills/eloquent/evals/triggers.json +1 -1
  281. package/.agent-src/skills/error-handling-patterns/SKILL.md +13 -1
  282. package/.agent-src/skills/estimate-ticket/SKILL.md +12 -0
  283. package/.agent-src/skills/existing-ui-audit/SKILL.md +12 -0
  284. package/.agent-src/skills/expansion-playbook/SKILL.md +12 -0
  285. package/.agent-src/skills/fe-design/SKILL.md +12 -0
  286. package/.agent-src/skills/feature-planning/SKILL.md +12 -0
  287. package/.agent-src/skills/file-editor/SKILL.md +12 -0
  288. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +12 -0
  289. package/.agent-src/skills/flux/SKILL.md +12 -0
  290. package/.agent-src/skills/forecast-accuracy/SKILL.md +12 -2
  291. package/.agent-src/skills/forecasting/SKILL.md +12 -2
  292. package/.agent-src/skills/form-handler/SKILL.md +12 -0
  293. package/.agent-src/skills/fundraising-narrative/SKILL.md +12 -2
  294. package/.agent-src/skills/funnel-analysis/SKILL.md +12 -0
  295. package/.agent-src/skills/git-workflow/SKILL.md +12 -0
  296. package/.agent-src/skills/github-ci/SKILL.md +12 -0
  297. package/.agent-src/skills/grafana/SKILL.md +12 -0
  298. package/.agent-src/skills/gtm-launch/SKILL.md +12 -2
  299. package/.agent-src/skills/guideline-writing/SKILL.md +12 -0
  300. package/.agent-src/skills/hiring-loop-design/SKILL.md +12 -0
  301. package/.agent-src/skills/incident-commander/SKILL.md +12 -2
  302. package/.agent-src/skills/jira-integration/SKILL.md +12 -0
  303. package/.agent-src/skills/jobs-events/SKILL.md +12 -0
  304. package/.agent-src/skills/judge-bug-hunter/SKILL.md +12 -0
  305. package/.agent-src/skills/judge-code-quality/SKILL.md +12 -0
  306. package/.agent-src/skills/judge-security-auditor/SKILL.md +12 -0
  307. package/.agent-src/skills/judge-test-coverage/SKILL.md +12 -0
  308. package/.agent-src/skills/laravel/SKILL.md +12 -0
  309. package/.agent-src/skills/laravel-api-endpoint/SKILL.md +15 -3
  310. package/.agent-src/skills/laravel-dto/SKILL.md +14 -2
  311. package/.agent-src/skills/laravel-horizon/SKILL.md +12 -0
  312. package/.agent-src/skills/laravel-mail/SKILL.md +12 -0
  313. package/.agent-src/skills/laravel-middleware/SKILL.md +12 -0
  314. package/.agent-src/skills/laravel-migration/SKILL.md +12 -0
  315. package/.agent-src/skills/laravel-notifications/SKILL.md +12 -0
  316. package/.agent-src/skills/laravel-pennant/SKILL.md +12 -0
  317. package/.agent-src/skills/laravel-pulse/SKILL.md +12 -0
  318. package/.agent-src/skills/laravel-reverb/SKILL.md +12 -0
  319. package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
  320. package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
  321. package/.agent-src/skills/laravel-websocket/SKILL.md +12 -0
  322. package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
  323. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +15 -3
  324. package/.agent-src/skills/lint-skills/SKILL.md +12 -0
  325. package/.agent-src/skills/livewire/SKILL.md +12 -0
  326. package/.agent-src/skills/livewire-architect/SKILL.md +12 -0
  327. package/.agent-src/skills/logging-monitoring/SKILL.md +12 -0
  328. package/.agent-src/skills/market-entry-analysis/SKILL.md +12 -0
  329. package/.agent-src/skills/markitdown/SKILL.md +14 -2
  330. package/.agent-src/skills/mcp/SKILL.md +12 -0
  331. package/.agent-src/skills/mcp-builder/SKILL.md +14 -2
  332. package/.agent-src/skills/md-language-check/SKILL.md +13 -1
  333. package/.agent-src/skills/memory-consolidation/SKILL.md +12 -0
  334. package/.agent-src/skills/merge-conflicts/SKILL.md +12 -0
  335. package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
  336. package/.agent-src/skills/migration-architect/SKILL.md +12 -0
  337. package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
  338. package/.agent-src/skills/module-management/SKILL.md +12 -0
  339. package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
  340. package/.agent-src/skills/multi-tenancy/SKILL.md +14 -2
  341. package/.agent-src/skills/nextjs-patterns/SKILL.md +12 -0
  342. package/.agent-src/skills/okr-tree-modeling/SKILL.md +12 -2
  343. package/.agent-src/skills/onboarding-design/SKILL.md +12 -0
  344. package/.agent-src/skills/onboarding-program/SKILL.md +12 -0
  345. package/.agent-src/skills/one-on-one-cadence/SKILL.md +12 -0
  346. package/.agent-src/skills/openapi/SKILL.md +13 -1
  347. package/.agent-src/skills/org-design/SKILL.md +12 -0
  348. package/.agent-src/skills/override-management/SKILL.md +12 -0
  349. package/.agent-src/skills/perf-feedback-craft/SKILL.md +12 -0
  350. package/.agent-src/skills/performance/SKILL.md +12 -0
  351. package/.agent-src/skills/performance-analysis/SKILL.md +12 -0
  352. package/.agent-src/skills/persona-writing/SKILL.md +12 -0
  353. package/.agent-src/skills/pest-testing/SKILL.md +12 -0
  354. package/.agent-src/skills/php-coder/SKILL.md +12 -0
  355. package/.agent-src/skills/php-debugging/SKILL.md +12 -0
  356. package/.agent-src/skills/php-service/SKILL.md +12 -0
  357. package/.agent-src/skills/pipeline-strategy/SKILL.md +12 -2
  358. package/.agent-src/skills/pixar-storyteller/SKILL.md +17 -5
  359. package/.agent-src/skills/playwright-architect/SKILL.md +12 -2
  360. package/.agent-src/skills/playwright-testing/SKILL.md +12 -0
  361. package/.agent-src/skills/po-discovery/SKILL.md +12 -0
  362. package/.agent-src/skills/positioning-strategy/SKILL.md +12 -0
  363. package/.agent-src/skills/privacy-review/SKILL.md +12 -2
  364. package/.agent-src/skills/project-analysis-core/SKILL.md +12 -0
  365. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +12 -0
  366. package/.agent-src/skills/project-analysis-laravel/SKILL.md +12 -0
  367. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +12 -0
  368. package/.agent-src/skills/project-analysis-node-express/SKILL.md +12 -0
  369. package/.agent-src/skills/project-analysis-react/SKILL.md +12 -0
  370. package/.agent-src/skills/project-analysis-symfony/SKILL.md +12 -0
  371. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +12 -0
  372. package/.agent-src/skills/project-analyzer/SKILL.md +30 -18
  373. package/.agent-src/skills/project-docs/SKILL.md +25 -13
  374. package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +13 -1
  375. package/.agent-src/skills/prompt-optimizer/SKILL.md +13 -1
  376. package/.agent-src/skills/quality-tools/SKILL.md +12 -2
  377. package/.agent-src/skills/react-native-setup/SKILL.md +12 -0
  378. package/.agent-src/skills/react-shadcn-ui/SKILL.md +12 -0
  379. package/.agent-src/skills/readme-reviewer/SKILL.md +64 -3
  380. package/.agent-src/skills/readme-writing/SKILL.md +64 -4
  381. package/.agent-src/skills/readme-writing-package/SKILL.md +60 -5
  382. package/.agent-src/skills/receiving-code-review/SKILL.md +12 -0
  383. package/.agent-src/skills/refine-prompt/SKILL.md +13 -1
  384. package/.agent-src/skills/refine-ticket/SKILL.md +14 -2
  385. package/.agent-src/skills/refine-ticket/detection-map.yml +2 -2
  386. package/.agent-src/skills/release-comms/SKILL.md +12 -2
  387. package/.agent-src/skills/repomix-packer/SKILL.md +13 -1
  388. package/.agent-src/skills/requesting-code-review/SKILL.md +12 -0
  389. package/.agent-src/skills/retention-loops/SKILL.md +12 -0
  390. package/.agent-src/skills/review-routing/SKILL.md +12 -0
  391. package/.agent-src/skills/rice-prioritization/SKILL.md +12 -0
  392. package/.agent-src/skills/risk-officer/SKILL.md +12 -0
  393. package/.agent-src/skills/roadmap-management/SKILL.md +12 -0
  394. package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
  395. package/.agent-src/skills/rtk-output-filtering/SKILL.md +12 -0
  396. package/.agent-src/skills/rule-refactor/SKILL.md +15 -3
  397. package/.agent-src/skills/rule-writing/SKILL.md +13 -1
  398. package/.agent-src/skills/runway-cognition/SKILL.md +12 -2
  399. package/.agent-src/skills/scenario-modeling/SKILL.md +12 -2
  400. package/.agent-src/skills/scene-expander/SKILL.md +18 -6
  401. package/.agent-src/skills/script-writing/SKILL.md +13 -1
  402. package/.agent-src/skills/secrets-management/SKILL.md +13 -3
  403. package/.agent-src/skills/security/SKILL.md +12 -0
  404. package/.agent-src/skills/security-audit/SKILL.md +12 -0
  405. package/.agent-src/skills/sentry-integration/SKILL.md +12 -0
  406. package/.agent-src/skills/sequential-thinking/SKILL.md +12 -0
  407. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +12 -0
  408. package/.agent-src/skills/skill-management/SKILL.md +12 -0
  409. package/.agent-src/skills/skill-reviewer/SKILL.md +12 -0
  410. package/.agent-src/skills/skill-writing/SKILL.md +12 -0
  411. package/.agent-src/skills/sql-writing/SKILL.md +12 -0
  412. package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +12 -0
  413. package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -1
  414. package/.agent-src/skills/symfony-workflow/SKILL.md +12 -0
  415. package/.agent-src/skills/systematic-debugging/SKILL.md +53 -0
  416. package/.agent-src/skills/tailwind-engineer/SKILL.md +12 -0
  417. package/.agent-src/skills/tech-debt-tracker/SKILL.md +12 -2
  418. package/.agent-src/skills/technical-specification/SKILL.md +12 -0
  419. package/.agent-src/skills/terraform/SKILL.md +12 -0
  420. package/.agent-src/skills/terragrunt/SKILL.md +12 -0
  421. package/.agent-src/skills/test-driven-development/SKILL.md +12 -0
  422. package/.agent-src/skills/test-performance/SKILL.md +13 -1
  423. package/.agent-src/skills/testing-anti-patterns/SKILL.md +13 -1
  424. package/.agent-src/skills/threat-modeling/SKILL.md +12 -0
  425. package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +12 -0
  426. package/.agent-src/skills/token-optimizer/SKILL.md +12 -0
  427. package/.agent-src/skills/traefik/SKILL.md +12 -0
  428. package/.agent-src/skills/ui-component-architect/SKILL.md +12 -0
  429. package/.agent-src/skills/unit-economics-modeling/SKILL.md +12 -2
  430. package/.agent-src/skills/universal-project-analysis/SKILL.md +12 -0
  431. package/.agent-src/skills/upstream-contribute/SKILL.md +12 -0
  432. package/.agent-src/skills/using-git-worktrees/SKILL.md +12 -0
  433. package/.agent-src/skills/validate-feature-fit/SKILL.md +12 -0
  434. package/.agent-src/skills/verify-completion-evidence/SKILL.md +12 -0
  435. package/.agent-src/skills/video-director/SKILL.md +18 -6
  436. package/.agent-src/skills/vision-articulation/SKILL.md +12 -0
  437. package/.agent-src/skills/voc-extract/SKILL.md +12 -2
  438. package/.agent-src/skills/voice-and-tone-design/SKILL.md +12 -2
  439. package/.agent-src/templates/agent-settings.md +5 -5
  440. package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  441. package/.agent-src/templates/agents/memory/ownership.example.yml +1 -1
  442. package/.agent-src/templates/agents/proposal.example.md +12 -0
  443. package/.agent-src/templates/command.md +1 -1
  444. package/.agent-src/templates/contexts/auth-model.md +2 -2
  445. package/.agent-src/templates/contexts/data-sensitivity.md +3 -3
  446. package/.agent-src/templates/contexts/deployment-order.md +2 -2
  447. package/.agent-src/templates/contexts/observability.md +3 -3
  448. package/.agent-src/templates/contexts/tenant-boundaries.md +3 -3
  449. package/.agent-src/templates/contexts.md +1 -1
  450. package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
  451. package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
  452. package/.agent-src/templates/rule.md +1 -1
  453. package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +7 -4
  454. package/.agent-src/templates/scripts/work_engine/cli.py +6 -6
  455. package/.agent-src/templates/scripts/work_engine/emitters.py +29 -4
  456. package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.py +3 -3
  457. package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
  458. package/.agent-src/templates/scripts/work_engine/state.py +53 -0
  459. package/.agent-src/templates/skill-archive-note.md +4 -4
  460. package/.claude-plugin/marketplace.json +2 -2
  461. package/AGENTS.md +12 -9
  462. package/CHANGELOG.md +268 -90
  463. package/CONTRIBUTING.md +61 -0
  464. package/README.md +173 -558
  465. package/config/agent-settings.template.yml +11 -8
  466. package/config/discovery/packs.yml +162 -0
  467. package/config/discovery/unassigned-artefacts.yml +68 -0
  468. package/config/discovery/workspaces.yml +59 -0
  469. package/config/gitignore-block.txt +36 -23
  470. package/dist/cli/agent-config.js +199 -0
  471. package/dist/cli/agent-config.js.map +1 -0
  472. package/dist/cli/bash/runBash.js +40 -0
  473. package/dist/cli/bash/runBash.js.map +1 -0
  474. package/dist/cli/commands/doctorShell.js +91 -0
  475. package/dist/cli/commands/doctorShell.js.map +1 -0
  476. package/dist/cli/commands/packs.js +59 -0
  477. package/dist/cli/commands/packs.js.map +1 -0
  478. package/dist/cli/commands/settings.js +35 -0
  479. package/dist/cli/commands/settings.js.map +1 -0
  480. package/dist/cli/commands/uiServe.js +119 -0
  481. package/dist/cli/commands/uiServe.js.map +1 -0
  482. package/dist/cli/commands/versions.js +64 -0
  483. package/dist/cli/commands/versions.js.map +1 -0
  484. package/dist/cli/commands/workspaces.js +58 -0
  485. package/dist/cli/commands/workspaces.js.map +1 -0
  486. package/dist/cli/discovery/loadManifest.js +62 -0
  487. package/dist/cli/discovery/loadManifest.js.map +1 -0
  488. package/dist/cli/log/logger.js +41 -0
  489. package/dist/cli/log/logger.js.map +1 -0
  490. package/dist/cli/paths.js +60 -0
  491. package/dist/cli/paths.js.map +1 -0
  492. package/dist/cli/python/resolvePython.js +38 -0
  493. package/dist/cli/python/resolvePython.js.map +1 -0
  494. package/dist/cli/registry.js +77 -0
  495. package/dist/cli/registry.js.map +1 -0
  496. package/dist/discovery/deprecation-report.md +7 -0
  497. package/dist/discovery/discovery-manifest.json +9893 -0
  498. package/dist/discovery/discovery-manifest.json.sha256 +1 -0
  499. package/dist/discovery/discovery-manifest.summary.md +93 -0
  500. package/dist/discovery/orphan-report.md +10 -0
  501. package/dist/discovery/packs.json +1002 -0
  502. package/dist/discovery/trust-report.md +26 -0
  503. package/dist/discovery/workspaces.json +705 -0
  504. package/dist/mcp/awesome-mcp-servers.row.md +1 -0
  505. package/dist/mcp/mcp-cloudflare-catalogue.json +27 -0
  506. package/dist/mcp/registry-manifest.json +63 -0
  507. package/dist/router.json +1623 -0
  508. package/dist/server/app.js +125 -0
  509. package/dist/server/app.js.map +1 -0
  510. package/dist/server/io/atomicMultiWrite.js +204 -0
  511. package/dist/server/io/atomicMultiWrite.js.map +1 -0
  512. package/dist/server/io/atomicWrite.js +79 -0
  513. package/dist/server/io/atomicWrite.js.map +1 -0
  514. package/dist/server/io/substituteTemplate.js +87 -0
  515. package/dist/server/io/substituteTemplate.js.map +1 -0
  516. package/dist/server/io/yamlIO.js +162 -0
  517. package/dist/server/io/yamlIO.js.map +1 -0
  518. package/dist/server/port.js +97 -0
  519. package/dist/server/port.js.map +1 -0
  520. package/dist/server/routes/discovery.js +72 -0
  521. package/dist/server/routes/discovery.js.map +1 -0
  522. package/dist/server/routes/ping.js +57 -0
  523. package/dist/server/routes/ping.js.map +1 -0
  524. package/dist/server/routes/schema.js +41 -0
  525. package/dist/server/routes/schema.js.map +1 -0
  526. package/dist/server/routes/settings.js +236 -0
  527. package/dist/server/routes/settings.js.map +1 -0
  528. package/dist/server/routes/userMd.js +127 -0
  529. package/dist/server/routes/userMd.js.map +1 -0
  530. package/dist/server/routes/wizard.js +374 -0
  531. package/dist/server/routes/wizard.js.map +1 -0
  532. package/dist/server/schemas/settings.js +137 -0
  533. package/dist/server/schemas/settings.js.map +1 -0
  534. package/dist/server/token.js +75 -0
  535. package/dist/server/token.js.map +1 -0
  536. package/dist/server/writeRoot.js +84 -0
  537. package/dist/server/writeRoot.js.map +1 -0
  538. package/dist/server/writeRoot.test.js +91 -0
  539. package/dist/server/writeRoot.test.js.map +1 -0
  540. package/dist/shared/userMd/formAdapter.js +83 -0
  541. package/dist/shared/userMd/formAdapter.js.map +1 -0
  542. package/dist/shared/userMd/schema.js +46 -0
  543. package/dist/shared/userMd/schema.js.map +1 -0
  544. package/dist/shared/userMd/utils.js +88 -0
  545. package/dist/shared/userMd/utils.js.map +1 -0
  546. package/dist/ui/assets/index-D-DY1ywI.js +35 -0
  547. package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
  548. package/dist/ui/assets/index-Dqfhmg-d.css +1 -0
  549. package/dist/ui/index.html +14 -0
  550. package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
  551. package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
  552. package/docs/adrs/router/0001-three-tier-routing.md +5 -5
  553. package/docs/adrs/schema/0001-json-schema-frontmatter.md +4 -4
  554. package/docs/adrs/schema/README.md +1 -1
  555. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +3 -3
  556. package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
  557. package/docs/architecture.md +3 -2
  558. package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
  559. package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
  560. package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
  561. package/docs/catalog.md +92 -100
  562. package/docs/contracts/CHANGELOG-conventions.md +1 -1
  563. package/docs/contracts/STABILITY.md +1 -1
  564. package/docs/contracts/adr-architectural-consensus-mechanism.md +5 -5
  565. package/docs/contracts/adr-chat-history-split.md +1 -1
  566. package/docs/contracts/adr-implement-ticket-runtime.md +1 -1
  567. package/docs/contracts/adr-install-user-type-axis.md +1 -1
  568. package/docs/contracts/adr-mcp-runtime.md +2 -2
  569. package/docs/contracts/agent-user-schema.md +17 -11
  570. package/docs/contracts/ai-council-config.md +13 -13
  571. package/docs/contracts/audit-log-v1.md +2 -2
  572. package/docs/contracts/command-clusters.md +2 -2
  573. package/docs/contracts/compression-default-kill-criterion.md +3 -3
  574. package/docs/contracts/consumer-bridge.md +79 -0
  575. package/docs/contracts/decision-trace-v1.md +5 -5
  576. package/docs/contracts/discovery-manifest.md +209 -0
  577. package/docs/contracts/discovery-manifest.schema.json +219 -0
  578. package/docs/contracts/explain-trace.schema.json +144 -0
  579. package/docs/contracts/file-ownership-matrix.json +288 -328
  580. package/docs/contracts/file-ownership-matrix.md +1 -1
  581. package/docs/contracts/frontmatter-contract.md +140 -0
  582. package/docs/contracts/ghostwriter-schema.md +3 -3
  583. package/docs/contracts/gui-wizard.md +223 -0
  584. package/docs/contracts/hook-architecture-v1.md +10 -10
  585. package/docs/contracts/installer-agent-mode.md +137 -0
  586. package/docs/contracts/kernel-membership.md +5 -5
  587. package/docs/contracts/linter-structural-model.md +3 -3
  588. package/docs/contracts/load-context-schema.md +5 -5
  589. package/docs/contracts/local-server-api.md +134 -0
  590. package/docs/contracts/low-impact-corpus-format.md +1 -1
  591. package/docs/contracts/mcp-cloud-scope.md +2 -2
  592. package/docs/contracts/mcp-discovery-phase-notice.md +1 -1
  593. package/docs/contracts/mcp-phase-1-scope.md +5 -4
  594. package/docs/contracts/mcp-registry-manifest.schema.json +129 -0
  595. package/docs/contracts/mcp-tool-inventory.md +9 -9
  596. package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
  597. package/docs/contracts/memory-visibility-v1.md +2 -2
  598. package/docs/contracts/multi-tool-projection-fidelity.md +3 -3
  599. package/docs/contracts/namespace.md +7 -7
  600. package/docs/contracts/one-off-script-lifecycle.md +1 -1
  601. package/docs/contracts/package-self-orientation.md +1 -1
  602. package/docs/contracts/provider-lifecycle.md +7 -7
  603. package/docs/contracts/router-blending.md +1 -1
  604. package/docs/contracts/rule-classification.md +2 -2
  605. package/docs/contracts/rule-router.md +4 -4
  606. package/docs/contracts/settings-api.md +207 -0
  607. package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
  608. package/docs/contracts/smoke-contracts.md +3 -3
  609. package/docs/contracts/tier-3-contrib-plugin.md +1 -1
  610. package/docs/contracts/trust-and-safety.md +144 -0
  611. package/docs/contracts/universal-skills.md +1 -1
  612. package/docs/contracts/write-engine.md +1 -1
  613. package/docs/customization.md +139 -13
  614. package/docs/decisions/ADR-001-kernel-swap-deferred.md +1 -1
  615. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +1 -1
  616. package/docs/decisions/ADR-004-rule-governance-pruning.md +8 -8
  617. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +5 -5
  618. package/docs/decisions/ADR-007-agent-discovery-scopes.md +16 -4
  619. package/docs/decisions/ADR-008-installed-tools-manifest.md +2 -2
  620. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +2 -2
  621. package/docs/decisions/ADR-011-domain-pack-readiness.md +4 -4
  622. package/docs/decisions/ADR-012-typescript-cli-shell.md +162 -0
  623. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +234 -0
  624. package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
  625. package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
  626. package/docs/decisions/ADR-016-installer-architecture.md +189 -0
  627. package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
  628. package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
  629. package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
  630. package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
  631. package/docs/decisions/ADR-021-deployment-shape.md +153 -0
  632. package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
  633. package/docs/decisions/INDEX.md +10 -0
  634. package/docs/deploy/connector-setup.md +129 -0
  635. package/docs/deploy/env-vars.md +70 -0
  636. package/docs/deploy/policy-cookbook.md +130 -0
  637. package/docs/deploy/quickstart.md +112 -0
  638. package/docs/distribution/mcp-submission-checklist.md +95 -0
  639. package/docs/distribution/public-install-smoke.md +68 -0
  640. package/docs/distribution/registries.md +55 -0
  641. package/docs/distribution/telemetry-privacy.md +128 -0
  642. package/docs/distribution/telemetry-schema.md +174 -0
  643. package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
  644. package/docs/examples/agent-user.example.md +3 -1
  645. package/docs/featured-skills.md +95 -0
  646. package/docs/getting-started-by-role.md +19 -1
  647. package/docs/getting-started.md +5 -4
  648. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  649. package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
  650. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +10 -1
  651. package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
  652. package/docs/guidelines/agent-infra/tool-integration.md +1 -1
  653. package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
  654. package/docs/guidelines/php/api-design.md +1 -1
  655. package/docs/guidelines/prompt-templates.md +2 -2
  656. package/docs/hook-payload-capture.md +3 -3
  657. package/docs/installation.md +39 -18
  658. package/docs/maintainers/dev-mode.md +105 -0
  659. package/docs/migrations/commands-1.15.0.md +3 -3
  660. package/docs/parity/bench-ruflo.json +1 -1
  661. package/docs/parity/ruflo.md +3 -3
  662. package/docs/profiles.md +1 -1
  663. package/docs/quality.md +2 -2
  664. package/docs/recruits/_template.md +3 -3
  665. package/docs/setup/enterprise-and-offline.md +3 -3
  666. package/docs/setup/mcp-server-docker.md +5 -3
  667. package/docs/setup/per-ide/claude-desktop.md +3 -2
  668. package/docs/skills-catalog.md +62 -18
  669. package/docs/wizard.md +156 -0
  670. package/llms.txt +61 -17
  671. package/package.json +63 -3
  672. package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
  673. package/scripts/_archive/README.md +2 -2
  674. package/scripts/_archive/_p4_migrate.py +1 -1
  675. package/scripts/_cli/cmd_doctor.py +155 -7
  676. package/scripts/_cli/cmd_explain.py +108 -3
  677. package/scripts/_cli/cmd_migrate.py +2 -2
  678. package/scripts/_cli/cmd_migrate_to_global.py +415 -0
  679. package/scripts/_cli/cmd_settings_migrate.py +146 -0
  680. package/scripts/_cli/explain_last/__init__.py +122 -0
  681. package/scripts/_cli/explain_last/assumptions.py +59 -0
  682. package/scripts/_cli/explain_last/council.py +105 -0
  683. package/scripts/_cli/explain_last/halt.py +44 -0
  684. package/scripts/_cli/explain_last/inputs.py +125 -0
  685. package/scripts/_cli/explain_last/memory.py +94 -0
  686. package/scripts/_cli/explain_last/provider.py +52 -0
  687. package/scripts/_cli/explain_last/render.py +52 -0
  688. package/scripts/_cli/explain_last/route.py +59 -0
  689. package/scripts/_cli/explain_last/scrubber.py +105 -0
  690. package/scripts/_cli/explain_last/sections/__init__.py +35 -0
  691. package/scripts/_cli/explain_last/sections/assumptions.py +21 -0
  692. package/scripts/_cli/explain_last/sections/council.py +27 -0
  693. package/scripts/_cli/explain_last/sections/halt.py +31 -0
  694. package/scripts/_cli/explain_last/sections/header.py +24 -0
  695. package/scripts/_cli/explain_last/sections/inputs.py +27 -0
  696. package/scripts/_cli/explain_last/sections/memory.py +21 -0
  697. package/scripts/_cli/explain_last/sections/pack.py +16 -0
  698. package/scripts/_cli/explain_last/sections/provider.py +26 -0
  699. package/scripts/_cli/explain_last/sections/route.py +22 -0
  700. package/scripts/_cli/explain_last/state_loader.py +76 -0
  701. package/scripts/_dispatch.bash +987 -0
  702. package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
  703. package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
  704. package/scripts/_lib/agent_settings.py +7 -4
  705. package/scripts/_lib/agent_src.py +157 -0
  706. package/scripts/_lib/agents_overlay.py +3 -3
  707. package/scripts/_phase4_bucket.py +210 -0
  708. package/scripts/agent-config +50 -947
  709. package/scripts/ai-video/adapters/higgsfield.sh +1 -1
  710. package/scripts/ai-video/adapters/sora.sh +1 -1
  711. package/scripts/ai-video/test-pipeline.sh +2 -2
  712. package/scripts/ai_council/_default_prices.py +5 -5
  713. package/scripts/ai_council/advisors.py +1 -1
  714. package/scripts/ai_council/clients.py +2 -2
  715. package/scripts/ai_council/compile_corpus.py +9 -8
  716. package/scripts/ai_council/config.py +3 -3
  717. package/scripts/ai_council/events_log.py +8 -4
  718. package/scripts/ai_council/low_impact_corpus.py +1 -1
  719. package/scripts/ai_council/low_impact_intake.py +1 -1
  720. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +2 -2
  721. package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +1 -1
  722. package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +3 -3
  723. package/scripts/ai_council/pricing.py +8 -7
  724. package/scripts/ai_council/probation_gate.py +1 -1
  725. package/scripts/ai_council/redact_low_impact_entry.py +1 -1
  726. package/scripts/ai_council/session.py +13 -13
  727. package/scripts/ai_council/shadow_dispatch.py +2 -2
  728. package/scripts/annotate_discovery.py +149 -0
  729. package/scripts/audit_adr_coverage.py +1 -1
  730. package/scripts/audit_auto_rules.py +2 -2
  731. package/scripts/audit_cloud_compatibility.py +1 -1
  732. package/scripts/audit_command_surface.py +2 -2
  733. package/scripts/audit_likelihood.py +4 -4
  734. package/scripts/audit_overlap.py +3 -3
  735. package/scripts/audit_skill_descriptions.py +18 -6
  736. package/scripts/audit_user_type_axis.py +1 -1
  737. package/scripts/build_discovery_manifest.py +658 -0
  738. package/scripts/build_mcp_registry_manifest.py +181 -0
  739. package/scripts/build_rule_trigger_matrix.py +2 -2
  740. package/scripts/capture_showcase_session.py +1 -1
  741. package/scripts/chat_history.py +5 -5
  742. package/scripts/check_always_budget.py +7 -2
  743. package/scripts/check_artefact_checksums.py +104 -0
  744. package/scripts/check_cluster_patterns.py +20 -4
  745. package/scripts/check_command_count_messaging.py +33 -14
  746. package/scripts/check_council_layout.py +26 -20
  747. package/scripts/check_council_references.py +53 -14
  748. package/scripts/check_discovery_determinism.py +70 -0
  749. package/scripts/check_kernel_rule_bundle.py +2 -2
  750. package/scripts/check_no_roadmap_refs.py +2 -2
  751. package/scripts/check_one_off_location.py +1 -1
  752. package/scripts/check_overlay_cascade_subdirs.py +7 -3
  753. package/scripts/check_public_links.py +2 -2
  754. package/scripts/check_references.py +19 -23
  755. package/scripts/check_release_includes_discovery.py +61 -0
  756. package/scripts/check_reply_consistency.py +32 -9
  757. package/scripts/check_template_pin_drift.py +24 -7
  758. package/scripts/check_token_optimizer_freshness.py +18 -3
  759. package/scripts/ci_summary.py +2 -2
  760. package/scripts/ci_time_ratio.py +1 -1
  761. package/scripts/command_suggester/__init__.py +1 -1
  762. package/scripts/compile_router.py +34 -2
  763. package/scripts/compress.py +162 -44
  764. package/scripts/config/presets.py +19 -1
  765. package/scripts/config/profiles.py +16 -1
  766. package/scripts/context_hygiene_hook.py +2 -2
  767. package/scripts/council_cli.py +22 -22
  768. package/scripts/council_prune.py +3 -3
  769. package/scripts/discovery_stats.py +70 -0
  770. package/scripts/expected_perms.json +47 -0
  771. package/scripts/extract_audit_patterns.py +2 -2
  772. package/scripts/gen_discovery_baseline.py +127 -0
  773. package/scripts/generate_index.py +78 -46
  774. package/scripts/generate_ownership_matrix.py +99 -44
  775. package/scripts/generate_pack_manifests.py +183 -0
  776. package/scripts/hook_manifest.yaml +5 -5
  777. package/scripts/hooks/cline-dispatcher.sh +1 -1
  778. package/scripts/hooks/cowork-dispatcher.sh +1 -1
  779. package/scripts/hooks/dispatch_hook.py +3 -3
  780. package/scripts/hooks/gemini-dispatcher.sh +1 -1
  781. package/scripts/hooks/replay_hook.py +1 -1
  782. package/scripts/hooks/state_io.py +5 -5
  783. package/scripts/hooks_doctor.py +4 -4
  784. package/scripts/install +18 -1
  785. package/scripts/install-hooks.sh +2 -2
  786. package/scripts/install.py +937 -62
  787. package/scripts/install.sh +147 -27
  788. package/scripts/inventory_frontmatter.py +1 -1
  789. package/scripts/lint_agents_layout.py +183 -0
  790. package/scripts/lint_agents_md.py +1 -1
  791. package/scripts/lint_archived_skills.py +35 -19
  792. package/scripts/lint_artefact_frontmatter.py +180 -0
  793. package/scripts/lint_bench_corpus.py +14 -2
  794. package/scripts/lint_command_tiers.py +15 -2
  795. package/scripts/lint_discovery_manifest.py +136 -0
  796. package/scripts/lint_discovery_vocabulary.py +148 -0
  797. package/scripts/lint_explain_trace.py +80 -0
  798. package/scripts/lint_featured_skills.py +139 -0
  799. package/scripts/lint_framework_leakage.py +33 -6
  800. package/scripts/lint_framework_leakage_allowlist.json +63 -62
  801. package/scripts/lint_ghostwriter_source.py +1 -1
  802. package/scripts/lint_global_paths.py +147 -0
  803. package/scripts/lint_load_context.py +3 -3
  804. package/scripts/lint_mcp_registry_manifest.py +69 -0
  805. package/scripts/lint_media_policy_linkage.py +6 -6
  806. package/scripts/lint_orchestration_dsl.py +6 -3
  807. package/scripts/lint_pack_boundaries.py +147 -0
  808. package/scripts/lint_pack_first_win.py +103 -0
  809. package/scripts/lint_positioning.py +143 -0
  810. package/scripts/lint_readme_jargon.py +131 -0
  811. package/scripts/lint_readme_size.py +33 -0
  812. package/scripts/lint_rule_interactions.py +23 -5
  813. package/scripts/lint_rule_tiers.py +14 -5
  814. package/scripts/lint_skill_tools.py +1 -1
  815. package/scripts/lint_topics_yaml.py +89 -0
  816. package/scripts/lint_trust_coherence.py +212 -0
  817. package/scripts/mcp_server/consumer_tool_catalog.json +3 -3
  818. package/scripts/mcp_server/telemetry.py +2 -2
  819. package/scripts/mcp_server/tools.py +27 -11
  820. package/scripts/mcp_telemetry_health.py +2 -2
  821. package/scripts/mcp_telemetry_store.py +1 -1
  822. package/scripts/measure_augment_budget.py +3 -3
  823. package/scripts/measure_density.py +2 -2
  824. package/scripts/measure_frugality_savings.py +3 -3
  825. package/scripts/measure_roadmap_trajectory.py +1 -1
  826. package/scripts/measure_rule_budget.py +25 -7
  827. package/scripts/memory_report.py +1 -1
  828. package/scripts/migrate_command_suggestions.py +3 -3
  829. package/scripts/minimal_safe_diff_hook.py +1 -1
  830. package/scripts/move_artefact.py +143 -0
  831. package/scripts/new_skill.py +148 -0
  832. package/scripts/onboarding_gate_hook.py +4 -4
  833. package/scripts/plan_physical_move.py +353 -0
  834. package/scripts/prepack-check.mjs +62 -0
  835. package/scripts/probe_projection_fidelity.py +2 -2
  836. package/scripts/refine_ticket_detect.py +31 -8
  837. package/scripts/schemas/command.schema.json +45 -1
  838. package/scripts/schemas/persona.schema.json +1 -1
  839. package/scripts/schemas/rule.schema.json +44 -4
  840. package/scripts/schemas/skill.schema.json +41 -1
  841. package/scripts/score_skill_selection.py +1 -1
  842. package/scripts/skill_collision_clusters.py +1 -1
  843. package/scripts/skill_linter.py +250 -120
  844. package/scripts/skill_overlap.py +1 -1
  845. package/scripts/skill_tools/run_block_d_eval.py +1 -1
  846. package/scripts/skill_trigger_eval.py +28 -8
  847. package/scripts/skill_usage_collect.py +3 -3
  848. package/scripts/skill_usage_report.py +3 -3
  849. package/scripts/smoke/kernel.sh +1 -1
  850. package/scripts/smoke/router.sh +24 -5
  851. package/scripts/smoke/skills.sh +15 -7
  852. package/scripts/smoke_quickstart.py +12 -3
  853. package/scripts/snapshot_agent_outputs.py +144 -0
  854. package/scripts/spotcheck_thin_root.py +1 -1
  855. package/scripts/sync_github_metadata.py +147 -0
  856. package/scripts/sync_gitignore.py +15 -5
  857. package/scripts/update_counts.py +45 -17
  858. package/scripts/update_prices.py +4 -3
  859. package/scripts/validate_decision_engine.py +9 -1
  860. package/scripts/validate_discovery_manifest.py +94 -0
  861. package/scripts/validate_frontmatter.py +39 -20
  862. package/scripts/verify_before_complete_hook.py +1 -1
  863. package/scripts/verify_physical_move.py +185 -0
  864. package/scripts/verify_roadmap_closure.py +1 -1
  865. package/templates/agent-user.md +34 -0
  866. package/templates/agent-user.yml +21 -0
  867. package/templates/minimal/agents-overrides-readme.md +46 -0
  868. package/templates/minimal/overrides-gitkeep +2 -0
  869. package/.agent-src/commands/onboard.md +0 -467
  870. package/templates/minimal/agents-gitkeep +0 -2
@@ -0,0 +1,35 @@
1
+ (function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))r(t);new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function i(t){const o={};return t.integrity&&(o.integrity=t.integrity),t.referrerPolicy&&(o.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?o.credentials="include":t.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(t){if(t.ep)return;t.ep=!0;const o=i(t);fetch(t.href,o)}})();var fn,w,Wi,zi,W,fi,qi,Ki,xn,Ue,ye,Gi,Kn,En,Tn,We={},ze=[],At=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,dn=Array.isArray;function U(e,n){for(var i in n)e[i]=n[i];return e}function Gn(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function St(e,n,i){var r,t,o,l={};for(o in n)o=="key"?r=n[o]:o=="ref"?t=n[o]:l[o]=n[o];if(arguments.length>2&&(l.children=arguments.length>3?fn.call(arguments,2):i),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)l[o]===void 0&&(l[o]=e.defaultProps[o]);return je(e,l,r,t,null)}function je(e,n,i,r,t){var o={type:e,props:n,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:t??++Wi,__i:-1,__u:0};return t==null&&w.vnode!=null&&w.vnode(o),o}function K(e){return e.children}function be(e,n){this.props=e,this.context=n}function se(e,n){if(n==null)return e.__?se(e.__,e.__i+1):null;for(var i;n<e.__k.length;n++)if((i=e.__k[n])!=null&&i.__e!=null)return i.__e;return typeof e.type=="function"?se(e):null}function Ct(e){if(e.__P&&e.__d){var n=e.__v,i=n.__e,r=[],t=[],o=U({},n);o.__v=n.__v+1,w.vnode&&w.vnode(o),Vn(e.__P,o,n,e.__n,e.__P.namespaceURI,32&n.__u?[i]:null,r,i??se(n),!!(32&n.__u),t),o.__v=n.__v,o.__.__k[o.__i]=o,Zi(r,o,t),n.__e=n.__=null,o.__e!=i&&Vi(o)}}function Vi(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(n){if(n!=null&&n.__e!=null)return e.__e=e.__c.base=n.__e}),Vi(e)}function di(e){(!e.__d&&(e.__d=!0)&&W.push(e)&&!qe.__r++||fi!=w.debounceRendering)&&((fi=w.debounceRendering)||qi)(qe)}function qe(){try{for(var e,n=1;W.length;)W.length>n&&W.sort(Ki),e=W.shift(),n=W.length,Ct(e)}finally{W.length=qe.__r=0}}function Ji(e,n,i,r,t,o,l,a,u,s,h){var c,d,p,m,b,x,g,_=r&&r.__k||ze,R=n.length;for(u=kt(i,n,_,u,R),c=0;c<R;c++)(p=i.__k[c])!=null&&(d=p.__i!=-1&&_[p.__i]||We,p.__i=c,x=Vn(e,p,d,t,o,l,a,u,s,h),m=p.__e,p.ref&&d.ref!=p.ref&&(d.ref&&Jn(d.ref,null,p),h.push(p.ref,p.__c||m,p)),b==null&&m!=null&&(b=m),(g=!!(4&p.__u))||d.__k===p.__k?(u=Qi(p,u,e,g),g&&d.__e&&(d.__e=null)):typeof p.type=="function"&&x!==void 0?u=x:m&&(u=m.nextSibling),p.__u&=-7);return i.__e=b,u}function kt(e,n,i,r,t){var o,l,a,u,s,h=i.length,c=h,d=0;for(e.__k=new Array(t),o=0;o<t;o++)(l=n[o])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=e.__k[o]=je(null,l,null,null,null):dn(l)?l=e.__k[o]=je(K,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=e.__k[o]=je(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):e.__k[o]=l,u=o+d,l.__=e,l.__b=e.__b+1,a=null,(s=l.__i=Et(l,i,u,c))!=-1&&(c--,(a=i[s])&&(a.__u|=2)),a==null||a.__v==null?(s==-1&&(t>h?d--:t<h&&d++),typeof l.type!="function"&&(l.__u|=4)):s!=u&&(s==u-1?d--:s==u+1?d++:(s>u?d--:d++,l.__u|=4))):e.__k[o]=null;if(c)for(o=0;o<h;o++)(a=i[o])!=null&&!(2&a.__u)&&(a.__e==r&&(r=se(a)),er(a,a));return r}function Qi(e,n,i,r){var t,o;if(typeof e.type=="function"){for(t=e.__k,o=0;t&&o<t.length;o++)t[o]&&(t[o].__=e,n=Qi(t[o],n,i,r));return n}e.__e!=n&&(r&&(n&&e.type&&!n.parentNode&&(n=se(e)),i.insertBefore(e.__e,n||null)),n=e.__e);do n=n&&n.nextSibling;while(n!=null&&n.nodeType==8);return n}function Et(e,n,i,r){var t,o,l,a=e.key,u=e.type,s=n[i],h=s!=null&&(2&s.__u)==0;if(s===null&&a==null||h&&a==s.key&&u==s.type)return i;if(r>(h?1:0)){for(t=i-1,o=i+1;t>=0||o<n.length;)if((s=n[l=t>=0?t--:o++])!=null&&!(2&s.__u)&&a==s.key&&u==s.type)return l}return-1}function pi(e,n,i){n[0]=="-"?e.setProperty(n,i??""):e[n]=i==null?"":typeof i!="number"||At.test(n)?i:i+"px"}function Re(e,n,i,r,t){var o,l;e:if(n=="style")if(typeof i=="string")e.style.cssText=i;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(n in r)i&&n in i||pi(e.style,n,"");if(i)for(n in i)r&&i[n]==r[n]||pi(e.style,n,i[n])}else if(n[0]=="o"&&n[1]=="n")o=n!=(n=n.replace(Gi,"$1")),l=n.toLowerCase(),n=l in e||n=="onFocusOut"||n=="onFocusIn"?l.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+o]=i,i?r?i[ye]=r[ye]:(i[ye]=Kn,e.addEventListener(n,o?Tn:En,o)):e.removeEventListener(n,o?Tn:En,o);else{if(t=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=i??"";break e}catch{}typeof i=="function"||(i==null||i===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&i==1?"":i))}}function hi(e){return function(n){if(this.l){var i=this.l[n.type+e];if(n[Ue]==null)n[Ue]=Kn++;else if(n[Ue]<i[ye])return;return i(w.event?w.event(n):n)}}}function Vn(e,n,i,r,t,o,l,a,u,s){var h,c,d,p,m,b,x,g,_,R,V,me,si,Me,bn,P=n.type;if(n.constructor!==void 0)return null;128&i.__u&&(u=!!(32&i.__u),o=[a=n.__e=i.__e]),(h=w.__b)&&h(n);e:if(typeof P=="function")try{if(g=n.props,_=P.prototype&&P.prototype.render,R=(h=P.contextType)&&r[h.__c],V=h?R?R.props.value:h.__:r,i.__c?x=(c=n.__c=i.__c).__=c.__E:(_?n.__c=c=new P(g,V):(n.__c=c=new be(g,V),c.constructor=P,c.render=Nt),R&&R.sub(c),c.state||(c.state={}),c.__n=r,d=c.__d=!0,c.__h=[],c._sb=[]),_&&c.__s==null&&(c.__s=c.state),_&&P.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=U({},c.__s)),U(c.__s,P.getDerivedStateFromProps(g,c.__s))),p=c.props,m=c.state,c.__v=n,d)_&&P.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),_&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(_&&P.getDerivedStateFromProps==null&&g!==p&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(g,V),n.__v==i.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(g,c.__s,V)===!1){n.__v!=i.__v&&(c.props=g,c.state=c.__s,c.__d=!1),n.__e=i.__e,n.__k=i.__k,n.__k.some(function(re){re&&(re.__=n)}),ze.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&l.push(c);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(g,c.__s,V),_&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(p,m,b)})}if(c.context=V,c.props=g,c.__P=e,c.__e=!1,me=w.__r,si=0,_)c.state=c.__s,c.__d=!1,me&&me(n),h=c.render(c.props,c.state,c.context),ze.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,me&&me(n),h=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++si<25);c.state=c.__s,c.getChildContext!=null&&(r=U(U({},r),c.getChildContext())),_&&!d&&c.getSnapshotBeforeUpdate!=null&&(b=c.getSnapshotBeforeUpdate(p,m)),Me=h!=null&&h.type===K&&h.key==null?Xi(h.props.children):h,a=Ji(e,dn(Me)?Me:[Me],n,i,r,t,o,l,a,u,s),c.base=n.__e,n.__u&=-161,c.__h.length&&l.push(c),x&&(c.__E=c.__=null)}catch(re){if(n.__v=null,u||o!=null)if(re.then){for(n.__u|=u?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;o[o.indexOf(a)]=null,n.__e=a}else{for(bn=o.length;bn--;)Gn(o[bn]);Nn(n)}else n.__e=i.__e,n.__k=i.__k,re.then||Nn(n);w.__e(re,n,i)}else o==null&&n.__v==i.__v?(n.__k=i.__k,n.__e=i.__e):a=n.__e=Tt(i.__e,n,i,r,t,o,l,u,s);return(h=w.diffed)&&h(n),128&n.__u?void 0:a}function Nn(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(Nn))}function Zi(e,n,i){for(var r=0;r<i.length;r++)Jn(i[r],i[++r],i[++r]);w.__c&&w.__c(n,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(o){o.call(t)})}catch(o){w.__e(o,t.__v)}})}function Xi(e){return typeof e!="object"||e==null||e.__b>0?e:dn(e)?e.map(Xi):e.constructor!==void 0?null:U({},e)}function Tt(e,n,i,r,t,o,l,a,u){var s,h,c,d,p,m,b,x=i.props||We,g=n.props,_=n.type;if(_=="svg"?t="http://www.w3.org/2000/svg":_=="math"?t="http://www.w3.org/1998/Math/MathML":t||(t="http://www.w3.org/1999/xhtml"),o!=null){for(s=0;s<o.length;s++)if((p=o[s])&&"setAttribute"in p==!!_&&(_?p.localName==_:p.nodeType==3)){e=p,o[s]=null;break}}if(e==null){if(_==null)return document.createTextNode(g);e=document.createElementNS(t,_,g.is&&g),a&&(w.__m&&w.__m(n,o),a=!1),o=null}if(_==null)x===g||a&&e.data==g||(e.data=g);else{if(o=_=="textarea"&&g.defaultValue!=null?null:o&&fn.call(e.childNodes),!a&&o!=null)for(x={},s=0;s<e.attributes.length;s++)x[(p=e.attributes[s]).name]=p.value;for(s in x)p=x[s],s=="dangerouslySetInnerHTML"?c=p:s=="children"||s in g||s=="value"&&"defaultValue"in g||s=="checked"&&"defaultChecked"in g||Re(e,s,null,p,t);for(s in g)p=g[s],s=="children"?d=p:s=="dangerouslySetInnerHTML"?h=p:s=="value"?m=p:s=="checked"?b=p:a&&typeof p!="function"||x[s]===p||Re(e,s,p,x[s],t);if(h)a||c&&(h.__html==c.__html||h.__html==e.innerHTML)||(e.innerHTML=h.__html),n.__k=[];else if(c&&(e.innerHTML=""),Ji(n.type=="template"?e.content:e,dn(d)?d:[d],n,i,r,_=="foreignObject"?"http://www.w3.org/1999/xhtml":t,o,l,o?o[0]:i.__k&&se(i,0),a,u),o!=null)for(s=o.length;s--;)Gn(o[s]);a&&_!="textarea"||(s="value",_=="progress"&&m==null?e.removeAttribute("value"):m!=null&&(m!==e[s]||_=="progress"&&!m||_=="option"&&m!=x[s])&&Re(e,s,m,x[s],t),s="checked",b!=null&&b!=e[s]&&Re(e,s,b,x[s],t))}return e}function Jn(e,n,i){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&n==null||(e.__u=e(n))}else e.current=n}catch(t){w.__e(t,i)}}function er(e,n,i){var r,t;if(w.unmount&&w.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Jn(r,null,n)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){w.__e(o,n)}r.base=r.__P=null}if(r=e.__k)for(t=0;t<r.length;t++)r[t]&&er(r[t],n,i||typeof e.type!="function");i||Gn(e.__e),e.__c=e.__=e.__e=void 0}function Nt(e,n,i){return this.constructor(e,i)}function Ot(e,n,i){var r,t,o,l;n==document&&(n=document.documentElement),w.__&&w.__(e,n),t=(r=!1)?null:n.__k,o=[],l=[],Vn(n,e=n.__k=St(K,null,[e]),t||We,We,n.namespaceURI,t?null:n.firstChild?fn.call(n.childNodes):null,o,t?t.__e:n.firstChild,r,l),Zi(o,e,l)}fn=ze.slice,w={__e:function(e,n,i,r){for(var t,o,l;n=n.__;)if((t=n.__c)&&!t.__)try{if((o=t.constructor)&&o.getDerivedStateFromError!=null&&(t.setState(o.getDerivedStateFromError(e)),l=t.__d),t.componentDidCatch!=null&&(t.componentDidCatch(e,r||{}),l=t.__d),l)return t.__E=t}catch(a){e=a}throw e}},Wi=0,zi=function(e){return e!=null&&e.constructor===void 0},be.prototype.setState=function(e,n){var i;i=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=U({},this.state),typeof e=="function"&&(e=e(U({},i),this.props)),e&&U(i,e),e!=null&&this.__v&&(n&&this._sb.push(n),di(this))},be.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),di(this))},be.prototype.render=K,W=[],qi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ki=function(e,n){return e.__v.__b-n.__v.__b},qe.__r=0,xn=Math.random().toString(8),Ue="__d"+xn,ye="__a"+xn,Gi=/(PointerCapture)$|Capture$/i,Kn=0,En=hi(!1),Tn=hi(!0);var Ft=0;function f(e,n,i,r,t,o){n||(n={});var l,a,u=n;if("ref"in u)for(a in u={},n)a=="ref"?l=n[a]:u[a]=n[a];var s={type:e,props:u,key:i,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Ft,__i:-1,__u:0,__source:t,__self:o};if(typeof e=="function"&&(l=e.defaultProps))for(a in l)u[a]===void 0&&(u[a]=l[a]);return w.vnode&&w.vnode(s),s}var Se,S,wn,_i,On=0,nr=[],C=w,vi=C.__b,mi=C.__r,gi=C.diffed,yi=C.__c,bi=C.unmount,xi=C.__;function Qn(e,n){C.__h&&C.__h(S,e,On||n),On=0;var i=S.__H||(S.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({}),i.__[e]}function ir(e){return On=1,It(or,e)}function It(e,n,i){var r=Qn(Se++,2);if(r.t=e,!r.__c&&(r.__=[or(void 0,n),function(a){var u=r.__N?r.__N[0]:r.__[0],s=r.t(u,a);u!==s&&(r.__N=[s,r.__[1]],r.__c.setState({}))}],r.__c=S,!S.__f)){var t=function(a,u,s){if(!r.__c.__H)return!0;var h=r.__c.__H.__.filter(function(d){return d.__c});if(h.every(function(d){return!d.__N}))return!o||o.call(this,a,u,s);var c=r.__c.props!==a;return h.some(function(d){if(d.__N){var p=d.__[0];d.__=d.__N,d.__N=void 0,p!==d.__[0]&&(c=!0)}}),o&&o.call(this,a,u,s)||c};S.__f=!0;var o=S.shouldComponentUpdate,l=S.componentWillUpdate;S.componentWillUpdate=function(a,u,s){if(this.__e){var h=o;o=void 0,t(a,u,s),o=h}l&&l.call(this,a,u,s)},S.shouldComponentUpdate=t}return r.__N||r.__}function pn(e,n){var i=Qn(Se++,3);!C.__s&&tr(i.__H,n)&&(i.__=e,i.u=n,S.__H.__h.push(i))}function rr(e,n){var i=Qn(Se++,7);return tr(i.__H,n)&&(i.__=e(),i.__H=n,i.__h=e),i.__}function Lt(){for(var e;e=nr.shift();){var n=e.__H;if(e.__P&&n)try{n.__h.some(He),n.__h.some(Fn),n.__h=[]}catch(i){n.__h=[],C.__e(i,e.__v)}}}C.__b=function(e){S=null,vi&&vi(e)},C.__=function(e,n){e&&n.__k&&n.__k.__m&&(e.__m=n.__k.__m),xi&&xi(e,n)},C.__r=function(e){mi&&mi(e),Se=0;var n=(S=e.__c).__H;n&&(wn===S?(n.__h=[],S.__h=[],n.__.some(function(i){i.__N&&(i.__=i.__N),i.u=i.__N=void 0})):(n.__h.some(He),n.__h.some(Fn),n.__h=[],Se=0)),wn=S},C.diffed=function(e){gi&&gi(e);var n=e.__c;n&&n.__H&&(n.__H.__h.length&&(nr.push(n)!==1&&_i===C.requestAnimationFrame||((_i=C.requestAnimationFrame)||$t)(Lt)),n.__H.__.some(function(i){i.u&&(i.__H=i.u),i.u=void 0})),wn=S=null},C.__c=function(e,n){n.some(function(i){try{i.__h.some(He),i.__h=i.__h.filter(function(r){return!r.__||Fn(r)})}catch(r){n.some(function(t){t.__h&&(t.__h=[])}),n=[],C.__e(r,i.__v)}}),yi&&yi(e,n)},C.unmount=function(e){bi&&bi(e);var n,i=e.__c;i&&i.__H&&(i.__H.__.some(function(r){try{He(r)}catch(t){n=t}}),i.__H=void 0,n&&C.__e(n,i.__v))};var wi=typeof requestAnimationFrame=="function";function $t(e){var n,i=function(){clearTimeout(r),wi&&cancelAnimationFrame(n),setTimeout(e)},r=setTimeout(i,35);wi&&(n=requestAnimationFrame(i))}function He(e){var n=S,i=e.__c;typeof i=="function"&&(e.__c=void 0,i()),S=n}function Fn(e){var n=S;e.__c=e.__(),S=n}function tr(e,n){return!e||e.length!==n.length||n.some(function(i,r){return i!==e[r]})}function or(e,n){return typeof n=="function"?n(e):n}var Mt=Symbol.for("preact-signals");function hn(){if(B>1)B--;else{var e,n=!1;for(function(){var t=Ge;for(Ge=void 0;t!==void 0;)t.S.v===t.v&&(t.S.i=t.i),t=t.o}();xe!==void 0;){var i=xe;for(xe=void 0,Ke++;i!==void 0;){var r=i.u;if(i.u=void 0,i.f&=-3,!(8&i.f)&&ar(i))try{i.c()}catch(t){n||(e=t,n=!0)}i=r}}if(Ke=0,B--,n)throw e}}function Rt(e){if(B>0)return e();In=++Pt,B++;try{return e()}finally{hn()}}var A=void 0;function Zn(e){var n=A;A=void 0;try{return e()}finally{A=n}}var xe=void 0,B=0,Ke=0,Pt=0,In=0,Ge=void 0,Ve=0;function lr(e){if(A!==void 0){var n=e.n;if(n===void 0||n.t!==A)return n={i:0,S:e,p:A.s,n:void 0,t:A,e:void 0,x:void 0,r:n},A.s!==void 0&&(A.s.n=n),A.s=n,e.n=n,32&A.f&&e.S(n),n;if(n.i===-1)return n.i=0,n.n!==void 0&&(n.n.p=n.p,n.p!==void 0&&(n.p.n=n.n),n.p=A.s,n.n=void 0,A.s.n=n,A.s=n),n}}function N(e,n){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=n?.watched,this.Z=n?.unwatched,this.name=n?.name}N.prototype.brand=Mt;N.prototype.h=function(){return!0};N.prototype.S=function(e){var n=this,i=this.t;i!==e&&e.e===void 0&&(e.x=i,this.t=e,i!==void 0?i.e=e:Zn(function(){var r;(r=n.W)==null||r.call(n)}))};N.prototype.U=function(e){var n=this;if(this.t!==void 0){var i=e.e,r=e.x;i!==void 0&&(i.x=r,e.e=void 0),r!==void 0&&(r.e=i,e.x=void 0),e===this.t&&(this.t=r,r===void 0&&Zn(function(){var t;(t=n.Z)==null||t.call(n)}))}};N.prototype.subscribe=function(e){var n=this;return Le(function(){var i=n.value,r=A;A=void 0;try{e(i)}finally{A=r}},{name:"sub"})};N.prototype.valueOf=function(){return this.value};N.prototype.toString=function(){return this.value+""};N.prototype.toJSON=function(){return this.value};N.prototype.peek=function(){var e=this;return Zn(function(){return e.value})};Object.defineProperty(N.prototype,"value",{get:function(){var e=lr(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(Ke>100)throw new Error("Cycle detected");(function(i){B!==0&&Ke===0&&i.l!==In&&(i.l=In,Ge={S:i,v:i.v,i:i.i,o:Ge})})(this),this.v=e,this.i++,Ve++,B++;try{for(var n=this.t;n!==void 0;n=n.x)n.t.N()}finally{hn()}}}});function y(e,n){return new N(e,n)}function ar(e){for(var n=e.s;n!==void 0;n=n.n)if(n.S.i!==n.i||!n.S.h()||n.S.i!==n.i)return!0;return!1}function ur(e){for(var n=e.s;n!==void 0;n=n.n){var i=n.S.n;if(i!==void 0&&(n.r=i),n.S.n=n,n.i=-1,n.n===void 0){e.s=n;break}}}function cr(e){for(var n=e.s,i=void 0;n!==void 0;){var r=n.p;n.i===-1?(n.S.U(n),r!==void 0&&(r.n=n.n),n.n!==void 0&&(n.n.p=r)):i=n,n.S.n=n.r,n.r!==void 0&&(n.r=void 0),n=r}e.s=i}function ne(e,n){N.call(this,void 0),this.x=e,this.s=void 0,this.g=Ve-1,this.f=4,this.W=n?.watched,this.Z=n?.unwatched,this.name=n?.name}ne.prototype=new N;ne.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Ve))return!0;if(this.g=Ve,this.f|=1,this.i>0&&!ar(this))return this.f&=-2,!0;var e=A;try{ur(this),A=this;var n=this.x();(16&this.f||this.v!==n||this.i===0)&&(this.v=n,this.f&=-17,this.i++)}catch(i){this.v=i,this.f|=16,this.i++}return A=e,cr(this),this.f&=-2,!0};ne.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var n=this.s;n!==void 0;n=n.n)n.S.S(n)}N.prototype.S.call(this,e)};ne.prototype.U=function(e){if(this.t!==void 0&&(N.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var n=this.s;n!==void 0;n=n.n)n.S.U(n)}};ne.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}};Object.defineProperty(ne.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var e=lr(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function Ai(e,n){return new ne(e,n)}function sr(e){var n=e.m;if(e.m=void 0,typeof n=="function"){B++;var i=A;A=void 0;try{n()}catch(r){throw e.f&=-2,e.f|=8,Xn(e),r}finally{A=i,hn()}}}function Xn(e){for(var n=e.s;n!==void 0;n=n.n)n.S.U(n);e.x=void 0,e.s=void 0,sr(e)}function Dt(e){if(A!==this)throw new Error("Out-of-order effect");cr(this),A=e,this.f&=-2,8&this.f&&Xn(this),hn()}function he(e,n){this.x=e,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=n?.name}he.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var n=this.x();typeof n=="function"&&(this.m=n)}finally{e()}};he.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,sr(this),ur(this),B++;var e=A;return A=this,Dt.bind(this,e)};he.prototype.N=function(){2&this.f||(this.f|=2,this.u=xe,xe=this)};he.prototype.d=function(){this.f|=8,1&this.f||Xn(this)};he.prototype.dispose=function(){this.d()};function Le(e,n){var i=new he(e,n);try{i.c()}catch(t){throw i.d(),t}var r=i.d.bind(i);return r[Symbol.dispose]=r,r}var fr,Pe,Ut=typeof window<"u"&&!!window.__PREACT_SIGNALS_DEVTOOLS__,dr=[];Le(function(){fr=this.N})();function _e(e,n){w[e]=n.bind(null,w[e]||function(){})}function Je(e){if(Pe){var n=Pe;Pe=void 0,n()}Pe=e&&e.S()}function pr(e){var n=this,i=e.data,r=Ht(i);r.value=i;var t=rr(function(){for(var a=n,u=n.__v;u=u.__;)if(u.__c){u.__c.__$f|=4;break}var s=Ai(function(){var p=r.value.value;return p===0?0:p===!0?"":p||""}),h=Ai(function(){return!Array.isArray(s.value)&&!zi(s.value)}),c=Le(function(){if(this.N=hr,h.value){var p=s.value;a.__v&&a.__v.__e&&a.__v.__e.nodeType===3&&(a.__v.__e.data=p)}}),d=n.__$u.d;return n.__$u.d=function(){c(),d.call(this)},[h,s]},[]),o=t[0],l=t[1];return o.value?l.peek():l.value}pr.displayName="ReactiveTextNode";Object.defineProperties(N.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:pr},props:{configurable:!0,get:function(){var e=this;return{data:{get value(){return e.value}}}}},__b:{configurable:!0,value:1}});_e("__b",function(e,n){if(typeof n.type=="string"){var i,r=n.props;for(var t in r)if(t!=="children"){var o=r[t];o instanceof N&&(i||(n.__np=i={}),i[t]=o,r[t]=o.peek())}}e(n)});_e("__r",function(e,n){if(e(n),n.type!==K){Je();var i,r=n.__c;r&&(r.__$f&=-2,(i=r.__$u)===void 0&&(r.__$u=i=function(t,o){var l;return Le(function(){l=this},{name:o}),l.c=t,l}(function(){var t;Ut&&((t=i.y)==null||t.call(i)),r.__$f|=1,r.setState({})},typeof n.type=="function"?n.type.displayName||n.type.name:""))),Je(i)}});_e("__e",function(e,n,i,r){Je(),e(n,i,r)});_e("diffed",function(e,n){Je();var i;if(typeof n.type=="string"&&(i=n.__e)){var r=n.__np,t=n.props;if(r){var o=i.U;if(o)for(var l in o){var a=o[l];a!==void 0&&!(l in r)&&(a.d(),o[l]=void 0)}else o={},i.U=o;for(var u in r){var s=o[u],h=r[u];s===void 0?(s=jt(i,u,h),o[u]=s):s.o(h,t)}for(var c in r)t[c]=r[c]}}e(n)});function jt(e,n,i,r){var t=n in e&&e.ownerSVGElement===void 0,o=y(i),l=i.peek();return{o:function(a,u){o.value=a,l=a.peek()},d:Le(function(){this.N=hr;var a=o.value.value;l!==a?(l=void 0,t?e[n]=a:a!=null&&(a!==!1||n[4]==="-")?e.setAttribute(n,a):e.removeAttribute(n)):l=void 0})}}_e("unmount",function(e,n){if(typeof n.type=="string"){var i=n.__e;if(i){var r=i.U;if(r){i.U=void 0;for(var t in r){var o=r[t];o&&o.d()}}}n.__np=void 0}else{var l=n.__c;if(l){var a=l.__$u;a&&(l.__$u=void 0,a.d())}}e(n)});_e("__h",function(e,n,i,r){(r<3||r===9)&&(n.__$f|=2),e(n,i,r)});be.prototype.shouldComponentUpdate=function(e,n){if(this.__R)return!0;var i=this.__$u,r=i&&i.s!==void 0;for(var t in n)return!0;if(this.__f||typeof this.u=="boolean"&&this.u===!0){var o=2&this.__$f;if(!(r||o||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var l in e)if(l!=="__source"&&e[l]!==this.props[l])return!0;for(var a in this.props)if(!(a in e))return!0;return!1};function Ht(e,n){return rr(function(){return y(e,n)},[])}var Bt=function(e){queueMicrotask(function(){queueMicrotask(e)})};function Yt(){Rt(function(){for(var e;e=dr.shift();)fr.call(e)})}function hr(){dr.push(this)===1&&(w.requestAnimationFrame||Bt)(Yt)}function _r(){const e=window.location.hash;return e===""||e==="#"?"/":e.startsWith("#")?e.slice(1):e}const Ln=y(_r());function Wt(e){const n=e.startsWith("/")?e:`/${e}`;`#${n}`!==window.location.hash&&(window.location.hash=n)}let Si=!1;function zt(){Si||(Si=!0,window.addEventListener("hashchange",()=>{Ln.value=_r()}))}let $n=null;function qt(e){$n=e}class G extends Error{status;body;constructor(n,i,r){super(r),this.status=n,this.body=i}}async function I(e,n={}){const i={Accept:"application/json",...n.headers??{}};$n!==null&&(i.Authorization=`Bearer ${$n}`);const{body:r,...t}=n,o={...t,headers:i};r!==void 0&&(o.body=JSON.stringify(r),i["Content-Type"]="application/json");const l=await fetch(e,o),a=await l.text(),u=a===""?{}:JSON.parse(a);if(!l.ok){const s=u.error?.message??`request failed (${l.status})`;throw new G(l.status,u,s)}return u}function Kt({id:e,children:n}){return f("p",{class:"ac-field__description",id:e,children:n})}function Gt({id:e,children:n}){return f("p",{class:"ac-field__error",id:e,role:"alert","aria-live":"polite",children:n})}function ie({id:e,label:n,description:i,error:r,children:t}){const o=i!==void 0?`${e}-desc`:void 0,l=r!==void 0?`${e}-err`:void 0;return f("div",{class:"ac-field","data-invalid":r!==void 0?"true":void 0,children:[f("label",{class:"ac-field__label",for:e,children:n}),i!==void 0?f(Kt,{id:o,children:i}):null,f("div",{class:"ac-field__control","aria-describedby":o,"aria-errormessage":l,children:t}),r!==void 0?f(Gt,{id:l,children:r}):null]})}function vr(e){return f(ie,{id:e.id,label:e.label,description:e.description,error:e.error,children:f("input",{class:"ac-input",type:"text",id:e.id,name:e.name,value:e.value,placeholder:e.placeholder,"aria-invalid":e.error!==void 0?"true":void 0,onInput:n=>e.onChange(n.currentTarget.value)})})}function Vt(e){const n=e.step??(e.integer===!0?1:"any");return f(ie,{id:e.id,label:e.label,description:e.description,error:e.error,children:f("input",{class:"ac-input",type:"number",id:e.id,name:e.name,value:Number.isFinite(e.value)?String(e.value):"0",min:e.min,max:e.max,step:n,"aria-invalid":e.error!==void 0?"true":void 0,onInput:i=>{const r=i.currentTarget.value,t=r===""?0:Number(r);e.onChange(Number.isFinite(t)?t:0)}})})}function Jt(e){return f(ie,{id:e.id,label:e.label,description:e.description,error:e.error,children:f("label",{class:"ac-toggle",children:[f("input",{type:"checkbox",id:e.id,name:e.name,checked:e.value,"aria-invalid":e.error!==void 0?"true":void 0,onChange:n=>e.onChange(n.currentTarget.checked)}),f("span",{class:"ac-toggle__track","aria-hidden":"true"}),f("span",{class:"ac-toggle__state",children:e.value?"On":"Off"})]})})}function Mn(e){const n=e.options.length>3;return f(ie,{id:e.id,label:e.label,description:e.description,error:e.error,children:n?f("select",{class:"ac-input",id:e.id,name:e.name,value:e.value,"aria-invalid":e.error!==void 0?"true":void 0,onChange:i=>e.onChange(i.currentTarget.value),children:e.options.map(i=>f("option",{value:i.value,children:i.label??(i.value===""?"(none)":i.value)},i.value))}):f("div",{class:"ac-radio-group",role:"radiogroup","aria-labelledby":`${e.id}-label`,children:e.options.map(i=>{const r=`${e.id}-${i.value||"none"}`;return f("label",{class:"ac-radio",for:r,children:[f("input",{type:"radio",id:r,name:e.name,value:i.value,checked:i.value===e.value,onChange:()=>e.onChange(i.value)}),f("span",{children:i.label??(i.value===""?"(none)":i.value)})]},i.value)})})})}function Qe(e){return f(ie,{id:e.id,label:e.label,description:e.description,error:e.error,children:f("textarea",{class:"ac-textarea",id:e.id,name:e.name,rows:e.rows??6,placeholder:e.placeholder,"aria-invalid":e.error!==void 0?"true":void 0,onInput:n=>e.onChange(n.currentTarget.value),children:e.value})})}function mr(e){return e.replace(/_/g," ").replace(/\./g," › ").replace(/\b\w/g,n=>n.toUpperCase())}function Qt(e){return e.enum!==void 0&&e.enum.length>0?"enum":e.type==="integer"?"integer":e.type==="number"?"number":e.type==="boolean"?"boolean":e.type==="string"?"string":e.type==="array"&&e.items?.type==="string"?"array-of-strings":"unsupported"}function An(e,n){const i=Qt(n);return{path:e,kind:i,label:mr(e[e.length-1]??""),description:n.description,options:n.enum,min:n.minimum,max:n.maximum}}function Zt(e){const n=[],i=e.properties??{};for(const[r,t]of Object.entries(i))if(t.type==="object"&&t.properties!==void 0){const o=[];for(const[l,a]of Object.entries(t.properties))if(a.type==="object"&&a.properties!==void 0)for(const[u,s]of Object.entries(a.properties))o.push(An([r,l,u],s));else o.push(An([r,l],a));n.push({path:[r],label:mr(r),description:t.description,fields:o})}else{const o=n.find(a=>a.path[0]==="__general"),l=An([r],t);o===void 0?n.unshift({path:["__general"],label:"General",fields:[l]}):o.fields.push(l)}return n}function Xt(e,n){let i=e;for(const r of n){if(i===null||typeof i!="object"||Array.isArray(i))return;i=i[r]}return i}function gr(e,n,i){if(n.length===0)return e;const[r,...t]=n;if(r===void 0)return e;const o={...e};if(t.length===0)return o[r]=i,o;const l=o[r],a=l!==null&&typeof l=="object"&&!Array.isArray(l)?l:{};return o[r]=gr(a,t,i),o}function we(e){return e.join(".")}function eo(e,n,i,r){const t=we(e.path),o=t,l=Xt(n,e.path),a=i[t],u=s=>{r(gr(n,e.path,s))};switch(e.kind){case"string":{const s=typeof l=="string"?l:"";return s.length>80?f(Qe,{id:t,name:o,label:e.label,description:e.description,error:a,value:s,onChange:u}):f(vr,{id:t,name:o,label:e.label,description:e.description,error:a,value:s,onChange:u})}case"enum":{const s=typeof l=="string"||typeof l=="number"?String(l):"",h=(e.options??[]).map(c=>({value:String(c)}));return f(Mn,{id:t,name:o,label:e.label,description:e.description,error:a,value:s,options:h,onChange:u})}case"number":case"integer":{const s=typeof l=="number"?l:0;return f(Vt,{id:t,name:o,label:e.label,description:e.description,error:a,value:s,integer:e.kind==="integer",min:e.min,max:e.max,onChange:u})}case"boolean":{const s=typeof l=="boolean"?l:!1;return f(Jt,{id:t,name:o,label:e.label,description:e.description,error:a,value:s,onChange:u})}case"array-of-strings":{const h=(Array.isArray(l)?l.filter(c=>typeof c=="string"):[]).join(`
2
+ `);return f(Qe,{id:t,name:o,label:e.label,description:`${e.description??""} (one entry per line)`.trim(),error:a,value:h,onChange:c=>{const d=c.split(`
3
+ `).map(p=>p.trim()).filter(p=>p!=="");u(d)}})}default:return null}}function no({section:e,values:n,errors:i,onChange:r}){return f("section",{class:"ac-section","aria-labelledby":`section-${we(e.path)}`,children:[f("h2",{class:"ac-section__title",id:`section-${we(e.path)}`,children:e.label}),e.description!==void 0?f("p",{class:"ac-section__description",children:e.description}):null,f("div",{class:"ac-section__fields",children:e.fields.map(t=>f("div",{children:eo(t,n,i,r)},we(t.path)))})]})}function yr(e){const n=Zt(e.schema),i=e.errors??{};return f("form",{class:"ac-form",onSubmit:r=>r.preventDefault(),children:[n.map(r=>f(no,{section:r,values:e.values,errors:i,onChange:e.onChange},we(r.path))),e.actions!==void 0?f("div",{class:"ac-form__actions",children:e.actions}):null]})}function ve(e){switch(e.code){case"VALIDATION":return"Some fields need attention before saving.";case"CONFLICT":return"This file changed on disk while you were editing. Review the latest version and re-save.";case"PRECONDITION_REQUIRED":return"Reload the page once — the optimistic-lock token is missing.";case"NOT_FOUND":return"The file does not exist yet. Use the wizard to create it.";case"ATOMIC_WRITE":return"Write failed mid-flight. The file was not partially modified.";case"YAML_PARSE":return"YAML parse error — fix the file by hand, then reload.";default:return e.message}}function io(e){return/expected (boolean|string|number)/i.test(e)?e.replace(/^expected/i,"Expected"):e}function $e(e){const n={};for(const i of e.fields??[])n[i.path]=io(i.message);return n}const br=y(!1),Ze=y(null),Ce=y({}),xr=y(null),Xe=y(0),ke=y({}),j=y(null),Ee=y(!1),fe=y(null);function ro(e){if("$ref"in e&&e.$ref!==void 0&&"definitions"in e&&e.definitions!==void 0){const n=e.$ref.replace("#/definitions/",""),i=e.definitions[n];if(i!==void 0)return i}return e}async function Ci(){Ze.value=null;try{const e=await I("/api/v1/settings");Ce.value=e.values,xr.value=ro(e.schema),Xe.value=e.lastModified,br.value=!0}catch(e){Ze.value=e instanceof Error?e.message:String(e)}}async function to(){if(!Ee.value){j.value=null,ke.value={};try{const e=await I("/api/v1/settings/diff",{method:"POST",body:{values:Ce.value,ifUnmodifiedSince:Xe.value}});if(e.changes.length===0){j.value="No changes to save.";return}fe.value=e.changes}catch(e){e instanceof G?(ke.value=$e(e.body.error??{message:e.message}),j.value=ve(e.body.error??{code:"UNKNOWN",message:e.message})):j.value=e instanceof Error?e.message:String(e)}}}async function oo(){Ee.value=!0;try{const e=await I("/api/v1/settings",{method:"PUT",headers:{"If-Unmodified-Since":String(Xe.value)},body:{values:Ce.value}});Xe.value=e.lastModified,fe.value=null,j.value=`Saved (${e.writtenPaths.join(", ")}).`}catch(e){if(e instanceof G){const n=e.body.error??{code:"UNKNOWN",message:e.message};ke.value=$e(n),j.value=ve(n),fe.value=null;const i=Object.keys(ke.value)[0];i!==void 0&&queueMicrotask(()=>{const r=document.getElementById(i);r!==null&&r.focus()})}else j.value=e instanceof Error?e.message:String(e)}finally{Ee.value=!1}}function lo({changes:e}){return f("div",{class:"ac-modal",role:"dialog","aria-modal":"true","aria-labelledby":"diff-title",children:f("div",{class:"ac-modal__panel",children:[f("h2",{id:"diff-title",children:"Confirm changes"}),f("ul",{class:"ac-diff",children:e.map(n=>f("li",{children:[f("code",{children:n.path}),f("span",{class:"ac-diff__before",children:JSON.stringify(n.from)}),f("span",{class:"ac-diff__arrow",children:"→"}),f("span",{class:"ac-diff__after",children:JSON.stringify(n.to)})]},n.path))}),f("div",{class:"ac-modal__actions",children:[f("button",{type:"button",class:"ac-button",onClick:()=>{fe.value=null},children:"Cancel"}),f("button",{type:"button",class:"ac-button ac-button--primary",disabled:Ee.value,onClick:()=>{oo()},children:Ee.value?"Saving…":"Save"})]})]})})}function ao(){return pn(()=>{Ci()},[]),br.value?f("div",{class:"ac-page",children:[f("header",{class:"ac-page__header",children:[f("h1",{children:"Settings"}),f("nav",{class:"ac-page__nav",children:f("a",{href:"#/settings/user",children:"Edit .agent-user.yml →"})})]}),j.value!==null?f("p",{class:"ac-banner",children:j.value}):null,f(yr,{schema:xr.value,values:Ce.value,errors:ke.value,onChange:e=>{Ce.value=e},actions:f(K,{children:[f("button",{type:"button",class:"ac-button",onClick:()=>{Ci()},children:"Reload"}),f("button",{type:"button",class:"ac-button ac-button--primary",onClick:()=>{to()},children:"Preview & Save"})]})}),fe.value!==null?f(lo,{changes:fe.value}):null]}):f("div",{class:"ac-page",children:[f("h1",{children:"Settings"}),Ze.value!==null?f("p",{class:"ac-banner ac-banner--error",children:Ze.value}):f("p",{children:"Loading…"})]})}function uo(e){const[n]=ir(()=>`${e.id}-list`);return f(ie,{id:e.id,label:e.label,description:e.description,error:e.error,children:[f("input",{class:"ac-input",type:"text",id:e.id,name:e.name,value:e.value,placeholder:e.placeholder,list:n,"aria-invalid":e.error!==void 0?"true":void 0,onInput:i=>e.onChange(i.currentTarget.value)}),f("datalist",{id:n,children:e.suggestions.map(i=>f("option",{value:i},i))})]})}const co=["developer","reviewer","designer","product-manager","ops","qa","maintainer"],so=["de","en","en-US","en-GB","fr","es","it","nl","pt","pt-BR"];function ki(){return new Date().toISOString().slice(0,10)}function J(e,n){return e?.[n]}function wr({value:e,onChange:n,errors:i}){const[r,t]=ir(""),o="umd-role-suggestions";function l(d){n({...e,...d,last_updated:ki()})}const a=e.role.filter(d=>d.trim()!=="");function u(d){const p=d.trim();if(p===""||a.includes(p)){t("");return}l({role:[...a,p]}),t("")}function s(d){a.length<=1||l({role:a.filter(p=>p!==d)})}function h(d){const p={...e,last_updated:ki()};d===""?delete p.notes:p.notes=d,n(p)}const c=co.filter(d=>!a.includes(d));return f("div",{class:"ac-user-md-form",children:[f(vr,{id:"umd-name",name:"identity.name",label:"Name",description:'How the agent addresses you in chat (e.g. "Matze", "Sarah"). Required.',value:e.identity.name,error:J(i,"identity.name"),onChange:d=>l({identity:{...e.identity,name:d}})}),f(uo,{id:"umd-language",name:"language",label:"Language",description:"BCP-47 tag the agent mirrors in replies (e.g. 'de', 'en', 'en-US').",value:e.language,suggestions:so,error:J(i,"language"),onChange:d=>l({language:d})}),f(ie,{id:"umd-role-input",label:"Roles",description:"One or more roles. Seeded suggestions are non-binding — type anything and press Enter.",error:J(i,"role"),children:[f("ul",{class:"ac-chip-list","data-testid":"umd-role-list",children:a.map(d=>f("li",{class:"ac-chip",children:[f("span",{children:d}),f("button",{type:"button",class:"ac-chip__remove","aria-label":`Remove ${d}`,disabled:a.length<=1,onClick:()=>s(d),children:"×"})]},d))}),f("div",{class:"ac-role-add",children:[f("input",{class:"ac-input",type:"text",id:"umd-role-input",name:"role-add",list:o,placeholder:"Add a role and press Enter",value:r,onInput:d=>t(d.currentTarget.value),onKeyDown:d=>{(d.key==="Enter"||d.key===",")&&(d.preventDefault(),u(r))}}),f("datalist",{id:o,children:c.map(d=>f("option",{value:d},d))}),f("button",{type:"button",class:"ac-button",onClick:()=>u(r),children:"Add role"})]})]}),f(Mn,{id:"umd-formality",name:"style.formality",label:"Formality",value:e.style.formality,error:J(i,"style.formality"),options:[{value:"informal",label:"Informal (Du / first-name)"},{value:"formal",label:"Formal (Sie / surname)"}],onChange:d=>l({style:{...e.style,formality:d}})}),f(Mn,{id:"umd-pace",name:"style.pace",label:"Pace",value:e.style.pace,error:J(i,"style.pace"),options:[{value:"pragmatic",label:"Pragmatic"},{value:"thorough",label:"Thorough"},{value:"rapid",label:"Rapid"}],onChange:d=>l({style:{...e.style,pace:d}})}),f(Qe,{id:"umd-voice",name:"voice_sample",label:"Voice sample",description:"One to three sentences in your own style. The agent uses it as a tone anchor.",rows:4,value:e.voice_sample,error:J(i,"voice_sample"),onChange:d=>l({voice_sample:d})}),f(Qe,{id:"umd-notes",name:"notes",label:"Notes",description:"Optional free-form prose the agent remembers across sessions.",rows:6,value:e.notes??"",error:J(i,"notes"),onChange:h})]})}function _n(){return{version:1,identity:{name:""},language:"en",role:[""],style:{formality:"informal",pace:"pragmatic"},voice_sample:"",last_updated:"1970-01-01"}}function Ei(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function De(e,n){return typeof e=="string"?e:n}function fo(e){return e==="formal"?"formal":"informal"}function po(e){return e==="thorough"||e==="rapid"?e:"pragmatic"}function ho(e){if(!Array.isArray(e))return[""];const n=e.filter(i=>typeof i=="string");return n.length===0?[""]:n}function _o(e){if(typeof e=="string")return e===""?void 0:e}function en(e){const n=_n(),i=Ei(e.identity)?e.identity:{},r=Ei(e.style)?e.style:{},t=_o(e.notes),o={version:1,identity:{name:De(i.name,n.identity.name)},language:De(e.language,n.language),role:ho(e.role),style:{formality:fo(r.formality),pace:po(r.pace)},voice_sample:De(e.voice_sample,n.voice_sample),last_updated:De(e.last_updated,n.last_updated)};return t!==void 0&&(o.notes=t),o}/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */function Ar(e){return typeof e>"u"||e===null}function vo(e){return typeof e=="object"&&e!==null}function mo(e){return Array.isArray(e)?e:Ar(e)?[]:[e]}function go(e,n){var i,r,t,o;if(n)for(o=Object.keys(n),i=0,r=o.length;i<r;i+=1)t=o[i],e[t]=n[t];return e}function yo(e,n){var i="",r;for(r=0;r<n;r+=1)i+=e;return i}function bo(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}var xo=Ar,wo=vo,Ao=mo,So=yo,Co=bo,ko=go,E={isNothing:xo,isObject:wo,toArray:Ao,repeat:So,isNegativeZero:Co,extend:ko};function Sr(e,n){var i="",r=e.reason||"(unknown reason)";return e.mark?(e.mark.name&&(i+='in "'+e.mark.name+'" '),i+="("+(e.mark.line+1)+":"+(e.mark.column+1)+")",!n&&e.mark.snippet&&(i+=`
4
+
5
+ `+e.mark.snippet),r+" "+i):r}function Te(e,n){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=n,this.message=Sr(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Te.prototype=Object.create(Error.prototype);Te.prototype.constructor=Te;Te.prototype.toString=function(n){return this.name+": "+Sr(this,n)};var F=Te;function Sn(e,n,i,r,t){var o="",l="",a=Math.floor(t/2)-1;return r-n>a&&(o=" ... ",n=r-a+o.length),i-r>a&&(l=" ...",i=r+a-l.length),{str:o+e.slice(n,i).replace(/\t/g,"→")+l,pos:r-n+o.length}}function Cn(e,n){return E.repeat(" ",n-e.length)+e}function Eo(e,n){if(n=Object.create(n||null),!e.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);for(var i=/\r?\n|\r|\0/g,r=[0],t=[],o,l=-1;o=i.exec(e.buffer);)t.push(o.index),r.push(o.index+o[0].length),e.position<=o.index&&l<0&&(l=r.length-2);l<0&&(l=r.length-1);var a="",u,s,h=Math.min(e.line+n.linesAfter,t.length).toString().length,c=n.maxLength-(n.indent+h+3);for(u=1;u<=n.linesBefore&&!(l-u<0);u++)s=Sn(e.buffer,r[l-u],t[l-u],e.position-(r[l]-r[l-u]),c),a=E.repeat(" ",n.indent)+Cn((e.line-u+1).toString(),h)+" | "+s.str+`
6
+ `+a;for(s=Sn(e.buffer,r[l],t[l],e.position,c),a+=E.repeat(" ",n.indent)+Cn((e.line+1).toString(),h)+" | "+s.str+`
7
+ `,a+=E.repeat("-",n.indent+h+3+s.pos)+`^
8
+ `,u=1;u<=n.linesAfter&&!(l+u>=t.length);u++)s=Sn(e.buffer,r[l+u],t[l+u],e.position-(r[l]-r[l+u]),c),a+=E.repeat(" ",n.indent)+Cn((e.line+u+1).toString(),h)+" | "+s.str+`
9
+ `;return a.replace(/\n$/,"")}var To=Eo,No=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],Oo=["scalar","sequence","mapping"];function Fo(e){var n={};return e!==null&&Object.keys(e).forEach(function(i){e[i].forEach(function(r){n[String(r)]=i})}),n}function Io(e,n){if(n=n||{},Object.keys(n).forEach(function(i){if(No.indexOf(i)===-1)throw new F('Unknown option "'+i+'" is met in definition of "'+e+'" YAML type.')}),this.options=n,this.tag=e,this.kind=n.kind||null,this.resolve=n.resolve||function(){return!0},this.construct=n.construct||function(i){return i},this.instanceOf=n.instanceOf||null,this.predicate=n.predicate||null,this.represent=n.represent||null,this.representName=n.representName||null,this.defaultStyle=n.defaultStyle||null,this.multi=n.multi||!1,this.styleAliases=Fo(n.styleAliases||null),Oo.indexOf(this.kind)===-1)throw new F('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var T=Io;function Ti(e,n){var i=[];return e[n].forEach(function(r){var t=i.length;i.forEach(function(o,l){o.tag===r.tag&&o.kind===r.kind&&o.multi===r.multi&&(t=l)}),i[t]=r}),i}function Lo(){var e={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},n,i;function r(t){t.multi?(e.multi[t.kind].push(t),e.multi.fallback.push(t)):e[t.kind][t.tag]=e.fallback[t.tag]=t}for(n=0,i=arguments.length;n<i;n+=1)arguments[n].forEach(r);return e}function Rn(e){return this.extend(e)}Rn.prototype.extend=function(n){var i=[],r=[];if(n instanceof T)r.push(n);else if(Array.isArray(n))r=r.concat(n);else if(n&&(Array.isArray(n.implicit)||Array.isArray(n.explicit)))n.implicit&&(i=i.concat(n.implicit)),n.explicit&&(r=r.concat(n.explicit));else throw new F("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");i.forEach(function(o){if(!(o instanceof T))throw new F("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(o.loadKind&&o.loadKind!=="scalar")throw new F("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(o.multi)throw new F("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(o){if(!(o instanceof T))throw new F("Specified list of YAML types (or a single Type object) contains a non-Type object.")});var t=Object.create(Rn.prototype);return t.implicit=(this.implicit||[]).concat(i),t.explicit=(this.explicit||[]).concat(r),t.compiledImplicit=Ti(t,"implicit"),t.compiledExplicit=Ti(t,"explicit"),t.compiledTypeMap=Lo(t.compiledImplicit,t.compiledExplicit),t};var Cr=Rn,kr=new T("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),Er=new T("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Tr=new T("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),Nr=new Cr({explicit:[kr,Er,Tr]});function $o(e){if(e===null)return!0;var n=e.length;return n===1&&e==="~"||n===4&&(e==="null"||e==="Null"||e==="NULL")}function Mo(){return null}function Ro(e){return e===null}var Or=new T("tag:yaml.org,2002:null",{kind:"scalar",resolve:$o,construct:Mo,predicate:Ro,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function Po(e){if(e===null)return!1;var n=e.length;return n===4&&(e==="true"||e==="True"||e==="TRUE")||n===5&&(e==="false"||e==="False"||e==="FALSE")}function Do(e){return e==="true"||e==="True"||e==="TRUE"}function Uo(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var Fr=new T("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Po,construct:Do,predicate:Uo,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"});function jo(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function Ho(e){return 48<=e&&e<=55}function Bo(e){return 48<=e&&e<=57}function Yo(e){if(e===null)return!1;var n=e.length,i=0,r=!1,t;if(!n)return!1;if(t=e[i],(t==="-"||t==="+")&&(t=e[++i]),t==="0"){if(i+1===n)return!0;if(t=e[++i],t==="b"){for(i++;i<n;i++)if(t=e[i],t!=="_"){if(t!=="0"&&t!=="1")return!1;r=!0}return r&&t!=="_"}if(t==="x"){for(i++;i<n;i++)if(t=e[i],t!=="_"){if(!jo(e.charCodeAt(i)))return!1;r=!0}return r&&t!=="_"}if(t==="o"){for(i++;i<n;i++)if(t=e[i],t!=="_"){if(!Ho(e.charCodeAt(i)))return!1;r=!0}return r&&t!=="_"}}if(t==="_")return!1;for(;i<n;i++)if(t=e[i],t!=="_"){if(!Bo(e.charCodeAt(i)))return!1;r=!0}return!(!r||t==="_")}function Wo(e){var n=e,i=1,r;if(n.indexOf("_")!==-1&&(n=n.replace(/_/g,"")),r=n[0],(r==="-"||r==="+")&&(r==="-"&&(i=-1),n=n.slice(1),r=n[0]),n==="0")return 0;if(r==="0"){if(n[1]==="b")return i*parseInt(n.slice(2),2);if(n[1]==="x")return i*parseInt(n.slice(2),16);if(n[1]==="o")return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)}function zo(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!E.isNegativeZero(e)}var Ir=new T("tag:yaml.org,2002:int",{kind:"scalar",resolve:Yo,construct:Wo,predicate:zo,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),qo=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ko(e){return!(e===null||!qo.test(e)||e[e.length-1]==="_")}function Go(e){var n,i;return n=e.replace(/_/g,"").toLowerCase(),i=n[0]==="-"?-1:1,"+-".indexOf(n[0])>=0&&(n=n.slice(1)),n===".inf"?i===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:n===".nan"?NaN:i*parseFloat(n,10)}var Vo=/^[-+]?[0-9]+e/;function Jo(e,n){var i;if(isNaN(e))switch(n){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(n){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(n){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(E.isNegativeZero(e))return"-0.0";return i=e.toString(10),Vo.test(i)?i.replace("e",".e"):i}function Qo(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||E.isNegativeZero(e))}var Lr=new T("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ko,construct:Go,predicate:Qo,represent:Jo,defaultStyle:"lowercase"}),$r=Nr.extend({implicit:[Or,Fr,Ir,Lr]}),Mr=$r,Rr=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Pr=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Zo(e){return e===null?!1:Rr.exec(e)!==null||Pr.exec(e)!==null}function Xo(e){var n,i,r,t,o,l,a,u=0,s=null,h,c,d;if(n=Rr.exec(e),n===null&&(n=Pr.exec(e)),n===null)throw new Error("Date resolve error");if(i=+n[1],r=+n[2]-1,t=+n[3],!n[4])return new Date(Date.UTC(i,r,t));if(o=+n[4],l=+n[5],a=+n[6],n[7]){for(u=n[7].slice(0,3);u.length<3;)u+="0";u=+u}return n[9]&&(h=+n[10],c=+(n[11]||0),s=(h*60+c)*6e4,n[9]==="-"&&(s=-s)),d=new Date(Date.UTC(i,r,t,o,l,a,u)),s&&d.setTime(d.getTime()-s),d}function el(e){return e.toISOString()}var Dr=new T("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Zo,construct:Xo,instanceOf:Date,represent:el});function nl(e){return e==="<<"||e===null}var Ur=new T("tag:yaml.org,2002:merge",{kind:"scalar",resolve:nl}),ei=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
10
+ \r`;function il(e){if(e===null)return!1;var n,i,r=0,t=e.length,o=ei;for(i=0;i<t;i++)if(n=o.indexOf(e.charAt(i)),!(n>64)){if(n<0)return!1;r+=6}return r%8===0}function rl(e){var n,i,r=e.replace(/[\r\n=]/g,""),t=r.length,o=ei,l=0,a=[];for(n=0;n<t;n++)n%4===0&&n&&(a.push(l>>16&255),a.push(l>>8&255),a.push(l&255)),l=l<<6|o.indexOf(r.charAt(n));return i=t%4*6,i===0?(a.push(l>>16&255),a.push(l>>8&255),a.push(l&255)):i===18?(a.push(l>>10&255),a.push(l>>2&255)):i===12&&a.push(l>>4&255),new Uint8Array(a)}function tl(e){var n="",i=0,r,t,o=e.length,l=ei;for(r=0;r<o;r++)r%3===0&&r&&(n+=l[i>>18&63],n+=l[i>>12&63],n+=l[i>>6&63],n+=l[i&63]),i=(i<<8)+e[r];return t=o%3,t===0?(n+=l[i>>18&63],n+=l[i>>12&63],n+=l[i>>6&63],n+=l[i&63]):t===2?(n+=l[i>>10&63],n+=l[i>>4&63],n+=l[i<<2&63],n+=l[64]):t===1&&(n+=l[i>>2&63],n+=l[i<<4&63],n+=l[64],n+=l[64]),n}function ol(e){return Object.prototype.toString.call(e)==="[object Uint8Array]"}var jr=new T("tag:yaml.org,2002:binary",{kind:"scalar",resolve:il,construct:rl,predicate:ol,represent:tl}),ll=Object.prototype.hasOwnProperty,al=Object.prototype.toString;function ul(e){if(e===null)return!0;var n=[],i,r,t,o,l,a=e;for(i=0,r=a.length;i<r;i+=1){if(t=a[i],l=!1,al.call(t)!=="[object Object]")return!1;for(o in t)if(ll.call(t,o))if(!l)l=!0;else return!1;if(!l)return!1;if(n.indexOf(o)===-1)n.push(o);else return!1}return!0}function cl(e){return e!==null?e:[]}var Hr=new T("tag:yaml.org,2002:omap",{kind:"sequence",resolve:ul,construct:cl}),sl=Object.prototype.toString;function fl(e){if(e===null)return!0;var n,i,r,t,o,l=e;for(o=new Array(l.length),n=0,i=l.length;n<i;n+=1){if(r=l[n],sl.call(r)!=="[object Object]"||(t=Object.keys(r),t.length!==1))return!1;o[n]=[t[0],r[t[0]]]}return!0}function dl(e){if(e===null)return[];var n,i,r,t,o,l=e;for(o=new Array(l.length),n=0,i=l.length;n<i;n+=1)r=l[n],t=Object.keys(r),o[n]=[t[0],r[t[0]]];return o}var Br=new T("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:fl,construct:dl}),pl=Object.prototype.hasOwnProperty;function hl(e){if(e===null)return!0;var n,i=e;for(n in i)if(pl.call(i,n)&&i[n]!==null)return!1;return!0}function _l(e){return e!==null?e:{}}var Yr=new T("tag:yaml.org,2002:set",{kind:"mapping",resolve:hl,construct:_l}),ni=Mr.extend({implicit:[Dr,Ur],explicit:[jr,Hr,Br,Yr]}),q=Object.prototype.hasOwnProperty,nn=1,Wr=2,zr=3,rn=4,kn=1,vl=2,Ni=3,ml=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,gl=/[\x85\u2028\u2029]/,yl=/[,\[\]\{\}]/,qr=/^(?:!|!!|![a-z\-]+!)$/i,Kr=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Oi(e){return Object.prototype.toString.call(e)}function D(e){return e===10||e===13}function Q(e){return e===9||e===32}function $(e){return e===9||e===32||e===10||e===13}function le(e){return e===44||e===91||e===93||e===123||e===125}function bl(e){var n;return 48<=e&&e<=57?e-48:(n=e|32,97<=n&&n<=102?n-97+10:-1)}function xl(e){return e===120?2:e===117?4:e===85?8:0}function wl(e){return 48<=e&&e<=57?e-48:-1}function Fi(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?`
11
+ `:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"…":e===95?" ":e===76?"\u2028":e===80?"\u2029":""}function Al(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function Gr(e,n,i){n==="__proto__"?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,writable:!0,value:i}):e[n]=i}var Vr=new Array(256),Jr=new Array(256);for(var te=0;te<256;te++)Vr[te]=Fi(te)?1:0,Jr[te]=Fi(te);function Sl(e,n){this.input=e,this.filename=n.filename||null,this.schema=n.schema||ni,this.onWarning=n.onWarning||null,this.legacy=n.legacy||!1,this.json=n.json||!1,this.listener=n.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Qr(e,n){var i={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return i.snippet=To(i),new F(n,i)}function v(e,n){throw Qr(e,n)}function tn(e,n){e.onWarning&&e.onWarning.call(null,Qr(e,n))}var Ii={YAML:function(n,i,r){var t,o,l;n.version!==null&&v(n,"duplication of %YAML directive"),r.length!==1&&v(n,"YAML directive accepts exactly one argument"),t=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),t===null&&v(n,"ill-formed argument of the YAML directive"),o=parseInt(t[1],10),l=parseInt(t[2],10),o!==1&&v(n,"unacceptable YAML version of the document"),n.version=r[0],n.checkLineBreaks=l<2,l!==1&&l!==2&&tn(n,"unsupported YAML version of the document")},TAG:function(n,i,r){var t,o;r.length!==2&&v(n,"TAG directive accepts exactly two arguments"),t=r[0],o=r[1],qr.test(t)||v(n,"ill-formed tag handle (first argument) of the TAG directive"),q.call(n.tagMap,t)&&v(n,'there is a previously declared suffix for "'+t+'" tag handle'),Kr.test(o)||v(n,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{v(n,"tag prefix is malformed: "+o)}n.tagMap[t]=o}};function z(e,n,i,r){var t,o,l,a;if(n<i){if(a=e.input.slice(n,i),r)for(t=0,o=a.length;t<o;t+=1)l=a.charCodeAt(t),l===9||32<=l&&l<=1114111||v(e,"expected valid JSON character");else ml.test(a)&&v(e,"the stream contains non-printable characters");e.result+=a}}function Li(e,n,i,r){var t,o,l,a;for(E.isObject(i)||v(e,"cannot merge mappings; the provided source object is unacceptable"),t=Object.keys(i),l=0,a=t.length;l<a;l+=1)o=t[l],q.call(n,o)||(Gr(n,o,i[o]),r[o]=!0)}function ae(e,n,i,r,t,o,l,a,u){var s,h;if(Array.isArray(t))for(t=Array.prototype.slice.call(t),s=0,h=t.length;s<h;s+=1)Array.isArray(t[s])&&v(e,"nested arrays are not supported inside keys"),typeof t=="object"&&Oi(t[s])==="[object Object]"&&(t[s]="[object Object]");if(typeof t=="object"&&Oi(t)==="[object Object]"&&(t="[object Object]"),t=String(t),n===null&&(n={}),r==="tag:yaml.org,2002:merge")if(Array.isArray(o))for(s=0,h=o.length;s<h;s+=1)Li(e,n,o[s],i);else Li(e,n,o,i);else!e.json&&!q.call(i,t)&&q.call(n,t)&&(e.line=l||e.line,e.lineStart=a||e.lineStart,e.position=u||e.position,v(e,"duplicated mapping key")),Gr(n,t,o),delete i[t];return n}function ii(e){var n;n=e.input.charCodeAt(e.position),n===10?e.position++:n===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):v(e,"a line break is expected"),e.line+=1,e.lineStart=e.position,e.firstTabInLine=-1}function k(e,n,i){for(var r=0,t=e.input.charCodeAt(e.position);t!==0;){for(;Q(t);)t===9&&e.firstTabInLine===-1&&(e.firstTabInLine=e.position),t=e.input.charCodeAt(++e.position);if(n&&t===35)do t=e.input.charCodeAt(++e.position);while(t!==10&&t!==13&&t!==0);if(D(t))for(ii(e),t=e.input.charCodeAt(e.position),r++,e.lineIndent=0;t===32;)e.lineIndent++,t=e.input.charCodeAt(++e.position);else break}return i!==-1&&r!==0&&e.lineIndent<i&&tn(e,"deficient indentation"),r}function vn(e){var n=e.position,i;return i=e.input.charCodeAt(n),!!((i===45||i===46)&&i===e.input.charCodeAt(n+1)&&i===e.input.charCodeAt(n+2)&&(n+=3,i=e.input.charCodeAt(n),i===0||$(i)))}function ri(e,n){n===1?e.result+=" ":n>1&&(e.result+=E.repeat(`
12
+ `,n-1))}function Cl(e,n,i){var r,t,o,l,a,u,s,h,c=e.kind,d=e.result,p;if(p=e.input.charCodeAt(e.position),$(p)||le(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(t=e.input.charCodeAt(e.position+1),$(t)||i&&le(t)))return!1;for(e.kind="scalar",e.result="",o=l=e.position,a=!1;p!==0;){if(p===58){if(t=e.input.charCodeAt(e.position+1),$(t)||i&&le(t))break}else if(p===35){if(r=e.input.charCodeAt(e.position-1),$(r))break}else{if(e.position===e.lineStart&&vn(e)||i&&le(p))break;if(D(p))if(u=e.line,s=e.lineStart,h=e.lineIndent,k(e,!1,-1),e.lineIndent>=n){a=!0,p=e.input.charCodeAt(e.position);continue}else{e.position=l,e.line=u,e.lineStart=s,e.lineIndent=h;break}}a&&(z(e,o,l,!1),ri(e,e.line-u),o=l=e.position,a=!1),Q(p)||(l=e.position+1),p=e.input.charCodeAt(++e.position)}return z(e,o,l,!1),e.result?!0:(e.kind=c,e.result=d,!1)}function kl(e,n){var i,r,t;if(i=e.input.charCodeAt(e.position),i!==39)return!1;for(e.kind="scalar",e.result="",e.position++,r=t=e.position;(i=e.input.charCodeAt(e.position))!==0;)if(i===39)if(z(e,r,e.position,!0),i=e.input.charCodeAt(++e.position),i===39)r=e.position,e.position++,t=e.position;else return!0;else D(i)?(z(e,r,t,!0),ri(e,k(e,!1,n)),r=t=e.position):e.position===e.lineStart&&vn(e)?v(e,"unexpected end of the document within a single quoted scalar"):(e.position++,t=e.position);v(e,"unexpected end of the stream within a single quoted scalar")}function El(e,n){var i,r,t,o,l,a;if(a=e.input.charCodeAt(e.position),a!==34)return!1;for(e.kind="scalar",e.result="",e.position++,i=r=e.position;(a=e.input.charCodeAt(e.position))!==0;){if(a===34)return z(e,i,e.position,!0),e.position++,!0;if(a===92){if(z(e,i,e.position,!0),a=e.input.charCodeAt(++e.position),D(a))k(e,!1,n);else if(a<256&&Vr[a])e.result+=Jr[a],e.position++;else if((l=xl(a))>0){for(t=l,o=0;t>0;t--)a=e.input.charCodeAt(++e.position),(l=bl(a))>=0?o=(o<<4)+l:v(e,"expected hexadecimal character");e.result+=Al(o),e.position++}else v(e,"unknown escape sequence");i=r=e.position}else D(a)?(z(e,i,r,!0),ri(e,k(e,!1,n)),i=r=e.position):e.position===e.lineStart&&vn(e)?v(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}v(e,"unexpected end of the stream within a double quoted scalar")}function Tl(e,n){var i=!0,r,t,o,l=e.tag,a,u=e.anchor,s,h,c,d,p,m=Object.create(null),b,x,g,_;if(_=e.input.charCodeAt(e.position),_===91)h=93,p=!1,a=[];else if(_===123)h=125,p=!0,a={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=a),_=e.input.charCodeAt(++e.position);_!==0;){if(k(e,!0,n),_=e.input.charCodeAt(e.position),_===h)return e.position++,e.tag=l,e.anchor=u,e.kind=p?"mapping":"sequence",e.result=a,!0;i?_===44&&v(e,"expected the node content, but found ','"):v(e,"missed comma between flow collection entries"),x=b=g=null,c=d=!1,_===63&&(s=e.input.charCodeAt(e.position+1),$(s)&&(c=d=!0,e.position++,k(e,!0,n))),r=e.line,t=e.lineStart,o=e.position,de(e,n,nn,!1,!0),x=e.tag,b=e.result,k(e,!0,n),_=e.input.charCodeAt(e.position),(d||e.line===r)&&_===58&&(c=!0,_=e.input.charCodeAt(++e.position),k(e,!0,n),de(e,n,nn,!1,!0),g=e.result),p?ae(e,a,m,x,b,g,r,t,o):c?a.push(ae(e,null,m,x,b,g,r,t,o)):a.push(b),k(e,!0,n),_=e.input.charCodeAt(e.position),_===44?(i=!0,_=e.input.charCodeAt(++e.position)):i=!1}v(e,"unexpected end of the stream within a flow collection")}function Nl(e,n){var i,r,t=kn,o=!1,l=!1,a=n,u=0,s=!1,h,c;if(c=e.input.charCodeAt(e.position),c===124)r=!1;else if(c===62)r=!0;else return!1;for(e.kind="scalar",e.result="";c!==0;)if(c=e.input.charCodeAt(++e.position),c===43||c===45)kn===t?t=c===43?Ni:vl:v(e,"repeat of a chomping mode identifier");else if((h=wl(c))>=0)h===0?v(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?v(e,"repeat of an indentation width identifier"):(a=n+h-1,l=!0);else break;if(Q(c)){do c=e.input.charCodeAt(++e.position);while(Q(c));if(c===35)do c=e.input.charCodeAt(++e.position);while(!D(c)&&c!==0)}for(;c!==0;){for(ii(e),e.lineIndent=0,c=e.input.charCodeAt(e.position);(!l||e.lineIndent<a)&&c===32;)e.lineIndent++,c=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>a&&(a=e.lineIndent),D(c)){u++;continue}if(e.lineIndent<a){t===Ni?e.result+=E.repeat(`
13
+ `,o?1+u:u):t===kn&&o&&(e.result+=`
14
+ `);break}for(r?Q(c)?(s=!0,e.result+=E.repeat(`
15
+ `,o?1+u:u)):s?(s=!1,e.result+=E.repeat(`
16
+ `,u+1)):u===0?o&&(e.result+=" "):e.result+=E.repeat(`
17
+ `,u):e.result+=E.repeat(`
18
+ `,o?1+u:u),o=!0,l=!0,u=0,i=e.position;!D(c)&&c!==0;)c=e.input.charCodeAt(++e.position);z(e,i,e.position,!1)}return!0}function $i(e,n){var i,r=e.tag,t=e.anchor,o=[],l,a=!1,u;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),u=e.input.charCodeAt(e.position);u!==0&&(e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,v(e,"tab characters must not be used in indentation")),!(u!==45||(l=e.input.charCodeAt(e.position+1),!$(l))));){if(a=!0,e.position++,k(e,!0,-1)&&e.lineIndent<=n){o.push(null),u=e.input.charCodeAt(e.position);continue}if(i=e.line,de(e,n,zr,!1,!0),o.push(e.result),k(e,!0,-1),u=e.input.charCodeAt(e.position),(e.line===i||e.lineIndent>n)&&u!==0)v(e,"bad indentation of a sequence entry");else if(e.lineIndent<n)break}return a?(e.tag=r,e.anchor=t,e.kind="sequence",e.result=o,!0):!1}function Ol(e,n,i){var r,t,o,l,a,u,s=e.tag,h=e.anchor,c={},d=Object.create(null),p=null,m=null,b=null,x=!1,g=!1,_;if(e.firstTabInLine!==-1)return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=c),_=e.input.charCodeAt(e.position);_!==0;){if(!x&&e.firstTabInLine!==-1&&(e.position=e.firstTabInLine,v(e,"tab characters must not be used in indentation")),r=e.input.charCodeAt(e.position+1),o=e.line,(_===63||_===58)&&$(r))_===63?(x&&(ae(e,c,d,p,m,null,l,a,u),p=m=b=null),g=!0,x=!0,t=!0):x?(x=!1,t=!0):v(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,_=r;else{if(l=e.line,a=e.lineStart,u=e.position,!de(e,i,Wr,!1,!0))break;if(e.line===o){for(_=e.input.charCodeAt(e.position);Q(_);)_=e.input.charCodeAt(++e.position);if(_===58)_=e.input.charCodeAt(++e.position),$(_)||v(e,"a whitespace character is expected after the key-value separator within a block mapping"),x&&(ae(e,c,d,p,m,null,l,a,u),p=m=b=null),g=!0,x=!1,t=!1,p=e.tag,m=e.result;else if(g)v(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=s,e.anchor=h,!0}else if(g)v(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=s,e.anchor=h,!0}if((e.line===o||e.lineIndent>n)&&(x&&(l=e.line,a=e.lineStart,u=e.position),de(e,n,rn,!0,t)&&(x?m=e.result:b=e.result),x||(ae(e,c,d,p,m,b,l,a,u),p=m=b=null),k(e,!0,-1),_=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>n)&&_!==0)v(e,"bad indentation of a mapping entry");else if(e.lineIndent<n)break}return x&&ae(e,c,d,p,m,null,l,a,u),g&&(e.tag=s,e.anchor=h,e.kind="mapping",e.result=c),g}function Fl(e){var n,i=!1,r=!1,t,o,l;if(l=e.input.charCodeAt(e.position),l!==33)return!1;if(e.tag!==null&&v(e,"duplication of a tag property"),l=e.input.charCodeAt(++e.position),l===60?(i=!0,l=e.input.charCodeAt(++e.position)):l===33?(r=!0,t="!!",l=e.input.charCodeAt(++e.position)):t="!",n=e.position,i){do l=e.input.charCodeAt(++e.position);while(l!==0&&l!==62);e.position<e.length?(o=e.input.slice(n,e.position),l=e.input.charCodeAt(++e.position)):v(e,"unexpected end of the stream within a verbatim tag")}else{for(;l!==0&&!$(l);)l===33&&(r?v(e,"tag suffix cannot contain exclamation marks"):(t=e.input.slice(n-1,e.position+1),qr.test(t)||v(e,"named tag handle cannot contain such characters"),r=!0,n=e.position+1)),l=e.input.charCodeAt(++e.position);o=e.input.slice(n,e.position),yl.test(o)&&v(e,"tag suffix cannot contain flow indicator characters")}o&&!Kr.test(o)&&v(e,"tag name cannot contain such characters: "+o);try{o=decodeURIComponent(o)}catch{v(e,"tag name is malformed: "+o)}return i?e.tag=o:q.call(e.tagMap,t)?e.tag=e.tagMap[t]+o:t==="!"?e.tag="!"+o:t==="!!"?e.tag="tag:yaml.org,2002:"+o:v(e,'undeclared tag handle "'+t+'"'),!0}function Il(e){var n,i;if(i=e.input.charCodeAt(e.position),i!==38)return!1;for(e.anchor!==null&&v(e,"duplication of an anchor property"),i=e.input.charCodeAt(++e.position),n=e.position;i!==0&&!$(i)&&!le(i);)i=e.input.charCodeAt(++e.position);return e.position===n&&v(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(n,e.position),!0}function Ll(e){var n,i,r;if(r=e.input.charCodeAt(e.position),r!==42)return!1;for(r=e.input.charCodeAt(++e.position),n=e.position;r!==0&&!$(r)&&!le(r);)r=e.input.charCodeAt(++e.position);return e.position===n&&v(e,"name of an alias node must contain at least one character"),i=e.input.slice(n,e.position),q.call(e.anchorMap,i)||v(e,'unidentified alias "'+i+'"'),e.result=e.anchorMap[i],k(e,!0,-1),!0}function de(e,n,i,r,t){var o,l,a,u=1,s=!1,h=!1,c,d,p,m,b,x;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=l=a=rn===i||zr===i,r&&k(e,!0,-1)&&(s=!0,e.lineIndent>n?u=1:e.lineIndent===n?u=0:e.lineIndent<n&&(u=-1)),u===1)for(;Fl(e)||Il(e);)k(e,!0,-1)?(s=!0,a=o,e.lineIndent>n?u=1:e.lineIndent===n?u=0:e.lineIndent<n&&(u=-1)):a=!1;if(a&&(a=s||t),(u===1||rn===i)&&(nn===i||Wr===i?b=n:b=n+1,x=e.position-e.lineStart,u===1?a&&($i(e,x)||Ol(e,x,b))||Tl(e,b)?h=!0:(l&&Nl(e,b)||kl(e,b)||El(e,b)?h=!0:Ll(e)?(h=!0,(e.tag!==null||e.anchor!==null)&&v(e,"alias node should not have any properties")):Cl(e,b,nn===i)&&(h=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):u===0&&(h=a&&$i(e,x))),e.tag===null)e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);else if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&v(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),c=0,d=e.implicitTypes.length;c<d;c+=1)if(m=e.implicitTypes[c],m.resolve(e.result)){e.result=m.construct(e.result),e.tag=m.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else if(e.tag!=="!"){if(q.call(e.typeMap[e.kind||"fallback"],e.tag))m=e.typeMap[e.kind||"fallback"][e.tag];else for(m=null,p=e.typeMap.multi[e.kind||"fallback"],c=0,d=p.length;c<d;c+=1)if(e.tag.slice(0,p[c].tag.length)===p[c].tag){m=p[c];break}m||v(e,"unknown tag !<"+e.tag+">"),e.result!==null&&m.kind!==e.kind&&v(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+m.kind+'", not "'+e.kind+'"'),m.resolve(e.result,e.tag)?(e.result=m.construct(e.result,e.tag),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):v(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||h}function $l(e){var n=e.position,i,r,t,o=!1,l;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(l=e.input.charCodeAt(e.position))!==0&&(k(e,!0,-1),l=e.input.charCodeAt(e.position),!(e.lineIndent>0||l!==37));){for(o=!0,l=e.input.charCodeAt(++e.position),i=e.position;l!==0&&!$(l);)l=e.input.charCodeAt(++e.position);for(r=e.input.slice(i,e.position),t=[],r.length<1&&v(e,"directive name must not be less than one character in length");l!==0;){for(;Q(l);)l=e.input.charCodeAt(++e.position);if(l===35){do l=e.input.charCodeAt(++e.position);while(l!==0&&!D(l));break}if(D(l))break;for(i=e.position;l!==0&&!$(l);)l=e.input.charCodeAt(++e.position);t.push(e.input.slice(i,e.position))}l!==0&&ii(e),q.call(Ii,r)?Ii[r](e,r,t):tn(e,'unknown document directive "'+r+'"')}if(k(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,k(e,!0,-1)):o&&v(e,"directives end mark is expected"),de(e,e.lineIndent-1,rn,!1,!0),k(e,!0,-1),e.checkLineBreaks&&gl.test(e.input.slice(n,e.position))&&tn(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&vn(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,k(e,!0,-1));return}if(e.position<e.length-1)v(e,"end of the stream or a document separator is expected");else return}function Zr(e,n){e=String(e),n=n||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=`
19
+ `),e.charCodeAt(0)===65279&&(e=e.slice(1)));var i=new Sl(e,n),r=e.indexOf("\0");for(r!==-1&&(i.position=r,v(i,"null byte is not allowed in input")),i.input+="\0";i.input.charCodeAt(i.position)===32;)i.lineIndent+=1,i.position+=1;for(;i.position<i.length-1;)$l(i);return i.documents}function Ml(e,n,i){n!==null&&typeof n=="object"&&typeof i>"u"&&(i=n,n=null);var r=Zr(e,i);if(typeof n!="function")return r;for(var t=0,o=r.length;t<o;t+=1)n(r[t])}function Rl(e,n){var i=Zr(e,n);if(i.length!==0){if(i.length===1)return i[0];throw new F("expected a single document in the stream, but found more")}}var Pl=Ml,Dl=Rl,Xr={loadAll:Pl,load:Dl},et=Object.prototype.toString,nt=Object.prototype.hasOwnProperty,ti=65279,Ul=9,Ne=10,jl=13,Hl=32,Bl=33,Yl=34,Pn=35,Wl=37,zl=38,ql=39,Kl=42,it=44,Gl=45,on=58,Vl=61,Jl=62,Ql=63,Zl=64,rt=91,tt=93,Xl=96,ot=123,ea=124,lt=125,O={};O[0]="\\0";O[7]="\\a";O[8]="\\b";O[9]="\\t";O[10]="\\n";O[11]="\\v";O[12]="\\f";O[13]="\\r";O[27]="\\e";O[34]='\\"';O[92]="\\\\";O[133]="\\N";O[160]="\\_";O[8232]="\\L";O[8233]="\\P";var na=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ia=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function ra(e,n){var i,r,t,o,l,a,u;if(n===null)return{};for(i={},r=Object.keys(n),t=0,o=r.length;t<o;t+=1)l=r[t],a=String(n[l]),l.slice(0,2)==="!!"&&(l="tag:yaml.org,2002:"+l.slice(2)),u=e.compiledTypeMap.fallback[l],u&&nt.call(u.styleAliases,a)&&(a=u.styleAliases[a]),i[l]=a;return i}function ta(e){var n,i,r;if(n=e.toString(16).toUpperCase(),e<=255)i="x",r=2;else if(e<=65535)i="u",r=4;else if(e<=4294967295)i="U",r=8;else throw new F("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+i+E.repeat("0",r-n.length)+n}var oa=1,Oe=2;function la(e){this.schema=e.schema||ni,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=E.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=ra(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.quotingType=e.quotingType==='"'?Oe:oa,this.forceQuotes=e.forceQuotes||!1,this.replacer=typeof e.replacer=="function"?e.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Mi(e,n){for(var i=E.repeat(" ",n),r=0,t=-1,o="",l,a=e.length;r<a;)t=e.indexOf(`
20
+ `,r),t===-1?(l=e.slice(r),r=a):(l=e.slice(r,t+1),r=t+1),l.length&&l!==`
21
+ `&&(o+=i),o+=l;return o}function Dn(e,n){return`
22
+ `+E.repeat(" ",e.indent*n)}function aa(e,n){var i,r,t;for(i=0,r=e.implicitTypes.length;i<r;i+=1)if(t=e.implicitTypes[i],t.resolve(n))return!0;return!1}function ln(e){return e===Hl||e===Ul}function Fe(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==ti||65536<=e&&e<=1114111}function Ri(e){return Fe(e)&&e!==ti&&e!==jl&&e!==Ne}function Pi(e,n,i){var r=Ri(e),t=r&&!ln(e);return(i?r:r&&e!==it&&e!==rt&&e!==tt&&e!==ot&&e!==lt)&&e!==Pn&&!(n===on&&!t)||Ri(n)&&!ln(n)&&e===Pn||n===on&&t}function ua(e){return Fe(e)&&e!==ti&&!ln(e)&&e!==Gl&&e!==Ql&&e!==on&&e!==it&&e!==rt&&e!==tt&&e!==ot&&e!==lt&&e!==Pn&&e!==zl&&e!==Kl&&e!==Bl&&e!==ea&&e!==Vl&&e!==Jl&&e!==ql&&e!==Yl&&e!==Wl&&e!==Zl&&e!==Xl}function ca(e){return!ln(e)&&e!==on}function ge(e,n){var i=e.charCodeAt(n),r;return i>=55296&&i<=56319&&n+1<e.length&&(r=e.charCodeAt(n+1),r>=56320&&r<=57343)?(i-55296)*1024+r-56320+65536:i}function at(e){var n=/^\n* /;return n.test(e)}var ut=1,Un=2,ct=3,st=4,oe=5;function sa(e,n,i,r,t,o,l,a){var u,s=0,h=null,c=!1,d=!1,p=r!==-1,m=-1,b=ua(ge(e,0))&&ca(ge(e,e.length-1));if(n||l)for(u=0;u<e.length;s>=65536?u+=2:u++){if(s=ge(e,u),!Fe(s))return oe;b=b&&Pi(s,h,a),h=s}else{for(u=0;u<e.length;s>=65536?u+=2:u++){if(s=ge(e,u),s===Ne)c=!0,p&&(d=d||u-m-1>r&&e[m+1]!==" ",m=u);else if(!Fe(s))return oe;b=b&&Pi(s,h,a),h=s}d=d||p&&u-m-1>r&&e[m+1]!==" "}return!c&&!d?b&&!l&&!t(e)?ut:o===Oe?oe:Un:i>9&&at(e)?oe:l?o===Oe?oe:Un:d?st:ct}function fa(e,n,i,r,t){e.dump=function(){if(n.length===0)return e.quotingType===Oe?'""':"''";if(!e.noCompatMode&&(na.indexOf(n)!==-1||ia.test(n)))return e.quotingType===Oe?'"'+n+'"':"'"+n+"'";var o=e.indent*Math.max(1,i),l=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),a=r||e.flowLevel>-1&&i>=e.flowLevel;function u(s){return aa(e,s)}switch(sa(n,a,e.indent,l,u,e.quotingType,e.forceQuotes&&!r,t)){case ut:return n;case Un:return"'"+n.replace(/'/g,"''")+"'";case ct:return"|"+Di(n,e.indent)+Ui(Mi(n,o));case st:return">"+Di(n,e.indent)+Ui(Mi(da(n,l),o));case oe:return'"'+pa(n)+'"';default:throw new F("impossible error: invalid scalar style")}}()}function Di(e,n){var i=at(e)?String(n):"",r=e[e.length-1]===`
23
+ `,t=r&&(e[e.length-2]===`
24
+ `||e===`
25
+ `),o=t?"+":r?"":"-";return i+o+`
26
+ `}function Ui(e){return e[e.length-1]===`
27
+ `?e.slice(0,-1):e}function da(e,n){for(var i=/(\n+)([^\n]*)/g,r=function(){var s=e.indexOf(`
28
+ `);return s=s!==-1?s:e.length,i.lastIndex=s,ji(e.slice(0,s),n)}(),t=e[0]===`
29
+ `||e[0]===" ",o,l;l=i.exec(e);){var a=l[1],u=l[2];o=u[0]===" ",r+=a+(!t&&!o&&u!==""?`
30
+ `:"")+ji(u,n),t=o}return r}function ji(e,n){if(e===""||e[0]===" ")return e;for(var i=/ [^ ]/g,r,t=0,o,l=0,a=0,u="";r=i.exec(e);)a=r.index,a-t>n&&(o=l>t?l:a,u+=`
31
+ `+e.slice(t,o),t=o+1),l=a;return u+=`
32
+ `,e.length-t>n&&l>t?u+=e.slice(t,l)+`
33
+ `+e.slice(l+1):u+=e.slice(t),u.slice(1)}function pa(e){for(var n="",i=0,r,t=0;t<e.length;i>=65536?t+=2:t++)i=ge(e,t),r=O[i],!r&&Fe(i)?(n+=e[t],i>=65536&&(n+=e[t+1])):n+=r||ta(i);return n}function ha(e,n,i){var r="",t=e.tag,o,l,a;for(o=0,l=i.length;o<l;o+=1)a=i[o],e.replacer&&(a=e.replacer.call(i,String(o),a)),(Y(e,n,a,!1,!1)||typeof a>"u"&&Y(e,n,null,!1,!1))&&(r!==""&&(r+=","+(e.condenseFlow?"":" ")),r+=e.dump);e.tag=t,e.dump="["+r+"]"}function Hi(e,n,i,r){var t="",o=e.tag,l,a,u;for(l=0,a=i.length;l<a;l+=1)u=i[l],e.replacer&&(u=e.replacer.call(i,String(l),u)),(Y(e,n+1,u,!0,!0,!1,!0)||typeof u>"u"&&Y(e,n+1,null,!0,!0,!1,!0))&&((!r||t!=="")&&(t+=Dn(e,n)),e.dump&&Ne===e.dump.charCodeAt(0)?t+="-":t+="- ",t+=e.dump);e.tag=o,e.dump=t||"[]"}function _a(e,n,i){var r="",t=e.tag,o=Object.keys(i),l,a,u,s,h;for(l=0,a=o.length;l<a;l+=1)h="",r!==""&&(h+=", "),e.condenseFlow&&(h+='"'),u=o[l],s=i[u],e.replacer&&(s=e.replacer.call(i,u,s)),Y(e,n,u,!1,!1)&&(e.dump.length>1024&&(h+="? "),h+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Y(e,n,s,!1,!1)&&(h+=e.dump,r+=h));e.tag=t,e.dump="{"+r+"}"}function va(e,n,i,r){var t="",o=e.tag,l=Object.keys(i),a,u,s,h,c,d;if(e.sortKeys===!0)l.sort();else if(typeof e.sortKeys=="function")l.sort(e.sortKeys);else if(e.sortKeys)throw new F("sortKeys must be a boolean or a function");for(a=0,u=l.length;a<u;a+=1)d="",(!r||t!=="")&&(d+=Dn(e,n)),s=l[a],h=i[s],e.replacer&&(h=e.replacer.call(i,s,h)),Y(e,n+1,s,!0,!0,!0)&&(c=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,c&&(e.dump&&Ne===e.dump.charCodeAt(0)?d+="?":d+="? "),d+=e.dump,c&&(d+=Dn(e,n)),Y(e,n+1,h,!0,c)&&(e.dump&&Ne===e.dump.charCodeAt(0)?d+=":":d+=": ",d+=e.dump,t+=d));e.tag=o,e.dump=t||"{}"}function Bi(e,n,i){var r,t,o,l,a,u;for(t=i?e.explicitTypes:e.implicitTypes,o=0,l=t.length;o<l;o+=1)if(a=t[o],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof n=="object"&&n instanceof a.instanceOf)&&(!a.predicate||a.predicate(n))){if(i?a.multi&&a.representName?e.tag=a.representName(n):e.tag=a.tag:e.tag="?",a.represent){if(u=e.styleMap[a.tag]||a.defaultStyle,et.call(a.represent)==="[object Function]")r=a.represent(n,u);else if(nt.call(a.represent,u))r=a.represent[u](n,u);else throw new F("!<"+a.tag+'> tag resolver accepts not "'+u+'" style');e.dump=r}return!0}return!1}function Y(e,n,i,r,t,o,l){e.tag=null,e.dump=i,Bi(e,i,!1)||Bi(e,i,!0);var a=et.call(e.dump),u=r,s;r&&(r=e.flowLevel<0||e.flowLevel>n);var h=a==="[object Object]"||a==="[object Array]",c,d;if(h&&(c=e.duplicates.indexOf(i),d=c!==-1),(e.tag!==null&&e.tag!=="?"||d||e.indent!==2&&n>0)&&(t=!1),d&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(h&&d&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),a==="[object Object]")r&&Object.keys(e.dump).length!==0?(va(e,n,e.dump,t),d&&(e.dump="&ref_"+c+e.dump)):(_a(e,n,e.dump),d&&(e.dump="&ref_"+c+" "+e.dump));else if(a==="[object Array]")r&&e.dump.length!==0?(e.noArrayIndent&&!l&&n>0?Hi(e,n-1,e.dump,t):Hi(e,n,e.dump,t),d&&(e.dump="&ref_"+c+e.dump)):(ha(e,n,e.dump),d&&(e.dump="&ref_"+c+" "+e.dump));else if(a==="[object String]")e.tag!=="?"&&fa(e,e.dump,n,o,u);else{if(a==="[object Undefined]")return!1;if(e.skipInvalid)return!1;throw new F("unacceptable kind of an object to dump "+a)}e.tag!==null&&e.tag!=="?"&&(s=encodeURI(e.tag[0]==="!"?e.tag.slice(1):e.tag).replace(/!/g,"%21"),e.tag[0]==="!"?s="!"+s:s.slice(0,18)==="tag:yaml.org,2002:"?s="!!"+s.slice(18):s="!<"+s+">",e.dump=s+" "+e.dump)}return!0}function ma(e,n){var i=[],r=[],t,o;for(jn(e,i,r),t=0,o=r.length;t<o;t+=1)n.duplicates.push(i[r[t]]);n.usedDuplicates=new Array(o)}function jn(e,n,i){var r,t,o;if(e!==null&&typeof e=="object")if(t=n.indexOf(e),t!==-1)i.indexOf(t)===-1&&i.push(t);else if(n.push(e),Array.isArray(e))for(t=0,o=e.length;t<o;t+=1)jn(e[t],n,i);else for(r=Object.keys(e),t=0,o=r.length;t<o;t+=1)jn(e[r[t]],n,i)}function ga(e,n){n=n||{};var i=new la(n);i.noRefs||ma(e,i);var r=e;return i.replacer&&(r=i.replacer.call({"":r},"",r)),Y(i,0,r,!0,!0)?i.dump+`
34
+ `:""}var ya=ga,ba={dump:ya};function oi(e,n){return function(){throw new Error("Function yaml."+e+" is removed in js-yaml 4. Use yaml."+n+" instead, which is now safe by default.")}}var xa=T,wa=Cr,Aa=Nr,Sa=$r,Ca=Mr,ka=ni,Ea=Xr.load,Ta=Xr.loadAll,Na=ba.dump,Oa=F,Fa={binary:jr,float:Lr,map:Tr,null:Or,pairs:Br,set:Yr,timestamp:Dr,bool:Fr,int:Ir,merge:Ur,omap:Hr,seq:Er,str:kr},Ia=oi("safeLoad","load"),La=oi("safeLoadAll","loadAll"),$a=oi("safeDump","dump"),Ma={Type:xa,Schema:wa,FAILSAFE_SCHEMA:Aa,JSON_SCHEMA:Sa,CORE_SCHEMA:Ca,DEFAULT_SCHEMA:ka,load:Ea,loadAll:Ta,dump:Na,YAMLException:Oa,types:Fa,safeLoad:Ia,safeLoadAll:La,safeDump:$a};function ft(e){if(e.trim()==="")return{};const i=Ma.load(e);if(i==null)return{};if(typeof i!="object"||Array.isArray(i))throw new Error(".agent-user.yml must parse to an object");return i}const dt=y(!1),an=y(null),ue=y(_n()),Hn=y(!1),Be=y(null),H=y(null),un=y(!1),Bn=y({});async function Yi(){an.value=null;try{const e=await I("/api/v1/user-md");if(Hn.value=e.exists,Be.value=e.lastModified,e.exists&&e.identity!==null)ue.value=en(e.identity),H.value=null;else try{const n=await I("/api/v1/user-md/template");ue.value=en(ft(n.body)),H.value="File does not exist yet — loaded shipped template. Save to create it."}catch{ue.value=_n(),H.value="File does not exist yet — fill the form and save."}dt.value=!0}catch(e){an.value=e instanceof Error?e.message:String(e)}}async function Ra(){un.value=!0,H.value=null,Bn.value={};try{const e={};Hn.value&&Be.value!==null&&(e["If-Unmodified-Since"]=String(Be.value));const n=await I("/api/v1/user-md",{method:"PUT",headers:e,body:{identity:ue.value}});Be.value=n.lastModified,Hn.value=!0,H.value=`Saved (${n.writtenPaths.join(", ")}).`}catch(e){if(e instanceof G){const n=e.body.error??{code:"UNKNOWN",message:e.message};Bn.value=$e(n),H.value=ve(n)}else H.value=e instanceof Error?e.message:String(e)}finally{un.value=!1}}function Pa(){return pn(()=>{Yi()},[]),dt.value?f("div",{class:"ac-page",children:[f("header",{class:"ac-page__header",children:[f("h1",{children:".agent-user.yml"}),f("nav",{class:"ac-page__nav",children:f("a",{href:"#/settings",children:"← Back to Settings"})})]}),H.value!==null?f("p",{class:"ac-banner",children:H.value}):null,f(wr,{value:ue.value,errors:Bn.value,onChange:e=>{ue.value=e}}),f("div",{class:"ac-form__actions",children:[f("button",{type:"button",class:"ac-button",onClick:()=>{Yi()},children:"Reload"}),f("button",{type:"button",class:"ac-button ac-button--primary",disabled:un.value,onClick:()=>{Ra()},children:un.value?"Saving…":"Save"})]})]}):f("div",{class:"ac-page",children:[f("h1",{children:".agent-user.yml"}),an.value!==null?f("p",{class:"ac-banner ac-banner--error",children:an.value}):f("p",{children:"Loading…"})]})}const Ie=y(null);async function Da(){try{const e=await I("/api/v1/ping");Ie.value={...e,projectScopeAvailable:e.projectScopeAvailable===!0}}catch{Ie.value=null}}const Ua=[{id:"ai-tools",title:"Which AI tools do you use?",navLabel:"AI tools",subtitle:"Pick the editors and CLIs that should pick up this config. Auto-detect runs first; you can override.",kind:"aiTools"},{id:"packs",title:"Which capability packs do you want?",navLabel:"Packs",subtitle:"Founder-strategy, finance-basic, gtm-sales, ops-people, ai-video — pick zero or more. You can change this later.",kind:"packs"}],Yn=[{id:"identity",title:"Editor and tooling",navLabel:"Editor",subtitle:"IDE and rtk go into .agent-settings.yml so the agent opens files in the right tool. Your name lives in .agent-user.yml (later step).",kind:"form",paths:["personal.ide","personal.open_edited_files","personal.rtk_installed"]},{id:"personality",title:"How should the agent behave?",navLabel:"Personality",subtitle:"Autonomy, output verbosity, and PR-comment style.",kind:"form",paths:["personal.autonomy","personal.minimal_output","personal.play_by_play","personal.pr_comment_bot_icon"]},{id:"cost",title:"Cost profile and budgets",navLabel:"Cost",subtitle:"Master switch for which rule tiers load, plus optional spending ceilings.",kind:"form",paths:["cost_profile","cost.budgets.daily","cost.budgets.weekly","cost.budgets.monthly","cost.enforcement"]},{id:"roadmap-quality",title:"Roadmap & quality cadence",navLabel:"Roadmap & quality",subtitle:"When the agent runs quality tools and refreshes roadmap dashboards.",kind:"form",paths:["roadmap.quality_cadence","roadmap.dashboard_regen_cadence","quality.local_auto_run","quality.wait_for_remote_ci"]},{id:"memory",title:"Memory & redaction",navLabel:"Memory",subtitle:"Inline-review threshold and transcript-redaction regexes.",kind:"form",paths:["memory.review_threshold","memory.redact_patterns"]},{id:"user-md",title:"Your .agent-user.yml",navLabel:"User profile",subtitle:"Identity, voice, preferences. Stored at agents/settings/.agent-user.yml. Skip to leave empty.",kind:"userMd"},{id:"review",title:"Review & finish",navLabel:"Review",subtitle:"These keys will change. Confirm to write .agent-settings.yml and .agent-user.yml atomically.",kind:"review"}],ja=Yn;ja.length;function pt(e={}){return e.extended===!0?[...Ua,...Yn]:Yn}function mn(e,n={}){const i=pt(n),r=Math.max(0,Math.min(i.length-1,e));return i[r]}function Ha(e,n){const i={type:"object",properties:{},...e.description!==void 0?{description:e.description}:{}},r=i.properties,t=e.properties??{};for(const o of n){const l=o.split(".").filter(R=>R.length>0);if(l.length===0)continue;const[a,u,s]=l;if(a===void 0)continue;const h=t[a];if(h===void 0)continue;if(u===void 0){r[a]=h;continue}const c=h.properties?.[u];if(c===void 0)continue;const p=r[a]??{type:"object",properties:{},...h.description!==void 0?{description:h.description}:{}},m=p.properties??={};if(s===void 0){m[u]=c,r[a]=p;continue}const b=c.properties?.[s];if(b===void 0)continue;const g=m[u]??{type:"object",properties:{},...c.description!==void 0?{description:c.description}:{}},_=g.properties??={};_[s]=b,m[u]=g,r[a]=p}return i}function Ba({current:e,total:n}){const i=Math.max(1,n),r=Math.max(0,Math.min(i-1,e)),t=Array.from({length:i},(l,a)=>a<=r),o=Math.round((r+1)/i*100);return f("div",{class:"ac-wizard__progress",role:"progressbar","aria-valuenow":r+1,"aria-valuemin":1,"aria-valuemax":i,"aria-valuetext":`Step ${r+1} of ${i} (${o}%)`,children:t.map((l,a)=>f("span",{class:`ac-wizard__progress-segment${l?" ac-wizard__progress-segment--filled":""}`,"aria-hidden":"true"},a))})}function Ya({step:e,index:n,total:i}){return f("header",{class:"ac-page__header ac-wizard__header",children:[f("p",{class:"ac-wizard__step-count",children:["Step ",n+1," of ",i]}),f("div",{class:"ac-wizard__header-text",children:[f("h1",{children:e.title}),f("p",{class:"ac-wizard__subtitle",children:e.subtitle})]}),f(Ba,{current:n,total:i})]})}function Wa(e){const n=e.canFinish??!0,i=e.completed??!1;return f("div",{class:"ac-form__actions ac-wizard__nav",children:[f("button",{type:"button",class:"ac-button",disabled:!e.canGoPrev||e.busy,onClick:e.onPrev,children:"Back"}),e.canSkip&&e.onSkip!==void 0?f("button",{type:"button",class:"ac-button ac-wizard__skip",disabled:e.busy,onClick:e.onSkip,children:"Skip"}):null,e.isLast?i?null:f("button",{type:"button",class:"ac-button ac-button--primary",disabled:e.busy||!n,onClick:e.onFinish,children:e.busy?"Saving…":"Finish & save"}):f("button",{type:"button",class:"ac-button ac-button--primary",disabled:!e.canGoNext||e.busy,onClick:e.onNext,children:e.nextLabel??"Next"})]})}function ht(e,n){return e.kind!=="form"||e.paths===void 0?!1:!!(e.paths.includes(n)||e.id==="cost"&&(n.startsWith("caveman.")||n.startsWith("verbosity.")))}function za(e,n){return e.kind==="userMd"?n==="body"||n.startsWith("body."):ht(e,n)}function qa(e,n){for(const i of Object.keys(n.errors))if(za(e,i))return!0;return!1}function Ka(e,n){if(qa(e,n))return{label:"needs attention",tone:"error"};if(e.kind==="userMd")return n.userMdChanged?{label:n.userMdAction==="create"?"will create":"will replace",tone:"changed"}:{label:"",tone:"idle"};if(e.kind==="form"){const i=n.changes.filter(r=>ht(e,r.path)).length;return i===0?{label:"",tone:"idle"}:{label:`${i} change${i===1?"":"s"}`,tone:"changed"}}return{label:"",tone:"idle"}}function Ga(e){const n=e.steps.filter((i,r)=>r!==e.currentIndex);return f(K,{children:[f("nav",{class:"ac-wizard__review-nav","aria-label":"Jump back to a step",children:[f("p",{class:"ac-wizard__review-nav-label",children:"Jump back to a step:"}),f("ul",{class:"ac-wizard__review-nav-list",children:n.map(i=>{const r=e.steps.indexOf(i),t=Ka(i,e),o=t.tone==="error"?"ac-wizard__review-nav-button ac-wizard__review-nav-button--error":"ac-wizard__review-nav-button";return f("li",{children:f("button",{type:"button",class:o,onClick:()=>{e.onJump(r)},children:[f("span",{class:"ac-wizard__review-nav-index",children:r+1}),f("span",{class:"ac-wizard__review-nav-text",children:i.navLabel}),t.label!==""?f("span",{class:`ac-wizard__review-nav-status ac-wizard__review-nav-status--${t.tone}`,children:t.label}):null]})},i.id)})})]}),e.scopeAvailable?f("fieldset",{class:"ac-wizard__scope",children:[f("legend",{class:"ac-wizard__scope-legend",children:"Where should these settings be written?"}),f("label",{class:"ac-wizard__scope-option",children:[f("input",{type:"radio",name:"ac-wizard-scope",value:"global",checked:e.scope==="global",onChange:()=>{e.onScopeChange("global")}}),f("span",{class:"ac-wizard__scope-option-text",children:[f("strong",{children:"Global"})," — write to ",f("code",{children:"~/.event4u/agent-config/"})," so every project picks them up."]})]}),f("label",{class:"ac-wizard__scope-option",children:[f("input",{type:"radio",name:"ac-wizard-scope",value:"project",checked:e.scope==="project",onChange:()=>{e.onScopeChange("project")}}),f("span",{class:"ac-wizard__scope-option-text",children:[f("strong",{children:"This project only"})," — write to ",f("code",{children:"settings/"})," under the current repo (overrides the global layer)."]})]})]}):null]})}const _t=y(!1),Ae=y(null),L=y(null),Wn=y(!1),cn=y(!1),X=y(0),li=y(null),ee=y({}),vt=y({}),mt=y(0),ce=y({}),M=y(null),Z=y(null),gt=y(!1),zn=y(!1),ai=y(!1),yt=y({}),gn=y([]),qn=y("global"),ui=y(!1),pe=y(!1);function bt(){return pt({extended:pe.value})}function yn(){return bt().length}function Va(e){return e??new Date().toISOString()}function ci(e){return Math.max(0,Math.min(yn()-1,e))}function Ja(e){if("$ref"in e&&e.$ref!==void 0&&"definitions"in e&&e.definitions!==void 0){const n=e.$ref.replace("#/definitions/",""),i=e.definitions[n];if(i!==void 0)return i}return e}async function Qa(){try{return await I("/api/v1/settings")}catch(e){if(e instanceof G&&e.status===404&&e.body.error?.code==="NOT_FOUND"){const n=await I("/api/v1/schema");return{values:{},lastModified:0,path:".agent-settings.yml",schema:n.settings}}throw e}}async function Za(){Ae.value=null;try{const[e,n]=await Promise.all([I("/api/v1/wizard/state"),Qa()]);li.value=Ja(n.schema),mt.value=n.lastModified,vt.value=n.values,yt.value=n.legacyHints??{},pe.value=e.extendedSteps===!0;const i=Object.keys(e.partial??{});ee.value=i.length>0?{...n.values,...e.partial}:n.values,X.value=ci(e.step),ui.value=!1,_t.value=!0;const r=mn(X.value,{extended:pe.value});(r.kind==="userMd"||r.kind==="review")&&xt(),r.kind==="review"&&wt()}catch(e){e instanceof G?Ae.value=ve(e.body.error??{code:"UNKNOWN",message:e.message}):Ae.value=e instanceof Error?e.message:String(e)}}function Xa(e,n){return e.identity.name.trim()!==""?e:{...e,identity:{...e.identity,name:n}}}async function xt(){if(!zn.value)try{const e=await I("/api/v1/user-md");if(gt.value=e.exists,e.exists&&e.identity!==null){const n=en(e.identity);Z.value=n,M.value=n}else{let n;try{const r=await I("/api/v1/user-md/template");n=en(ft(r.body))}catch{n=_n()}const i=yt.value.user_name;typeof i=="string"&&i.trim()!==""&&(n=Xa(n,i)),Z.value=n,M.value=n}}catch(e){L.value={message:e instanceof Error?e.message:String(e),tone:"error"}}finally{zn.value=!0}}async function eu(e,n){try{await I("/api/v1/wizard/state",{method:"POST",body:{step:e,totalSteps:yn(),partial:n,startedAt:Va(null)}})}catch(i){L.value={message:i instanceof Error?i.message:String(i),tone:"error"}}}async function wt(){cn.value=!0;try{const e=await I("/api/v1/settings/diff",{method:"POST",body:{values:ee.value,ifUnmodifiedSince:mt.value}});gn.value=e.changes,ce.value={}}catch(e){e instanceof G?(ce.value=$e(e.body.error??{message:e.message}),L.value={message:ve(e.body.error??{code:"UNKNOWN",message:e.message}),tone:"error"}):L.value={message:e instanceof Error?e.message:String(e),tone:"error"}}finally{cn.value=!1}}function sn(){return ai.value?!1:M.value===null||Z.value===null?M.value!==Z.value:JSON.stringify(M.value)!==JSON.stringify(Z.value)}async function Ye(e){const n=ci(e);await eu(n,ee.value),X.value=n,L.value=null;const i=mn(n,{extended:pe.value});i.kind==="userMd"&&xt(),i.kind==="review"&&wt()}async function nu(){Wn.value=!0,L.value=null;try{const e={settings:ee.value};sn()&&M.value!==null&&(e.identity=M.value),Ie.value?.projectScopeAvailable===!0&&(e.scope=qn.value);const n=await I("/api/v1/wizard/finish",{method:"POST",body:e}),i="You can close this browser window now.";n.dryRun===!0?L.value={message:`Dry-run complete — no files written. Settings would be saved. ${i}`,tone:"success"}:Array.isArray(n.writtenPaths)?L.value={message:`Saved (${n.writtenPaths.join(", ")}). Wizard complete. ${i}`,tone:"success"}:L.value={message:`Wizard complete. ${i}`,tone:"success"},X.value=ci(yn()-1),vt.value=ee.value,Z.value=sn()?M.value:Z.value,gn.value=[],ui.value=!0}catch(e){e instanceof G?(ce.value=$e(e.body.error??{message:e.message}),L.value={message:ve(e.body.error??{code:"UNKNOWN",message:e.message}),tone:"error"}):L.value={message:e instanceof Error?e.message:String(e),tone:"error"}}finally{Wn.value=!1}}function iu(){const e=mn(X.value,{extended:pe.value});if(e.kind==="form"){const n=Ha(li.value,e.paths??[]);return f(yr,{schema:n,values:ee.value,errors:ce.value,onChange:i=>{ee.value=i}})}return e.kind==="userMd"?!zn.value||M.value===null?f("p",{children:"Loading .agent-user.yml…"}):f(wr,{value:M.value,errors:ce.value,onChange:n=>{M.value=n,ai.value=!1}}):e.kind==="aiTools"?f("div",{class:"ac-wizard-step-stub",children:f("p",{children:["Auto-detected AI tools will appear here. The wizard reads",f("code",{children:" /api/v1/wizard/auto-detect"})," and lets you toggle each discovered tool on or off. Pick-list UI lands in the follow-up extended-mode phase; the endpoint is already live so you can inspect raw output via ",f("code",{children:"curl"})," in the meantime."]})}):e.kind==="packs"?f("div",{class:"ac-wizard-step-stub",children:f("p",{children:["Capability packs (founder-strategy, finance-basic, gtm-sales, ops-people, ai-video) will appear here. The wizard reads",f("code",{children:" /api/v1/wizard/manifest"})," and lets you toggle each pack on or off. Selection UI lands in the follow-up phase."]})}):f(Ga,{steps:bt(),currentIndex:X.value,changes:gn.value,errors:ce.value,userMdChanged:sn(),userMdAction:gt.value?"replace":"create",loading:cn.value,onJump:n=>{Ye(n)},scope:qn.value,scopeAvailable:Ie.value?.projectScopeAvailable===!0,onScopeChange:n=>{qn.value=n}})}function ru({path:e}){if(pn(()=>{Za()},[]),!_t.value||li.value===null)return f("div",{class:"ac-page",children:[f("h1",{children:"Setup wizard"}),Ae.value!==null?f("p",{class:"ac-banner ac-banner--error",children:Ae.value}):f("p",{children:"Loading…"})]});const n=X.value,i=yn(),r=mn(n,{extended:pe.value}),t=n===i-1;return f("div",{class:"ac-page",children:[f(Ya,{step:r,index:n,total:i}),L.value!==null?f("p",{class:`ac-banner${L.value.tone==="error"?" ac-banner--error":""}`,children:L.value.message}):null,f("div",{class:"ac-wizard__step",children:f(iu,{})}),f(Wa,{canGoPrev:n>0,canGoNext:!t,canSkip:r.kind==="userMd",isLast:t,busy:Wn.value||cn.value,canFinish:gn.value.length>0||sn(),completed:ui.value,onPrev:()=>{Ye(n-1)},onNext:()=>{Ye(n+1)},onSkip:()=>{ai.value=!0,Ye(n+1)},onFinish:()=>{nu()}})]})}function tu({path:e}){return f("div",{class:"ac-page ac-page--error",children:[f("h1",{children:"Page not found"}),f("p",{children:["Nothing routed to ",f("code",{children:e}),". Try ",f("a",{href:"#/settings",children:"Settings"}),"."]})]})}function ou(){const e=Ie.value;return e===null||e.dryRun!==!0?null:f("div",{class:"ac-dryrun-banner",role:"status","aria-live":"polite",children:[f("strong",{children:"DRY RUN"}),f("span",{children:" · no files will be written. Validation + rendering run normally; commits return a preview."})]})}function lu(){pn(()=>{zt(),Ln.value==="/"&&Wt("/settings"),Da()},[]);const e=Ln.value;let n;return e==="/"||e==="/settings"?n=f(ao,{}):e==="/settings/user"?n=f(Pa,{}):e.startsWith("/wizard")?n=f(ru,{path:e}):n=f(tu,{path:e}),f(K,{children:[f(ou,{}),n]})}function au(){return new URLSearchParams(window.location.search).get("token")}function uu(){const e=document.getElementById("app");if(e===null)return;const n=au();if(n===null){e.textContent="agent-config UI · missing token — re-open via `agent-config ui:serve`.";return}qt(n),e.textContent="",Ot(f(lu,{}),e)}uu();
35
+ //# sourceMappingURL=index-D-DY1ywI.js.map