@grant-vine/wunderkind 0.11.1 → 0.11.3
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 +1 -1
- package/agents/ciso.md +42 -9
- package/agents/creative-director.md +4 -4
- package/agents/fullstack-wunderkind.md +45 -11
- package/agents/legal-counsel.md +1 -1
- package/agents/marketing-wunderkind.md +4 -4
- package/agents/product-wunderkind.md +44 -11
- package/commands/design-md.md +1 -1
- 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/docs-config.d.ts.map +1 -1
- package/dist/agents/docs-config.js +2 -0
- package/dist/agents/docs-config.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 +33 -1
- 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/artifact-writer.d.ts +17 -0
- package/dist/artifact-writer.d.ts.map +1 -0
- package/dist/artifact-writer.js +92 -0
- package/dist/artifact-writer.js.map +1 -0
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +99 -3
- 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/index.js +3 -0
- package/dist/cli/index.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 +100 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/skills/SKILL-STANDARD.md +11 -0
- package/skills/prd-pipeline/SKILL.md +1 -1
|
@@ -27,7 +27,7 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
27
27
|
}, {
|
|
28
28
|
readonly command: "/content-calendar <platform> <period>";
|
|
29
29
|
readonly summary: "Generate a platform-specific content calendar.";
|
|
30
|
-
readonly details: readonly ["
|
|
30
|
+
readonly details: readonly ["Invoke via `skill(name=\"social-media-maven\")` for channel-native plans, posting cadence, themes, and copy scaffolding."];
|
|
31
31
|
}, {
|
|
32
32
|
readonly command: "/community-audit";
|
|
33
33
|
readonly summary: "Audit community presence across owned and external channels.";
|
|
@@ -37,7 +37,7 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
37
37
|
}, {
|
|
38
38
|
readonly command: "/docs-launch-brief <release>";
|
|
39
39
|
readonly summary: "Plan the audience-facing launch package for a technical release.";
|
|
40
|
-
readonly details: readonly ["
|
|
40
|
+
readonly details: readonly ["Invoke via `skill(name=\"technical-writer\")` when the work becomes deep developer-documentation drafting."];
|
|
41
41
|
}, {
|
|
42
42
|
readonly command: "/dx-audit";
|
|
43
43
|
readonly summary: "Audit the first-run audience experience for a technical product and identify the smallest adoption fixes.";
|
|
@@ -47,14 +47,14 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
47
47
|
}];
|
|
48
48
|
readonly sections: readonly [{
|
|
49
49
|
readonly heading: "Delegation Patterns";
|
|
50
|
-
readonly items: readonly ["Use `visual-engineering` for campaign design, launch visuals, and brand-system execution.", "Use `librarian` for market research, event inventories, and external trend gathering.", "
|
|
50
|
+
readonly items: readonly ["Use `visual-engineering` for campaign design, launch visuals, and brand-system execution.", "Use `librarian` for market research, event inventories, and external trend gathering.", "Invoke via `skill(name=\"technical-writer\")` for deep developer-facing docs or migration-writing execution.", "Use `fullstack-wunderkind` to verify technical setup steps or code-example correctness.", "Use `legal-counsel` for launch, claim, or regulatory review that needs legal authority."];
|
|
51
51
|
}];
|
|
52
52
|
};
|
|
53
53
|
readonly "creative-director": {
|
|
54
54
|
readonly commands: readonly [{
|
|
55
55
|
readonly command: "/brand-identity <brief>";
|
|
56
56
|
readonly summary: "Develop a brand identity system from a creative brief.";
|
|
57
|
-
readonly details: readonly ["
|
|
57
|
+
readonly details: readonly ["Invoke via `skill(name=\"visual-artist\")` for palette generation, token export, and WCAG auditing."];
|
|
58
58
|
}, {
|
|
59
59
|
readonly command: "/design-audit <url>";
|
|
60
60
|
readonly summary: "Run a rigorous design and accessibility audit of a live page or design.";
|
|
@@ -62,7 +62,7 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
62
62
|
}, {
|
|
63
63
|
readonly command: "/generate-palette <seed>";
|
|
64
64
|
readonly summary: "Generate an accessible color system from a seed color.";
|
|
65
|
-
readonly details: readonly ["
|
|
65
|
+
readonly details: readonly ["Invoke via `skill(name=\"visual-artist\")` for palette math, token export, and WCAG checks."];
|
|
66
66
|
}, {
|
|
67
67
|
readonly command: "/design-system-review";
|
|
68
68
|
readonly summary: "Audit an existing design system for consistency, gaps, redundancies, and token drift.";
|
|
@@ -72,7 +72,7 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
72
72
|
}];
|
|
73
73
|
readonly sections: readonly [{
|
|
74
74
|
readonly heading: "Sub-Skill Delegation";
|
|
75
|
-
readonly items: readonly ["
|
|
75
|
+
readonly items: readonly ["Invoke via `skill(name=\"visual-artist\")` for detailed color systems, design tokens, and WCAG-focused palette work."];
|
|
76
76
|
}, {
|
|
77
77
|
readonly heading: "Delegation Patterns";
|
|
78
78
|
readonly items: readonly ["Use `visual-engineering` for implementing designs in code.", "Use `agent-browser` for browser-based design capture or audit data.", "Use `writing` for long-form brand copy, taglines, or UX-writing production at scale."];
|
|
@@ -81,10 +81,10 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
81
81
|
readonly "product-wunderkind": {
|
|
82
82
|
readonly commands: readonly [{
|
|
83
83
|
readonly command: "/breakdown <task>";
|
|
84
|
-
readonly summary: "
|
|
84
|
+
readonly summary: "Invoke via `skill(name=\"agile-pm\")` for concern-grouped, parallel-safe subtasks with file targets and dependency order.";
|
|
85
85
|
}, {
|
|
86
86
|
readonly command: "/sprint-plan";
|
|
87
|
-
readonly summary: "
|
|
87
|
+
readonly summary: "Invoke via `skill(name=\"agile-pm\")` for a sprint plan with points, file targets, dependencies, and stretch work.";
|
|
88
88
|
}, {
|
|
89
89
|
readonly command: "/prd <feature>";
|
|
90
90
|
readonly summary: "Produce Context, Goals, Non-Goals, User Stories, Requirements, Open Questions, Success Metrics, and Timeline.";
|
|
@@ -94,17 +94,17 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
94
94
|
readonly summary: "Refine the objective, propose measurable KRs, validate alignment, and flag objective-vs-KR risks.";
|
|
95
95
|
}, {
|
|
96
96
|
readonly command: "/file-conflict-check";
|
|
97
|
-
readonly summary: "
|
|
97
|
+
readonly summary: "Invoke via `skill(name=\"agile-pm\")` to build a file-to-task conflict matrix with severity and safe sequencing.";
|
|
98
98
|
}, {
|
|
99
99
|
readonly command: "/north-star <product>";
|
|
100
100
|
readonly summary: "Identify the value moment, propose candidate metrics, choose the best one, and map input metrics plus cadence.";
|
|
101
101
|
}];
|
|
102
102
|
readonly sections: readonly [{
|
|
103
103
|
readonly heading: "Sub-Skill Delegation";
|
|
104
|
-
readonly items: readonly ["
|
|
104
|
+
readonly items: readonly ["Invoke via `skill(name=\"grill-me\")`, `skill(name=\"prd-pipeline\")`, `skill(name=\"ubiquitous-language\")`, and `skill(name=\"triage-issue\")` for deep product work.", "Invoke via `skill(name=\"agile-pm\")` whenever the request needs sprint planning, backlog structuring, task decomposition, or file-conflict analysis."];
|
|
105
105
|
}, {
|
|
106
106
|
readonly heading: "Delegation Patterns";
|
|
107
|
-
readonly items: readonly ["
|
|
107
|
+
readonly items: readonly ["Delegate via `task(...)` to `librarian` for competitor research, market data, and industry-report gathering.", "Delegate via `task(...)` to `explore` for codebase mapping before decomposition or acceptance review.", "Delegate via `task(...)` to `writing` for PRDs, specs, and long-form product documentation.", "Delegate via `task(...)` to `marketing-wunderkind` for campaign, launch, and funnel authority.", "Delegate via `task(...)` to `fullstack-wunderkind` for technical follow-up after product intake with the repro, severity, and expected behavior already framed."];
|
|
108
108
|
}];
|
|
109
109
|
};
|
|
110
110
|
readonly "fullstack-wunderkind": {
|
|
@@ -114,13 +114,13 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
114
114
|
readonly details: readonly ["Return a CWV table with measured vs target values (`LCP < 2.5s`, `CLS < 0.1`, `FCP < 1.8s`, `TTFB < 800ms`) plus raw violations and errors."];
|
|
115
115
|
}, {
|
|
116
116
|
readonly command: "/bundle-analyze";
|
|
117
|
-
readonly summary: "
|
|
117
|
+
readonly summary: "Invoke via `skill(name=\"vercel-architect\")` to identify largest chunks, heavy dependencies, and concrete replacement opportunities.";
|
|
118
118
|
}, {
|
|
119
119
|
readonly command: "/db-audit";
|
|
120
|
-
readonly summary: "
|
|
120
|
+
readonly summary: "Invoke via `skill(name=\"db-architect\")` for schema, index, migration-drift, and slow-query review; report destructive actions without executing them.";
|
|
121
121
|
}, {
|
|
122
122
|
readonly command: "/edge-vs-node <filepath>";
|
|
123
|
-
readonly summary: "
|
|
123
|
+
readonly summary: "Invoke via `skill(name=\"vercel-architect\")` to decide runtime compatibility and explain blockers.";
|
|
124
124
|
}, {
|
|
125
125
|
readonly command: "/architecture-review <component>";
|
|
126
126
|
readonly summary: "Assess separation of concerns, coupling, traps, and minimal refactor steps with effort and risk.";
|
|
@@ -133,25 +133,25 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
133
133
|
}];
|
|
134
134
|
readonly sections: readonly [{
|
|
135
135
|
readonly heading: "Sub-Skill Delegation";
|
|
136
|
-
readonly items: readonly ["
|
|
136
|
+
readonly items: readonly ["Invoke via `skill(name=\"tdd\")` for red-green-refactor loops, regression hardening, and defect-driven delivery.", "Invoke via `skill(name=\"vercel-architect\")` for Vercel, App Router, Edge runtime, Neon branching, and performance work.", "Invoke via `skill(name=\"db-architect\")` for schema design, query analysis, migrations, and index auditing."];
|
|
137
137
|
}, {
|
|
138
138
|
readonly heading: "Delegation Patterns";
|
|
139
|
-
readonly items: readonly ["
|
|
139
|
+
readonly items: readonly ["Delegate via `task(...)` to `visual-engineering` for UI implementation and coded visual work.", "Delegate via `task(...)` to `agent-browser` for browser automation, E2E capture, and page validation.", "Delegate via `task(...)` to `explore` for codebase mapping and `librarian` for external library/documentation research.", "Delegate via `task(...)` to `git-master` for git operations.", "Invoke via `skill(name=\"technical-writer\")` for external developer docs or tutorials."];
|
|
140
140
|
}];
|
|
141
141
|
};
|
|
142
142
|
readonly ciso: {
|
|
143
143
|
readonly commands: readonly [{
|
|
144
144
|
readonly command: "/threat-model <system or feature>";
|
|
145
|
-
readonly summary: "
|
|
145
|
+
readonly summary: "Invoke via `skill(name=\"security-analyst\")` to build a STRIDE threat model, rate risks, and map mitigations.";
|
|
146
146
|
}, {
|
|
147
147
|
readonly command: "/security-audit <scope>";
|
|
148
|
-
readonly summary: "
|
|
148
|
+
readonly summary: "Invoke via `skill(name=\"pen-tester\")` for active security testing; review OWASP coverage, auth, authorization, validation, secrets, headers, and dependency risk.";
|
|
149
149
|
}, {
|
|
150
150
|
readonly command: "/compliance-check <regulation>";
|
|
151
|
-
readonly summary: "
|
|
151
|
+
readonly summary: "Invoke via `skill(name=\"compliance-officer\")` to assess obligations and evidence gaps against a named regulation.";
|
|
152
152
|
}, {
|
|
153
153
|
readonly command: "/incident-response <incident type>";
|
|
154
|
-
readonly summary: "Run contain/assess/notify/eradicate/recover/learn
|
|
154
|
+
readonly summary: "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`.";
|
|
155
155
|
}, {
|
|
156
156
|
readonly command: "/security-headers-check <url>";
|
|
157
157
|
readonly summary: "Use `agent-browser` to capture headers and report missing or misconfigured controls.";
|
|
@@ -161,10 +161,10 @@ export declare const RETAINED_AGENT_SLASH_COMMANDS: {
|
|
|
161
161
|
}];
|
|
162
162
|
readonly sections: readonly [{
|
|
163
163
|
readonly heading: "Sub-Skill Delegation";
|
|
164
|
-
readonly items: readonly ["
|
|
164
|
+
readonly items: readonly ["Invoke via `skill(name=\"security-analyst\")` for vulnerability assessment, OWASP analysis, code review, and auth testing.", "Invoke via `skill(name=\"pen-tester\")` for active testing, attack simulation, ASVS checks, auth-flow abuse, and force browsing.", "Invoke via `skill(name=\"compliance-officer\")` for GDPR/POPIA work, data classification, consent handling, and breach notification obligations."];
|
|
165
165
|
}, {
|
|
166
166
|
readonly heading: "Delegation Patterns";
|
|
167
|
-
readonly items: readonly ["
|
|
167
|
+
readonly items: readonly ["Delegate via `task(...)` to `legal-counsel` for OSS licensing, TOS/Privacy Policy, DPAs, CLAs, and contract-review work."];
|
|
168
168
|
}];
|
|
169
169
|
};
|
|
170
170
|
readonly "legal-counsel": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/agents/slash-commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC3C,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,8BAA8B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/agents/slash-commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC3C,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,8BAA8B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6QhC,CAAA;AAEV,MAAM,MAAM,8BAA8B,GAAG,MAAM,OAAO,6BAA6B,CAAA;AAiBvF,wBAAgB,sCAAsC,CAAC,MAAM,SAAS,MAAM,EAC1E,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,GACvD,KAAK,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC,CA2B/C;AAED,wBAAgB,kCAAkC,IAAI,KAAK,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAC,CAE1H;AAED,wBAAgB,4CAA4C,CAAC,OAAO,EAAE,8BAA8B,GAAG,MAAM,CAuC5G"}
|
|
@@ -12,7 +12,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
12
12
|
{
|
|
13
13
|
command: "/content-calendar <platform> <period>",
|
|
14
14
|
summary: "Generate a platform-specific content calendar.",
|
|
15
|
-
details: ["
|
|
15
|
+
details: ["Invoke via `skill(name=\"social-media-maven\")` for channel-native plans, posting cadence, themes, and copy scaffolding."],
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
command: "/community-audit",
|
|
@@ -25,7 +25,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
25
25
|
{
|
|
26
26
|
command: "/docs-launch-brief <release>",
|
|
27
27
|
summary: "Plan the audience-facing launch package for a technical release.",
|
|
28
|
-
details: ["
|
|
28
|
+
details: ["Invoke via `skill(name=\"technical-writer\")` when the work becomes deep developer-documentation drafting."],
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
command: "/dx-audit",
|
|
@@ -42,7 +42,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
42
42
|
items: [
|
|
43
43
|
"Use `visual-engineering` for campaign design, launch visuals, and brand-system execution.",
|
|
44
44
|
"Use `librarian` for market research, event inventories, and external trend gathering.",
|
|
45
|
-
"
|
|
45
|
+
"Invoke via `skill(name=\"technical-writer\")` for deep developer-facing docs or migration-writing execution.",
|
|
46
46
|
"Use `fullstack-wunderkind` to verify technical setup steps or code-example correctness.",
|
|
47
47
|
"Use `legal-counsel` for launch, claim, or regulatory review that needs legal authority.",
|
|
48
48
|
],
|
|
@@ -54,7 +54,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
54
54
|
{
|
|
55
55
|
command: "/brand-identity <brief>",
|
|
56
56
|
summary: "Develop a brand identity system from a creative brief.",
|
|
57
|
-
details: ["
|
|
57
|
+
details: ["Invoke via `skill(name=\"visual-artist\")` for palette generation, token export, and WCAG auditing."],
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
command: "/design-audit <url>",
|
|
@@ -64,7 +64,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
64
64
|
{
|
|
65
65
|
command: "/generate-palette <seed>",
|
|
66
66
|
summary: "Generate an accessible color system from a seed color.",
|
|
67
|
-
details: ["
|
|
67
|
+
details: ["Invoke via `skill(name=\"visual-artist\")` for palette math, token export, and WCAG checks."],
|
|
68
68
|
},
|
|
69
69
|
{
|
|
70
70
|
command: "/design-system-review",
|
|
@@ -78,7 +78,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
78
78
|
sections: [
|
|
79
79
|
{
|
|
80
80
|
heading: "Sub-Skill Delegation",
|
|
81
|
-
items: ["
|
|
81
|
+
items: ["Invoke via `skill(name=\"visual-artist\")` for detailed color systems, design tokens, and WCAG-focused palette work."],
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
heading: "Delegation Patterns",
|
|
@@ -94,11 +94,11 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
94
94
|
commands: [
|
|
95
95
|
{
|
|
96
96
|
command: "/breakdown <task>",
|
|
97
|
-
summary: "
|
|
97
|
+
summary: "Invoke via `skill(name=\"agile-pm\")` for concern-grouped, parallel-safe subtasks with file targets and dependency order.",
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
command: "/sprint-plan",
|
|
101
|
-
summary: "
|
|
101
|
+
summary: "Invoke via `skill(name=\"agile-pm\")` for a sprint plan with points, file targets, dependencies, and stretch work.",
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
104
|
command: "/prd <feature>",
|
|
@@ -111,7 +111,7 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
command: "/file-conflict-check",
|
|
114
|
-
summary: "
|
|
114
|
+
summary: "Invoke via `skill(name=\"agile-pm\")` to build a file-to-task conflict matrix with severity and safe sequencing.",
|
|
115
115
|
},
|
|
116
116
|
{
|
|
117
117
|
command: "/north-star <product>",
|
|
@@ -122,18 +122,18 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
122
122
|
{
|
|
123
123
|
heading: "Sub-Skill Delegation",
|
|
124
124
|
items: [
|
|
125
|
-
"
|
|
126
|
-
"
|
|
125
|
+
"Invoke via `skill(name=\"grill-me\")`, `skill(name=\"prd-pipeline\")`, `skill(name=\"ubiquitous-language\")`, and `skill(name=\"triage-issue\")` for deep product work.",
|
|
126
|
+
"Invoke via `skill(name=\"agile-pm\")` whenever the request needs sprint planning, backlog structuring, task decomposition, or file-conflict analysis.",
|
|
127
127
|
],
|
|
128
128
|
},
|
|
129
129
|
{
|
|
130
130
|
heading: "Delegation Patterns",
|
|
131
131
|
items: [
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
132
|
+
"Delegate via `task(...)` to `librarian` for competitor research, market data, and industry-report gathering.",
|
|
133
|
+
"Delegate via `task(...)` to `explore` for codebase mapping before decomposition or acceptance review.",
|
|
134
|
+
"Delegate via `task(...)` to `writing` for PRDs, specs, and long-form product documentation.",
|
|
135
|
+
"Delegate via `task(...)` to `marketing-wunderkind` for campaign, launch, and funnel authority.",
|
|
136
|
+
"Delegate via `task(...)` to `fullstack-wunderkind` for technical follow-up after product intake with the repro, severity, and expected behavior already framed.",
|
|
137
137
|
],
|
|
138
138
|
},
|
|
139
139
|
],
|
|
@@ -147,15 +147,15 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
command: "/bundle-analyze",
|
|
150
|
-
summary: "
|
|
150
|
+
summary: "Invoke via `skill(name=\"vercel-architect\")` to identify largest chunks, heavy dependencies, and concrete replacement opportunities.",
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
command: "/db-audit",
|
|
154
|
-
summary: "
|
|
154
|
+
summary: "Invoke via `skill(name=\"db-architect\")` for schema, index, migration-drift, and slow-query review; report destructive actions without executing them.",
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
command: "/edge-vs-node <filepath>",
|
|
158
|
-
summary: "
|
|
158
|
+
summary: "Invoke via `skill(name=\"vercel-architect\")` to decide runtime compatibility and explain blockers.",
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
command: "/architecture-review <component>",
|
|
@@ -174,18 +174,19 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
174
174
|
{
|
|
175
175
|
heading: "Sub-Skill Delegation",
|
|
176
176
|
items: [
|
|
177
|
-
"
|
|
178
|
-
"
|
|
179
|
-
"
|
|
177
|
+
"Invoke via `skill(name=\"tdd\")` for red-green-refactor loops, regression hardening, and defect-driven delivery.",
|
|
178
|
+
"Invoke via `skill(name=\"vercel-architect\")` for Vercel, App Router, Edge runtime, Neon branching, and performance work.",
|
|
179
|
+
"Invoke via `skill(name=\"db-architect\")` for schema design, query analysis, migrations, and index auditing.",
|
|
180
180
|
],
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
heading: "Delegation Patterns",
|
|
184
184
|
items: [
|
|
185
|
-
"
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
"
|
|
185
|
+
"Delegate via `task(...)` to `visual-engineering` for UI implementation and coded visual work.",
|
|
186
|
+
"Delegate via `task(...)` to `agent-browser` for browser automation, E2E capture, and page validation.",
|
|
187
|
+
"Delegate via `task(...)` to `explore` for codebase mapping and `librarian` for external library/documentation research.",
|
|
188
|
+
"Delegate via `task(...)` to `git-master` for git operations.",
|
|
189
|
+
"Invoke via `skill(name=\"technical-writer\")` for external developer docs or tutorials.",
|
|
189
190
|
],
|
|
190
191
|
},
|
|
191
192
|
],
|
|
@@ -194,19 +195,19 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
194
195
|
commands: [
|
|
195
196
|
{
|
|
196
197
|
command: "/threat-model <system or feature>",
|
|
197
|
-
summary: "
|
|
198
|
+
summary: "Invoke via `skill(name=\"security-analyst\")` to build a STRIDE threat model, rate risks, and map mitigations.",
|
|
198
199
|
},
|
|
199
200
|
{
|
|
200
201
|
command: "/security-audit <scope>",
|
|
201
|
-
summary: "
|
|
202
|
+
summary: "Invoke via `skill(name=\"pen-tester\")` for active security testing; review OWASP coverage, auth, authorization, validation, secrets, headers, and dependency risk.",
|
|
202
203
|
},
|
|
203
204
|
{
|
|
204
205
|
command: "/compliance-check <regulation>",
|
|
205
|
-
summary: "
|
|
206
|
+
summary: "Invoke via `skill(name=\"compliance-officer\")` to assess obligations and evidence gaps against a named regulation.",
|
|
206
207
|
},
|
|
207
208
|
{
|
|
208
209
|
command: "/incident-response <incident type>",
|
|
209
|
-
summary: "Run contain/assess/notify/eradicate/recover/learn
|
|
210
|
+
summary: "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`.",
|
|
210
211
|
},
|
|
211
212
|
{
|
|
212
213
|
command: "/security-headers-check <url>",
|
|
@@ -221,14 +222,14 @@ export const RETAINED_AGENT_SLASH_COMMANDS = {
|
|
|
221
222
|
{
|
|
222
223
|
heading: "Sub-Skill Delegation",
|
|
223
224
|
items: [
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
225
|
+
"Invoke via `skill(name=\"security-analyst\")` for vulnerability assessment, OWASP analysis, code review, and auth testing.",
|
|
226
|
+
"Invoke via `skill(name=\"pen-tester\")` for active testing, attack simulation, ASVS checks, auth-flow abuse, and force browsing.",
|
|
227
|
+
"Invoke via `skill(name=\"compliance-officer\")` for GDPR/POPIA work, data classification, consent handling, and breach notification obligations.",
|
|
227
228
|
],
|
|
228
229
|
},
|
|
229
230
|
{
|
|
230
231
|
heading: "Delegation Patterns",
|
|
231
|
-
items: ["
|
|
232
|
+
items: ["Delegate via `task(...)` to `legal-counsel` for OSS licensing, TOS/Privacy Policy, DPAs, CLAs, and contract-review work."],
|
|
232
233
|
},
|
|
233
234
|
],
|
|
234
235
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/agents/slash-commands.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,sBAAsB,EAAE;QACtB,QAAQ,EAAE;YACR;gBACE,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,+DAA+D;gBACxE,OAAO,EAAE;oBACP,qGAAqG;oBACrG,0EAA0E;iBAC3E;aACF;YACD;gBACE,OAAO,EAAE,uCAAuC;gBAChD,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/agents/slash-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const DURABLE_ARTIFACT_TOOL_NAME: "wunderkind_write_artifact";
|
|
2
|
+
export type DurableArtifactAgentKey = "marketing-wunderkind" | "creative-director" | "product-wunderkind" | "fullstack-wunderkind" | "ciso" | "legal-counsel";
|
|
3
|
+
export type DurableArtifactKind = "prd" | "plan" | "issue" | "docs-output" | "design-md" | "notepad";
|
|
4
|
+
export interface DurableArtifactWriteRequest {
|
|
5
|
+
agentKey: DurableArtifactAgentKey;
|
|
6
|
+
kind: DurableArtifactKind;
|
|
7
|
+
relativePath: string;
|
|
8
|
+
content: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DurableArtifactWriteResult {
|
|
11
|
+
absolutePath: string;
|
|
12
|
+
relativePath: string;
|
|
13
|
+
created: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function writeDurableArtifact(request: DurableArtifactWriteRequest, cwd: string): DurableArtifactWriteResult;
|
|
16
|
+
export declare function readDurableArtifact(filePath: string): string | null;
|
|
17
|
+
//# sourceMappingURL=artifact-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-writer.d.ts","sourceRoot":"","sources":["../src/artifact-writer.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,EAAG,2BAAoC,CAAA;AAE9E,MAAM,MAAM,uBAAuB,GAC/B,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,GACpB,sBAAsB,GACtB,MAAM,GACN,eAAe,CAAA;AAEnB,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,CAAA;AAEpG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,uBAAuB,CAAA;IACjC,IAAI,EAAE,mBAAmB,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB;AAgFD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,EAAE,GAAG,EAAE,MAAM,GAAG,0BAA0B,CA2BlH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join, normalize, relative } from "node:path";
|
|
3
|
+
export const DURABLE_ARTIFACT_TOOL_NAME = "wunderkind_write_artifact";
|
|
4
|
+
function normalizeRelativePath(input) {
|
|
5
|
+
const trimmed = input.trim();
|
|
6
|
+
const normalized = normalize(trimmed).replaceAll("\\", "/");
|
|
7
|
+
return normalized.startsWith("./") ? normalized.slice(2) : normalized;
|
|
8
|
+
}
|
|
9
|
+
function isPathWithin(parentPath, candidatePath) {
|
|
10
|
+
const rel = relative(parentPath, candidatePath);
|
|
11
|
+
return rel === "" || (!rel.startsWith("../") && rel !== ".." && !rel.includes("/../"));
|
|
12
|
+
}
|
|
13
|
+
function ensureSafeRelativePath(relativePath) {
|
|
14
|
+
const normalized = normalizeRelativePath(relativePath);
|
|
15
|
+
if (normalized === "" || normalized === ".") {
|
|
16
|
+
throw new Error("relativePath must not be empty");
|
|
17
|
+
}
|
|
18
|
+
if (normalized.startsWith("/") || normalized.startsWith("../") || normalized === ".." || normalized.includes("/../")) {
|
|
19
|
+
throw new Error("relativePath must stay within the current project root");
|
|
20
|
+
}
|
|
21
|
+
return normalized;
|
|
22
|
+
}
|
|
23
|
+
function getAllowedArtifactRoots(agentKey) {
|
|
24
|
+
switch (agentKey) {
|
|
25
|
+
case "product-wunderkind":
|
|
26
|
+
return [".sisyphus/prds", ".sisyphus/plans", ".sisyphus/issues", ".sisyphus/notepads"];
|
|
27
|
+
case "creative-director":
|
|
28
|
+
return ["DESIGN.md", ".wunderkind/stitch", ".sisyphus/notepads"];
|
|
29
|
+
case "marketing-wunderkind":
|
|
30
|
+
return ["docs", ".sisyphus/notepads"];
|
|
31
|
+
case "ciso":
|
|
32
|
+
return ["docs", ".sisyphus/notepads"];
|
|
33
|
+
case "fullstack-wunderkind":
|
|
34
|
+
return ["docs", ".sisyphus/notepads", ".sisyphus/prds", ".sisyphus/plans", ".sisyphus/issues", "DESIGN.md", ".wunderkind/stitch"];
|
|
35
|
+
case "legal-counsel":
|
|
36
|
+
return [".sisyphus/notepads"];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function isAllowedArtifactPath(agentKey, normalizedRelativePath) {
|
|
40
|
+
return getAllowedArtifactRoots(agentKey).some((allowedRoot) => {
|
|
41
|
+
if (allowedRoot.endsWith(".md")) {
|
|
42
|
+
return normalizedRelativePath === allowedRoot || normalizedRelativePath.startsWith(`${allowedRoot}/`);
|
|
43
|
+
}
|
|
44
|
+
return normalizedRelativePath === allowedRoot || normalizedRelativePath.startsWith(`${allowedRoot}/`);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function validateArtifactKind(agentKey, kind, normalizedRelativePath) {
|
|
48
|
+
if (kind === "prd" && (agentKey !== "product-wunderkind" && agentKey !== "fullstack-wunderkind")) {
|
|
49
|
+
throw new Error(`${agentKey} may not write PRD artifacts`);
|
|
50
|
+
}
|
|
51
|
+
if (kind === "plan" && (agentKey !== "product-wunderkind" && agentKey !== "fullstack-wunderkind")) {
|
|
52
|
+
throw new Error(`${agentKey} may not write plan artifacts`);
|
|
53
|
+
}
|
|
54
|
+
if (kind === "issue" && (agentKey !== "product-wunderkind" && agentKey !== "fullstack-wunderkind")) {
|
|
55
|
+
throw new Error(`${agentKey} may not write issue artifacts`);
|
|
56
|
+
}
|
|
57
|
+
if (kind === "design-md" && agentKey !== "creative-director" && agentKey !== "fullstack-wunderkind") {
|
|
58
|
+
throw new Error(`${agentKey} may not write design artifacts`);
|
|
59
|
+
}
|
|
60
|
+
if (kind === "docs-output" && !["marketing-wunderkind", "creative-director", "product-wunderkind", "fullstack-wunderkind", "ciso"].includes(agentKey)) {
|
|
61
|
+
throw new Error(`${agentKey} may not write docs-output artifacts`);
|
|
62
|
+
}
|
|
63
|
+
if (kind === "notepad" && !normalizedRelativePath.startsWith(".sisyphus/notepads/")) {
|
|
64
|
+
throw new Error("notepad artifacts must stay under .sisyphus/notepads/");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function writeDurableArtifact(request, cwd) {
|
|
68
|
+
const normalizedRelativePath = ensureSafeRelativePath(request.relativePath);
|
|
69
|
+
if (!isAllowedArtifactPath(request.agentKey, normalizedRelativePath)) {
|
|
70
|
+
throw new Error(`${request.agentKey} may not write outside its bounded durable-artifact lanes`);
|
|
71
|
+
}
|
|
72
|
+
validateArtifactKind(request.agentKey, request.kind, normalizedRelativePath);
|
|
73
|
+
const absolutePath = join(cwd, normalizedRelativePath);
|
|
74
|
+
if (!isPathWithin(cwd, absolutePath)) {
|
|
75
|
+
throw new Error("resolved durable artifact path escaped the current project root");
|
|
76
|
+
}
|
|
77
|
+
if (existsSync(absolutePath) && statSync(absolutePath).isDirectory()) {
|
|
78
|
+
throw new Error("durable artifact path must point to a file, not a directory");
|
|
79
|
+
}
|
|
80
|
+
mkdirSync(dirname(absolutePath), { recursive: true });
|
|
81
|
+
const created = !existsSync(absolutePath);
|
|
82
|
+
writeFileSync(absolutePath, request.content, "utf-8");
|
|
83
|
+
return {
|
|
84
|
+
absolutePath,
|
|
85
|
+
relativePath: normalizedRelativePath,
|
|
86
|
+
created,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export function readDurableArtifact(filePath) {
|
|
90
|
+
return existsSync(filePath) ? readFileSync(filePath, "utf-8") : null;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=artifact-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-writer.js","sourceRoot":"","sources":["../src/artifact-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACtF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE9D,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAAoC,CAAA;AAyB9E,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC3D,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AACvE,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB,EAAE,aAAqB;IAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;IAC/C,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AACxF,CAAC;AAED,SAAS,sBAAsB,CAAC,YAAoB;IAClD,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAA;IAEtD,IAAI,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrH,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAiC;IAChE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,oBAAoB;YACvB,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAA;QACxF,KAAK,mBAAmB;YACtB,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAA;QAClE,KAAK,sBAAsB;YACzB,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QACvC,KAAK,MAAM;YACT,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QACvC,KAAK,sBAAsB;YACzB,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAA;QACnI,KAAK,eAAe;YAClB,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACjC,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAiC,EAAE,sBAA8B;IAC9F,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QAC5D,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,sBAAsB,KAAK,WAAW,IAAI,sBAAsB,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC,CAAA;QACvG,CAAC;QAED,OAAO,sBAAsB,KAAK,WAAW,IAAI,sBAAsB,CAAC,UAAU,CAAC,GAAG,WAAW,GAAG,CAAC,CAAA;IACvG,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAiC,EAAE,IAAyB,EAAE,sBAA8B;IACxH,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,sBAAsB,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,8BAA8B,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,sBAAsB,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,+BAA+B,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,sBAAsB,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,gCAAgC,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,sBAAsB,EAAE,CAAC;QACpG,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,iCAAiC,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtJ,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,sCAAsC,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoC,EAAE,GAAW;IACpF,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAE3E,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,2DAA2D,CAAC,CAAA;IACjG,CAAC;IAED,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;IAE5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;IACtD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IAChF,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IACzC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAErD,OAAO;QACL,YAAY;QACZ,YAAY,EAAE,sBAAsB;QACpC,OAAO;KACR,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAGV,iBAAiB,EAKjB,cAAc,EAEd,YAAY,EACZ,aAAa,EAEb,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"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"}
|