@grant-vine/wunderkind 0.11.1 → 0.11.2
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/agents/ciso.md +41 -8
- package/agents/creative-director.md +3 -3
- package/agents/fullstack-wunderkind.md +44 -10
- package/agents/marketing-wunderkind.md +3 -3
- package/agents/product-wunderkind.md +43 -10
- package/dist/agents/ciso.d.ts.map +1 -1
- package/dist/agents/ciso.js +6 -1
- package/dist/agents/ciso.js.map +1 -1
- package/dist/agents/fullstack-wunderkind.d.ts.map +1 -1
- package/dist/agents/fullstack-wunderkind.js +6 -1
- package/dist/agents/fullstack-wunderkind.js.map +1 -1
- package/dist/agents/product-wunderkind.d.ts.map +1 -1
- package/dist/agents/product-wunderkind.js +6 -1
- package/dist/agents/product-wunderkind.js.map +1 -1
- package/dist/agents/shared-prompt-sections.d.ts +1 -0
- package/dist/agents/shared-prompt-sections.d.ts.map +1 -1
- package/dist/agents/shared-prompt-sections.js +32 -0
- package/dist/agents/shared-prompt-sections.js.map +1 -1
- package/dist/agents/slash-commands.d.ts +22 -22
- package/dist/agents/slash-commands.d.ts.map +1 -1
- package/dist/agents/slash-commands.js +35 -34
- package/dist/agents/slash-commands.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +71 -0
- package/dist/cli/config-manager/index.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +47 -7
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/types.d.ts +9 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/SKILL-STANDARD.md +11 -0
package/agents/ciso.md
CHANGED
|
@@ -104,6 +104,39 @@ Security controls must exist at multiple layers — compromising one layer must
|
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
107
|
+
## Delegation Contract
|
|
108
|
+
|
|
109
|
+
Use this contract to choose the right delegation mechanism.
|
|
110
|
+
|
|
111
|
+
- Invoke via `skill(name="<skill>")` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in `task()`.
|
|
112
|
+
- Delegate via `task(...)` for retained-agent (`category=`) or specialist subagent (`subagent_type=`) delegation.
|
|
113
|
+
|
|
114
|
+
### Required fields in every `task()` call
|
|
115
|
+
|
|
116
|
+
- `load_skills`: required in every `task()` call. Use `[]` when no skills apply; never omit.
|
|
117
|
+
- `run_in_background`: required in every `task()` call. Must be explicitly `true` or `false`; never omit.
|
|
118
|
+
- `category` and `subagent_type`: mutually exclusive. Pass exactly one, never both.
|
|
119
|
+
|
|
120
|
+
### Canonical examples
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
task({
|
|
124
|
+
category: "deep",
|
|
125
|
+
load_skills: [],
|
|
126
|
+
run_in_background: false,
|
|
127
|
+
prompt: "...",
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
task({
|
|
131
|
+
subagent_type: "oracle",
|
|
132
|
+
load_skills: [],
|
|
133
|
+
run_in_background: true,
|
|
134
|
+
prompt: "...",
|
|
135
|
+
})
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
107
140
|
## Slash Commands
|
|
108
141
|
|
|
109
142
|
---
|
|
@@ -117,25 +150,25 @@ Every slash command must support a `--help` form.
|
|
|
117
150
|
|
|
118
151
|
### `/threat-model <system or feature>`
|
|
119
152
|
|
|
120
|
-
|
|
153
|
+
Invoke via `skill(name="security-analyst")` to build a STRIDE threat model, rate risks, and map mitigations.
|
|
121
154
|
|
|
122
155
|
---
|
|
123
156
|
|
|
124
157
|
### `/security-audit <scope>`
|
|
125
158
|
|
|
126
|
-
|
|
159
|
+
Invoke via `skill(name="pen-tester")` for active security testing; review OWASP coverage, auth, authorization, validation, secrets, headers, and dependency risk.
|
|
127
160
|
|
|
128
161
|
---
|
|
129
162
|
|
|
130
163
|
### `/compliance-check <regulation>`
|
|
131
164
|
|
|
132
|
-
|
|
165
|
+
Invoke via `skill(name="compliance-officer")` to assess obligations and evidence gaps against a named regulation.
|
|
133
166
|
|
|
134
167
|
---
|
|
135
168
|
|
|
136
169
|
### `/incident-response <incident type>`
|
|
137
170
|
|
|
138
|
-
Run contain/assess/notify/eradicate/recover/learn
|
|
171
|
+
Run contain/assess/notify/eradicate/recover/learn. Delegate operational containment to `fullstack-wunderkind`. Invoke via `skill(name="compliance-officer")` before routing formal wording to `legal-counsel`.
|
|
139
172
|
|
|
140
173
|
---
|
|
141
174
|
|
|
@@ -153,15 +186,15 @@ Run a vulnerability audit and return severity-ranked package findings with recom
|
|
|
153
186
|
|
|
154
187
|
## Sub-Skill Delegation
|
|
155
188
|
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
189
|
+
- Invoke via `skill(name="security-analyst")` for vulnerability assessment, OWASP analysis, code review, and auth testing.
|
|
190
|
+
- Invoke via `skill(name="pen-tester")` for active testing, attack simulation, ASVS checks, auth-flow abuse, and force browsing.
|
|
191
|
+
- Invoke via `skill(name="compliance-officer")` for GDPR/POPIA work, data classification, consent handling, and breach notification obligations.
|
|
159
192
|
|
|
160
193
|
---
|
|
161
194
|
|
|
162
195
|
## Delegation Patterns
|
|
163
196
|
|
|
164
|
-
-
|
|
197
|
+
- Delegate via `task(...)` to `legal-counsel` for OSS licensing, TOS/Privacy Policy, DPAs, CLAs, and contract-review work.
|
|
165
198
|
|
|
166
199
|
---
|
|
167
200
|
|
|
@@ -108,7 +108,7 @@ Every slash command must support a `--help` form.
|
|
|
108
108
|
|
|
109
109
|
Develop a brand identity system from a creative brief.
|
|
110
110
|
|
|
111
|
-
-
|
|
111
|
+
- Invoke via `skill(name="visual-artist")` for palette generation, token export, and WCAG auditing.
|
|
112
112
|
|
|
113
113
|
---
|
|
114
114
|
|
|
@@ -124,7 +124,7 @@ Run a rigorous design and accessibility audit of a live page or design.
|
|
|
124
124
|
|
|
125
125
|
Generate an accessible color system from a seed color.
|
|
126
126
|
|
|
127
|
-
-
|
|
127
|
+
- Invoke via `skill(name="visual-artist")` for palette math, token export, and WCAG checks.
|
|
128
128
|
|
|
129
129
|
---
|
|
130
130
|
|
|
@@ -142,7 +142,7 @@ Write a creative brief covering audience, objective, deliverables, constraints,
|
|
|
142
142
|
|
|
143
143
|
## Sub-Skill Delegation
|
|
144
144
|
|
|
145
|
-
-
|
|
145
|
+
- Invoke via `skill(name="visual-artist")` for detailed color systems, design tokens, and WCAG-focused palette work.
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
@@ -166,6 +166,39 @@ const db = drizzle(neon(process.env.DATABASE_URL!));
|
|
|
166
166
|
|
|
167
167
|
---
|
|
168
168
|
|
|
169
|
+
## Delegation Contract
|
|
170
|
+
|
|
171
|
+
Use this contract to choose the right delegation mechanism.
|
|
172
|
+
|
|
173
|
+
- Invoke via `skill(name="<skill>")` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in `task()`.
|
|
174
|
+
- Delegate via `task(...)` for retained-agent (`category=`) or specialist subagent (`subagent_type=`) delegation.
|
|
175
|
+
|
|
176
|
+
### Required fields in every `task()` call
|
|
177
|
+
|
|
178
|
+
- `load_skills`: required in every `task()` call. Use `[]` when no skills apply; never omit.
|
|
179
|
+
- `run_in_background`: required in every `task()` call. Must be explicitly `true` or `false`; never omit.
|
|
180
|
+
- `category` and `subagent_type`: mutually exclusive. Pass exactly one, never both.
|
|
181
|
+
|
|
182
|
+
### Canonical examples
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
task({
|
|
186
|
+
category: "deep",
|
|
187
|
+
load_skills: [],
|
|
188
|
+
run_in_background: false,
|
|
189
|
+
prompt: "...",
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
task({
|
|
193
|
+
subagent_type: "oracle",
|
|
194
|
+
load_skills: [],
|
|
195
|
+
run_in_background: true,
|
|
196
|
+
prompt: "...",
|
|
197
|
+
})
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
169
202
|
## Slash Commands
|
|
170
203
|
|
|
171
204
|
---
|
|
@@ -187,19 +220,19 @@ Run a browser-backed audit for accessibility, CWV, console errors, broken links,
|
|
|
187
220
|
|
|
188
221
|
### `/bundle-analyze`
|
|
189
222
|
|
|
190
|
-
|
|
223
|
+
Invoke via `skill(name="vercel-architect")` to identify largest chunks, heavy dependencies, and concrete replacement opportunities.
|
|
191
224
|
|
|
192
225
|
---
|
|
193
226
|
|
|
194
227
|
### `/db-audit`
|
|
195
228
|
|
|
196
|
-
|
|
229
|
+
Invoke via `skill(name="db-architect")` for schema, index, migration-drift, and slow-query review; report destructive actions without executing them.
|
|
197
230
|
|
|
198
231
|
---
|
|
199
232
|
|
|
200
233
|
### `/edge-vs-node <filepath>`
|
|
201
234
|
|
|
202
|
-
|
|
235
|
+
Invoke via `skill(name="vercel-architect")` to decide runtime compatibility and explain blockers.
|
|
203
236
|
|
|
204
237
|
---
|
|
205
238
|
|
|
@@ -223,18 +256,19 @@ Translate the alert into blast radius, triage steps, root-cause branches, succes
|
|
|
223
256
|
|
|
224
257
|
## Sub-Skill Delegation
|
|
225
258
|
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
-
|
|
259
|
+
- Invoke via `skill(name="tdd")` for red-green-refactor loops, regression hardening, and defect-driven delivery.
|
|
260
|
+
- Invoke via `skill(name="vercel-architect")` for Vercel, App Router, Edge runtime, Neon branching, and performance work.
|
|
261
|
+
- Invoke via `skill(name="db-architect")` for schema design, query analysis, migrations, and index auditing.
|
|
229
262
|
|
|
230
263
|
---
|
|
231
264
|
|
|
232
265
|
## Delegation Patterns
|
|
233
266
|
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
-
|
|
267
|
+
- Delegate via `task(...)` to `visual-engineering` for UI implementation and coded visual work.
|
|
268
|
+
- Delegate via `task(...)` to `agent-browser` for browser automation, E2E capture, and page validation.
|
|
269
|
+
- Delegate via `task(...)` to `explore` for codebase mapping and `librarian` for external library/documentation research.
|
|
270
|
+
- Delegate via `task(...)` to `git-master` for git operations.
|
|
271
|
+
- Invoke via `skill(name="technical-writer")` for external developer docs or tutorials.
|
|
238
272
|
|
|
239
273
|
---
|
|
240
274
|
|
|
@@ -124,7 +124,7 @@ Build a go-to-market plan for a product, feature, or release.
|
|
|
124
124
|
|
|
125
125
|
Generate a platform-specific content calendar.
|
|
126
126
|
|
|
127
|
-
-
|
|
127
|
+
- Invoke via `skill(name="social-media-maven")` for channel-native plans, posting cadence, themes, and copy scaffolding.
|
|
128
128
|
|
|
129
129
|
---
|
|
130
130
|
|
|
@@ -144,7 +144,7 @@ Plan quarterly narrative pillars, channels, authors, and amplification motions.
|
|
|
144
144
|
|
|
145
145
|
Plan the audience-facing launch package for a technical release.
|
|
146
146
|
|
|
147
|
-
-
|
|
147
|
+
- Invoke via `skill(name="technical-writer")` when the work becomes deep developer-documentation drafting.
|
|
148
148
|
|
|
149
149
|
---
|
|
150
150
|
|
|
@@ -164,7 +164,7 @@ Compare competitor positioning, launch patterns, docs support, and adoption stra
|
|
|
164
164
|
|
|
165
165
|
- Use `visual-engineering` for campaign design, launch visuals, and brand-system execution.
|
|
166
166
|
- Use `librarian` for market research, event inventories, and external trend gathering.
|
|
167
|
-
-
|
|
167
|
+
- Invoke via `skill(name="technical-writer")` for deep developer-facing docs or migration-writing execution.
|
|
168
168
|
- Use `fullstack-wunderkind` to verify technical setup steps or code-example correctness.
|
|
169
169
|
- Use `legal-counsel` for launch, claim, or regulatory review that needs legal authority.
|
|
170
170
|
|
|
@@ -164,6 +164,39 @@ You bridge the gap between user insight and engineering reality. You're fluent i
|
|
|
164
164
|
|
|
165
165
|
---
|
|
166
166
|
|
|
167
|
+
## Delegation Contract
|
|
168
|
+
|
|
169
|
+
Use this contract to choose the right delegation mechanism.
|
|
170
|
+
|
|
171
|
+
- Invoke via `skill(name="<skill>")` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in `task()`.
|
|
172
|
+
- Delegate via `task(...)` for retained-agent (`category=`) or specialist subagent (`subagent_type=`) delegation.
|
|
173
|
+
|
|
174
|
+
### Required fields in every `task()` call
|
|
175
|
+
|
|
176
|
+
- `load_skills`: required in every `task()` call. Use `[]` when no skills apply; never omit.
|
|
177
|
+
- `run_in_background`: required in every `task()` call. Must be explicitly `true` or `false`; never omit.
|
|
178
|
+
- `category` and `subagent_type`: mutually exclusive. Pass exactly one, never both.
|
|
179
|
+
|
|
180
|
+
### Canonical examples
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
task({
|
|
184
|
+
category: "deep",
|
|
185
|
+
load_skills: [],
|
|
186
|
+
run_in_background: false,
|
|
187
|
+
prompt: "...",
|
|
188
|
+
})
|
|
189
|
+
|
|
190
|
+
task({
|
|
191
|
+
subagent_type: "oracle",
|
|
192
|
+
load_skills: [],
|
|
193
|
+
run_in_background: true,
|
|
194
|
+
prompt: "...",
|
|
195
|
+
})
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
167
200
|
## Slash Commands
|
|
168
201
|
|
|
169
202
|
---
|
|
@@ -177,13 +210,13 @@ Every slash command must support a `--help` form.
|
|
|
177
210
|
|
|
178
211
|
### `/breakdown <task>`
|
|
179
212
|
|
|
180
|
-
|
|
213
|
+
Invoke via `skill(name="agile-pm")` for concern-grouped, parallel-safe subtasks with file targets and dependency order.
|
|
181
214
|
|
|
182
215
|
---
|
|
183
216
|
|
|
184
217
|
### `/sprint-plan`
|
|
185
218
|
|
|
186
|
-
|
|
219
|
+
Invoke via `skill(name="agile-pm")` for a sprint plan with points, file targets, dependencies, and stretch work.
|
|
187
220
|
|
|
188
221
|
---
|
|
189
222
|
|
|
@@ -203,7 +236,7 @@ Refine the objective, propose measurable KRs, validate alignment, and flag objec
|
|
|
203
236
|
|
|
204
237
|
### `/file-conflict-check`
|
|
205
238
|
|
|
206
|
-
|
|
239
|
+
Invoke via `skill(name="agile-pm")` to build a file-to-task conflict matrix with severity and safe sequencing.
|
|
207
240
|
|
|
208
241
|
---
|
|
209
242
|
|
|
@@ -215,18 +248,18 @@ Identify the value moment, propose candidate metrics, choose the best one, and m
|
|
|
215
248
|
|
|
216
249
|
## Sub-Skill Delegation
|
|
217
250
|
|
|
218
|
-
-
|
|
219
|
-
-
|
|
251
|
+
- Invoke via `skill(name="grill-me")`, `skill(name="prd-pipeline")`, `skill(name="ubiquitous-language")`, and `skill(name="triage-issue")` for deep product work.
|
|
252
|
+
- Invoke via `skill(name="agile-pm")` whenever the request needs sprint planning, backlog structuring, task decomposition, or file-conflict analysis.
|
|
220
253
|
|
|
221
254
|
---
|
|
222
255
|
|
|
223
256
|
## Delegation Patterns
|
|
224
257
|
|
|
225
|
-
-
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
258
|
+
- Delegate via `task(...)` to `librarian` for competitor research, market data, and industry-report gathering.
|
|
259
|
+
- Delegate via `task(...)` to `explore` for codebase mapping before decomposition or acceptance review.
|
|
260
|
+
- Delegate via `task(...)` to `writing` for PRDs, specs, and long-form product documentation.
|
|
261
|
+
- Delegate via `task(...)` to `marketing-wunderkind` for campaign, launch, and funnel authority.
|
|
262
|
+
- Delegate via `task(...)` to `fullstack-wunderkind` for technical follow-up after product intake with the repro, severity, and expected behavior already framed.
|
|
230
263
|
|
|
231
264
|
---
|
|
232
265
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciso.d.ts","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,aAAa,EAAE,mBA0B3B,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"ciso.d.ts","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAOhE,eAAO,MAAM,aAAa,EAAE,mBA0B3B,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA4I1D;yBA5Ie,eAAe"}
|
package/dist/agents/ciso.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createAgentToolRestrictions } from "./types.js";
|
|
2
|
-
import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
2
|
+
import { buildDelegationContractSection, buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
3
3
|
import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
|
|
4
4
|
const MODE = "all";
|
|
5
5
|
export const CISO_METADATA = {
|
|
@@ -39,6 +39,7 @@ export function createCisoAgent(model) {
|
|
|
39
39
|
decisions: "risk acceptance decisions, mitigation choices, compliance interpretations",
|
|
40
40
|
blockers: "unresolved High/Critical findings awaiting engineering action",
|
|
41
41
|
});
|
|
42
|
+
const delegationContractSection = buildDelegationContractSection();
|
|
42
43
|
const soulMaintenanceSection = buildSoulMaintenanceSection();
|
|
43
44
|
const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS.ciso);
|
|
44
45
|
return {
|
|
@@ -133,6 +134,10 @@ Security controls must exist at multiple layers — compromising one layer must
|
|
|
133
134
|
|
|
134
135
|
---
|
|
135
136
|
|
|
137
|
+
${delegationContractSection}
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
136
141
|
${slashCommandsSection}
|
|
137
142
|
|
|
138
143
|
---
|
package/dist/agents/ciso.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ciso.js","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"ciso.js","sourceRoot":"","sources":["../../src/agents/ciso.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpK,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,IAAI,GAAc,KAAK,CAAA;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EACL,+MAA+M;SAClN;KACF;IACD,OAAO,EAAE;QACP,8EAA8E;QAC9E,mDAAmD;QACnD,iDAAiD;QACjD,6CAA6C;QAC7C,6FAA6F;QAC7F,6DAA6D;QAC7D,sDAAsD;KACvD;IACD,SAAS,EAAE;QACT,qDAAqD;QACrD,iGAAiG;QACjG,wHAAwH;QACxH,4GAA4G;KAC7G;CACF,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,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,2EAA2E;QACtF,QAAQ,EAAE,+DAA+D;KAC1E,CAAC,CAAA;IACF,MAAM,yBAAyB,GAAG,8BAA8B,EAAE,CAAA;IAClE,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAE3F,OAAO;QACL,WAAW,EACT,y9BAAy9B;QAC39B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkFtB,yBAAyB;;;;EAIzB,oBAAoB;;;;;;;;;;;;;;;EAepB,wBAAwB;;;;;;;;;;oFAU0D;KACjF,CAAA;AACH,CAAC;AAED,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullstack-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,6BAA6B,EAAE,mBA2B3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"fullstack-wunderkind.d.ts","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhE,eAAO,MAAM,6BAA6B,EAAE,mBA2B3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA+LzE;yBA/Le,8BAA8B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
1
|
+
import { buildDelegationContractSection, buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
2
2
|
import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
|
|
3
3
|
const MODE = "all";
|
|
4
4
|
export const FULLSTACK_WUNDERKIND_METADATA = {
|
|
@@ -34,6 +34,7 @@ export function createFullstackWunderkindAgent(model) {
|
|
|
34
34
|
decisions: "architectural choices, library selections, schema decisions",
|
|
35
35
|
blockers: "build failures, type errors not yet resolved, external blockers",
|
|
36
36
|
});
|
|
37
|
+
const delegationContractSection = buildDelegationContractSection();
|
|
37
38
|
const soulMaintenanceSection = buildSoulMaintenanceSection();
|
|
38
39
|
const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["fullstack-wunderkind"]);
|
|
39
40
|
return {
|
|
@@ -193,6 +194,10 @@ const db = drizzle(neon(process.env.DATABASE_URL!));
|
|
|
193
194
|
|
|
194
195
|
---
|
|
195
196
|
|
|
197
|
+
${delegationContractSection}
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
196
201
|
${slashCommandsSection}
|
|
197
202
|
|
|
198
203
|
---
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullstack-wunderkind.js","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"fullstack-wunderkind.js","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpK,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,aAAa;YACrB,OAAO,EACL,8NAA8N;SACjO;KACF;IACD,OAAO,EAAE;QACP,0DAA0D;QAC1D,gDAAgD;QAChD,uEAAuE;QACvE,6DAA6D;QAC7D,sEAAsE;QACtE,oGAAoG;QACpG,gGAAgG;QAChG,kDAAkD;KACnD;IACD,SAAS,EAAE;QACT,8EAA8E;QAC9E,+CAA+C;QAC/C,oFAAoF;QACpF,mGAAmG;KACpG;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC7D,SAAS,EAAE,gEAAgE;QAC3E,SAAS,EAAE,6DAA6D;QACxE,QAAQ,EAAE,iEAAiE;KAC5E,CAAC,CAAA;IACF,MAAM,yBAAyB,GAAG,8BAA8B,EAAE,CAAA;IAClE,MAAM,sBAAsB,GAAG,2BAA2B,EAAE,CAAA;IAC5D,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE9G,OAAO;QACL,WAAW,EACT,sgDAAsgD;QACxgD,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE;;;;EAIV,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoJtB,yBAAyB;;;;EAIzB,oBAAoB;;;;EAIpB,wBAAwB;;;;;;;;;;;;;qGAa2E;KAClG,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;AAOhE,eAAO,MAAM,2BAA2B,EAAE,mBA0BzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
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,CAqLvE;yBArLe,4BAA4B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createAgentToolRestrictions } from "./types.js";
|
|
2
|
-
import { buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
2
|
+
import { buildDelegationContractSection, buildPersistentContextSection, buildSoulMaintenanceSection, renderSlashCommandRegistry } from "./shared-prompt-sections.js";
|
|
3
3
|
import { RETAINED_AGENT_SLASH_COMMANDS } from "./slash-commands.js";
|
|
4
4
|
const MODE = "all";
|
|
5
5
|
export const PRODUCT_WUNDERKIND_METADATA = {
|
|
@@ -39,6 +39,7 @@ export function createProductWunderkindAgent(model) {
|
|
|
39
39
|
decisions: "scope decisions, feature cuts, OKR changes",
|
|
40
40
|
blockers: "dependency blocks, missing research, stakeholder misalignment",
|
|
41
41
|
});
|
|
42
|
+
const delegationContractSection = buildDelegationContractSection();
|
|
42
43
|
const soulMaintenanceSection = buildSoulMaintenanceSection();
|
|
43
44
|
const slashCommandsSection = renderSlashCommandRegistry(RETAINED_AGENT_SLASH_COMMANDS["product-wunderkind"]);
|
|
44
45
|
return {
|
|
@@ -193,6 +194,10 @@ You bridge the gap between user insight and engineering reality. You're fluent i
|
|
|
193
194
|
|
|
194
195
|
---
|
|
195
196
|
|
|
197
|
+
${delegationContractSection}
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
196
201
|
${slashCommandsSection}
|
|
197
202
|
|
|
198
203
|
---
|
|
@@ -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,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;
|
|
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,8BAA8B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACpK,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,yBAAyB,GAAG,8BAA8B,EAAE,CAAA;IAClE,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,yBAAyB;;;;EAIzB,oBAAoB;;;;EAIpB,wBAAwB;;IAEtB;KACD,CAAA;AACH,CAAC;AAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -7,4 +7,5 @@ export declare function buildPersistentContextSection(options: {
|
|
|
7
7
|
export declare function buildSoulMaintenanceSection(): string;
|
|
8
8
|
export declare function buildSlashCommandHelpSection(): string;
|
|
9
9
|
export declare function renderSlashCommandRegistry(registry: SlashCommandRegistry): string;
|
|
10
|
+
export declare function buildDelegationContractSection(): string;
|
|
10
11
|
//# 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,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"}
|
|
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;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CA+BvD"}
|
|
@@ -49,4 +49,36 @@ export function renderSlashCommandRegistry(registry) {
|
|
|
49
49
|
...sectionBlocks,
|
|
50
50
|
].join("\n\n---\n\n");
|
|
51
51
|
}
|
|
52
|
+
export function buildDelegationContractSection() {
|
|
53
|
+
return `## Delegation Contract
|
|
54
|
+
|
|
55
|
+
Use this contract to choose the right delegation mechanism.
|
|
56
|
+
|
|
57
|
+
- Invoke via \`skill(name="<skill>")\` for shipped Wunderkind skills and sub-skills — invoke directly, never wrap in \`task()\`.
|
|
58
|
+
- Delegate via \`task(...)\` for retained-agent (\`category=\`) or specialist subagent (\`subagent_type=\`) delegation.
|
|
59
|
+
|
|
60
|
+
### Required fields in every \`task()\` call
|
|
61
|
+
|
|
62
|
+
- \`load_skills\`: required in every \`task()\` call. Use \`[]\` when no skills apply; never omit.
|
|
63
|
+
- \`run_in_background\`: required in every \`task()\` call. Must be explicitly \`true\` or \`false\`; never omit.
|
|
64
|
+
- \`category\` and \`subagent_type\`: mutually exclusive. Pass exactly one, never both.
|
|
65
|
+
|
|
66
|
+
### Canonical examples
|
|
67
|
+
|
|
68
|
+
\`\`\`typescript
|
|
69
|
+
task({
|
|
70
|
+
category: "deep",
|
|
71
|
+
load_skills: [],
|
|
72
|
+
run_in_background: false,
|
|
73
|
+
prompt: "...",
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
task({
|
|
77
|
+
subagent_type: "oracle",
|
|
78
|
+
load_skills: [],
|
|
79
|
+
run_in_background: true,
|
|
80
|
+
prompt: "...",
|
|
81
|
+
})
|
|
82
|
+
\`\`\``;
|
|
83
|
+
}
|
|
52
84
|
//# 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":"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"}
|
|
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;AAED,MAAM,UAAU,8BAA8B;IAC5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BF,CAAA;AACP,CAAC"}
|