@soulbatical/tetra-core 0.2.5 → 0.2.6

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.
@@ -3,63 +3,83 @@ import { FeatureConfig, FilterConfig } from '../types/feature-config.js';
3
3
  /**
4
4
  * QueryService Factory - Eliminates Duplicate Service Code
5
5
  *
6
- * Creates QueryService instances from FeatureConfig - no more per-feature services needed!
6
+ * Creates QueryService instances from FeatureConfig no more per-feature services needed!
7
7
  *
8
- * Before (37 duplicate services):
9
- * - OrderQueryService.ts (196 lines)
10
- * - ProductionQueryService.ts (180 lines)
11
- * - CreatedBookQueryService.ts (175 lines)
12
- * - ... 34 more duplicates ...
13
- * Total: ~6,500 lines of duplicate code!
8
+ * ## Query Modes
14
9
  *
15
- * After (1 factory):
16
- * - QueryServiceFactory.ts (310 lines)
17
- * - Feature configs define behavior
18
- * Total: 310 lines! 🎉
10
+ * ### table (RECOMMENDED default — March 2026+)
11
+ * Uses Supabase PostgREST queries (.from().select().eq().order().range()).
12
+ * No SQL migrations needed for query logic. Filters are applied in application code.
13
+ * RLS is enforced automatically. Perfect for new features and tables up to ~50k rows.
14
+ *
15
+ * This is the default when no RPC names are configured in the FeatureConfig.
16
+ *
17
+ * ### rpc (for high-scale tables)
18
+ * Uses Supabase .rpc() calls to stored database functions.
19
+ * Required when: breakdown counts exceed ~10k rows, complex window functions are needed,
20
+ * or query performance is critical on large tables.
21
+ * Downside: RPC functions break on schema changes (column add/remove) and need
22
+ * manual SQL migrations to keep in sync.
23
+ *
24
+ * ## Mode selection
25
+ * - Auto-detect: table mode if no RPC names in config, rpc mode if both are present
26
+ * - Force table: `createQueryService(config, { mode: 'table' })`
27
+ * - Force rpc: `createQueryService(config, { mode: 'rpc' })`
19
28
  *
20
- * Usage:
29
+ * Use `service.queryMode` to inspect which mode is active at runtime.
30
+ *
31
+ * ## Usage
21
32
  * ```typescript
22
- * // In controller:
33
+ * // In controller — table mode (recommended):
23
34
  * const queryService = createQueryService(ordersFeatureConfig, supabase, organizationId);
24
35
  * const counts = await queryService.getCounts(filters);
25
36
  * const { items, count } = await queryService.getResults({ filters, limit, offset, sortBy });
37
+ * console.log(queryService.queryMode); // 'table'
26
38
  * ```
27
39
  *
28
- * What makes this possible:
29
- * - All filter logic is in database RPC functions (defined by config)
30
- * - All mapping logic is in shared utilities (mapFiltersToRPC, mapCountsFromRPC)
31
- * - All base CRUD is in SimpleRPCQueryService
32
- * - Configs define structure, factory generates implementation
40
+ * Before (37 duplicate services):
41
+ * - OrderQueryService.ts (196 lines)
42
+ * - ProductionQueryService.ts (180 lines)
43
+ * - ... 35 more duplicates ...
44
+ * Total: ~6,500 lines of duplicate code!
45
+ *
46
+ * After (1 factory):
47
+ * - QueryServiceFactory.ts (~380 lines)
48
+ * - Feature configs define behavior
33
49
  *
34
- * Architecture (November 21, 2025):
35
- * SimpleRPCQueryService (base helpers)
50
+ * Architecture:
51
+ * SimpleRPCQueryService / TableQueryService (base helpers)
36
52
  * ↓
37
- * QueryServiceFactory (shared methods + v3.0 window functions)
53
+ * QueryServiceFactory (mode selection + shared methods)
38
54
  * ↓
39
55
  * 45+ features
40
56
  *
41
57
  * Created: October 30, 2025
42
58
  * Updated: November 21, 2025 - Merged BaseFilterService into factory
59
+ * Updated: March 2026 - table mode promoted to recommended default
43
60
  */
