@zweer/dev 1.3.0 → 2.0.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.
Files changed (131) hide show
  1. package/README.md +68 -795
  2. package/configs/_biome.json +38 -0
  3. package/configs/commitlint.config.ts +1 -0
  4. package/configs/editorconfig +16 -0
  5. package/configs/lefthook.yml +38 -0
  6. package/configs/lockfile-lintrc.json +6 -0
  7. package/configs/npmpackagejsonlintrc.json +34 -0
  8. package/configs/tsconfig.json +9 -0
  9. package/configs/tsdown.config.ts +8 -0
  10. package/configs/vitest.config.ts +12 -0
  11. package/dist/index.d.mts +1 -0
  12. package/dist/index.mjs +247 -0
  13. package/dist/index.mjs.map +1 -0
  14. package/kiro/agents/zweer-setup.json +38 -0
  15. package/kiro/prompts/zweer-setup.md +55 -0
  16. package/kiro/skills/agent-template/SKILL.md +22 -0
  17. package/kiro/skills/agent-template/references/base.json +38 -0
  18. package/kiro/skills/agent-template/references/example-monorepo-library.json +60 -0
  19. package/kiro/skills/agent-template/references/example-webapp-vercel.json +54 -0
  20. package/kiro/skills/prompt-template/SKILL.md +23 -0
  21. package/kiro/skills/prompt-template/references/example-library.md +56 -0
  22. package/kiro/skills/prompt-template/references/example-webapp.md +57 -0
  23. package/kiro/skills/skill-templates/SKILL.md +23 -0
  24. package/kiro/skills/skill-templates/references/new-package.md +72 -0
  25. package/kiro/skills/steering-templates/SKILL.md +31 -0
  26. package/kiro/skills/steering-templates/references/build-tooling.md +62 -0
  27. package/kiro/skills/steering-templates/references/code-style.md +83 -0
  28. package/kiro/skills/steering-templates/references/commit-conventions.md +58 -0
  29. package/kiro/skills/steering-templates/references/interaction.md +41 -0
  30. package/kiro/skills/steering-templates/references/testing.md +61 -0
  31. package/kiro/steering/build-tooling.md +62 -0
  32. package/kiro/steering/code-style.md +83 -0
  33. package/kiro/steering/commit-conventions.md +58 -0
  34. package/kiro/steering/interaction.md +41 -0
  35. package/kiro/steering/testing.md +61 -0
  36. package/package.json +42 -57
  37. package/templates/monorepo/CHANGELOG.md +5 -0
  38. package/templates/monorepo/README.md +22 -0
  39. package/templates/monorepo/package.json +30 -0
  40. package/templates/monorepo/packages/core/CHANGELOG.md +5 -0
  41. package/templates/monorepo/packages/core/README.md +21 -0
  42. package/templates/monorepo/packages/core/package.json +28 -0
  43. package/templates/monorepo/packages/core/src/index.ts +3 -0
  44. package/templates/monorepo/packages/core/test/index.test.ts +9 -0
  45. package/templates/monorepo/tsdown.config.ts +12 -0
  46. package/templates/monorepo/vitest.config.ts +12 -0
  47. package/templates/single/CHANGELOG.md +5 -0
  48. package/templates/single/README.md +30 -0
  49. package/templates/single/package.json +38 -0
  50. package/templates/single/src/index.ts +3 -0
  51. package/templates/single/test/index.test.ts +9 -0
  52. package/templates/single/tsdown.config.ts +11 -0
  53. package/workflows/base/ci.yml +24 -0
  54. package/workflows/base/dependabot-auto-merge.yml +43 -0
  55. package/workflows/base/dependabot-lockfile.yml +34 -0
  56. package/workflows/base/dependabot.yml +39 -0
  57. package/workflows/base/pr.yml +41 -0
  58. package/workflows/base/security.yml +25 -0
  59. package/workflows/docs/docs.yml +47 -0
  60. package/workflows/library/npm.yml +45 -0
  61. package/agents/data/zweer_data_engineer.md +0 -436
  62. package/agents/design/zweer_ui_designer.md +0 -171
  63. package/agents/design/zweer_ui_ux.md +0 -124
  64. package/agents/infrastructure/zweer_infra_cdk.md +0 -701
  65. package/agents/infrastructure/zweer_infra_devops.md +0 -148
  66. package/agents/infrastructure/zweer_infra_observability.md +0 -610
  67. package/agents/infrastructure/zweer_infra_terraform.md +0 -658
  68. package/agents/mobile/zweer_mobile_android.md +0 -636
  69. package/agents/mobile/zweer_mobile_flutter.md +0 -623
  70. package/agents/mobile/zweer_mobile_ionic.md +0 -550
  71. package/agents/mobile/zweer_mobile_ios.md +0 -504
  72. package/agents/mobile/zweer_mobile_react_native.md +0 -561
  73. package/agents/quality/zweer_qa_documentation.md +0 -202
  74. package/agents/quality/zweer_qa_performance.md +0 -160
  75. package/agents/quality/zweer_qa_security.md +0 -197
  76. package/agents/quality/zweer_qa_testing.md +0 -189
  77. package/agents/services/zweer_svc_api_gateway.md +0 -553
  78. package/agents/services/zweer_svc_containers.md +0 -575
  79. package/agents/services/zweer_svc_lambda.md +0 -373
  80. package/agents/services/zweer_svc_messaging.md +0 -543
  81. package/agents/services/zweer_svc_microservices.md +0 -502
  82. package/agents/web/zweer_web_api_integration.md +0 -500
  83. package/agents/web/zweer_web_backend.md +0 -358
  84. package/agents/web/zweer_web_database.md +0 -357
  85. package/agents/web/zweer_web_frontend.md +0 -375
  86. package/agents/web/zweer_web_reader.md +0 -229
  87. package/agents/write/zweer_write_content.md +0 -499
  88. package/agents/write/zweer_write_narrative.md +0 -409
  89. package/agents/write/zweer_write_style.md +0 -247
  90. package/agents/write/zweer_write_warmth.md +0 -282
  91. package/cli/commands/bootstrap.d.ts +0 -4
  92. package/cli/commands/bootstrap.js +0 -377
  93. package/cli/commands/cao/agent/create.d.ts +0 -25
  94. package/cli/commands/cao/agent/create.js +0 -221
  95. package/cli/commands/cao/agent/index.d.ts +0 -2
  96. package/cli/commands/cao/agent/index.js +0 -8
  97. package/cli/commands/cao/agent/list.d.ts +0 -3
  98. package/cli/commands/cao/agent/list.js +0 -29
  99. package/cli/commands/cao/agent/remove.d.ts +0 -5
  100. package/cli/commands/cao/agent/remove.js +0 -39
  101. package/cli/commands/cao/index.d.ts +0 -2
  102. package/cli/commands/cao/index.js +0 -20
  103. package/cli/commands/cao/install.d.ts +0 -10
  104. package/cli/commands/cao/install.js +0 -59
  105. package/cli/commands/cao/launch.d.ts +0 -3
  106. package/cli/commands/cao/launch.js +0 -21
  107. package/cli/commands/cao/list.d.ts +0 -6
  108. package/cli/commands/cao/list.js +0 -36
  109. package/cli/commands/cao/server.d.ts +0 -3
  110. package/cli/commands/cao/server.js +0 -20
  111. package/cli/commands/cao/status.d.ts +0 -2
  112. package/cli/commands/cao/status.js +0 -25
  113. package/cli/commands/cao/sync.d.ts +0 -6
  114. package/cli/commands/cao/sync.js +0 -52
  115. package/cli/commands/cao/uninstall.d.ts +0 -2
  116. package/cli/commands/cao/uninstall.js +0 -16
  117. package/cli/commands/setup.d.ts +0 -4
  118. package/cli/commands/setup.js +0 -346
  119. package/cli/index.d.ts +0 -2
  120. package/cli/index.js +0 -13
  121. package/cli/utils/agents.d.ts +0 -8
  122. package/cli/utils/agents.js +0 -55
  123. package/cli/utils/cao.d.ts +0 -11
  124. package/cli/utils/cao.js +0 -56
  125. package/cli/utils/paths.d.ts +0 -5
  126. package/cli/utils/paths.js +0 -11
  127. package/templates/orchestrator_lambda.md +0 -263
  128. package/templates/orchestrator_microservices.md +0 -345
  129. package/templates/orchestrator_mobile.md +0 -199
  130. package/templates/orchestrator_webapp.md +0 -190
  131. package/templates/orchestrator_writing.md +0 -306
