@starlein/paperclip-plugin-company-wizard 0.2.4 → 0.3.18

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 (56) hide show
  1. package/README.md +59 -3
  2. package/dist/manifest.js +4 -5
  3. package/dist/manifest.js.map +2 -2
  4. package/dist/ui/index.css +563 -578
  5. package/dist/ui/index.css.map +2 -2
  6. package/dist/ui/index.js +1151 -559
  7. package/dist/ui/index.js.map +4 -4
  8. package/dist/worker.js +702 -253
  9. package/dist/worker.js.map +4 -4
  10. package/package.json +12 -7
  11. package/templates/ai-wizard/config-format.md +12 -4
  12. package/templates/ai-wizard/interview-system.md +3 -2
  13. package/templates/ai-wizard/messages.json +1 -1
  14. package/templates/ai-wizard/single-shot-system.md +4 -0
  15. package/templates/bootstrap-instructions.md +12 -2
  16. package/templates/modules/auto-assign/agents/ceo/heartbeat-section.md +1 -1
  17. package/templates/modules/auto-assign/agents/ceo/skills/auto-assign.fallback.md +1 -1
  18. package/templates/modules/auto-assign/agents/product-owner/heartbeat-section.md +1 -1
  19. package/templates/modules/auto-assign/module.meta.json +1 -1
  20. package/templates/modules/auto-assign/skills/auto-assign.md +1 -1
  21. package/templates/modules/backlog/module.meta.json +4 -3
  22. package/templates/modules/build-api/module.meta.json +1 -0
  23. package/templates/modules/ci-cd/module.meta.json +2 -1
  24. package/templates/modules/game-design/module.meta.json +18 -0
  25. package/templates/modules/game-design/skills/audio-design.fallback.md +16 -0
  26. package/templates/modules/game-design/skills/audio-design.md +28 -0
  27. package/templates/modules/game-design/skills/level-design.fallback.md +17 -0
  28. package/templates/modules/game-design/skills/level-design.md +29 -0
  29. package/templates/modules/github-repo/README.md +1 -0
  30. package/templates/modules/github-repo/module.meta.json +5 -2
  31. package/templates/modules/pr-review/README.md +5 -5
  32. package/templates/modules/pr-review/agents/code-reviewer/skills/code-review.md +7 -6
  33. package/templates/modules/pr-review/agents/devops/skills/infra-review.md +6 -6
  34. package/templates/modules/pr-review/agents/engineer/skills/pr-workflow.md +11 -6
  35. package/templates/modules/pr-review/agents/product-owner/skills/product-review.md +7 -6
  36. package/templates/modules/pr-review/agents/qa/skills/qa-review.md +6 -6
  37. package/templates/modules/pr-review/agents/ui-designer/skills/design-review.md +6 -6
  38. package/templates/modules/pr-review/agents/ux-researcher/skills/ux-review.md +6 -6
  39. package/templates/modules/pr-review/docs/pr-conventions.md +16 -15
  40. package/templates/modules/pr-review/module.meta.json +8 -3
  41. package/templates/modules/stall-detection/module.meta.json +1 -1
  42. package/templates/modules/website-relaunch/module.meta.json +2 -1
  43. package/templates/presets/build-game/preset.meta.json +2 -1
  44. package/templates/presets/content/preset.meta.json +3 -1
  45. package/templates/presets/full/preset.meta.json +1 -0
  46. package/templates/presets/gtm/preset.meta.json +3 -1
  47. package/templates/presets/launch-pack/preset.meta.json +1 -0
  48. package/templates/presets/quality/preset.meta.json +2 -1
  49. package/templates/presets/repo-maintenance/preset.meta.json +2 -1
  50. package/templates/presets/secure/preset.meta.json +1 -0
  51. package/templates/roles/security-engineer/role.meta.json +1 -1
  52. package/templates/roles/cfo/AGENTS.md +0 -31
  53. package/templates/roles/cfo/HEARTBEAT.md +0 -37
  54. package/templates/roles/cfo/SOUL.md +0 -17
  55. package/templates/roles/cfo/TOOLS.md +0 -3
  56. package/templates/roles/cfo/role.meta.json +0 -17
package/README.md CHANGED
@@ -14,6 +14,60 @@
14
14
 
15
15
  ---
16
16
 
