@factiii/stack 0.1.33 → 0.1.35

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 +441 -441
  2. package/bin/stack +46 -0
  3. package/dist/cli/fix.d.ts.map +1 -1
  4. package/dist/cli/fix.js +17 -11
  5. package/dist/cli/fix.js.map +1 -1
  6. package/dist/cli/init.d.ts.map +1 -1
  7. package/dist/cli/init.js +20 -7
  8. package/dist/cli/init.js.map +1 -1
  9. package/dist/cli/scan.d.ts.map +1 -1
  10. package/dist/cli/scan.js +14 -22
  11. package/dist/cli/scan.js.map +1 -1
  12. package/dist/generators/generate-stack-yml.d.ts +1 -1
  13. package/dist/generators/generate-stack-yml.d.ts.map +1 -1
  14. package/dist/generators/generate-stack-yml.js +96 -69
  15. package/dist/generators/generate-stack-yml.js.map +1 -1
  16. package/dist/plugins/addons/openclaw/index.d.ts +45 -0
  17. package/dist/plugins/addons/openclaw/index.d.ts.map +1 -0
  18. package/dist/plugins/addons/openclaw/index.js +107 -0
  19. package/dist/plugins/addons/openclaw/index.js.map +1 -0
  20. package/dist/plugins/addons/openclaw/scanfix/setup.d.ts +19 -0
  21. package/dist/plugins/addons/openclaw/scanfix/setup.d.ts.map +1 -0
  22. package/dist/plugins/addons/openclaw/scanfix/setup.js +441 -0
  23. package/dist/plugins/addons/openclaw/scanfix/setup.js.map +1 -0
  24. package/dist/plugins/frameworks/expo/index.d.ts +45 -0
  25. package/dist/plugins/frameworks/expo/index.d.ts.map +1 -0
  26. package/dist/plugins/frameworks/expo/index.js +549 -0
  27. package/dist/plugins/frameworks/expo/index.js.map +1 -0
  28. package/dist/plugins/frameworks/prisma-trpc/index.js +8 -8
  29. package/dist/plugins/frameworks/prisma-trpc/index.js.map +1 -1
  30. package/dist/plugins/index.d.ts.map +1 -1
  31. package/dist/plugins/index.js +16 -0
  32. package/dist/plugins/index.js.map +1 -1
  33. package/dist/plugins/pipelines/aws/index.js +15 -15
  34. package/dist/plugins/pipelines/aws/prod.js +7 -7
  35. package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts +3 -1
  36. package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts.map +1 -1
  37. package/dist/plugins/pipelines/aws/scanfix/aws-cli.js +17 -7
  38. package/dist/plugins/pipelines/aws/scanfix/aws-cli.js.map +1 -1
  39. package/dist/plugins/pipelines/aws/scanfix/config.js +4 -4
  40. package/dist/plugins/pipelines/aws/scanfix/config.js.map +1 -1
  41. package/dist/plugins/pipelines/aws/scanfix/credentials.d.ts +1 -1
  42. package/dist/plugins/pipelines/aws/scanfix/credentials.d.ts.map +1 -1
  43. package/dist/plugins/pipelines/aws/scanfix/credentials.js +30 -76
  44. package/dist/plugins/pipelines/aws/scanfix/credentials.js.map +1 -1
  45. package/dist/plugins/pipelines/aws/scanfix/db-replication.d.ts +1 -4
  46. package/dist/plugins/pipelines/aws/scanfix/db-replication.d.ts.map +1 -1
  47. package/dist/plugins/pipelines/aws/scanfix/db-replication.js +11 -41
  48. package/dist/plugins/pipelines/aws/scanfix/db-replication.js.map +1 -1
  49. package/dist/plugins/pipelines/aws/scanfix/ec2.d.ts +1 -0
  50. package/dist/plugins/pipelines/aws/scanfix/ec2.d.ts.map +1 -1
  51. package/dist/plugins/pipelines/aws/scanfix/ec2.js +64 -113
  52. package/dist/plugins/pipelines/aws/scanfix/ec2.js.map +1 -1
  53. package/dist/plugins/pipelines/aws/scanfix/ecr.d.ts +1 -0
  54. package/dist/plugins/pipelines/aws/scanfix/ecr.d.ts.map +1 -1
  55. package/dist/plugins/pipelines/aws/scanfix/ecr.js +27 -36
  56. package/dist/plugins/pipelines/aws/scanfix/ecr.js.map +1 -1
  57. package/dist/plugins/pipelines/aws/scanfix/iam.d.ts +1 -0
  58. package/dist/plugins/pipelines/aws/scanfix/iam.d.ts.map +1 -1
  59. package/dist/plugins/pipelines/aws/scanfix/iam.js +37 -46
  60. package/dist/plugins/pipelines/aws/scanfix/iam.js.map +1 -1
  61. package/dist/plugins/pipelines/aws/scanfix/rds.d.ts +1 -0
  62. package/dist/plugins/pipelines/aws/scanfix/rds.d.ts.map +1 -1
  63. package/dist/plugins/pipelines/aws/scanfix/rds.js +43 -108
  64. package/dist/plugins/pipelines/aws/scanfix/rds.js.map +1 -1
  65. package/dist/plugins/pipelines/aws/scanfix/s3.d.ts +1 -0
  66. package/dist/plugins/pipelines/aws/scanfix/s3.d.ts.map +1 -1
  67. package/dist/plugins/pipelines/aws/scanfix/s3.js +46 -55
  68. package/dist/plugins/pipelines/aws/scanfix/s3.js.map +1 -1
  69. package/dist/plugins/pipelines/aws/scanfix/security-groups.d.ts +1 -0
  70. package/dist/plugins/pipelines/aws/scanfix/security-groups.d.ts.map +1 -1
  71. package/dist/plugins/pipelines/aws/scanfix/security-groups.js +83 -82
  72. package/dist/plugins/pipelines/aws/scanfix/security-groups.js.map +1 -1
  73. package/dist/plugins/pipelines/aws/scanfix/ses.d.ts +1 -0
  74. package/dist/plugins/pipelines/aws/scanfix/ses.d.ts.map +1 -1
  75. package/dist/plugins/pipelines/aws/scanfix/ses.js +31 -53
  76. package/dist/plugins/pipelines/aws/scanfix/ses.js.map +1 -1
  77. package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.d.ts +17 -0
  78. package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.d.ts.map +1 -0
  79. package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.js +180 -0
  80. package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.js.map +1 -0
  81. package/dist/plugins/pipelines/aws/scanfix/vpc.d.ts +1 -0
  82. package/dist/plugins/pipelines/aws/scanfix/vpc.d.ts.map +1 -1
  83. package/dist/plugins/pipelines/aws/scanfix/vpc.js +97 -98
  84. package/dist/plugins/pipelines/aws/scanfix/vpc.js.map +1 -1
  85. package/dist/plugins/pipelines/aws/utils/aws-helpers.d.ts +101 -28
  86. package/dist/plugins/pipelines/aws/utils/aws-helpers.d.ts.map +1 -1
  87. package/dist/plugins/pipelines/aws/utils/aws-helpers.js +428 -76
  88. package/dist/plugins/pipelines/aws/utils/aws-helpers.js.map +1 -1
  89. package/dist/plugins/pipelines/factiii/index.d.ts +11 -1
  90. package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
  91. package/dist/plugins/pipelines/factiii/index.js +183 -33
  92. package/dist/plugins/pipelines/factiii/index.js.map +1 -1
  93. package/dist/plugins/pipelines/factiii/scanfix/ansible.js +1 -1
  94. package/dist/plugins/pipelines/factiii/scanfix/ansible.js.map +1 -1
  95. package/dist/plugins/pipelines/factiii/scanfix/bootstrap.js +6 -6
  96. package/dist/plugins/pipelines/factiii/scanfix/bootstrap.js.map +1 -1
  97. package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +1 -1
  98. package/dist/plugins/pipelines/factiii/scanfix/config.js +4 -4
  99. package/dist/plugins/pipelines/factiii/scanfix/config.js.map +1 -1
  100. package/dist/plugins/pipelines/factiii/scanfix/env-files.js +7 -7
  101. package/dist/plugins/pipelines/factiii/scanfix/env-files.js.map +1 -1
  102. package/dist/plugins/pipelines/factiii/scanfix/github-cli.js +1 -1
  103. package/dist/plugins/pipelines/factiii/scanfix/github-cli.js.map +1 -1
  104. package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts.map +1 -1
  105. package/dist/plugins/pipelines/factiii/scanfix/secrets.js +73 -13
  106. package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
  107. package/dist/plugins/pipelines/factiii/scanfix/workflows.d.ts.map +1 -1
  108. package/dist/plugins/pipelines/factiii/scanfix/workflows.js +52 -4
  109. package/dist/plugins/pipelines/factiii/scanfix/workflows.js.map +1 -1
  110. package/dist/plugins/servers/mac/index.js +13 -13
  111. package/dist/plugins/servers/mac/scanfix/config.js +5 -5
  112. package/dist/plugins/servers/mac/scanfix/config.js.map +1 -1
  113. package/dist/plugins/servers/mac/scanfix/containers.js +1 -1
  114. package/dist/plugins/servers/mac/scanfix/containers.js.map +1 -1
  115. package/dist/plugins/servers/mac/scanfix/system.js +6 -6
  116. package/dist/plugins/servers/mac/scanfix/system.js.map +1 -1
  117. package/dist/plugins/servers/mac/staging.js +4 -4
  118. package/dist/plugins/servers/windows/index.js +2 -2
  119. package/dist/plugins/servers/windows/index.js.map +1 -1
  120. package/dist/scanfix/fixes/certbot.js +1 -1
  121. package/dist/scripts/validate-example-values.d.ts +1 -1
  122. package/dist/scripts/validate-example-values.js +6 -6
  123. package/dist/utils/config-helpers.d.ts +3 -0
  124. package/dist/utils/config-helpers.d.ts.map +1 -1
  125. package/dist/utils/config-helpers.js.map +1 -1
  126. package/dist/utils/secret-prompts.d.ts +5 -2
  127. package/dist/utils/secret-prompts.d.ts.map +1 -1
  128. package/dist/utils/secret-prompts.js +55 -32
  129. package/dist/utils/secret-prompts.js.map +1 -1
  130. package/dist/utils/template-generator.js +71 -71
  131. package/package.json +8 -1
