@grant-vine/wunderkind 0.3.0 → 0.4.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 +156 -36
- package/agents/brand-builder.md +16 -2
- package/agents/ciso.md +23 -0
- package/agents/creative-director.md +14 -0
- package/agents/fullstack-wunderkind.md +16 -0
- package/agents/marketing-wunderkind.md +14 -0
- package/agents/operations-lead.md +15 -0
- package/agents/product-wunderkind.md +15 -0
- package/agents/qa-specialist.md +14 -0
- package/dist/agents/brand-builder.d.ts.map +1 -1
- package/dist/agents/brand-builder.js +17 -3
- package/dist/agents/brand-builder.js.map +1 -1
- package/dist/agents/ciso.d.ts.map +1 -1
- package/dist/agents/ciso.js +24 -1
- package/dist/agents/ciso.js.map +1 -1
- package/dist/agents/creative-director.d.ts.map +1 -1
- package/dist/agents/creative-director.js +15 -1
- 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 +17 -1
- package/dist/agents/fullstack-wunderkind.js.map +1 -1
- package/dist/agents/marketing-wunderkind.d.ts.map +1 -1
- package/dist/agents/marketing-wunderkind.js +15 -1
- package/dist/agents/marketing-wunderkind.js.map +1 -1
- package/dist/agents/operations-lead.d.ts.map +1 -1
- package/dist/agents/operations-lead.js +16 -1
- package/dist/agents/operations-lead.js.map +1 -1
- package/dist/agents/product-wunderkind.d.ts.map +1 -1
- package/dist/agents/product-wunderkind.js +16 -1
- package/dist/agents/product-wunderkind.js.map +1 -1
- package/dist/agents/qa-specialist.d.ts.map +1 -1
- package/dist/agents/qa-specialist.js +15 -1
- package/dist/agents/qa-specialist.js.map +1 -1
- package/dist/cli/cli-installer.d.ts.map +1 -1
- package/dist/cli/cli-installer.js +48 -4
- package/dist/cli/cli-installer.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts +5 -3
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +160 -59
- package/dist/cli/config-manager/index.js.map +1 -1
- package/dist/cli/gitignore-manager.d.ts +8 -0
- package/dist/cli/gitignore-manager.d.ts.map +1 -0
- package/dist/cli/gitignore-manager.js +57 -0
- package/dist/cli/gitignore-manager.js.map +1 -0
- package/dist/cli/index.js +85 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/memory-commands.d.ts +3 -0
- package/dist/cli/memory-commands.d.ts.map +1 -0
- package/dist/cli/memory-commands.js +138 -0
- package/dist/cli/memory-commands.js.map +1 -0
- package/dist/cli/tui-installer.d.ts +2 -1
- package/dist/cli/tui-installer.d.ts.map +1 -1
- package/dist/cli/tui-installer.js +385 -18
- package/dist/cli/tui-installer.js.map +1 -1
- package/dist/cli/types.d.ts +43 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -6
- package/dist/index.js.map +1 -1
- package/dist/memory/adapters/file.d.ts +21 -0
- package/dist/memory/adapters/file.d.ts.map +1 -0
- package/dist/memory/adapters/file.js +232 -0
- package/dist/memory/adapters/file.js.map +1 -0
- package/dist/memory/adapters/mem0.d.ts +37 -0
- package/dist/memory/adapters/mem0.d.ts.map +1 -0
- package/dist/memory/adapters/mem0.js +171 -0
- package/dist/memory/adapters/mem0.js.map +1 -0
- package/dist/memory/adapters/sqlite.d.ts +21 -0
- package/dist/memory/adapters/sqlite.d.ts.map +1 -0
- package/dist/memory/adapters/sqlite.js +198 -0
- package/dist/memory/adapters/sqlite.js.map +1 -0
- package/dist/memory/adapters/stub.d.ts +20 -0
- package/dist/memory/adapters/stub.d.ts.map +1 -0
- package/dist/memory/adapters/stub.js +58 -0
- package/dist/memory/adapters/stub.js.map +1 -0
- package/dist/memory/adapters/types.d.ts +45 -0
- package/dist/memory/adapters/types.d.ts.map +1 -0
- package/dist/memory/adapters/types.js +2 -0
- package/dist/memory/adapters/types.js.map +1 -0
- package/dist/memory/adapters/vector.d.ts +29 -0
- package/dist/memory/adapters/vector.d.ts.map +1 -0
- package/dist/memory/adapters/vector.js +347 -0
- package/dist/memory/adapters/vector.js.map +1 -0
- package/dist/memory/docker.d.ts +9 -0
- package/dist/memory/docker.d.ts.map +1 -0
- package/dist/memory/docker.js +43 -0
- package/dist/memory/docker.js.map +1 -0
- package/dist/memory/format.d.ts +5 -0
- package/dist/memory/format.d.ts.map +1 -0
- package/dist/memory/format.js +41 -0
- package/dist/memory/format.js.map +1 -0
- package/dist/memory/index.d.ts +19 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +183 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/slug.d.ts +2 -0
- package/dist/memory/slug.d.ts.map +1 -0
- package/dist/memory/slug.js +40 -0
- package/dist/memory/slug.js.map +1 -0
- package/dist/memory/tools.d.ts +3 -0
- package/dist/memory/tools.d.ts.map +1 -0
- package/dist/memory/tools.js +84 -0
- package/dist/memory/tools.js.map +1 -0
- package/package.json +13 -3
- package/skills/memory-manager/SKILL.md +48 -0
|
@@ -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;AAIhE,eAAO,MAAM,6BAA6B,EAAE,mBAuB3C,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;AAIhE,eAAO,MAAM,6BAA6B,EAAE,mBAuB3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAkUzE;yBAlUe,8BAA8B"}
|
|
@@ -28,7 +28,23 @@ export function createFullstackWunderkindAgent(model) {
|
|
|
28
28
|
mode: MODE,
|
|
29
29
|
model,
|
|
30
30
|
temperature: 0.1,
|
|
31
|
-
prompt: `# Fullstack Wunderkind
|
|
31
|
+
prompt: `# Fullstack Wunderkind — Soul
|
|
32
|
+
|
|
33
|
+
You are the **Fullstack Wunderkind**. Before acting, read \`wunderkind.config.jsonc\` and load:
|
|
34
|
+
- \`ctoPersonality\` — your character archetype:
|
|
35
|
+
- \`grizzled-sysadmin\`: Anti-hype, brutally pragmatic. Container orchestration is just process management with YAML. Every new abstraction is a liability until proven otherwise.
|
|
36
|
+
- \`startup-bro\`: Ship it. Tests are a Series B problem. Move fast, iterate, apologise if needed. Velocity is survival.
|
|
37
|
+
- \`code-archaeologist\`: Methodical and empathetic to legacy. Understand before rewriting. Every codebase has reasons behind its decisions.
|
|
38
|
+
- \`orgStructure\`: If \`hierarchical\`, you own all engineering architecture decisions. Escalate cross-domain conflicts to CISO (security) or product (scope). If \`flat\`, all agents are peers.
|
|
39
|
+
- \`teamCulture\`: \`formal-strict\` means ADRs and documented decisions. \`experimental-informal\` means ship first, document later.
|
|
40
|
+
|
|
41
|
+
Also read \`region\`, \`industry\`, and \`primaryRegulation\` for compliance context in auth and data handling.
|
|
42
|
+
|
|
43
|
+
Read \`.wunderkind/memory/fullstack-wunderkind.md\` (if present) — project-specific engineering facts and architecture decisions you've learned. When you learn something new, call \`wunderkind_take_note\`. To recall past knowledge, call \`wunderkind_search_memories\`. Load the \`wunderkind:memory-manager\` skill for full memory command reference.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
# Fullstack Wunderkind
|
|
32
48
|
|
|
33
49
|
You are the **Fullstack Wunderkind** — a CTO-calibre engineer and architect who commands the entire stack from pixel to database to infrastructure.
|
|
34
50
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullstack-wunderkind.js","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,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,4GAA4G;SAC/G;KACF;IACD,OAAO,EAAE;QACP,0DAA0D;QAC1D,gDAAgD;QAChD,uEAAuE;QACvE,6DAA6D;QAC7D,kDAAkD;KACnD;IACD,SAAS,EAAE;QACT,8EAA8E;QAC9E,+CAA+C;QAC/C,+CAA+C;KAChD;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO;QACL,WAAW,EACT,kuCAAkuC;QACpuC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"fullstack-wunderkind.js","sourceRoot":"","sources":["../../src/agents/fullstack-wunderkind.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,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,4GAA4G;SAC/G;KACF;IACD,OAAO,EAAE;QACP,0DAA0D;QAC1D,gDAAgD;QAChD,uEAAuE;QACvE,6DAA6D;QAC7D,kDAAkD;KACnD;IACD,SAAS,EAAE;QACT,8EAA8E;QAC9E,+CAA+C;QAC/C,+CAA+C;KAChD;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,OAAO;QACL,WAAW,EACT,kuCAAkuC;QACpuC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAyTyF;KAClG,CAAA;AACH,CAAC;AAED,8BAA8B,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;AAKhE,eAAO,MAAM,6BAA6B,EAAE,mBAuB3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
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;AAKhE,eAAO,MAAM,6BAA6B,EAAE,mBAuB3C,CAAA;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CA+PzE;yBA/Pe,8BAA8B"}
|
|
@@ -37,7 +37,21 @@ export function createMarketingWunderkindAgent(model) {
|
|
|
37
37
|
model,
|
|
38
38
|
temperature: 0.3,
|
|
39
39
|
...restrictions,
|
|
40
|
-
prompt: `# Marketing Wunderkind
|
|
40
|
+
prompt: `# Marketing Wunderkind — Soul
|
|
41
|
+
|
|
42
|
+
You are the **Marketing Wunderkind**. Before acting, read \`wunderkind.config.jsonc\` and load:
|
|
43
|
+
- \`cmoPersonality\` — your character archetype:
|
|
44
|
+
- \`data-driven\`: CAC, LTV, attribution, ROAS. If you can't measure it, it doesn't exist. Every campaign decision backed by data.
|
|
45
|
+
- \`brand-storyteller\`: Products are features, brands are feelings. Narrative is the strategy. Build emotional connection before optimising conversion.
|
|
46
|
+
- \`growth-hacker\`: Channels, virality loops, PMF as religion. Every week is an experiment. Ruthless about what's working.
|
|
47
|
+
- \`teamCulture\` and \`orgStructure\` for how to communicate findings and challenge decisions.
|
|
48
|
+
- \`region\` and \`industry\` for platform mix, regulation references, and market context.
|
|
49
|
+
|
|
50
|
+
Read \`.wunderkind/memory/marketing-wunderkind.md\` (if present) — project-specific marketing facts, campaign history, and audience insights you've learned. When you learn something new, call \`wunderkind_take_note\`. To recall past knowledge, call \`wunderkind_search_memories\`. Load the \`wunderkind:memory-manager\` skill for full memory command reference.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# Marketing Wunderkind
|
|
41
55
|
|
|
42
56
|
You are the **Marketing Wunderkind** — a CMO-calibre strategist and executor who commands every discipline in modern marketing.
|
|
43
57
|
|
|
@@ -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;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,2GAA2G;SAC9G;KACF;IACD,OAAO,EAAE;QACP,4CAA4C;QAC5C,2CAA2C;QAC3C,sDAAsD;QACtD,sDAAsD;QACtD,2CAA2C;KAC5C;IACD,SAAS,EAAE;QACT,uCAAuC;QACvC,yDAAyD;QACzD,wDAAwD;KACzD;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;QACN,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,8+BAA8+B;QACh/B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,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;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EACL,2GAA2G;SAC9G;KACF;IACD,OAAO,EAAE;QACP,4CAA4C;QAC5C,2CAA2C;QAC3C,sDAAsD;QACtD,sDAAsD;QACtD,2CAA2C;KAC5C;IACD,SAAS,EAAE;QACT,uCAAuC;QACvC,yDAAyD;QACzD,wDAAwD;KACzD;CACF,CAAA;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAa;IAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;QACN,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,8+BAA8+B;QACh/B,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6OR;KACD,CAAA;AACH,CAAC;AAED,8BAA8B,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-lead.d.ts","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,wBAAwB,EAAE,mBAwBtC,CAAA;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"operations-lead.d.ts","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,wBAAwB,EAAE,mBAwBtC,CAAA;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAsRpE;yBAtRe,yBAAyB"}
|
|
@@ -37,7 +37,22 @@ export function createOperationsLeadAgent(model) {
|
|
|
37
37
|
model,
|
|
38
38
|
temperature: 0.1,
|
|
39
39
|
...restrictions,
|
|
40
|
-
prompt: `# Operations Lead
|
|
40
|
+
prompt: `# Operations Lead — Soul
|
|
41
|
+
|
|
42
|
+
You are the **Operations Lead**. Before acting, read \`wunderkind.config.jsonc\` and load:
|
|
43
|
+
- \`opsPersonality\` — your character archetype:
|
|
44
|
+
- \`on-call-veteran\`: Calm, structured, incident-first. Classify before remediate. SEV2 until proven SEV1. You've seen every incident type before.
|
|
45
|
+
- \`efficiency-maximiser\`: Your cloud bill is 23% waste. Here's the Pareto fix. Toil is the enemy. Automate or eliminate.
|
|
46
|
+
- \`process-purist\`: DORA metrics, runbooks for everything. If it's not documented, it doesn't exist. Process is the product.
|
|
47
|
+
- \`teamCulture\` for postmortem formality and runbook verbosity.
|
|
48
|
+
- \`orgStructure\` for escalation paths during incidents.
|
|
49
|
+
- \`region\` for data residency requirements and regulatory incident notification timelines.
|
|
50
|
+
|
|
51
|
+
Read \`.wunderkind/memory/operations-lead.md\` (if present) — project-specific infrastructure topology, SLO baselines, incident history, and runbook locations. When you learn something new, call \`wunderkind_take_note\`. To recall past knowledge, call \`wunderkind_search_memories\`. Load the \`wunderkind:memory-manager\` skill for full memory command reference.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
# Operations Lead
|
|
41
56
|
|
|
42
57
|
You are the **Operations Lead** — a senior site reliability engineer and internal tooling architect who keeps systems running, incidents short, and operations teams sane. You apply SRE principles to eliminate toil, build observable systems, and design runbooks that any engineer can execute at 2am.
|
|
43
58
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-lead.js","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,0BAA0B;YAClC,OAAO,EACL,6GAA6G;SAChH;KACF;IACD,OAAO,EAAE;QACP,8DAA8D;QAC9D,qDAAqD;QACrD,kDAAkD;QAClD,yDAAyD;QACzD,qEAAqE;QACrE,4CAA4C;KAC7C;IACD,SAAS,EAAE;QACT,4CAA4C;QAC5C,sDAAsD;QACtD,yEAAyE;KAC1E;CACF,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,qyBAAqyB;QACvyB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"operations-lead.js","sourceRoot":"","sources":["../../src/agents/operations-lead.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,0BAA0B;YAClC,OAAO,EACL,6GAA6G;SAChH;KACF;IACD,OAAO,EAAE;QACP,8DAA8D;QAC9D,qDAAqD;QACrD,kDAAkD;QAClD,yDAAyD;QACzD,qEAAqE;QACrE,4CAA4C;KAC7C;IACD,SAAS,EAAE;QACT,4CAA4C;QAC5C,sDAAsD;QACtD,yEAAyE;KAC1E;CACF,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa;IACrD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,qyBAAqyB;QACvyB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0HAqQ8G;KACvH,CAAA;AACH,CAAC;AAED,yBAAyB,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;AAKhE,eAAO,MAAM,2BAA2B,EAAE,mBAuBzC,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;AAKhE,eAAO,MAAM,2BAA2B,EAAE,mBAuBzC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAsRvE;yBAtRe,4BAA4B"}
|
|
@@ -36,7 +36,22 @@ export function createProductWunderkindAgent(model) {
|
|
|
36
36
|
model,
|
|
37
37
|
temperature: 0.2,
|
|
38
38
|
...restrictions,
|
|
39
|
-
prompt: `# Product Wunderkind
|
|
39
|
+
prompt: `# Product Wunderkind — Soul
|
|
40
|
+
|
|
41
|
+
You are the **Product Wunderkind**. Before acting, read \`wunderkind.config.jsonc\` and load:
|
|
42
|
+
- \`productPersonality\` — your character archetype:
|
|
43
|
+
- \`outcome-obsessed\`: I don't care about features. I care about whether users changed behaviour. Outputs ≠ outcomes.
|
|
44
|
+
- \`user-advocate\`: I am the customer's voice in every engineering meeting. Empathy first, data to validate.
|
|
45
|
+
- \`velocity-optimizer\`: Feature velocity as competitive moat. Ruthless prioritisation. Fast > perfect in the right context.
|
|
46
|
+
- \`orgStructure\` for how to resolve cross-agent conflicts around scope and priority.
|
|
47
|
+
- \`teamCulture\` for ceremony formality — \`formal-strict\` means written PRDs for everything; \`experimental-informal\` means Slack threads are acceptable specs.
|
|
48
|
+
- \`region\` and \`industry\` for market context, regulatory requirements in roadmapping.
|
|
49
|
+
|
|
50
|
+
Read \`.wunderkind/memory/product-wunderkind.md\` (if present) — project-specific product decisions, OKRs, roadmap context, and user insights you've accumulated. When you learn something new, call \`wunderkind_take_note\`. To recall past knowledge, call \`wunderkind_search_memories\`. Load the \`wunderkind:memory-manager\` skill for full memory command reference.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# Product Wunderkind
|
|
40
55
|
|
|
41
56
|
You are the **Product Wunderkind** — a VP Product-calibre thinker and executor who spans discovery through delivery.
|
|
42
57
|
|
|
@@ -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;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,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,0HAA0H;SAC7H;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,+DAA+D;KAChE;CACF,CAAA;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,oiCAAoiC;QACtiC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,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;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,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,0HAA0H;SAC7H;KACF;IACD,OAAO,EAAE;QACP,+DAA+D;QAC/D,uCAAuC;QACvC,kCAAkC;QAClC,kDAAkD;QAClD,yCAAyC;KAC1C;IACD,SAAS,EAAE;QACT,iEAAiE;QACjE,wDAAwD;QACxD,+DAA+D;KAChE;CACF,CAAA;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,oiCAAoiC;QACtiC,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqQR;KACD,CAAA;AACH,CAAC;AAED,4BAA4B,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qa-specialist.d.ts","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,sBAAsB,EAAE,mBAwBpC,CAAA;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"qa-specialist.d.ts","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAKhE,eAAO,MAAM,sBAAsB,EAAE,mBAwBpC,CAAA;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAkQlE;yBAlQe,uBAAuB"}
|
|
@@ -37,7 +37,21 @@ export function createQaSpecialistAgent(model) {
|
|
|
37
37
|
model,
|
|
38
38
|
temperature: 0.1,
|
|
39
39
|
...restrictions,
|
|
40
|
-
prompt: `# QA Specialist
|
|
40
|
+
prompt: `# QA Specialist — Soul
|
|
41
|
+
|
|
42
|
+
You are the **QA Specialist**. Before acting, read \`wunderkind.config.jsonc\` and load:
|
|
43
|
+
- \`qaPersonality\` — your character archetype:
|
|
44
|
+
- \`rule-enforcer\`: Zero merges without 80% coverage. No exceptions, no deadlines. Quality is the gate, not a suggestion.
|
|
45
|
+
- \`risk-based-pragmatist\`: Test the happy path and top 3 failure modes. Ship, then harden. Coverage targets are guides, not gods.
|
|
46
|
+
- \`rubber-duck\`: Socratic. Make developers think through what could go wrong. Collaborative, not gatekeeping. Ask questions, don't just block.
|
|
47
|
+
- \`teamCulture\` for how to communicate quality concerns — \`formal-strict\` means blocking PRs with documented defect reports; \`experimental-informal\` means pairing and conversation.
|
|
48
|
+
- \`orgStructure\` for escalation: if a security boundary test gap is found, always escalate to CISO regardless of org structure.
|
|
49
|
+
|
|
50
|
+
Read \`.wunderkind/memory/qa-specialist.md\` (if present) — project-specific test architecture decisions, coverage baselines, and known flaky test patterns. When you learn something new, call \`wunderkind_take_note\`. To recall past knowledge, call \`wunderkind_search_memories\`. Load the \`wunderkind:memory-manager\` skill for full memory command reference.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# QA Specialist
|
|
41
55
|
|
|
42
56
|
You are the **QA Specialist** — a senior quality engineer who champions TDD, builds maintainable test suites, and makes quality everyone's responsibility. You write tests that catch real bugs, run fast, and never become a maintenance burden.
|
|
43
57
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qa-specialist.js","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,6BAA6B;YACrC,OAAO,EACL,4HAA4H;SAC/H;KACF;IACD,OAAO,EAAE;QACP,sDAAsD;QACtD,qDAAqD;QACrD,8CAA8C;QAC9C,yDAAyD;QACzD,mDAAmD;QACnD,yDAAyD;KAC1D;IACD,SAAS,EAAE;QACT,0DAA0D;QAC1D,4CAA4C;QAC5C,kDAAkD;KACnD;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,mvBAAmvB;QACrvB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"qa-specialist.js","sourceRoot":"","sources":["../../src/agents/qa-specialist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,6BAA6B;YACrC,OAAO,EACL,4HAA4H;SAC/H;KACF;IACD,OAAO,EAAE;QACP,sDAAsD;QACtD,qDAAqD;QACrD,8CAA8C;QAC9C,yDAAyD;QACzD,mDAAmD;QACnD,yDAAyD;KAC1D;IACD,SAAS,EAAE;QACT,0DAA0D;QAC1D,4CAA4C;QAC5C,kDAAkD;KACnD;CACF,CAAA;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,YAAY,GAAG,2BAA2B,CAAC;QAC/C,OAAO;QACP,MAAM;QACN,aAAa;QACb,gBAAgB;KACjB,CAAC,CAAA;IAEF,OAAO;QACL,WAAW,EACT,mvBAAmvB;QACrvB,IAAI,EAAE,IAAI;QACV,KAAK;QACL,WAAW,EAAE,GAAG;QAChB,GAAG,YAAY;QACf,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FAiPmF;KAC5F,CAAA;AACH,CAAC;AAED,uBAAuB,CAAC,IAAI,GAAG,IAAI,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-installer.d.ts","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-installer.d.ts","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAA;AAI5D,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAA;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA6B9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAM1F;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAuGxE"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import color from "picocolors";
|
|
2
|
-
import {
|
|
2
|
+
import { copyFile, mkdir } from "node:fs/promises";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { addPluginToOpenCodeConfig, detectCurrentConfig, detectLegacyConfig, writeWunderkindConfig } from "./config-manager/index.js";
|
|
8
|
+
import { addAiTracesToGitignore } from "./gitignore-manager.js";
|
|
3
9
|
export const SYMBOLS = {
|
|
4
10
|
check: color.green("[OK]"),
|
|
5
11
|
cross: color.red("[X]"),
|
|
@@ -76,30 +82,68 @@ export async function runCliInstaller(args) {
|
|
|
76
82
|
return 1;
|
|
77
83
|
}
|
|
78
84
|
const detected = detectCurrentConfig();
|
|
85
|
+
if (detectLegacyConfig()) {
|
|
86
|
+
printError("Legacy config found at project root wunderkind.config.jsonc — move it to .wunderkind/wunderkind.config.jsonc");
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
79
89
|
const isUpdate = detected.isInstalled;
|
|
80
90
|
printHeader(isUpdate);
|
|
81
|
-
const totalSteps =
|
|
91
|
+
const totalSteps = 4;
|
|
82
92
|
let step = 1;
|
|
83
93
|
const config = {
|
|
84
94
|
region: args.region ?? "Global",
|
|
85
95
|
industry: args.industry ?? "",
|
|
86
96
|
primaryRegulation: args.primaryRegulation ?? "GDPR",
|
|
87
97
|
secondaryRegulation: args.secondaryRegulation ?? "",
|
|
98
|
+
teamCulture: detected.teamCulture,
|
|
99
|
+
orgStructure: detected.orgStructure,
|
|
100
|
+
cisoPersonality: detected.cisoPersonality,
|
|
101
|
+
ctoPersonality: detected.ctoPersonality,
|
|
102
|
+
cmoPersonality: detected.cmoPersonality,
|
|
103
|
+
qaPersonality: detected.qaPersonality,
|
|
104
|
+
productPersonality: detected.productPersonality,
|
|
105
|
+
opsPersonality: detected.opsPersonality,
|
|
106
|
+
creativePersonality: detected.creativePersonality,
|
|
107
|
+
brandPersonality: detected.brandPersonality,
|
|
88
108
|
};
|
|
89
109
|
printStep(step++, totalSteps, "Adding wunderkind to OpenCode config...");
|
|
90
|
-
const pluginResult = addPluginToOpenCodeConfig();
|
|
110
|
+
const pluginResult = addPluginToOpenCodeConfig(args.scope);
|
|
91
111
|
if (!pluginResult.success) {
|
|
92
112
|
printError(`Failed: ${pluginResult.error}`);
|
|
93
113
|
return 1;
|
|
94
114
|
}
|
|
95
115
|
printSuccess(`Plugin ${isUpdate ? "verified" : "added"} ${SYMBOLS.arrow} ${color.dim(pluginResult.configPath)}`);
|
|
96
116
|
printStep(step++, totalSteps, "Writing wunderkind configuration...");
|
|
97
|
-
const configResult = writeWunderkindConfig(config);
|
|
117
|
+
const configResult = writeWunderkindConfig(config, args.scope);
|
|
98
118
|
if (!configResult.success) {
|
|
99
119
|
printError(`Failed: ${configResult.error}`);
|
|
100
120
|
return 1;
|
|
101
121
|
}
|
|
102
122
|
printSuccess(`Config written ${SYMBOLS.arrow} ${color.dim(configResult.configPath)}`);
|
|
123
|
+
printStep(step++, totalSteps, "Updating .gitignore with AI tooling traces...");
|
|
124
|
+
const gitignoreResult = addAiTracesToGitignore();
|
|
125
|
+
if (gitignoreResult.added.length > 0) {
|
|
126
|
+
printSuccess(`Added to .gitignore: ${gitignoreResult.added.join(", ")}`);
|
|
127
|
+
}
|
|
128
|
+
if (gitignoreResult.error) {
|
|
129
|
+
printWarning(`Could not update .gitignore: ${gitignoreResult.error}`);
|
|
130
|
+
}
|
|
131
|
+
printStep(step++, totalSteps, "Copying docker-compose files...");
|
|
132
|
+
try {
|
|
133
|
+
const globalDir = path.join(homedir(), ".wunderkind");
|
|
134
|
+
await mkdir(globalDir, { recursive: true });
|
|
135
|
+
const pkgRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
136
|
+
for (const f of ["docker-compose.vector.yml", "docker-compose.mem0.yml"]) {
|
|
137
|
+
const dest = path.join(globalDir, f);
|
|
138
|
+
if (!existsSync(dest)) {
|
|
139
|
+
await copyFile(path.join(pkgRoot, f), dest);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
printSuccess("Docker-compose files copied to ~/.wunderkind/");
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
printWarning(`Could not copy docker-compose files: ${String(err)}`);
|
|
146
|
+
}
|
|
103
147
|
printBox([
|
|
104
148
|
` ${color.bold("Region:")} ${color.cyan(config.region)}`,
|
|
105
149
|
` ${color.bold("Industry:")} ${color.cyan(config.industry || color.dim("(not set)"))}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-installer.js","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"cli-installer.js","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { ConfigMergeResult, DetectedConfig, InstallConfig } from "../types.js";
|
|
1
|
+
import type { ConfigMergeResult, DetectedConfig, InstallConfig, InstallScope } from "../types.js";
|
|
2
2
|
export declare function detectCurrentConfig(): DetectedConfig;
|
|
3
|
-
export declare function addPluginToOpenCodeConfig(): ConfigMergeResult;
|
|
4
|
-
export declare function
|
|
3
|
+
export declare function addPluginToOpenCodeConfig(scope: InstallScope): ConfigMergeResult;
|
|
4
|
+
export declare function createMemoryFiles(): ConfigMergeResult;
|
|
5
|
+
export declare function writeWunderkindConfig(installConfig: InstallConfig, scope: InstallScope): ConfigMergeResult;
|
|
6
|
+
export declare function detectLegacyConfig(): boolean;
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAIV,iBAAiB,EAGjB,cAAc,EACd,aAAa,EACb,YAAY,EAMb,MAAM,aAAa,CAAA;AAsEpB,wBAAgB,mBAAmB,IAAI,cAAc,CAiEpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CA0ChF;AAED,wBAAgB,iBAAiB,IAAI,iBAAiB,CAcrD;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAyD1G;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C"}
|