@@ -1,282 +0,0 @@
1
- ---
2
- name: zweer_write_warmth
3
- description: Adds warmth, emotion, and human authenticity to writing
4
- model: claude-sonnet-4.5
5
- mcpServers:
6
- cao-mcp-server:
7
- type: stdio
8
- command: uvx
9
- args:
10
- - "--from"
11
- - "git+https://github.com/awslabs/cli-agent-orchestrator.git@main"
12
- - "cao-mcp-server"
13
- tools: ["*"]
14
- allowedTools: ["fs_read", "fs_write", "execute_bash", "@cao-mcp-server"]
15
- toolsSettings:
16
- execute_bash:
17
- alwaysAllow:
18
- - preset: "readOnly"
19
- ---
20
-
21
- # Warmth Agent
22
-
23
- ## Description
24
-
25
- Specialized in adding warmth, emotion, and human connection to writing. Makes text feel personal, empathetic, and authentic.
26
-
27
- ## Instructions
28
-
29
- You are an expert at infusing writing with genuine human warmth. Your job is to make readers feel understood, connected, and emotionally engaged—without being cheesy or manipulative.
30
-
31
- ### Responsibilities
32
-
33
- 1. **Add Empathy**: Show understanding of reader's feelings
34
- 2. **Create Connection**: Build rapport with the reader
35
- 3. **Inject Personality**: Add human quirks and authenticity
36
- 4. **Balance Emotion**: Warm without being saccharine
37
- 5. **Show Vulnerability**: Admit imperfections honestly
38
- 6. **Build Trust**: Be genuine and relatable
39
-
40
- ### Warmth Techniques
41
-
42
- **Acknowledge Struggles**:
43
- ```
44
- ❌ Follow these steps to deploy.
45
- ✅ Deployment can be nerve-wracking. Let's walk through it together.
46
- ```
47
-
48
- **Share Experience**:
49
- ```
50
- ❌ This approach works well.
51
- ✅ I've deployed this way dozens of times. It just works.
52
- ```
53
-
54
- **Use "We" Language**:
55
- ```
56
- ❌ You should implement error handling.
57
- ✅ Let's add error handling so we catch issues early.
58
- ```
59
-
60
- **Admit Imperfection**:
61
- ```
62
- ❌ This is the perfect solution.
63
- ✅ This isn't perfect, but it's solved my problem for years.
64
- ```
65
-
66
- **Show Understanding**:
67
- ```
68
- ❌ Configure your environment variables.
69
- ✅ Environment variables are annoying to set up. I know.
70
- But once they're done, you're golden.
71
- ```
72
-
73
- **Add Encouragement**:
74
- ```
75
- ❌ Complete the tutorial.
76
- ✅ You've got this. Take it one step at a time.
77
- ```
78
-
79
- ### Emotional Beats
80
-
81
- **Frustration → Relief**:
82
- ```
83
- Spent three hours debugging? Been there. Here's what fixed it for me.
84
- ```
85
-
86
- **Confusion → Clarity**:
87
- ```
88
- This confused me too at first. Then it clicked: [explanation].
89
- ```
90
-
91
- **Doubt → Confidence**:
92
- ```
93
- Worried about scaling? Don't be. This handles millions of requests.
94
- ```
95
-
96
- **Overwhelm → Simplicity**:
97
- ```
98
- Looks complicated, right? It's actually just three steps.
99
- ```
100
-
101
- ### Personal Touches
102
-
103
- **Anecdotes**:
104
- ```
105
- I learned this the hard way during a production outage at 2 AM.
106
- Now I always add this check.
107
- ```
108
-
109
- **Honest Opinions**:
110
- ```
111
- Is this the "right" way? Maybe not. But it's practical and it works.
112
- ```
113
-
114
- **Shared Frustrations**:
115
- ```
116
- Documentation says it's "simple." It's not. Here's what they
117
- actually mean.
118
- ```
119
-
120
- **Celebrations**:
121
- ```
122
- And just like that, you've built a production-ready API.
123
- Nice work.
124
- ```
125
-
126
- ### What to Do
127
-
128
- ✅ Acknowledge reader's feelings
129
- ✅ Share personal experience
130
- ✅ Use conversational tone
131
- ✅ Admit when things are hard
132
- ✅ Celebrate small wins
133
- ✅ Be encouraging
134
- ✅ Show empathy
135
- ✅ Build connection
136
-
137
- ### What NOT to Do
138
-
139
- ❌ Don't be condescending
140
- ❌ Don't fake enthusiasm
141
- ❌ Don't be overly emotional
142
- ❌ Don't manipulate feelings
143
- ❌ Don't be saccharine
144
- ❌ Don't patronize
145
- ❌ Don't force positivity
146
- ❌ Don't be insincere
147
-
148
- ## Examples
149
-
150
- **Before (Cold)**:
151
- ```
152
- Error handling is important. Implement try-catch blocks
153
- to handle exceptions properly.
154
- ```
155
-
156
- **After (Warm)**:
157
- ```
158
- Nothing's worse than your app crashing in production.
159
- Let's add some safety nets so you can sleep at night.
160
- ```
161
-
162
- ---
163
-
164
- **Before (Cold)**:
165
- ```
166
- TypeScript provides type safety and reduces bugs.
167
- ```
168
-
169
- **After (Warm)**:
170
- ```
171
- TypeScript catches the dumb mistakes we all make at 11 PM.
172
- Your future self will thank you.
173
- ```
174
-
175
- ---
176
-
177
- **Before (Cold)**:
178
- ```
179
- Follow these steps to complete the setup:
180
- 1. Install dependencies
181
- 2. Configure environment
182
- 3. Run the application
183
- ```
184
-
185
- **After (Warm)**:
186
- ```
187
- Let's get you up and running. This takes about 5 minutes.
188
-
189
- First, grab the dependencies. While that's installing,
190
- make yourself some coffee—you've earned it.
191
-
192
- Once that's done, we'll set up your environment.
193
- I'll walk you through each variable.
194
-
195
- Then we'll fire it up and watch it work. Ready?
196
- ```
197
-
198
- ---
199
-
200
- **Before (Cold)**:
201
- ```
202
- This tutorial covers advanced concepts. Prerequisites
203
- include knowledge of JavaScript and Node.js.
204
- ```
205
-
206
- **After (Warm)**:
207
- ```
208
- Fair warning: this gets a bit advanced. If you're comfortable
209
- with JavaScript and have used Node.js before, you're good.
210
-
211
- If not? No judgment. Come back when you're ready.
212
- We'll be here.
213
- ```
214
-
215
- ---
216
-
217
- **Before (Cold)**:
218
- ```
219
- The deployment process is complete. Your application
220
- is now live.
221
- ```
222
-
223
- **After (Warm)**:
224
- ```
225
- And... you're live!
226
-
227
- Take a moment. You just shipped something real.
228
- That's not nothing.
229
-
230
- Now go show someone what you built.
231
- ```
232
-
233
- ## Warmth Levels
234
-
235
- **Technical Documentation**: Light warmth
236
- - Acknowledge difficulty
237
- - Offer encouragement
238
- - Share practical tips
239
-
240
- **Blog Posts**: Medium warmth
241
- - Personal anecdotes
242
- - Shared experiences
243
- - Conversational tone
244
-
245
- **Tutorials**: High warmth
246
- - Walk alongside reader
247
- - Celebrate progress
248
- - Build confidence
249
-
250
- **Marketing**: Balanced warmth
251
- - Show understanding
252
- - Build trust
253
- - Stay authentic
254
-
255
- ## Output Format
256
-
257
- Provide the warmer version with:
258
-
259
- ```
260
- ## WARMER VERSION
261
-
262
- [Text with added warmth]
263
-
264
- ---
265
-
266
- ## WARMTH ADDED
267
-
268
- - Empathy: [example]
269
- - Connection: [example]
270
- - Encouragement: [example]
271
- ```
272
-
273
- ## Notes
274
-
275
- - Warmth should feel natural, not forced
276
- - Match the context and audience
277
- - Be genuine—readers can tell when you're faking
278
- - Balance warmth with professionalism
279
- - Don't sacrifice clarity for emotion
280
- - Encourage without patronizing
281
- - Show vulnerability when appropriate
282
- - Build trust through authenticity
@@ -1,4 +0,0 @@
1
- import { Command } from '@commander-js/extra-typings';
2
- export declare const bootstrap: Command<[], {
3
- yes?: true | undefined;
4
- }>;
@@ -1,377 +0,0 @@
1
- import { exec } from 'node:child_process';
2
- import { mkdir, writeFile } from 'node:fs/promises';
3
- import { promisify } from 'node:util';
4
- import { Command } from '@commander-js/extra-typings';
5
- import chalk from 'chalk';
6
- import inquirer from 'inquirer';
7
- import ora from 'ora';
8
- const execAsync = promisify(exec);
9
- export const bootstrap = new Command()
10
- .name('bootstrap')
11
- .description('Bootstrap a new npm package with standard configuration')
12
- .option('-y, --yes', 'Skip prompts and use defaults')
13
- .action(async (options) => {
14
- const answers = options.yes
15
- ? {
16
- name: '@zweer/new-package',
17
- description: 'A new package',
18
- author: 'Zweer <n.olivieriachille@gmail.com>',
19
- }
20
- : await inquirer.prompt([
21
- {
22
- type: 'input',
23
- name: 'name',
24
- message: 'Package name:',
25
- default: '@zweer/new-package',
26
- },
27
- {
28
- type: 'input',
29
- name: 'description',
30
- message: 'Description:',
31
- default: 'A new package',
32
- },
33
- {
34
- type: 'input',
35
- name: 'author',
36
- message: 'Author:',
37
- default: 'Zweer <n.olivieriachille@gmail.com>',
38
- },
39
- ]);
40
- const spinner = ora('Bootstrapping project...').start();
41
- try {
42
- // Create package.json
43
- const packageJson = {
44
- name: answers.name,
45
- version: '0.0.0',
46
- description: answers.description,
47
- type: 'module',
48
- scripts: {
49
- lint: 'concurrently npm:lint:* --prefixColors auto',
50
- 'lint:format': 'biome check --write',
51
- 'lint:lockfile': 'lockfile-lint --path package-lock.json',
52
- 'lint:engines': 'ls-engines',
53
- 'lint:package': 'npmPkgJsonLint .',
54
- 'lint:publish': 'publint --strict',
55
- test: 'vitest run',
56
- 'test:coverage': 'vitest run --coverage',
57
- check: 'npm run clean && npm run test:coverage && npm run build && npm run lint && npm run clean',
58
- prepare: 'husky',
59
- clean: 'rimraf --glob ./{src,test}/**/*.{d.ts,js} ./vitest*.{d.ts,js}',
60
- prebuild: 'npm run clean',
61
- build: 'tsc',
62
- release: 'semantic-release',
63
- },
64
- engines: {
65
- node: '>= 20.17',
66
- },
67
- publishConfig: {
68
- access: 'public',
69
- provenance: true,
70
- },
71
- release: {
72
- plugins: [
73
- '@semantic-release/commit-analyzer',
74
- '@semantic-release/release-notes-generator',
75
- '@semantic-release/changelog',
76
- '@semantic-release/npm',
77
- '@semantic-release/github',
78
- '@semantic-release/git',
79
- ],
80
- },
81
- keywords: [],
82
- author: answers.author,
83
- license: 'MIT',
84
- dependencies: {},
85
- devDependencies: {
86
- '@biomejs/biome': '^2.3.4',
87
- '@semantic-release/changelog': '^6.0.3',
88
- '@semantic-release/git': '^10.0.1',
89
- '@tsconfig/node22': '^22.0.2',
90
- '@types/node': '^24.10.0',
91
- '@vitest/coverage-v8': '^4.0.8',
92
- concurrently: '^9.2.1',
93
- husky: '^9.1.7',
94
- 'lint-staged': '^16.2.6',
95
- 'lockfile-lint': '^4.14.1',
96
- 'ls-engines': '^0.9.3',
97
- 'npm-package-json-lint': '^8.0.0',
98
- 'npm-package-json-lint-config-default': '^7.0.1',
99
- publint: '^0.3.15',
100
- rimraf: '^6.1.0',
101
- 'semantic-release': '^25.0.2',
102
- typescript: '^5.9.3',
103
- vitest: '^4.0.8',
104
- },
105
- };
106
- await writeFile('package.json', JSON.stringify(packageJson, null, 2));
107
- // Create tsconfig.json
108
- const tsconfig = {
109
- extends: '@tsconfig/node22/tsconfig.json',
110
- compilerOptions: {
111
- declaration: true,
112
- skipLibCheck: true,
113
- },
114
- };
115
- await writeFile('tsconfig.json', JSON.stringify(tsconfig, null, 2));
116
- // Create biome.json
117
- const biome = {
118
- $schema: 'https://biomejs.dev/schemas/2.3.4/schema.json',
119
- vcs: {
120
- enabled: true,
121
- clientKind: 'git',
122
- useIgnoreFile: true,
123
- },
124
- files: {
125
- ignoreUnknown: false,
126
- },
127
- formatter: {
128
- enabled: true,
129
- useEditorconfig: true,
130
- lineWidth: 100,
131
- },
132
- linter: {
133
- enabled: true,
134
- rules: {
135
- recommended: true,
136
- suspicious: {
137
- noUnknownAtRules: 'off',
138
- },
139
- },
140
- domains: {
141
- test: 'recommended',
142
- },
143
- },
144
- javascript: {
145
- formatter: {
146
- quoteStyle: 'single',
147
- },
148
- },
149
- assist: {
150
- enabled: true,
151
- actions: {
152
- source: {
153
- organizeImports: {
154
- level: 'on',
155
- options: {
156
- groups: [
157
- ':URL:',
158
- ':BLANK_LINE:',
159
- [':BUN:', ':NODE:'],
160
- ':BLANK_LINE:',
161
- [':PACKAGE_WITH_PROTOCOL:', ':PACKAGE:'],
162
- ':BLANK_LINE:',
163
- ':ALIAS:',
164
- ':BLANK_LINE:',
165
- ':PATH:',
166
- ],
167
- },
168
- },
169
- },
170
- },
171
- },
172
- };
173
- await writeFile('biome.json', JSON.stringify(biome, null, 2));
174
- // Create vitest.config.ts
175
- const vitestConfig = `import { defineConfig } from 'vitest/config';
176
-
177
- export default defineConfig({
178
- test: {
179
- globals: true,
180
- environment: 'node',
181
- },
182
- });
183
- `;
184
- await writeFile('vitest.config.ts', vitestConfig);
185
- // Create .lintstagedrc
186
- const lintStaged = `"*.{ts,tsx}":
187
- - "bash -c 'npm test'"
188
-
189
- "package.json":
190
- - "bash -c 'npm test'"
191
- - "bash -c 'npm run build'"
192
- - "bash -c 'npm run lint:lockfile'"
193
- - "bash -c 'npm run lint:engines'"
194
- - "bash -c 'npm run lint:publish'"
195
- - "bash -c 'npm run clean'"
196
-
197
- "*.{ts,tsx,json,yaml,graphql,md,css,scss,html}":
198
- - "biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"
199
- `;
200
- await writeFile('.lintstagedrc', lintStaged);
201
- // Create .gitignore
202
- const gitignore = `# Typescript
203
- *.js
204
- *.d.ts
205
-
206
- # Logs
207
- logs
208
- *.log
209
- npm-debug.log*
210
-
211
- # Coverage
212
- coverage
213
- *.lcov
214
- .nyc_output
215
-
216
- # Dependencies
217
- node_modules/
218
-
219
- # TypeScript cache
220
- *.tsbuildinfo
221
-
222
- # dotenv
223
- .env
224
- .env.*
225
- !.env.example
226
-
227
- # Build output
228
- dist
229
- `;
230
- await writeFile('.gitignore', gitignore);
231
- // Create .editorconfig
232
- const editorconfig = `# http://editorconfig.org/
233
- root = true
234
-
235
- [*]
236
- charset = utf-8
237
- end_of_line = lf
238
- insert_final_newline = true
239
- indent_style = space
240
- indent_size = 2
241
- trim_trailing_whitespace = true
242
-
243
- [*.md]
244
- trim_trailing_whitespace = false
245
-
246
- [Makefile]
247
- indent_style = tab
248
- `;
249
- await writeFile('.editorconfig', editorconfig);
250
- // Create .npmpackagejsonlintrc.json
251
- const npmPackageJsonLintrc = {
252
- rules: {
253
- 'require-author': 'error',
254
- 'require-description': 'error',
255
- 'require-engines': 'error',
256
- 'require-license': 'error',
257
- 'require-name': 'error',
258
- 'require-repository': 'error',
259
- 'require-version': 'error',
260
- 'require-bugs': 'error',
261
- 'require-homepage': 'error',
262
- 'require-keywords': 'error',
263
- 'bin-type': 'error',
264
- 'config-type': 'error',
265
- 'description-type': 'error',
266
- 'devDependencies-type': 'error',
267
- 'directories-type': 'error',
268
- 'engines-type': 'error',
269
- 'files-type': 'error',
270
- 'homepage-type': 'error',
271
- 'keywords-type': 'error',
272
- 'license-type': 'error',
273
- 'main-type': 'error',
274
- 'man-type': 'error',
275
- 'name-type': 'error',
276
- 'preferGlobal-type': 'error',
277
- 'private-type': 'error',
278
- 'repository-type': 'error',
279
- 'scripts-type': 'error',
280
- 'version-type': 'error',
281
- 'valid-values-author': ['error', [answers.author]],
282
- 'valid-values-private': ['error', [false]],
283
- 'no-restricted-dependencies': ['error', ['gulping-npm-package-json-lint']],
284
- 'no-restricted-pre-release-dependencies': ['error', ['gulping-npm-package-json-lint']],
285
- 'no-restricted-devDependencies': ['error', ['gulping-npm-package-json-lint']],
286
- 'no-restricted-pre-release-devDependencies': ['error', ['gulping-npm-package-json-lint']],
287
- 'name-format': 'error',
288
- 'version-format': 'error',
289
- },
290
- };
291
- await writeFile('.npmpackagejsonlintrc.json', JSON.stringify(npmPackageJsonLintrc, null, 2));
292
- // Create directories
293
- await mkdir('src', { recursive: true });
294
- await mkdir('test', { recursive: true });
295
- await mkdir('.husky', { recursive: true });
296
- // Create sample files
297
- await writeFile('src/index.ts', `export function hello(name: string): string {
298
- return \`Hello, \${name}!\`;
299
- }
300
- `);
301
- await writeFile('test/index.test.ts', `import { describe, expect, it } from 'vitest';
302
-
303
- import { hello } from '../src/index.js';
304
-
305
- describe('hello', () => {
306
- it('should greet', () => {
307
- expect(hello('World')).toBe('Hello, World!');
308
- });
309
- });
310
- `);
311
- // Create README
312
- const readme = `# ${answers.name}
313
-
314
- ${answers.description}
315
-
316
- ## Installation
317
-
318
- \`\`\`bash
319
- npm install ${answers.name}
320
- \`\`\`
321
-
322
- ## Usage
323
-
324
- \`\`\`typescript
325
- import { hello } from '${answers.name}';
326
-
327
- console.log(hello('World'));
328
- \`\`\`
329
-
330
- ## Development
331
-
332
- \`\`\`bash
333
- # Install dependencies
334
- npm install
335
-
336
- # Run tests
337
- npm test
338
-
339
- # Build
340
- npm run build
341
-
342
- # Lint
343
- npm run lint
344
- \`\`\`
345
-
346
- ## License
347
-
348
- MIT
349
- `;
350
- await writeFile('README.md', readme);
351
- spinner.text = 'Installing dependencies...';
352
- await execAsync('npm install');
353
- // Create .husky/pre-commit
354
- const preCommit = `export NVM_DIR="$HOME/.nvm"
355
- [ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh"
356
-
357
- lint-staged --concurrent false
358
- git update-index --again
359
- `;
360
- await writeFile('.husky/pre-commit', preCommit);
361
- await execAsync('chmod +x .husky/pre-commit');
362
- spinner.text = 'Initializing git...';
363
- await execAsync('git init');
364
- await execAsync('git add .');
365
- await execAsync('git commit -m "chore: initial commit"');
366
- spinner.succeed(chalk.green('✓ Project bootstrapped successfully!'));
367
- console.log('\nNext steps:');
368
- console.log(`${chalk.cyan(' npm test')} - Run tests`);
369
- console.log(`${chalk.cyan(' npm run build')} - Build the project`);
370
- console.log(`${chalk.cyan(' npm run lint')} - Lint the code`);
371
- }
372
- catch (error) {
373
- spinner.fail(chalk.red('Failed to bootstrap project'));
374
- console.error(error);
375
- process.exit(1);
376
- }
377
- });
@@ -1,25 +0,0 @@
1
- import { Command } from '@commander-js/extra-typings';
2
- export interface AgentConfig {
3
- name: string;
4
- projectName: string;
5
- projectPath: string;
6
- techStack?: string;
7
- projectStructure?: string;
8
- platform?: string;
9
- targetPlatforms?: string;
10
- iacTool?: string;
11
- runtime?: string;
12
- serviceMesh?: string;
13
- contentType?: string;
14
- audience?: string;
15
- tone?: string;
16
- template: string;
17
- }
18
- export declare function createAgent(config: AgentConfig): Promise<{
19
- agentPath: string;
20
- }>;
21
- export declare function getDefaultConfig(cwd: string, name?: string, template?: string): AgentConfig;
22
- export declare const createCommand: Command<[string | undefined], {
23
- template: string;
24
- yes?: true | undefined;
25
- }>;