44
61
  /**
45
- * Creates a QueryService class from a FeatureConfig
62
+ * Creates a QueryService class from a FeatureConfig.
46
63
  *
47
64
  * @param config - Feature configuration (defines all behavior)
48
- * @param options - Optional: { mode: 'rpc' | 'table' }. Default: 'rpc' if RPC names present, 'table' otherwise
49
- * @returns QueryService class constructor
65
+ * @param options - Optional: `{ mode: 'rpc' | 'table' }`.
66
+ * Default: 'table' when no RPC names are present in config, 'rpc' when both are present.
67
+ * @returns QueryService class constructor. Instances expose `.queryMode` ('rpc' | 'table').
50
68
  *
51
- * Mode 'table' (NEW — March 2026):
52
- * Uses Supabase PostgREST queries (.from().select().eq().order().range())
53
- * No SQL RPC migrations needed! Filters are applied in application code.
69
+ * **Mode 'table' (RECOMMENDED default — March 2026):**
70
+ * Uses Supabase PostgREST queries. No SQL migrations needed.
71
+ * Best for new features and tables up to ~50k rows.
54
72
  *
55
- * Mode 'rpc' (legacy October 2025):
56
- * Uses Supabase .rpc() calls to database functions.
57
- * Requires generated SQL migrations for get_*_results and get_*_counts.
73
+ * **Mode 'rpc' (for high-scale tables):**
74
+ * Uses Supabase `.rpc()` calls to stored database functions.
75
+ * Required for tables with breakdown counts >10k rows or complex aggregations.
76
+ * Needs SQL migrations kept in sync with schema.
58
77
  */
