@kya-os/create-mcpi-app 1.7.37 → 1.7.38-canary.1

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.
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Remote Configuration Fetching
3
+ *
4
+ * Service for fetching configuration from remote APIs (AgentShield dashboard)
5
+ * with caching support for performance optimization.
6
+ *
7
+ * NOTE: This implementation is extracted from @kya-os/mcp-i-core/src/config/remote-config.ts
8
+ * to avoid runtime dependency on the entire mcp-i-core package.
9
+ *
10
+ * Source: packages/mcp-i-core/src/config/remote-config.ts
11
+ *
12
+ * @module @kya-os/create-mcpi-app/utils/fetch-remote-config
13
+ */
14
+
15
+ import type { MCPIConfig } from '@kya-os/contracts/config';
16
+ import { AGENTSHIELD_ENDPOINTS } from '@kya-os/contracts/agentshield-api';
17
+
18
+ /**
19
+ * Options for fetching remote configuration
20
+ */
21
+ export interface RemoteConfigOptions {
22
+ /**
23
+ * API base URL
24
+ * @example 'https://kya.vouched.id'
25
+ */
26
+ apiUrl: string;
27
+
28
+ /**
29
+ * API key for authentication
30
+ */
31
+ apiKey: string;
32
+
33
+ /**
34
+ * Project ID (optional, preferred over agentDid)
35
+ * Used for project-scoped configuration
36
+ */
37
+ projectId?: string;
38
+
39
+ /**
40
+ * Agent DID (optional, used when projectId not available)
41
+ * Used for agent-scoped configuration
42
+ */
43
+ agentDid?: string;
44
+
45
+ /**
46
+ * Cache TTL in milliseconds
47
+ * @default 300000 (5 minutes)
48
+ */
49
+ cacheTtl?: number;
50
+
51
+ /**
52
+ * Fetch provider function
53
+ * Platform-agnostic fetch implementation
54
+ */
55
+ fetchProvider: (url: string, options: RequestInit) => Promise<Response>;
56
+ }
57
+
58
+ /**
59
+ * Cache interface for remote configuration
60
+ * Abstracts platform-specific caching (KV, Redis, Memory, etc.)
61
+ */
62
+ export interface RemoteConfigCache {
63
+ /**
64
+ * Get a cached value
65
+ */
66
+ get(key: string): Promise<string | null>;
67
+
68
+ /**
69
+ * Set a cached value with TTL
70
+ */
71
+ set(key: string, value: string, ttl: number): Promise<void>;
72
+ }
73
+
74
+ /**
75
+ * Fetch configuration from remote API (AgentShield dashboard)
76
+ *
77
+ * Attempts to fetch configuration from the AgentShield API with caching support.
78
+ * Falls back gracefully if remote fetch fails.
79
+ *
80
+ * @param options - Remote config options
81
+ * @param cache - Optional cache implementation
82
+ * @returns Configuration object or null if fetch fails
83
+ */
84
+ export async function fetchRemoteConfig(
85
+ options: RemoteConfigOptions,
86
+ cache?: RemoteConfigCache
87
+ ): Promise<MCPIConfig | null> {
88
+ const { apiUrl, apiKey, projectId, agentDid, cacheTtl = 300000, fetchProvider } = options;
89
+
90
+ // Generate cache key
91
+ const cacheKey = projectId
92
+ ? `config:project:${projectId}`
93
+ : agentDid
94
+ ? `config:agent:${agentDid}`
95
+ : null;
96
+
97
+ // Try cache first
98
+ if (cache && cacheKey) {
99
+ try {
100
+ const cached = await cache.get(cacheKey);
101
+ if (cached) {
102
+ try {
103
+ const parsed = JSON.parse(cached) as { config: MCPIConfig; expiresAt: number };
104
+ if (parsed.expiresAt > Date.now()) {
105
+ return parsed.config;
106
+ }
107
+ } catch {
108
+ // Invalid cache entry, continue to fetch
109
+ }
110
+ }
111
+ } catch (error) {
112
+ // Cache read failed, continue to fetch
113
+ console.warn('[RemoteConfig] Cache read failed:', error);
114
+ }
115
+ }
116
+
117
+ // Fetch from API
118
+ try {
119
+ // Build API URL
120
+ let url: string;
121
+ if (projectId) {
122
+ // Use project-scoped endpoint (preferred)
123
+ url = `${apiUrl}${AGENTSHIELD_ENDPOINTS.CONFIG(projectId)}`;
124
+ } else if (agentDid) {
125
+ // Use agent-scoped endpoint
126
+ url = `${apiUrl}/api/v1/bouncer/config?agent_did=${encodeURIComponent(agentDid)}`;
127
+ } else {
128
+ console.warn('[RemoteConfig] Neither projectId nor agentDid provided');
129
+ return null;
130
+ }
131
+
132
+ const response = await fetchProvider(url, {
133
+ headers: {
134
+ 'Authorization': `Bearer ${apiKey}`,
135
+ 'Content-Type': 'application/json'
136
+ }
137
+ });
138
+
139
+ if (!response.ok) {
140
+ console.warn(`[RemoteConfig] API returned ${response.status}: ${response.statusText}`);
141
+ return null;
142
+ }
143
+
144
+ const data = await response.json();
145
+
146
+ // Extract config from API response
147
+ // API response format: { success: boolean, data: { config: MCPIConfig } }
148
+ const responseData = data as { config?: MCPIConfig; data?: { config?: MCPIConfig }; success?: boolean };
149
+ const config = responseData.config || responseData.data?.config || (responseData.success ? responseData.data as MCPIConfig | null : null) as MCPIConfig | null;
150
+
151
+ if (!config) {
152
+ console.warn('[RemoteConfig] No config found in API response');
153
+ return null;
154
+ }
155
+
156
+ // Cache the result
157
+ if (cache && cacheKey) {
158
+ try {
159
+ await cache.set(
160
+ cacheKey,
161
+ JSON.stringify({
162
+ config,
163
+ expiresAt: Date.now() + cacheTtl
164
+ }),
165
+ cacheTtl
166
+ );
167
+ } catch (error) {
168
+ // Cache write failed, but we got the config so continue
169
+ console.warn('[RemoteConfig] Cache write failed:', error);
170
+ }
171
+ }
172
+
173
+ return config as MCPIConfig;
174
+ } catch (error) {
175
+ console.warn('[RemoteConfig] Failed to fetch config:', error);
176
+ return null;
177
+ }
178
+ }
179
+
@@ -1,4 +0,0 @@
1
-
2
- > @kya-os/create-mcpi-app@1.7.15 build /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
3
- > tsc --build && chmod +x dist/index.js
4
-
@@ -1,168 +0,0 @@
1
-
2
- > @kya-os/create-mcpi-app@1.7.36 test:coverage /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
3
- > vitest --run --coverage
4
-
5
- ▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]
6
-
7
- package.json:15:6:
8
- 15 │ "types": "./dist/index.d.ts"
9
- ╵ ~~~~~~~
10
-
11
- The "import" condition comes earlier and will be used for all "import" statements:
12
-
13
- package.json:13:6:
14
- 13 │ "import": "./dist/index.js",
15
- ╵ ~~~~~~~~
16
-
17
- The "require" condition comes earlier and will be used for all "require" calls:
18
-
19
- package.json:14:6:
20
- 14 │ "require": "./dist/index.js",
21
- ╵ ~~~~~~~~~
22
-
23
- ▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]
24
-
25
- package.json:20:6:
26
- 20 │ "types": "./dist/helpers/config-builder.d.ts"
27
- ╵ ~~~~~~~
28
-
29
- The "import" condition comes earlier and will be used for all "import" statements:
30
-
31
- package.json:18:6:
32
- 18 │ "import": "./dist/helpers/config-builder.js",
33
- ╵ ~~~~~~~~
34
-
35
- The "require" condition comes earlier and will be used for all "require" calls:
36
-
37
- package.json:19:6:
38
- 19 │ "require": "./dist/helpers/config-builder.js",
39
- ╵ ~~~~~~~~~
40
-
41
-
42
- RUN v4.0.5 /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
43
- Coverage enabled with v8
44
-
45
- ✓ test-cloudflare/tests/cors-security.test.ts (29 tests) 6ms
46
- stdout | test-cloudflare/tests/session-management.test.ts > Session Management > Session Security > should not expose session data in logs
47
- [Session] Created session: secure-session
48
-
49
- ✓ test-cloudflare/tests/cache-invalidation.test.ts (18 tests) 6ms
50
- ✓ test-cloudflare/tests/session-management.test.ts (17 tests) 20ms
51
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should install dependencies with npm
52
-
53
- 📦 Installing dependencies with npm...
54
- ✓ Lockfile created (package-lock.json) - remember to commit it
55
-
56
- ✓ test-cloudflare/tests/delegation.test.ts (12 tests) 12ms
57
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should install dependencies with yarn
58
-
59
- 📦 Installing dependencies with yarn...
60
- ✓ Lockfile created (yarn.lock) - remember to commit it
61
-
62
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should install dependencies with pnpm
63
-
64
- 📦 Installing dependencies with pnpm...
65
- ✓ Lockfile created (pnpm-lock.yaml) - remember to commit it
66
-
67
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should use correct working directory
68
-
69
- 📦 Installing dependencies with npm...
70
- ✓ Lockfile created (package-lock.json) - remember to commit it
71
-
72
- stderr | src/__tests__/helpers/install.test.ts > install > Install progress reporting > should report correct package manager in log
73
- ⚠️ Warning: No lockfile generated (pnpm-lock.yaml)
74
-
75
- stdout | src/__tests__/helpers/install.test.ts > install > Install progress reporting > should check for lockfile after installation
76
-
77
- 📦 Installing dependencies with npm...
78
- ✓ Lockfile created (package-lock.json) - remember to commit it
79
-
80
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should throw error when installation fails
81
-
82
- 📦 Installing dependencies with npm...
83
-
84
- stderr | src/__tests__/helpers/install.test.ts > install > Error handling > should throw error when installation fails
85
- Failed to install dependencies with npm.
86
-
87
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should handle network errors during installation
88
- stderr | src/__tests__/helpers/install.test.ts > install > Error handling > should handle network errors during installation
89
- Failed to install dependencies with npm.
90
-
91
- 📦 Installing dependencies with npm...
92
-
93
-
94
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should handle permission errors during installation
95
-
96
- stderr | src/__tests__/helpers/install.test.ts > install > Error handling > should handle permission errors during installation
97
- 📦 Installing dependencies with npm...
98
-
99
- Failed to install dependencies with npm.
100
-
101
- ✓ src/__tests__/helpers/generate-identity.test.ts (24 tests) 32ms
102
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should log error message when installation fails
103
-
104
- 📦 Installing dependencies with npm...
105
-
106
- stderr | src/__tests__/helpers/install.test.ts > install > Error handling > should handle invalid package manager gracefully
107
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should handle invalid package manager gracefully
108
- ⚠️ Warning: Unknown package manager "unknown", cannot check lockfile
109
-
110
- 📦 Installing dependencies with unknown...
111
-
112
-
113
- stdout | src/__tests__/helpers/install.test.ts > install > Lockfile validation > should warn when lockfile not created
114
-
115
- 📦 Installing dependencies with npm...
116
-
117
- stderr | src/helpers/__tests__/config-builder.spec.ts > buildConfigWithRemote > should fallback to local config when remote fetch fails
118
- [RemoteConfig] Neither projectId nor agentDid provided
119
-
120
- ✓ src/__tests__/helpers/install.test.ts (20 tests) 44ms
121
- ✓ src/__tests__/helpers/generate-config.test.ts (25 tests) 68ms
122
- ✓ src/helpers/__tests__/config-builder.spec.ts (12 tests) 4ms
123
- ✓ src/__tests__/helpers/validate-project-structure.test.ts (23 tests) 48ms
124
- ✓ test-cloudflare/tests/do-routing.test.ts (14 tests) 182ms
125
- ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts (19 tests | 1 failed) 139ms
126
- ✓ should fetch and generate template successfully 19ms
127
- ✓ should use default project name from path when not provided 8ms
128
- ✓ should handle different package managers 28ms
129
- ✓ should generate template with correct project structure 7ms
130
- ✓ should generate consistent template structure on multiple calls 12ms
131
- ✓ should handle template generation without overwriting existing files incorrectly 8ms
132
- ✓ should handle missing dependencies gracefully 1ms
133
- ✓ should handle permission errors gracefully 1ms
134
- ✓ should handle disk space errors (simulated) 2ms
135
- ✓ should transform project name to valid class name 6ms
136
- ✓ should handle special characters in project name 6ms
137
- ✓ should handle numeric project names 5ms
138
- ✓ should transform KV namespace bindings correctly 6ms
139
- × should transform package.json scripts correctly 2ms
140
- ✓ should transform index.ts class name correctly 5ms
141
- ✓ should include API key in .dev.vars when provided 5ms
142
- ✓ should handle missing API key gracefully 5ms
143
- ✓ should skip identity generation when skipIdentity is true 5ms
144
- ✓ should generate identity when skipIdentity is false 5ms
145
- ✓ src/__tests__/cloudflare-template.test.ts (24 tests) 167ms
146
-
147
- ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
148
-
149
- FAIL src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts > fetchCloudflareMcpiTemplate > Template transformation > should transform package.json scripts correctly
150
- Error: ENOENT: no such file or directory, mkdir '/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app/test-temp/fetch-test-1762237108044-020si'
151
- ❯ Object.module.exports.makeDirSync ../../node_modules/.pnpm/fs-extra@11.3.0/node_modules/fs-extra/lib/mkdirs/make-dir.js:23:13
152
- ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts:20:8
153
- 18| beforeEach(() => {
154
- 19| tempDir = path.join(process.cwd(), 'test-temp', `fetch-test-${Date…
155
- 20| fs.ensureDirSync(tempDir);
156
- | ^
157
- 21| console.log = vi.fn();
158
- 22| console.error = vi.fn();
159
-
160
- ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
161
-
162
-
163
- Test Files 1 failed | 11 passed (12)
164
- Tests 1 failed | 236 passed (237)
165
- Start at 00:18:27
166
- Duration 702ms (transform 602ms, setup 0ms, collect 1.14s, tests 726ms, environment 1ms, prepare 649ms)
167
-
168
-  ELIFECYCLE  Command failed with exit code 1.
@@ -1,306 +0,0 @@
1
-
2
- 
3
- > @kya-os/create-mcpi-app@1.7.36 test /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
4
- > vitest --run
5
-
6
- [?25l▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]
7
-
8
- package.json:15:6:
9
-  15 │ "types": "./dist/index.d.ts"
10
- ╵ ~~~~~~~
11
-
12
- The "import" condition comes earlier and will be used for all "import" statements:
13
-
14
- package.json:13:6:
15
-  13 │ "import": "./dist/index.js",
16
- ╵ ~~~~~~~~
17
-
18
- The "require" condition comes earlier and will be used for all "require" calls:
19
-
20
- package.json:14:6:
21
-  14 │ "require": "./dist/index.js",
22
- ╵ ~~~~~~~~~
23
-
24
- ▲ [WARNING] The condition "types" here will never be used as it comes after both "import" and "require" [package.json]
25
-
26
- package.json:20:6:
27
-  20 │ "types": "./dist/helpers/config-builder.d.ts"
28
- ╵ ~~~~~~~
29
-
30
- The "import" condition comes earlier and will be used for all "import" statements:
31
-
32
- package.json:18:6:
33
-  18 │ "import": "./dist/helpers/config-builder.js",
34
- ╵ ~~~~~~~~
35
-
36
- The "require" condition comes earlier and will be used for all "require" calls:
37
-
38
- package.json:19:6:
39
-  19 │ "require": "./dist/helpers/config-builder.js",
40
- ╵ ~~~~~~~~~
41
-
42
-
43
-  RUN  v4.0.5 /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
44
-
45
- [?2026h
46
-  ❯ test-cloudflare/tests/cache-invalidation.test.ts [queued]
47
-
48
-  Test Files 0 passed (12)
49
-  Tests 0 passed (0)
50
-  Start at 00:06:42
51
-  Duration 207ms
52
- [?2026l[?2026h
53
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts [queued]
54
-  ❯ test-cloudflare/tests/cache-invalidation.test.ts [queued]
55
-  ❯ test-cloudflare/tests/delegation.test.ts [queued]
56
-
57
-  Test Files 0 passed (12)
58
-  Tests 0 passed (0)
59
-  Start at 00:06:42
60
-  Duration 434ms
61
- [?2026l[?2026h ✓ test-cloudflare/tests/cache-invalidation.test.ts (18 tests) 6ms
62
- ✓ test-cloudflare/tests/delegation.test.ts (12 tests) 10ms
63
- ✓ test-cloudflare/tests/cors-security.test.ts (29 tests) 4ms
64
-
65
-  ❯ src/__tests__/cloudflare-template.test.ts [queued]
66
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts [queued]
67
-  ❯ src/__tests__/helpers/generate-config.test.ts [queued]
68
-  ❯ src/__tests__/helpers/generate-identity.test.ts [queued]
69
-  ❯ src/__tests__/helpers/install.test.ts [queued]
70
-  ❯ src/__tests__/helpers/validate-project-structure.test.ts [queued]
71
-  ❯ src/helpers/__tests__/config-builder.spec.ts [queued]
72
-  ❯ test-cloudflare/tests/do-routing.test.ts 1/14
73
-  ❯ test-cloudflare/tests/session-management.test.ts [queued]
74
-
75
-  Test Files 3 passed (12)
76
-  Tests 60 passed (73)
77
-  Start at 00:06:42
78
-  Duration 536ms
79
- [?2026l[?2026h ✓ test-cloudflare/tests/do-routing.test.ts (14 tests) 106ms
80
- stdout | test-cloudflare/tests/session-management.test.ts > Session Management > Session Security > should not expose session data in logs
81
- [Session] Created session: secure-session
82
-
83
- ✓ test-cloudflare/tests/session-management.test.ts (17 tests) 19ms
84
- ✓ src/__tests__/helpers/generate-identity.test.ts (24 tests) 46ms
85
-
86
-
87
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
88
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
89
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
90
-  ❯ src/__tests__/helpers/install.test.ts 0/20
91
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
92
-
93
-  Test Files 8 passed (12)
94
-  Tests 150 passed (237)
95
-  Start at 00:06:42
96
-  Duration 650ms
97
- [?2026l[?2026hstderr | src/helpers/__tests__/config-builder.spec.ts > buildConfigWithRemote > should fallback to local config when remote fetch fails
98
- [RemoteConfig] Neither projectId nor agentDid provided
99
-
100
-
101
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
102
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
103
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
104
-  ❯ src/__tests__/helpers/install.test.ts 0/20
105
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
106
-
107
-  Test Files 8 passed (12)
108
-  Tests 150 passed (237)
109
-  Start at 00:06:42
110
-  Duration 650ms
111
- [?2026l[?2026h ✓ src/__tests__/helpers/validate-project-structure.test.ts (23 tests) 57ms
112
- ✓ src/helpers/__tests__/config-builder.spec.ts (12 tests) 8ms
113
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should install dependencies with npm
114
- 
115
- 📦 Installing dependencies with npm...
116
- ✓ Lockfile created (package-lock.json) - remember to commit it
117
-
118
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should install dependencies with yarn
119
- 
120
- 📦 Installing dependencies with yarn...
121
- ✓ Lockfile created (yarn.lock) - remember to commit it
122
-
123
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should install dependencies with pnpm
124
- 
125
- 📦 Installing dependencies with pnpm...
126
- ✓ Lockfile created (pnpm-lock.yaml) - remember to commit it
127
-
128
- stdout | src/__tests__/helpers/install.test.ts > install > Dependency installation > should use correct working directory
129
- 
130
- 📦 Installing dependencies with npm...
131
- ✓ Lockfile created (package-lock.json) - remember to commit it
132
-
133
-
134
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
135
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
136
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
137
-  ❯ src/__tests__/helpers/install.test.ts 0/20
138
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
139
-
140
-  Test Files 8 passed (12)
141
-  Tests 150 passed (237)
142
-  Start at 00:06:42
143
-  Duration 650ms
144
- [?2026l[?2026hstderr | src/__tests__/helpers/install.test.ts > install > Install progress reporting > should report correct package manager in log
145
- ⚠️ Warning: No lockfile generated (pnpm-lock.yaml)
146
-
147
-
148
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
149
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
150
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
151
-  ❯ src/__tests__/helpers/install.test.ts 0/20
152
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
153
-
154
-  Test Files 8 passed (12)
155
-  Tests 150 passed (237)
156
-  Start at 00:06:42
157
-  Duration 650ms
158
- [?2026l[?2026hstdout | src/__tests__/helpers/install.test.ts > install > Install progress reporting > should check for lockfile after installation
159
- 
160
- 📦 Installing dependencies with npm...
161
- ✓ Lockfile created (package-lock.json) - remember to commit it
162
-
163
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should throw error when installation fails
164
- 
165
- 📦 Installing dependencies with npm...
166
-
167
-
168
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
169
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
170
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
171
-  ❯ src/__tests__/helpers/install.test.ts 0/20
172
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
173
-
174
-  Test Files 8 passed (12)
175
-  Tests 150 passed (237)
176
-  Start at 00:06:42
177
-  Duration 650ms
178
- [?2026l[?2026hstderr | src/__tests__/helpers/install.test.ts > install > Error handling > should throw error when installation fails
179
- Failed to install dependencies with npm.
180
-
181
-
182
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
183
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
184
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
185
-  ❯ src/__tests__/helpers/install.test.ts 0/20
186
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
187
-
188
-  Test Files 8 passed (12)
189
-  Tests 150 passed (237)
190
-  Start at 00:06:42
191
-  Duration 650ms
192
- [?2026l[?2026hstdout | src/__tests__/helpers/install.test.ts > install > Error handling > should handle network errors during installation
193
- 
194
- 📦 Installing dependencies with npm...
195
-
196
-
197
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
198
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
199
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
200
-  ❯ src/__tests__/helpers/install.test.ts 0/20
201
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
202
-
203
-  Test Files 8 passed (12)
204
-  Tests 150 passed (237)
205
-  Start at 00:06:42
206
-  Duration 650ms
207
- [?2026l[?2026hstderr | src/__tests__/helpers/install.test.ts > install > Error handling > should handle network errors during installation
208
- Failed to install dependencies with npm.
209
-
210
-
211
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
212
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
213
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
214
-  ❯ src/__tests__/helpers/install.test.ts 0/20
215
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
216
-
217
-  Test Files 8 passed (12)
218
-  Tests 150 passed (237)
219
-  Start at 00:06:42
220
-  Duration 650ms
221
- [?2026l[?2026hstdout | src/__tests__/helpers/install.test.ts > install > Error handling > should handle permission errors during installation
222
- 
223
- 📦 Installing dependencies with npm...
224
-
225
-
226
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
227
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
228
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
229
-  ❯ src/__tests__/helpers/install.test.ts 0/20
230
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
231
-
232
-  Test Files 8 passed (12)
233
-  Tests 150 passed (237)
234
-  Start at 00:06:42
235
-  Duration 650ms
236
- [?2026l[?2026hstderr | src/__tests__/helpers/install.test.ts > install > Error handling > should handle permission errors during installation
237
- Failed to install dependencies with npm.
238
-
239
-
240
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
241
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
242
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
243
-  ❯ src/__tests__/helpers/install.test.ts 0/20
244
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
245
-
246
-  Test Files 8 passed (12)
247
-  Tests 150 passed (237)
248
-  Start at 00:06:42
249
-  Duration 650ms
250
- [?2026l[?2026hstdout | src/__tests__/helpers/install.test.ts > install > Error handling > should log error message when installation fails
251
- 
252
- 📦 Installing dependencies with npm...
253
-
254
- stdout | src/__tests__/helpers/install.test.ts > install > Error handling > should handle invalid package manager gracefully
255
- 
256
- 📦 Installing dependencies with unknown...
257
-
258
-
259
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
260
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
261
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
262
-  ❯ src/__tests__/helpers/install.test.ts 0/20
263
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
264
-
265
-  Test Files 8 passed (12)
266
-  Tests 150 passed (237)
267
-  Start at 00:06:42
268
-  Duration 650ms
269
- [?2026l[?2026hstderr | src/__tests__/helpers/install.test.ts > install > Error handling > should handle invalid package manager gracefully
270
- ⚠️ Warning: Unknown package manager "unknown", cannot check lockfile
271
-
272
-
273
-  ❯ src/__tests__/cloudflare-template.test.ts 0/24
274
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 0/19
275
-  ❯ src/__tests__/helpers/generate-config.test.ts 1/25
276
-  ❯ src/__tests__/helpers/install.test.ts 0/20
277
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
278
-
279
-  Test Files 8 passed (12)
280
-  Tests 150 passed (237)
281
-  Start at 00:06:42
282
-  Duration 650ms
283
- [?2026l[?2026h ✓ src/__tests__/helpers/generate-config.test.ts (25 tests) 61ms
284
- stdout | src/__tests__/helpers/install.test.ts > install > Lockfile validation > should warn when lockfile not created
285
- 
286
- 📦 Installing dependencies with npm...
287
-
288
- ✓ src/__tests__/helpers/install.test.ts (20 tests) 41ms
289
-
290
-  ❯ src/__tests__/cloudflare-template.test.ts 6/24
291
-  ❯ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts 5/19
292
-  ❯ test-cloudflare/tests/do-routing.test.ts 14/14
293
-
294
-  Test Files 10 passed (12)
295
-  Tests 205 passed (237)
296
-  Start at 00:06:42
297
-  Duration 849ms
298
- [?2026l ✓ src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts (19 tests) 257ms
299
- ✓ src/__tests__/cloudflare-template.test.ts (24 tests) 274ms
300
-
301
-  Test Files  12 passed (12)
302
-  Tests  237 passed (237)
303
-  Start at  00:06:42
304
-  Duration  960ms (transform 833ms, setup 0ms, collect 1.55s, tests 888ms, environment 1ms, prepare 187ms)
305
-
306
- [?25h
@@ -1,8 +0,0 @@
1
- /**
2
- * Tests for Configuration Builder Utilities
3
- *
4
- * Validates that config builders generate correct configurations
5
- * and handle remote fetching correctly.
6
- */
7
- export {};
8
- //# sourceMappingURL=config-builder.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-builder.spec.d.ts","sourceRoot":"","sources":["../../../src/helpers/__tests__/config-builder.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}