@@ -111,10 +111,10 @@ function generateFactiiiYmlTemplate(plugins = null) {
111
111
  // ============================================================
112
112
  // RESERVED CONFIG FIELDS
113
113
  // ============================================================
114
- name: 'EXAMPLE-your-repo-name',
114
+ name: 'EXAMPLE_your-repo-name',
115
115
  config_version: '0.1.0',
116
- github_repo: 'EXAMPLE-username/repo-name',
117
- ssl_email: 'EXAMPLE-admin@yourdomain.com',
116
+ github_repo: 'EXAMPLE_username/repo-name',
117
+ ssl_email: 'EXAMPLE_admin@yourdomain.com',
118
118
  pipeline: 'factiii', // Pipeline plugin (e.g., factiii for GitHub Actions)
119
119
  // Ansible Vault configuration (for secrets)
120
120
  ansible: {
@@ -126,22 +126,22 @@ function generateFactiiiYmlTemplate(plugins = null) {
126
126
  // ============================================================
127
127
  staging: {
128
128
  server: 'mac', // Server OS type (mac, ubuntu, windows, amazon-linux)
129
- domain: 'EXAMPLE-staging.yourdomain.com', // Used for nginx AND SSH
129
+ domain: 'EXAMPLE_staging.yourdomain.com', // Used for nginx AND SSH
130
130
  env_file: '.env.staging',
131
131
  },
132
132
  prod: {
133
133
  server: 'ubuntu', // Server OS type
134
134
  pipeline: 'aws', // Use AWS pipeline for deployment
135
- domain: 'EXAMPLE-yourdomain.com', // Used for nginx AND SSH
135
+ domain: 'EXAMPLE_yourdomain.com', // Used for nginx AND SSH
136
136
  // AWS-specific config (when server: aws)
137
137
  config: 'free-tier', // Options: ec2, free-tier, standard, enterprise
138
- access_key_id: 'EXAMPLE-AKIAXXXXXXXX',
138
+ access_key_id: 'EXAMPLE_AKIAXXXXXXXX',
139
139
  region: 'us-east-1',
140
140
  // Plugin configs for this environment
141
141
  plugins: {
142
142
  ecr: {
143
- ecr_registry: 'EXAMPLE-123456789012.dkr.ecr.us-east-1.amazonaws.com',
144
- ecr_repository: 'EXAMPLE-repo-name',
143
+ ecr_registry: 'EXAMPLE_123456789012.dkr.ecr.us-east-1.amazonaws.com',
144
+ ecr_repository: 'EXAMPLE_repo-name',
145
145
  },
146
146
  },
147
147
  },
@@ -157,43 +157,43 @@ function generateFactiiiYmlTemplate(plugins = null) {
157
157
  noRefs: true,
158
158
  });
159
159
  // Add helpful comments after YAML generation
160
- const comments = `
161
- # ============================================================
162
- # ADDITIONAL ENVIRONMENTS
163
- # ============================================================
164
- # You can add as many environments as needed (staging2, prod2, qa, demo, etc.)
165
- # Each environment must specify a 'server' plugin and can have server-specific configs.
166
- #
167
- # Example - Additional staging environment:
168
- # staging2:
169
- # server: mac
170
- # domain: staging2.yourdomain.com
171
- # env_file: .env.staging2
172
- #
173
- # Example - Additional prod environment:
174
- # prod2:
175
- # server: ubuntu
176
- # pipeline: aws
177
- # domain: app2.yourdomain.com
178
- # config: free-tier
179
- # access_key_id: EXAMPLE-AKIAXXXXXXXX
180
- # region: us-west-2
181
-
182
- # ============================================================
183
- # ENVIRONMENT OPTIONS
184
- # ============================================================
185
- # All environments support these optional fields:
186
- # ssh_user: ubuntu # Override SSH user (defaults to stackAuto.yml ssh_user)
187
- # env_file: .env.{environment} # Override env file name
188
-
189
- # ============================================================
190
- # CONTAINER EXCLUSIONS
191
- # ============================================================
192
- # Exclude Docker containers from unmanaged container cleanup
193
- # Uncomment and add container names to keep them running:
194
- # container_exclusions:
195
- # - factiii_postgres
196
- # - legacy_container
160
+ const comments = `
161
+ # ============================================================
162
+ # ADDITIONAL ENVIRONMENTS
163
+ # ============================================================
164
+ # You can add as many environments as needed (staging2, prod2, qa, demo, etc.)
165
+ # Each environment must specify a 'server' plugin and can have server-specific configs.
166
+ #
167
+ # Example - Additional staging environment:
168
+ # staging2:
169
+ # server: mac
170
+ # domain: staging2.yourdomain.com
171
+ # env_file: .env.staging2
172
+ #
173
+ # Example - Additional prod environment:
174
+ # prod2:
175
+ # server: ubuntu
176
+ # pipeline: aws
177
+ # domain: app2.yourdomain.com
178
+ # config: free-tier
179
+ # access_key_id: EXAMPLE_AKIAXXXXXXXX
180
+ # region: us-west-2
181
+
182
+ # ============================================================
183
+ # ENVIRONMENT OPTIONS
184
+ # ============================================================
185
+ # All environments support these optional fields:
186
+ # ssh_user: ubuntu # Override SSH user (defaults to stackAuto.yml ssh_user)
187
+ # env_file: .env.{environment} # Override env file name
188
+
189
+ # ============================================================
190
+ # CONTAINER EXCLUSIONS
191
+ # ============================================================
192
+ # Exclude Docker containers from unmanaged container cleanup
193
+ # Uncomment and add container names to keep them running:
194
+ # container_exclusions:
195
+ # - factiii_postgres
196
+ # - legacy_container
197
197
  `;
198
198
  return yamlContent + comments;
199
199
  }
@@ -212,20 +212,28 @@ function generateFactiiiYml(rootDir, options = {}) {
212
212
  // Write file
213
213
  fs.writeFileSync(outputPath, content);
214
214
  console.log('[OK] Created ' + config_files_js_1.STACK_CONFIG_FILENAME);
215
- console.log('\nNEXT STEPS:\n');
216
- console.log(' 1. Configure your project:');
217
- console.log(' [ ] Replace all EXAMPLE- values in ' + config_files_js_1.STACK_CONFIG_FILENAME);
218
- console.log(' - name, github_repo, ssl_email, domains\n');
219
- console.log(' 2. Set up secrets (requires ansible-vault):');
220
- console.log(' [ ] Generate SSH key: ssh-keygen -t ed25519 -f ~/.ssh/staging_deploy_key');
221
- console.log(' [ ] Store in vault: npx stack secrets set STAGING_SSH');
222
- console.log(' [ ] Add public key to server: ssh-copy-id -i ~/.ssh/staging_deploy_key.pub user@host\n');
223
- console.log(' 3. Validate and fix:');
224
- console.log(' [ ] npx stack scan (check for issues)');
225
- console.log(' [ ] npx stack fix (auto-fix what it can)\n');
226
- console.log(' 4. Deploy:');
215
+ console.log('');
216
+ console.log(' This is the configuration file for everything.');
217
+ console.log('');
218
+ console.log('NEXT STEPS:');
219
+ console.log('');
220
+ console.log(' 1. Update this file:');
221
+ console.log(' [ ] Replace all EXAMPLE_ values in ' + config_files_js_1.STACK_CONFIG_FILENAME);
222
+ console.log(' (ssl_email, staging.domain, prod.domain)');
223
+ console.log('');
224
+ console.log(' 2. Set up secrets:');
225
+ console.log(' [ ] npx stack init (vault + SSH keys + credentials)');
226
+ console.log('');
227
+ console.log(' 3. Scan for issues:');
228
+ console.log(' [ ] npx stack scan (read-only check - changes nothing)');
229
+ console.log('');
230
+ console.log(' 4. Auto-fix issues:');
231
+ console.log(' [ ] npx stack fix (installs tools, creates configs)');
232
+ console.log('');
233
+ console.log(' 5. Deploy:');
227
234
  console.log(' [ ] npx stack deploy --staging --dry-run (preview)');
228
- console.log(' [ ] npx stack deploy --staging (deploy)\n');
235
+ console.log(' [ ] npx stack deploy --staging (deploy)');
236
+ console.log('');
229
237
  return true;
230
238
  }
231
239
  /**
@@ -275,7 +283,7 @@ function detectServerOS() {
275
283
  /**
276
284
  * Generate a smart stack.yml by auto-detecting project configuration.
277
285
  * Auto-detects: name, github_repo, pipeline, staging/prod, frameworks.
278
- * Uses EXAMPLE- prefix for values that cannot be auto-detected (domains, ssl_email).
286
+ * Uses EXAMPLE_ prefix for values that cannot be auto-detected (domains, ssl_email).
279
287
  */
280
288
  function generateSmartStackYml(rootDir) {
281
289
  const outputPath = path.join(rootDir, config_files_js_1.STACK_CONFIG_FILENAME);
@@ -290,7 +298,7 @@ function generateSmartStackYml(rootDir) {
290
298
  const dirName = path.basename(rootDir);
291
299
  const name = (pkgName ?? dirName).replace(/[^a-z0-9-]/gi, '-').toLowerCase();
292
300
  // Detect github repo
293
- const githubRepo = detectGithubRepo(rootDir) ?? 'EXAMPLE-username/' + name;
301
+ const githubRepo = detectGithubRepo(rootDir) ?? 'EXAMPLE_username/' + name;
294
302
  // Detect server OS for staging
295
303
  const devOS = detectServerOS();
296
304
  const stagingServer = devOS === 'windows' ? 'ubuntu' : devOS;
@@ -298,8 +306,8 @@ function generateSmartStackYml(rootDir) {
298
306
  const config = {
299
307
  name,
300
308
  config_version: '0.1.0',
301
- github_repo: githubRepo.startsWith('EXAMPLE-') ? githubRepo : githubRepo,
302
- ssl_email: 'EXAMPLE-admin@yourdomain.com',
309
+ github_repo: githubRepo.startsWith('EXAMPLE_') ? githubRepo : githubRepo,
310
+ ssl_email: 'EXAMPLE_admin@yourdomain.com',
303
311
  pipeline: 'factiii',
304
312
  ansible: {
305
313
  vault_path: 'group_vars/all/vault.yml',
@@ -307,12 +315,12 @@ function generateSmartStackYml(rootDir) {
307
315
  },
308
316
  staging: {
309
317
  server: stagingServer,
310
- domain: 'EXAMPLE-staging.yourdomain.com',
318
+ domain: 'EXAMPLE_staging.yourdomain.com',
311
319
  env_file: '.env.staging',
312
320
  },
313
321
  prod: {
314
322
  server: 'ubuntu',
315
- domain: 'EXAMPLE-yourdomain.com',
323
+ domain: 'EXAMPLE_yourdomain.com',
316
324
  env_file: '.env.prod',
317
325
  },
318
326
  };
@@ -329,7 +337,7 @@ function generateSmartStackYml(rootDir) {
329
337
  // Build YAML content with comments
330
338
  const sections = [];
331
339
  sections.push('# Generated by @factiii/stack');
332
- sections.push('# Replace all EXAMPLE- values with your actual configuration');
340
+ sections.push('# Replace all EXAMPLE_ values with your actual configuration');
333
341
  sections.push('');
334
342
  // Dump main config
335
343
  sections.push(js_yaml_1.default.dump(config, { lineWidth: -1, noRefs: true }).trim());
@@ -343,10 +351,29 @@ function generateSmartStackYml(rootDir) {
343
351
  sections.push('# ============================================================');
344
352
  sections.push('# NEXT STEPS');
345
353
  sections.push('# ============================================================');
346
- sections.push('# 1. Replace all EXAMPLE- values (name, github_repo, ssl_email, domains)');
347
- sections.push('# 2. Run: npx stack init (set up vault and secrets)');
348
- sections.push('# 3. Run: npx stack (scan for issues)');
349
- sections.push('# 4. Run: npx stack fix (auto-fix what it can)');
354
+ sections.push('#');
355
+ sections.push('# 1. UPDATE THIS FILE');
356
+ sections.push('# Replace all values marked EXAMPLE_ with your actual values:');
357
+ sections.push('# - ssl_email: your real email for SSL certificates');
358
+ sections.push('# - staging.domain: your staging domain');
359
+ sections.push('# - prod.domain: your production domain');
360
+ sections.push('#');
361
+ sections.push('# 2. SET UP SECRETS');
362
+ sections.push('# npx stack init -> creates vault, prompts for SSH keys & credentials');
363
+ sections.push('#');
364
+ sections.push('# 3. SCAN FOR ISSUES');
365
+ sections.push('# npx stack scan -> checks everything, reports what is missing (changes nothing)');
366
+ sections.push('#');
367
+ sections.push('# 4. AUTO-FIX ISSUES');
368
+ sections.push('# npx stack fix -> installs tools, creates config files, fixes what it can');
369
+ sections.push('# (does NOT touch docker/nginx - those are handled by deploy)');
370
+ sections.push('#');
371
+ sections.push('# 5. DEPLOY');
372
+ sections.push('# npx stack deploy --staging --dry-run -> preview what will happen');
373
+ sections.push('# npx stack deploy --staging -> deploy to staging');
374
+ sections.push('# npx stack deploy --prod -> deploy to production');
375
+ sections.push('#');
376
+ sections.push('# ============================================================');
350
377
  sections.push('');
351
378
  const finalContent = sections.join('\n');
352
379
  fs.writeFileSync(outputPath, finalContent);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-stack-yml.js","sourceRoot":"","sources":["../../src/generators/generate-stack-yml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-stack-yml.js","sourceRoot":"","sources":["../../src/generators/generate-stack-yml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * OpenClaw Addon
3
+ *
4
+ * Automates the setup of OpenClaw (autonomous AI agent) running inside
5
+ * a Tart VM on macOS with a local LLM via Ollama.
6
+ *
7
+ * ============================================================
8
+ * USAGE
9
+ * ============================================================
10
+ *
11
+ * Enable in stack.yml (shared across team):
12
+ *
13
+ * openclaw:
14
+ * model: qwen2.5-coder:7b # Ollama model (must support tool calling)
15
+ *
16
+ * Or in stack.local.yml (per-developer, gitignored):
17
+ *
18
+ * openclaw:
19
+ * model: qwen2.5-coder:7b
20
+ *
21
+ * Then run:
22
+ * npx stack scan --dev # See what's missing
23
+ * npx stack fix --dev # Install Tart, Ollama, model, OpenClaw
24
+ * ============================================================
25
+ */
26
+ import type { FactiiiConfig, Fix } from '../../../types/index.js';
27
+ declare class OpenClawAddon {
28
+ static readonly id = "openclaw";
29
+ static readonly name = "OpenClaw";
30
+ static readonly category: 'addon';
31
+ static readonly version = "1.0.0";
32
+ static readonly requiredEnvVars: string[];
33
+ static readonly configSchema: Record<string, unknown>;
34
+ static readonly autoConfigSchema: Record<string, string>;
35
+ /**
36
+ * Determine if this addon should be loaded.
37
+ * Loads if openclaw config exists in stack.yml or stack.local.yml.
38
+ */
39
+ static shouldLoad(_rootDir: string, config: FactiiiConfig): Promise<boolean>;
40
+ static readonly fixes: Fix[];
41
+ private _config;
42
+ constructor(config: FactiiiConfig);
43
+ }
44
+ export default OpenClawAddon;
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/addons/openclaw/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAKlE,cAAM,aAAa;IAKjB,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc;IAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAW;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAElC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnD;IAEF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE9D;;;OAGG;WACU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAE1B;IAMF,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;CAGlC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * OpenClaw Addon
4
+ *
5
+ * Automates the setup of OpenClaw (autonomous AI agent) running inside
6
+ * a Tart VM on macOS with a local LLM via Ollama.
7
+ *
8
+ * ============================================================
9
+ * USAGE
10
+ * ============================================================
11
+ *
12
+ * Enable in stack.yml (shared across team):
13
+ *
14
+ * openclaw:
15
+ * model: qwen2.5-coder:7b # Ollama model (must support tool calling)
16
+ *
17
+ * Or in stack.local.yml (per-developer, gitignored):
18
+ *
19
+ * openclaw:
20
+ * model: qwen2.5-coder:7b
21
+ *
22
+ * Then run:
23
+ * npx stack scan --dev # See what's missing
24
+ * npx stack fix --dev # Install Tart, Ollama, model, OpenClaw
25
+ * ============================================================
26
+ */
27
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ var desc = Object.getOwnPropertyDescriptor(m, k);
30
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
31
+ desc = { enumerable: true, get: function() { return m[k]; } };
32
+ }
33
+ Object.defineProperty(o, k2, desc);
34
+ }) : (function(o, m, k, k2) {
35
+ if (k2 === undefined) k2 = k;
36
+ o[k2] = m[k];
37
+ }));
38
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
39
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
40
+ }) : function(o, v) {
41
+ o["default"] = v;
42
+ });
43
+ var __importStar = (this && this.__importStar) || (function () {
44
+ var ownKeys = function(o) {
45
+ ownKeys = Object.getOwnPropertyNames || function (o) {
46
+ var ar = [];
47
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
48
+ return ar;
49
+ };
50
+ return ownKeys(o);
51
+ };
52
+ return function (mod) {
53
+ if (mod && mod.__esModule) return mod;
54
+ var result = {};
55
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
56
+ __setModuleDefault(result, mod);
57
+ return result;
58
+ };
59
+ })();
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ // Import scanfix array
62
+ const setup_js_1 = require("./scanfix/setup.js");
63
+ class OpenClawAddon {
64
+ // ============================================================
65
+ // STATIC METADATA
66
+ // ============================================================
67
+ static id = 'openclaw';
68
+ static name = 'OpenClaw';
69
+ static category = 'addon';
70
+ static version = '1.0.0';
71
+ static requiredEnvVars = [];
72
+ static configSchema = {
73
+ // openclaw.model - Ollama model name (must support tool calling)
74
+ };
75
+ static autoConfigSchema = {};
76
+ /**
77
+ * Determine if this addon should be loaded.
78
+ * Loads if openclaw config exists in stack.yml or stack.local.yml.
79
+ */
80
+ static async shouldLoad(_rootDir, config) {
81
+ if (config.openclaw)
82
+ return true;
83
+ try {
84
+ const { loadLocalConfig } = await Promise.resolve().then(() => __importStar(require('../../../utils/config-helpers.js')));
85
+ const localConfig = loadLocalConfig(_rootDir);
86
+ return !!localConfig.openclaw;
87
+ }
88
+ catch {
89
+ return false;
90
+ }
91
+ }
92
+ // ============================================================
93
+ // FIXES - All issues this addon can detect and resolve
94
+ // ============================================================
95
+ static fixes = [
96
+ ...setup_js_1.openclawFixes,
97
+ ];
98
+ // ============================================================
99
+ // INSTANCE METHODS
100
+ // ============================================================
101
+ _config;
102
+ constructor(config) {
103
+ this._config = config;
104
+ }
105
+ }
106
+ exports.default = OpenClawAddon;
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/addons/openclaw/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIH,uBAAuB;AACvB,iDAAmD;AAEnD,MAAM,aAAa;IACjB,+DAA+D;IAC/D,kBAAkB;IAClB,+DAA+D;IAE/D,MAAM,CAAU,EAAE,GAAG,UAAU,CAAC;IAChC,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IAClC,MAAM,CAAU,QAAQ,GAAY,OAAO,CAAC;IAC5C,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAElC,MAAM,CAAU,eAAe,GAAa,EAAE,CAAC;IAE/C,MAAM,CAAU,YAAY,GAA4B;IACtD,iEAAiE;KAClE,CAAC;IAEF,MAAM,CAAU,gBAAgB,GAA2B,EAAE,CAAC;IAE9D;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,MAAqB;QAC7D,IAAK,MAAkC,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,kCAAkC,GAAC,CAAC;YAC7E,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,CAAC,CAAE,WAAuC,CAAC,QAAQ,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,uDAAuD;IACvD,+DAA+D;IAE/D,MAAM,CAAU,KAAK,GAAU;QAC7B,GAAG,wBAAa;KACjB,CAAC;IAEF,+DAA+D;IAC/D,mBAAmB;IACnB,+DAA+D;IAEvD,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;;AAGH,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * OpenClaw Addon Scanfixes
3
+ *
4
+ * Automates the full chain for running OpenClaw (autonomous AI agent)
5
+ * inside a Tart VM with a local LLM via Ollama:
6
+ *
7
+ * 1. Install Tart on the host Mac
8
+ * 2. Ensure a Tart VM exists and is running
9
+ * 3. SSH into the VM to install Ollama
10
+ * 4. Pull a compatible model (must support tool calling)
11
+ * 5. Install OpenClaw inside the VM
12
+ * 6. Configure OpenClaw to use the local Ollama model
13
+ *
14
+ * OpenClaw and Ollama run INSIDE the Tart VM, not on the host.
15
+ * The host only needs Tart installed.
16
+ */
17
+ import type { Fix } from '../../../../types/index.js';
18
+ export declare const openclawFixes: Fix[];
19
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/addons/openclaw/scanfix/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,GAAG,EAA2B,MAAM,4BAA4B,CAAC;AA0L/E,eAAO,MAAM,aAAa,EAAE,GAAG,EAwO9B,CAAC"}