17
+ > **Fork:** This is a community-maintained fork of [yesterday-AI/paperclip-plugin-company-wizard](https://github.com/yesterday-AI/paperclip-plugin-company-wizard), updated for the current Paperclip API (`>=2026.529.0`) with substantial bug fixes. End-to-end company setup is largely functional as of v0.3.18.
18
+
19
+ <details>
20
+ <summary><strong>What changed vs. upstream</strong></summary>
21
+
22
+ #### Paperclip API compatibility
23
+
24
+ - Bootstrap metadata fields renamed to match the Paperclip API exactly: `parentId`, `assigneeAgentId`, `projectId`, `goalIds`
25
+ - CEO is provisioned with correct `capabilities` metadata so newly created CEOs are no longer saved with empty summaries
26
+ - `@paperclipai/plugin-sdk` and `@paperclipai/shared` declared as `peerDependencies` with minimum version `>=2026.529.0` — the host provides the SDK at runtime (externalized from the bundle)
27
+ - `security-engineer` role now maps to the dedicated Paperclip `security` enum value (was `general`)
28
+
29
+ #### Bootstrap reliability
30
+
31
+ - **Agents provisioned with complete instructions** — every non-CEO agent is now created by the plugin directly with its full `instructionsBundle` (AGENTS.md + HEARTBEAT/SOUL/TOOLS + skills). Previously the CEO created these agents during bootstrap with only an `instructionsFilePath`, leaving each agent with a bare AGENTS.md and fragile external path references
32
+ - **Routines created directly during provisioning** — Paperclip only allows an agent to create routines assigned to itself, so the CEO could not create routines owned by the Product Owner. The plugin now creates all routines with board authority at provisioning time; BOOTSTRAP.md tells the CEO they already exist
33
+ - **Worker agents no longer run always-on heartbeats** — enabling heartbeats on every provisioned agent caused bursts of concurrent runs that crashed the dev server. Only the CEO keeps an always-on heartbeat; all other agents are woken on assignment
34
+ - **Fresh local repos no longer bootstrap with isolated git worktrees** — provisioning a brand-new `local_path` project with an `isolated_workspace` / `git_worktree` policy made worker agents try to branch off `main` before the repo existed, so early runs failed and agents flipped to `error`. The isolated policy is now suppressed for fresh local repos (agents work in the shared project workspace during bootstrap); existing external repos keep it. Guarded in `assemble.js` and removed at the source in `StepRepository` and the AI wizard prompts
35
+ - **Workspace isolation follows Paperclip instance settings** — `enableIsolatedWorktrees` is no longer a plugin setting. The wizard reads `enableIsolatedWorkspaces` from the Paperclip instance experimental settings and only applies `isolated_workspace` / `git_worktree` for external repositories when that setting is enabled.
36
+ - Bootstrap ordering hardened; agent filter bug fixed (v0.3.7)
37
+
38
+ #### Assembly and template fixes
39
+
40
+ - **Broken `$AGENT_HOME` references** rewritten to absolute paths under `companyDir/agents/<role>/` and `companyDir/docs/` — `AGENT_HOME` points to a per-agent workspace dir that does not contain provisioned files
41
+ - **Shared docs scoped per role** — each agent's AGENTS.md now lists only docs from modules relevant to that role (CEO still sees all); previously every agent was told to read every module's docs
42
+ - **Doc references use relative paths** (`docs/<file>`) instead of absolute paths that baked in the collision-suffixed company directory name
43
+ - Duplicate bootstrap issues (same title from module + preset) are now deduplicated; preset issue wins
44
+ - CFO role removed — was orphaned (no preset, no capability, never activated)
45
+
46
+ #### AI wizard
47
+
48
+ - Config generation uses `claude-opus-4-8` with `max_tokens: 32768` so a full-spec config is never truncated mid-JSON
49
+ - All Anthropic calls run as background jobs in the worker (start + poll), eliminating the 30 s RPC timeout that previously crashed config generation
50
+ - AI wizard now generates domain-specific initial issues from the project brief that lead the bootstrap backlog ahead of generic scaffolding issues
51
+ - Preset roles are defensively merged with AI-selected roles so preset roles are no longer silently dropped
52
+
53
+ #### Error handling
54
+
55
+ - All worker actions return `{ error }` instead of throwing — prevents the plugin host from swallowing error messages in generic 502 responses
56
+ - Network errors in `PaperclipClient` are caught and surfaced with actionable messages referencing the `paperclipUrl` plugin setting
57
+
58
+ #### New features (not in upstream)
59
+
60
+ - **Existing-company provisioning** — target an existing Paperclip company instead of creating a new one (`existingCompanyId`); partial-failure cleanup never deletes existing companies
61
+ - **Approval-aware agent hiring** — detects board-approval requirements, falls back to `/agent-hires` + auto-approve; surfaces pending approval ID if auto-approve fails
62
+ - **`disableBoardApprovalOnNewCompanies` setting** — optionally patches new companies to skip board approval for fully-autonomous bootstrap
63
+ - **Repository workspace setup** — choose between a fresh local Git repo or an existing external repository (GitHub, GitLab, etc.) via the manual wizard step or inline on the review/summary screen (available in both the manual and AI paths; the external option opens a repo-URL field)
64
+ - **Routine schedules** tightened to run every few hours around the clock (auto-assign every 2 h, stall-detection every 3 h, backlog grooming every 4 h) with `skip_if_active` concurrency policy
65
+ - **"Update templates" button** on the onboarding screen — deletes the cached templates dir and re-downloads from GitHub without restarting the plugin
66
+
67
+ </details>
68
+
69
+ ---
70
+
17
71
  **Company Wizard** is a [Paperclip](https://github.com/paperclipai/paperclip) plugin that bootstraps an AI agent company for your project — roles, workflows, skills, and tasks — in a few clicks. Open it from the sidebar, answer a few questions (or just describe your project), and it assembles the workspace files and creates the company + CEO in Paperclip. The CEO then hires the team and sets up the backlog on its first heartbeat.
18
72
 
19
73
  <br>
@@ -59,6 +113,8 @@ Walk through the steps yourself: name your company, set a goal, pick a preset, a
59
113
 
60
114
  Before provisioning, you can **open any generated file and edit it inline** — tweak a persona, adjust a workflow, or add role-specific context.
61
115
 
116
+ On the review step, repository setup is editable inline (fresh local repo vs external Git repo), and changing this now immediately updates preview/provisioning payloads in that step. Legacy source-mode values are normalized on save so mode switches can be applied reliably even when the configuration came from AI with older `workspaceSourceType` fields.
117
+
62
118
  <br>
63
119
 
64
120
  ## How Roles Work
@@ -424,11 +480,10 @@ Every company starts with just the **CEO** (the only base role). All other roles
424
480
  | **UX Researcher** | `researcher` | CEO | Takes over market-analysis and user-testing |
425
481
  | **CTO** | `cto` | CEO | Technical leadership, architecture oversight |
426
482
  | **CMO** | `cmo` | CEO | Marketing strategy, go-to-market, growth metrics |
427
- | **CFO** | `cfo` | CEO | Financial planning, budget tracking, cost analysis |
428
483
  | **DevOps Engineer** | `devops` | CEO | Takes over ci-cd and monitoring from Engineer |
429
484
  | **QA Engineer** | `qa` | CEO | Takes over user-testing, quality gates |
430
485
  | **Technical Writer** | `general` | CEO | Takes over documentation, adds doc review pass |
431
- | **Security Engineer** | `general` | CEO | Takes over security-audit, adds security review pass |
486
+ | **Security Engineer** | `security` | CEO | Takes over security-audit, adds security review pass |
432
487
  | **Customer Success** | `general` | CEO | Takes over competitive-intel customer analysis |
433
488
  | **Game Designer** | `pm` | CEO | Takes over game-design from Engineer, playtesting focus |
434
489
  | **Level Designer** | `pm` | CEO | Takes over level-specific design from Game Designer |
@@ -520,6 +575,7 @@ Configure the plugin via **Settings → Plugins → Company Wizard** in the Pape
520
575
  | `paperclipPassword` | No | Board login password. Stored as a secret ref. |
521
576
  | `anthropicApiKey` | No | Anthropic API key for AI wizard mode. Stored as a secret ref. Required to use the AI-powered setup path. |
522
577
  | `disableBoardApprovalOnNewCompanies` | No | If `true`, the wizard PATCHes new companies to set `requireBoardApprovalForNewAgents=false` during provisioning. Leave `false` to preserve approval-gated hiring. Defaults to `false`. |
578
+ For isolated worktrees: there is no plugin setting. The policy is controlled by Paperclip instance settings under **Settings → Instance → Experimental → enableIsolatedWorkspaces** and is consumed by the plugin during provisioning.
523
579
 
524
580
  <br>
525
581
 
@@ -686,7 +742,7 @@ templates/roles/<name>/
686
742
  | `base` | `true` for always-present roles (ceo only) |
687
743
  | `division` | Grouping: `leadership`, `engineering`, `design`, `product` |
688
744
  | `tagline` | One-liner for wizard UX and AI selection |
689
- | `paperclipRole` | Paperclip enum: `ceo`, `engineer`, `pm`, `qa`, `designer`, `cto`, `cmo`, `cfo`, `devops`, `researcher`, `general` |
745
+ | `paperclipRole` | Paperclip enum: `ceo`, `engineer`, `pm`, `qa`, `designer`, `cto`, `cmo`, `cfo`, `security`, `devops`, `researcher`, `general` |
690
746
  | `adapter` | Passed to `adapterConfig` during provisioning |
691
747
 
692
748
  </details>
package/dist/manifest.js CHANGED
@@ -2,7 +2,7 @@
2
2
  var manifest = {
3
3
  id: "starlein.paperclip-plugin-company-wizard",
4
4
  apiVersion: 1,
5
- version: "0.2.4",
5
+ version: "0.3.18",
6
6
  displayName: "Company Wizard",
7
7
  description: "AI-powered wizard to bootstrap agent companies from composable templates",
8
8
  author: "starlein",
@@ -18,6 +18,7 @@ var manifest = {
18
18
  "projects.read",
19
19
  "plugin.state.read",
20
20
  "plugin.state.write",
21
+ "secrets.read-ref",
21
22
  "events.subscribe",
22
23
  "ui.page.register",
23
24
  "ui.sidebar.register"
@@ -40,8 +41,7 @@ var manifest = {
40
41
  },
41
42
  anthropicApiKey: {
42
43
  type: "string",
43
- format: "secret-ref",
44
- description: "Anthropic API key for the AI wizard. Required to use the AI-powered company setup path."
44
+ description: "Anthropic API key for the AI wizard (e.g. sk-ant-...). Required to use the AI-powered company setup path."
45
45
  },
46
46
  paperclipUrl: {
47
47
  type: "string",
@@ -53,8 +53,7 @@ var manifest = {
53
53
  },
54
54
  paperclipPassword: {
55
55
  type: "string",
56
- format: "secret-ref",
57
- description: "Board login password."
56
+ description: "Board login password (for authenticated instances)."
58
57
  },
59
58
  disableBoardApprovalOnNewCompanies: {
60
59
  type: "boolean",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/manifest.ts"],
4
- "sourcesContent": ["import type { PaperclipPluginManifestV1 } from '@paperclipai/plugin-sdk';\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: 'starlein.paperclip-plugin-company-wizard',\n apiVersion: 1,\n version: '0.2.4',\n displayName: 'Company Wizard',\n description: 'AI-powered wizard to bootstrap agent companies from composable templates',\n author: 'starlein',\n categories: ['workspace', 'ui'],\n capabilities: [\n 'companies.read',\n 'issues.create',\n 'issues.read',\n 'issues.update',\n 'goals.create',\n 'goals.read',\n 'agents.read',\n 'projects.read',\n 'plugin.state.read',\n 'plugin.state.write',\n 'events.subscribe',\n 'ui.page.register',\n 'ui.sidebar.register',\n ],\n instanceConfigSchema: {\n type: 'object',\n properties: {\n companiesDir: {\n type: 'string',\n description:\n 'Directory where assembled company workspaces are written. Defaults to ~/.paperclip/instances/default/companies. Override for Docker setups (e.g. /paperclip/instances/default/companies).',\n },\n templatesPath: {\n type: 'string',\n description:\n 'Path to the templates directory. Defaults to ~/.paperclip/plugin-templates (auto-downloaded from templatesRepoUrl if missing). Override for Docker setups (e.g. /paperclip/plugin-templates).',\n },\n templatesRepoUrl: {\n type: 'string',\n default: 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates',\n description:\n 'GitHub tree URL to pull templates from when the templates directory does not exist.',\n },\n anthropicApiKey: {\n type: 'string',\n format: 'secret-ref',\n description:\n 'Anthropic API key for the AI wizard. Required to use the AI-powered company setup path.',\n },\n paperclipUrl: {\n type: 'string',\n description:\n 'Paperclip instance URL. Defaults to http://localhost:3100 or the PAPERCLIP_PUBLIC_URL env var.',\n },\n paperclipEmail: {\n type: 'string',\n description: 'Board login email (for authenticated instances).',\n },\n paperclipPassword: {\n type: 'string',\n format: 'secret-ref',\n description: 'Board login password.',\n },\n disableBoardApprovalOnNewCompanies: {\n type: 'boolean',\n default: false,\n description:\n 'Optional. If true, the wizard will PATCH new companies to set requireBoardApprovalForNewAgents=false during provisioning. Leave false to preserve approval-gated hiring policies.',\n },\n },\n },\n entrypoints: {\n worker: './dist/worker.js',\n ui: './dist/ui',\n },\n ui: {\n slots: [\n {\n type: 'page',\n id: 'company-wizard',\n displayName: 'Company Wizard',\n exportName: 'WizardPage',\n routePath: 'company-creator',\n },\n {\n type: 'sidebar',\n id: 'company-wizard-link',\n displayName: 'Create Company',\n exportName: 'SidebarLink',\n },\n ],\n },\n};\n\nexport default manifest;\n"],
5
- "mappings": ";AAEA,IAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,IAAI;AAAA,EAC9B,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,aACE;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,mBAAmB;AAAA,QACjB,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,aAAa;AAAA,MACf;AAAA,MACA,oCAAoC;AAAA,QAClC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,IAAI;AAAA,EACN;AAAA,EACA,IAAI;AAAA,IACF,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;",
4
+ "sourcesContent": ["import type { PaperclipPluginManifestV1 } from '@paperclipai/plugin-sdk';\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: 'starlein.paperclip-plugin-company-wizard',\n apiVersion: 1,\n version: '0.3.18',\n displayName: 'Company Wizard',\n description: 'AI-powered wizard to bootstrap agent companies from composable templates',\n author: 'starlein',\n categories: ['workspace', 'ui'],\n capabilities: [\n 'companies.read',\n 'issues.create',\n 'issues.read',\n 'issues.update',\n 'goals.create',\n 'goals.read',\n 'agents.read',\n 'projects.read',\n 'plugin.state.read',\n 'plugin.state.write',\n 'secrets.read-ref',\n 'events.subscribe',\n 'ui.page.register',\n 'ui.sidebar.register',\n ],\n instanceConfigSchema: {\n type: 'object',\n properties: {\n companiesDir: {\n type: 'string',\n description:\n 'Directory where assembled company workspaces are written. Defaults to ~/.paperclip/instances/default/companies. Override for Docker setups (e.g. /paperclip/instances/default/companies).',\n },\n templatesPath: {\n type: 'string',\n description:\n 'Path to the templates directory. Defaults to ~/.paperclip/plugin-templates (auto-downloaded from templatesRepoUrl if missing). Override for Docker setups (e.g. /paperclip/plugin-templates).',\n },\n templatesRepoUrl: {\n type: 'string',\n default: 'https://github.com/starlein/paperclip-plugin-company-wizard/tree/main/templates',\n description:\n 'GitHub tree URL to pull templates from when the templates directory does not exist.',\n },\n anthropicApiKey: {\n type: 'string',\n description:\n 'Anthropic API key for the AI wizard (e.g. sk-ant-...). Required to use the AI-powered company setup path.',\n },\n paperclipUrl: {\n type: 'string',\n description:\n 'Paperclip instance URL. Defaults to http://localhost:3100 or the PAPERCLIP_PUBLIC_URL env var.',\n },\n paperclipEmail: {\n type: 'string',\n description: 'Board login email (for authenticated instances).',\n },\n paperclipPassword: {\n type: 'string',\n description: 'Board login password (for authenticated instances).',\n },\n disableBoardApprovalOnNewCompanies: {\n type: 'boolean',\n default: false,\n description:\n 'Optional. If true, the wizard will PATCH new companies to set requireBoardApprovalForNewAgents=false during provisioning. Leave false to preserve approval-gated hiring policies.',\n },\n },\n },\n entrypoints: {\n worker: './dist/worker.js',\n ui: './dist/ui',\n },\n ui: {\n slots: [\n {\n type: 'page',\n id: 'company-wizard',\n displayName: 'Company Wizard',\n exportName: 'WizardPage',\n routePath: 'company-creator',\n },\n {\n type: 'sidebar',\n id: 'company-wizard-link',\n displayName: 'Create Company',\n exportName: 'SidebarLink',\n },\n ],\n },\n};\n\nexport default manifest;\n"],
5
+ "mappings": ";AAEA,IAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY,CAAC,aAAa,IAAI;AAAA,EAC9B,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,cAAc;AAAA,QACZ,MAAM;AAAA,QACN,aACE;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,mBAAmB;AAAA,QACjB,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA,oCAAoC;AAAA,QAClC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,IAAI;AAAA,EACN;AAAA,EACA,IAAI;AAAA,IACF,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MACb;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;",
6
6
  "names": []
7
7
  }