@grant-vine/wunderkind 0.10.7 → 0.11.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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +19 -0
- package/agents/ciso.md +44 -15
- package/agents/creative-director.md +18 -111
- package/agents/fullstack-wunderkind.md +50 -9
- package/agents/legal-counsel.md +14 -85
- package/agents/marketing-wunderkind.md +20 -117
- package/agents/product-wunderkind.md +40 -14
- package/commands/design-md.md +49 -0
- package/dist/agents/ciso.d.ts.map +1 -1
- package/dist/agents/ciso.js +4 -28
- package/dist/agents/ciso.js.map +1 -1
- package/dist/agents/creative-director.d.ts.map +1 -1
- package/dist/agents/creative-director.js +4 -150
- package/dist/agents/creative-director.js.map +1 -1
- package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
- package/dist/agents/fullstack-wunderkind.js +4 -33
- package/dist/agents/fullstack-wunderkind.js.map +1 -1
- package/dist/agents/legal-counsel.d.ts.map +1 -1
- package/dist/agents/legal-counsel.js +4 -116
- package/dist/agents/legal-counsel.js.map +1 -1
- package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
- package/dist/agents/marketing-wunderkind.js +4 -163
- package/dist/agents/marketing-wunderkind.js.map +1 -1
- package/dist/agents/product-wunderkind.d.ts.map +1 -1
- package/dist/agents/product-wunderkind.js +4 -36
- package/dist/agents/product-wunderkind.js.map +1 -1
- package/dist/agents/shared-prompt-sections.d.ts +2 -0
- package/dist/agents/shared-prompt-sections.d.ts.map +1 -1
- package/dist/agents/shared-prompt-sections.js +16 -0
- package/dist/agents/shared-prompt-sections.js.map +1 -1
- package/dist/agents/slash-commands.d.ts +189 -0
- package/dist/agents/slash-commands.d.ts.map +1 -0
- package/dist/agents/slash-commands.js +274 -0
- package/dist/agents/slash-commands.js.map +1 -0
- package/dist/cli/cli-installer.d.ts.map +1 -1
- package/dist/cli/cli-installer.js +6 -0
- package/dist/cli/cli-installer.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +39 -3
- package/dist/cli/config-manager/index.js.map +1 -1
- package/dist/cli/design-md-helper.d.ts +12 -0
- package/dist/cli/design-md-helper.d.ts.map +1 -0
- package/dist/cli/design-md-helper.js +114 -0
- package/dist/cli/design-md-helper.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +110 -1
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.js +32 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +4 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +135 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/mcp-adapters.d.ts +24 -0
- package/dist/cli/mcp-adapters.d.ts.map +1 -0
- package/dist/cli/mcp-adapters.js +27 -0
- package/dist/cli/mcp-adapters.js.map +1 -0
- package/dist/cli/mcp-helpers.d.ts +5 -0
- package/dist/cli/mcp-helpers.d.ts.map +1 -0
- package/dist/cli/mcp-helpers.js +120 -0
- package/dist/cli/mcp-helpers.js.map +1 -0
- package/dist/cli/types.d.ts +12 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/uninstall.d.ts +3 -0
- package/dist/cli/uninstall.d.ts.map +1 -1
- package/dist/cli/uninstall.js +104 -0
- package/dist/cli/uninstall.js.map +1 -1
- package/package.json +1 -1
- package/schemas/wunderkind.config.schema.json +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legal-counsel.d.ts","sourceRoot":"","sources":["../../src/agents/legal-counsel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"legal-counsel.d.ts","sourceRoot":"","sources":["../../src/agents/legal-counsel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,sBAAsB,EAAE,mBAwBpC,CAAA;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA6GlE;yBA7Ge,uBAAuB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createAgentToolRestrictions } from "./types.js";
|
|
2
|
-
import { buildPersistentContextSection,
|
|
2
|
+
import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
3
|
+
import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
|
|
3
4
|
const MODE = "all";
|
|
4
5
|
export const LEGAL_COUNSEL_METADATA = {
|
|
5
6
|
category: "specialist",
|
|
@@ -38,7 +39,7 @@ export function createLegalCounselAgent(model) {
|
|
|
38
39
|
blockers: "ambiguous license terms requiring external counsel, missing regulatory clarity, unresolved IP questions",
|
|
39
40
|
});
|
|
40
41
|
const soulMaintenanceSection = buildSoulMaintenanceSection();
|
|
41
|
-
const
|
|
42
|
+
const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["legal-counsel"]);
|
|
42
43
|
return {
|
|
43
44
|
description: "USE FOR: legal counsel, general counsel, legal advice, OSS license, open source license, MIT license, Apache 2.0, GPL, LGPL, AGPL, copyleft, SPDX, license compatibility, license compliance, license audit, third-party license, dependency license, terms of service, TOS, terms and conditions, privacy policy, privacy notice, GDPR privacy, CCPA privacy, data processing agreement, DPA, data protection agreement, controller processor agreement, contributor license agreement, CLA, individual CLA, corporate CLA, developer certificate of origin, DCO, SaaS agreement, MSA, master service agreement, enterprise agreement, subscription agreement, BAA, business associate agreement, HIPAA BAA, vendor agreement, procurement, contract review, contract negotiation, IP risk, intellectual property, copyright, trademark, patent risk, FOSS compliance, OpenChain, REUSE, regulatory obligation, legal obligation, compliance obligation, data subject rights, right to erasure, right to access, data breach notification obligation, incident response legal, regulatory notification, GDPR article 33, POPIA notification, legal risk, liability, indemnification, limitation of liability, force majeure, governing law, jurisdiction, dispute resolution.",
|
|
44
45
|
mode: MODE,
|
|
@@ -117,120 +118,7 @@ Your mandate: **legal clarity without legal paralysis.**
|
|
|
117
118
|
|
|
118
119
|
---
|
|
119
120
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
${slashCommandHelpSection}
|
|
123
|
-
|
|
124
|
-
### \`/license-audit\`
|
|
125
|
-
Audit all dependencies for license compatibility with the project's own license; flag copyleft risk.
|
|
126
|
-
|
|
127
|
-
**Process:**
|
|
128
|
-
1. Read the project's own license (check LICENSE or package.json \`license\` field)
|
|
129
|
-
2. List all direct dependencies and their SPDX license identifiers
|
|
130
|
-
3. Check for transitive dependencies with problematic licenses (AGPL, GPL)
|
|
131
|
-
4. Build a compatibility matrix: ✅ Compatible / ⚠️ Conditional / ❌ Incompatible
|
|
132
|
-
5. Flag: any AGPL-licensed dependency (network use clause may trigger copyleft for SaaS)
|
|
133
|
-
6. Flag: any GPL-licensed dependency used in ways that may create a derivative work
|
|
134
|
-
7. Recommend: replacement libraries, relicensing options, or isolation strategies
|
|
135
|
-
|
|
136
|
-
**Output:** License audit report with risk matrix + prioritised remediation list.
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
### \`/draft-tos <product>\`
|
|
141
|
-
Draft a Terms of Service for a product.
|
|
142
|
-
|
|
143
|
-
Read \`region\` and \`primaryRegulation\` from \`.wunderkind/wunderkind.config.jsonc\` for required clauses.
|
|
144
|
-
|
|
145
|
-
**Required sections:**
|
|
146
|
-
1. Acceptance of terms (how users agree, age requirements)
|
|
147
|
-
2. Description of service
|
|
148
|
-
3. User accounts and responsibilities
|
|
149
|
-
4. Acceptable use policy (prohibited uses)
|
|
150
|
-
5. Intellectual property (who owns what)
|
|
151
|
-
6. Payment terms (if applicable)
|
|
152
|
-
7. Disclaimers and limitation of liability
|
|
153
|
-
8. Indemnification
|
|
154
|
-
9. Governing law and jurisdiction
|
|
155
|
-
10. Changes to terms (notice requirements — varies by jurisdiction)
|
|
156
|
-
11. Termination
|
|
157
|
-
|
|
158
|
-
**Jurisdiction-specific additions:**
|
|
159
|
-
- EU/GDPR: GDPR-compliant data processing reference, right to withdraw consent
|
|
160
|
-
- UK: UK GDPR alignment, Consumer Rights Act considerations
|
|
161
|
-
- California: CCPA rights reference, automatic renewal law compliance
|
|
162
|
-
- Australia: Australian Consumer Law mandatory guarantees
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
### \`/draft-privacy-policy\`
|
|
167
|
-
Draft a Privacy Policy.
|
|
168
|
-
|
|
169
|
-
Read \`primaryRegulation\` for required sections (GDPR Article 13, POPIA Section 18, CCPA 1798.100, etc.).
|
|
170
|
-
|
|
171
|
-
**Core sections (all jurisdictions):**
|
|
172
|
-
1. Who we are (identity and contact details of data controller)
|
|
173
|
-
2. What data we collect (categories, sources)
|
|
174
|
-
3. How we use it (purposes and legal bases)
|
|
175
|
-
4. Who we share it with (third parties, processors, transfers)
|
|
176
|
-
5. How long we keep it (retention periods per category)
|
|
177
|
-
6. Your rights (list applicable rights for the jurisdiction)
|
|
178
|
-
7. How to exercise your rights (contact method, response time)
|
|
179
|
-
8. Cookies and tracking (consent requirements vary by jurisdiction)
|
|
180
|
-
9. Changes to this policy
|
|
181
|
-
10. Contact us
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
### \`/review-contract <type>\`
|
|
186
|
-
Review a provided contract excerpt for red flags.
|
|
187
|
-
|
|
188
|
-
**Red flags to check:**
|
|
189
|
-
- Unfavourable IP assignment (assigning all IP rather than licensing)
|
|
190
|
-
- Unlimited or uncapped liability
|
|
191
|
-
- Unilateral right to modify terms without notice
|
|
192
|
-
- Broad indemnification clauses
|
|
193
|
-
- Auto-renewal without adequate notice period
|
|
194
|
-
- Jurisdiction in an inconvenient or hostile forum
|
|
195
|
-
- Missing data security obligations (for contracts involving personal data)
|
|
196
|
-
- Missing limitation of liability clause
|
|
197
|
-
- Perpetual, irrevocable licence grants without adequate consideration
|
|
198
|
-
|
|
199
|
-
**Output:** Red flag list with: clause, risk level (Critical/High/Medium/Low), recommended alternative language.
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
### \`/cla-setup\`
|
|
204
|
-
Recommend CLA vs DCO approach for an OSS project; draft the chosen document.
|
|
205
|
-
|
|
206
|
-
**Decision framework:**
|
|
207
|
-
- **DCO** (recommended for most OSS): simpler, git-based (\`Signed-off-by\`), no infrastructure needed, good for projects that don't expect commercial contributors
|
|
208
|
-
- **Individual CLA**: when you need explicit patent grants, IP assignment clarity, or company-specific terms
|
|
209
|
-
- **Corporate CLA**: when companies contribute on behalf of employees and need entity-level agreement
|
|
210
|
-
|
|
211
|
-
**Factors favouring CLA:**
|
|
212
|
-
- Project may be commercialised or relicensed in future
|
|
213
|
-
- You need patent licence grants beyond what DCO provides
|
|
214
|
-
- Enterprise contributors require formal agreements
|
|
215
|
-
|
|
216
|
-
**Factors favouring DCO:**
|
|
217
|
-
- Lower friction for contributors (no click-wrap process)
|
|
218
|
-
- GitHub DCO check bot is simple to set up
|
|
219
|
-
- Apache Software Foundation, Linux Foundation projects use it successfully
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## Delegation Patterns
|
|
224
|
-
|
|
225
|
-
When the question is about technical security controls, audit evidence, or implementation:
|
|
226
|
-
|
|
227
|
-
Escalate to \`wunderkind:ciso\` directly.
|
|
228
|
-
|
|
229
|
-
When the question is about incident response execution or SLO breach:
|
|
230
|
-
|
|
231
|
-
Escalate to \`wunderkind:fullstack-wunderkind\` directly.
|
|
232
|
-
|
|
233
|
-
(Legal Counsel is fully advisory — no sub-skill delegation via \`task()\`.)
|
|
121
|
+
${slashCommandsSection}
|
|
234
122
|
|
|
235
123
|
---
|
|
236
124
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legal-counsel.js","sourceRoot":"","sources":["../../src/agents/legal-counsel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,
|
|
1
|
+
{"version":3,"file":"legal-counsel.js","sourceRoot":"","sources":["../../src/agents/legal-counsel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,wJAAwJ;SAC3J;KACF;IACD,OAAO,EAAE;QACP,sEAAsE;QACtE,sFAAsF;QACtF,4CAA4C;QAC5C,6EAA6E;QAC7E,+DAA+D;QAC/D,qEAAqE;KACtE;IACD,SAAS,EAAE;QACT,sFAAsF;QACtF,oGAAoG;QACpG,iEAAiE;KAClE;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4FAA4F;QACvG,SAAS,EAAE,+FAA+F;QAC1G,QAAQ,EAAE,yGAAyG;KACpH,CAAC,CAAA;IACF,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,eAAe,CAAC,CAAC,CAAA;IAEvG,OAAO;QACL,WAAW,EACT,gtCAAgtC;QACltC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEtB,oBAAoB;;;;EAIpB,wBAAwB;;;;;;;;2GAQiF;KACxG,CAAA;AACH,CAAC;AAED,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketing-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"marketing-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,6BAA6B,EAAE,mBAyB3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAmHzE;yBAnHe,8BAA8B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createAgentToolRestrictions } from "./types.js";
|
|
2
|
-
import { buildPersistentContextSection,
|
|
2
|
+
import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
3
|
+
import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
|
|
3
4
|
const MODE = "all";
|
|
4
5
|
export const MARKETING_WUNDERKIND_METADATA = {
|
|
5
6
|
category: "specialist",
|
|
@@ -39,7 +40,7 @@ export function createMarketingWunderkindAgent(model) {
|
|
|
39
40
|
blockers: "approval bottlenecks, missing assets, unclear product details, access gaps for live audits",
|
|
40
41
|
});
|
|
41
42
|
const soulMaintenanceSection = buildSoulMaintenanceSection();
|
|
42
|
-
const
|
|
43
|
+
const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["marketing-wunderkind"]);
|
|
43
44
|
return {
|
|
44
45
|
description: "USE FOR: brand strategy, go-to-market, positioning, messaging, content strategy, SEO, SEM, paid media, lifecycle marketing, attribution, CRO, PR, press releases, thought leadership, community strategy, forum strategy, ambassador programs, sponsorships, events, creator partnerships, social media strategy, launch planning, product marketing, developer advocacy, developer education strategy, docs-led launches, API docs planning, tutorials, migration guides, onboarding journeys, DX audits, time-to-first-value improvement, open source community programs, newsletter strategy, competitor analysis, audience research, retention strategy, funnel analysis, campaign performance analysis, marketing measurement, channel ROI interpretation, brand-community ROI gating.",
|
|
45
46
|
mode: MODE,
|
|
@@ -127,167 +128,7 @@ Your north star: **make the right audience care, convert, and succeed.**
|
|
|
127
128
|
|
|
128
129
|
---
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
${slashCommandHelpSection}
|
|
133
|
-
|
|
134
|
-
### \`/gtm-plan <product>\`
|
|
135
|
-
Build a full go-to-market strategy for a product, feature, or release.
|
|
136
|
-
|
|
137
|
-
1. Define target audience segments and their jobs-to-be-done
|
|
138
|
-
2. Develop positioning and message hierarchy
|
|
139
|
-
3. Map the journey from awareness to activation to retention
|
|
140
|
-
4. Select channels, community touchpoints, and launch assets
|
|
141
|
-
5. Set timeline, budget, and measurement framework
|
|
142
|
-
6. Identify docs, onboarding, or migration assets needed for adoption
|
|
143
|
-
|
|
144
|
-
**Output:** structured GTM document with positioning, launch plan, channel mix, docs dependencies, and success metrics.
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
### \`/content-calendar <platform> <period>\`
|
|
149
|
-
Generate a content calendar for a specific platform and time period.
|
|
150
|
-
|
|
151
|
-
Load the \`social-media-maven\` sub-skill for platform-specific execution:
|
|
152
|
-
|
|
153
|
-
\`\`\`typescript
|
|
154
|
-
task(
|
|
155
|
-
category="unspecified-high",
|
|
156
|
-
load_skills=["social-media-maven"],
|
|
157
|
-
description="Generate content calendar for [platform] over [period]",
|
|
158
|
-
prompt="Create a detailed content calendar for [platform] covering [period]. Include post types, themes, copy drafts, hashtag sets, and optimal posting times. Align with brand voice and current campaign goals.",
|
|
159
|
-
run_in_background=false
|
|
160
|
-
)
|
|
161
|
-
\`\`\`
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
### \`/community-audit\`
|
|
166
|
-
Audit community presence across owned and external channels.
|
|
167
|
-
|
|
168
|
-
1. List all active community touchpoints and platform purpose
|
|
169
|
-
2. Measure health: activity, response time, contribution quality, retention, and moderation posture
|
|
170
|
-
3. Identify which spaces are growing, stagnant, or not worth continued investment
|
|
171
|
-
4. Map how community programs connect to launches, product feedback, and customer trust
|
|
172
|
-
5. Recommend quick wins, medium-term fixes, and sunset candidates
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
### \`/thought-leadership-plan <quarter>\`
|
|
177
|
-
Build a quarterly thought-leadership plan.
|
|
178
|
-
|
|
179
|
-
1. Define the narrative pillars tied to business goals and audience beliefs
|
|
180
|
-
2. Balance useful public work, customer proof, opinion pieces, and launch support
|
|
181
|
-
3. Map each pillar to channels, authors, and distribution plan
|
|
182
|
-
4. Add speaking, podcast, partnership, and community amplification opportunities
|
|
183
|
-
5. Track outcomes with attention to trust, qualified interest, and downstream activation
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
### \`/docs-launch-brief <release>\`
|
|
188
|
-
Plan the audience-facing launch package for a technical release.
|
|
189
|
-
|
|
190
|
-
1. Define the audience segments affected by the release
|
|
191
|
-
2. Identify required assets: release narrative, docs updates, tutorials, migration guide, changelog, FAQs
|
|
192
|
-
3. Map dependencies between product changes, docs readiness, and announcement timing
|
|
193
|
-
4. Call out risk areas that could hurt adoption or trust
|
|
194
|
-
5. Build a rollout and measurement plan for awareness, activation, and successful migration
|
|
195
|
-
|
|
196
|
-
For deep documentation drafting, delegate to the marketing-owned \`technical-writer\` skill:
|
|
197
|
-
|
|
198
|
-
\`\`\`typescript
|
|
199
|
-
task(
|
|
200
|
-
category="unspecified-high",
|
|
201
|
-
load_skills=["technical-writer"],
|
|
202
|
-
description="Create developer-facing launch docs for [release]",
|
|
203
|
-
prompt="Write the launch-ready developer documentation package for [release]. Include the getting-started updates, migration notes, exact commands or code examples, troubleshooting guidance, and a concise changelog section. Keep examples concrete and verification-friendly.",
|
|
204
|
-
run_in_background=false
|
|
205
|
-
)
|
|
206
|
-
\`\`\`
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
### \`/dx-audit\`
|
|
211
|
-
Audit the first-run audience experience for a technical product.
|
|
212
|
-
|
|
213
|
-
1. Review the onboarding path from landing page or README through first success
|
|
214
|
-
2. Identify friction in setup, docs, examples, error messages, and terminology
|
|
215
|
-
3. Estimate TTFV and explain what slows it down
|
|
216
|
-
4. Recommend the smallest fixes with the highest adoption impact
|
|
217
|
-
5. Separate messaging issues from product or engineering issues
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
### \`/competitor-analysis <competitors>\`
|
|
222
|
-
Analyse competitors' market, narrative, and audience-adoption strategies.
|
|
223
|
-
|
|
224
|
-
1. Map each competitor's positioning, promises, and target audience
|
|
225
|
-
2. Audit their marketing channels, community footprint, and launch patterns
|
|
226
|
-
3. Review how they educate users or developers through docs, tutorials, or migration support
|
|
227
|
-
4. Identify gaps they are not exploiting
|
|
228
|
-
5. Recommend differentiated angles for attention, trust, and activation
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## Delegation Patterns
|
|
233
|
-
|
|
234
|
-
When visual assets, brand systems, or campaign design are needed:
|
|
235
|
-
|
|
236
|
-
\`\`\`typescript
|
|
237
|
-
task(
|
|
238
|
-
category="visual-engineering",
|
|
239
|
-
load_skills=["frontend-ui-ux"],
|
|
240
|
-
description="Design campaign or launch assets for [initiative]",
|
|
241
|
-
prompt="...",
|
|
242
|
-
run_in_background=false
|
|
243
|
-
)
|
|
244
|
-
\`\`\`
|
|
245
|
-
|
|
246
|
-
When market data, community landscapes, or event inventories need external research:
|
|
247
|
-
|
|
248
|
-
\`\`\`typescript
|
|
249
|
-
task(
|
|
250
|
-
subagent_type="librarian",
|
|
251
|
-
load_skills=[],
|
|
252
|
-
description="Research [topic] for growth strategy",
|
|
253
|
-
prompt="...",
|
|
254
|
-
run_in_background=true
|
|
255
|
-
)
|
|
256
|
-
\`\`\`
|
|
257
|
-
|
|
258
|
-
When documentation needs deep drafting or migration-writing execution:
|
|
259
|
-
|
|
260
|
-
\`\`\`typescript
|
|
261
|
-
task(
|
|
262
|
-
category="unspecified-high",
|
|
263
|
-
load_skills=["technical-writer"],
|
|
264
|
-
description="Write developer-facing content for [topic]",
|
|
265
|
-
prompt="...",
|
|
266
|
-
run_in_background=false
|
|
267
|
-
)
|
|
268
|
-
\`\`\`
|
|
269
|
-
|
|
270
|
-
When implementation correctness of setup steps or code examples is uncertain:
|
|
271
|
-
|
|
272
|
-
\`\`\`typescript
|
|
273
|
-
task(
|
|
274
|
-
subagent_type="fullstack-wunderkind",
|
|
275
|
-
description="Verify developer-facing implementation details for [topic]",
|
|
276
|
-
prompt="...",
|
|
277
|
-
run_in_background=false
|
|
278
|
-
)
|
|
279
|
-
\`\`\`
|
|
280
|
-
|
|
281
|
-
When legal or regulatory review is required for a launch, claim, or public statement:
|
|
282
|
-
|
|
283
|
-
\`\`\`typescript
|
|
284
|
-
task(
|
|
285
|
-
subagent_type="legal-counsel",
|
|
286
|
-
description="Review legal question for [launch or claim]",
|
|
287
|
-
prompt="...",
|
|
288
|
-
run_in_background=false
|
|
289
|
-
)
|
|
290
|
-
\`\`\`
|
|
131
|
+
${slashCommandsSection}
|
|
291
132
|
|
|
292
133
|
---
|
|
293
134
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketing-wunderkind.js","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,
|
|
1
|
+
{"version":3,"file":"marketing-wunderkind.js","sourceRoot":"","sources":["../../src/agents/marketing-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oCAAoC;YAC5C,OAAO,EACL,+JAA+J;SAClK;KACF;IACD,OAAO,EAAE;QACP,iEAAiE;QACjE,uEAAuE;QACvE,iFAAiF;QACjF,+EAA+E;QAC/E,8GAA8G;KAC/G;IACD,SAAS,EAAE;QACT,uDAAuD;QACvD,mEAAmE;QACnE,0FAA0F;QAC1F,wFAAwF;QACxF,iGAAiG;KAClG;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EACP,uGAAuG;QACzG,SAAS,EACP,sFAAsF;QACxF,QAAQ,EACN,4FAA4F;KAC/F,CAAC,CAAA;IACF,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE9G,OAAO;QACL,WAAW,EACT,6vBAA6vB;QAC/vB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6EtB,oBAAoB;;;;EAIpB,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,8BAA8B,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"product-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,2BAA2B,EAAE,mBA0BzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAgLvE;yBAhLe,4BAA4B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createAgentToolRestrictions } from "./types.js";
|
|
2
|
-
import { buildPersistentContextSection,
|
|
2
|
+
import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
3
|
+
import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
|
|
3
4
|
const MODE = "all";
|
|
4
5
|
export const PRODUCT_WUNDERKIND_METADATA = {
|
|
5
6
|
category: "specialist",
|
|
@@ -39,7 +40,7 @@ export function createProductWunderkindAgent(model) {
|
|
|
39
40
|
blockers: "dependency blocks, missing research, stakeholder misalignment",
|
|
40
41
|
});
|
|
41
42
|
const soulMaintenanceSection = buildSoulMaintenanceSection();
|
|
42
|
-
const
|
|
43
|
+
const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["product-wunderkind"]);
|
|
43
44
|
return {
|
|
44
45
|
description: "USE FOR: product strategy, product roadmap, OKRs, product vision, product discovery, user research, customer interviews, jobs to be done, personas, user stories, epics, sprint planning, backlog management, backlog prioritisation, story points, agile, scrum, kanban, lean, task decomposition, work breakdown structure, dependency ordering, parallel task safety, file conflict check, concern grouping, feature prioritisation, MoSCoW, RICE scoring, Kano model, go-to-market, product launch, product metrics, AARRR, North Star metric, product analytics, feature adoption analysis, usage interpretation, A/B testing, experiment readout, feature flags, rollout strategy, stakeholder management, product communication, PRD, product requirements document, user journey mapping, service design, product-market fit, pivots, product positioning, competitive analysis, product ops, product tooling, Jira, Linear, Notion, product principles, product culture, team structure, squad model, cross-functional collaboration, technical product management, API product management, platform strategy, data product management, AI product management, bug triage, issue intake, repro shaping, severity assessment, acceptance review, INVEST gating, escalation doctrine.",
|
|
45
46
|
mode: MODE,
|
|
@@ -192,41 +193,8 @@ You bridge the gap between user insight and engineering reality. You're fluent i
|
|
|
192
193
|
|
|
193
194
|
---
|
|
194
195
|
|
|
195
|
-
|
|
196
|
+
${slashCommandsSection}
|
|
196
197
|
|
|
197
|
-
${slashCommandHelpSection}
|
|
198
|
-
|
|
199
|
-
Use these command intents as compact execution patterns:
|
|
200
|
-
|
|
201
|
-
- \`/breakdown <task>\` — delegate to \`agile-pm\` for concern-grouped, parallel-safe subtasks with exact file targets and dependency order.
|
|
202
|
-
- \`/sprint-plan\` — delegate to \`agile-pm\` for a sprint plan with points, file targets, dependencies, and stretch work.
|
|
203
|
-
- \`/prd <feature>\` — produce Context, Goals, Non-Goals, User Stories, Requirements, Open Questions, Success Metrics, and Timeline; then request a technical acceptance follow-up from \`fullstack-wunderkind\`.
|
|
204
|
-
- \`/okr-design <level> <objective>\` — refine the objective, propose 3-5 measurable KRs, validate alignment, and flag objective-vs-KR risks.
|
|
205
|
-
- \`/file-conflict-check\` — use \`agile-pm\` to build a file-to-task conflict matrix with severity and safe sequencing.
|
|
206
|
-
- \`/north-star <product>\` — identify the value moment, propose candidate metrics, choose the best one, map input metrics, and define review cadence.
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
## Sub-Skill Delegation
|
|
211
|
-
|
|
212
|
-
Keep these product-owned skills explicit and available for deep product work:
|
|
213
|
-
|
|
214
|
-
- \`grill-me\` for ambiguity collapse and requirement interrogation
|
|
215
|
-
- \`prd-pipeline\` for PRD -> plan -> execution handoff workflows
|
|
216
|
-
- \`ubiquitous-language\` for domain glossary and canonical terminology alignment
|
|
217
|
-
- \`triage-issue\` for structured issue intake, repro shaping, and backlog-ready handoff
|
|
218
|
-
|
|
219
|
-
Use \`agile-pm\` whenever the request needs sprint planning, backlog structuring, task decomposition, or file-conflict analysis.
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## Delegation Patterns
|
|
224
|
-
|
|
225
|
-
- Use \`librarian\` for competitor research, market data, and industry-report gathering.
|
|
226
|
-
- Use \`explore\` for codebase mapping before decomposition or acceptance review.
|
|
227
|
-
- Use \`writing\` for PRDs, specs, and long-form product documentation.
|
|
228
|
-
- Route campaign, launch, and funnel authority to \`marketing-wunderkind\`.
|
|
229
|
-
- Route technical follow-up after product intake to \`fullstack-wunderkind\` with the repro, severity, and expected behavior already framed.
|
|
230
198
|
---
|
|
231
199
|
|
|
232
200
|
${persistentContextSection}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-wunderkind.js","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,
|
|
1
|
+
{"version":3,"file":"product-wunderkind.js","sourceRoot":"","sources":["../../src/agents/product-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpI,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,2BAA2B,GAAwB;IAC9D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,oBAAoB;IACjC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,2LAA2L;SAC9L;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,mGAAmG;QACnG,iFAAiF;QACjF,gGAAgG;QAChG,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,0GAA0G;KAC3G;CACF,CAAA;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,4EAA4E;QACvF,SAAS,EAAE,4CAA4C;QACvD,QAAQ,EAAE,+DAA+D;KAC1E,CAAC,CAAA;IACF,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAE5G,OAAO;QACL,WAAW,EACT,8tCAA8tC;QAChuC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ItB,oBAAoB;;;;EAIpB,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SlashCommandRegistry } from "./slash-commands.js";
|
|
1
2
|
export declare function buildPersistentContextSection(options: {
|
|
2
3
|
learnings: string;
|
|
3
4
|
decisions: string;
|
|
@@ -5,4 +6,5 @@ export declare function buildPersistentContextSection(options: {
|
|
|
5
6
|
}): string;
|
|
6
7
|
export declare function buildSoulMaintenanceSection(): string;
|
|
7
8
|
export declare function buildSlashCommandHelpSection(): string;
|
|
9
|
+
export declare function renderSlashCommandRegistry(registry: SlashCommandRegistry): string;
|
|
8
10
|
//# sourceMappingURL=shared-prompt-sections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-prompt-sections.d.ts","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAAA,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAeT;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAYpD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAKrD"}
|
|
1
|
+
{"version":3,"file":"shared-prompt-sections.d.ts","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE/D,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAeT;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAYpD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAKrD;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAiBjF"}
|
|
@@ -33,4 +33,20 @@ export function buildSlashCommandHelpSection() {
|
|
|
33
33
|
- If the user asks what a command does, which arguments it accepts, or what output shape it expects, tell them to run \`/<command> --help\`.
|
|
34
34
|
- Prefer concise command contracts over long inline examples; keep the command body focused on intent, required inputs, and expected output.`;
|
|
35
35
|
}
|
|
36
|
+
export function renderSlashCommandRegistry(registry) {
|
|
37
|
+
const commandBlocks = registry.commands.map((command) => {
|
|
38
|
+
const details = command.details?.map((detail) => `- ${detail}`).join("\n");
|
|
39
|
+
return [`### \`${command.command}\``, command.summary, details].filter((part) => part !== undefined && part !== "").join("\n\n");
|
|
40
|
+
});
|
|
41
|
+
const sectionBlocks = registry.sections?.map((section) => {
|
|
42
|
+
const items = section.items.map((item) => `- ${item}`).join("\n");
|
|
43
|
+
return [`## ${section.heading}`, items].join("\n\n");
|
|
44
|
+
}) ?? [];
|
|
45
|
+
return [
|
|
46
|
+
"## Slash Commands",
|
|
47
|
+
buildSlashCommandHelpSection(),
|
|
48
|
+
...commandBlocks,
|
|
49
|
+
...sectionBlocks,
|
|
50
|
+
].join("\n\n---\n\n");
|
|
51
|
+
}
|
|
36
52
|
//# sourceMappingURL=shared-prompt-sections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared-prompt-sections.js","sourceRoot":"","sources":["../../src/agents/shared-prompt-sections.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAAC,OAI7C;IACC,OAAO;;;;;;;;;eASM,OAAO,CAAC,SAAS;eACjB,OAAO,CAAC,SAAS;cAClB,OAAO,CAAC,QAAQ;;yJAE2H,CAAA;AACzJ,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO;;;;;;;;;;wJAU+I,CAAA;AACxJ,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO;;;6IAGoI,CAAA;AAC7I,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA8B;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,OAAO,CAAC,SAAS,OAAO,CAAC,OAAO,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClI,CAAC,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjE,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC,CAAC,IAAI,EAAE,CAAA;IAER,OAAO;QACL,mBAAmB;QACnB,4BAA4B,EAAE;QAC9B,GAAG,aAAa;QAChB,GAAG,aAAa;KACjB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACvB,CAAC"}
|