@kya-os/mcp-i-core 1.2.3-canary.6 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +9 -0
- package/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-test$colon$coverage.log +4514 -0
- package/.turbo/turbo-test.log +2973 -0
- package/COMPLIANCE_IMPROVEMENT_REPORT.md +483 -0
- package/Composer 3.md +615 -0
- package/GPT-5.md +1169 -0
- package/OPUS-plan.md +352 -0
- package/PHASE_3_AND_4.1_SUMMARY.md +585 -0
- package/PHASE_3_SUMMARY.md +317 -0
- package/PHASE_4.1.3_SUMMARY.md +428 -0
- package/PHASE_4.1_COMPLETE.md +525 -0
- package/PHASE_4_USER_DID_IDENTITY_LINKING_PLAN.md +1240 -0
- package/SCHEMA_COMPLIANCE_REPORT.md +275 -0
- package/TEST_PLAN.md +571 -0
- package/coverage/coverage-final.json +57 -0
- package/dist/__tests__/utils/mock-providers.d.ts +1 -2
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
- package/dist/__tests__/utils/mock-providers.js.map +1 -1
- package/dist/cache/oauth-config-cache.d.ts +69 -0
- package/dist/cache/oauth-config-cache.d.ts.map +1 -0
- package/dist/cache/oauth-config-cache.js +76 -0
- package/dist/cache/oauth-config-cache.js.map +1 -0
- package/dist/identity/idp-token-resolver.d.ts +53 -0
- package/dist/identity/idp-token-resolver.d.ts.map +1 -0
- package/dist/identity/idp-token-resolver.js +108 -0
- package/dist/identity/idp-token-resolver.js.map +1 -0
- package/dist/identity/idp-token-storage.interface.d.ts +42 -0
- package/dist/identity/idp-token-storage.interface.d.ts.map +1 -0
- package/dist/identity/idp-token-storage.interface.js +12 -0
- package/dist/identity/idp-token-storage.interface.js.map +1 -0
- package/dist/identity/user-did-manager.d.ts +39 -1
- package/dist/identity/user-did-manager.d.ts.map +1 -1
- package/dist/identity/user-did-manager.js +69 -3
- package/dist/identity/user-did-manager.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/audit-logger.d.ts +37 -0
- package/dist/runtime/audit-logger.d.ts.map +1 -0
- package/dist/runtime/audit-logger.js +9 -0
- package/dist/runtime/audit-logger.js.map +1 -0
- package/dist/runtime/base.d.ts +58 -2
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +266 -11
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/access-control.service.d.ts.map +1 -1
- package/dist/services/access-control.service.js +200 -35
- package/dist/services/access-control.service.js.map +1 -1
- package/dist/services/authorization/authorization-registry.d.ts +29 -0
- package/dist/services/authorization/authorization-registry.d.ts.map +1 -0
- package/dist/services/authorization/authorization-registry.js +57 -0
- package/dist/services/authorization/authorization-registry.js.map +1 -0
- package/dist/services/authorization/types.d.ts +53 -0
- package/dist/services/authorization/types.d.ts.map +1 -0
- package/dist/services/authorization/types.js +10 -0
- package/dist/services/authorization/types.js.map +1 -0
- package/dist/services/batch-delegation.service.d.ts +53 -0
- package/dist/services/batch-delegation.service.d.ts.map +1 -0
- package/dist/services/batch-delegation.service.js +95 -0
- package/dist/services/batch-delegation.service.js.map +1 -0
- package/dist/services/oauth-config.service.d.ts +53 -0
- package/dist/services/oauth-config.service.d.ts.map +1 -0
- package/dist/services/oauth-config.service.js +117 -0
- package/dist/services/oauth-config.service.js.map +1 -0
- package/dist/services/oauth-provider-registry.d.ts +77 -0
- package/dist/services/oauth-provider-registry.d.ts.map +1 -0
- package/dist/services/oauth-provider-registry.js +112 -0
- package/dist/services/oauth-provider-registry.js.map +1 -0
- package/dist/services/oauth-service.d.ts +77 -0
- package/dist/services/oauth-service.d.ts.map +1 -0
- package/dist/services/oauth-service.js +348 -0
- package/dist/services/oauth-service.js.map +1 -0
- package/dist/services/oauth-token-retrieval.service.d.ts +49 -0
- package/dist/services/oauth-token-retrieval.service.d.ts.map +1 -0
- package/dist/services/oauth-token-retrieval.service.js +150 -0
- package/dist/services/oauth-token-retrieval.service.js.map +1 -0
- package/dist/services/provider-resolver.d.ts +48 -0
- package/dist/services/provider-resolver.d.ts.map +1 -0
- package/dist/services/provider-resolver.js +120 -0
- package/dist/services/provider-resolver.js.map +1 -0
- package/dist/services/provider-validator.d.ts +55 -0
- package/dist/services/provider-validator.d.ts.map +1 -0
- package/dist/services/provider-validator.js +135 -0
- package/dist/services/provider-validator.js.map +1 -0
- package/dist/services/tool-context-builder.d.ts +57 -0
- package/dist/services/tool-context-builder.d.ts.map +1 -0
- package/dist/services/tool-context-builder.js +125 -0
- package/dist/services/tool-context-builder.js.map +1 -0
- package/dist/services/tool-protection.service.d.ts +87 -10
- package/dist/services/tool-protection.service.d.ts.map +1 -1
- package/dist/services/tool-protection.service.js +282 -112
- package/dist/services/tool-protection.service.js.map +1 -1
- package/dist/types/oauth-required-error.d.ts +40 -0
- package/dist/types/oauth-required-error.d.ts.map +1 -0
- package/dist/types/oauth-required-error.js +40 -0
- package/dist/types/oauth-required-error.js.map +1 -0
- package/dist/utils/did-helpers.d.ts +33 -0
- package/dist/utils/did-helpers.d.ts.map +1 -1
- package/dist/utils/did-helpers.js +40 -0
- package/dist/utils/did-helpers.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/docs/API_REFERENCE.md +1362 -0
- package/docs/COMPLIANCE_MATRIX.md +691 -0
- package/docs/STATUSLIST2021_GUIDE.md +696 -0
- package/docs/W3C_VC_DELEGATION_GUIDE.md +710 -0
- package/package.json +24 -50
- package/scripts/audit-compliance.ts +724 -0
- package/src/__tests__/cache/tool-protection-cache.test.ts +640 -0
- package/src/__tests__/config/provider-runtime-config.test.ts +309 -0
- package/src/__tests__/delegation-e2e.test.ts +690 -0
- package/src/__tests__/identity/user-did-manager.test.ts +213 -0
- package/src/__tests__/index.test.ts +56 -0
- package/src/__tests__/integration/full-flow.test.ts +776 -0
- package/src/__tests__/integration.test.ts +281 -0
- package/src/__tests__/providers/base.test.ts +173 -0
- package/src/__tests__/providers/memory.test.ts +319 -0
- package/src/__tests__/regression/phase2-regression.test.ts +427 -0
- package/src/__tests__/runtime/audit-logger.test.ts +154 -0
- package/src/__tests__/runtime/base-extensions.test.ts +593 -0
- package/src/__tests__/runtime/base.test.ts +869 -0
- package/src/__tests__/runtime/delegation-flow.test.ts +164 -0
- package/src/__tests__/runtime/proof-client-did.test.ts +375 -0
- package/src/__tests__/runtime/route-interception.test.ts +686 -0
- package/src/__tests__/runtime/tool-protection-enforcement.test.ts +908 -0
- package/src/__tests__/services/agentshield-integration.test.ts +784 -0
- package/src/__tests__/services/provider-resolver-edge-cases.test.ts +487 -0
- package/src/__tests__/services/tool-protection-oauth-provider.test.ts +480 -0
- package/src/__tests__/services/tool-protection.service.test.ts +1366 -0
- package/src/__tests__/utils/mock-providers.ts +340 -0
- package/src/cache/oauth-config-cache.d.ts +69 -0
- package/src/cache/oauth-config-cache.d.ts.map +1 -0
- package/src/cache/oauth-config-cache.js +71 -0
- package/src/cache/oauth-config-cache.js.map +1 -0
- package/src/cache/oauth-config-cache.ts +123 -0
- package/src/cache/tool-protection-cache.ts +171 -0
- package/src/compliance/EXAMPLE.md +412 -0
- package/src/compliance/__tests__/schema-verifier.test.ts +797 -0
- package/src/compliance/index.ts +8 -0
- package/src/compliance/schema-registry.ts +460 -0
- package/src/compliance/schema-verifier.ts +708 -0
- package/src/config/__tests__/remote-config.spec.ts +268 -0
- package/src/config/remote-config.ts +174 -0
- package/src/config.ts +309 -0
- package/src/delegation/__tests__/audience-validator.test.ts +112 -0
- package/src/delegation/__tests__/bitstring.test.ts +346 -0
- package/src/delegation/__tests__/cascading-revocation.test.ts +628 -0
- package/src/delegation/__tests__/delegation-graph.test.ts +584 -0
- package/src/delegation/__tests__/utils.test.ts +152 -0
- package/src/delegation/__tests__/vc-issuer.test.ts +442 -0
- package/src/delegation/__tests__/vc-verifier.test.ts +922 -0
- package/src/delegation/audience-validator.ts +52 -0
- package/src/delegation/bitstring.ts +278 -0
- package/src/delegation/cascading-revocation.ts +370 -0
- package/src/delegation/delegation-graph.ts +299 -0
- package/src/delegation/index.ts +14 -0
- package/src/delegation/statuslist-manager.ts +353 -0
- package/src/delegation/storage/__tests__/memory-graph-storage.test.ts +366 -0
- package/src/delegation/storage/__tests__/memory-statuslist-storage.test.ts +228 -0
- package/src/delegation/storage/index.ts +9 -0
- package/src/delegation/storage/memory-graph-storage.ts +178 -0
- package/src/delegation/storage/memory-statuslist-storage.ts +77 -0
- package/src/delegation/utils.ts +42 -0
- package/src/delegation/vc-issuer.ts +232 -0
- package/src/delegation/vc-verifier.ts +568 -0
- package/src/identity/idp-token-resolver.ts +147 -0
- package/src/identity/idp-token-storage.interface.ts +59 -0
- package/src/identity/user-did-manager.ts +370 -0
- package/src/index.ts +260 -0
- package/src/providers/base.d.ts +91 -0
- package/src/providers/base.d.ts.map +1 -0
- package/src/providers/base.js +38 -0
- package/src/providers/base.js.map +1 -0
- package/src/providers/base.ts +96 -0
- package/src/providers/memory.ts +142 -0
- package/src/runtime/audit-logger.ts +39 -0
- package/src/runtime/base.ts +1329 -0
- package/src/services/__tests__/access-control.integration.test.ts +443 -0
- package/src/services/__tests__/access-control.proof-response-validation.test.ts +578 -0
- package/src/services/__tests__/access-control.service.test.ts +970 -0
- package/src/services/__tests__/batch-delegation.service.test.ts +351 -0
- package/src/services/__tests__/crypto.service.test.ts +531 -0
- package/src/services/__tests__/oauth-provider-registry.test.ts +142 -0
- package/src/services/__tests__/proof-verifier.integration.test.ts +485 -0
- package/src/services/__tests__/proof-verifier.test.ts +489 -0
- package/src/services/__tests__/provider-resolution.integration.test.ts +198 -0
- package/src/services/__tests__/provider-resolver.test.ts +217 -0
- package/src/services/__tests__/storage.service.test.ts +358 -0
- package/src/services/access-control.service.ts +990 -0
- package/src/services/authorization/authorization-registry.ts +66 -0
- package/src/services/authorization/types.ts +71 -0
- package/src/services/batch-delegation.service.ts +137 -0
- package/src/services/crypto.service.ts +302 -0
- package/src/services/errors.ts +76 -0
- package/src/services/index.ts +9 -0
- package/src/services/oauth-config.service.d.ts +53 -0
- package/src/services/oauth-config.service.d.ts.map +1 -0
- package/src/services/oauth-config.service.js +113 -0
- package/src/services/oauth-config.service.js.map +1 -0
- package/src/services/oauth-config.service.ts +166 -0
- package/src/services/oauth-provider-registry.d.ts +57 -0
- package/src/services/oauth-provider-registry.d.ts.map +1 -0
- package/src/services/oauth-provider-registry.js +73 -0
- package/src/services/oauth-provider-registry.js.map +1 -0
- package/src/services/oauth-provider-registry.ts +123 -0
- package/src/services/oauth-service.ts +510 -0
- package/src/services/oauth-token-retrieval.service.ts +245 -0
- package/src/services/proof-verifier.ts +478 -0
- package/src/services/provider-resolver.d.ts +48 -0
- package/src/services/provider-resolver.d.ts.map +1 -0
- package/src/services/provider-resolver.js +106 -0
- package/src/services/provider-resolver.js.map +1 -0
- package/src/services/provider-resolver.ts +144 -0
- package/src/services/provider-validator.ts +170 -0
- package/src/services/storage.service.ts +566 -0
- package/src/services/tool-context-builder.ts +172 -0
- package/src/services/tool-protection.service.ts +958 -0
- package/src/types/oauth-required-error.ts +63 -0
- package/src/types/tool-protection.ts +155 -0
- package/src/utils/__tests__/did-helpers.test.ts +101 -0
- package/src/utils/base64.ts +148 -0
- package/src/utils/cors.ts +83 -0
- package/src/utils/did-helpers.ts +150 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/storage-keys.ts +278 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +56 -0
|
@@ -0,0 +1,4514 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
> @kya-os/mcp-i-core@1.2.2-canary.38 test:coverage /Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core
|
|
4
|
+
> vitest run --coverage
|
|
5
|
+
|
|
6
|
+
[?25l
|
|
7
|
+
[1m[46m RUN [49m[22m [36mv4.0.5 [39m[90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core[39m
|
|
8
|
+
[2mCoverage enabled with [22m[33mv8[39m
|
|
9
|
+
|
|
10
|
+
[?2026h
|
|
11
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m [queued][22m
|
|
12
|
+
|
|
13
|
+
[2m Test Files [22m[1m[32m0 passed[39m[22m[90m (44)[39m
|
|
14
|
+
[2m Tests [22m[1m[32m0 passed[39m[22m[90m (0)[39m
|
|
15
|
+
[2m Start at [22m17:52:48
|
|
16
|
+
[2m Duration [22m102ms
|
|
17
|
+
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K
|
|
18
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m [queued][22m
|
|
19
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
20
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
21
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
22
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m [queued][22m
|
|
23
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 0/19[22m
|
|
24
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m [queued][22m
|
|
25
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m [queued][22m
|
|
26
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m [queued][22m
|
|
27
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m [queued][22m
|
|
28
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
29
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m [queued][22m
|
|
30
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
31
|
+
|
|
32
|
+
[2m Test Files [22m[1m[32m0 passed[39m[22m[90m (44)[39m
|
|
33
|
+
[2m Tests [22m[1m[32m0 passed[39m[22m[90m (19)[39m
|
|
34
|
+
[2m Start at [22m17:52:48
|
|
35
|
+
[2m Duration [22m202ms
|
|
36
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould handle empty scopes array
|
|
37
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
38
|
+
|
|
39
|
+
[90mstderr[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould handle ambiguous scopes (multiple providers inferred)
|
|
40
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
41
|
+
|
|
42
|
+
[90mstderr[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould handle unknown scope prefixes
|
|
43
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
47
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
48
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
49
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
50
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
51
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
52
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
53
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
54
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
55
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
56
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
57
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
58
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
59
|
+
|
|
60
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
61
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
62
|
+
[2m Start at [22m17:52:48
|
|
63
|
+
[2m Duration [22m302ms
|
|
64
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould verify gmail → google mapping works
|
|
65
|
+
[22m[39m[ProviderResolver] Inferred provider "google" from scopes
|
|
66
|
+
|
|
67
|
+
[90mstdout[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould verify calendar → google mapping works
|
|
68
|
+
[22m[39m[ProviderResolver] Inferred provider "google" from scopes
|
|
69
|
+
|
|
70
|
+
[90mstdout[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould verify outlook → microsoft mapping works
|
|
71
|
+
[22m[39m[ProviderResolver] Inferred provider "microsoft" from scopes
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
75
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
76
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
77
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
78
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
79
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
80
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
81
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
82
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
83
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
84
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
85
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
86
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
87
|
+
|
|
88
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
89
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
90
|
+
[2m Start at [22m17:52:48
|
|
91
|
+
[2m Duration [22m302ms
|
|
92
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould handle scopes without colons
|
|
93
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
94
|
+
|
|
95
|
+
[90mstderr[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mScope inference edge cases (Priority 2)[2m > [22m[2mshould handle inferred provider not in registry
|
|
96
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "google" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
97
|
+
|
|
98
|
+
[90mstderr[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mFallback behavior (Priority 3)[2m > [22m[2mshould use first configured provider when oauthProvider not specified
|
|
99
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
103
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
104
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
105
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
106
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
107
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
108
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
109
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
110
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
111
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
112
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
113
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
114
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
115
|
+
|
|
116
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
117
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
118
|
+
[2m Start at [22m17:52:48
|
|
119
|
+
[2m Duration [22m302ms
|
|
120
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mProvider name case sensitivity[2m > [22m[2mshould handle provider names case-insensitively in inference
|
|
121
|
+
[22m[39m[ProviderResolver] Inferred provider "github" from scopes
|
|
122
|
+
|
|
123
|
+
[90mstdout[2m | src/__tests__/services/provider-resolver-edge-cases.test.ts[2m > [22m[2mProviderResolver - Edge Cases[2m > [22m[2mMultiple scopes with same provider[2m > [22m[2mshould handle multiple scopes from same provider
|
|
124
|
+
[22m[39m[ProviderResolver] Inferred provider "github" from scopes
|
|
125
|
+
|
|
126
|
+
[32m✓[39m src/__tests__/services/provider-resolver-edge-cases.test.ts [2m([22m[2m19 tests[22m[2m | [22m[33m1 skipped[39m[2m)[22m[32m 7[2mms[22m[39m
|
|
127
|
+
[32m✓[39m src/delegation/storage/__tests__/memory-graph-storage.test.ts [2m([22m[2m27 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
128
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mAPI Authentication[2m > [22m[2mshould use X-API-Key header for new endpoint
|
|
129
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
130
|
+
source: [32m'api'[39m,
|
|
131
|
+
toolCount: [33m0[39m,
|
|
132
|
+
protectedTools: [],
|
|
133
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
134
|
+
projectId: [32m'test-project-123'[39m,
|
|
135
|
+
cacheTtlMs: [33m300000[39m,
|
|
136
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.638Z'[39m
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mAPI Authentication[2m > [22m[2mshould use Authorization Bearer header for old endpoint
|
|
140
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
141
|
+
source: [32m'api'[39m,
|
|
142
|
+
toolCount: [33m0[39m,
|
|
143
|
+
protectedTools: [],
|
|
144
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
145
|
+
projectId: [32m'none'[39m,
|
|
146
|
+
cacheTtlMs: [33m300000[39m,
|
|
147
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.642Z'[39m
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mEndpoint Selection[2m > [22m[2mshould use project-scoped endpoint when projectId is available
|
|
151
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
152
|
+
source: [32m'api'[39m,
|
|
153
|
+
toolCount: [33m0[39m,
|
|
154
|
+
protectedTools: [],
|
|
155
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
156
|
+
projectId: [32m'test-project-123'[39m,
|
|
157
|
+
cacheTtlMs: [33m300000[39m,
|
|
158
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.643Z'[39m
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mEndpoint Selection[2m > [22m[2mshould use agent-scoped endpoint when projectId is not available
|
|
162
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
163
|
+
source: [32m'api'[39m,
|
|
164
|
+
toolCount: [33m0[39m,
|
|
165
|
+
protectedTools: [],
|
|
166
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
167
|
+
projectId: [32m'none'[39m,
|
|
168
|
+
cacheTtlMs: [33m300000[39m,
|
|
169
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.643Z'[39m
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mEndpoint Selection[2m > [22m[2mshould encode projectId in URL
|
|
173
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
174
|
+
source: [32m'api'[39m,
|
|
175
|
+
toolCount: [33m0[39m,
|
|
176
|
+
protectedTools: [],
|
|
177
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
178
|
+
projectId: [32m'project/with/special-chars'[39m,
|
|
179
|
+
cacheTtlMs: [33m300000[39m,
|
|
180
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.644Z'[39m
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mEndpoint Selection[2m > [22m[2mshould encode agent DID in URL
|
|
184
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
185
|
+
source: [32m'api'[39m,
|
|
186
|
+
toolCount: [33m0[39m,
|
|
187
|
+
protectedTools: [],
|
|
188
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
189
|
+
projectId: [32m'none'[39m,
|
|
190
|
+
cacheTtlMs: [33m300000[39m,
|
|
191
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.644Z'[39m
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mResponse Format Compatibility[2m > [22m[2mshould handle new endpoint format (toolProtections object)
|
|
195
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
196
|
+
source: [32m'api'[39m,
|
|
197
|
+
toolCount: [33m2[39m,
|
|
198
|
+
protectedTools: [ [32m'checkout'[39m ],
|
|
199
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
200
|
+
projectId: [32m'test-project-123'[39m,
|
|
201
|
+
cacheTtlMs: [33m300000[39m,
|
|
202
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.644Z'[39m
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - new endpoint format[2m > [22m[2mshould fetch from project-scoped endpoint when projectId is available
|
|
206
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
207
|
+
source: [32m'api'[39m,
|
|
208
|
+
toolCount: [33m2[39m,
|
|
209
|
+
protectedTools: [ [32m'checkout'[39m ],
|
|
210
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
211
|
+
projectId: [32m'test-project-123'[39m,
|
|
212
|
+
cacheTtlMs: [33m300000[39m,
|
|
213
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.643Z'[39m
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mResponse Format Compatibility[2m > [22m[2mshould handle old endpoint format (tools array)
|
|
217
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
218
|
+
source: [32m'api'[39m,
|
|
219
|
+
toolCount: [33m2[39m,
|
|
220
|
+
protectedTools: [ [32m'checkout'[39m ],
|
|
221
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
222
|
+
projectId: [32m'none'[39m,
|
|
223
|
+
cacheTtlMs: [33m300000[39m,
|
|
224
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.644Z'[39m
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mResponse Format Compatibility[2m > [22m[2mshould handle old endpoint format (tools object)
|
|
228
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
229
|
+
source: [32m'api'[39m,
|
|
230
|
+
toolCount: [33m2[39m,
|
|
231
|
+
protectedTools: [ [32m'checkout'[39m ],
|
|
232
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
233
|
+
projectId: [32m'none'[39m,
|
|
234
|
+
cacheTtlMs: [33m300000[39m,
|
|
235
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.644Z'[39m
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mResponse Format Compatibility[2m > [22m[2mshould handle snake_case field names
|
|
239
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
240
|
+
source: [32m'api'[39m,
|
|
241
|
+
toolCount: [33m1[39m,
|
|
242
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
243
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
244
|
+
projectId: [32m'test-project-123'[39m,
|
|
245
|
+
cacheTtlMs: [33m300000[39m,
|
|
246
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mResponse Format Compatibility[2m > [22m[2mshould handle camelCase field names
|
|
250
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
251
|
+
source: [32m'api'[39m,
|
|
252
|
+
toolCount: [33m1[39m,
|
|
253
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
254
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
255
|
+
projectId: [32m'test-project-123'[39m,
|
|
256
|
+
cacheTtlMs: [33m300000[39m,
|
|
257
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mResponse Format Compatibility[2m > [22m[2mshould prefer camelCase over snake_case when both present
|
|
261
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
262
|
+
source: [32m'api'[39m,
|
|
263
|
+
toolCount: [33m1[39m,
|
|
264
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
265
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
266
|
+
projectId: [32m'test-project-123'[39m,
|
|
267
|
+
cacheTtlMs: [33m300000[39m,
|
|
268
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - new endpoint format[2m > [22m[2mshould handle new endpoint format with toolProtections object
|
|
272
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
273
|
+
source: [32m'api'[39m,
|
|
274
|
+
toolCount: [33m2[39m,
|
|
275
|
+
protectedTools: [ [32m'protected_tool'[39m ],
|
|
276
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
277
|
+
projectId: [32m'test-project-123'[39m,
|
|
278
|
+
cacheTtlMs: [33m300000[39m,
|
|
279
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - new endpoint format[2m > [22m[2mshould parse oauthProvider from new endpoint format (Phase 2)
|
|
283
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
284
|
+
source: [32m'api'[39m,
|
|
285
|
+
toolCount: [33m2[39m,
|
|
286
|
+
protectedTools: [ [32m'read_repos'[39m, [32m'send_email'[39m ],
|
|
287
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
288
|
+
projectId: [32m'test-project-123'[39m,
|
|
289
|
+
cacheTtlMs: [33m300000[39m,
|
|
290
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - new endpoint format[2m > [22m[2mshould preserve oauthProvider through cache operations
|
|
294
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
295
|
+
source: [32m'api'[39m,
|
|
296
|
+
toolCount: [33m1[39m,
|
|
297
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
298
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
299
|
+
projectId: [32m'test-project-123'[39m,
|
|
300
|
+
cacheTtlMs: [33m300000[39m,
|
|
301
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould fetch from agent-scoped endpoint when projectId is not available
|
|
305
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
306
|
+
source: [32m'api'[39m,
|
|
307
|
+
toolCount: [33m2[39m,
|
|
308
|
+
protectedTools: [ [32m'checkout'[39m ],
|
|
309
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
310
|
+
projectId: [32m'none'[39m,
|
|
311
|
+
cacheTtlMs: [33m300000[39m,
|
|
312
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.645Z'[39m
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould handle old endpoint format with tools array
|
|
316
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
317
|
+
source: [32m'api'[39m,
|
|
318
|
+
toolCount: [33m2[39m,
|
|
319
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
320
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
321
|
+
projectId: [32m'none'[39m,
|
|
322
|
+
cacheTtlMs: [33m300000[39m,
|
|
323
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.646Z'[39m
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould parse oauthProvider from old endpoint format (tools array)
|
|
327
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
328
|
+
source: [32m'api'[39m,
|
|
329
|
+
toolCount: [33m2[39m,
|
|
330
|
+
protectedTools: [ [32m'read_repos'[39m, [32m'send_email'[39m ],
|
|
331
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
332
|
+
projectId: [32m'none'[39m,
|
|
333
|
+
cacheTtlMs: [33m300000[39m,
|
|
334
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.646Z'[39m
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould handle old endpoint format with tools object
|
|
338
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
339
|
+
source: [32m'api'[39m,
|
|
340
|
+
toolCount: [33m2[39m,
|
|
341
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
342
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
343
|
+
projectId: [32m'none'[39m,
|
|
344
|
+
cacheTtlMs: [33m300000[39m,
|
|
345
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.646Z'[39m
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould parse oauthProvider from old endpoint format (tools object)
|
|
349
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
350
|
+
source: [32m'api'[39m,
|
|
351
|
+
toolCount: [33m2[39m,
|
|
352
|
+
protectedTools: [ [32m'read_repos'[39m, [32m'send_email'[39m ],
|
|
353
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
354
|
+
projectId: [32m'none'[39m,
|
|
355
|
+
cacheTtlMs: [33m300000[39m,
|
|
356
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.646Z'[39m
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
361
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
362
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
363
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
364
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
365
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
366
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
367
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
368
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
369
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
370
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
371
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
372
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
373
|
+
|
|
374
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
375
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
376
|
+
[2m Start at [22m17:52:48
|
|
377
|
+
[2m Duration [22m302ms
|
|
378
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mError Handling[2m > [22m[2mshould handle network timeout
|
|
379
|
+
[22m[39m[ToolProtectionService] API fetch failed, using fallback config { agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m, error: [32m'Network timeout'[39m }
|
|
380
|
+
|
|
381
|
+
[90mstderr[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mFallback Behavior[2m > [22m[2mshould cache fallback config
|
|
382
|
+
[22m[39m[ToolProtectionService] API fetch failed, using fallback config { agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m, error: [32m'Network error'[39m }
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
386
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
387
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
388
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
389
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
390
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
391
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
392
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
393
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
394
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
395
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
396
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
397
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
398
|
+
|
|
399
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
400
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
401
|
+
[2m Start at [22m17:52:48
|
|
402
|
+
[2m Duration [22m302ms
|
|
403
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mCaching Integration[2m > [22m[2mshould cache successful API responses
|
|
404
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
405
|
+
source: [32m'api'[39m,
|
|
406
|
+
toolCount: [33m1[39m,
|
|
407
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
408
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
409
|
+
projectId: [32m'test-project-123'[39m,
|
|
410
|
+
cacheTtlMs: [33m300000[39m,
|
|
411
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.647Z'[39m
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould skip tools without name in array format
|
|
415
|
+
[22m[39m[ToolProtectionService] Cache miss, fetching from API {
|
|
416
|
+
source: [32m'api-fetch-start'[39m,
|
|
417
|
+
cacheKey: [32m'agent:did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'[39m,
|
|
418
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
419
|
+
projectId: [32m'none'[39m,
|
|
420
|
+
apiUrl: [32m'https://kya.vouched.id'[39m,
|
|
421
|
+
endpoint: [32m'/api/v1/bouncer/config?agent_did=did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'[39m
|
|
422
|
+
}
|
|
423
|
+
[ToolProtectionService] Fetching from API: https://kya.vouched.id/api/v1/bouncer/config?agent_did=did%3Akey%3Az6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK {
|
|
424
|
+
method: [32m'config?agent_did (old)'[39m,
|
|
425
|
+
projectId: [32m'none'[39m,
|
|
426
|
+
apiKeyPresent: [33mtrue[39m,
|
|
427
|
+
apiKeyLength: [33m18[39m,
|
|
428
|
+
apiKeyMasked: [32m'test-api...'[39m
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould skip tools without name in array format
|
|
432
|
+
[22m[39m[ToolProtectionService] API response received {
|
|
433
|
+
source: [32m'api-fetch-complete'[39m,
|
|
434
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
435
|
+
projectId: [32m'none'[39m,
|
|
436
|
+
responseKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
437
|
+
dataKeys: [ [32m'tools'[39m ],
|
|
438
|
+
rawToolProtections: [1mnull[22m,
|
|
439
|
+
rawTools: [
|
|
440
|
+
{ name: [32m'valid_tool'[39m, requiresDelegation: [33mtrue[39m },
|
|
441
|
+
{ requiresDelegation: [33mfalse[39m }
|
|
442
|
+
],
|
|
443
|
+
responseMetadata: {}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch - old endpoint format[2m > [22m[2mshould skip tools without name in array format
|
|
447
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
448
|
+
source: [32m'api'[39m,
|
|
449
|
+
toolCount: [33m1[39m,
|
|
450
|
+
protectedTools: [ [32m'valid_tool'[39m ],
|
|
451
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
452
|
+
projectId: [32m'none'[39m,
|
|
453
|
+
cacheTtlMs: [33m300000[39m,
|
|
454
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.647Z'[39m
|
|
455
|
+
}
|
|
456
|
+
[ToolProtectionService] API fetch successful, config cached {
|
|
457
|
+
source: [32m'cache-write'[39m,
|
|
458
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
459
|
+
cacheKey: [32m'agent:did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'[39m,
|
|
460
|
+
toolCount: [33m1[39m,
|
|
461
|
+
tools: [ { name: [32m'valid_tool'[39m, requiresDelegation: [33mtrue[39m, scopeCount: [33m0[39m } ],
|
|
462
|
+
ttlMs: [33m300000[39m,
|
|
463
|
+
ttlMinutes: [33m5[39m,
|
|
464
|
+
expiresAt: [32m'2025-11-24T23:57:48.647Z'[39m,
|
|
465
|
+
expiresIn: [32m'300s'[39m
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mCaching Integration[2m > [22m[2mshould respect cache TTL
|
|
469
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
470
|
+
source: [32m'api'[39m,
|
|
471
|
+
toolCount: [33m0[39m,
|
|
472
|
+
protectedTools: [],
|
|
473
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
474
|
+
projectId: [32m'test-project-123'[39m,
|
|
475
|
+
cacheTtlMs: [33m1000[39m,
|
|
476
|
+
cacheExpiresAt: [32m'2025-11-24T23:52:49.647Z'[39m
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
481
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
482
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
483
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
484
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
485
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
486
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
487
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
488
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
489
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
490
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
491
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
492
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
493
|
+
|
|
494
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
495
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
496
|
+
[2m Start at [22m17:52:48
|
|
497
|
+
[2m Duration [22m302ms
|
|
498
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mAPI fetch error handling[2m > [22m[2mshould handle network errors gracefully
|
|
499
|
+
[22m[39m[ToolProtectionService] API fetch failed, no fallback, failing closed (deny-all) {
|
|
500
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
501
|
+
error: [32m'ECONNREFUSED'[39m,
|
|
502
|
+
cacheKey: [32m'agent:did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'[39m
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
507
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
508
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
509
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
510
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
511
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
512
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
513
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
514
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
515
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
516
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
517
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
518
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
519
|
+
|
|
520
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
521
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
522
|
+
[2m Start at [22m17:52:48
|
|
523
|
+
[2m Duration [22m302ms
|
|
524
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mcaching behavior[2m > [22m[2mshould cache successful API responses
|
|
525
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
526
|
+
source: [32m'api'[39m,
|
|
527
|
+
toolCount: [33m1[39m,
|
|
528
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
529
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
530
|
+
projectId: [32m'none'[39m,
|
|
531
|
+
cacheTtlMs: [33m300000[39m,
|
|
532
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.650Z'[39m
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mcaching behavior[2m > [22m[2mshould use default cache TTL when not specified
|
|
536
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
537
|
+
source: [32m'api'[39m,
|
|
538
|
+
toolCount: [33m0[39m,
|
|
539
|
+
protectedTools: [],
|
|
540
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
541
|
+
projectId: [32m'none'[39m,
|
|
542
|
+
cacheTtlMs: [33m300000[39m,
|
|
543
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.650Z'[39m
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2mcaching behavior[2m > [22m[2mshould use custom cache TTL when specified
|
|
547
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
548
|
+
source: [32m'api'[39m,
|
|
549
|
+
toolCount: [33m0[39m,
|
|
550
|
+
protectedTools: [],
|
|
551
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
552
|
+
projectId: [32m'none'[39m,
|
|
553
|
+
cacheTtlMs: [33m600000[39m,
|
|
554
|
+
cacheExpiresAt: [32m'2025-11-25T00:02:48.651Z'[39m
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2medge cases[2m > [22m[2mshould handle empty toolProtections object
|
|
558
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
559
|
+
source: [32m'api'[39m,
|
|
560
|
+
toolCount: [33m0[39m,
|
|
561
|
+
protectedTools: [],
|
|
562
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
563
|
+
projectId: [32m'none'[39m,
|
|
564
|
+
cacheTtlMs: [33m300000[39m,
|
|
565
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.651Z'[39m
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2medge cases[2m > [22m[2mshould handle null requiredScopes
|
|
569
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
570
|
+
source: [32m'api'[39m,
|
|
571
|
+
toolCount: [33m1[39m,
|
|
572
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
573
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
574
|
+
projectId: [32m'none'[39m,
|
|
575
|
+
cacheTtlMs: [33m300000[39m,
|
|
576
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.651Z'[39m
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mgetToolProtectionConfig[2m > [22m[2medge cases[2m > [22m[2mshould handle mixed camelCase and snake_case in response
|
|
580
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
581
|
+
source: [32m'api'[39m,
|
|
582
|
+
toolCount: [33m2[39m,
|
|
583
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
584
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
585
|
+
projectId: [32m'none'[39m,
|
|
586
|
+
cacheTtlMs: [33m300000[39m,
|
|
587
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.651Z'[39m
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return null when tool has no protection
|
|
591
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
592
|
+
source: [32m'api'[39m,
|
|
593
|
+
toolCount: [33m1[39m,
|
|
594
|
+
protectedTools: [],
|
|
595
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
596
|
+
projectId: [32m'none'[39m,
|
|
597
|
+
cacheTtlMs: [33m300000[39m,
|
|
598
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.651Z'[39m
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return null when tool is not in config
|
|
602
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
603
|
+
source: [32m'api'[39m,
|
|
604
|
+
toolCount: [33m1[39m,
|
|
605
|
+
protectedTools: [ [32m'other_tool'[39m ],
|
|
606
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
607
|
+
projectId: [32m'none'[39m,
|
|
608
|
+
cacheTtlMs: [33m300000[39m,
|
|
609
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.654Z'[39m
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return null when tool is not in config
|
|
613
|
+
[22m[39m[ToolProtectionService] Protection check {
|
|
614
|
+
tool: [32m'unknown_tool'[39m,
|
|
615
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
616
|
+
found: [33mfalse[39m,
|
|
617
|
+
isWildcard: [33mtrue[39m,
|
|
618
|
+
requiresDelegation: [33mfalse[39m,
|
|
619
|
+
availableTools: [ [32m'other_tool'[39m ]
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return wildcard protection when tool not found and wildcard exists
|
|
623
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
624
|
+
source: [32m'api'[39m,
|
|
625
|
+
toolCount: [33m2[39m,
|
|
626
|
+
protectedTools: [ [32m'*'[39m ],
|
|
627
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
628
|
+
projectId: [32m'none'[39m,
|
|
629
|
+
cacheTtlMs: [33m300000[39m,
|
|
630
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.654Z'[39m
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return wildcard protection when tool not found and wildcard exists
|
|
634
|
+
[22m[39m[ToolProtectionService] Protection check {
|
|
635
|
+
tool: [32m'unknown_tool'[39m,
|
|
636
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
637
|
+
found: [33mtrue[39m,
|
|
638
|
+
isWildcard: [33mtrue[39m,
|
|
639
|
+
requiresDelegation: [33mtrue[39m,
|
|
640
|
+
availableTools: [ [32m'*'[39m, [32m'specific_tool'[39m ]
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould prioritize specific tool protection over wildcard
|
|
644
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
645
|
+
source: [32m'api'[39m,
|
|
646
|
+
toolCount: [33m2[39m,
|
|
647
|
+
protectedTools: [ [32m'*'[39m ],
|
|
648
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
649
|
+
projectId: [32m'none'[39m,
|
|
650
|
+
cacheTtlMs: [33m300000[39m,
|
|
651
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.654Z'[39m
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
656
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
657
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
658
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
659
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
660
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
661
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
662
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
663
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
664
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
665
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
666
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
667
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
668
|
+
|
|
669
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
670
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
671
|
+
[2m Start at [22m17:52:48
|
|
672
|
+
[2m Duration [22m302ms
|
|
673
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould use wildcard protection in fail-safe deny-all mode
|
|
674
|
+
[22m[39m[ToolProtectionService] API fetch failed, no fallback, failing closed (deny-all) {
|
|
675
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
676
|
+
error: [32m'Network error'[39m,
|
|
677
|
+
cacheKey: [32m'agent:did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK'[39m
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
682
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
683
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
684
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
685
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
686
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
687
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
688
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
689
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
690
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
691
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
692
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
693
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
694
|
+
|
|
695
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
696
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
697
|
+
[2m Start at [22m17:52:48
|
|
698
|
+
[2m Duration [22m302ms
|
|
699
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould use wildcard protection in fail-safe deny-all mode
|
|
700
|
+
[22m[39m[ToolProtectionService] Protection check {
|
|
701
|
+
tool: [32m'any_tool'[39m,
|
|
702
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
703
|
+
found: [33mtrue[39m,
|
|
704
|
+
isWildcard: [33mtrue[39m,
|
|
705
|
+
requiresDelegation: [33mtrue[39m,
|
|
706
|
+
availableTools: [ [32m'*'[39m ]
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return protection config when tool requires delegation
|
|
710
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
711
|
+
source: [32m'api'[39m,
|
|
712
|
+
toolCount: [33m1[39m,
|
|
713
|
+
protectedTools: [ [32m'protected_tool'[39m ],
|
|
714
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
715
|
+
projectId: [32m'none'[39m,
|
|
716
|
+
cacheTtlMs: [33m300000[39m,
|
|
717
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.655Z'[39m
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mcheckToolProtection[2m > [22m[2mshould return protection config when tool requires delegation
|
|
721
|
+
[22m[39m[ToolProtectionService] Protection check {
|
|
722
|
+
tool: [32m'protected_tool'[39m,
|
|
723
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
724
|
+
found: [33mtrue[39m,
|
|
725
|
+
isWildcard: [33mfalse[39m,
|
|
726
|
+
requiresDelegation: [33mtrue[39m,
|
|
727
|
+
availableTools: [ [32m'protected_tool'[39m ]
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mintegration with NoOpToolProtectionCache[2m > [22m[2mshould work with NoOpToolProtectionCache
|
|
731
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
732
|
+
source: [32m'api'[39m,
|
|
733
|
+
toolCount: [33m1[39m,
|
|
734
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
735
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
736
|
+
projectId: [32m'none'[39m,
|
|
737
|
+
cacheTtlMs: [33m300000[39m,
|
|
738
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.655Z'[39m
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
[90mstdout[2m | src/__tests__/services/tool-protection.service.test.ts[2m > [22m[2mToolProtectionService[2m > [22m[2mintegration with NoOpToolProtectionCache[2m > [22m[2mshould work with NoOpToolProtectionCache
|
|
742
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
743
|
+
source: [32m'api'[39m,
|
|
744
|
+
toolCount: [33m1[39m,
|
|
745
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
746
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
747
|
+
projectId: [32m'none'[39m,
|
|
748
|
+
cacheTtlMs: [33m300000[39m,
|
|
749
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:48.655Z'[39m
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
[32m✓[39m src/__tests__/services/tool-protection.service.test.ts [2m([22m[2m49 tests[22m[2m)[22m[32m 17[2mms[22m[39m
|
|
753
|
+
|
|
754
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
755
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
756
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
757
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
758
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
759
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
760
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
761
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
762
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
763
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
764
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
765
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
766
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
767
|
+
|
|
768
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
769
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
770
|
+
[2m Start at [22m17:52:48
|
|
771
|
+
[2m Duration [22m302ms
|
|
772
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould submit proofs successfully
|
|
773
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
774
|
+
correlationId: [32m'65b85076-4377-4e1f-bf37-836838433b88'[39m,
|
|
775
|
+
status: [33m200[39m,
|
|
776
|
+
statusText: [32m''[39m,
|
|
777
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
778
|
+
responseTextLength: [33m100[39m,
|
|
779
|
+
responseTextPreview: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}}'[39m,
|
|
780
|
+
fullResponseText: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}}'[39m
|
|
781
|
+
}
|
|
782
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
783
|
+
correlationId: [32m'65b85076-4377-4e1f-bf37-836838433b88'[39m,
|
|
784
|
+
status: [33m200[39m,
|
|
785
|
+
responseDataType: [32m'object'[39m,
|
|
786
|
+
responseDataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
787
|
+
responseData: [32m'{\n'[39m +
|
|
788
|
+
[32m' "success": true,\n'[39m +
|
|
789
|
+
[32m' "accepted": 1,\n'[39m +
|
|
790
|
+
[32m' "rejected": 0,\n'[39m +
|
|
791
|
+
[32m' "outcomes": {\n'[39m +
|
|
792
|
+
[32m' "success": 1,\n'[39m +
|
|
793
|
+
[32m' "failed": 0,\n'[39m +
|
|
794
|
+
[32m' "blocked": 0,\n'[39m +
|
|
795
|
+
[32m' "error": 0\n'[39m +
|
|
796
|
+
[32m' }\n'[39m +
|
|
797
|
+
[32m'}'[39m
|
|
798
|
+
}
|
|
799
|
+
[AccessControl] Raw response received: {
|
|
800
|
+
"success": true,
|
|
801
|
+
"accepted": 1,
|
|
802
|
+
"rejected": 0,
|
|
803
|
+
"outcomes": {
|
|
804
|
+
"success": 1,
|
|
805
|
+
"failed": 0,
|
|
806
|
+
"blocked": 0,
|
|
807
|
+
"error": 0
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould handle all_proofs_rejected error gracefully
|
|
812
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
813
|
+
correlationId: [32m'11b587b4-ac6e-43ef-bafa-12bda57e5630'[39m,
|
|
814
|
+
status: [33m400[39m,
|
|
815
|
+
statusText: [32m''[39m,
|
|
816
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
817
|
+
responseTextLength: [33m209[39m,
|
|
818
|
+
responseTextPreview: [32m'{"success":false,"error":{"code":"all_proofs_rejected","message":"All proofs rejected","details":{"rejected":1,"errors":[{"proof_index":0,"error":{"code":"invalid_signature","message":"Invalid signature"}}]}}}'[39m,
|
|
819
|
+
fullResponseText: [32m'{"success":false,"error":{"code":"all_proofs_rejected","message":"All proofs rejected","details":{"rejected":1,"errors":[{"proof_index":0,"error":{"code":"invalid_signature","message":"Invalid signature"}}]}}}'[39m
|
|
820
|
+
}
|
|
821
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
822
|
+
correlationId: [32m'11b587b4-ac6e-43ef-bafa-12bda57e5630'[39m,
|
|
823
|
+
status: [33m400[39m,
|
|
824
|
+
responseDataType: [32m'object'[39m,
|
|
825
|
+
responseDataKeys: [ [32m'success'[39m, [32m'error'[39m ],
|
|
826
|
+
responseData: [32m'{\n'[39m +
|
|
827
|
+
[32m' "success": false,\n'[39m +
|
|
828
|
+
[32m' "error": {\n'[39m +
|
|
829
|
+
[32m' "code": "all_proofs_rejected",\n'[39m +
|
|
830
|
+
[32m' "message": "All proofs rejected",\n'[39m +
|
|
831
|
+
[32m' "details": {\n'[39m +
|
|
832
|
+
[32m' "rejected": 1,\n'[39m +
|
|
833
|
+
[32m' "errors": [\n'[39m +
|
|
834
|
+
[32m' {\n'[39m +
|
|
835
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
836
|
+
[32m' "error": {\n'[39m +
|
|
837
|
+
[32m' "code": "invalid_signature",\n'[39m +
|
|
838
|
+
[32m' "message": "Invalid signature"\n'[39m +
|
|
839
|
+
[32m' }\n'[39m +
|
|
840
|
+
[32m' }\n'[39m +
|
|
841
|
+
[32m' ]\n'[39m +
|
|
842
|
+
[32m' }\n'[39m +
|
|
843
|
+
[32m' }\n'[39m +
|
|
844
|
+
[32m'}'[39m
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould handle wrapped response format
|
|
848
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
849
|
+
correlationId: [32m'5ac1bfa3-006b-4bb7-9082-67a24030fafe'[39m,
|
|
850
|
+
status: [33m200[39m,
|
|
851
|
+
statusText: [32m''[39m,
|
|
852
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
853
|
+
responseTextLength: [33m206[39m,
|
|
854
|
+
responseTextPreview: [32m'{"success":true,"data":{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:48.685Z"}}'[39m,
|
|
855
|
+
fullResponseText: [32m'{"success":true,"data":{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:48.685Z"}}'[39m
|
|
856
|
+
}
|
|
857
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
858
|
+
correlationId: [32m'5ac1bfa3-006b-4bb7-9082-67a24030fafe'[39m,
|
|
859
|
+
status: [33m200[39m,
|
|
860
|
+
responseDataType: [32m'object'[39m,
|
|
861
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
862
|
+
responseData: [32m'{\n'[39m +
|
|
863
|
+
[32m' "success": true,\n'[39m +
|
|
864
|
+
[32m' "data": {\n'[39m +
|
|
865
|
+
[32m' "success": true,\n'[39m +
|
|
866
|
+
[32m' "accepted": 1,\n'[39m +
|
|
867
|
+
[32m' "rejected": 0,\n'[39m +
|
|
868
|
+
[32m' "outcomes": {\n'[39m +
|
|
869
|
+
[32m' "success": 1,\n'[39m +
|
|
870
|
+
[32m' "failed": 0,\n'[39m +
|
|
871
|
+
[32m' "blocked": 0,\n'[39m +
|
|
872
|
+
[32m' "error": 0\n'[39m +
|
|
873
|
+
[32m' }\n'[39m +
|
|
874
|
+
[32m' },\n'[39m +
|
|
875
|
+
[32m' "metadata": {\n'[39m +
|
|
876
|
+
[32m' "requestId": "test-request-id",\n'[39m +
|
|
877
|
+
[32m' "timestamp": "2025-11-24T23:52:48.685Z"\n'[39m +
|
|
878
|
+
[32m' }\n'[39m +
|
|
879
|
+
[32m'}'[39m
|
|
880
|
+
}
|
|
881
|
+
[AccessControl] Raw response received: {
|
|
882
|
+
"success": true,
|
|
883
|
+
"data": {
|
|
884
|
+
"success": true,
|
|
885
|
+
"accepted": 1,
|
|
886
|
+
"rejected": 0,
|
|
887
|
+
"outcomes": {
|
|
888
|
+
"success": 1,
|
|
889
|
+
"failed": 0,
|
|
890
|
+
"blocked": 0,
|
|
891
|
+
"error": 0
|
|
892
|
+
}
|
|
893
|
+
},
|
|
894
|
+
"metadata": {
|
|
895
|
+
"requestId": "test-request-id",
|
|
896
|
+
"timestamp": "2025-11-24T23:52:48.685Z"
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
900
|
+
correlationId: [32m'5ac1bfa3-006b-4bb7-9082-67a24030fafe'[39m,
|
|
901
|
+
dataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
902
|
+
hasAccepted: [33mtrue[39m,
|
|
903
|
+
hasRejected: [33mtrue[39m,
|
|
904
|
+
hasOutcomes: [33mtrue[39m,
|
|
905
|
+
hasErrors: [33mfalse[39m,
|
|
906
|
+
acceptedType: [32m'number'[39m,
|
|
907
|
+
acceptedValue: [33m1[39m,
|
|
908
|
+
rejectedType: [32m'number'[39m,
|
|
909
|
+
rejectedValue: [33m0[39m,
|
|
910
|
+
outcomesType: [32m'object'[39m,
|
|
911
|
+
outcomesValue: { success: [33m1[39m, failed: [33m0[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
912
|
+
errorsType: [32m'undefined'[39m,
|
|
913
|
+
errorsIsArray: [33mfalse[39m,
|
|
914
|
+
fullData: [32m'{\n'[39m +
|
|
915
|
+
[32m' "success": true,\n'[39m +
|
|
916
|
+
[32m' "accepted": 1,\n'[39m +
|
|
917
|
+
[32m' "rejected": 0,\n'[39m +
|
|
918
|
+
[32m' "outcomes": {\n'[39m +
|
|
919
|
+
[32m' "success": 1,\n'[39m +
|
|
920
|
+
[32m' "failed": 0,\n'[39m +
|
|
921
|
+
[32m' "blocked": 0,\n'[39m +
|
|
922
|
+
[32m' "error": 0\n'[39m +
|
|
923
|
+
[32m' }\n'[39m +
|
|
924
|
+
[32m'}'[39m
|
|
925
|
+
}
|
|
926
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
927
|
+
correlationId: [32m'5ac1bfa3-006b-4bb7-9082-67a24030fafe'[39m,
|
|
928
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
929
|
+
hasSuccess: [33mtrue[39m,
|
|
930
|
+
successValue: [33mtrue[39m,
|
|
931
|
+
hasAccepted: [33mtrue[39m,
|
|
932
|
+
acceptedValue: [33m1[39m,
|
|
933
|
+
hasRejected: [33mtrue[39m,
|
|
934
|
+
rejectedValue: [33m0[39m,
|
|
935
|
+
hasOutcomes: [33mtrue[39m,
|
|
936
|
+
outcomesValue: { success: [33m1[39m, failed: [33m0[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
937
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
938
|
+
[32m' "success": true,\n'[39m +
|
|
939
|
+
[32m' "accepted": 1,\n'[39m +
|
|
940
|
+
[32m' "rejected": 0,\n'[39m +
|
|
941
|
+
[32m' "outcomes": {\n'[39m +
|
|
942
|
+
[32m' "success": 1,\n'[39m +
|
|
943
|
+
[32m' "failed": 0,\n'[39m +
|
|
944
|
+
[32m' "blocked": 0,\n'[39m +
|
|
945
|
+
[32m' "error": 0\n'[39m +
|
|
946
|
+
[32m' }\n'[39m +
|
|
947
|
+
[32m'}'[39m
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould handle response with missing outcomes field (outcomes is optional)
|
|
951
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
952
|
+
correlationId: [32m'027b427a-ce0e-42c1-9193-038ce989ead0'[39m,
|
|
953
|
+
status: [33m200[39m,
|
|
954
|
+
statusText: [32m''[39m,
|
|
955
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
956
|
+
responseTextLength: [33m42[39m,
|
|
957
|
+
responseTextPreview: [32m'{"success":true,"accepted":1,"rejected":0}'[39m,
|
|
958
|
+
fullResponseText: [32m'{"success":true,"accepted":1,"rejected":0}'[39m
|
|
959
|
+
}
|
|
960
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
961
|
+
correlationId: [32m'027b427a-ce0e-42c1-9193-038ce989ead0'[39m,
|
|
962
|
+
status: [33m200[39m,
|
|
963
|
+
responseDataType: [32m'object'[39m,
|
|
964
|
+
responseDataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m ],
|
|
965
|
+
responseData: [32m'{\n "success": true,\n "accepted": 1,\n "rejected": 0\n}'[39m
|
|
966
|
+
}
|
|
967
|
+
[AccessControl] Raw response received: {
|
|
968
|
+
"success": true,
|
|
969
|
+
"accepted": 1,
|
|
970
|
+
"rejected": 0
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould handle response with missing outcomes field (outcomes is optional)
|
|
974
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
975
|
+
correlationId: [32m'f783783f-2004-4322-ab55-454b76b141ac'[39m,
|
|
976
|
+
status: [33m200[39m,
|
|
977
|
+
statusText: [32m''[39m,
|
|
978
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
979
|
+
responseTextLength: [33m100[39m,
|
|
980
|
+
responseTextPreview: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}}'[39m,
|
|
981
|
+
fullResponseText: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}}'[39m
|
|
982
|
+
}
|
|
983
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
984
|
+
correlationId: [32m'f783783f-2004-4322-ab55-454b76b141ac'[39m,
|
|
985
|
+
status: [33m200[39m,
|
|
986
|
+
responseDataType: [32m'object'[39m,
|
|
987
|
+
responseDataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
988
|
+
responseData: [32m'{\n'[39m +
|
|
989
|
+
[32m' "success": true,\n'[39m +
|
|
990
|
+
[32m' "accepted": 1,\n'[39m +
|
|
991
|
+
[32m' "rejected": 0,\n'[39m +
|
|
992
|
+
[32m' "outcomes": {\n'[39m +
|
|
993
|
+
[32m' "success": 1,\n'[39m +
|
|
994
|
+
[32m' "failed": 0,\n'[39m +
|
|
995
|
+
[32m' "blocked": 0,\n'[39m +
|
|
996
|
+
[32m' "error": 0\n'[39m +
|
|
997
|
+
[32m' }\n'[39m +
|
|
998
|
+
[32m'}'[39m
|
|
999
|
+
}
|
|
1000
|
+
[AccessControl] Raw response received: {
|
|
1001
|
+
"success": true,
|
|
1002
|
+
"accepted": 1,
|
|
1003
|
+
"rejected": 0,
|
|
1004
|
+
"outcomes": {
|
|
1005
|
+
"success": 1,
|
|
1006
|
+
"failed": 0,
|
|
1007
|
+
"blocked": 0,
|
|
1008
|
+
"error": 0
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould handle response with missing outcomes field (outcomes is optional)
|
|
1013
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
1014
|
+
correlationId: [32m'349ca8ce-6a47-4afa-8c0a-37e36c407b8c'[39m,
|
|
1015
|
+
status: [33m200[39m,
|
|
1016
|
+
statusText: [32m''[39m,
|
|
1017
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
1018
|
+
responseTextLength: [33m56[39m,
|
|
1019
|
+
responseTextPreview: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{}}'[39m,
|
|
1020
|
+
fullResponseText: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{}}'[39m
|
|
1021
|
+
}
|
|
1022
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
1023
|
+
correlationId: [32m'349ca8ce-6a47-4afa-8c0a-37e36c407b8c'[39m,
|
|
1024
|
+
status: [33m200[39m,
|
|
1025
|
+
responseDataType: [32m'object'[39m,
|
|
1026
|
+
responseDataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
1027
|
+
responseData: [32m'{\n "success": true,\n "accepted": 1,\n "rejected": 0,\n "outcomes": {}\n}'[39m
|
|
1028
|
+
}
|
|
1029
|
+
[AccessControl] Raw response received: {
|
|
1030
|
+
"success": true,
|
|
1031
|
+
"accepted": 1,
|
|
1032
|
+
"rejected": 0,
|
|
1033
|
+
"outcomes": {}
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
[90mstderr[2m | src/services/__tests__/access-control.service.test.ts[2m > [22m[2mAccessControlApiService[2m > [22m[2msubmitProofs[2m > [22m[2mshould handle wrapped response with invalid data structure
|
|
1037
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
1038
|
+
correlationId: [32m'98fb8b6f-6133-4c82-b1c8-1da92ef65003'[39m,
|
|
1039
|
+
status: [33m200[39m,
|
|
1040
|
+
statusText: [32m''[39m,
|
|
1041
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
1042
|
+
responseTextLength: [33m52[39m,
|
|
1043
|
+
responseTextPreview: [32m'{"success":true,"data":{"message":"Invalid format"}}'[39m,
|
|
1044
|
+
fullResponseText: [32m'{"success":true,"data":{"message":"Invalid format"}}'[39m
|
|
1045
|
+
}
|
|
1046
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
1047
|
+
correlationId: [32m'98fb8b6f-6133-4c82-b1c8-1da92ef65003'[39m,
|
|
1048
|
+
status: [33m200[39m,
|
|
1049
|
+
responseDataType: [32m'object'[39m,
|
|
1050
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m ],
|
|
1051
|
+
responseData: [32m'{\n "success": true,\n "data": {\n "message": "Invalid format"\n }\n}'[39m
|
|
1052
|
+
}
|
|
1053
|
+
[AccessControl] Raw response received: {
|
|
1054
|
+
"success": true,
|
|
1055
|
+
"data": {
|
|
1056
|
+
"message": "Invalid format"
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
1060
|
+
correlationId: [32m'98fb8b6f-6133-4c82-b1c8-1da92ef65003'[39m,
|
|
1061
|
+
dataKeys: [ [32m'message'[39m ],
|
|
1062
|
+
hasAccepted: [33mfalse[39m,
|
|
1063
|
+
hasRejected: [33mfalse[39m,
|
|
1064
|
+
hasOutcomes: [33mfalse[39m,
|
|
1065
|
+
hasErrors: [33mfalse[39m,
|
|
1066
|
+
acceptedType: [32m'undefined'[39m,
|
|
1067
|
+
acceptedValue: [90mundefined[39m,
|
|
1068
|
+
rejectedType: [32m'undefined'[39m,
|
|
1069
|
+
rejectedValue: [90mundefined[39m,
|
|
1070
|
+
outcomesType: [32m'undefined'[39m,
|
|
1071
|
+
outcomesValue: [90mundefined[39m,
|
|
1072
|
+
errorsType: [32m'undefined'[39m,
|
|
1073
|
+
errorsIsArray: [33mfalse[39m,
|
|
1074
|
+
fullData: [32m'{\n "message": "Invalid format"\n}'[39m
|
|
1075
|
+
}
|
|
1076
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
1077
|
+
correlationId: [32m'98fb8b6f-6133-4c82-b1c8-1da92ef65003'[39m,
|
|
1078
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m ],
|
|
1079
|
+
hasSuccess: [33mtrue[39m,
|
|
1080
|
+
successValue: [33mtrue[39m,
|
|
1081
|
+
hasAccepted: [33mtrue[39m,
|
|
1082
|
+
acceptedValue: [90mundefined[39m,
|
|
1083
|
+
hasRejected: [33mtrue[39m,
|
|
1084
|
+
rejectedValue: [90mundefined[39m,
|
|
1085
|
+
hasOutcomes: [33mfalse[39m,
|
|
1086
|
+
outcomesValue: [90mundefined[39m,
|
|
1087
|
+
fullDataWithSuccess: [32m'{\n "success": true\n}'[39m
|
|
1088
|
+
}
|
|
1089
|
+
[AccessControl] ❌ MISSING REQUIRED FIELDS AFTER CONSTRUCTION: {
|
|
1090
|
+
correlationId: [32m'98fb8b6f-6133-4c82-b1c8-1da92ef65003'[39m,
|
|
1091
|
+
hasAccepted: [33mtrue[39m,
|
|
1092
|
+
acceptedType: [32m'undefined'[39m,
|
|
1093
|
+
acceptedValue: [90mundefined[39m,
|
|
1094
|
+
hasRejected: [33mtrue[39m,
|
|
1095
|
+
rejectedType: [32m'undefined'[39m,
|
|
1096
|
+
rejectedValue: [90mundefined[39m,
|
|
1097
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m ],
|
|
1098
|
+
fullDataWithSuccess: [32m'{\n "success": true\n}'[39m,
|
|
1099
|
+
dataToValidateKeys: [ [32m'message'[39m ],
|
|
1100
|
+
fullDataToValidate: [32m'{\n "message": "Invalid format"\n}'[39m,
|
|
1101
|
+
originalResponseData: [32m'{\n "success": true,\n "data": {\n "message": "Invalid format"\n }\n}'[39m
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
|
|
1105
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 0/49[22m
|
|
1106
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m [queued][22m
|
|
1107
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m [queued][22m
|
|
1108
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m [queued][22m
|
|
1109
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 0/30[22m
|
|
1110
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/provider-resolver-edge-cases.test.ts[2m 19/19[22m
|
|
1111
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection.service.test.ts[2m 49/49[22m
|
|
1112
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 0/21[22m
|
|
1113
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 0/35[22m
|
|
1114
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-graph-storage.test.ts[2m 27/27[22m
|
|
1115
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m [queued][22m
|
|
1116
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 1/23[22m
|
|
1117
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m [queued][22m
|
|
1118
|
+
|
|
1119
|
+
[2m Test Files [22m[1m[32m3 passed[39m[22m[90m (44)[39m
|
|
1120
|
+
[2m Tests [22m[1m[32m95 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (253)[39m
|
|
1121
|
+
[2m Start at [22m17:52:48
|
|
1122
|
+
[2m Duration [22m302ms
|
|
1123
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/services/__tests__/access-control.service.test.ts [2m([22m[2m23 tests[22m[2m)[22m[32m 38[2mms[22m[39m
|
|
1124
|
+
[32m✓[39m src/delegation/__tests__/vc-verifier.test.ts [2m([22m[2m35 tests[22m[2m)[22m[32m 74[2mms[22m[39m
|
|
1125
|
+
[32m✓[39m src/delegation/__tests__/vc-issuer.test.ts [2m([22m[2m21 tests[22m[2m)[22m[32m 104[2mms[22m[39m
|
|
1126
|
+
|
|
1127
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1128
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1129
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1130
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1131
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1132
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1133
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1134
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1135
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1136
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1137
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1138
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1139
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1140
|
+
|
|
1141
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1142
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1143
|
+
[2m Start at [22m17:52:48
|
|
1144
|
+
[2m Duration [22m403ms
|
|
1145
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyEd25519[2m > [22m[2mshould return false on verification error
|
|
1146
|
+
[22m[39m[CryptoService] Ed25519 verification error: Error: Verification failed
|
|
1147
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:62:9
|
|
1148
|
+
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
|
|
1149
|
+
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
|
|
1150
|
+
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
|
|
1151
|
+
at new Promise (<anonymous>)
|
|
1152
|
+
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)
|
|
1153
|
+
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)
|
|
1154
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1155
|
+
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)
|
|
1156
|
+
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)
|
|
1157
|
+
|
|
1158
|
+
[90mstderr[2m | src/services/__tests__/proof-verifier.integration.test.ts[2m > [22m[2mProofVerifier Integration - Real DID Resolution[2m > [22m[2mdid:web Resolution (HTTP)[2m > [22m[2mshould handle HTTP errors gracefully
|
|
1159
|
+
[22m[39m[ProofVerifier] Failed to fetch public key from DID: Error: Failed to resolve did:web:nonexistent-domain-that-does-not-exist-12345.com: fetch failed
|
|
1160
|
+
at Object.resolveDID [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/proof-verifier.integration.test.ts:143:19[90m)[39m
|
|
1161
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1162
|
+
at ProofVerifier.fetchPublicKeyFromDID [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/proof-verifier.ts:348:22[90m)[39m
|
|
1163
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/proof-verifier.integration.test.ts:252:7
|
|
1164
|
+
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:20
|
|
1165
|
+
|
|
1166
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject invalid JWK format
|
|
1167
|
+
[22m[39m[CryptoService] Invalid Ed25519 JWK format
|
|
1168
|
+
|
|
1169
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject JWK with wrong kty
|
|
1170
|
+
[22m[39m[CryptoService] Invalid Ed25519 JWK format
|
|
1171
|
+
|
|
1172
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject JWK with wrong crv
|
|
1173
|
+
[22m[39m[CryptoService] Invalid Ed25519 JWK format
|
|
1174
|
+
|
|
1175
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject JWK with missing x field
|
|
1176
|
+
[22m[39m[CryptoService] Invalid Ed25519 JWK format
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1180
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1181
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1182
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1183
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1184
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1185
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1186
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1187
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1188
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1189
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1190
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1191
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1192
|
+
|
|
1193
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1194
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1195
|
+
[2m Start at [22m17:52:48
|
|
1196
|
+
[2m Duration [22m403ms
|
|
1197
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/runtime/route-interception.test.ts [2m([22m[2m21 tests[22m[2m)[22m[32m 35[2mms[22m[39m
|
|
1198
|
+
|
|
1199
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1200
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1201
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1202
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1203
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1204
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1205
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1206
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1207
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1208
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1209
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1210
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1211
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1212
|
+
|
|
1213
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1214
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1215
|
+
[2m Start at [22m17:52:48
|
|
1216
|
+
[2m Duration [22m403ms
|
|
1217
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject JWK with empty x field
|
|
1218
|
+
[22m[39m[CryptoService] Invalid Ed25519 JWK format
|
|
1219
|
+
|
|
1220
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject malformed JWS
|
|
1221
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid header base64: Unexpected token '', "" is not valid JSON
|
|
1222
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:91:13[90m)[39m
|
|
1223
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1224
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:230:42
|
|
1225
|
+
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
|
|
1226
|
+
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
|
|
1227
|
+
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
|
|
1228
|
+
at new Promise (<anonymous>)
|
|
1229
|
+
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)
|
|
1230
|
+
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)
|
|
1231
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1232
|
+
|
|
1233
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject non-EdDSA algorithms
|
|
1234
|
+
[22m[39m[CryptoService] Unsupported algorithm: RS256, expected EdDSA
|
|
1235
|
+
|
|
1236
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould reject HS256 algorithm
|
|
1237
|
+
[22m[39m[CryptoService] Unsupported algorithm: HS256, expected EdDSA
|
|
1238
|
+
|
|
1239
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle empty JWS components
|
|
1240
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid header base64: Unexpected end of JSON input
|
|
1241
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:91:13[90m)[39m
|
|
1242
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1243
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:271:42
|
|
1244
|
+
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
|
|
1245
|
+
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
|
|
1246
|
+
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
|
|
1247
|
+
at new Promise (<anonymous>)
|
|
1248
|
+
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)
|
|
1249
|
+
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)
|
|
1250
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1251
|
+
|
|
1252
|
+
[90mstderr[2m | src/services/__tests__/proof-verifier.integration.test.ts[2m > [22m[2mProofVerifier Integration - Real DID Resolution[2m > [22m[2mdid:web Resolution (HTTP)[2m > [22m[2mshould handle HTTP errors gracefully
|
|
1253
|
+
[22m[39m[ProofVerifier] Failed to fetch public key from DID: Error: Failed to resolve did:web:nonexistent-domain-that-does-not-exist-12345.com: fetch failed
|
|
1254
|
+
at Object.resolveDID [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/proof-verifier.integration.test.ts:143:19[90m)[39m
|
|
1255
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1256
|
+
at ProofVerifier.fetchPublicKeyFromDID [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/proof-verifier.ts:348:22[90m)[39m
|
|
1257
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/proof-verifier.integration.test.ts:257:9
|
|
1258
|
+
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:20
|
|
1259
|
+
|
|
1260
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle malformed JWS - single part
|
|
1261
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid JWS format: expected header.payload.signature
|
|
1262
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:78:13[90m)[39m
|
|
1263
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1264
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:279:42
|
|
1265
|
+
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
|
|
1266
|
+
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
|
|
1267
|
+
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
|
|
1268
|
+
at new Promise (<anonymous>)
|
|
1269
|
+
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)
|
|
1270
|
+
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)
|
|
1271
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1272
|
+
|
|
1273
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle malformed JWS - two parts
|
|
1274
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid JWS format: expected header.payload.signature
|
|
1275
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:78:13[90m)[39m
|
|
1276
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1277
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:287:42
|
|
1278
|
+
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
|
|
1279
|
+
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
|
|
1280
|
+
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
|
|
1281
|
+
at new Promise (<anonymous>)
|
|
1282
|
+
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)
|
|
1283
|
+
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)
|
|
1284
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1285
|
+
|
|
1286
|
+
|
|
1287
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1288
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1289
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1290
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1291
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1292
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1293
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1294
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1295
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1296
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1297
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1298
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1299
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1300
|
+
|
|
1301
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1302
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1303
|
+
[2m Start at [22m17:52:48
|
|
1304
|
+
[2m Duration [22m403ms
|
|
1305
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mFull handshake and tool execution flow[2m > [22m[2mshould complete full authentication and tool execution cycle
|
|
1306
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zR2T1bdxSVhqFu_d_eKkKvLNvKe1i7QGg","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368809,"timestampFormatted":"2025-11-24T23:52:48.809Z"}
|
|
1307
|
+
|
|
1308
|
+
[32m✓[39m src/__tests__/cache/tool-protection-cache.test.ts [2m([22m[2m49 tests[22m[2m)[22m[32m 164[2mms[22m[39m
|
|
1309
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mFull handshake and tool execution flow[2m > [22m[2mshould complete full authentication and tool execution cycle
|
|
1310
|
+
[22m[39m[AUDIT] {"event":"tool_executed","data":{"tool":"greetingTool","sessionId":"b4baa468a1525b411e466ab234d851d3","timestamp":1764028368809},"timestamp":1764028368809,"timestampFormatted":"2025-11-24T23:52:48.809Z"}
|
|
1311
|
+
|
|
1312
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mSession expiry handling[2m > [22m[2mshould handle expired sessions correctly
|
|
1313
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zFakH7XD0MHPMuE27RdmBSeo1Rm2mFFrJ","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368814,"timestampFormatted":"2025-11-24T23:52:48.814Z"}
|
|
1314
|
+
|
|
1315
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mKey rotation flow[2m > [22m[2mshould handle key rotation and maintain functionality
|
|
1316
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zL7rWRHMPmV0fq7nCCPQLbADZoOeaZcb0","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368814,"timestampFormatted":"2025-11-24T23:52:48.814Z"}
|
|
1317
|
+
|
|
1318
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mKey rotation flow[2m > [22m[2mshould handle key rotation and maintain functionality
|
|
1319
|
+
[22m[39m[AUDIT] {"event":"keys_rotated","data":{"oldDid":"did:key:zL7rWRHMPmV0fq7nCCPQLbADZoOeaZcb0","newDid":"did:key:zFeeIiR7_PPnoxptUEt29-LM6RPtdJUo9","timestamp":1764028368814},"timestamp":1764028368814,"timestampFormatted":"2025-11-24T23:52:48.814Z"}
|
|
1320
|
+
|
|
1321
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mWell-known endpoints[2m > [22m[2mshould provide identity discovery endpoints
|
|
1322
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:ztEJI5ksSFuBKCt8pvLPNWoYmN5pHOqCY","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368815,"timestampFormatted":"2025-11-24T23:52:48.815Z"}
|
|
1323
|
+
|
|
1324
|
+
|
|
1325
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1326
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1327
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1328
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1329
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1330
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1331
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1332
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1333
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1334
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1335
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1336
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1337
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1338
|
+
|
|
1339
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1340
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1341
|
+
[2m Start at [22m17:52:48
|
|
1342
|
+
[2m Duration [22m403ms
|
|
1343
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle malformed JWS - four parts
|
|
1344
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid JWS format: expected header.payload.signature
|
|
1345
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:78:13[90m)[39m
|
|
1346
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1347
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:302:42
|
|
1348
|
+
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
|
|
1349
|
+
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
|
|
1350
|
+
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
|
|
1351
|
+
at new Promise (<anonymous>)
|
|
1352
|
+
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)
|
|
1353
|
+
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)
|
|
1354
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1355
|
+
|
|
1356
|
+
|
|
1357
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1358
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1359
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1360
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1361
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1362
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1363
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1364
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1365
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1366
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1367
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1368
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1369
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1370
|
+
|
|
1371
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1372
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1373
|
+
[2m Start at [22m17:52:48
|
|
1374
|
+
[2m Duration [22m403ms
|
|
1375
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mNonce replay protection[2m > [22m[2mshould prevent nonce reuse
|
|
1376
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zM3Uz_vzOMcWsnGV3S5W9rF5gWpJ2P6JG","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368815,"timestampFormatted":"2025-11-24T23:52:48.815Z"}
|
|
1377
|
+
|
|
1378
|
+
|
|
1379
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1380
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1381
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1382
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1383
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1384
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1385
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1386
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1387
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1388
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1389
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1390
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1391
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1392
|
+
|
|
1393
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1394
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1395
|
+
[2m Start at [22m17:52:48
|
|
1396
|
+
[2m Duration [22m403ms
|
|
1397
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle malformed JWS - invalid JSON header
|
|
1398
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid header base64: Unexpected token 'o', "notjson" is not valid JSON
|
|
1399
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:91:13[90m)[39m
|
|
1400
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1401
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:316:42
|
|
1402
|
+
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
|
|
1403
|
+
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
|
|
1404
|
+
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
|
|
1405
|
+
at new Promise (<anonymous>)
|
|
1406
|
+
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)
|
|
1407
|
+
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)
|
|
1408
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1412
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1413
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1414
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1415
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1416
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1417
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1418
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1419
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1420
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1421
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1422
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1423
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1424
|
+
|
|
1425
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1426
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1427
|
+
[2m Start at [22m17:52:48
|
|
1428
|
+
[2m Duration [22m403ms
|
|
1429
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mError handling[2m > [22m[2mshould handle network errors gracefully
|
|
1430
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zMO7-Htu3LlfayBEg_lbqysxpBEqtYIYS","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368816,"timestampFormatted":"2025-11-24T23:52:48.816Z"}
|
|
1431
|
+
|
|
1432
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mError handling[2m > [22m[2mshould handle malformed DID documents
|
|
1433
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zwE8MZq80KXN1yqj30YVx5E7av8Ddhu76","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368816,"timestampFormatted":"2025-11-24T23:52:48.816Z"}
|
|
1434
|
+
|
|
1435
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mDebug endpoint[2m > [22m[2mshould provide debug information in development
|
|
1436
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:z9ZSnbRnMCharaJfa0KU--Ac24AUgOFoZ","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368816,"timestampFormatted":"2025-11-24T23:52:48.816Z"}
|
|
1437
|
+
|
|
1438
|
+
[90mstdout[2m | src/__tests__/integration.test.ts[2m > [22m[2mIntegration Tests[2m > [22m[2mDebug endpoint[2m > [22m[2mshould be disabled in production
|
|
1439
|
+
[22m[39m[AUDIT] {"event":"runtime_initialized","data":{"did":"did:key:zpaZlGd4Gl1drs00uTZm7ialjf6LiPs4O","environment":"development","userDidGeneration":"disabled"},"timestamp":1764028368816,"timestampFormatted":"2025-11-24T23:52:48.816Z"}
|
|
1440
|
+
|
|
1441
|
+
|
|
1442
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1443
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 0/9[22m
|
|
1444
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m [queued][22m
|
|
1445
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1446
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 0/17[22m
|
|
1447
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1448
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1449
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1450
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-verifier.test.ts[2m 35/35[22m
|
|
1451
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 0/9[22m
|
|
1452
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.service.test.ts[2m 23/23[22m
|
|
1453
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 0/34[22m
|
|
1454
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 0/13[22m
|
|
1455
|
+
|
|
1456
|
+
[2m Test Files [22m[1m[32m8 passed[39m[22m[90m (44)[39m
|
|
1457
|
+
[2m Tests [22m[1m[32m269 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (356)[39m
|
|
1458
|
+
[2m Start at [22m17:52:48
|
|
1459
|
+
[2m Duration [22m403ms
|
|
1460
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle malformed JWS - invalid base64
|
|
1461
|
+
[22m[39m[CryptoService] Invalid JWS format: Error: Invalid payload base64: Invalid base64url string: Invalid character
|
|
1462
|
+
at CryptoService.parseJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:107:15[90m)[39m
|
|
1463
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:169:23[90m)[39m
|
|
1464
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:334:42
|
|
1465
|
+
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
|
|
1466
|
+
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
|
|
1467
|
+
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
|
|
1468
|
+
at new Promise (<anonymous>)
|
|
1469
|
+
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)
|
|
1470
|
+
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)
|
|
1471
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1472
|
+
|
|
1473
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould validate expectedKid option
|
|
1474
|
+
[22m[39m[CryptoService] Key ID mismatch
|
|
1475
|
+
|
|
1476
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould validate alg option
|
|
1477
|
+
[22m[39m[CryptoService] Unsupported algorithm: EdDSA, expected RS256
|
|
1478
|
+
|
|
1479
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould validate Ed25519 key length
|
|
1480
|
+
[22m[39m[CryptoService] Failed to extract public key: Error: Invalid Ed25519 public key length: 5
|
|
1481
|
+
at CryptoService.jwkToBase64PublicKey [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:295:13[90m)[39m
|
|
1482
|
+
at CryptoService.verifyJWS [90m(/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/crypto.service.ts:249:32[90m)[39m
|
|
1483
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:398:42
|
|
1484
|
+
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
|
|
1485
|
+
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
|
|
1486
|
+
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
|
|
1487
|
+
at new Promise (<anonymous>)
|
|
1488
|
+
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)
|
|
1489
|
+
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)
|
|
1490
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1491
|
+
|
|
1492
|
+
[90mstderr[2m | src/services/__tests__/crypto.service.test.ts[2m > [22m[2mCryptoService[2m > [22m[2mverifyJWS[2m > [22m[2mshould handle signature verification error
|
|
1493
|
+
[22m[39m[CryptoService] Ed25519 verification error: Error: Crypto error
|
|
1494
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/crypto.service.test.ts:449:61
|
|
1495
|
+
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
|
|
1496
|
+
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
|
|
1497
|
+
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
|
|
1498
|
+
at new Promise (<anonymous>)
|
|
1499
|
+
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)
|
|
1500
|
+
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)
|
|
1501
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
1502
|
+
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)
|
|
1503
|
+
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)
|
|
1504
|
+
|
|
1505
|
+
|
|
1506
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1507
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 9/9[22m
|
|
1508
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 0/38[22m
|
|
1509
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1510
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 17/17[22m
|
|
1511
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1512
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m [queued][22m
|
|
1513
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1514
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1515
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 7/9[22m
|
|
1516
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 34/34[22m
|
|
1517
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 13/13[22m
|
|
1518
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m [queued][22m
|
|
1519
|
+
|
|
1520
|
+
[2m Test Files [22m[1m[32m12 passed[39m[22m[90m (44)[39m
|
|
1521
|
+
[2m Tests [22m[1m[32m348 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (394)[39m
|
|
1522
|
+
[2m Start at [22m17:52:48
|
|
1523
|
+
[2m Duration [22m524ms
|
|
1524
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/runtime/proof-client-did.test.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
1525
|
+
[32m✓[39m src/services/__tests__/crypto.service.test.ts [2m([22m[2m34 tests[22m[2m)[22m[32m 27[2mms[22m[39m
|
|
1526
|
+
[32m✓[39m src/services/__tests__/proof-verifier.integration.test.ts [2m([22m[2m13 tests[22m[2m | [22m[33m1 skipped[39m[2m)[22m[32m 89[2mms[22m[39m
|
|
1527
|
+
|
|
1528
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1529
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 9/9[22m
|
|
1530
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 0/38[22m
|
|
1531
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1532
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 17/17[22m
|
|
1533
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1534
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m [queued][22m
|
|
1535
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1536
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1537
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 7/9[22m
|
|
1538
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 34/34[22m
|
|
1539
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 13/13[22m
|
|
1540
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m [queued][22m
|
|
1541
|
+
|
|
1542
|
+
[2m Test Files [22m[1m[32m12 passed[39m[22m[90m (44)[39m
|
|
1543
|
+
[2m Tests [22m[1m[32m348 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (394)[39m
|
|
1544
|
+
[2m Start at [22m17:52:48
|
|
1545
|
+
[2m Duration [22m524ms
|
|
1546
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/access-control.integration.test.ts[2m > [22m[2mAccessControlApiService Integration[2m > [22m[2mProof Submission Flow[2m > [22m[2mshould submit proof end-to-end
|
|
1547
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
1548
|
+
correlationId: [32m'65272a36-f969-4200-a207-97a1a693668b'[39m,
|
|
1549
|
+
status: [33m200[39m,
|
|
1550
|
+
statusText: [32m''[39m,
|
|
1551
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
1552
|
+
responseTextLength: [33m100[39m,
|
|
1553
|
+
responseTextPreview: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}}'[39m,
|
|
1554
|
+
fullResponseText: [32m'{"success":true,"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}}'[39m
|
|
1555
|
+
}
|
|
1556
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
1557
|
+
correlationId: [32m'65272a36-f969-4200-a207-97a1a693668b'[39m,
|
|
1558
|
+
status: [33m200[39m,
|
|
1559
|
+
responseDataType: [32m'object'[39m,
|
|
1560
|
+
responseDataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
1561
|
+
responseData: [32m'{\n'[39m +
|
|
1562
|
+
[32m' "success": true,\n'[39m +
|
|
1563
|
+
[32m' "accepted": 1,\n'[39m +
|
|
1564
|
+
[32m' "rejected": 0,\n'[39m +
|
|
1565
|
+
[32m' "outcomes": {\n'[39m +
|
|
1566
|
+
[32m' "success": 1,\n'[39m +
|
|
1567
|
+
[32m' "failed": 0,\n'[39m +
|
|
1568
|
+
[32m' "blocked": 0,\n'[39m +
|
|
1569
|
+
[32m' "error": 0\n'[39m +
|
|
1570
|
+
[32m' }\n'[39m +
|
|
1571
|
+
[32m'}'[39m
|
|
1572
|
+
}
|
|
1573
|
+
[AccessControl] Raw response received: {
|
|
1574
|
+
"success": true,
|
|
1575
|
+
"accepted": 1,
|
|
1576
|
+
"rejected": 0,
|
|
1577
|
+
"outcomes": {
|
|
1578
|
+
"success": 1,
|
|
1579
|
+
"failed": 0,
|
|
1580
|
+
"blocked": 0,
|
|
1581
|
+
"error": 0
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
[90mstderr[2m | src/services/__tests__/access-control.integration.test.ts[2m > [22m[2mAccessControlApiService Integration[2m > [22m[2mProof Submission Flow[2m > [22m[2mshould handle proof submission with errors
|
|
1586
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
1587
|
+
correlationId: [32m'826c3ebd-3cff-47ed-be37-041b9451bfb5'[39m,
|
|
1588
|
+
status: [33m200[39m,
|
|
1589
|
+
statusText: [32m''[39m,
|
|
1590
|
+
headers: { [32m'content-type'[39m: [32m'application/json'[39m },
|
|
1591
|
+
responseTextLength: [33m200[39m,
|
|
1592
|
+
responseTextPreview: [32m'{"success":true,"accepted":0,"rejected":1,"outcomes":{"success":0,"failed":1,"blocked":0,"error":0},"errors":[{"proof_index":0,"error":{"code":"invalid_signature","message":"Invalid JWS signature"}}]}'[39m,
|
|
1593
|
+
fullResponseText: [32m'{"success":true,"accepted":0,"rejected":1,"outcomes":{"success":0,"failed":1,"blocked":0,"error":0},"errors":[{"proof_index":0,"error":{"code":"invalid_signature","message":"Invalid JWS signature"}}]}'[39m
|
|
1594
|
+
}
|
|
1595
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
1596
|
+
correlationId: [32m'826c3ebd-3cff-47ed-be37-041b9451bfb5'[39m,
|
|
1597
|
+
status: [33m200[39m,
|
|
1598
|
+
responseDataType: [32m'object'[39m,
|
|
1599
|
+
responseDataKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
1600
|
+
responseData: [32m'{\n'[39m +
|
|
1601
|
+
[32m' "success": true,\n'[39m +
|
|
1602
|
+
[32m' "accepted": 0,\n'[39m +
|
|
1603
|
+
[32m' "rejected": 1,\n'[39m +
|
|
1604
|
+
[32m' "outcomes": {\n'[39m +
|
|
1605
|
+
[32m' "success": 0,\n'[39m +
|
|
1606
|
+
[32m' "failed": 1,\n'[39m +
|
|
1607
|
+
[32m' "blocked": 0,\n'[39m +
|
|
1608
|
+
[32m' "error": 0\n'[39m +
|
|
1609
|
+
[32m' },\n'[39m +
|
|
1610
|
+
[32m' "errors": [\n'[39m +
|
|
1611
|
+
[32m' {\n'[39m +
|
|
1612
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
1613
|
+
[32m' "error": {\n'[39m +
|
|
1614
|
+
[32m' "code": "invalid_signature",\n'[39m +
|
|
1615
|
+
[32m' "message": "Invalid JWS signature"\n'[39m +
|
|
1616
|
+
[32m' }\n'[39m +
|
|
1617
|
+
[32m' }\n'[39m +
|
|
1618
|
+
[32m' ]\n'[39m +
|
|
1619
|
+
[32m'}'[39m
|
|
1620
|
+
}
|
|
1621
|
+
[AccessControl] Raw response received: {
|
|
1622
|
+
"success": true,
|
|
1623
|
+
"accepted": 0,
|
|
1624
|
+
"rejected": 1,
|
|
1625
|
+
"outcomes": {
|
|
1626
|
+
"success": 0,
|
|
1627
|
+
"failed": 1,
|
|
1628
|
+
"blocked": 0,
|
|
1629
|
+
"error": 0
|
|
1630
|
+
},
|
|
1631
|
+
"errors": [
|
|
1632
|
+
{
|
|
1633
|
+
"proof_index": 0,
|
|
1634
|
+
"error": {
|
|
1635
|
+
"code": "invalid_signature",
|
|
1636
|
+
"message": "Invalid JWS signature"
|
|
1637
|
+
}
|
|
1638
|
+
}
|
|
1639
|
+
]
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
[90mstderr[2m | src/services/__tests__/access-control.integration.test.ts[2m > [22m[2mAccessControlApiService Integration[2m > [22m[2mProof Verification Flow[2m > [22m[2mshould verify proof using ProofVerifier
|
|
1643
|
+
[22m[39m[CryptoService] Key ID mismatch
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1647
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 9/9[22m
|
|
1648
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 0/38[22m
|
|
1649
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1650
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 17/17[22m
|
|
1651
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1652
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m [queued][22m
|
|
1653
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1654
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1655
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 7/9[22m
|
|
1656
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 34/34[22m
|
|
1657
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 13/13[22m
|
|
1658
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m [queued][22m
|
|
1659
|
+
|
|
1660
|
+
[2m Test Files [22m[1m[32m12 passed[39m[22m[90m (44)[39m
|
|
1661
|
+
[2m Tests [22m[1m[32m348 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (394)[39m
|
|
1662
|
+
[2m Start at [22m17:52:48
|
|
1663
|
+
[2m Duration [22m524ms
|
|
1664
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/integration.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
1665
|
+
|
|
1666
|
+
[1m[33m ❯ [39m[22msrc/__tests__/cache/tool-protection-cache.test.ts[2m 49/49[22m
|
|
1667
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration.test.ts[2m 9/9[22m
|
|
1668
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 0/38[22m
|
|
1669
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m [queued][22m
|
|
1670
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/proof-client-did.test.ts[2m 17/17[22m
|
|
1671
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/route-interception.test.ts[2m 21/21[22m
|
|
1672
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m [queued][22m
|
|
1673
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1674
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/vc-issuer.test.ts[2m 21/21[22m
|
|
1675
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 7/9[22m
|
|
1676
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/crypto.service.test.ts[2m 34/34[22m
|
|
1677
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.integration.test.ts[2m 13/13[22m
|
|
1678
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m [queued][22m
|
|
1679
|
+
|
|
1680
|
+
[2m Test Files [22m[1m[32m12 passed[39m[22m[90m (44)[39m
|
|
1681
|
+
[2m Tests [22m[1m[32m348 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (394)[39m
|
|
1682
|
+
[2m Start at [22m17:52:48
|
|
1683
|
+
[2m Duration [22m524ms
|
|
1684
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/runtime/base-extensions.test.ts [2m([22m[2m38 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
1685
|
+
[32m✓[39m src/services/__tests__/access-control.integration.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 161[2mms[22m[39m
|
|
1686
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when no protection required
|
|
1687
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1688
|
+
tool: [32m'unprotectedTool'[39m,
|
|
1689
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1690
|
+
hasDelegation: [33mfalse[39m
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when no protection required
|
|
1694
|
+
[22m[39m[MCP-I] Tool protection check passed (no delegation required) {
|
|
1695
|
+
tool: [32m'unprotectedTool'[39m,
|
|
1696
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1697
|
+
reason: [32m'Tool not configured to require delegation'[39m
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when protection required and no delegation
|
|
1701
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1702
|
+
tool: [32m'protectedTool'[39m,
|
|
1703
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1704
|
+
hasDelegation: [33mfalse[39m
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
|
|
1708
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1709
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1710
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1711
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1712
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1713
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1714
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1715
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1716
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1717
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1718
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1719
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1720
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1721
|
+
|
|
1722
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1723
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1724
|
+
[2m Start at [22m17:52:48
|
|
1725
|
+
[2m Duration [22m727ms
|
|
1726
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when protection required and no delegation
|
|
1727
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
1728
|
+
tool: [32m'protectedTool'[39m,
|
|
1729
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
1730
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1731
|
+
resumeToken: [32m'resume_cxkqz9_midsy0ry'[39m,
|
|
1732
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=session123&agent_did=&resume_token=resume_cxkqz9_midsy0ry'[39m
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
|
|
1736
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1737
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1738
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1739
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1740
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1741
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1742
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1743
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1744
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1745
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1746
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1747
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1748
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1749
|
+
|
|
1750
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1751
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1752
|
+
[2m Start at [22m17:52:48
|
|
1753
|
+
[2m Duration [22m727ms
|
|
1754
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when protection required and delegation provided
|
|
1755
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1756
|
+
tool: [32m'protectedTool'[39m,
|
|
1757
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1758
|
+
hasDelegation: [33mtrue[39m
|
|
1759
|
+
}
|
|
1760
|
+
|
|
1761
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when protection required and delegation provided
|
|
1762
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
1763
|
+
tool: [32m'protectedTool'[39m,
|
|
1764
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1765
|
+
hasDelegationToken: [33mtrue[39m,
|
|
1766
|
+
hasConsentProof: [33mfalse[39m,
|
|
1767
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when protection required and delegation provided
|
|
1771
|
+
[22m[39m[MCP-I] ✅ Delegation verification SUCCEEDED {
|
|
1772
|
+
tool: [32m'protectedTool'[39m,
|
|
1773
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1774
|
+
delegationId: [32m'test-delegation-id'[39m,
|
|
1775
|
+
credentialScopes: [ [32m'files:write'[39m ],
|
|
1776
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1777
|
+
}
|
|
1778
|
+
|
|
1779
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when protection required and consentProof provided
|
|
1780
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1781
|
+
tool: [32m'protectedTool'[39m,
|
|
1782
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1783
|
+
hasDelegation: [33mtrue[39m
|
|
1784
|
+
}
|
|
1785
|
+
|
|
1786
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when protection required and consentProof provided
|
|
1787
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
1788
|
+
tool: [32m'protectedTool'[39m,
|
|
1789
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1790
|
+
hasDelegationToken: [33mfalse[39m,
|
|
1791
|
+
hasConsentProof: [33mtrue[39m,
|
|
1792
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1795
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when protection required and consentProof provided
|
|
1796
|
+
[22m[39m[MCP-I] ✅ Delegation verification SUCCEEDED {
|
|
1797
|
+
tool: [32m'protectedTool'[39m,
|
|
1798
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1799
|
+
delegationId: [32m'test-delegation-id'[39m,
|
|
1800
|
+
credentialScopes: [ [32m'files:write'[39m ],
|
|
1801
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1802
|
+
}
|
|
1803
|
+
|
|
1804
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when delegation verification fails
|
|
1805
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1806
|
+
tool: [32m'protectedTool'[39m,
|
|
1807
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1808
|
+
hasDelegation: [33mtrue[39m
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when delegation verification fails
|
|
1812
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
1813
|
+
tool: [32m'protectedTool'[39m,
|
|
1814
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1815
|
+
hasDelegationToken: [33mtrue[39m,
|
|
1816
|
+
hasConsentProof: [33mfalse[39m,
|
|
1817
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1818
|
+
}
|
|
1819
|
+
|
|
1820
|
+
|
|
1821
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1822
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1823
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1824
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1825
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1826
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1827
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1828
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1829
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1830
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1831
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1832
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1833
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1834
|
+
|
|
1835
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1836
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1837
|
+
[2m Start at [22m17:52:48
|
|
1838
|
+
[2m Duration [22m727ms
|
|
1839
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when delegation verification fails
|
|
1840
|
+
[22m[39m[MCP-I] ❌ Delegation verification FAILED {
|
|
1841
|
+
tool: [32m'protectedTool'[39m,
|
|
1842
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1843
|
+
reason: [32m'Delegation token expired'[39m,
|
|
1844
|
+
errorCode: [90mundefined[39m,
|
|
1845
|
+
errorMessage: [90mundefined[39m,
|
|
1846
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
|
|
1850
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1851
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1852
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1853
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1854
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1855
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1856
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1857
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1858
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1859
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1860
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1861
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1862
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1863
|
+
|
|
1864
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1865
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1866
|
+
[2m Start at [22m17:52:48
|
|
1867
|
+
[2m Duration [22m727ms
|
|
1868
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when delegation has wrong scopes
|
|
1869
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1870
|
+
tool: [32m'protectedTool'[39m,
|
|
1871
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1872
|
+
hasDelegation: [33mtrue[39m
|
|
1873
|
+
}
|
|
1874
|
+
|
|
1875
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when delegation has wrong scopes
|
|
1876
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
1877
|
+
tool: [32m'protectedTool'[39m,
|
|
1878
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1879
|
+
hasDelegationToken: [33mtrue[39m,
|
|
1880
|
+
hasConsentProof: [33mfalse[39m,
|
|
1881
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1882
|
+
}
|
|
1883
|
+
|
|
1884
|
+
|
|
1885
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1886
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1887
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1888
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1889
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1890
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1891
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1892
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1893
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1894
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1895
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1896
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1897
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1898
|
+
|
|
1899
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1900
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1901
|
+
[2m Start at [22m17:52:48
|
|
1902
|
+
[2m Duration [22m727ms
|
|
1903
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould block tool execution when delegation has wrong scopes
|
|
1904
|
+
[22m[39m[MCP-I] ❌ Delegation verification FAILED {
|
|
1905
|
+
tool: [32m'protectedTool'[39m,
|
|
1906
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1907
|
+
reason: [32m'Insufficient scopes'[39m,
|
|
1908
|
+
errorCode: [90mundefined[39m,
|
|
1909
|
+
errorMessage: [90mundefined[39m,
|
|
1910
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1911
|
+
}
|
|
1912
|
+
|
|
1913
|
+
|
|
1914
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1915
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1916
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1917
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1918
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1919
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1920
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1921
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1922
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1923
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1924
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1925
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1926
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1927
|
+
|
|
1928
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1929
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1930
|
+
[2m Start at [22m17:52:48
|
|
1931
|
+
[2m Duration [22m727ms
|
|
1932
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/runtime/base.test.ts [2m([22m[2m55 tests[22m[2m)[22m[32m 15[2mms[22m[39m
|
|
1933
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould handle API errors during verification gracefully
|
|
1934
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1935
|
+
tool: [32m'protectedTool'[39m,
|
|
1936
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1937
|
+
hasDelegation: [33mtrue[39m
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould handle API errors during verification gracefully
|
|
1941
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
1942
|
+
tool: [32m'protectedTool'[39m,
|
|
1943
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1944
|
+
hasDelegationToken: [33mtrue[39m,
|
|
1945
|
+
hasConsentProof: [33mfalse[39m,
|
|
1946
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1951
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1952
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1953
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1954
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1955
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1956
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1957
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1958
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1959
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1960
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1961
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1962
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1963
|
+
|
|
1964
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1965
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1966
|
+
[2m Start at [22m17:52:48
|
|
1967
|
+
[2m Duration [22m727ms
|
|
1968
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould handle API errors during verification gracefully
|
|
1969
|
+
[22m[39m[MCP-I] ❌ Delegation verification error (API failure) {
|
|
1970
|
+
tool: [32m'protectedTool'[39m,
|
|
1971
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
1972
|
+
errorCode: [32m'network_error'[39m,
|
|
1973
|
+
errorMessage: [32m'API unavailable'[39m,
|
|
1974
|
+
errorDetails: {}
|
|
1975
|
+
}
|
|
1976
|
+
|
|
1977
|
+
|
|
1978
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
1979
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
1980
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
1981
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
1982
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
1983
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
1984
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
1985
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
1986
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
1987
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
1988
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
1989
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
1990
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
1991
|
+
|
|
1992
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
1993
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
1994
|
+
[2m Start at [22m17:52:48
|
|
1995
|
+
[2m Duration [22m727ms
|
|
1996
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when access control service not configured (graceful degradation)
|
|
1997
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
1998
|
+
tool: [32m'protectedTool'[39m,
|
|
1999
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2000
|
+
hasDelegation: [33mtrue[39m
|
|
2001
|
+
}
|
|
2002
|
+
|
|
2003
|
+
|
|
2004
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2005
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2006
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2007
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2008
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2009
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2010
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2011
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2012
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2013
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2014
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2015
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2016
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2017
|
+
|
|
2018
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2019
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2020
|
+
[2m Start at [22m17:52:48
|
|
2021
|
+
[2m Duration [22m727ms
|
|
2022
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould allow tool execution when access control service not configured (graceful degradation)
|
|
2023
|
+
[22m[39m[MCP-I] ⚠️ Delegation token provided but AccessControlApiService not configured - skipping verification {
|
|
2024
|
+
tool: [32m'protectedTool'[39m,
|
|
2025
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2026
|
+
hasDelegationToken: [33mtrue[39m,
|
|
2027
|
+
hasConsentProof: [33mfalse[39m
|
|
2028
|
+
}
|
|
2029
|
+
|
|
2030
|
+
|
|
2031
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2032
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2033
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2034
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2035
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2036
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2037
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2038
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2039
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2040
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2041
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2042
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2043
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2044
|
+
|
|
2045
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2046
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2047
|
+
[2m Start at [22m17:52:48
|
|
2048
|
+
[2m Duration [22m727ms
|
|
2049
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould reject delegation when user_identifier does not match session userDid
|
|
2050
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2051
|
+
tool: [32m'protectedTool'[39m,
|
|
2052
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2053
|
+
hasDelegation: [33mtrue[39m
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould reject delegation when user_identifier does not match session userDid
|
|
2057
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
2058
|
+
tool: [32m'protectedTool'[39m,
|
|
2059
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2060
|
+
hasDelegationToken: [33mtrue[39m,
|
|
2061
|
+
hasConsentProof: [33mfalse[39m,
|
|
2062
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2063
|
+
}
|
|
2064
|
+
|
|
2065
|
+
|
|
2066
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2067
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2068
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2069
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2070
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2071
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2072
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2073
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2074
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2075
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2076
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2077
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2078
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2079
|
+
|
|
2080
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2081
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2082
|
+
[2m Start at [22m17:52:48
|
|
2083
|
+
[2m Duration [22m727ms
|
|
2084
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould reject delegation when user_identifier does not match session userDid
|
|
2085
|
+
[22m[39m[MCP-I] 🔒 SECURITY: User identifier validation FAILED {
|
|
2086
|
+
tool: [32m'protectedTool'[39m,
|
|
2087
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2088
|
+
delegationUserIdentifier: [32m'did:key:zUserB987654...'[39m,
|
|
2089
|
+
sessionUserDid: [32m'did:key:zUserA123456...'[39m,
|
|
2090
|
+
sessionId: [32m'session123...'[39m,
|
|
2091
|
+
reason: [32m'user_identifier_mismatch'[39m,
|
|
2092
|
+
severity: [32m'high'[39m
|
|
2093
|
+
}
|
|
2094
|
+
|
|
2095
|
+
|
|
2096
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2097
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2098
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2099
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2100
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2101
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2102
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2103
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2104
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2105
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2106
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2107
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2108
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2109
|
+
|
|
2110
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2111
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2112
|
+
[2m Start at [22m17:52:48
|
|
2113
|
+
[2m Duration [22m727ms
|
|
2114
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould accept delegation when user_identifier matches session userDid
|
|
2115
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2116
|
+
tool: [32m'protectedTool'[39m,
|
|
2117
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2118
|
+
hasDelegation: [33mtrue[39m
|
|
2119
|
+
}
|
|
2120
|
+
|
|
2121
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould accept delegation when user_identifier matches session userDid
|
|
2122
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
2123
|
+
tool: [32m'protectedTool'[39m,
|
|
2124
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2125
|
+
hasDelegationToken: [33mtrue[39m,
|
|
2126
|
+
hasConsentProof: [33mfalse[39m,
|
|
2127
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2128
|
+
}
|
|
2129
|
+
|
|
2130
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould accept delegation when user_identifier matches session userDid
|
|
2131
|
+
[22m[39m[MCP-I] ✅ User identifier validation PASSED {
|
|
2132
|
+
tool: [32m'protectedTool'[39m,
|
|
2133
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2134
|
+
userDid: [32m'did:key:zUserA123456...'[39m,
|
|
2135
|
+
sessionId: [32m'session123...'[39m
|
|
2136
|
+
}
|
|
2137
|
+
[MCP-I] ✅ Delegation verification SUCCEEDED {
|
|
2138
|
+
tool: [32m'protectedTool'[39m,
|
|
2139
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2140
|
+
delegationId: [32m'test-delegation-id'[39m,
|
|
2141
|
+
credentialScopes: [ [32m'files:write'[39m ],
|
|
2142
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2145
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing user_identifier gracefully (backward compatibility)
|
|
2146
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2147
|
+
tool: [32m'protectedTool'[39m,
|
|
2148
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2149
|
+
hasDelegation: [33mtrue[39m
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing user_identifier gracefully (backward compatibility)
|
|
2153
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
2154
|
+
tool: [32m'protectedTool'[39m,
|
|
2155
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2156
|
+
hasDelegationToken: [33mtrue[39m,
|
|
2157
|
+
hasConsentProof: [33mfalse[39m,
|
|
2158
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2161
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing user_identifier gracefully (backward compatibility)
|
|
2162
|
+
[22m[39m[MCP-I] ✅ Delegation verification SUCCEEDED {
|
|
2163
|
+
tool: [32m'protectedTool'[39m,
|
|
2164
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2165
|
+
delegationId: [32m'test-delegation-id'[39m,
|
|
2166
|
+
credentialScopes: [ [32m'files:write'[39m ],
|
|
2167
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing session userDid gracefully
|
|
2171
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2172
|
+
tool: [32m'protectedTool'[39m,
|
|
2173
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2174
|
+
hasDelegation: [33mtrue[39m
|
|
2175
|
+
}
|
|
2176
|
+
|
|
2177
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing session userDid gracefully
|
|
2178
|
+
[22m[39m[MCP-I] 🔐 Verifying delegation token with AccessControlApiService {
|
|
2179
|
+
tool: [32m'protectedTool'[39m,
|
|
2180
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2181
|
+
hasDelegationToken: [33mtrue[39m,
|
|
2182
|
+
hasConsentProof: [33mfalse[39m,
|
|
2183
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
|
|
2187
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2188
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2189
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2190
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2191
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2192
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2193
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2194
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2195
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2196
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2197
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2198
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2199
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2200
|
+
|
|
2201
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2202
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2203
|
+
[2m Start at [22m17:52:48
|
|
2204
|
+
[2m Duration [22m727ms
|
|
2205
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing session userDid gracefully
|
|
2206
|
+
[22m[39m[MCP-I] ⚠️ Delegation has user_identifier but session missing userDid {
|
|
2207
|
+
tool: [32m'protectedTool'[39m,
|
|
2208
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2209
|
+
delegationUserIdentifier: [32m'did:key:zUserA123456...'[39m,
|
|
2210
|
+
sessionId: [32m'session123...'[39m
|
|
2211
|
+
}
|
|
2212
|
+
|
|
2213
|
+
|
|
2214
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2215
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2216
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2217
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2218
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2219
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2220
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2221
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2222
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2223
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2224
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2225
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2226
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2227
|
+
|
|
2228
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2229
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2230
|
+
[2m Start at [22m17:52:48
|
|
2231
|
+
[2m Duration [22m727ms
|
|
2232
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2muser_identifier validation[2m > [22m[2mshould handle missing session userDid gracefully
|
|
2233
|
+
[22m[39m[MCP-I] ✅ Delegation verification SUCCEEDED {
|
|
2234
|
+
tool: [32m'protectedTool'[39m,
|
|
2235
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2236
|
+
delegationId: [32m'test-delegation-id'[39m,
|
|
2237
|
+
credentialScopes: [ [32m'files:write'[39m ],
|
|
2238
|
+
requiredScopes: [ [32m'files:write'[39m ]
|
|
2239
|
+
}
|
|
2240
|
+
|
|
2241
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould create proof after successful tool execution
|
|
2242
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2243
|
+
tool: [32m'unprotectedTool'[39m,
|
|
2244
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2245
|
+
hasDelegation: [33mfalse[39m
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2248
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould create proof after successful tool execution
|
|
2249
|
+
[22m[39m[MCP-I] Tool protection check passed (no delegation required) {
|
|
2250
|
+
tool: [32m'unprotectedTool'[39m,
|
|
2251
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2252
|
+
reason: [32m'Tool not configured to require delegation'[39m
|
|
2253
|
+
}
|
|
2254
|
+
|
|
2255
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould not create proof when tool execution is blocked
|
|
2256
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2257
|
+
tool: [32m'protectedTool'[39m,
|
|
2258
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2259
|
+
hasDelegation: [33mfalse[39m
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
|
|
2263
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2264
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2265
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2266
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2267
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2268
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2269
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2270
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2271
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2272
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2273
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2274
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2275
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2276
|
+
|
|
2277
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2278
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2279
|
+
[2m Start at [22m17:52:48
|
|
2280
|
+
[2m Duration [22m727ms
|
|
2281
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mprocessToolCall with tool protection[2m > [22m[2mshould not create proof when tool execution is blocked
|
|
2282
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2283
|
+
tool: [32m'protectedTool'[39m,
|
|
2284
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
2285
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2286
|
+
resumeToken: [32m'resume_cxkqaa_midsy0s6'[39m,
|
|
2287
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=session123&agent_did=&resume_token=resume_cxkqaa_midsy0s6'[39m
|
|
2288
|
+
}
|
|
2289
|
+
|
|
2290
|
+
|
|
2291
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2292
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2293
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2294
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2295
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2296
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2297
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2298
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2299
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2300
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2301
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2302
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2303
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2304
|
+
|
|
2305
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2306
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2307
|
+
[2m Start at [22m17:52:48
|
|
2308
|
+
[2m Duration [22m727ms
|
|
2309
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include tool name in error
|
|
2310
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2311
|
+
tool: [32m'protectedTool'[39m,
|
|
2312
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2313
|
+
hasDelegation: [33mfalse[39m
|
|
2314
|
+
}
|
|
2315
|
+
|
|
2316
|
+
|
|
2317
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2318
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2319
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2320
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2321
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2322
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2323
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2324
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2325
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2326
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2327
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2328
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2329
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2330
|
+
|
|
2331
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2332
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2333
|
+
[2m Start at [22m17:52:48
|
|
2334
|
+
[2m Duration [22m727ms
|
|
2335
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include tool name in error
|
|
2336
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2337
|
+
tool: [32m'protectedTool'[39m,
|
|
2338
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
2339
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2340
|
+
resumeToken: [32m'resume_cxkqaa_midsy0s6'[39m,
|
|
2341
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=session123&agent_did=&resume_token=resume_cxkqaa_midsy0s6'[39m
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2344
|
+
|
|
2345
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2346
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2347
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2348
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2349
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2350
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2351
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2352
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2353
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2354
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2355
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2356
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2357
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2358
|
+
|
|
2359
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2360
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2361
|
+
[2m Start at [22m17:52:48
|
|
2362
|
+
[2m Duration [22m727ms
|
|
2363
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include required scopes in error
|
|
2364
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2365
|
+
tool: [32m'protectedTool'[39m,
|
|
2366
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2367
|
+
hasDelegation: [33mfalse[39m
|
|
2368
|
+
}
|
|
2369
|
+
|
|
2370
|
+
|
|
2371
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2372
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2373
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2374
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2375
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2376
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2377
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2378
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2379
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2380
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2381
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2382
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2383
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2384
|
+
|
|
2385
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2386
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2387
|
+
[2m Start at [22m17:52:48
|
|
2388
|
+
[2m Duration [22m727ms
|
|
2389
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include required scopes in error
|
|
2390
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2391
|
+
tool: [32m'protectedTool'[39m,
|
|
2392
|
+
requiredScopes: [ [32m'files:write'[39m, [32m'files:read'[39m ],
|
|
2393
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2394
|
+
resumeToken: [32m'resume_cxkq9f_midsy0s7'[39m,
|
|
2395
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite%2Cfiles%3Aread&session_id=session123&agent_did=&resume_token=resume_cxkq9f_midsy0s7'[39m
|
|
2396
|
+
}
|
|
2397
|
+
|
|
2398
|
+
|
|
2399
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2400
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2401
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2402
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2403
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2404
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2405
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2406
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2407
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2408
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2409
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2410
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2411
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2412
|
+
|
|
2413
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2414
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2415
|
+
[2m Start at [22m17:52:48
|
|
2416
|
+
[2m Duration [22m727ms
|
|
2417
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include consent URL in error
|
|
2418
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2419
|
+
tool: [32m'protectedTool'[39m,
|
|
2420
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2421
|
+
hasDelegation: [33mfalse[39m
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2424
|
+
|
|
2425
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2426
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2427
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2428
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2429
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2430
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2431
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2432
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2433
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2434
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2435
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2436
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2437
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2438
|
+
|
|
2439
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2440
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2441
|
+
[2m Start at [22m17:52:48
|
|
2442
|
+
[2m Duration [22m727ms
|
|
2443
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include consent URL in error
|
|
2444
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2445
|
+
tool: [32m'protectedTool'[39m,
|
|
2446
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
2447
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2448
|
+
resumeToken: [32m'resume_cxkq9f_midsy0s7'[39m,
|
|
2449
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=session123&agent_did=&resume_token=resume_cxkq9f_midsy0s7'[39m
|
|
2450
|
+
}
|
|
2451
|
+
|
|
2452
|
+
|
|
2453
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2454
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2455
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2456
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2457
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2458
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2459
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2460
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2461
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2462
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2463
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2464
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2465
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2466
|
+
|
|
2467
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2468
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2469
|
+
[2m Start at [22m17:52:48
|
|
2470
|
+
[2m Duration [22m727ms
|
|
2471
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include resume token in error
|
|
2472
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2473
|
+
tool: [32m'protectedTool'[39m,
|
|
2474
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2475
|
+
hasDelegation: [33mfalse[39m
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
|
|
2479
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2480
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2481
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2482
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2483
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2484
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2485
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2486
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2487
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2488
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2489
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2490
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2491
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2492
|
+
|
|
2493
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2494
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2495
|
+
[2m Start at [22m17:52:48
|
|
2496
|
+
[2m Duration [22m727ms
|
|
2497
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include resume token in error
|
|
2498
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2499
|
+
tool: [32m'protectedTool'[39m,
|
|
2500
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
2501
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2502
|
+
resumeToken: [32m'resume_cxkq9f_midsy0s7'[39m,
|
|
2503
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=session123&agent_did=&resume_token=resume_cxkq9f_midsy0s7'[39m
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2506
|
+
|
|
2507
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2508
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2509
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2510
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2511
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2512
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2513
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2514
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2515
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2516
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2517
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2518
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2519
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2520
|
+
|
|
2521
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2522
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2523
|
+
[2m Start at [22m17:52:48
|
|
2524
|
+
[2m Duration [22m727ms
|
|
2525
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include intercepted call context in error
|
|
2526
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2527
|
+
tool: [32m'protectedTool'[39m,
|
|
2528
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2529
|
+
hasDelegation: [33mfalse[39m
|
|
2530
|
+
}
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2534
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2535
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2536
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2537
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2538
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2539
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2540
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2541
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2542
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2543
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2544
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2545
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2546
|
+
|
|
2547
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2548
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2549
|
+
[2m Start at [22m17:52:48
|
|
2550
|
+
[2m Duration [22m727ms
|
|
2551
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mDelegationRequiredError details[2m > [22m[2mshould include intercepted call context in error
|
|
2552
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2553
|
+
tool: [32m'protectedTool'[39m,
|
|
2554
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
2555
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2556
|
+
resumeToken: [32m'resume_395gyw_midsy0s7'[39m,
|
|
2557
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=session123&agent_did=&resume_token=resume_395gyw_midsy0s7'[39m
|
|
2558
|
+
}
|
|
2559
|
+
|
|
2560
|
+
|
|
2561
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2562
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2563
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2564
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2565
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2566
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2567
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2568
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2569
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2570
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2571
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2572
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2573
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2574
|
+
|
|
2575
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2576
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2577
|
+
[2m Start at [22m17:52:48
|
|
2578
|
+
[2m Duration [22m727ms
|
|
2579
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2maudit logging[2m > [22m[2mshould log tool protection check when audit enabled
|
|
2580
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2581
|
+
tool: [32m'testTool'[39m,
|
|
2582
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2583
|
+
hasDelegation: [33mfalse[39m
|
|
2584
|
+
}
|
|
2585
|
+
|
|
2586
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2maudit logging[2m > [22m[2mshould log tool protection check when audit enabled
|
|
2587
|
+
[22m[39m[MCP-I] Tool protection check passed (no delegation required) {
|
|
2588
|
+
tool: [32m'testTool'[39m,
|
|
2589
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2590
|
+
reason: [32m'Tool not configured to require delegation'[39m
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2maudit logging[2m > [22m[2mshould log blocked tool call when audit enabled
|
|
2594
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2595
|
+
tool: [32m'protectedTool'[39m,
|
|
2596
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2597
|
+
hasDelegation: [33mfalse[39m
|
|
2598
|
+
}
|
|
2599
|
+
|
|
2600
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mtool protection service integration[2m > [22m[2mshould use agent DID from identity for protection check
|
|
2601
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2602
|
+
tool: [32m'testTool'[39m,
|
|
2603
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2604
|
+
hasDelegation: [33mfalse[39m
|
|
2605
|
+
}
|
|
2606
|
+
|
|
2607
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mtool protection service integration[2m > [22m[2mshould use agent DID from identity for protection check
|
|
2608
|
+
[22m[39m[MCP-I] Tool protection check passed (no delegation required) {
|
|
2609
|
+
tool: [32m'testTool'[39m,
|
|
2610
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2611
|
+
reason: [32m'Tool not configured to require delegation'[39m
|
|
2612
|
+
}
|
|
2613
|
+
|
|
2614
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2mtool protection service integration[2m > [22m[2mshould handle tool protection service errors gracefully
|
|
2615
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2616
|
+
tool: [32m'testTool'[39m,
|
|
2617
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2618
|
+
hasDelegation: [33mfalse[39m
|
|
2619
|
+
}
|
|
2620
|
+
|
|
2621
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle empty required scopes array
|
|
2622
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2623
|
+
tool: [32m'protectedTool'[39m,
|
|
2624
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2625
|
+
hasDelegation: [33mfalse[39m
|
|
2626
|
+
}
|
|
2627
|
+
|
|
2628
|
+
|
|
2629
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2630
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2631
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2632
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2633
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2634
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2635
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2636
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2637
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2638
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2639
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2640
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2641
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2642
|
+
|
|
2643
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2644
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2645
|
+
[2m Start at [22m17:52:48
|
|
2646
|
+
[2m Duration [22m727ms
|
|
2647
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle empty required scopes array
|
|
2648
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2649
|
+
tool: [32m'protectedTool'[39m,
|
|
2650
|
+
requiredScopes: [],
|
|
2651
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2652
|
+
resumeToken: [32m'resume_cxkq7p_midsy0s9'[39m,
|
|
2653
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=&session_id=session123&agent_did=&resume_token=resume_cxkq7p_midsy0s9'[39m
|
|
2654
|
+
}
|
|
2655
|
+
|
|
2656
|
+
|
|
2657
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2658
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2659
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2660
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2661
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2662
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2663
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2664
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2665
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2666
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2667
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2668
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2669
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2670
|
+
|
|
2671
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2672
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2673
|
+
[2m Start at [22m17:52:48
|
|
2674
|
+
[2m Duration [22m727ms
|
|
2675
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle multiple required scopes
|
|
2676
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2677
|
+
tool: [32m'protectedTool'[39m,
|
|
2678
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2679
|
+
hasDelegation: [33mfalse[39m
|
|
2680
|
+
}
|
|
2681
|
+
|
|
2682
|
+
|
|
2683
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2684
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2685
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2686
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2687
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2688
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2689
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2690
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2691
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2692
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2693
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2694
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2695
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2696
|
+
|
|
2697
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2698
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2699
|
+
[2m Start at [22m17:52:48
|
|
2700
|
+
[2m Duration [22m727ms
|
|
2701
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle multiple required scopes
|
|
2702
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2703
|
+
tool: [32m'protectedTool'[39m,
|
|
2704
|
+
requiredScopes: [ [32m'scope1'[39m, [32m'scope2'[39m, [32m'scope3'[39m ],
|
|
2705
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2706
|
+
resumeToken: [32m'resume_cxkq7p_midsy0s9'[39m,
|
|
2707
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=scope1%2Cscope2%2Cscope3&session_id=session123&agent_did=&resume_token=resume_cxkq7p_midsy0s9'[39m
|
|
2708
|
+
}
|
|
2709
|
+
|
|
2710
|
+
|
|
2711
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2712
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2713
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2714
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2715
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2716
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2717
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2718
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2719
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2720
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2721
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2722
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2723
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2724
|
+
|
|
2725
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2726
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2727
|
+
[2m Start at [22m17:52:48
|
|
2728
|
+
[2m Duration [22m727ms
|
|
2729
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle session without id
|
|
2730
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2731
|
+
tool: [32m'protectedTool'[39m,
|
|
2732
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2733
|
+
hasDelegation: [33mfalse[39m
|
|
2734
|
+
}
|
|
2735
|
+
|
|
2736
|
+
|
|
2737
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2738
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2739
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2740
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2741
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2742
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2743
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2744
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2745
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2746
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2747
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2748
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2749
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2750
|
+
|
|
2751
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2752
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2753
|
+
[2m Start at [22m17:52:48
|
|
2754
|
+
[2m Duration [22m727ms
|
|
2755
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle session without id
|
|
2756
|
+
[22m[39m[MCP-I] BLOCKED: Tool requires delegation but none provided {
|
|
2757
|
+
tool: [32m'protectedTool'[39m,
|
|
2758
|
+
requiredScopes: [ [32m'files:write'[39m ],
|
|
2759
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2760
|
+
resumeToken: [32m'resume_4ha71_midsy0s9'[39m,
|
|
2761
|
+
consentUrl: [32m'https://kya.vouched.id/bouncer/consent?tool=protectedTool&scopes=files%3Awrite&session_id=&agent_did=&resume_token=resume_4ha71_midsy0s9'[39m
|
|
2762
|
+
}
|
|
2763
|
+
|
|
2764
|
+
|
|
2765
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2766
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2767
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2768
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2769
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2770
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2771
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2772
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2773
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2774
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2775
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2776
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2777
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2778
|
+
|
|
2779
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2780
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2781
|
+
[2m Start at [22m17:52:48
|
|
2782
|
+
[2m Duration [22m727ms
|
|
2783
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle handler errors independently of protection
|
|
2784
|
+
[22m[39m[MCP-I] Checking tool protection: {
|
|
2785
|
+
tool: [32m'errorTool'[39m,
|
|
2786
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2787
|
+
hasDelegation: [33mfalse[39m
|
|
2788
|
+
}
|
|
2789
|
+
|
|
2790
|
+
[90mstdout[2m | src/__tests__/runtime/tool-protection-enforcement.test.ts[2m > [22m[2mMCPIRuntimeBase - Tool Protection Enforcement[2m > [22m[2medge cases[2m > [22m[2mshould handle handler errors independently of protection
|
|
2791
|
+
[22m[39m[MCP-I] Tool protection check passed (no delegation required) {
|
|
2792
|
+
tool: [32m'errorTool'[39m,
|
|
2793
|
+
agentDid: [32m'did:key:zmock123...'[39m,
|
|
2794
|
+
reason: [32m'Tool not configured to require delegation'[39m
|
|
2795
|
+
}
|
|
2796
|
+
|
|
2797
|
+
|
|
2798
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2799
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2800
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2801
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2802
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2803
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2804
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2805
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2806
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2807
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2808
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2809
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2810
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2811
|
+
|
|
2812
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2813
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2814
|
+
[2m Start at [22m17:52:48
|
|
2815
|
+
[2m Duration [22m727ms
|
|
2816
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/storage.service.test.ts[2m > [22m[2mStorageService[2m > [22m[2mcreateStorageProviders[2m > [22m[2mshould prefer Redis over KV when both are configured
|
|
2817
|
+
[22m[39m[StorageService] Failed to connect to Redis, falling back to memory: Redis package not available
|
|
2818
|
+
|
|
2819
|
+
|
|
2820
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2821
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2822
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2823
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2824
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2825
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2826
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2827
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2828
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2829
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2830
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2831
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2832
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2833
|
+
|
|
2834
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2835
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2836
|
+
[2m Start at [22m17:52:48
|
|
2837
|
+
[2m Duration [22m727ms
|
|
2838
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/runtime/tool-protection-enforcement.test.ts [2m([22m[2m29 tests[22m[2m)[22m[32m 18[2mms[22m[39m
|
|
2839
|
+
|
|
2840
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2841
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2842
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2843
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2844
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2845
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2846
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2847
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2848
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2849
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2850
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2851
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2852
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2853
|
+
|
|
2854
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2855
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2856
|
+
[2m Start at [22m17:52:48
|
|
2857
|
+
[2m Duration [22m727ms
|
|
2858
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/storage.service.test.ts[2m > [22m[2mStorageService[2m > [22m[2mcreateStorageProviders[2m > [22m[2mshould prefer Redis over KV when both are configured
|
|
2859
|
+
[22m[39m[StorageService] Failed to initialize KV, falling back to memory: Failed to import Cloudflare storage providers: Cannot find package '@kya-os/mcp-i-cloudflare/providers/storage' imported from '/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/src/services/storage.service.ts'
|
|
2860
|
+
|
|
2861
|
+
[90mstderr[2m | src/services/__tests__/storage.service.test.ts[2m > [22m[2mStorageService[2m > [22m[2mcreateStorageProviders[2m > [22m[2mshould fall back to memory when Redis connection fails
|
|
2862
|
+
[22m[39m[StorageService] Failed to connect to Redis, falling back to memory: Redis package not available
|
|
2863
|
+
|
|
2864
|
+
[90mstderr[2m | src/services/__tests__/proof-verifier.test.ts[2m > [22m[2mProofVerifier Security[2m > [22m[2mSignature Verification[2m > [22m[2mshould handle signature verification errors gracefully
|
|
2865
|
+
[22m[39m[CryptoService] Ed25519 verification error: Error: Crypto error
|
|
2866
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/services/__tests__/proof-verifier.test.ts:328:9
|
|
2867
|
+
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
|
|
2868
|
+
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
|
|
2869
|
+
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
|
|
2870
|
+
at new Promise (<anonymous>)
|
|
2871
|
+
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)
|
|
2872
|
+
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)
|
|
2873
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
2874
|
+
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)
|
|
2875
|
+
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)
|
|
2876
|
+
|
|
2877
|
+
[90mstderr[2m | src/services/__tests__/storage.service.test.ts[2m > [22m[2mStorageService[2m > [22m[2mcreateStorageProviders[2m > [22m[2mshould use KV namespace when provided
|
|
2878
|
+
[22m[39m[StorageService] Failed to initialize KV, falling back to memory: Failed to import Cloudflare storage providers: Cannot find package '@kya-os/mcp-i-cloudflare/providers/storage' imported from '/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/src/services/storage.service.ts'
|
|
2879
|
+
|
|
2880
|
+
|
|
2881
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m [queued][22m
|
|
2882
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m [queued][22m
|
|
2883
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 0/34[22m
|
|
2884
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 0/12[22m
|
|
2885
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base-extensions.test.ts[2m 38/38[22m
|
|
2886
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/base.test.ts[2m 55/55[22m
|
|
2887
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/tool-protection-enforcement.test.ts[2m 29/29[22m
|
|
2888
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2889
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m [queued][22m
|
|
2890
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.integration.test.ts[2m 9/9[22m
|
|
2891
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 0/12[22m
|
|
2892
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 0/21[22m
|
|
2893
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 0/17[22m
|
|
2894
|
+
|
|
2895
|
+
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (44)[39m
|
|
2896
|
+
[2m Tests [22m[1m[32m472 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (574)[39m
|
|
2897
|
+
[2m Start at [22m17:52:48
|
|
2898
|
+
[2m Duration [22m727ms
|
|
2899
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/providers/memory.test.ts [2m([22m[2m34 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
2900
|
+
|
|
2901
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
2902
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
2903
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
2904
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
2905
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
2906
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
2907
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
2908
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
2909
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
2910
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
2911
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
2912
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
2913
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
2914
|
+
|
|
2915
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
2916
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
2917
|
+
[2m Start at [22m17:52:48
|
|
2918
|
+
[2m Duration [22m827ms
|
|
2919
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mWrapped Response Format (AgentShield API)[2m > [22m[2mshould validate wrapped response with success field in data
|
|
2920
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
2921
|
+
correlationId: [32m'ad96c32e-52a5-4887-a858-92d70ca77f0d'[39m,
|
|
2922
|
+
status: [33m200[39m,
|
|
2923
|
+
statusText: [90mundefined[39m,
|
|
2924
|
+
headers: {},
|
|
2925
|
+
responseTextLength: [33m191[39m,
|
|
2926
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.047Z"}}'[39m,
|
|
2927
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.047Z"}}'[39m
|
|
2928
|
+
}
|
|
2929
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
2930
|
+
correlationId: [32m'ad96c32e-52a5-4887-a858-92d70ca77f0d'[39m,
|
|
2931
|
+
status: [33m200[39m,
|
|
2932
|
+
responseDataType: [32m'object'[39m,
|
|
2933
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
2934
|
+
responseData: [32m'{\n'[39m +
|
|
2935
|
+
[32m' "success": true,\n'[39m +
|
|
2936
|
+
[32m' "data": {\n'[39m +
|
|
2937
|
+
[32m' "accepted": 1,\n'[39m +
|
|
2938
|
+
[32m' "rejected": 0,\n'[39m +
|
|
2939
|
+
[32m' "outcomes": {\n'[39m +
|
|
2940
|
+
[32m' "success": 1,\n'[39m +
|
|
2941
|
+
[32m' "failed": 0,\n'[39m +
|
|
2942
|
+
[32m' "blocked": 0,\n'[39m +
|
|
2943
|
+
[32m' "error": 0\n'[39m +
|
|
2944
|
+
[32m' }\n'[39m +
|
|
2945
|
+
[32m' },\n'[39m +
|
|
2946
|
+
[32m' "metadata": {\n'[39m +
|
|
2947
|
+
[32m' "requestId": "test-request-id",\n'[39m +
|
|
2948
|
+
[32m' "timestamp": "2025-11-24T23:52:49.047Z"\n'[39m +
|
|
2949
|
+
[32m' }\n'[39m +
|
|
2950
|
+
[32m'}'[39m
|
|
2951
|
+
}
|
|
2952
|
+
[AccessControl] Raw response received: {
|
|
2953
|
+
"success": true,
|
|
2954
|
+
"data": {
|
|
2955
|
+
"accepted": 1,
|
|
2956
|
+
"rejected": 0,
|
|
2957
|
+
"outcomes": {
|
|
2958
|
+
"success": 1,
|
|
2959
|
+
"failed": 0,
|
|
2960
|
+
"blocked": 0,
|
|
2961
|
+
"error": 0
|
|
2962
|
+
}
|
|
2963
|
+
},
|
|
2964
|
+
"metadata": {
|
|
2965
|
+
"requestId": "test-request-id",
|
|
2966
|
+
"timestamp": "2025-11-24T23:52:49.047Z"
|
|
2967
|
+
}
|
|
2968
|
+
}
|
|
2969
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
2970
|
+
correlationId: [32m'ad96c32e-52a5-4887-a858-92d70ca77f0d'[39m,
|
|
2971
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
2972
|
+
hasAccepted: [33mtrue[39m,
|
|
2973
|
+
hasRejected: [33mtrue[39m,
|
|
2974
|
+
hasOutcomes: [33mtrue[39m,
|
|
2975
|
+
hasErrors: [33mfalse[39m,
|
|
2976
|
+
acceptedType: [32m'number'[39m,
|
|
2977
|
+
acceptedValue: [33m1[39m,
|
|
2978
|
+
rejectedType: [32m'number'[39m,
|
|
2979
|
+
rejectedValue: [33m0[39m,
|
|
2980
|
+
outcomesType: [32m'object'[39m,
|
|
2981
|
+
outcomesValue: { success: [33m1[39m, failed: [33m0[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
2982
|
+
errorsType: [32m'undefined'[39m,
|
|
2983
|
+
errorsIsArray: [33mfalse[39m,
|
|
2984
|
+
fullData: [32m'{\n'[39m +
|
|
2985
|
+
[32m' "accepted": 1,\n'[39m +
|
|
2986
|
+
[32m' "rejected": 0,\n'[39m +
|
|
2987
|
+
[32m' "outcomes": {\n'[39m +
|
|
2988
|
+
[32m' "success": 1,\n'[39m +
|
|
2989
|
+
[32m' "failed": 0,\n'[39m +
|
|
2990
|
+
[32m' "blocked": 0,\n'[39m +
|
|
2991
|
+
[32m' "error": 0\n'[39m +
|
|
2992
|
+
[32m' }\n'[39m +
|
|
2993
|
+
[32m'}'[39m
|
|
2994
|
+
}
|
|
2995
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
2996
|
+
correlationId: [32m'ad96c32e-52a5-4887-a858-92d70ca77f0d'[39m,
|
|
2997
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
2998
|
+
hasSuccess: [33mtrue[39m,
|
|
2999
|
+
successValue: [33mtrue[39m,
|
|
3000
|
+
hasAccepted: [33mtrue[39m,
|
|
3001
|
+
acceptedValue: [33m1[39m,
|
|
3002
|
+
hasRejected: [33mtrue[39m,
|
|
3003
|
+
rejectedValue: [33m0[39m,
|
|
3004
|
+
hasOutcomes: [33mtrue[39m,
|
|
3005
|
+
outcomesValue: { success: [33m1[39m, failed: [33m0[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
3006
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
3007
|
+
[32m' "success": true,\n'[39m +
|
|
3008
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3009
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3010
|
+
[32m' "outcomes": {\n'[39m +
|
|
3011
|
+
[32m' "success": 1,\n'[39m +
|
|
3012
|
+
[32m' "failed": 0,\n'[39m +
|
|
3013
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3014
|
+
[32m' "error": 0\n'[39m +
|
|
3015
|
+
[32m' }\n'[39m +
|
|
3016
|
+
[32m'}'[39m
|
|
3017
|
+
}
|
|
3018
|
+
|
|
3019
|
+
[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mWrapped Response Format (AgentShield API)[2m > [22m[2mshould validate wrapped response with errors array
|
|
3020
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
3021
|
+
correlationId: [32m'ad29b63a-0efd-473d-b421-1877f8ab7a4f'[39m,
|
|
3022
|
+
status: [33m200[39m,
|
|
3023
|
+
statusText: [90mundefined[39m,
|
|
3024
|
+
headers: {},
|
|
3025
|
+
responseTextLength: [33m333[39m,
|
|
3026
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":0,"rejected":1,"outcomes":{"success":0,"failed":1,"blocked":0,"error":0},"errors":[{"proof_index":0,"error":{"code":"validation_error","message":"Proof validation failed","details":{"reason":"invalid_signature"}}}]},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.110Z"}}'[39m,
|
|
3027
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":0,"rejected":1,"outcomes":{"success":0,"failed":1,"blocked":0,"error":0},"errors":[{"proof_index":0,"error":{"code":"validation_error","message":"Proof validation failed","details":{"reason":"invalid_signature"}}}]},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.110Z"}}'[39m
|
|
3028
|
+
}
|
|
3029
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
3030
|
+
correlationId: [32m'ad29b63a-0efd-473d-b421-1877f8ab7a4f'[39m,
|
|
3031
|
+
status: [33m200[39m,
|
|
3032
|
+
responseDataType: [32m'object'[39m,
|
|
3033
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
3034
|
+
responseData: [32m'{\n'[39m +
|
|
3035
|
+
[32m' "success": true,\n'[39m +
|
|
3036
|
+
[32m' "data": {\n'[39m +
|
|
3037
|
+
[32m' "accepted": 0,\n'[39m +
|
|
3038
|
+
[32m' "rejected": 1,\n'[39m +
|
|
3039
|
+
[32m' "outcomes": {\n'[39m +
|
|
3040
|
+
[32m' "success": 0,\n'[39m +
|
|
3041
|
+
[32m' "failed": 1,\n'[39m +
|
|
3042
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3043
|
+
[32m' "error": 0\n'[39m +
|
|
3044
|
+
[32m' },\n'[39m +
|
|
3045
|
+
[32m' "errors": [\n'[39m +
|
|
3046
|
+
[32m' {\n'[39m +
|
|
3047
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
3048
|
+
[32m' "error": {\n'[39m +
|
|
3049
|
+
[32m' "code": "validation_error",\n'[39m +
|
|
3050
|
+
[32m' "message": "Proof validation failed",\n'[39m +
|
|
3051
|
+
[32m' "details": {\n'[39m +
|
|
3052
|
+
[32m' "reason": "invalid_signature"\n'[39m +
|
|
3053
|
+
[32m' }\n'[39m +
|
|
3054
|
+
[32m' }\n'[39m +
|
|
3055
|
+
[32m' }\n'[39m +
|
|
3056
|
+
[32m' ]\n'[39m +
|
|
3057
|
+
[32m' },\n'[39m +
|
|
3058
|
+
[32m' "metadata": {\n'[39m +
|
|
3059
|
+
[32m' "requestId": "test-request-id",\n'[39m +
|
|
3060
|
+
[32m' "timestamp": "2025-11-24T23:52:49.110Z"\n'[39m +
|
|
3061
|
+
[32m' }\n'[39m +
|
|
3062
|
+
[32m'}'[39m
|
|
3063
|
+
}
|
|
3064
|
+
[AccessControl] Raw response received: {
|
|
3065
|
+
"success": true,
|
|
3066
|
+
"data": {
|
|
3067
|
+
"accepted": 0,
|
|
3068
|
+
"rejected": 1,
|
|
3069
|
+
"outcomes": {
|
|
3070
|
+
"success": 0,
|
|
3071
|
+
"failed": 1,
|
|
3072
|
+
"blocked": 0,
|
|
3073
|
+
"error": 0
|
|
3074
|
+
},
|
|
3075
|
+
"errors": [
|
|
3076
|
+
{
|
|
3077
|
+
"proof_index": 0,
|
|
3078
|
+
"error": {
|
|
3079
|
+
"code": "validation_error",
|
|
3080
|
+
"message": "Proof validation failed",
|
|
3081
|
+
"details": {
|
|
3082
|
+
"reason": "invalid_signature"
|
|
3083
|
+
}
|
|
3084
|
+
}
|
|
3085
|
+
}
|
|
3086
|
+
]
|
|
3087
|
+
},
|
|
3088
|
+
"metadata": {
|
|
3089
|
+
"requestId": "test-request-id",
|
|
3090
|
+
"timestamp": "2025-11-24T23:52:49.110Z"
|
|
3091
|
+
}
|
|
3092
|
+
}
|
|
3093
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
3094
|
+
correlationId: [32m'ad29b63a-0efd-473d-b421-1877f8ab7a4f'[39m,
|
|
3095
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3096
|
+
hasAccepted: [33mtrue[39m,
|
|
3097
|
+
hasRejected: [33mtrue[39m,
|
|
3098
|
+
hasOutcomes: [33mtrue[39m,
|
|
3099
|
+
hasErrors: [33mtrue[39m,
|
|
3100
|
+
acceptedType: [32m'number'[39m,
|
|
3101
|
+
acceptedValue: [33m0[39m,
|
|
3102
|
+
rejectedType: [32m'number'[39m,
|
|
3103
|
+
rejectedValue: [33m1[39m,
|
|
3104
|
+
outcomesType: [32m'object'[39m,
|
|
3105
|
+
outcomesValue: { success: [33m0[39m, failed: [33m1[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
3106
|
+
errorsType: [32m'object'[39m,
|
|
3107
|
+
errorsIsArray: [33mtrue[39m,
|
|
3108
|
+
fullData: [32m'{\n'[39m +
|
|
3109
|
+
[32m' "accepted": 0,\n'[39m +
|
|
3110
|
+
[32m' "rejected": 1,\n'[39m +
|
|
3111
|
+
[32m' "outcomes": {\n'[39m +
|
|
3112
|
+
[32m' "success": 0,\n'[39m +
|
|
3113
|
+
[32m' "failed": 1,\n'[39m +
|
|
3114
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3115
|
+
[32m' "error": 0\n'[39m +
|
|
3116
|
+
[32m' },\n'[39m +
|
|
3117
|
+
[32m' "errors": [\n'[39m +
|
|
3118
|
+
[32m' {\n'[39m +
|
|
3119
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
3120
|
+
[32m' "error": {\n'[39m +
|
|
3121
|
+
[32m' "code": "validation_error",\n'[39m +
|
|
3122
|
+
[32m' "message": "Proof validation failed",\n'[39m +
|
|
3123
|
+
[32m' "details": {\n'[39m +
|
|
3124
|
+
[32m' "reason": "invalid_signature"\n'[39m +
|
|
3125
|
+
[32m' }\n'[39m +
|
|
3126
|
+
[32m' }\n'[39m +
|
|
3127
|
+
[32m' }\n'[39m +
|
|
3128
|
+
[32m' ]\n'[39m +
|
|
3129
|
+
[32m'}'[39m
|
|
3130
|
+
}
|
|
3131
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
3132
|
+
correlationId: [32m'ad29b63a-0efd-473d-b421-1877f8ab7a4f'[39m,
|
|
3133
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3134
|
+
hasSuccess: [33mtrue[39m,
|
|
3135
|
+
successValue: [33mtrue[39m,
|
|
3136
|
+
hasAccepted: [33mtrue[39m,
|
|
3137
|
+
acceptedValue: [33m0[39m,
|
|
3138
|
+
hasRejected: [33mtrue[39m,
|
|
3139
|
+
rejectedValue: [33m1[39m,
|
|
3140
|
+
hasOutcomes: [33mtrue[39m,
|
|
3141
|
+
outcomesValue: { success: [33m0[39m, failed: [33m1[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
3142
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
3143
|
+
[32m' "success": true,\n'[39m +
|
|
3144
|
+
[32m' "accepted": 0,\n'[39m +
|
|
3145
|
+
[32m' "rejected": 1,\n'[39m +
|
|
3146
|
+
[32m' "outcomes": {\n'[39m +
|
|
3147
|
+
[32m' "success": 0,\n'[39m +
|
|
3148
|
+
[32m' "failed": 1,\n'[39m +
|
|
3149
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3150
|
+
[32m' "error": 0\n'[39m +
|
|
3151
|
+
[32m' },\n'[39m +
|
|
3152
|
+
[32m' "errors": [\n'[39m +
|
|
3153
|
+
[32m' {\n'[39m +
|
|
3154
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
3155
|
+
[32m' "error": {\n'[39m +
|
|
3156
|
+
[32m' "code": "validation_error",\n'[39m +
|
|
3157
|
+
[32m' "message": "Proof validation failed",\n'[39m +
|
|
3158
|
+
[32m' "details": {\n'[39m +
|
|
3159
|
+
[32m' "reason": "invalid_signature"\n'[39m +
|
|
3160
|
+
[32m' }\n'[39m +
|
|
3161
|
+
[32m' }\n'[39m +
|
|
3162
|
+
[32m' }\n'[39m +
|
|
3163
|
+
[32m' ]\n'[39m +
|
|
3164
|
+
[32m'}'[39m
|
|
3165
|
+
}
|
|
3166
|
+
|
|
3167
|
+
|
|
3168
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3169
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3170
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3171
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3172
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3173
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3174
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3175
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3176
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3177
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3178
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3179
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3180
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3181
|
+
|
|
3182
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3183
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3184
|
+
[2m Start at [22m17:52:48
|
|
3185
|
+
[2m Duration [22m827ms
|
|
3186
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/services/__tests__/proof-verifier.test.ts [2m([22m[2m21 tests[22m[2m)[22m[32m 23[2mms[22m[39m
|
|
3187
|
+
|
|
3188
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3189
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3190
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3191
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3192
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3193
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3194
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3195
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3196
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3197
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3198
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3199
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3200
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3201
|
+
|
|
3202
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3203
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3204
|
+
[2m Start at [22m17:52:48
|
|
3205
|
+
[2m Duration [22m827ms
|
|
3206
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mWrapped Response Format (AgentShield API)[2m > [22m[2mshould validate wrapped response without outcomes (optional field)
|
|
3207
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
3208
|
+
correlationId: [32m'27682a7f-582d-4e08-a703-a9bc88fbdfe4'[39m,
|
|
3209
|
+
status: [33m200[39m,
|
|
3210
|
+
statusText: [90mundefined[39m,
|
|
3211
|
+
headers: {},
|
|
3212
|
+
responseTextLength: [33m133[39m,
|
|
3213
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":1,"rejected":0},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.110Z"}}'[39m,
|
|
3214
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":1,"rejected":0},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.110Z"}}'[39m
|
|
3215
|
+
}
|
|
3216
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
3217
|
+
correlationId: [32m'27682a7f-582d-4e08-a703-a9bc88fbdfe4'[39m,
|
|
3218
|
+
status: [33m200[39m,
|
|
3219
|
+
responseDataType: [32m'object'[39m,
|
|
3220
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
3221
|
+
responseData: [32m'{\n'[39m +
|
|
3222
|
+
[32m' "success": true,\n'[39m +
|
|
3223
|
+
[32m' "data": {\n'[39m +
|
|
3224
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3225
|
+
[32m' "rejected": 0\n'[39m +
|
|
3226
|
+
[32m' },\n'[39m +
|
|
3227
|
+
[32m' "metadata": {\n'[39m +
|
|
3228
|
+
[32m' "requestId": "test-request-id",\n'[39m +
|
|
3229
|
+
[32m' "timestamp": "2025-11-24T23:52:49.110Z"\n'[39m +
|
|
3230
|
+
[32m' }\n'[39m +
|
|
3231
|
+
[32m'}'[39m
|
|
3232
|
+
}
|
|
3233
|
+
[AccessControl] Raw response received: {
|
|
3234
|
+
"success": true,
|
|
3235
|
+
"data": {
|
|
3236
|
+
"accepted": 1,
|
|
3237
|
+
"rejected": 0
|
|
3238
|
+
},
|
|
3239
|
+
"metadata": {
|
|
3240
|
+
"requestId": "test-request-id",
|
|
3241
|
+
"timestamp": "2025-11-24T23:52:49.110Z"
|
|
3242
|
+
}
|
|
3243
|
+
}
|
|
3244
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
3245
|
+
correlationId: [32m'27682a7f-582d-4e08-a703-a9bc88fbdfe4'[39m,
|
|
3246
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m ],
|
|
3247
|
+
hasAccepted: [33mtrue[39m,
|
|
3248
|
+
hasRejected: [33mtrue[39m,
|
|
3249
|
+
hasOutcomes: [33mfalse[39m,
|
|
3250
|
+
hasErrors: [33mfalse[39m,
|
|
3251
|
+
acceptedType: [32m'number'[39m,
|
|
3252
|
+
acceptedValue: [33m1[39m,
|
|
3253
|
+
rejectedType: [32m'number'[39m,
|
|
3254
|
+
rejectedValue: [33m0[39m,
|
|
3255
|
+
outcomesType: [32m'undefined'[39m,
|
|
3256
|
+
outcomesValue: [90mundefined[39m,
|
|
3257
|
+
errorsType: [32m'undefined'[39m,
|
|
3258
|
+
errorsIsArray: [33mfalse[39m,
|
|
3259
|
+
fullData: [32m'{\n "accepted": 1,\n "rejected": 0\n}'[39m
|
|
3260
|
+
}
|
|
3261
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
3262
|
+
correlationId: [32m'27682a7f-582d-4e08-a703-a9bc88fbdfe4'[39m,
|
|
3263
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m ],
|
|
3264
|
+
hasSuccess: [33mtrue[39m,
|
|
3265
|
+
successValue: [33mtrue[39m,
|
|
3266
|
+
hasAccepted: [33mtrue[39m,
|
|
3267
|
+
acceptedValue: [33m1[39m,
|
|
3268
|
+
hasRejected: [33mtrue[39m,
|
|
3269
|
+
rejectedValue: [33m0[39m,
|
|
3270
|
+
hasOutcomes: [33mfalse[39m,
|
|
3271
|
+
outcomesValue: [90mundefined[39m,
|
|
3272
|
+
fullDataWithSuccess: [32m'{\n "success": true,\n "accepted": 1,\n "rejected": 0\n}'[39m
|
|
3273
|
+
}
|
|
3274
|
+
|
|
3275
|
+
[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mWrapped Response Format (AgentShield API)[2m > [22m[2mshould throw validation error if data object missing success field
|
|
3276
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
3277
|
+
correlationId: [32m'2a24ca10-b029-43b6-90f2-faf4cf3d29cb'[39m,
|
|
3278
|
+
status: [33m200[39m,
|
|
3279
|
+
statusText: [90mundefined[39m,
|
|
3280
|
+
headers: {},
|
|
3281
|
+
responseTextLength: [33m191[39m,
|
|
3282
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.111Z"}}'[39m,
|
|
3283
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":1,"rejected":0,"outcomes":{"success":1,"failed":0,"blocked":0,"error":0}},"metadata":{"requestId":"test-request-id","timestamp":"2025-11-24T23:52:49.111Z"}}'[39m
|
|
3284
|
+
}
|
|
3285
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
3286
|
+
correlationId: [32m'2a24ca10-b029-43b6-90f2-faf4cf3d29cb'[39m,
|
|
3287
|
+
status: [33m200[39m,
|
|
3288
|
+
responseDataType: [32m'object'[39m,
|
|
3289
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
3290
|
+
responseData: [32m'{\n'[39m +
|
|
3291
|
+
[32m' "success": true,\n'[39m +
|
|
3292
|
+
[32m' "data": {\n'[39m +
|
|
3293
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3294
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3295
|
+
[32m' "outcomes": {\n'[39m +
|
|
3296
|
+
[32m' "success": 1,\n'[39m +
|
|
3297
|
+
[32m' "failed": 0,\n'[39m +
|
|
3298
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3299
|
+
[32m' "error": 0\n'[39m +
|
|
3300
|
+
[32m' }\n'[39m +
|
|
3301
|
+
[32m' },\n'[39m +
|
|
3302
|
+
[32m' "metadata": {\n'[39m +
|
|
3303
|
+
[32m' "requestId": "test-request-id",\n'[39m +
|
|
3304
|
+
[32m' "timestamp": "2025-11-24T23:52:49.111Z"\n'[39m +
|
|
3305
|
+
[32m' }\n'[39m +
|
|
3306
|
+
[32m'}'[39m
|
|
3307
|
+
}
|
|
3308
|
+
[AccessControl] Raw response received: {
|
|
3309
|
+
"success": true,
|
|
3310
|
+
"data": {
|
|
3311
|
+
"accepted": 1,
|
|
3312
|
+
"rejected": 0,
|
|
3313
|
+
"outcomes": {
|
|
3314
|
+
"success": 1,
|
|
3315
|
+
"failed": 0,
|
|
3316
|
+
"blocked": 0,
|
|
3317
|
+
"error": 0
|
|
3318
|
+
}
|
|
3319
|
+
},
|
|
3320
|
+
"metadata": {
|
|
3321
|
+
"requestId": "test-request-id",
|
|
3322
|
+
"timestamp": "2025-11-24T23:52:49.111Z"
|
|
3323
|
+
}
|
|
3324
|
+
}
|
|
3325
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
3326
|
+
correlationId: [32m'2a24ca10-b029-43b6-90f2-faf4cf3d29cb'[39m,
|
|
3327
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
3328
|
+
hasAccepted: [33mtrue[39m,
|
|
3329
|
+
hasRejected: [33mtrue[39m,
|
|
3330
|
+
hasOutcomes: [33mtrue[39m,
|
|
3331
|
+
hasErrors: [33mfalse[39m,
|
|
3332
|
+
acceptedType: [32m'number'[39m,
|
|
3333
|
+
acceptedValue: [33m1[39m,
|
|
3334
|
+
rejectedType: [32m'number'[39m,
|
|
3335
|
+
rejectedValue: [33m0[39m,
|
|
3336
|
+
outcomesType: [32m'object'[39m,
|
|
3337
|
+
outcomesValue: { success: [33m1[39m, failed: [33m0[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
3338
|
+
errorsType: [32m'undefined'[39m,
|
|
3339
|
+
errorsIsArray: [33mfalse[39m,
|
|
3340
|
+
fullData: [32m'{\n'[39m +
|
|
3341
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3342
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3343
|
+
[32m' "outcomes": {\n'[39m +
|
|
3344
|
+
[32m' "success": 1,\n'[39m +
|
|
3345
|
+
[32m' "failed": 0,\n'[39m +
|
|
3346
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3347
|
+
[32m' "error": 0\n'[39m +
|
|
3348
|
+
[32m' }\n'[39m +
|
|
3349
|
+
[32m'}'[39m
|
|
3350
|
+
}
|
|
3351
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
3352
|
+
correlationId: [32m'2a24ca10-b029-43b6-90f2-faf4cf3d29cb'[39m,
|
|
3353
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m ],
|
|
3354
|
+
hasSuccess: [33mtrue[39m,
|
|
3355
|
+
successValue: [33mtrue[39m,
|
|
3356
|
+
hasAccepted: [33mtrue[39m,
|
|
3357
|
+
acceptedValue: [33m1[39m,
|
|
3358
|
+
hasRejected: [33mtrue[39m,
|
|
3359
|
+
rejectedValue: [33m0[39m,
|
|
3360
|
+
hasOutcomes: [33mtrue[39m,
|
|
3361
|
+
outcomesValue: { success: [33m1[39m, failed: [33m0[39m, blocked: [33m0[39m, error: [33m0[39m },
|
|
3362
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
3363
|
+
[32m' "success": true,\n'[39m +
|
|
3364
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3365
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3366
|
+
[32m' "outcomes": {\n'[39m +
|
|
3367
|
+
[32m' "success": 1,\n'[39m +
|
|
3368
|
+
[32m' "failed": 0,\n'[39m +
|
|
3369
|
+
[32m' "blocked": 0,\n'[39m +
|
|
3370
|
+
[32m' "error": 0\n'[39m +
|
|
3371
|
+
[32m' }\n'[39m +
|
|
3372
|
+
[32m'}'[39m
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mJSON Deep Clone Fix (Cloudflare Workers Edge Case)[2m > [22m[2mshould correctly extract data from wrapped response after JSON deep clone
|
|
3376
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
3377
|
+
correlationId: [32m'5723bd29-b42c-457f-a1c1-e9508d75669a'[39m,
|
|
3378
|
+
status: [33m200[39m,
|
|
3379
|
+
statusText: [90mundefined[39m,
|
|
3380
|
+
headers: {},
|
|
3381
|
+
responseTextLength: [33m191[39m,
|
|
3382
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":1,"rejected":0,"outcomes":{"success":1},"errors":[]},"metadata":{"requestId":"fc1fa88f-9b22-4161-b4fd-17d8215098ee","timestamp":"2025-11-24T21:36:33.029Z"}}'[39m,
|
|
3383
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":1,"rejected":0,"outcomes":{"success":1},"errors":[]},"metadata":{"requestId":"fc1fa88f-9b22-4161-b4fd-17d8215098ee","timestamp":"2025-11-24T21:36:33.029Z"}}'[39m
|
|
3384
|
+
}
|
|
3385
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
3386
|
+
correlationId: [32m'5723bd29-b42c-457f-a1c1-e9508d75669a'[39m,
|
|
3387
|
+
status: [33m200[39m,
|
|
3388
|
+
responseDataType: [32m'object'[39m,
|
|
3389
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
3390
|
+
responseData: [32m'{\n'[39m +
|
|
3391
|
+
[32m' "success": true,\n'[39m +
|
|
3392
|
+
[32m' "data": {\n'[39m +
|
|
3393
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3394
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3395
|
+
[32m' "outcomes": {\n'[39m +
|
|
3396
|
+
[32m' "success": 1\n'[39m +
|
|
3397
|
+
[32m' },\n'[39m +
|
|
3398
|
+
[32m' "errors": []\n'[39m +
|
|
3399
|
+
[32m' },\n'[39m +
|
|
3400
|
+
[32m' "metadata": {\n'[39m +
|
|
3401
|
+
[32m' "requestId": "fc1fa88f-9b22-4161-b4fd-17d8215098ee",\n'[39m +
|
|
3402
|
+
[32m' "timestamp": "2025-11-24T21:36:33.029Z"\n'[39m +
|
|
3403
|
+
[32m' }\n'[39m +
|
|
3404
|
+
[32m'}'[39m
|
|
3405
|
+
}
|
|
3406
|
+
[AccessControl] Raw response received: {
|
|
3407
|
+
"success": true,
|
|
3408
|
+
"data": {
|
|
3409
|
+
"accepted": 1,
|
|
3410
|
+
"rejected": 0,
|
|
3411
|
+
"outcomes": {
|
|
3412
|
+
"success": 1
|
|
3413
|
+
},
|
|
3414
|
+
"errors": []
|
|
3415
|
+
},
|
|
3416
|
+
"metadata": {
|
|
3417
|
+
"requestId": "fc1fa88f-9b22-4161-b4fd-17d8215098ee",
|
|
3418
|
+
"timestamp": "2025-11-24T21:36:33.029Z"
|
|
3419
|
+
}
|
|
3420
|
+
}
|
|
3421
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
3422
|
+
correlationId: [32m'5723bd29-b42c-457f-a1c1-e9508d75669a'[39m,
|
|
3423
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3424
|
+
hasAccepted: [33mtrue[39m,
|
|
3425
|
+
hasRejected: [33mtrue[39m,
|
|
3426
|
+
hasOutcomes: [33mtrue[39m,
|
|
3427
|
+
hasErrors: [33mtrue[39m,
|
|
3428
|
+
acceptedType: [32m'number'[39m,
|
|
3429
|
+
acceptedValue: [33m1[39m,
|
|
3430
|
+
rejectedType: [32m'number'[39m,
|
|
3431
|
+
rejectedValue: [33m0[39m,
|
|
3432
|
+
outcomesType: [32m'object'[39m,
|
|
3433
|
+
outcomesValue: { success: [33m1[39m },
|
|
3434
|
+
errorsType: [32m'object'[39m,
|
|
3435
|
+
errorsIsArray: [33mtrue[39m,
|
|
3436
|
+
fullData: [32m'{\n'[39m +
|
|
3437
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3438
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3439
|
+
[32m' "outcomes": {\n'[39m +
|
|
3440
|
+
[32m' "success": 1\n'[39m +
|
|
3441
|
+
[32m' },\n'[39m +
|
|
3442
|
+
[32m' "errors": []\n'[39m +
|
|
3443
|
+
[32m'}'[39m
|
|
3444
|
+
}
|
|
3445
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
3446
|
+
correlationId: [32m'5723bd29-b42c-457f-a1c1-e9508d75669a'[39m,
|
|
3447
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3448
|
+
hasSuccess: [33mtrue[39m,
|
|
3449
|
+
successValue: [33mtrue[39m,
|
|
3450
|
+
hasAccepted: [33mtrue[39m,
|
|
3451
|
+
acceptedValue: [33m1[39m,
|
|
3452
|
+
hasRejected: [33mtrue[39m,
|
|
3453
|
+
rejectedValue: [33m0[39m,
|
|
3454
|
+
hasOutcomes: [33mtrue[39m,
|
|
3455
|
+
outcomesValue: { success: [33m1[39m },
|
|
3456
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
3457
|
+
[32m' "success": true,\n'[39m +
|
|
3458
|
+
[32m' "accepted": 1,\n'[39m +
|
|
3459
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3460
|
+
[32m' "outcomes": {\n'[39m +
|
|
3461
|
+
[32m' "success": 1\n'[39m +
|
|
3462
|
+
[32m' },\n'[39m +
|
|
3463
|
+
[32m' "errors": []\n'[39m +
|
|
3464
|
+
[32m'}'[39m
|
|
3465
|
+
}
|
|
3466
|
+
|
|
3467
|
+
[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mJSON Deep Clone Fix (Cloudflare Workers Edge Case)[2m > [22m[2mshould handle response where data fields are numeric values (not undefined)
|
|
3468
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
3469
|
+
correlationId: [32m'a382c923-903e-4c59-bc1c-4e14a99a598f'[39m,
|
|
3470
|
+
status: [33m200[39m,
|
|
3471
|
+
statusText: [90mundefined[39m,
|
|
3472
|
+
headers: {},
|
|
3473
|
+
responseTextLength: [33m151[39m,
|
|
3474
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":0,"rejected":0,"outcomes":{},"errors":[]},"metadata":{"requestId":"test-id","timestamp":"2025-11-24T23:52:49.114Z"}}'[39m,
|
|
3475
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":0,"rejected":0,"outcomes":{},"errors":[]},"metadata":{"requestId":"test-id","timestamp":"2025-11-24T23:52:49.114Z"}}'[39m
|
|
3476
|
+
}
|
|
3477
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
3478
|
+
correlationId: [32m'a382c923-903e-4c59-bc1c-4e14a99a598f'[39m,
|
|
3479
|
+
status: [33m200[39m,
|
|
3480
|
+
responseDataType: [32m'object'[39m,
|
|
3481
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
3482
|
+
responseData: [32m'{\n'[39m +
|
|
3483
|
+
[32m' "success": true,\n'[39m +
|
|
3484
|
+
[32m' "data": {\n'[39m +
|
|
3485
|
+
[32m' "accepted": 0,\n'[39m +
|
|
3486
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3487
|
+
[32m' "outcomes": {},\n'[39m +
|
|
3488
|
+
[32m' "errors": []\n'[39m +
|
|
3489
|
+
[32m' },\n'[39m +
|
|
3490
|
+
[32m' "metadata": {\n'[39m +
|
|
3491
|
+
[32m' "requestId": "test-id",\n'[39m +
|
|
3492
|
+
[32m' "timestamp": "2025-11-24T23:52:49.114Z"\n'[39m +
|
|
3493
|
+
[32m' }\n'[39m +
|
|
3494
|
+
[32m'}'[39m
|
|
3495
|
+
}
|
|
3496
|
+
[AccessControl] Raw response received: {
|
|
3497
|
+
"success": true,
|
|
3498
|
+
"data": {
|
|
3499
|
+
"accepted": 0,
|
|
3500
|
+
"rejected": 0,
|
|
3501
|
+
"outcomes": {},
|
|
3502
|
+
"errors": []
|
|
3503
|
+
},
|
|
3504
|
+
"metadata": {
|
|
3505
|
+
"requestId": "test-id",
|
|
3506
|
+
"timestamp": "2025-11-24T23:52:49.114Z"
|
|
3507
|
+
}
|
|
3508
|
+
}
|
|
3509
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
3510
|
+
correlationId: [32m'a382c923-903e-4c59-bc1c-4e14a99a598f'[39m,
|
|
3511
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3512
|
+
hasAccepted: [33mtrue[39m,
|
|
3513
|
+
hasRejected: [33mtrue[39m,
|
|
3514
|
+
hasOutcomes: [33mtrue[39m,
|
|
3515
|
+
hasErrors: [33mtrue[39m,
|
|
3516
|
+
acceptedType: [32m'number'[39m,
|
|
3517
|
+
acceptedValue: [33m0[39m,
|
|
3518
|
+
rejectedType: [32m'number'[39m,
|
|
3519
|
+
rejectedValue: [33m0[39m,
|
|
3520
|
+
outcomesType: [32m'object'[39m,
|
|
3521
|
+
outcomesValue: {},
|
|
3522
|
+
errorsType: [32m'object'[39m,
|
|
3523
|
+
errorsIsArray: [33mtrue[39m,
|
|
3524
|
+
fullData: [32m'{\n "accepted": 0,\n "rejected": 0,\n "outcomes": {},\n "errors": []\n}'[39m
|
|
3525
|
+
}
|
|
3526
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
3527
|
+
correlationId: [32m'a382c923-903e-4c59-bc1c-4e14a99a598f'[39m,
|
|
3528
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3529
|
+
hasSuccess: [33mtrue[39m,
|
|
3530
|
+
successValue: [33mtrue[39m,
|
|
3531
|
+
hasAccepted: [33mtrue[39m,
|
|
3532
|
+
acceptedValue: [33m0[39m,
|
|
3533
|
+
hasRejected: [33mtrue[39m,
|
|
3534
|
+
rejectedValue: [33m0[39m,
|
|
3535
|
+
hasOutcomes: [33mtrue[39m,
|
|
3536
|
+
outcomesValue: {},
|
|
3537
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
3538
|
+
[32m' "success": true,\n'[39m +
|
|
3539
|
+
[32m' "accepted": 0,\n'[39m +
|
|
3540
|
+
[32m' "rejected": 0,\n'[39m +
|
|
3541
|
+
[32m' "outcomes": {},\n'[39m +
|
|
3542
|
+
[32m' "errors": []\n'[39m +
|
|
3543
|
+
[32m'}'[39m
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
[90mstderr[2m | src/services/__tests__/access-control.proof-response-validation.test.ts[2m > [22m[2mProof Submission Response Validation[2m > [22m[2mJSON Deep Clone Fix (Cloudflare Workers Edge Case)[2m > [22m[2mshould handle response with nested outcomes object
|
|
3547
|
+
[22m[39m[AccessControl] 🔍 RAW API RESPONSE (before parsing): {
|
|
3548
|
+
correlationId: [32m'eb3e998b-0929-4bd6-b912-44bf3d74cecf'[39m,
|
|
3549
|
+
status: [33m200[39m,
|
|
3550
|
+
statusText: [90mundefined[39m,
|
|
3551
|
+
headers: {},
|
|
3552
|
+
responseTextLength: [33m278[39m,
|
|
3553
|
+
responseTextPreview: [32m'{"success":true,"data":{"accepted":3,"rejected":2,"outcomes":{"success":1,"failed":1,"blocked":1,"error":2},"errors":[{"proof_index":0,"error":{"code":"validation_error","message":"Invalid signature"}}]},"metadata":{"requestId":"test-id","timestamp":"2025-11-24T23:52:49.115Z"}}'[39m,
|
|
3554
|
+
fullResponseText: [32m'{"success":true,"data":{"accepted":3,"rejected":2,"outcomes":{"success":1,"failed":1,"blocked":1,"error":2},"errors":[{"proof_index":0,"error":{"code":"validation_error","message":"Invalid signature"}}]},"metadata":{"requestId":"test-id","timestamp":"2025-11-24T23:52:49.115Z"}}'[39m
|
|
3555
|
+
}
|
|
3556
|
+
[AccessControl] 🔍 PARSED RESPONSE DATA: {
|
|
3557
|
+
correlationId: [32m'eb3e998b-0929-4bd6-b912-44bf3d74cecf'[39m,
|
|
3558
|
+
status: [33m200[39m,
|
|
3559
|
+
responseDataType: [32m'object'[39m,
|
|
3560
|
+
responseDataKeys: [ [32m'success'[39m, [32m'data'[39m, [32m'metadata'[39m ],
|
|
3561
|
+
responseData: [32m'{\n'[39m +
|
|
3562
|
+
[32m' "success": true,\n'[39m +
|
|
3563
|
+
[32m' "data": {\n'[39m +
|
|
3564
|
+
[32m' "accepted": 3,\n'[39m +
|
|
3565
|
+
[32m' "rejected": 2,\n'[39m +
|
|
3566
|
+
[32m' "outcomes": {\n'[39m +
|
|
3567
|
+
[32m' "success": 1,\n'[39m +
|
|
3568
|
+
[32m' "failed": 1,\n'[39m +
|
|
3569
|
+
[32m' "blocked": 1,\n'[39m +
|
|
3570
|
+
[32m' "error": 2\n'[39m +
|
|
3571
|
+
[32m' },\n'[39m +
|
|
3572
|
+
[32m' "errors": [\n'[39m +
|
|
3573
|
+
[32m' {\n'[39m +
|
|
3574
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
3575
|
+
[32m' "error": {\n'[39m +
|
|
3576
|
+
[32m' "code": "validation_error",\n'[39m +
|
|
3577
|
+
[32m' "message": "Invalid signature"\n'[39m +
|
|
3578
|
+
[32m' }\n'[39m +
|
|
3579
|
+
[32m' }\n'[39m +
|
|
3580
|
+
[32m' ]\n'[39m +
|
|
3581
|
+
[32m' },\n'[39m +
|
|
3582
|
+
[32m' "metadata": {\n'[39m +
|
|
3583
|
+
[32m' "requestId": "test-id",\n'[39m +
|
|
3584
|
+
[32m' "timestamp": "2025-11-24T23:52:49.115Z"\n'[39m +
|
|
3585
|
+
[32m' }\n'[39m +
|
|
3586
|
+
[32m'}'[39m
|
|
3587
|
+
}
|
|
3588
|
+
[AccessControl] Raw response received: {
|
|
3589
|
+
"success": true,
|
|
3590
|
+
"data": {
|
|
3591
|
+
"accepted": 3,
|
|
3592
|
+
"rejected": 2,
|
|
3593
|
+
"outcomes": {
|
|
3594
|
+
"success": 1,
|
|
3595
|
+
"failed": 1,
|
|
3596
|
+
"blocked": 1,
|
|
3597
|
+
"error": 2
|
|
3598
|
+
},
|
|
3599
|
+
"errors": [
|
|
3600
|
+
{
|
|
3601
|
+
"proof_index": 0,
|
|
3602
|
+
"error": {
|
|
3603
|
+
"code": "validation_error",
|
|
3604
|
+
"message": "Invalid signature"
|
|
3605
|
+
}
|
|
3606
|
+
}
|
|
3607
|
+
]
|
|
3608
|
+
},
|
|
3609
|
+
"metadata": {
|
|
3610
|
+
"requestId": "test-id",
|
|
3611
|
+
"timestamp": "2025-11-24T23:52:49.115Z"
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3614
|
+
[AccessControl] 🔍 DATA OBJECT STRUCTURE (after deep clone): {
|
|
3615
|
+
correlationId: [32m'eb3e998b-0929-4bd6-b912-44bf3d74cecf'[39m,
|
|
3616
|
+
dataKeys: [ [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3617
|
+
hasAccepted: [33mtrue[39m,
|
|
3618
|
+
hasRejected: [33mtrue[39m,
|
|
3619
|
+
hasOutcomes: [33mtrue[39m,
|
|
3620
|
+
hasErrors: [33mtrue[39m,
|
|
3621
|
+
acceptedType: [32m'number'[39m,
|
|
3622
|
+
acceptedValue: [33m3[39m,
|
|
3623
|
+
rejectedType: [32m'number'[39m,
|
|
3624
|
+
rejectedValue: [33m2[39m,
|
|
3625
|
+
outcomesType: [32m'object'[39m,
|
|
3626
|
+
outcomesValue: { success: [33m1[39m, failed: [33m1[39m, blocked: [33m1[39m, error: [33m2[39m },
|
|
3627
|
+
errorsType: [32m'object'[39m,
|
|
3628
|
+
errorsIsArray: [33mtrue[39m,
|
|
3629
|
+
fullData: [32m'{\n'[39m +
|
|
3630
|
+
[32m' "accepted": 3,\n'[39m +
|
|
3631
|
+
[32m' "rejected": 2,\n'[39m +
|
|
3632
|
+
[32m' "outcomes": {\n'[39m +
|
|
3633
|
+
[32m' "success": 1,\n'[39m +
|
|
3634
|
+
[32m' "failed": 1,\n'[39m +
|
|
3635
|
+
[32m' "blocked": 1,\n'[39m +
|
|
3636
|
+
[32m' "error": 2\n'[39m +
|
|
3637
|
+
[32m' },\n'[39m +
|
|
3638
|
+
[32m' "errors": [\n'[39m +
|
|
3639
|
+
[32m' {\n'[39m +
|
|
3640
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
3641
|
+
[32m' "error": {\n'[39m +
|
|
3642
|
+
[32m' "code": "validation_error",\n'[39m +
|
|
3643
|
+
[32m' "message": "Invalid signature"\n'[39m +
|
|
3644
|
+
[32m' }\n'[39m +
|
|
3645
|
+
[32m' }\n'[39m +
|
|
3646
|
+
[32m' ]\n'[39m +
|
|
3647
|
+
[32m'}'[39m
|
|
3648
|
+
}
|
|
3649
|
+
[AccessControl] 🔍 VALIDATING DATA WITH SUCCESS: {
|
|
3650
|
+
correlationId: [32m'eb3e998b-0929-4bd6-b912-44bf3d74cecf'[39m,
|
|
3651
|
+
dataWithSuccessKeys: [ [32m'success'[39m, [32m'accepted'[39m, [32m'rejected'[39m, [32m'outcomes'[39m, [32m'errors'[39m ],
|
|
3652
|
+
hasSuccess: [33mtrue[39m,
|
|
3653
|
+
successValue: [33mtrue[39m,
|
|
3654
|
+
hasAccepted: [33mtrue[39m,
|
|
3655
|
+
acceptedValue: [33m3[39m,
|
|
3656
|
+
hasRejected: [33mtrue[39m,
|
|
3657
|
+
rejectedValue: [33m2[39m,
|
|
3658
|
+
hasOutcomes: [33mtrue[39m,
|
|
3659
|
+
outcomesValue: { success: [33m1[39m, failed: [33m1[39m, blocked: [33m1[39m, error: [33m2[39m },
|
|
3660
|
+
fullDataWithSuccess: [32m'{\n'[39m +
|
|
3661
|
+
[32m' "success": true,\n'[39m +
|
|
3662
|
+
[32m' "accepted": 3,\n'[39m +
|
|
3663
|
+
[32m' "rejected": 2,\n'[39m +
|
|
3664
|
+
[32m' "outcomes": {\n'[39m +
|
|
3665
|
+
[32m' "success": 1,\n'[39m +
|
|
3666
|
+
[32m' "failed": 1,\n'[39m +
|
|
3667
|
+
[32m' "blocked": 1,\n'[39m +
|
|
3668
|
+
[32m' "error": 2\n'[39m +
|
|
3669
|
+
[32m' },\n'[39m +
|
|
3670
|
+
[32m' "errors": [\n'[39m +
|
|
3671
|
+
[32m' {\n'[39m +
|
|
3672
|
+
[32m' "proof_index": 0,\n'[39m +
|
|
3673
|
+
[32m' "error": {\n'[39m +
|
|
3674
|
+
[32m' "code": "validation_error",\n'[39m +
|
|
3675
|
+
[32m' "message": "Invalid signature"\n'[39m +
|
|
3676
|
+
[32m' }\n'[39m +
|
|
3677
|
+
[32m' }\n'[39m +
|
|
3678
|
+
[32m' ]\n'[39m +
|
|
3679
|
+
[32m'}'[39m
|
|
3680
|
+
}
|
|
3681
|
+
|
|
3682
|
+
|
|
3683
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3684
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3685
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3686
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3687
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3688
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3689
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3690
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3691
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3692
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3693
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3694
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3695
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3696
|
+
|
|
3697
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3698
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3699
|
+
[2m Start at [22m17:52:48
|
|
3700
|
+
[2m Duration [22m827ms
|
|
3701
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/services/__tests__/storage.service.test.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 70[2mms[22m[39m
|
|
3702
|
+
[90mstdout[2m | src/__tests__/regression/phase2-regression.test.ts[2m > [22m[2mPhase 2 Regression Tests[2m > [22m[2mBackward Compatibility[2m > [22m[2mPhase 1 tools (no oauthProvider)[2m > [22m[2mshould work with Phase 1 tools that don't specify oauthProvider
|
|
3703
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3704
|
+
source: [32m'api'[39m,
|
|
3705
|
+
toolCount: [33m1[39m,
|
|
3706
|
+
protectedTools: [ [32m'phase1_tool'[39m ],
|
|
3707
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3708
|
+
projectId: [32m'none'[39m,
|
|
3709
|
+
cacheTtlMs: [33m300000[39m,
|
|
3710
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.118Z'[39m
|
|
3711
|
+
}
|
|
3712
|
+
|
|
3713
|
+
[90mstdout[2m | src/__tests__/regression/phase2-regression.test.ts[2m > [22m[2mPhase 2 Regression Tests[2m > [22m[2mBackward Compatibility[2m > [22m[2mOld API endpoint format[2m > [22m[2mshould still support old endpoint format (tools array)
|
|
3714
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3715
|
+
source: [32m'api'[39m,
|
|
3716
|
+
toolCount: [33m1[39m,
|
|
3717
|
+
protectedTools: [ [32m'old_tool'[39m ],
|
|
3718
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3719
|
+
projectId: [32m'none'[39m,
|
|
3720
|
+
cacheTtlMs: [33m300000[39m,
|
|
3721
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.127Z'[39m
|
|
3722
|
+
}
|
|
3723
|
+
|
|
3724
|
+
[90mstdout[2m | src/__tests__/regression/phase2-regression.test.ts[2m > [22m[2mPhase 2 Regression Tests[2m > [22m[2mBackward Compatibility[2m > [22m[2mOld API endpoint format[2m > [22m[2mshould still support old endpoint format (tools object)
|
|
3725
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3726
|
+
source: [32m'api'[39m,
|
|
3727
|
+
toolCount: [33m1[39m,
|
|
3728
|
+
protectedTools: [ [32m'old_tool'[39m ],
|
|
3729
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3730
|
+
projectId: [32m'none'[39m,
|
|
3731
|
+
cacheTtlMs: [33m300000[39m,
|
|
3732
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.127Z'[39m
|
|
3733
|
+
}
|
|
3734
|
+
|
|
3735
|
+
[90mstdout[2m | src/__tests__/regression/phase2-regression.test.ts[2m > [22m[2mPhase 2 Regression Tests[2m > [22m[2mBackward Compatibility[2m > [22m[2msnake_case field names[2m > [22m[2mshould still support snake_case field names
|
|
3736
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3737
|
+
source: [32m'api'[39m,
|
|
3738
|
+
toolCount: [33m1[39m,
|
|
3739
|
+
protectedTools: [ [32m'tool_with_snake_case'[39m ],
|
|
3740
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3741
|
+
projectId: [32m'test-project-123'[39m,
|
|
3742
|
+
cacheTtlMs: [33m300000[39m,
|
|
3743
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.127Z'[39m
|
|
3744
|
+
}
|
|
3745
|
+
|
|
3746
|
+
|
|
3747
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3748
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3749
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3750
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3751
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3752
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3753
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3754
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3755
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3756
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3757
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3758
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3759
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3760
|
+
|
|
3761
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3762
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3763
|
+
[2m Start at [22m17:52:48
|
|
3764
|
+
[2m Duration [22m827ms
|
|
3765
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/regression/phase2-regression.test.ts[2m > [22m[2mPhase 2 Regression Tests[2m > [22m[2mNo Regressions[2m > [22m[2mPhase 1 OAuth flow[2m > [22m[2mshould still work with Phase 1 OAuth flow (no oauthProvider)
|
|
3766
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
3767
|
+
|
|
3768
|
+
|
|
3769
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3770
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3771
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3772
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3773
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3774
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3775
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3776
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3777
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3778
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3779
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3780
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3781
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3782
|
+
|
|
3783
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3784
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3785
|
+
[2m Start at [22m17:52:48
|
|
3786
|
+
[2m Duration [22m827ms
|
|
3787
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/regression/phase2-regression.test.ts[2m > [22m[2mPhase 2 Regression Tests[2m > [22m[2mMixed Phase 1 and Phase 2 tools[2m > [22m[2mshould handle mix of Phase 1 and Phase 2 tools in same project
|
|
3788
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3789
|
+
source: [32m'api'[39m,
|
|
3790
|
+
toolCount: [33m2[39m,
|
|
3791
|
+
protectedTools: [ [32m'phase1_tool'[39m, [32m'phase2_tool'[39m ],
|
|
3792
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3793
|
+
projectId: [32m'test-project-123'[39m,
|
|
3794
|
+
cacheTtlMs: [33m300000[39m,
|
|
3795
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.128Z'[39m
|
|
3796
|
+
}
|
|
3797
|
+
|
|
3798
|
+
|
|
3799
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3800
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3801
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3802
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3803
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3804
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3805
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3806
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3807
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3808
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3809
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3810
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3811
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3812
|
+
|
|
3813
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3814
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3815
|
+
[2m Start at [22m17:52:48
|
|
3816
|
+
[2m Duration [22m827ms
|
|
3817
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/identity/user-did-manager.test.ts[2m > [22m[2mUserDidManager[2m > [22m[2merror handling[2m > [22m[2mshould handle storage.get errors gracefully
|
|
3818
|
+
[22m[39m[UserDidManager] Storage.get failed, generating new DID: Error: Storage error
|
|
3819
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/__tests__/identity/user-did-manager.test.ts:187:67
|
|
3820
|
+
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
|
|
3821
|
+
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
|
|
3822
|
+
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
|
|
3823
|
+
at new Promise (<anonymous>)
|
|
3824
|
+
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)
|
|
3825
|
+
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)
|
|
3826
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
3827
|
+
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)
|
|
3828
|
+
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)
|
|
3829
|
+
|
|
3830
|
+
[90mstderr[2m | src/__tests__/identity/user-did-manager.test.ts[2m > [22m[2mUserDidManager[2m > [22m[2merror handling[2m > [22m[2mshould handle storage.set errors gracefully
|
|
3831
|
+
[22m[39m[UserDidManager] Storage.set failed, continuing with cached DID: Error: Storage error
|
|
3832
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/__tests__/identity/user-did-manager.test.ts:196:67
|
|
3833
|
+
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
|
|
3834
|
+
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
|
|
3835
|
+
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
|
|
3836
|
+
at new Promise (<anonymous>)
|
|
3837
|
+
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)
|
|
3838
|
+
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)
|
|
3839
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
3840
|
+
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)
|
|
3841
|
+
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)
|
|
3842
|
+
|
|
3843
|
+
[90mstderr[2m | src/__tests__/identity/user-did-manager.test.ts[2m > [22m[2mUserDidManager[2m > [22m[2merror handling[2m > [22m[2mshould handle storage.delete errors gracefully
|
|
3844
|
+
[22m[39m[UserDidManager] Storage.delete failed, continuing: Error: Storage error
|
|
3845
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/__tests__/identity/user-did-manager.test.ts:206:70
|
|
3846
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
3847
|
+
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:20
|
|
3848
|
+
|
|
3849
|
+
|
|
3850
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3851
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3852
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3853
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3854
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3855
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3856
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3857
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3858
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3859
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3860
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3861
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3862
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3863
|
+
|
|
3864
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3865
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3866
|
+
[2m Start at [22m17:52:48
|
|
3867
|
+
[2m Duration [22m827ms
|
|
3868
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/services/__tests__/access-control.proof-response-validation.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 78[2mms[22m[39m
|
|
3869
|
+
[32m✓[39m src/__tests__/identity/user-did-manager.test.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
3870
|
+
[32m✓[39m src/__tests__/regression/phase2-regression.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
|
3871
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mTool protection enforcement flow[2m > [22m[2mshould allow unprotected tool calls
|
|
3872
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3873
|
+
source: [32m'api'[39m,
|
|
3874
|
+
toolCount: [33m1[39m,
|
|
3875
|
+
protectedTools: [],
|
|
3876
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3877
|
+
projectId: [32m'test-project'[39m,
|
|
3878
|
+
cacheTtlMs: [33m300000[39m,
|
|
3879
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.142Z'[39m
|
|
3880
|
+
}
|
|
3881
|
+
|
|
3882
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mTool protection enforcement flow[2m > [22m[2mshould intercept protected tool calls without delegation
|
|
3883
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3884
|
+
source: [32m'api'[39m,
|
|
3885
|
+
toolCount: [33m1[39m,
|
|
3886
|
+
protectedTools: [ [32m'checkout'[39m ],
|
|
3887
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3888
|
+
projectId: [32m'test-project'[39m,
|
|
3889
|
+
cacheTtlMs: [33m300000[39m,
|
|
3890
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.143Z'[39m
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3893
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mTool protection enforcement flow[2m > [22m[2mshould intercept protected tool calls without delegation
|
|
3894
|
+
[22m[39m[ToolProtectionService] Protection check {
|
|
3895
|
+
tool: [32m'checkout'[39m,
|
|
3896
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3897
|
+
found: [33mtrue[39m,
|
|
3898
|
+
isWildcard: [33mfalse[39m,
|
|
3899
|
+
requiresDelegation: [33mtrue[39m,
|
|
3900
|
+
availableTools: [ [32m'checkout'[39m ]
|
|
3901
|
+
}
|
|
3902
|
+
|
|
3903
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mAgentShield integration flow[2m > [22m[2mshould fetch tool protection config from AgentShield
|
|
3904
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3905
|
+
source: [32m'api'[39m,
|
|
3906
|
+
toolCount: [33m1[39m,
|
|
3907
|
+
protectedTools: [ [32m'protected_tool'[39m ],
|
|
3908
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3909
|
+
projectId: [32m'test-project'[39m,
|
|
3910
|
+
cacheTtlMs: [33m300000[39m,
|
|
3911
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.143Z'[39m
|
|
3912
|
+
}
|
|
3913
|
+
|
|
3914
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mAgentShield integration flow[2m > [22m[2mshould cache tool protection config
|
|
3915
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3916
|
+
source: [32m'api'[39m,
|
|
3917
|
+
toolCount: [33m1[39m,
|
|
3918
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
3919
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3920
|
+
projectId: [32m'test-project'[39m,
|
|
3921
|
+
cacheTtlMs: [33m300000[39m,
|
|
3922
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.144Z'[39m
|
|
3923
|
+
}
|
|
3924
|
+
|
|
3925
|
+
|
|
3926
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3927
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3928
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3929
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3930
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3931
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3932
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3933
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3934
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3935
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3936
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3937
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3938
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3939
|
+
|
|
3940
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3941
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3942
|
+
[2m Start at [22m17:52:48
|
|
3943
|
+
[2m Duration [22m827ms
|
|
3944
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mAgentShield integration flow[2m > [22m[2mshould use fallback config when API fails
|
|
3945
|
+
[22m[39m[ToolProtectionService] API fetch failed, using fallback config { agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m, error: [32m'Network error'[39m }
|
|
3946
|
+
|
|
3947
|
+
[90mstderr[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mError handling in full flow[2m > [22m[2mshould handle tool protection service errors gracefully
|
|
3948
|
+
[22m[39m[ToolProtectionService] API fetch failed, no fallback, failing closed (deny-all) {
|
|
3949
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3950
|
+
error: [32m'Network error'[39m,
|
|
3951
|
+
cacheKey: [32m'config:tool-protections:test-project'[39m
|
|
3952
|
+
}
|
|
3953
|
+
|
|
3954
|
+
[90mstderr[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mError handling in full flow[2m > [22m[2mshould handle network timeouts
|
|
3955
|
+
[22m[39m[ToolProtectionService] API fetch failed, using fallback config { agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m, error: [32m'Network timeout'[39m }
|
|
3956
|
+
|
|
3957
|
+
|
|
3958
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
3959
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
3960
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
3961
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
3962
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
3963
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
3964
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
3965
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
3966
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
3967
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
3968
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
3969
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
3970
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
3971
|
+
|
|
3972
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
3973
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
3974
|
+
[2m Start at [22m17:52:48
|
|
3975
|
+
[2m Duration [22m827ms
|
|
3976
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mCache integration in full flow[2m > [22m[2mshould share cache across multiple service instances
|
|
3977
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3978
|
+
source: [32m'api'[39m,
|
|
3979
|
+
toolCount: [33m1[39m,
|
|
3980
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
3981
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3982
|
+
projectId: [32m'test-project'[39m,
|
|
3983
|
+
cacheTtlMs: [33m300000[39m,
|
|
3984
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.146Z'[39m
|
|
3985
|
+
}
|
|
3986
|
+
|
|
3987
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mCache integration in full flow[2m > [22m[2mshould clear cache when needed
|
|
3988
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
3989
|
+
source: [32m'api'[39m,
|
|
3990
|
+
toolCount: [33m1[39m,
|
|
3991
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
3992
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
3993
|
+
projectId: [32m'test-project'[39m,
|
|
3994
|
+
cacheTtlMs: [33m300000[39m,
|
|
3995
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.146Z'[39m
|
|
3996
|
+
}
|
|
3997
|
+
|
|
3998
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mCache integration in full flow[2m > [22m[2mshould clear cache when needed
|
|
3999
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4000
|
+
source: [32m'api'[39m,
|
|
4001
|
+
toolCount: [33m1[39m,
|
|
4002
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4003
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4004
|
+
projectId: [32m'test-project'[39m,
|
|
4005
|
+
cacheTtlMs: [33m300000[39m,
|
|
4006
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.146Z'[39m
|
|
4007
|
+
}
|
|
4008
|
+
|
|
4009
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mReal-world e-commerce scenario[2m > [22m[2mshould handle complete e-commerce flow with tool protection
|
|
4010
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4011
|
+
source: [32m'api'[39m,
|
|
4012
|
+
toolCount: [33m3[39m,
|
|
4013
|
+
protectedTools: [ [32m'add_to_cart'[39m, [32m'checkout'[39m ],
|
|
4014
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4015
|
+
projectId: [32m'test-project'[39m,
|
|
4016
|
+
cacheTtlMs: [33m300000[39m,
|
|
4017
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.146Z'[39m
|
|
4018
|
+
}
|
|
4019
|
+
|
|
4020
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mReal-world e-commerce scenario[2m > [22m[2mshould handle complete e-commerce flow with tool protection
|
|
4021
|
+
[22m[39m[ToolProtectionService] Protection check {
|
|
4022
|
+
tool: [32m'add_to_cart'[39m,
|
|
4023
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4024
|
+
found: [33mtrue[39m,
|
|
4025
|
+
isWildcard: [33mfalse[39m,
|
|
4026
|
+
requiresDelegation: [33mtrue[39m,
|
|
4027
|
+
availableTools: [ [32m'search_products'[39m, [32m'add_to_cart'[39m, [32m'checkout'[39m ]
|
|
4028
|
+
}
|
|
4029
|
+
|
|
4030
|
+
[90mstdout[2m | src/__tests__/integration/full-flow.test.ts[2m > [22m[2mFull Flow Integration[2m > [22m[2mConcurrent operations[2m > [22m[2mshould handle concurrent cache operations
|
|
4031
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4032
|
+
source: [32m'api'[39m,
|
|
4033
|
+
toolCount: [33m1[39m,
|
|
4034
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4035
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4036
|
+
projectId: [32m'test-project'[39m,
|
|
4037
|
+
cacheTtlMs: [33m300000[39m,
|
|
4038
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.147Z'[39m
|
|
4039
|
+
}
|
|
4040
|
+
[ToolProtectionService] Config loaded from API {
|
|
4041
|
+
source: [32m'api'[39m,
|
|
4042
|
+
toolCount: [33m1[39m,
|
|
4043
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4044
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4045
|
+
projectId: [32m'test-project'[39m,
|
|
4046
|
+
cacheTtlMs: [33m300000[39m,
|
|
4047
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.147Z'[39m
|
|
4048
|
+
}
|
|
4049
|
+
[ToolProtectionService] Config loaded from API {
|
|
4050
|
+
source: [32m'api'[39m,
|
|
4051
|
+
toolCount: [33m1[39m,
|
|
4052
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4053
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4054
|
+
projectId: [32m'test-project'[39m,
|
|
4055
|
+
cacheTtlMs: [33m300000[39m,
|
|
4056
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.147Z'[39m
|
|
4057
|
+
}
|
|
4058
|
+
|
|
4059
|
+
[32m✓[39m src/__tests__/integration/full-flow.test.ts [2m([22m[2m21 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
|
4060
|
+
[32m✓[39m src/delegation/__tests__/cascading-revocation.test.ts [2m([22m[2m23 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
|
4061
|
+
|
|
4062
|
+
[1m[33m ❯ [39m[22msrc/__tests__/identity/user-did-manager.test.ts[2m 17/17[22m
|
|
4063
|
+
[1m[33m ❯ [39m[22msrc/__tests__/integration/full-flow.test.ts[2m 21/21[22m
|
|
4064
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/memory.test.ts[2m 34/34[22m
|
|
4065
|
+
[1m[33m ❯ [39m[22msrc/__tests__/regression/phase2-regression.test.ts[2m 12/12[22m
|
|
4066
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m [queued][22m
|
|
4067
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4068
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m [queued][22m
|
|
4069
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m [queued][22m
|
|
4070
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/cascading-revocation.test.ts[2m 23/23[22m
|
|
4071
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 0/28[22m
|
|
4072
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/access-control.proof-response-validation.test.ts[2m 12/12[22m
|
|
4073
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/proof-verifier.test.ts[2m 21/21[22m
|
|
4074
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/storage.service.test.ts[2m 17/17[22m
|
|
4075
|
+
|
|
4076
|
+
[2m Test Files [22m[1m[32m24 passed[39m[22m[90m (44)[39m
|
|
4077
|
+
[2m Tests [22m[1m[32m629 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (663)[39m
|
|
4078
|
+
[2m Start at [22m17:52:48
|
|
4079
|
+
[2m Duration [22m827ms
|
|
4080
|
+
[?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[1A[K[1A[K[1A[K[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mNew endpoint format (toolProtections object)[2m > [22m[2mshould parse oauthProvider from camelCase field
|
|
4081
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4082
|
+
source: [32m'api'[39m,
|
|
4083
|
+
toolCount: [33m2[39m,
|
|
4084
|
+
protectedTools: [ [32m'read_repos'[39m, [32m'send_email'[39m ],
|
|
4085
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4086
|
+
projectId: [32m'test-project-123'[39m,
|
|
4087
|
+
cacheTtlMs: [33m300000[39m,
|
|
4088
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.319Z'[39m
|
|
4089
|
+
}
|
|
4090
|
+
|
|
4091
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mNew endpoint format (toolProtections object)[2m > [22m[2mshould parse oauthProvider from snake_case field
|
|
4092
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4093
|
+
source: [32m'api'[39m,
|
|
4094
|
+
toolCount: [33m1[39m,
|
|
4095
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4096
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4097
|
+
projectId: [32m'test-project-123'[39m,
|
|
4098
|
+
cacheTtlMs: [33m300000[39m,
|
|
4099
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.323Z'[39m
|
|
4100
|
+
}
|
|
4101
|
+
|
|
4102
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mNew endpoint format (toolProtections object)[2m > [22m[2mshould prefer camelCase over snake_case when both present
|
|
4103
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4104
|
+
source: [32m'api'[39m,
|
|
4105
|
+
toolCount: [33m1[39m,
|
|
4106
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4107
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4108
|
+
projectId: [32m'test-project-123'[39m,
|
|
4109
|
+
cacheTtlMs: [33m300000[39m,
|
|
4110
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.323Z'[39m
|
|
4111
|
+
}
|
|
4112
|
+
|
|
4113
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mNew endpoint format (toolProtections object)[2m > [22m[2mshould handle missing oauthProvider field (backward compatible)
|
|
4114
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4115
|
+
source: [32m'api'[39m,
|
|
4116
|
+
toolCount: [33m1[39m,
|
|
4117
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4118
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4119
|
+
projectId: [32m'test-project-123'[39m,
|
|
4120
|
+
cacheTtlMs: [33m300000[39m,
|
|
4121
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.324Z'[39m
|
|
4122
|
+
}
|
|
4123
|
+
|
|
4124
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mOld endpoint format (tools array)[2m > [22m[2mshould parse oauthProvider from array format with camelCase
|
|
4125
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4126
|
+
source: [32m'api'[39m,
|
|
4127
|
+
toolCount: [33m2[39m,
|
|
4128
|
+
protectedTools: [ [32m'read_repos'[39m, [32m'send_email'[39m ],
|
|
4129
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4130
|
+
projectId: [32m'none'[39m,
|
|
4131
|
+
cacheTtlMs: [33m300000[39m,
|
|
4132
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.325Z'[39m
|
|
4133
|
+
}
|
|
4134
|
+
|
|
4135
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mOld endpoint format (tools array)[2m > [22m[2mshould parse oauthProvider from array format with snake_case
|
|
4136
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4137
|
+
source: [32m'api'[39m,
|
|
4138
|
+
toolCount: [33m1[39m,
|
|
4139
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4140
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4141
|
+
projectId: [32m'none'[39m,
|
|
4142
|
+
cacheTtlMs: [33m300000[39m,
|
|
4143
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.325Z'[39m
|
|
4144
|
+
}
|
|
4145
|
+
|
|
4146
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mOld endpoint format (tools array)[2m > [22m[2mshould prefer camelCase over snake_case in array format
|
|
4147
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4148
|
+
source: [32m'api'[39m,
|
|
4149
|
+
toolCount: [33m1[39m,
|
|
4150
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4151
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4152
|
+
projectId: [32m'none'[39m,
|
|
4153
|
+
cacheTtlMs: [33m300000[39m,
|
|
4154
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.325Z'[39m
|
|
4155
|
+
}
|
|
4156
|
+
|
|
4157
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mOld endpoint format (tools object)[2m > [22m[2mshould parse oauthProvider from object format with camelCase
|
|
4158
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4159
|
+
source: [32m'api'[39m,
|
|
4160
|
+
toolCount: [33m2[39m,
|
|
4161
|
+
protectedTools: [ [32m'read_repos'[39m, [32m'send_email'[39m ],
|
|
4162
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4163
|
+
projectId: [32m'none'[39m,
|
|
4164
|
+
cacheTtlMs: [33m300000[39m,
|
|
4165
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.325Z'[39m
|
|
4166
|
+
}
|
|
4167
|
+
|
|
4168
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mOld endpoint format (tools object)[2m > [22m[2mshould parse oauthProvider from object format with snake_case
|
|
4169
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4170
|
+
source: [32m'api'[39m,
|
|
4171
|
+
toolCount: [33m1[39m,
|
|
4172
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4173
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4174
|
+
projectId: [32m'none'[39m,
|
|
4175
|
+
cacheTtlMs: [33m300000[39m,
|
|
4176
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.325Z'[39m
|
|
4177
|
+
}
|
|
4178
|
+
|
|
4179
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mOld endpoint format (tools object)[2m > [22m[2mshould prefer camelCase over snake_case in object format
|
|
4180
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4181
|
+
source: [32m'api'[39m,
|
|
4182
|
+
toolCount: [33m1[39m,
|
|
4183
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4184
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4185
|
+
projectId: [32m'none'[39m,
|
|
4186
|
+
cacheTtlMs: [33m300000[39m,
|
|
4187
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.326Z'[39m
|
|
4188
|
+
}
|
|
4189
|
+
|
|
4190
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2mCaching[2m > [22m[2mshould cache oauthProvider field correctly
|
|
4191
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4192
|
+
source: [32m'api'[39m,
|
|
4193
|
+
toolCount: [33m1[39m,
|
|
4194
|
+
protectedTools: [ [32m'read_repos'[39m ],
|
|
4195
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4196
|
+
projectId: [32m'test-project-123'[39m,
|
|
4197
|
+
cacheTtlMs: [33m300000[39m,
|
|
4198
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.326Z'[39m
|
|
4199
|
+
}
|
|
4200
|
+
|
|
4201
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2moauthProvider field inclusion[2m > [22m[2mshould include oauthProvider in returned ToolProtection objects when present
|
|
4202
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4203
|
+
source: [32m'api'[39m,
|
|
4204
|
+
toolCount: [33m2[39m,
|
|
4205
|
+
protectedTools: [ [32m'tool_with_provider'[39m, [32m'tool_without_provider'[39m ],
|
|
4206
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4207
|
+
projectId: [32m'test-project-123'[39m,
|
|
4208
|
+
cacheTtlMs: [33m300000[39m,
|
|
4209
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.326Z'[39m
|
|
4210
|
+
}
|
|
4211
|
+
|
|
4212
|
+
[90mstdout[2m | src/__tests__/services/tool-protection-oauth-provider.test.ts[2m > [22m[2mToolProtectionService - oauthProvider Parsing[2m > [22m[2moauthProvider field inclusion[2m > [22m[2mshould handle empty string oauthProvider gracefully
|
|
4213
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4214
|
+
source: [32m'api'[39m,
|
|
4215
|
+
toolCount: [33m1[39m,
|
|
4216
|
+
protectedTools: [ [32m'tool_with_empty_provider'[39m ],
|
|
4217
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4218
|
+
projectId: [32m'test-project-123'[39m,
|
|
4219
|
+
cacheTtlMs: [33m300000[39m,
|
|
4220
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.326Z'[39m
|
|
4221
|
+
}
|
|
4222
|
+
|
|
4223
|
+
[32m✓[39m src/delegation/__tests__/delegation-graph.test.ts [2m([22m[2m28 tests[22m[2m)[22m[32m 17[2mms[22m[39m
|
|
4224
|
+
|
|
4225
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/base.test.ts[2m 14/14[22m
|
|
4226
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m 4/4[22m
|
|
4227
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4228
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m 14/14[22m
|
|
4229
|
+
[1m[33m ❯ [39m[22msrc/compliance/__tests__/schema-verifier.test.ts[2m 1/30[22m
|
|
4230
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m 9/9[22m
|
|
4231
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/bitstring.test.ts[2m 0/30[22m
|
|
4232
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 28/28[22m
|
|
4233
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-statuslist-storage.test.ts[2m [queued][22m
|
|
4234
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/batch-delegation.service.test.ts[2m 0/11[22m
|
|
4235
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/oauth-provider-registry.test.ts[2m [queued][22m
|
|
4236
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolution.integration.test.ts[2m 0/6[22m
|
|
4237
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4238
|
+
|
|
4239
|
+
[2m Test Files [22m[1m[32m30 passed[39m[22m[90m (44)[39m
|
|
4240
|
+
[2m Tests [22m[1m[32m707 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (789)[39m
|
|
4241
|
+
[2m Start at [22m17:52:48
|
|
4242
|
+
[2m Duration [22m1.06s
|
|
4243
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/config/__tests__/remote-config.spec.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould return null if API request fails
|
|
4244
|
+
[22m[39m[RemoteConfig] API returned 404: Not Found
|
|
4245
|
+
|
|
4246
|
+
[90mstderr[2m | src/config/__tests__/remote-config.spec.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould return null if API throws error
|
|
4247
|
+
[22m[39m[RemoteConfig] Failed to fetch config: Error: Network error
|
|
4248
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/config/__tests__/remote-config.spec.ts:170:35
|
|
4249
|
+
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
|
|
4250
|
+
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
|
|
4251
|
+
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
|
|
4252
|
+
at new Promise (<anonymous>)
|
|
4253
|
+
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)
|
|
4254
|
+
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)
|
|
4255
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
4256
|
+
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)
|
|
4257
|
+
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)
|
|
4258
|
+
|
|
4259
|
+
[90mstderr[2m | src/config/__tests__/remote-config.spec.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould return null if neither projectId nor agentDid provided
|
|
4260
|
+
[22m[39m[RemoteConfig] Neither projectId nor agentDid provided
|
|
4261
|
+
|
|
4262
|
+
[90mstderr[2m | src/config/__tests__/remote-config.spec.ts[2m > [22m[2mfetchRemoteConfig[2m > [22m[2mError handling[2m > [22m[2mshould handle cache read errors gracefully
|
|
4263
|
+
[22m[39m[RemoteConfig] Cache read failed: Error: Cache error
|
|
4264
|
+
at [90m/Users/dylanhobbs/Documents/@kya-os/xmcp-i/packages/mcp-i-core/[39msrc/config/__tests__/remote-config.spec.ts:198:50
|
|
4265
|
+
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
|
|
4266
|
+
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
|
|
4267
|
+
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
|
|
4268
|
+
at new Promise (<anonymous>)
|
|
4269
|
+
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)
|
|
4270
|
+
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)
|
|
4271
|
+
[90m at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
|
|
4272
|
+
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)
|
|
4273
|
+
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)
|
|
4274
|
+
|
|
4275
|
+
|
|
4276
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/base.test.ts[2m 14/14[22m
|
|
4277
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m 4/4[22m
|
|
4278
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4279
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m 14/14[22m
|
|
4280
|
+
[1m[33m ❯ [39m[22msrc/compliance/__tests__/schema-verifier.test.ts[2m 1/30[22m
|
|
4281
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m 9/9[22m
|
|
4282
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/bitstring.test.ts[2m 0/30[22m
|
|
4283
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 28/28[22m
|
|
4284
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-statuslist-storage.test.ts[2m [queued][22m
|
|
4285
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/batch-delegation.service.test.ts[2m 0/11[22m
|
|
4286
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/oauth-provider-registry.test.ts[2m [queued][22m
|
|
4287
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolution.integration.test.ts[2m 0/6[22m
|
|
4288
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4289
|
+
|
|
4290
|
+
[2m Test Files [22m[1m[32m30 passed[39m[22m[90m (44)[39m
|
|
4291
|
+
[2m Tests [22m[1m[32m707 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (789)[39m
|
|
4292
|
+
[2m Start at [22m17:52:48
|
|
4293
|
+
[2m Duration [22m1.06s
|
|
4294
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/__tests__/services/tool-protection-oauth-provider.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 9[2mms[22m[39m
|
|
4295
|
+
[32m✓[39m src/config/__tests__/remote-config.spec.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
4296
|
+
[32m✓[39m src/__tests__/providers/base.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
4297
|
+
[32m✓[39m src/__tests__/runtime/delegation-flow.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
4298
|
+
[90mstdout[2m | src/services/__tests__/provider-resolver.test.ts[2m > [22m[2mProviderResolver[2m > [22m[2mresolveProvider - Priority 2: Scope inference[2m > [22m[2mshould infer provider from github scope prefix
|
|
4299
|
+
[22m[39m[ProviderResolver] Inferred provider "github" from scopes
|
|
4300
|
+
|
|
4301
|
+
[90mstdout[2m | src/services/__tests__/provider-resolver.test.ts[2m > [22m[2mProviderResolver[2m > [22m[2mresolveProvider - Priority 2: Scope inference[2m > [22m[2mshould infer provider from gmail scope prefix (maps to google)
|
|
4302
|
+
[22m[39m[ProviderResolver] Inferred provider "google" from scopes
|
|
4303
|
+
|
|
4304
|
+
|
|
4305
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/base.test.ts[2m 14/14[22m
|
|
4306
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m 4/4[22m
|
|
4307
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4308
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m 14/14[22m
|
|
4309
|
+
[1m[33m ❯ [39m[22msrc/compliance/__tests__/schema-verifier.test.ts[2m 1/30[22m
|
|
4310
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m 9/9[22m
|
|
4311
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/bitstring.test.ts[2m 0/30[22m
|
|
4312
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 28/28[22m
|
|
4313
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-statuslist-storage.test.ts[2m [queued][22m
|
|
4314
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/batch-delegation.service.test.ts[2m 0/11[22m
|
|
4315
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/oauth-provider-registry.test.ts[2m [queued][22m
|
|
4316
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolution.integration.test.ts[2m 0/6[22m
|
|
4317
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4318
|
+
|
|
4319
|
+
[2m Test Files [22m[1m[32m30 passed[39m[22m[90m (44)[39m
|
|
4320
|
+
[2m Tests [22m[1m[32m707 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (789)[39m
|
|
4321
|
+
[2m Start at [22m17:52:48
|
|
4322
|
+
[2m Duration [22m1.06s
|
|
4323
|
+
[?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[1A[K[1A[K[1A[K[90mstderr[2m | src/services/__tests__/provider-resolver.test.ts[2m > [22m[2mProviderResolver[2m > [22m[2mresolveProvider - Priority 2: Scope inference[2m > [22m[2mshould return null for ambiguous scopes
|
|
4324
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
4325
|
+
|
|
4326
|
+
|
|
4327
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/base.test.ts[2m 14/14[22m
|
|
4328
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m 4/4[22m
|
|
4329
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4330
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m 14/14[22m
|
|
4331
|
+
[1m[33m ❯ [39m[22msrc/compliance/__tests__/schema-verifier.test.ts[2m 1/30[22m
|
|
4332
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m 9/9[22m
|
|
4333
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/bitstring.test.ts[2m 0/30[22m
|
|
4334
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 28/28[22m
|
|
4335
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-statuslist-storage.test.ts[2m [queued][22m
|
|
4336
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/batch-delegation.service.test.ts[2m 0/11[22m
|
|
4337
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/oauth-provider-registry.test.ts[2m [queued][22m
|
|
4338
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolution.integration.test.ts[2m 0/6[22m
|
|
4339
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4340
|
+
|
|
4341
|
+
[2m Test Files [22m[1m[32m30 passed[39m[22m[90m (44)[39m
|
|
4342
|
+
[2m Tests [22m[1m[32m707 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (789)[39m
|
|
4343
|
+
[2m Start at [22m17:52:48
|
|
4344
|
+
[2m Duration [22m1.06s
|
|
4345
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/services/__tests__/provider-resolver.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
4346
|
+
|
|
4347
|
+
[1m[33m ❯ [39m[22msrc/__tests__/providers/base.test.ts[2m 14/14[22m
|
|
4348
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/delegation-flow.test.ts[2m 4/4[22m
|
|
4349
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4350
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/tool-protection-oauth-provider.test.ts[2m 14/14[22m
|
|
4351
|
+
[1m[33m ❯ [39m[22msrc/compliance/__tests__/schema-verifier.test.ts[2m 1/30[22m
|
|
4352
|
+
[1m[33m ❯ [39m[22msrc/config/__tests__/remote-config.spec.ts[2m 9/9[22m
|
|
4353
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/bitstring.test.ts[2m 0/30[22m
|
|
4354
|
+
[1m[33m ❯ [39m[22msrc/delegation/__tests__/delegation-graph.test.ts[2m 28/28[22m
|
|
4355
|
+
[1m[33m ❯ [39m[22msrc/delegation/storage/__tests__/memory-statuslist-storage.test.ts[2m [queued][22m
|
|
4356
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/batch-delegation.service.test.ts[2m 0/11[22m
|
|
4357
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/oauth-provider-registry.test.ts[2m [queued][22m
|
|
4358
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolution.integration.test.ts[2m 0/6[22m
|
|
4359
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4360
|
+
|
|
4361
|
+
[2m Test Files [22m[1m[32m30 passed[39m[22m[90m (44)[39m
|
|
4362
|
+
[2m Tests [22m[1m[32m707 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (789)[39m
|
|
4363
|
+
[2m Start at [22m17:52:48
|
|
4364
|
+
[2m Duration [22m1.06s
|
|
4365
|
+
[?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[1A[K[1A[K[1A[K [32m✓[39m src/compliance/__tests__/schema-verifier.test.ts [2m([22m[2m30 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
4366
|
+
|
|
4367
|
+
|
|
4368
|
+
|
|
4369
|
+
|
|
4370
|
+
|
|
4371
|
+
|
|
4372
|
+
|
|
4373
|
+
[1m[33m ❯ [39m[22msrc/__tests__/config/provider-runtime-config.test.ts[2m 1/9[22m
|
|
4374
|
+
[1m[33m ❯ [39m[22msrc/__tests__/index.test.ts[2m [queued][22m
|
|
4375
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/audit-logger.test.ts[2m [queued][22m
|
|
4376
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4377
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4378
|
+
[1m[33m ❯ [39m[22msrc/utils/__tests__/did-helpers.test.ts[2m [queued][22m
|
|
4379
|
+
|
|
4380
|
+
[2m Test Files [22m[1m[32m37 passed[39m[22m[90m (44)[39m
|
|
4381
|
+
[2m Tests [22m[1m[32m835 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (849)[39m
|
|
4382
|
+
[2m Start at [22m17:52:48
|
|
4383
|
+
[2m Duration [22m1.16s
|
|
4384
|
+
[?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[1A[K[1A[K[90mstderr[2m | src/services/__tests__/provider-resolution.integration.test.ts[2m > [22m[2mProvider Resolution Integration[2m > [22m[2mBackward compatibility[2m > [22m[2mshould work with Phase 1 tools (no oauthProvider field)
|
|
4385
|
+
[22m[39m[ProviderResolver] Tool does not specify oauthProvider. Using first configured provider "github" as fallback. This is deprecated - configure oauthProvider in AgentShield dashboard for Phase 2+.
|
|
4386
|
+
|
|
4387
|
+
|
|
4388
|
+
|
|
4389
|
+
|
|
4390
|
+
|
|
4391
|
+
|
|
4392
|
+
[1m[33m ❯ [39m[22msrc/__tests__/config/provider-runtime-config.test.ts[2m 1/9[22m
|
|
4393
|
+
[1m[33m ❯ [39m[22msrc/__tests__/index.test.ts[2m [queued][22m
|
|
4394
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/audit-logger.test.ts[2m [queued][22m
|
|
4395
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4396
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4397
|
+
[1m[33m ❯ [39m[22msrc/utils/__tests__/did-helpers.test.ts[2m [queued][22m
|
|
4398
|
+
|
|
4399
|
+
[2m Test Files [22m[1m[32m37 passed[39m[22m[90m (44)[39m
|
|
4400
|
+
[2m Tests [22m[1m[32m835 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (849)[39m
|
|
4401
|
+
[2m Start at [22m17:52:48
|
|
4402
|
+
[2m Duration [22m1.16s
|
|
4403
|
+
[?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 [32m✓[39m src/delegation/__tests__/bitstring.test.ts [2m([22m[2m30 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
|
4404
|
+
[32m✓[39m src/services/__tests__/batch-delegation.service.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
4405
|
+
[32m✓[39m src/services/__tests__/provider-resolution.integration.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 11[2mms[22m[39m
|
|
4406
|
+
[32m✓[39m src/services/__tests__/oauth-provider-registry.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
4407
|
+
[32m✓[39m src/delegation/storage/__tests__/memory-statuslist-storage.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
4408
|
+
[32m✓[39m src/delegation/__tests__/utils.test.ts [2m([22m[2m28 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
4409
|
+
|
|
4410
|
+
|
|
4411
|
+
|
|
4412
|
+
[1m[33m ❯ [39m[22msrc/__tests__/config/provider-runtime-config.test.ts[2m 1/9[22m
|
|
4413
|
+
[1m[33m ❯ [39m[22msrc/__tests__/index.test.ts[2m [queued][22m
|
|
4414
|
+
[1m[33m ❯ [39m[22msrc/__tests__/runtime/audit-logger.test.ts[2m [queued][22m
|
|
4415
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4416
|
+
[1m[33m ❯ [39m[22msrc/services/__tests__/provider-resolver.test.ts[2m 8/8[22m
|
|
4417
|
+
[1m[33m ❯ [39m[22msrc/utils/__tests__/did-helpers.test.ts[2m [queued][22m
|
|
4418
|
+
|
|
4419
|
+
[2m Test Files [22m[1m[32m37 passed[39m[22m[90m (44)[39m
|
|
4420
|
+
[2m Tests [22m[1m[32m835 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (849)[39m
|
|
4421
|
+
[2m Start at [22m17:52:48
|
|
4422
|
+
[2m Duration [22m1.16s
|
|
4423
|
+
[?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 [32m✓[39m src/__tests__/config/provider-runtime-config.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
4424
|
+
[32m✓[39m src/__tests__/runtime/audit-logger.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
4425
|
+
[32m✓[39m src/utils/__tests__/did-helpers.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
4426
|
+
[32m✓[39m src/delegation/__tests__/audience-validator.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
4427
|
+
|
|
4428
|
+
|
|
4429
|
+
|
|
4430
|
+
|
|
4431
|
+
[1m[33m ❯ [39m[22msrc/__tests__/delegation-e2e.test.ts[2m [queued][22m
|
|
4432
|
+
[1m[33m ❯ [39m[22msrc/__tests__/index.test.ts[2m 0/4[22m
|
|
4433
|
+
[1m[33m ❯ [39m[22msrc/__tests__/services/agentshield-integration.test.ts[2m 26/30[22m
|
|
4434
|
+
|
|
4435
|
+
[2m Test Files [22m[1m[32m41 passed[39m[22m[90m (44)[39m
|
|
4436
|
+
[2m Tests [22m[1m[32m868 passed[39m[22m[2m | [22m[33m2 skipped[39m[90m (878)[39m
|
|
4437
|
+
[2m Start at [22m17:52:48
|
|
4438
|
+
[2m Duration [22m1.36s
|
|
4439
|
+
[?2026l[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 [2m[90m↓[39m[22m src/__tests__/delegation-e2e.test.ts [2m([22m[2m14 tests[22m[2m | [22m[33m14 skipped[39m[2m)[22m
|
|
4440
|
+
[32m✓[39m src/__tests__/index.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
4441
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mCaching Integration[2m > [22m[2mshould respect cache TTL
|
|
4442
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4443
|
+
source: [32m'api'[39m,
|
|
4444
|
+
toolCount: [33m0[39m,
|
|
4445
|
+
protectedTools: [],
|
|
4446
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4447
|
+
projectId: [32m'test-project-123'[39m,
|
|
4448
|
+
cacheTtlMs: [33m1000[39m,
|
|
4449
|
+
cacheExpiresAt: [32m'2025-11-24T23:52:50.747Z'[39m
|
|
4450
|
+
}
|
|
4451
|
+
|
|
4452
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mReal-world Scenarios[2m > [22m[2mshould handle typical e-commerce tool protection config
|
|
4453
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4454
|
+
source: [32m'api'[39m,
|
|
4455
|
+
toolCount: [33m4[39m,
|
|
4456
|
+
protectedTools: [ [32m'add_to_cart'[39m, [32m'checkout'[39m ],
|
|
4457
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4458
|
+
projectId: [32m'test-project-123'[39m,
|
|
4459
|
+
cacheTtlMs: [33m300000[39m,
|
|
4460
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.748Z'[39m
|
|
4461
|
+
}
|
|
4462
|
+
|
|
4463
|
+
[90mstderr[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mReal-world Scenarios[2m > [22m[2mshould handle API rate limiting gracefully
|
|
4464
|
+
[22m[39m[ToolProtectionService] API fetch failed, using fallback config {
|
|
4465
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4466
|
+
error: [32m'Failed to fetch bouncer config: 429 Too Many Requests - Rate limit exceeded'[39m
|
|
4467
|
+
}
|
|
4468
|
+
|
|
4469
|
+
[90mstdout[2m | src/__tests__/services/agentshield-integration.test.ts[2m > [22m[2mAgentShield Integration[2m > [22m[2mReal-world Scenarios[2m > [22m[2mshould handle concurrent requests
|
|
4470
|
+
[22m[39m[ToolProtectionService] Config loaded from API {
|
|
4471
|
+
source: [32m'api'[39m,
|
|
4472
|
+
toolCount: [33m1[39m,
|
|
4473
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4474
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4475
|
+
projectId: [32m'test-project-123'[39m,
|
|
4476
|
+
cacheTtlMs: [33m300000[39m,
|
|
4477
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.748Z'[39m
|
|
4478
|
+
}
|
|
4479
|
+
[ToolProtectionService] Config loaded from API {
|
|
4480
|
+
source: [32m'api'[39m,
|
|
4481
|
+
toolCount: [33m1[39m,
|
|
4482
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4483
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4484
|
+
projectId: [32m'test-project-123'[39m,
|
|
4485
|
+
cacheTtlMs: [33m300000[39m,
|
|
4486
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.748Z'[39m
|
|
4487
|
+
}
|
|
4488
|
+
[ToolProtectionService] Config loaded from API {
|
|
4489
|
+
source: [32m'api'[39m,
|
|
4490
|
+
toolCount: [33m1[39m,
|
|
4491
|
+
protectedTools: [ [32m'tool1'[39m ],
|
|
4492
|
+
agentDid: [32m'did:key:z6MkhaXgBZDv...'[39m,
|
|
4493
|
+
projectId: [32m'test-project-123'[39m,
|
|
4494
|
+
cacheTtlMs: [33m300000[39m,
|
|
4495
|
+
cacheExpiresAt: [32m'2025-11-24T23:57:49.748Z'[39m
|
|
4496
|
+
}
|
|
4497
|
+
|
|
4498
|
+
[32m✓[39m src/__tests__/services/agentshield-integration.test.ts [2m([22m[2m30 tests[22m[2m)[22m[33m 1111[2mms[22m[39m
|
|
4499
|
+
[33m[2m✓[22m[39m should respect cache TTL [33m 1101[2mms[22m[39m
|
|
4500
|
+
|
|
4501
|
+
[2m Test Files [22m [1m[32m43 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (44)[39m
|
|
4502
|
+
[2m Tests [22m [1m[32m876 passed[39m[22m[2m | [22m[33m16 skipped[39m[90m (892)[39m
|
|
4503
|
+
[2m Start at [22m 17:52:48
|
|
4504
|
+
[2m Duration [22m 1.54s[2m (transform 2.94s, setup 0ms, collect 4.95s, tests 2.24s, environment 4ms, prepare 1.12s)[22m
|
|
4505
|
+
|
|
4506
|
+
[34m % [39m[2mCoverage report from [22m[33mv8[39m
|
|
4507
|
+
|
|
4508
|
+
=============================== Coverage summary ===============================
|
|
4509
|
+
[33;1mStatements : 64.89% ( 1551/2390 )[0m
|
|
4510
|
+
[33;1mBranches : 59.85% ( 969/1619 )[0m
|
|
4511
|
+
[33;1mFunctions : 63.77% ( 250/392 )[0m
|
|
4512
|
+
[33;1mLines : 64.87% ( 1513/2332 )[0m
|
|
4513
|
+
================================================================================
|
|
4514
|
+
[?25h
|