@kya-os/create-mcpi-app 1.7.38-canary.2 → 1.7.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-test$colon$coverage.log +755 -0
- package/.turbo/turbo-test.log +200 -0
- package/dist/helpers/fetch-cloudflare-mcpi-template.d.ts.map +1 -1
- package/dist/helpers/fetch-cloudflare-mcpi-template.js +35 -914
- package/dist/helpers/fetch-cloudflare-mcpi-template.js.map +1 -1
- package/dist/utils/fetch-remote-config.d.ts.map +1 -1
- package/dist/utils/fetch-remote-config.js +2 -2
- package/dist/utils/fetch-remote-config.js.map +1 -1
- package/package/package.json +77 -0
- package/package.json +1 -1
- package/ARCHITECTURE_ANALYSIS.md +0 -392
- package/CHANGELOG.md +0 -372
- package/DEPRECATION_WARNINGS_ANALYSIS.md +0 -192
- package/IMPLEMENTATION_SUMMARY.md +0 -108
- package/REMEDIATION_PLAN.md +0 -99
- package/dist/.tsbuildinfo +0 -1
- package/scripts/prepare-pack.js +0 -47
- package/scripts/validate-no-workspace.js +0 -79
- package/src/__tests__/cloudflare-template.test.ts +0 -490
- package/src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts +0 -337
- package/src/__tests__/helpers/generate-config.test.ts +0 -312
- package/src/__tests__/helpers/generate-identity.test.ts +0 -271
- package/src/__tests__/helpers/install.test.ts +0 -370
- package/src/__tests__/helpers/validate-project-structure.test.ts +0 -467
- package/src/__tests__.bak/regression.test.ts +0 -434
- package/src/effects/index.ts +0 -80
- package/src/helpers/__tests__/config-builder.spec.ts +0 -231
- package/src/helpers/apply-identity-preset.ts +0 -209
- package/src/helpers/config-builder.ts +0 -165
- package/src/helpers/copy-template.ts +0 -11
- package/src/helpers/create.ts +0 -239
- package/src/helpers/fetch-cloudflare-mcpi-template.ts +0 -2404
- package/src/helpers/fetch-cloudflare-template.ts +0 -361
- package/src/helpers/fetch-mcpi-template.ts +0 -236
- package/src/helpers/fetch-xmcp-template.ts +0 -153
- package/src/helpers/generate-config.ts +0 -118
- package/src/helpers/generate-identity.ts +0 -163
- package/src/helpers/identity-manager.ts +0 -186
- package/src/helpers/install.ts +0 -79
- package/src/helpers/rename.ts +0 -17
- package/src/helpers/validate-project-structure.ts +0 -127
- package/src/index.ts +0 -520
- package/src/utils/__tests__/fetch-remote-config.test.ts +0 -271
- package/src/utils/check-node.ts +0 -17
- package/src/utils/fetch-remote-config.ts +0 -179
- package/src/utils/is-folder-empty.ts +0 -60
- package/src/utils/validate-project-name.ts +0 -132
- package/test-cloudflare/README.md +0 -164
- package/test-cloudflare/package.json +0 -28
- package/test-cloudflare/src/index.ts +0 -341
- package/test-cloudflare/src/tools/greet.ts +0 -19
- package/test-cloudflare/tests/cache-invalidation.test.ts +0 -410
- package/test-cloudflare/tests/cors-security.test.ts +0 -349
- package/test-cloudflare/tests/delegation.test.ts +0 -335
- package/test-cloudflare/tests/do-routing.test.ts +0 -314
- package/test-cloudflare/tests/integration.test.ts +0 -205
- package/test-cloudflare/tests/session-management.test.ts +0 -359
- package/test-cloudflare/tsconfig.json +0 -16
- package/test-cloudflare/vitest.config.ts +0 -9
- package/test-cloudflare/wrangler.toml +0 -37
- package/test-node/README.md +0 -44
- package/test-node/package.json +0 -23
- package/test-node/src/tools/greet.ts +0 -25
- package/test-node/xmcp.config.ts +0 -20
- package/tsconfig.json +0 -26
- package/vitest.config.ts +0 -14
|
@@ -0,0 +1,755 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
> @kya-os/create-mcpi-app@1.7.38 test:coverage /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app
|
|
4
|
+
> vitest --run --coverage
|
|
5
|
+
|
|
6
|
+
[?25l[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThe condition "types" here will never be used as it comes after both "import" and "require"[0m [package.json]
|
|
7
|
+
|
|
8
|
+
package.json:15:6:
|
|
9
|
+
[37m 15 │ [32m"types"[37m: "./dist/index.d.ts"
|
|
10
|
+
╵ [32m~~~~~~~[0m
|
|
11
|
+
|
|
12
|
+
The "import" condition comes earlier and will be used for all "import"
|
|
13
|
+
statements:
|
|
14
|
+
|
|
15
|
+
package.json:13:6:
|
|
16
|
+
[37m 13 │ [32m"import"[37m: "./dist/index.js",
|
|
17
|
+
╵ [32m~~~~~~~~[0m
|
|
18
|
+
|
|
19
|
+
The "require" condition comes earlier and will be used for all "require"
|
|
20
|
+
calls:
|
|
21
|
+
|
|
22
|
+
package.json:14:6:
|
|
23
|
+
[37m 14 │ [32m"require"[37m: "./dist/index.js",
|
|
24
|
+
╵ [32m~~~~~~~~~[0m
|
|
25
|
+
|
|
26
|
+
[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mThe condition "types" here will never be used as it comes after both "import" and "require"[0m [package.json]
|
|
27
|
+
|
|
28
|
+
package.json:20:6:
|
|
29
|
+
[37m 20 │ [32m"types"[37m: "./dist/helpers/config-builder.d.ts"
|
|
30
|
+
╵ [32m~~~~~~~[0m
|
|
31
|
+
|
|
32
|
+
The "import" condition comes earlier and will be used for all "import"
|
|
33
|
+
statements:
|
|
34
|
+
|
|
35
|
+
package.json:18:6:
|
|
36
|
+
[37m 18 │ [32m"import"[37m: "./dist/helpers/config-builder.js",
|
|
37
|
+
╵ [32m~~~~~~~~[0m
|
|
38
|
+
|
|
39
|
+
The "require" condition comes earlier and will be used for all "require"
|
|
40
|
+
calls:
|
|
41
|
+
|
|
42
|
+
package.json:19:6:
|
|
43
|
+
[37m 19 │ [32m"require"[37m: "./dist/helpers/config-builder.js",
|
|
44
|
+
╵ [32m~~~~~~~~~[0m
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
[1m[46m RUN [49m[22m [36mv4.0.5 [39m[90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app[39m
|
|
48
|
+
[2mCoverage enabled with [22m[33mv8[39m
|
|
49
|
+
|
|
50
|
+
[?2026h
|
|
51
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m [queued][22m
|
|
52
|
+
|
|
53
|
+
[2m Test Files [22m[1m[32m0 passed[39m[22m[90m (13)[39m
|
|
54
|
+
[2m Tests [22m[1m[32m0 passed[39m[22m[90m (0)[39m
|
|
55
|
+
[2m Start at [22m05:30:02
|
|
56
|
+
[2m Duration [22m176ms
|
|
57
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K
|
|
58
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m [queued][22m
|
|
59
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m [queued][22m
|
|
60
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m [queued][22m
|
|
61
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/install.test.ts[2m [queued][22m
|
|
62
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m [queued][22m
|
|
63
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m [queued][22m
|
|
64
|
+
[1m[33m ❯ [39m[22msrc/utils/__tests__/fetch-remote-config.test.ts[2m [queued][22m
|
|
65
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/cache-invalidation.test.ts[2m [queued][22m
|
|
66
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/delegation.test.ts[2m [queued][22m
|
|
67
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/session-management.test.ts[2m [queued][22m
|
|
68
|
+
|
|
69
|
+
[2m Test Files [22m[1m[32m0 passed[39m[22m[90m (13)[39m
|
|
70
|
+
[2m Tests [22m[1m[32m0 passed[39m[22m[90m (0)[39m
|
|
71
|
+
[2m Start at [22m05:30:02
|
|
72
|
+
[2m Duration [22m276ms
|
|
73
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mDependency installation[2m > [22m[2mshould install dependencies with npm
|
|
74
|
+
[22m[39m
|
|
75
|
+
📦 Installing dependencies with npm...
|
|
76
|
+
✓ Lockfile created (package-lock.json) - remember to commit it
|
|
77
|
+
|
|
78
|
+
[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mDependency installation[2m > [22m[2mshould install dependencies with yarn
|
|
79
|
+
[22m[39m
|
|
80
|
+
📦 Installing dependencies with yarn...
|
|
81
|
+
✓ Lockfile created (yarn.lock) - remember to commit it
|
|
82
|
+
|
|
83
|
+
[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mDependency installation[2m > [22m[2mshould install dependencies with pnpm
|
|
84
|
+
[22m[39m
|
|
85
|
+
📦 Installing dependencies with pnpm...
|
|
86
|
+
✓ Lockfile created (pnpm-lock.yaml) - remember to commit it
|
|
87
|
+
|
|
88
|
+
[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mDependency installation[2m > [22m[2mshould use correct working directory
|
|
89
|
+
[22m[39m
|
|
90
|
+
📦 Installing dependencies with npm...
|
|
91
|
+
✓ Lockfile created (package-lock.json) - remember to commit it
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
95
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
96
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
97
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
98
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
99
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
100
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
101
|
+
|
|
102
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
103
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
104
|
+
[2m Start at [22m05:30:02
|
|
105
|
+
[2m Duration [22m376ms
|
|
106
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mInstall progress reporting[2m > [22m[2mshould report correct package manager in log
|
|
107
|
+
[22m[39m⚠️ Warning: No lockfile generated (pnpm-lock.yaml)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
111
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
112
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
113
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
114
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
115
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
116
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
117
|
+
|
|
118
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
119
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
120
|
+
[2m Start at [22m05:30:02
|
|
121
|
+
[2m Duration [22m376ms
|
|
122
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m test-cloudflare/tests/cache-invalidation.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
123
|
+
[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mInstall progress reporting[2m > [22m[2mshould check for lockfile after installation
|
|
124
|
+
[22m[39m
|
|
125
|
+
📦 Installing dependencies with npm...
|
|
126
|
+
✓ Lockfile created (package-lock.json) - remember to commit it
|
|
127
|
+
|
|
128
|
+
[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould throw error when installation fails
|
|
129
|
+
[22m[39m
|
|
130
|
+
📦 Installing dependencies with npm...
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
134
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
135
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
136
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
137
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
138
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
139
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
140
|
+
|
|
141
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
142
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
143
|
+
[2m Start at [22m05:30:02
|
|
144
|
+
[2m Duration [22m376ms
|
|
145
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould throw error when installation fails
|
|
146
|
+
[22m[39mFailed to install dependencies with npm.
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
150
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
151
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
152
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
153
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
154
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
155
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
156
|
+
|
|
157
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
158
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
159
|
+
[2m Start at [22m05:30:02
|
|
160
|
+
[2m Duration [22m376ms
|
|
161
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould handle network errors during installation
|
|
162
|
+
[22m[39m
|
|
163
|
+
📦 Installing dependencies with npm...
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
167
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
168
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
169
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
170
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
171
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
172
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
173
|
+
|
|
174
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
175
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
176
|
+
[2m Start at [22m05:30:02
|
|
177
|
+
[2m Duration [22m376ms
|
|
178
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould handle network errors during installation
|
|
179
|
+
[22m[39mFailed to install dependencies with npm.
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
183
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
184
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
185
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
186
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
187
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
188
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
189
|
+
|
|
190
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
191
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
192
|
+
[2m Start at [22m05:30:02
|
|
193
|
+
[2m Duration [22m376ms
|
|
194
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould handle permission errors during installation
|
|
195
|
+
[22m[39m
|
|
196
|
+
📦 Installing dependencies with npm...
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
200
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
201
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
202
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
203
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
204
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
205
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
206
|
+
|
|
207
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
208
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
209
|
+
[2m Start at [22m05:30:02
|
|
210
|
+
[2m Duration [22m376ms
|
|
211
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould handle permission errors during installation
|
|
212
|
+
[22m[39mFailed to install dependencies with npm.
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
216
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
217
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
218
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
219
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
220
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
221
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
222
|
+
|
|
223
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
224
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
225
|
+
[2m Start at [22m05:30:02
|
|
226
|
+
[2m Duration [22m376ms
|
|
227
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould log error message when installation fails
|
|
228
|
+
[22m[39m
|
|
229
|
+
📦 Installing dependencies with npm...
|
|
230
|
+
|
|
231
|
+
[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould handle invalid package manager gracefully
|
|
232
|
+
[22m[39m
|
|
233
|
+
📦 Installing dependencies with unknown...
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
237
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
238
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
239
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
240
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
241
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
242
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
243
|
+
|
|
244
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
245
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
246
|
+
[2m Start at [22m05:30:02
|
|
247
|
+
[2m Duration [22m376ms
|
|
248
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mError handling[2m > [22m[2mshould handle invalid package manager gracefully
|
|
249
|
+
[22m[39m⚠️ Warning: Unknown package manager "unknown", cannot check lockfile
|
|
250
|
+
|
|
251
|
+
[90mstderr[2m | src/utils/__tests__/fetch-remote-config.test.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould return null if API request fails
|
|
252
|
+
[22m[39m[RemoteConfig] API returned 404: Not Found
|
|
253
|
+
|
|
254
|
+
[90mstderr[2m | src/utils/__tests__/fetch-remote-config.test.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould return null if API throws error
|
|
255
|
+
[22m[39m[RemoteConfig] Failed to fetch config: Error: Network error
|
|
256
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app/[39msrc/utils/__tests__/fetch-remote-config.test.ts:173:35
|
|
257
|
+
at file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:157:11
|
|
258
|
+
at file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:753:26
|
|
259
|
+
at file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1636:20
|
|
260
|
+
at new Promise (<anonymous>)
|
|
261
|
+
at runWithTimeout (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1602:10)
|
|
262
|
+
at runTest (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1309:12)
|
|
263
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
264
|
+
at runSuite (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1468:8)
|
|
265
|
+
at runSuite (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1468:8)
|
|
266
|
+
|
|
267
|
+
[90mstderr[2m | src/utils/__tests__/fetch-remote-config.test.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould return null if neither projectId nor agentDid provided
|
|
268
|
+
[22m[39m[RemoteConfig] Neither projectId nor agentDid provided
|
|
269
|
+
|
|
270
|
+
[90mstderr[2m | src/utils/__tests__/fetch-remote-config.test.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould handle cache read errors gracefully
|
|
271
|
+
[22m[39m[RemoteConfig] Cache read failed: Error: Cache error
|
|
272
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/create-mcpi-app/[39msrc/utils/__tests__/fetch-remote-config.test.ts:201:50
|
|
273
|
+
at file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:157:11
|
|
274
|
+
at file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:753:26
|
|
275
|
+
at file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1636:20
|
|
276
|
+
at new Promise (<anonymous>)
|
|
277
|
+
at runWithTimeout (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1602:10)
|
|
278
|
+
at runTest (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1309:12)
|
|
279
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
280
|
+
at runSuite (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1468:8)
|
|
281
|
+
at runSuite (file:///Users/dylanhobbs/Documents/@kya-os/xmcp-i/node_modules/[4m.pnpm[24m/@vitest+runner@4.0.5/node_modules/[4m@vitest/runner[24m/dist/index.js:1468:8)
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
285
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
286
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
287
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
288
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
289
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
290
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
291
|
+
|
|
292
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
293
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
294
|
+
[2m Start at [22m05:30:02
|
|
295
|
+
[2m Duration [22m376ms
|
|
296
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/helpers/install.test.ts[2m > [22m[2minstall[2m > [22m[2mLockfile validation[2m > [22m[2mshould warn when lockfile not created
|
|
297
|
+
[22m[39m
|
|
298
|
+
📦 Installing dependencies with npm...
|
|
299
|
+
|
|
300
|
+
[90mstdout[2m | test-cloudflare/tests/session-management.test.ts[2m > [22m[2mSession Management[2m > [22m[2mSession Security[2m > [22m[2mshould not expose session data in logs
|
|
301
|
+
[22m[39m[Session] Created session: secure-session
|
|
302
|
+
|
|
303
|
+
[32m✓[39m test-cloudflare/tests/delegation.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
304
|
+
[32m✓[39m src/__tests__/helpers/install.test.ts [2m([22m[2m20 tests[22m[2m)[22m[32m 36[2mms[22m[39m
|
|
305
|
+
[32m✓[39m test-cloudflare/tests/session-management.test.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
306
|
+
[32m✓[39m src/utils/__tests__/fetch-remote-config.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 10[2mms[22m[39m
|
|
307
|
+
[32m✓[39m test-cloudflare/tests/cors-security.test.ts [2m([22m[2m29 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
|
308
|
+
|
|
309
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
310
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
311
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
312
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
313
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
314
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
315
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
316
|
+
|
|
317
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
318
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
319
|
+
[2m Start at [22m05:30:02
|
|
320
|
+
[2m Duration [22m376ms
|
|
321
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[90mstderr[2m | src/helpers/__tests__/config-builder.spec.ts[2m > [22m[2mbuildConfigWithRemote[2m > [22m[2mshould fallback to local config when remote fetch fails
|
|
322
|
+
[22m[39m[RemoteConfig] Neither projectId nor agentDid provided
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 0/24[22m
|
|
326
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 0/19[22m
|
|
327
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-config.test.ts[2m 0/25[22m
|
|
328
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/generate-identity.test.ts[2m 0/24[22m
|
|
329
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/validate-project-structure.test.ts[2m 0/23[22m
|
|
330
|
+
[1m[33m ❯ [39m[22msrc/helpers/__tests__/config-builder.spec.ts[2m 1/12[22m
|
|
331
|
+
[1m[33m ❯ [39m[22mtest-cloudflare/tests/do-routing.test.ts[2m 0/14[22m
|
|
332
|
+
|
|
333
|
+
[2m Test Files [22m[1m[32m6 passed[39m[22m[90m (13)[39m
|
|
334
|
+
[2m Tests [22m[1m[32m106 passed[39m[22m[90m (246)[39m
|
|
335
|
+
[2m Start at [22m05:30:02
|
|
336
|
+
[2m Duration [22m376ms
|
|
337
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m src/helpers/__tests__/config-builder.spec.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
338
|
+
[32m✓[39m src/__tests__/helpers/generate-identity.test.ts [2m([22m[2m24 tests[22m[2m)[22m[32m 45[2mms[22m[39m
|
|
339
|
+
[32m✓[39m src/__tests__/helpers/generate-config.test.ts [2m([22m[2m25 tests[22m[2m)[22m[32m 54[2mms[22m[39m
|
|
340
|
+
[32m✓[39m src/__tests__/helpers/validate-project-structure.test.ts [2m([22m[2m23 tests[22m[2m)[22m[32m 56[2mms[22m[39m
|
|
341
|
+
[32m✓[39m test-cloudflare/tests/do-routing.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 99[2mms[22m[39m
|
|
342
|
+
|
|
343
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cloudflare-template.test.ts[2m 10/24[22m
|
|
344
|
+
[1m[33m ❯ [39m[22msrc/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts[2m 11/19[22m
|
|
345
|
+
|
|
346
|
+
[2m Test Files [22m[1m[32m11 passed[39m[22m[90m (13)[39m
|
|
347
|
+
[2m Tests [22m[1m[31m6 failed[39m[22m[2m | [22m[1m[32m218 passed[39m[22m[90m (246)[39m
|
|
348
|
+
[2m Start at [22m05:30:02
|
|
349
|
+
[2m Duration [22m577ms
|
|
350
|
+
[?2026l[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/helpers/fetch-cloudflare-mcpi-template.test.ts [2m([22m[2m19 tests[22m[2m)[22m[32m 142[2mms[22m[39m
|
|
351
|
+
[31m❯[39m src/__tests__/cloudflare-template.test.ts [2m([22m[2m24 tests[22m[2m | [22m[31m7 failed[39m[2m)[22m[32m 165[2mms[22m[39m
|
|
352
|
+
[31m [31m×[31m should create all required files and directories[39m[32m 24[2mms[22m[39m
|
|
353
|
+
[31m [31m×[31m should create mcpi-runtime-config.ts with correct structure[39m[32m 15[2mms[22m[39m
|
|
354
|
+
[31m [31m×[31m should create index.ts with correct structure[39m[32m 10[2mms[22m[39m
|
|
355
|
+
[32m✓[39m should include MCP_SERVER_URL placeholder in wrangler.toml[32m 10[2mms[22m[39m
|
|
356
|
+
[31m [31m×[31m should log warning when MCP_SERVER_URL not configured[39m[32m 11[2mms[22m[39m
|
|
357
|
+
[31m [31m×[31m should store MCP_SERVER_URL in class property[39m[32m 7[2mms[22m[39m
|
|
358
|
+
[32m✓[39m should include all required KV namespace bindings in wrangler.toml[32m 5[2mms[22m[39m
|
|
359
|
+
[32m✓[39m should create KV namespace creation scripts in package.json[32m 7[2mms[22m[39m
|
|
360
|
+
[32m✓[39m should create KV namespace listing scripts[32m 5[2mms[22m[39m
|
|
361
|
+
[31m [31m×[31m should include tool protection configuration in runtime config[39m[32m 6[2mms[22m[39m
|
|
362
|
+
[31m [31m×[31m should include CloudflareRuntime import for tool protection[39m[32m 7[2mms[22m[39m
|
|
363
|
+
[32m✓[39m should conditionally enable tool protection KV when API key provided[32m 5[2mms[22m[39m
|
|
364
|
+
[32m✓[39m should comment out tool protection KV when no API key provided[32m 5[2mms[22m[39m
|
|
365
|
+
[32m✓[39m should generate identity when skipIdentity is false[32m 5[2mms[22m[39m
|
|
366
|
+
[32m✓[39m should skip identity generation when skipIdentity is true[32m 4[2mms[22m[39m
|
|
367
|
+
[32m✓[39m should include identity variables in wrangler.toml[32m 5[2mms[22m[39m
|
|
368
|
+
[32m✓[39m should create .dev.vars.example template[32m 6[2mms[22m[39m
|
|
369
|
+
[32m✓[39m should handle file system errors gracefully[32m 1[2mms[22m[39m
|
|
370
|
+
[32m✓[39m should handle invalid project names[32m 5[2mms[22m[39m
|
|
371
|
+
[32m✓[39m should use correct package manager in scripts[32m 4[2mms[22m[39m
|
|
372
|
+
[32m✓[39m should create correct package.json structure[32m 4[2mms[22m[39m
|
|
373
|
+
[32m✓[39m should create greet tool with correct structure[32m 5[2mms[22m[39m
|
|
374
|
+
[32m✓[39m should create test files with correct structure[32m 4[2mms[22m[39m
|
|
375
|
+
[32m✓[39m should create README with project name[32m 4[2mms[22m[39m
|
|
376
|
+
|
|
377
|
+
[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m[1m[41m Failed Tests 7 [49m[22m[31m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39m
|
|
378
|
+
|
|
379
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mBasic template structure[2m > [22mshould create all required files and directories
|
|
380
|
+
[31m[1mAssertionError[22m: expected false to be true // Object.is equality[39m
|
|
381
|
+
|
|
382
|
+
[32m- Expected[39m
|
|
383
|
+
[31m+ Received[39m
|
|
384
|
+
|
|
385
|
+
[32m- true[39m
|
|
386
|
+
[31m+ false[39m
|
|
387
|
+
|
|
388
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m89:69[22m[39m
|
|
389
|
+
[90m 87| [39m expect(fs.existsSync(path.join(tempDir, ".gitignore"))).toBe(…
|
|
390
|
+
[90m 88| [39m expect(fs.existsSync(path.join(tempDir, "README.md"))).toBe(t…
|
|
391
|
+
[90m 89| [39m expect(fs.existsSync(path.join(tempDir, "vitest.config.ts")))…
|
|
392
|
+
[90m | [39m [31m^[39m
|
|
393
|
+
[90m 90| [39m })[33m;[39m
|
|
394
|
+
[90m 91| [39m
|
|
395
|
+
|
|
396
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/7]⎯[22m[39m
|
|
397
|
+
|
|
398
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mBasic template structure[2m > [22mshould create mcpi-runtime-config.ts with correct structure
|
|
399
|
+
[31m[1mAssertionError[22m: expected 'import type { CloudflareRuntimeConfig…' to contain 'buildBaseConfig'[39m
|
|
400
|
+
|
|
401
|
+
[32m- Expected[39m
|
|
402
|
+
[31m+ Received[39m
|
|
403
|
+
|
|
404
|
+
[32m- buildBaseConfig[39m
|
|
405
|
+
[31m+ import type { CloudflareRuntimeConfig } from '@kya-os/mcp-i-cloudflare/config';[39m
|
|
406
|
+
[31m+ import type { CloudflareEnv } from '@kya-os/mcp-i-cloudflare';[39m
|
|
407
|
+
[31m+ import { defineConfig } from '@kya-os/mcp-i-cloudflare';[39m
|
|
408
|
+
[31m+[39m
|
|
409
|
+
[31m+ /**[39m
|
|
410
|
+
[31m+ * Runtime configuration for MCP-I server[39m
|
|
411
|
+
[31m+ *[39m
|
|
412
|
+
[31m+ * This file configures runtime features like proof submission to AgentShield,[39m
|
|
413
|
+
[31m+ * delegation verification, and audit logging.[39m
|
|
414
|
+
[31m+ *[39m
|
|
415
|
+
[31m+ * Environment variables are automatically injected from wrangler.toml (Cloudflare)[39m
|
|
416
|
+
[31m+ * or .env (Node.js). Configure them there:[39m
|
|
417
|
+
[31m+ * - AGENTSHIELD_API_URL: AgentShield API base URL[39m
|
|
418
|
+
[31m+ * - AGENTSHIELD_API_KEY: Your AgentShield API key[39m
|
|
419
|
+
[31m+ * - MCPI_ENV: "development" or "production"[39m
|
|
420
|
+
[31m+ *[39m
|
|
421
|
+
[31m+ * Note: The service fetches tool protection config by agent DID automatically.[39m
|
|
422
|
+
[31m+ * No project ID configuration needed![39m
|
|
423
|
+
[31m+ */[39m
|
|
424
|
+
[31m+ export function getRuntimeConfig(env: CloudflareEnv): CloudflareRuntimeConfig {[39m
|
|
425
|
+
[31m+ return defineConfig({[39m
|
|
426
|
+
[31m+ // Only specify overrides - defaults are handled automatically[39m
|
|
427
|
+
[31m+ vars: {[39m
|
|
428
|
+
[31m+ ENVIRONMENT: env.ENVIRONMENT || env.MCPI_ENV || 'development',[39m
|
|
429
|
+
[31m+ AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,[39m
|
|
430
|
+
[31m+ AGENTSHIELD_API_URL: env.AGENTSHIELD_API_URL,[39m
|
|
431
|
+
[31m+ },[39m
|
|
432
|
+
[31m+ // Optional: Enable admin endpoints[39m
|
|
433
|
+
[31m+ admin: {[39m
|
|
434
|
+
[31m+ enabled: false, // Set to true and provide ADMIN_API_KEY to enable[39m
|
|
435
|
+
[31m+ apiKey: env.ADMIN_API_KEY,[39m
|
|
436
|
+
[31m+ },[39m
|
|
437
|
+
[31m+ });[39m
|
|
438
|
+
[31m+ }[39m
|
|
439
|
+
[31m+[39m
|
|
440
|
+
|
|
441
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m103:29[22m[39m
|
|
442
|
+
[90m101| [39m [35mconst[39m configContent [33m=[39m fs[33m.[39m[34mreadFileSync[39m(configPath[33m,[39m [32m"utf-8"[39m)[33m;[39m
|
|
443
|
+
[90m102| [39m [34mexpect[39m(configContent)[33m.[39m[34mtoContain[39m([32m"getRuntimeConfig"[39m)[33m;[39m
|
|
444
|
+
[90m103| [39m [34mexpect[39m(configContent)[33m.[39m[34mtoContain[39m([32m"buildBaseConfig"[39m)[33m;[39m
|
|
445
|
+
[90m | [39m [31m^[39m
|
|
446
|
+
[90m104| [39m [34mexpect[39m(configContent)[33m.[39m[34mtoContain[39m([32m"CloudflareRuntimeConfig"[39m)[33m;[39m
|
|
447
|
+
[90m105| [39m })[33m;[39m
|
|
448
|
+
|
|
449
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/7]⎯[22m[39m
|
|
450
|
+
|
|
451
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mBasic template structure[2m > [22mshould create index.ts with correct structure
|
|
452
|
+
[31m[1mAssertionError[22m: expected 'import { MCPICloudflareAgent, createM…' to contain 'McpAgent'[39m
|
|
453
|
+
|
|
454
|
+
[32m- Expected[39m
|
|
455
|
+
[31m+ Received[39m
|
|
456
|
+
|
|
457
|
+
[32m- McpAgent[39m
|
|
458
|
+
[31m+ import { MCPICloudflareAgent, createMCPIApp, type PrefixedCloudflareEnv } from "@kya-os/mcp-i-cloudflare";[39m
|
|
459
|
+
[31m+ import { greetTool } from "./tools/greet";[39m
|
|
460
|
+
[31m+ import { getRuntimeConfig } from "./mcpi-runtime-config";[39m
|
|
461
|
+
[31m+[39m
|
|
462
|
+
[31m+ /**[39m
|
|
463
|
+
[31m+ * Extended CloudflareEnv with prefixed KV bindings for multi-agent deployments[39m
|
|
464
|
+
[31m+ */[39m
|
|
465
|
+
[31m+ interface MyPrefixedCloudflareEnv extends PrefixedCloudflareEnv {[39m
|
|
466
|
+
[31m+ TESTPROJECT_NONCE_CACHE?: KVNamespace;[39m
|
|
467
|
+
[31m+ TESTPROJECT_PROOF_ARCHIVE?: KVNamespace;[39m
|
|
468
|
+
[31m+ TESTPROJECT_IDENTITY_STORAGE?: KVNamespace;[39m
|
|
469
|
+
[31m+ TESTPROJECT_DELEGATION_STORAGE?: KVNamespace;[39m
|
|
470
|
+
[31m+ TESTPROJECT_TOOL_PROTECTION_KV?: KVNamespace;[39m
|
|
471
|
+
[31m+ }[39m
|
|
472
|
+
[31m+[39m
|
|
473
|
+
[31m+ /**[39m
|
|
474
|
+
[31m+ * Your custom MCP agent - only define your tools here![39m
|
|
475
|
+
[31m+ * All framework complexity (runtime initialization, proof generation, etc.) is handled automatically.[39m
|
|
476
|
+
[31m+ */[39m
|
|
477
|
+
[31m+ export class TestprojectMCP extends MCPICloudflareAgent {[39m
|
|
478
|
+
[31m+ async registerTools() {[39m
|
|
479
|
+
[31m+ // Register your custom tools - proofs are generated automatically[39m
|
|
480
|
+
[31m+ this.server.tool([39m
|
|
481
|
+
[31m+ greetTool.name,[39m
|
|
482
|
+
[31m+ greetTool.description,[39m
|
|
483
|
+
[31m+ greetTool.inputSchema.shape,[39m
|
|
484
|
+
[31m+ async (args: { name: string }) => {[39m
|
|
485
|
+
[31m+ return this.executeToolWithProof([39m
|
|
486
|
+
[31m+ greetTool.name,[39m
|
|
487
|
+
[31m+ args,[39m
|
|
488
|
+
[31m+ greetTool.handler[39m
|
|
489
|
+
[31m+ );[39m
|
|
490
|
+
[31m+ }[39m
|
|
491
|
+
[31m+ );[39m
|
|
492
|
+
[31m+ }[39m
|
|
493
|
+
[31m+ }[39m
|
|
494
|
+
[31m+[39m
|
|
495
|
+
[31m+ // Create and export the app - all routing is handled automatically[39m
|
|
496
|
+
[31m+ export default createMCPIApp({[39m
|
|
497
|
+
[31m+ AgentClass: TestprojectMCP,[39m
|
|
498
|
+
[31m+ agentName: "test-project",[39m
|
|
499
|
+
[31m+ agentVersion: "1.0.0",[39m
|
|
500
|
+
[31m+ envPrefix: "TESTPROJECT",[39m
|
|
501
|
+
[31m+ getRuntimeConfig,[39m
|
|
502
|
+
[31m+ });[39m
|
|
503
|
+
[31m+[39m
|
|
504
|
+
|
|
505
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m117:28[22m[39m
|
|
506
|
+
[90m115| [39m
|
|
507
|
+
[90m116| [39m [35mconst[39m indexContent [33m=[39m fs[33m.[39m[34mreadFileSync[39m(indexPath[33m,[39m [32m"utf-8"[39m)[33m;[39m
|
|
508
|
+
[90m117| [39m [34mexpect[39m(indexContent)[33m.[39m[34mtoContain[39m([32m"McpAgent"[39m)[33m;[39m
|
|
509
|
+
[90m | [39m [31m^[39m
|
|
510
|
+
[90m118| [39m [34mexpect[39m(indexContent)[33m.[39m[34mtoContain[39m([32m"createCloudflareRuntime"[39m)[33m;[39m
|
|
511
|
+
[90m119| [39m [34mexpect[39m(indexContent)[33m.[39m[34mtoContain[39m([32m"class"[39m)[33m;[39m
|
|
512
|
+
|
|
513
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/7]⎯[22m[39m
|
|
514
|
+
|
|
515
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mMCP_SERVER_URL configuration[2m > [22mshould log warning when MCP_SERVER_URL not configured
|
|
516
|
+
[31m[1mAssertionError[22m: expected 'import { MCPICloudflareAgent, createM…' to contain 'MCP Server URL will be auto-detected …'[39m
|
|
517
|
+
|
|
518
|
+
[32m- Expected[39m
|
|
519
|
+
[31m+ Received[39m
|
|
520
|
+
|
|
521
|
+
[32m- MCP Server URL will be auto-detected from request[39m
|
|
522
|
+
[31m+ import { MCPICloudflareAgent, createMCPIApp, type PrefixedCloudflareEnv } from "@kya-os/mcp-i-cloudflare";[39m
|
|
523
|
+
[31m+ import { greetTool } from "./tools/greet";[39m
|
|
524
|
+
[31m+ import { getRuntimeConfig } from "./mcpi-runtime-config";[39m
|
|
525
|
+
[31m+[39m
|
|
526
|
+
[31m+ /**[39m
|
|
527
|
+
[31m+ * Extended CloudflareEnv with prefixed KV bindings for multi-agent deployments[39m
|
|
528
|
+
[31m+ */[39m
|
|
529
|
+
[31m+ interface MyPrefixedCloudflareEnv extends PrefixedCloudflareEnv {[39m
|
|
530
|
+
[31m+ TESTPROJECT_NONCE_CACHE?: KVNamespace;[39m
|
|
531
|
+
[31m+ TESTPROJECT_PROOF_ARCHIVE?: KVNamespace;[39m
|
|
532
|
+
[31m+ TESTPROJECT_IDENTITY_STORAGE?: KVNamespace;[39m
|
|
533
|
+
[31m+ TESTPROJECT_DELEGATION_STORAGE?: KVNamespace;[39m
|
|
534
|
+
[31m+ TESTPROJECT_TOOL_PROTECTION_KV?: KVNamespace;[39m
|
|
535
|
+
[31m+ }[39m
|
|
536
|
+
[31m+[39m
|
|
537
|
+
[31m+ /**[39m
|
|
538
|
+
[31m+ * Your custom MCP agent - only define your tools here![39m
|
|
539
|
+
[31m+ * All framework complexity (runtime initialization, proof generation, etc.) is handled automatically.[39m
|
|
540
|
+
[31m+ */[39m
|
|
541
|
+
[31m+ export class TestprojectMCP extends MCPICloudflareAgent {[39m
|
|
542
|
+
[31m+ async registerTools() {[39m
|
|
543
|
+
[31m+ // Register your custom tools - proofs are generated automatically[39m
|
|
544
|
+
[31m+ this.server.tool([39m
|
|
545
|
+
[31m+ greetTool.name,[39m
|
|
546
|
+
[31m+ greetTool.description,[39m
|
|
547
|
+
[31m+ greetTool.inputSchema.shape,[39m
|
|
548
|
+
[31m+ async (args: { name: string }) => {[39m
|
|
549
|
+
[31m+ return this.executeToolWithProof([39m
|
|
550
|
+
[31m+ greetTool.name,[39m
|
|
551
|
+
[31m+ args,[39m
|
|
552
|
+
[31m+ greetTool.handler[39m
|
|
553
|
+
[31m+ );[39m
|
|
554
|
+
[31m+ }[39m
|
|
555
|
+
[31m+ );[39m
|
|
556
|
+
[31m+ }[39m
|
|
557
|
+
[31m+ }[39m
|
|
558
|
+
[31m+[39m
|
|
559
|
+
[31m+ // Create and export the app - all routing is handled automatically[39m
|
|
560
|
+
[31m+ export default createMCPIApp({[39m
|
|
561
|
+
[31m+ AgentClass: TestprojectMCP,[39m
|
|
562
|
+
[31m+ agentName: "test-project",[39m
|
|
563
|
+
[31m+ agentVersion: "1.0.0",[39m
|
|
564
|
+
[31m+ envPrefix: "TESTPROJECT",[39m
|
|
565
|
+
[31m+ getRuntimeConfig,[39m
|
|
566
|
+
[31m+ });[39m
|
|
567
|
+
[31m+[39m
|
|
568
|
+
|
|
569
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m149:28[22m[39m
|
|
570
|
+
[90m147| [39m
|
|
571
|
+
[90m148| [39m // Check that auto-detection message is logged in index.ts wh…
|
|
572
|
+
[90m149| [39m [34mexpect[39m(indexContent)[33m.[39m[34mtoContain[39m(
|
|
573
|
+
[90m | [39m [31m^[39m
|
|
574
|
+
[90m150| [39m [32m"MCP Server URL will be auto-detected from request"[39m
|
|
575
|
+
[90m151| [39m )[33m;[39m
|
|
576
|
+
|
|
577
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/7]⎯[22m[39m
|
|
578
|
+
|
|
579
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mMCP_SERVER_URL configuration[2m > [22mshould store MCP_SERVER_URL in class property
|
|
580
|
+
[31m[1mAssertionError[22m: expected 'import { MCPICloudflareAgent, createM…' to contain 'this.mcpServerUrl'[39m
|
|
581
|
+
|
|
582
|
+
[32m- Expected[39m
|
|
583
|
+
[31m+ Received[39m
|
|
584
|
+
|
|
585
|
+
[32m- this.mcpServerUrl[39m
|
|
586
|
+
[31m+ import { MCPICloudflareAgent, createMCPIApp, type PrefixedCloudflareEnv } from "@kya-os/mcp-i-cloudflare";[39m
|
|
587
|
+
[31m+ import { greetTool } from "./tools/greet";[39m
|
|
588
|
+
[31m+ import { getRuntimeConfig } from "./mcpi-runtime-config";[39m
|
|
589
|
+
[31m+[39m
|
|
590
|
+
[31m+ /**[39m
|
|
591
|
+
[31m+ * Extended CloudflareEnv with prefixed KV bindings for multi-agent deployments[39m
|
|
592
|
+
[31m+ */[39m
|
|
593
|
+
[31m+ interface MyPrefixedCloudflareEnv extends PrefixedCloudflareEnv {[39m
|
|
594
|
+
[31m+ TESTPROJECT_NONCE_CACHE?: KVNamespace;[39m
|
|
595
|
+
[31m+ TESTPROJECT_PROOF_ARCHIVE?: KVNamespace;[39m
|
|
596
|
+
[31m+ TESTPROJECT_IDENTITY_STORAGE?: KVNamespace;[39m
|
|
597
|
+
[31m+ TESTPROJECT_DELEGATION_STORAGE?: KVNamespace;[39m
|
|
598
|
+
[31m+ TESTPROJECT_TOOL_PROTECTION_KV?: KVNamespace;[39m
|
|
599
|
+
[31m+ }[39m
|
|
600
|
+
[31m+[39m
|
|
601
|
+
[31m+ /**[39m
|
|
602
|
+
[31m+ * Your custom MCP agent - only define your tools here![39m
|
|
603
|
+
[31m+ * All framework complexity (runtime initialization, proof generation, etc.) is handled automatically.[39m
|
|
604
|
+
[31m+ */[39m
|
|
605
|
+
[31m+ export class TestprojectMCP extends MCPICloudflareAgent {[39m
|
|
606
|
+
[31m+ async registerTools() {[39m
|
|
607
|
+
[31m+ // Register your custom tools - proofs are generated automatically[39m
|
|
608
|
+
[31m+ this.server.tool([39m
|
|
609
|
+
[31m+ greetTool.name,[39m
|
|
610
|
+
[31m+ greetTool.description,[39m
|
|
611
|
+
[31m+ greetTool.inputSchema.shape,[39m
|
|
612
|
+
[31m+ async (args: { name: string }) => {[39m
|
|
613
|
+
[31m+ return this.executeToolWithProof([39m
|
|
614
|
+
[31m+ greetTool.name,[39m
|
|
615
|
+
[31m+ args,[39m
|
|
616
|
+
[31m+ greetTool.handler[39m
|
|
617
|
+
[31m+ );[39m
|
|
618
|
+
[31m+ }[39m
|
|
619
|
+
[31m+ );[39m
|
|
620
|
+
[31m+ }[39m
|
|
621
|
+
[31m+ }[39m
|
|
622
|
+
[31m+[39m
|
|
623
|
+
[31m+ // Create and export the app - all routing is handled automatically[39m
|
|
624
|
+
[31m+ export default createMCPIApp({[39m
|
|
625
|
+
[31m+ AgentClass: TestprojectMCP,[39m
|
|
626
|
+
[31m+ agentName: "test-project",[39m
|
|
627
|
+
[31m+ agentVersion: "1.0.0",[39m
|
|
628
|
+
[31m+ envPrefix: "TESTPROJECT",[39m
|
|
629
|
+
[31m+ getRuntimeConfig,[39m
|
|
630
|
+
[31m+ });[39m
|
|
631
|
+
[31m+[39m
|
|
632
|
+
|
|
633
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m163:28[22m[39m
|
|
634
|
+
[90m161| [39m [35mconst[39m indexContent [33m=[39m fs[33m.[39m[34mreadFileSync[39m(indexPath[33m,[39m [32m"utf-8"[39m)[33m;[39m
|
|
635
|
+
[90m162| [39m
|
|
636
|
+
[90m163| [39m [34mexpect[39m(indexContent)[33m.[39m[34mtoContain[39m([32m"this.mcpServerUrl"[39m)[33m;[39m
|
|
637
|
+
[90m | [39m [31m^[39m
|
|
638
|
+
[90m164| [39m [34mexpect[39m(indexContent)[33m.[39m[34mtoContain[39m([32m"env.MCP_SERVER_URL"[39m)[33m;[39m
|
|
639
|
+
[90m165| [39m })[33m;[39m
|
|
640
|
+
|
|
641
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/7]⎯[22m[39m
|
|
642
|
+
|
|
643
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mTool protection setup[2m > [22mshould include tool protection configuration in runtime config
|
|
644
|
+
[31m[1mAssertionError[22m: expected 'import type { CloudflareRuntimeConfig…' to contain 'toolProtection'[39m
|
|
645
|
+
|
|
646
|
+
[32m- Expected[39m
|
|
647
|
+
[31m+ Received[39m
|
|
648
|
+
|
|
649
|
+
[32m- toolProtection[39m
|
|
650
|
+
[31m+ import type { CloudflareRuntimeConfig } from '@kya-os/mcp-i-cloudflare/config';[39m
|
|
651
|
+
[31m+ import type { CloudflareEnv } from '@kya-os/mcp-i-cloudflare';[39m
|
|
652
|
+
[31m+ import { defineConfig } from '@kya-os/mcp-i-cloudflare';[39m
|
|
653
|
+
[31m+[39m
|
|
654
|
+
[31m+ /**[39m
|
|
655
|
+
[31m+ * Runtime configuration for MCP-I server[39m
|
|
656
|
+
[31m+ *[39m
|
|
657
|
+
[31m+ * This file configures runtime features like proof submission to AgentShield,[39m
|
|
658
|
+
[31m+ * delegation verification, and audit logging.[39m
|
|
659
|
+
[31m+ *[39m
|
|
660
|
+
[31m+ * Environment variables are automatically injected from wrangler.toml (Cloudflare)[39m
|
|
661
|
+
[31m+ * or .env (Node.js). Configure them there:[39m
|
|
662
|
+
[31m+ * - AGENTSHIELD_API_URL: AgentShield API base URL[39m
|
|
663
|
+
[31m+ * - AGENTSHIELD_API_KEY: Your AgentShield API key[39m
|
|
664
|
+
[31m+ * - MCPI_ENV: "development" or "production"[39m
|
|
665
|
+
[31m+ *[39m
|
|
666
|
+
[31m+ * Note: The service fetches tool protection config by agent DID automatically.[39m
|
|
667
|
+
[31m+ * No project ID configuration needed![39m
|
|
668
|
+
[31m+ */[39m
|
|
669
|
+
[31m+ export function getRuntimeConfig(env: CloudflareEnv): CloudflareRuntimeConfig {[39m
|
|
670
|
+
[31m+ return defineConfig({[39m
|
|
671
|
+
[31m+ // Only specify overrides - defaults are handled automatically[39m
|
|
672
|
+
[31m+ vars: {[39m
|
|
673
|
+
[31m+ ENVIRONMENT: env.ENVIRONMENT || env.MCPI_ENV || 'development',[39m
|
|
674
|
+
[31m+ AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,[39m
|
|
675
|
+
[31m+ AGENTSHIELD_API_URL: env.AGENTSHIELD_API_URL,[39m
|
|
676
|
+
[31m+ },[39m
|
|
677
|
+
[31m+ // Optional: Enable admin endpoints[39m
|
|
678
|
+
[31m+ admin: {[39m
|
|
679
|
+
[31m+ enabled: false, // Set to true and provide ADMIN_API_KEY to enable[39m
|
|
680
|
+
[31m+ apiKey: env.ADMIN_API_KEY,[39m
|
|
681
|
+
[31m+ },[39m
|
|
682
|
+
[31m+ });[39m
|
|
683
|
+
[31m+ }[39m
|
|
684
|
+
[31m+[39m
|
|
685
|
+
|
|
686
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m232:29[22m[39m
|
|
687
|
+
[90m230| [39m [35mconst[39m configContent [33m=[39m fs[33m.[39m[34mreadFileSync[39m(configPath[33m,[39m [32m"utf-8"[39m)[33m;[39m
|
|
688
|
+
[90m231| [39m
|
|
689
|
+
[90m232| [39m [34mexpect[39m(configContent)[33m.[39m[34mtoContain[39m([32m"toolProtection"[39m)[33m;[39m
|
|
690
|
+
[90m | [39m [31m^[39m
|
|
691
|
+
[90m233| [39m [34mexpect[39m(configContent)[33m.[39m[34mtoContain[39m([32m"CloudflareRuntime"[39m)[33m;[39m
|
|
692
|
+
[90m234| [39m })[33m;[39m
|
|
693
|
+
|
|
694
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/7]⎯[22m[39m
|
|
695
|
+
|
|
696
|
+
[41m[1m FAIL [22m[49m src/__tests__/cloudflare-template.test.ts[2m > [22mCloudflare Template Generation[2m > [22mTool protection setup[2m > [22mshould include CloudflareRuntime import for tool protection
|
|
697
|
+
[31m[1mAssertionError[22m: expected 'import type { CloudflareRuntimeConfig…' to contain 'from "@kya-os/mcp-i-cloudflare"'[39m
|
|
698
|
+
|
|
699
|
+
[32m- Expected[39m
|
|
700
|
+
[31m+ Received[39m
|
|
701
|
+
|
|
702
|
+
[32m- from "@kya-os/mcp-i-cloudflare"[39m
|
|
703
|
+
[31m+ import type { CloudflareRuntimeConfig } from '@kya-os/mcp-i-cloudflare/config';[39m
|
|
704
|
+
[31m+ import type { CloudflareEnv } from '@kya-os/mcp-i-cloudflare';[39m
|
|
705
|
+
[31m+ import { defineConfig } from '@kya-os/mcp-i-cloudflare';[39m
|
|
706
|
+
[31m+[39m
|
|
707
|
+
[31m+ /**[39m
|
|
708
|
+
[31m+ * Runtime configuration for MCP-I server[39m
|
|
709
|
+
[31m+ *[39m
|
|
710
|
+
[31m+ * This file configures runtime features like proof submission to AgentShield,[39m
|
|
711
|
+
[31m+ * delegation verification, and audit logging.[39m
|
|
712
|
+
[31m+ *[39m
|
|
713
|
+
[31m+ * Environment variables are automatically injected from wrangler.toml (Cloudflare)[39m
|
|
714
|
+
[31m+ * or .env (Node.js). Configure them there:[39m
|
|
715
|
+
[31m+ * - AGENTSHIELD_API_URL: AgentShield API base URL[39m
|
|
716
|
+
[31m+ * - AGENTSHIELD_API_KEY: Your AgentShield API key[39m
|
|
717
|
+
[31m+ * - MCPI_ENV: "development" or "production"[39m
|
|
718
|
+
[31m+ *[39m
|
|
719
|
+
[31m+ * Note: The service fetches tool protection config by agent DID automatically.[39m
|
|
720
|
+
[31m+ * No project ID configuration needed![39m
|
|
721
|
+
[31m+ */[39m
|
|
722
|
+
[31m+ export function getRuntimeConfig(env: CloudflareEnv): CloudflareRuntimeConfig {[39m
|
|
723
|
+
[31m+ return defineConfig({[39m
|
|
724
|
+
[31m+ // Only specify overrides - defaults are handled automatically[39m
|
|
725
|
+
[31m+ vars: {[39m
|
|
726
|
+
[31m+ ENVIRONMENT: env.ENVIRONMENT || env.MCPI_ENV || 'development',[39m
|
|
727
|
+
[31m+ AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,[39m
|
|
728
|
+
[31m+ AGENTSHIELD_API_URL: env.AGENTSHIELD_API_URL,[39m
|
|
729
|
+
[31m+ },[39m
|
|
730
|
+
[31m+ // Optional: Enable admin endpoints[39m
|
|
731
|
+
[31m+ admin: {[39m
|
|
732
|
+
[31m+ enabled: false, // Set to true and provide ADMIN_API_KEY to enable[39m
|
|
733
|
+
[31m+ apiKey: env.ADMIN_API_KEY,[39m
|
|
734
|
+
[31m+ },[39m
|
|
735
|
+
[31m+ });[39m
|
|
736
|
+
[31m+ }[39m
|
|
737
|
+
[31m+[39m
|
|
738
|
+
|
|
739
|
+
[36m [2m❯[22m src/__tests__/cloudflare-template.test.ts:[2m246:29[22m[39m
|
|
740
|
+
[90m244| [39m
|
|
741
|
+
[90m245| [39m [34mexpect[39m(configContent)[33m.[39m[34mtoContain[39m([32m"CloudflareRuntime"[39m)[33m;[39m
|
|
742
|
+
[90m246| [39m expect(configContent).toContain('from "@kya-os/mcp-i-cloudfla…
|
|
743
|
+
[90m | [39m [31m^[39m
|
|
744
|
+
[90m247| [39m })[33m;[39m
|
|
745
|
+
[90m248| [39m
|
|
746
|
+
|
|
747
|
+
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/7]⎯[22m[39m
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
[2m Test Files [22m [1m[31m1 failed[39m[22m[2m | [22m[1m[32m12 passed[39m[22m[90m (13)[39m
|
|
751
|
+
[2m Tests [22m [1m[31m7 failed[39m[22m[2m | [22m[1m[32m239 passed[39m[22m[90m (246)[39m
|
|
752
|
+
[2m Start at [22m 05:30:02
|
|
753
|
+
[2m Duration [22m 633ms[2m (transform 818ms, setup 0ms, collect 1.41s, tests 658ms, environment 1ms, prepare 458ms)[22m
|
|
754
|
+
|
|
755
|
+
[?25h[41m[30m ELIFECYCLE [39m[49m [31mCommand failed with exit code 1.[39m
|