59
78
  export declare function createQueryService<TFilters extends Record<string, any>, TItem, TCounts>(config: FeatureConfig<TItem>, options?: {
60
79
  mode?: 'rpc' | 'table';
61
80
  }): {
62
81
  new (supabase: SupabaseClient, organizationId?: string): {
82
+ readonly queryMode: "rpc" | "table";
63
83
  supabase: SupabaseClient;
64
84
  config: FeatureConfig<TItem>;
65
85
  organizationId?: string | undefined;
@@ -87,6 +107,8 @@ export declare function createQueryService<TFilters extends Record<string, any>,
87
107
  new (supabase: SupabaseClient, organizationId?: string): {
88
108
  countsRpcName: string;
89
109
  resultsRpcName: string;
110
+ /** Identifies the active query mode — always 'rpc' for this service */
111
+ readonly queryMode: "rpc" | "table";
90
112
  /**
91
113
  * ⚠️ REMOVED: applyFilters() - Use getResults() instead!
92
114
  *
@@ -196,6 +218,7 @@ export declare function createQueryService<TFilters extends Record<string, any>,
196
218
  * const counts = await orderService.getCounts(filters);
197
219
  */
198
220
  export declare function createQueryServiceInstance<TFilters extends Record<string, any>, TItem, TCounts>(config: FeatureConfig<TItem>, supabase: SupabaseClient, organizationId?: string): {
221
+ readonly queryMode: "rpc" | "table";
199
222
  supabase: SupabaseClient;
200
223
  config: FeatureConfig<TItem>;
201
224
  organizationId?: string | undefined;
@@ -221,6 +244,8 @@ export declare function createQueryServiceInstance<TFilters extends Record<strin
221
244
  } | {
222
245
  countsRpcName: string;
223
246
  resultsRpcName: string;
247
+ /** Identifies the active query mode — always 'rpc' for this service */
248
+ readonly queryMode: "rpc" | "table";
224
249
  /**
225
250
  * ⚠️ REMOVED: applyFilters() - Use getResults() instead!
226
251
  *
@@ -1 +1 @@
1
- {"version":3,"file":"QueryServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"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"}
@@ -7,58 +7,77 @@ const logger = createLogger('database:query:factory');
7
7
  /**
8
8
  * QueryService Factory - Eliminates Duplicate Service Code
9
9
  *
10
- * Creates QueryService instances from FeatureConfig - no more per-feature services needed!
10
+ * Creates QueryService instances from FeatureConfig no more per-feature services needed!
11
11
  *
12
- * Before (37 duplicate services):
13
- * - OrderQueryService.ts (196 lines)
14
- * - ProductionQueryService.ts (180 lines)
15
- * - CreatedBookQueryService.ts (175 lines)
16
- * - ... 34 more duplicates ...
17
- * Total: ~6,500 lines of duplicate code!
12
+ * ## Query Modes
18
13
  *
19
- * After (1 factory):
20
- * - QueryServiceFactory.ts (310 lines)
21
- * - Feature configs define behavior
22
- * Total: 310 lines! 🎉
14
+ * ### table (RECOMMENDED default — March 2026+)
15
+ * Uses Supabase PostgREST queries (.from().select().eq().order().range()).
16
+ * No SQL migrations needed for query logic. Filters are applied in application code.
17
+ * RLS is enforced automatically. Perfect for new features and tables up to ~50k rows.
18
+ *
19
+ * This is the default when no RPC names are configured in the FeatureConfig.
20
+ *
21
+ * ### rpc (for high-scale tables)
22
+ * Uses Supabase .rpc() calls to stored database functions.
23
+ * Required when: breakdown counts exceed ~10k rows, complex window functions are needed,
24
+ * or query performance is critical on large tables.
25
+ * Downside: RPC functions break on schema changes (column add/remove) and need
26
+ * manual SQL migrations to keep in sync.
27
+ *
28
+ * ## Mode selection
29
+ * - Auto-detect: table mode if no RPC names in config, rpc mode if both are present
30
+ * - Force table: `createQueryService(config, { mode: 'table' })`
31
+ * - Force rpc: `createQueryService(config, { mode: 'rpc' })`
23
32
  *
24
- * Usage:
33
+ * Use `service.queryMode` to inspect which mode is active at runtime.
34
+ *
35
+ * ## Usage
25
36
  * ```typescript
26
- * // In controller:
37
+ * // In controller — table mode (recommended):
27
38
  * const queryService = createQueryService(ordersFeatureConfig, supabase, organizationId);
28
39
  * const counts = await queryService.getCounts(filters);
29
40
  * const { items, count } = await queryService.getResults({ filters, limit, offset, sortBy });
41
+ * console.log(queryService.queryMode); // 'table'
30
42
  * ```
31
43
  *
32
- * What makes this possible:
33
- * - All filter logic is in database RPC functions (defined by config)
34
- * - All mapping logic is in shared utilities (mapFiltersToRPC, mapCountsFromRPC)
35
- * - All base CRUD is in SimpleRPCQueryService
36
- * - Configs define structure, factory generates implementation
44
+ * Before (37 duplicate services):
45
+ * - OrderQueryService.ts (196 lines)
46
+ * - ProductionQueryService.ts (180 lines)
47
+ * - ... 35 more duplicates ...
48
+ * Total: ~6,500 lines of duplicate code!
49
+ *
50
+ * After (1 factory):
51
+ * - QueryServiceFactory.ts (~380 lines)
52
+ * - Feature configs define behavior
37
53
  *
38
- * Architecture (November 21, 2025):
39
- * SimpleRPCQueryService (base helpers)
54
+ * Architecture:
55
+ * SimpleRPCQueryService / TableQueryService (base helpers)
40
56
  * ↓
41
- * QueryServiceFactory (shared methods + v3.0 window functions)
57
+ * QueryServiceFactory (mode selection + shared methods)
42
58
  * ↓
43
59
  * 45+ features
44
60
  *
45
61
  * Created: October 30, 2025
46
62
  * Updated: November 21, 2025 - Merged BaseFilterService into factory
63
+ * Updated: March 2026 - table mode promoted to recommended default
47
64
  */
48
65
  /**
49
- * Creates a QueryService class from a FeatureConfig
66
+ * Creates a QueryService class from a FeatureConfig.
50
67
  *
51
68
  * @param config - Feature configuration (defines all behavior)
52
- * @param options - Optional: { mode: 'rpc' | 'table' }. Default: 'rpc' if RPC names present, 'table' otherwise
53
- * @returns QueryService class constructor
69
+ * @param options - Optional: `{ mode: 'rpc' | 'table' }`.
70
+ * Default: 'table' when no RPC names are present in config, 'rpc' when both are present.
71
+ * @returns QueryService class constructor. Instances expose `.queryMode` ('rpc' | 'table').
54
72
  *
55
- * Mode 'table' (NEW — March 2026):
56
- * Uses Supabase PostgREST queries (.from().select().eq().order().range())
57
- * No SQL RPC migrations needed! Filters are applied in application code.
73
+ * **Mode 'table' (RECOMMENDED default — March 2026):**
74
+ * Uses Supabase PostgREST queries. No SQL migrations needed.
75
+ * Best for new features and tables up to ~50k rows.
58
76
  *
59
- * Mode 'rpc' (legacy October 2025):
60
- * Uses Supabase .rpc() calls to database functions.
61
- * Requires generated SQL migrations for get_*_results and get_*_counts.
77
+ * **Mode 'rpc' (for high-scale tables):**
78
+ * Uses Supabase `.rpc()` calls to stored database functions.
79
+ * Required for tables with breakdown counts >10k rows or complex aggregations.
80
+ * Needs SQL migrations kept in sync with schema.
62
81
  */
63
82
  export function createQueryService(config, options) {
64
83
  // Auto-detect mode: use 'table' if no RPC names configured
@@ -81,6 +100,8 @@ export function createQueryService(config, options) {
81
100
  // RPC names from config (v3.0 - clean naming, no _simple)
82
101
  countsRpcName = config.countsRpcName;
83
102
  resultsRpcName = config.resultsRpcName;
103
+ /** Identifies the active query mode — always 'rpc' for this service */
104
+ queryMode = 'rpc';
84
105
  constructor(supabase, organizationId) {
85
106
  super(supabase, config, organizationId);
86
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryServiceFactory.js","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryServiceFactory.js","sourceRoot":"","sources":["../../../src/shared/factories/QueryServiceFactory.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  * handlers: myToolHandlers,
15
15
  * tokenPrefix: 'vincifox_',
16
16
  * });
17
- * app.use('/api/mcp', mcpRouter);
17
+ * app.use('/', mcpRouter); // or app.use('/api/mcp', ...) if behind a backend proxy
18
18
  * ```
19
19
  */
20
20
  import type { Router } from 'express';
@@ -14,7 +14,7 @@
14
14
  * handlers: myToolHandlers,
15
15
  * tokenPrefix: 'vincifox_',
16
16
  * });
17
- * app.use('/api/mcp', mcpRouter);
17
+ * app.use('/', mcpRouter); // or app.use('/api/mcp', ...) if behind a backend proxy
18
18
  * ```
19
19
  */
20
20
  import { createLogger } from '../../utils/logger.js';
@@ -28,6 +28,8 @@ export declare class TableQueryService<TFilters extends Record<string, any> = Re
28
28
  supabase: SupabaseClient;
29
29
  config: FeatureConfig<TItem>;
30
30
  organizationId?: string | undefined;
31
+ /** Identifies the active query mode — always 'table' for this service */
32
+ readonly queryMode: 'rpc' | 'table';
31
33
  constructor(supabase: SupabaseClient, config: FeatureConfig<TItem>, organizationId?: string | undefined);
32
34
  /**
33
35
  * Apply a single filter to a Supabase query builder
@@ -93,6 +95,8 @@ export declare class TableQueryService<TFilters extends Record<string, any> = Re
93
95
  */
94
96
  export declare function createTableQueryService<TFilters extends Record<string, any> = Record<string, any>, TItem = Record<string, any>>(config: FeatureConfig<TItem>): {
95
97
  new (supabase: SupabaseClient, organizationId?: string): {
98
+ /** Identifies the active query mode — always 'table' for this service */
99
+ readonly queryMode: "rpc" | "table";
96
100
  supabase: SupabaseClient;
97
101
  config: FeatureConfig<TItem>;
98
102
  organizationId?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TableQueryService.d.ts","sourceRoot":"","sources":["../../../src/shared/services/TableQueryService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableQueryService.d.ts","sourceRoot":"","sources":["../../../src/shared/services/TableQueryService.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ export class TableQueryService {
28
28
  supabase;
29
29
  config;
30
30
  organizationId;
31
+ /** Identifies the active query mode — always 'table' for this service */
32
+ queryMode = 'table';
31
33
  constructor(supabase, config, organizationId) {
32
34
  this.supabase = supabase;
33
35
  this.config = config;
@@ -191,6 +193,7 @@ export class TableQueryService {
191
193
  */
192
194
  async getResults(params) {
193
195
  const { filters, limit, offset, sortBy, sortOrder = 'desc', include = [] } = params;
196
+ const startMs = Date.now();
194
197
  try {
195
198
  // Build select query (with includes/joins if configured)
196
199
  const selectFields = include.length > 0 ? this.buildSelectQuery(include) : '*';
@@ -208,6 +211,15 @@ export class TableQueryService {
208
211
  // Apply pagination
209
212
  query = query.range(offset, offset + limit - 1);
210
213
  const { data, error, count: totalCount } = await query;
214
+ const durationMs = Date.now() - startMs;
215
+ logger.debug({
216
+ feature: this.config.tableName,
217
+ durationMs,
218
+ resultCount: data?.length ?? 0,
219
+ totalCount: totalCount ?? 0,
220
+ limit,
221
+ offset,
222
+ }, `table:getResults completed in ${durationMs}ms`);
211
223
  if (error) {
212
224
  logger.error({
213
225
  error: error.message,
@@ -235,6 +247,7 @@ export class TableQueryService {
235
247
  * For 'breakdown': SELECT status, count(*) FROM table WHERE filters GROUP BY status
236
248
  */
237
249
  async getCounts(filters) {
250
+ const startMs = Date.now();
238
251
  try {
239
252
  const counts = {};
240
253
  if (!this.config.counts) {
@@ -278,6 +291,14 @@ export class TableQueryService {
278
291
  counts[key] = {};
279
292
  }
280
293
  else {
294
+ // Warn when breakdown fetches very large result sets — RPC would be more efficient
295
+ if (data && data.length > 10000) {
296
+ logger.warn({
297
+ feature: this.config.tableName,
298
+ rowCount: data.length,
299
+ countKey: key,
300
+ }, 'Table mode breakdown count fetched >10k rows. Consider adding RPC functions for this feature.');
301
+ }
281
302
  // Count occurrences of each value
282
303
  const breakdown = {};
283
304
  for (const row of data || []) {
@@ -317,6 +338,12 @@ export class TableQueryService {
317
338
  logger.debug({ key, type: countConfig.type }, 'Skipping unsupported count type');
318
339
  }
319
340
  }
341
+ const durationMs = Date.now() - startMs;
342
+ logger.debug({
343
+ feature: this.config.tableName,
344
+ durationMs,
345
+ countKeys: Object.keys(counts),
346
+ }, `table:getCounts completed in ${durationMs}ms`);
320
347
  return counts;
321
348
  }
322
349
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"TableQueryService.js","sourceRoot":"","sources":["../../../src/shared/services/TableQueryService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableQueryService.js","sourceRoot":"","sources":["../../../src/shared/services/TableQueryService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulbatical/tetra-core",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "publishConfig": {
5
5
  "access": "restricted"
6
6
  },
@@ -76,6 +76,7 @@
76
76
  ],
77
77
  "scripts": {
78
78
  "build": "tsc",
79
+ "postinstall": "node scripts/postinstall.js || true",
79
80
  "prepublishOnly": "npm run build && npm run typecheck && npx tetra-check-peers",
80
81
  "check:peers": "npx tetra-check-peers",
81
82
  "typecheck": "tsc --noEmit",
@@ -84,6 +85,7 @@
84
85
  "enforce:api": "./scripts/enforce-api-standards.sh"
85
86
  },
86
87
  "dependencies": {
88
+ "@soulbatical/tetra-dev-toolkit": "^1.20.11",
87
89
  "express-rate-limit": "^8.2.1",
88
90
  "handlebars": "^4.7.8",
89
91
  "helmet": "^8.1.0",
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Tetra Core — Postinstall
5
+ *
6
+ * Automatically sets up quality infrastructure when tetra-core is installed
7
+ * in a consumer project. Runs tetra-setup (hooks, ci, config) so every
8
+ * Tetra project gets the full quality gate from day one.
9
+ *
10
+ * Skips in:
11
+ * - CI environments (CI=true, GITHUB_ACTIONS, etc.)
12
+ * - Docker builds (/.dockerenv)
13
+ * - The tetra monorepo itself
14
+ * - npm pack / npm publish
15
+ * - Non-interactive environments without a project
16
+ */
17
+
18
+ import { existsSync } from 'fs'
19
+ import { execSync } from 'child_process'
20
+ import { join, dirname } from 'path'
21
+ import { fileURLToPath } from 'url'
22
+
23
+ const __dirname = dirname(fileURLToPath(import.meta.url))
24
+
25
+ // ── Skip conditions ──
26
+
27
+ // CI environment
28
+ if (process.env.CI || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI ||
29
+ process.env.JENKINS_HOME || process.env.CODEBUILD_BUILD_ID) {
30
+ process.exit(0)
31
+ }
32
+
33
+ // Docker
34
+ if (existsSync('/.dockerenv')) {
35
+ process.exit(0)
36
+ }
37
+
38
+ // npm pack / publish (no project context)
39
+ if (process.env.npm_command === 'pack' || process.env.npm_command === 'publish') {
40
+ process.exit(0)
41
+ }
42
+
43
+ // Inside the tetra monorepo itself
44
+ const projectRoot = process.env.INIT_CWD || process.cwd()
45
+ if (projectRoot.includes('/tetra/packages/') || projectRoot.endsWith('/tetra')) {
46
+ process.exit(0)
47
+ }
48
+
49
+ // No package.json = not a real project
50
+ if (!existsSync(join(projectRoot, 'package.json'))) {
51
+ process.exit(0)
52
+ }
53
+
54
+ // ── Run tetra-setup ──
55
+
56
+ // Check if tetra-setup is available
57
+ try {
58
+ const tetraSetupPath = join(projectRoot, 'node_modules', '.bin', 'tetra-setup')
59
+ if (!existsSync(tetraSetupPath)) {
60
+ // dev-toolkit not installed yet — will run on next install
61
+ process.exit(0)
62
+ }
63
+
64
+ console.log('')
65
+ console.log('🔧 Tetra Core — setting up quality infrastructure...')
66
+ console.log('')
67
+
68
+ // Run tetra-setup (hooks + ci + config), non-interactive
69
+ // Don't use --force to preserve existing customizations
70
+ execSync(`node "${tetraSetupPath}"`, {
71
+ cwd: projectRoot,
72
+ stdio: 'inherit',
73
+ timeout: 30000,
74
+ })
75
+ } catch (err) {
76
+ // Non-blocking — setup failure shouldn't break npm install
77
+ console.log('⚠️ Tetra setup encountered an issue (non-blocking)')
78
+ console.log(` Run 'npx tetra-setup' manually to complete setup`)
79
+ }