@dainprotocol/service-sdk 2.0.43 → 2.0.44
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/dist/__tests__/api-sdk.test.d.ts +1 -0
- package/dist/__tests__/api-sdk.test.js +102 -0
- package/dist/__tests__/api-sdk.test.js.map +1 -0
- package/dist/__tests__/auth.test.d.ts +1 -0
- package/dist/__tests__/auth.test.js +110 -0
- package/dist/__tests__/auth.test.js.map +1 -0
- package/dist/__tests__/citations-plugin.test.d.ts +1 -0
- package/dist/__tests__/citations-plugin.test.js +491 -0
- package/dist/__tests__/citations-plugin.test.js.map +1 -0
- package/dist/__tests__/context-behavior.test.d.ts +1 -0
- package/dist/__tests__/context-behavior.test.js +290 -0
- package/dist/__tests__/context-behavior.test.js.map +1 -0
- package/dist/__tests__/convertToVercelTool.test.d.ts +1 -0
- package/dist/__tests__/convertToVercelTool.test.js +527 -0
- package/dist/__tests__/convertToVercelTool.test.js.map +1 -0
- package/dist/__tests__/core.test.d.ts +1 -0
- package/dist/__tests__/core.test.js +154 -0
- package/dist/__tests__/core.test.js.map +1 -0
- package/dist/__tests__/crypto-plugin.test.d.ts +1 -0
- package/dist/__tests__/crypto-plugin.test.js +694 -0
- package/dist/__tests__/crypto-plugin.test.js.map +1 -0
- package/dist/__tests__/humanActions.test.d.ts +1 -0
- package/dist/__tests__/humanActions.test.js +221 -0
- package/dist/__tests__/humanActions.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +1 -0
- package/dist/__tests__/integration.test.js +1573 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/mealMeSchemas.test.d.ts +576 -0
- package/dist/__tests__/mealMeSchemas.test.js +627 -0
- package/dist/__tests__/mealMeSchemas.test.js.map +1 -0
- package/dist/__tests__/oauth-context-simple.test.d.ts +1 -0
- package/dist/__tests__/oauth-context-simple.test.js +90 -0
- package/dist/__tests__/oauth-context-simple.test.js.map +1 -0
- package/dist/__tests__/oauth-context.test.d.ts +1 -0
- package/dist/__tests__/oauth-context.test.js +282 -0
- package/dist/__tests__/oauth-context.test.js.map +1 -0
- package/dist/__tests__/oauth.test.d.ts +1 -0
- package/dist/__tests__/oauth.test.js +378 -0
- package/dist/__tests__/oauth.test.js.map +1 -0
- package/dist/__tests__/oauth2-client-context.test.d.ts +1 -0
- package/dist/__tests__/oauth2-client-context.test.js +165 -0
- package/dist/__tests__/oauth2-client-context.test.js.map +1 -0
- package/dist/__tests__/oauth2-client-integration.test.d.ts +1 -0
- package/dist/__tests__/oauth2-client-integration.test.js +182 -0
- package/dist/__tests__/oauth2-client-integration.test.js.map +1 -0
- package/dist/__tests__/oauth2-client-simple.test.d.ts +1 -0
- package/dist/__tests__/oauth2-client-simple.test.js +144 -0
- package/dist/__tests__/oauth2-client-simple.test.js.map +1 -0
- package/dist/__tests__/oauth2-context.test.d.ts +1 -0
- package/dist/__tests__/oauth2-context.test.js +201 -0
- package/dist/__tests__/oauth2-context.test.js.map +1 -0
- package/dist/__tests__/oauth2-datasource.test.d.ts +1 -0
- package/dist/__tests__/oauth2-datasource.test.js +251 -0
- package/dist/__tests__/oauth2-datasource.test.js.map +1 -0
- package/dist/__tests__/plugin.test.d.ts +1 -0
- package/dist/__tests__/plugin.test.js +900 -0
- package/dist/__tests__/plugin.test.js.map +1 -0
- package/dist/__tests__/processes.test.d.ts +1 -0
- package/dist/__tests__/processes.test.js +239 -0
- package/dist/__tests__/processes.test.js.map +1 -0
- package/dist/__tests__/streaming.test.d.ts +1 -0
- package/dist/__tests__/streaming.test.js +592 -0
- package/dist/__tests__/streaming.test.js.map +1 -0
- package/dist/__tests__/testEnums.d.ts +1 -0
- package/dist/__tests__/testEnums.js +73 -0
- package/dist/__tests__/testEnums.js.map +1 -0
- package/dist/__tests__/testOptionals.test.d.ts +1 -0
- package/dist/__tests__/testOptionals.test.js +83 -0
- package/dist/__tests__/testOptionals.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +1 -0
- package/dist/__tests__/types.test.js +98 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/service/auth.js +27 -19
- package/dist/service/auth.js.map +1 -1
- package/dist/service/server.js +84 -1
- package/dist/service/server.js.map +1 -1
- package/package.json +10 -11
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const zod_1 = require("zod");
|
|
4
|
+
const schemaStructure_1 = require("../lib/schemaStructure");
|
|
5
|
+
const convertToVercelTool_1 = require("../lib/convertToVercelTool");
|
|
6
|
+
describe('Enum types conversion', () => {
|
|
7
|
+
it('should correctly convert enum types to Vercel AI Tool parameters', () => {
|
|
8
|
+
// Define a schema with enum fields
|
|
9
|
+
const testSchema = zod_1.z.object({
|
|
10
|
+
simpleEnum: zod_1.z.enum(['A', 'B', 'C']),
|
|
11
|
+
optionalEnum: zod_1.z.enum(['X', 'Y', 'Z']).optional(),
|
|
12
|
+
nestedEnum: zod_1.z.object({
|
|
13
|
+
innerEnum: zod_1.z.enum(['inner1', 'inner2', 'inner3'])
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
// Create a mock HTTP tool
|
|
17
|
+
const httpTool = {
|
|
18
|
+
id: 'test-enum-tool',
|
|
19
|
+
name: 'Test Enum Tool',
|
|
20
|
+
description: 'A tool to test enum field conversion',
|
|
21
|
+
inputSchema: (0, schemaStructure_1.getDetailedSchemaStructure)(testSchema),
|
|
22
|
+
outputSchema: { type: 'ZodAny' }
|
|
23
|
+
};
|
|
24
|
+
// Convert the HTTP tool to a Vercel AI Tool
|
|
25
|
+
const vercelAITool = (0, convertToVercelTool_1.convertHttpToolToVercelAITool)(httpTool);
|
|
26
|
+
// Check if the conversion was successful
|
|
27
|
+
expect(vercelAITool.name).toBe('test-enum-tool');
|
|
28
|
+
expect(vercelAITool.description).toBe('A tool to test enum field conversion');
|
|
29
|
+
expect(vercelAITool.parameters).toBeInstanceOf(zod_1.z.ZodObject);
|
|
30
|
+
// Check if the fields are correctly converted
|
|
31
|
+
const schemaShape = vercelAITool.parameters._def.shape();
|
|
32
|
+
expect(schemaShape.simpleEnum).toBeInstanceOf(zod_1.z.ZodEnum);
|
|
33
|
+
expect(schemaShape.optionalEnum).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
34
|
+
expect(schemaShape.optionalEnum._def.innerType).toBeInstanceOf(zod_1.z.ZodEnum);
|
|
35
|
+
expect(schemaShape.nestedEnum).toBeInstanceOf(zod_1.z.ZodObject);
|
|
36
|
+
expect(schemaShape.nestedEnum._def.shape().innerEnum).toBeInstanceOf(zod_1.z.ZodEnum);
|
|
37
|
+
// Test parsing with the converted schema
|
|
38
|
+
const validInput = {
|
|
39
|
+
simpleEnum: 'B',
|
|
40
|
+
optionalEnum: 'Y',
|
|
41
|
+
numberEnum: 2,
|
|
42
|
+
mixedEnum: 'one',
|
|
43
|
+
nestedEnum: {
|
|
44
|
+
innerEnum: 'inner2'
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const parseResult = vercelAITool.parameters.safeParse(validInput);
|
|
48
|
+
expect(parseResult.success).toBe(true);
|
|
49
|
+
// Test parsing with invalid enum values
|
|
50
|
+
const invalidInput = {
|
|
51
|
+
simpleEnum: 'D',
|
|
52
|
+
numberEnum: 4,
|
|
53
|
+
mixedEnum: false,
|
|
54
|
+
nestedEnum: {
|
|
55
|
+
innerEnum: 'inner4'
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const invalidParseResult = vercelAITool.parameters.safeParse(invalidInput);
|
|
59
|
+
expect(invalidParseResult.success).toBe(false);
|
|
60
|
+
// Test parsing with missing optional enum
|
|
61
|
+
const minimalInput = {
|
|
62
|
+
simpleEnum: 'A',
|
|
63
|
+
numberEnum: 1,
|
|
64
|
+
mixedEnum: true,
|
|
65
|
+
nestedEnum: {
|
|
66
|
+
innerEnum: 'inner1'
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const minimalParseResult = vercelAITool.parameters.safeParse(minimalInput);
|
|
70
|
+
expect(minimalParseResult.success).toBe(true);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=testEnums.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testEnums.js","sourceRoot":"","sources":["../../src/__tests__/testEnums.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const zod_1 = require("zod");
|
|
4
|
+
const schemaStructure_1 = require("../lib/schemaStructure");
|
|
5
|
+
const convertToVercelTool_1 = require("../lib/convertToVercelTool");
|
|
6
|
+
describe('Optional and default types conversion', () => {
|
|
7
|
+
it('should correctly convert optional and default types to Vercel AI Tool parameters', () => {
|
|
8
|
+
// Define a schema with optional fields and default values
|
|
9
|
+
const testSchema = zod_1.z.object({
|
|
10
|
+
requiredField: zod_1.z.string(),
|
|
11
|
+
optionalString: zod_1.z.string().optional(),
|
|
12
|
+
optionalNumberWithDefault: zod_1.z.number().optional().default(42),
|
|
13
|
+
optionalBoolean: zod_1.z.boolean().optional(),
|
|
14
|
+
defaultString: zod_1.z.string().default('default value'),
|
|
15
|
+
nestedOptional: zod_1.z.object({
|
|
16
|
+
innerOptional: zod_1.z.string().optional(),
|
|
17
|
+
innerDefault: zod_1.z.number().default(10)
|
|
18
|
+
}).optional()
|
|
19
|
+
});
|
|
20
|
+
// Create a mock HTTP tool
|
|
21
|
+
const httpTool = {
|
|
22
|
+
id: 'test-optional-default-tool',
|
|
23
|
+
name: 'Test Optional and Default Tool',
|
|
24
|
+
description: 'A tool to test optional and default field conversion',
|
|
25
|
+
inputSchema: (0, schemaStructure_1.getDetailedSchemaStructure)(testSchema),
|
|
26
|
+
outputSchema: { type: 'ZodAny' }
|
|
27
|
+
};
|
|
28
|
+
// Convert the HTTP tool to a Vercel AI Tool
|
|
29
|
+
const vercelAITool = (0, convertToVercelTool_1.convertHttpToolToVercelAITool)(httpTool);
|
|
30
|
+
// Check if the conversion was successful
|
|
31
|
+
expect(vercelAITool.name).toBe('test-optional-default-tool');
|
|
32
|
+
expect(vercelAITool.description).toBe('A tool to test optional and default field conversion');
|
|
33
|
+
expect(vercelAITool.parameters).toBeInstanceOf(zod_1.z.ZodObject);
|
|
34
|
+
// Check if the fields are correctly converted
|
|
35
|
+
const schemaShape = vercelAITool.parameters._def.shape();
|
|
36
|
+
expect(schemaShape.requiredField).toBeInstanceOf(zod_1.z.ZodString);
|
|
37
|
+
expect(schemaShape.optionalString).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
38
|
+
expect(schemaShape.optionalBoolean).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
39
|
+
// Update for fields with default values
|
|
40
|
+
expect(schemaShape.optionalNumberWithDefault).toBeInstanceOf(zod_1.z.ZodDefault);
|
|
41
|
+
expect(schemaShape.optionalNumberWithDefault._def.innerType).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
42
|
+
expect(schemaShape.optionalNumberWithDefault._def.innerType._def.innerType).toBeInstanceOf(zod_1.z.ZodNumber);
|
|
43
|
+
expect(schemaShape.defaultString).toBeInstanceOf(zod_1.z.ZodDefault);
|
|
44
|
+
expect(schemaShape.defaultString._def.innerType).toBeInstanceOf(zod_1.z.ZodString);
|
|
45
|
+
expect(schemaShape.nestedOptional).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
46
|
+
// Check nested fields
|
|
47
|
+
const nestedShape = schemaShape.nestedOptional._def.innerType._def.shape();
|
|
48
|
+
expect(nestedShape.innerOptional).toBeInstanceOf(zod_1.z.ZodOptional);
|
|
49
|
+
expect(nestedShape.innerDefault).toBeInstanceOf(zod_1.z.ZodDefault);
|
|
50
|
+
expect(nestedShape.innerDefault._def.innerType).toBeInstanceOf(zod_1.z.ZodNumber);
|
|
51
|
+
// Test parsing with the converted schema
|
|
52
|
+
const validInput = {
|
|
53
|
+
requiredField: 'test',
|
|
54
|
+
optionalString: 'optional',
|
|
55
|
+
nestedOptional: {
|
|
56
|
+
innerOptional: 'nested'
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const parseResult = vercelAITool.parameters.safeParse(validInput);
|
|
60
|
+
expect(parseResult.success).toBe(true);
|
|
61
|
+
// Test parsing with missing optional fields and check default values
|
|
62
|
+
const minimalInput = {
|
|
63
|
+
requiredField: 'test'
|
|
64
|
+
};
|
|
65
|
+
const minimalParseResult = vercelAITool.parameters.safeParse(minimalInput);
|
|
66
|
+
expect(minimalParseResult.success).toBe(true);
|
|
67
|
+
if (minimalParseResult.success) {
|
|
68
|
+
expect(minimalParseResult.data.optionalNumberWithDefault).toBe(42);
|
|
69
|
+
expect(minimalParseResult.data.defaultString).toBe('default value');
|
|
70
|
+
}
|
|
71
|
+
// Test nested default values
|
|
72
|
+
const nestedInput = {
|
|
73
|
+
requiredField: 'test',
|
|
74
|
+
nestedOptional: {}
|
|
75
|
+
};
|
|
76
|
+
const nestedParseResult = vercelAITool.parameters.safeParse(nestedInput);
|
|
77
|
+
expect(nestedParseResult.success).toBe(true);
|
|
78
|
+
if (nestedParseResult.success) {
|
|
79
|
+
expect(nestedParseResult.data.nestedOptional?.innerDefault).toBe(10);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=testOptionals.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testOptionals.test.js","sourceRoot":"","sources":["../../src/__tests__/testOptionals.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: src/__tests__/types.test.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
describe("DAIN Framework Types", () => {
|
|
6
|
+
test("AgentInfo type is correctly defined", () => {
|
|
7
|
+
const agentInfo = {
|
|
8
|
+
agentId: "test-agent",
|
|
9
|
+
address: "0x1234567890123456789012345678901234567890",
|
|
10
|
+
smartAccountPDA: "1234567890123456789012345678901234567890",
|
|
11
|
+
id: "dain_id_1234567890123456789012345678901234567890",
|
|
12
|
+
};
|
|
13
|
+
expect(agentInfo.agentId).toBe("test-agent");
|
|
14
|
+
expect(agentInfo.address).toBe("0x1234567890123456789012345678901234567890");
|
|
15
|
+
});
|
|
16
|
+
test("PricingInfo type is correctly defined", () => {
|
|
17
|
+
const pricingInfo = {
|
|
18
|
+
pricePerUse: 0.01,
|
|
19
|
+
currency: "USD",
|
|
20
|
+
};
|
|
21
|
+
expect(pricingInfo.pricePerUse).toBe(0.01);
|
|
22
|
+
expect(pricingInfo.currency).toBe("USD");
|
|
23
|
+
});
|
|
24
|
+
test("ToolConfig type is correctly defined", () => {
|
|
25
|
+
const toolConfig = {
|
|
26
|
+
id: "get-weather",
|
|
27
|
+
name: "Get Weather",
|
|
28
|
+
description: "Fetches weather for a city",
|
|
29
|
+
input: zod_1.z.object({ city: zod_1.z.string() }),
|
|
30
|
+
output: zod_1.z.object({ temperature: zod_1.z.number() }),
|
|
31
|
+
pricing: { pricePerUse: 0.01, currency: "USD" },
|
|
32
|
+
handler: async (input, agentInfo) => ({
|
|
33
|
+
text: `The temperature is 25°C`,
|
|
34
|
+
data: { temperature: 25 },
|
|
35
|
+
ui: null
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
expect(toolConfig.id).toBe("get-weather");
|
|
39
|
+
expect(toolConfig.input.shape.city).toBeInstanceOf(zod_1.z.ZodString);
|
|
40
|
+
expect(toolConfig.output.shape.temperature).toBeInstanceOf(zod_1.z.ZodNumber);
|
|
41
|
+
});
|
|
42
|
+
test("ServiceConfig type is correctly defined", () => {
|
|
43
|
+
const serviceConfig = {
|
|
44
|
+
id: "weather-service",
|
|
45
|
+
name: "Weather Service",
|
|
46
|
+
description: "Provides weather information",
|
|
47
|
+
metadata: {
|
|
48
|
+
capabilities: ["current-weather", "forecast"],
|
|
49
|
+
languages: ["en", "es"],
|
|
50
|
+
},
|
|
51
|
+
recommendedPrompt: "Ask about the weather",
|
|
52
|
+
recommendedTools: ["get-weather", "get-forecast"],
|
|
53
|
+
};
|
|
54
|
+
expect(serviceConfig.id).toBe("weather-service");
|
|
55
|
+
expect(serviceConfig.metadata.capabilities).toContain("current-weather");
|
|
56
|
+
expect(serviceConfig.recommendedTools).toContain("get-weather");
|
|
57
|
+
});
|
|
58
|
+
test("ToolboxConfig type is correctly defined", () => {
|
|
59
|
+
const toolboxConfig = {
|
|
60
|
+
id: "weather-toolbox",
|
|
61
|
+
name: "Weather Toolbox",
|
|
62
|
+
description: "Collection of weather tools",
|
|
63
|
+
tools: ["get-weather", "get-forecast"],
|
|
64
|
+
metadata: {
|
|
65
|
+
complexity: "Low",
|
|
66
|
+
applicableFields: ["Meteorology", "Travel"],
|
|
67
|
+
},
|
|
68
|
+
recommendedPrompt: "Use these tools for weather-related tasks",
|
|
69
|
+
};
|
|
70
|
+
expect(toolboxConfig.id).toBe("weather-toolbox");
|
|
71
|
+
expect(toolboxConfig.tools).toContain("get-weather");
|
|
72
|
+
expect(toolboxConfig.metadata.applicableFields).toContain("Meteorology");
|
|
73
|
+
});
|
|
74
|
+
test("DAINServiceConfig type is correctly defined", () => {
|
|
75
|
+
const serviceConfig = {
|
|
76
|
+
metadata: {
|
|
77
|
+
title: "Weather Service",
|
|
78
|
+
description: "Provides weather information",
|
|
79
|
+
version: "1.0.0",
|
|
80
|
+
author: "DAIN Developer",
|
|
81
|
+
tags: ["weather", "forecast"],
|
|
82
|
+
},
|
|
83
|
+
identity: {
|
|
84
|
+
publicKey: "test-public-key",
|
|
85
|
+
agentId: "weather-agent",
|
|
86
|
+
orgId: "weather-org",
|
|
87
|
+
privateKey: "test-private",
|
|
88
|
+
},
|
|
89
|
+
services: [],
|
|
90
|
+
tools: [],
|
|
91
|
+
toolboxes: [],
|
|
92
|
+
contexts: [],
|
|
93
|
+
};
|
|
94
|
+
expect(serviceConfig.metadata.title).toBe("Weather Service");
|
|
95
|
+
expect(serviceConfig.identity.agentId).toBe("weather-agent");
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}
|
package/dist/service/auth.js
CHANGED
|
@@ -129,20 +129,25 @@ function extractBearerToken(authHeader) {
|
|
|
129
129
|
async function fetchPublicKey(dainIdUrl) {
|
|
130
130
|
// SECURITY: Enforce HTTPS to prevent MITM attacks
|
|
131
131
|
if (!dainIdUrl.startsWith('https://')) {
|
|
132
|
+
console.error(`[JWKS Fetch] ERROR: Non-HTTPS URL provided: ${dainIdUrl}`);
|
|
132
133
|
throw new Error(`SECURITY: JWKS endpoint must use HTTPS. Got: ${dainIdUrl}. ` +
|
|
133
134
|
`Use https://id.dain.org for production.`);
|
|
134
135
|
}
|
|
135
136
|
// Check cache
|
|
136
137
|
const cached = jwksCache.get(dainIdUrl);
|
|
137
138
|
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
|
|
139
|
+
console.log(`[JWKS Fetch] Using cached public key for ${dainIdUrl}`);
|
|
138
140
|
return cached.publicKey;
|
|
139
141
|
}
|
|
140
142
|
// Fetch JWKS
|
|
141
143
|
const jwksUrl = `${dainIdUrl}/api/oauth/.well-known/jwks.json`;
|
|
144
|
+
console.log(`[JWKS Fetch] Fetching public key from ${jwksUrl}`);
|
|
142
145
|
const response = await fetch(jwksUrl);
|
|
143
146
|
if (!response.ok) {
|
|
147
|
+
console.error(`[JWKS Fetch] ERROR: Failed to fetch JWKS - ${response.status} ${response.statusText}`);
|
|
144
148
|
throw new Error(`Failed to fetch JWKS from ${jwksUrl}: ${response.status} ${response.statusText}`);
|
|
145
149
|
}
|
|
150
|
+
console.log(`[JWKS Fetch] ✓ Successfully fetched JWKS`);
|
|
146
151
|
const jwks = await response.json();
|
|
147
152
|
// SECURITY: Validate JWKS structure
|
|
148
153
|
if (!jwks || typeof jwks !== 'object') {
|
|
@@ -181,34 +186,30 @@ function jwkToPem(jwk) {
|
|
|
181
186
|
}
|
|
182
187
|
async function verifyJWT(token, publicKeyPEMOrUrl, options) {
|
|
183
188
|
try {
|
|
189
|
+
// Decode token header and payload for logging (without verification)
|
|
190
|
+
const decoded = jsonwebtoken_1.default.decode(token, { complete: true });
|
|
191
|
+
console.log("[JWT Verify] Token claims:", {
|
|
192
|
+
iss: decoded?.payload?.iss,
|
|
193
|
+
aud: decoded?.payload?.aud,
|
|
194
|
+
sub: decoded?.payload?.sub,
|
|
195
|
+
exp: decoded?.payload?.exp,
|
|
196
|
+
expiration: decoded?.payload?.exp ? new Date(decoded.payload.exp * 1000).toISOString() : "none"
|
|
197
|
+
});
|
|
198
|
+
console.log("[JWT Verify] Verification options:", {
|
|
199
|
+
expectedIssuer: options?.issuer || "any",
|
|
200
|
+
expectedAudience: options?.audience || "any"
|
|
201
|
+
});
|
|
184
202
|
// Fetch public key if URL provided
|
|
185
203
|
const publicKey = publicKeyPEMOrUrl.startsWith("http")
|
|
186
204
|
? await fetchPublicKey(publicKeyPEMOrUrl)
|
|
187
205
|
: publicKeyPEMOrUrl;
|
|
188
|
-
// Normalize audience to accept both http:// and https://
|
|
189
|
-
// This handles cases where tokens are issued with one protocol but services are accessed via another
|
|
190
|
-
let normalizedAudience = options?.audience;
|
|
191
|
-
if (options?.audience) {
|
|
192
|
-
try {
|
|
193
|
-
const audienceUrl = new URL(options.audience);
|
|
194
|
-
const host = audienceUrl.host;
|
|
195
|
-
// Accept both http:// and https:// for the same host
|
|
196
|
-
normalizedAudience = [
|
|
197
|
-
`http://${host}`,
|
|
198
|
-
`https://${host}`
|
|
199
|
-
];
|
|
200
|
-
}
|
|
201
|
-
catch (e) {
|
|
202
|
-
// If URL parsing fails, use original audience
|
|
203
|
-
normalizedAudience = options.audience;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
206
|
// Verify JWT
|
|
207
207
|
const payload = jsonwebtoken_1.default.verify(token, publicKey, {
|
|
208
208
|
algorithms: ["RS256"],
|
|
209
209
|
issuer: options?.issuer,
|
|
210
|
-
audience:
|
|
210
|
+
audience: options?.audience,
|
|
211
211
|
});
|
|
212
|
+
console.log("[JWT Verify] ✓ Token verified successfully");
|
|
212
213
|
return {
|
|
213
214
|
valid: true,
|
|
214
215
|
payload,
|
|
@@ -217,6 +218,13 @@ async function verifyJWT(token, publicKeyPEMOrUrl, options) {
|
|
|
217
218
|
};
|
|
218
219
|
}
|
|
219
220
|
catch (error) {
|
|
221
|
+
console.error("[JWT Verify] ERROR: Verification failed");
|
|
222
|
+
console.error("[JWT Verify] Error details:", {
|
|
223
|
+
name: error instanceof Error ? error.name : "Unknown",
|
|
224
|
+
message: error instanceof Error ? error.message : "Invalid token",
|
|
225
|
+
expectedAudience: options?.audience,
|
|
226
|
+
expectedIssuer: options?.issuer
|
|
227
|
+
});
|
|
220
228
|
return {
|
|
221
229
|
valid: false,
|
|
222
230
|
error: error instanceof Error ? error.message : "Invalid token",
|
package/dist/service/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/service/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/service/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/service/server.js
CHANGED
|
@@ -186,34 +186,103 @@ function setupHttpServer(config, tools, services, toolboxes, metadata, privateKe
|
|
|
186
186
|
const jwtToken = (0, auth_1.extractBearerToken)(c.req.header("Authorization"));
|
|
187
187
|
const apiKey = c.req.header("X-DAIN-API-KEY");
|
|
188
188
|
if (jwtToken) {
|
|
189
|
+
console.log(`[JWT Auth] Starting JWT authentication for ${c.req.method} ${c.req.path}`);
|
|
189
190
|
// JWT Authentication (Users)
|
|
190
191
|
// Auto-detect JWT audience from Host header (works with localhost, tunnels, production)
|
|
191
192
|
const host = c.req.header("x-forwarded-host") || c.req.header("host");
|
|
192
193
|
if (!host) {
|
|
194
|
+
console.error("[JWT Auth] ERROR: Host header missing");
|
|
193
195
|
throw new http_exception_1.HTTPException(400, { message: "Unable to determine service URL. Host header is required." });
|
|
194
196
|
}
|
|
195
197
|
// Validate host format to prevent obvious attacks
|
|
196
198
|
if (host.includes(' ') || host.includes('\n') || host.includes('\r')) {
|
|
199
|
+
console.error(`[JWT Auth] ERROR: Invalid host header format: ${JSON.stringify(host)}`);
|
|
197
200
|
throw new http_exception_1.HTTPException(400, { message: "Invalid Host header format" });
|
|
198
201
|
}
|
|
202
|
+
// Protocol detection with multiple fallbacks
|
|
203
|
+
// Priority: FORCE_HTTPS env > x-forwarded-proto > x-forwarded-ssl > cloudflare headers > infer from host
|
|
199
204
|
const xForwardedProto = c.req.header("x-forwarded-proto");
|
|
200
|
-
const
|
|
205
|
+
const xForwardedSsl = c.req.header("x-forwarded-ssl");
|
|
206
|
+
const cfVisitor = c.req.header("cf-visitor"); // Cloudflare
|
|
207
|
+
const forceHttps = process.env.FORCE_HTTPS === "true" || process.env.FORCE_HTTPS === "1";
|
|
208
|
+
let protocol;
|
|
209
|
+
let protocolSource;
|
|
210
|
+
if (forceHttps) {
|
|
211
|
+
protocol = "https";
|
|
212
|
+
protocolSource = "FORCE_HTTPS env var";
|
|
213
|
+
}
|
|
214
|
+
else if (xForwardedProto) {
|
|
215
|
+
protocol = xForwardedProto.split(',')[0].trim();
|
|
216
|
+
protocolSource = `x-forwarded-proto header: ${xForwardedProto}`;
|
|
217
|
+
}
|
|
218
|
+
else if (xForwardedSsl === "on") {
|
|
219
|
+
protocol = "https";
|
|
220
|
+
protocolSource = "x-forwarded-ssl: on";
|
|
221
|
+
}
|
|
222
|
+
else if (cfVisitor) {
|
|
223
|
+
try {
|
|
224
|
+
const visitor = JSON.parse(cfVisitor);
|
|
225
|
+
protocol = visitor.scheme || "https";
|
|
226
|
+
protocolSource = `cf-visitor header: ${visitor.scheme}`;
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
protocol = "https";
|
|
230
|
+
protocolSource = "cf-visitor header (parse failed, defaulted to https)";
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else if (host.includes("localhost") || host.includes("127.0.0.1")) {
|
|
234
|
+
protocol = "http";
|
|
235
|
+
protocolSource = "localhost/127.0.0.1 detected";
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
protocol = "https";
|
|
239
|
+
protocolSource = "default for production domain";
|
|
240
|
+
}
|
|
201
241
|
const jwtAudience = `${protocol}://${host}`;
|
|
242
|
+
// Always log audience detection for debugging
|
|
243
|
+
console.log("[JWT Auth] Audience detection:", {
|
|
244
|
+
path: c.req.path,
|
|
245
|
+
host,
|
|
246
|
+
xForwardedHost: c.req.header("x-forwarded-host") || "not set",
|
|
247
|
+
xForwardedProto: xForwardedProto || "not set",
|
|
248
|
+
xForwardedSsl: xForwardedSsl || "not set",
|
|
249
|
+
cfVisitor: cfVisitor ? "present" : "not set",
|
|
250
|
+
forceHttps: forceHttps ? "enabled" : "disabled",
|
|
251
|
+
computedProtocol: protocol,
|
|
252
|
+
protocolSource,
|
|
253
|
+
jwtAudience
|
|
254
|
+
});
|
|
202
255
|
const publicKeyOrUrl = config.jwtPublicKey || config.dainIdUrl || "https://id.dain.org";
|
|
203
256
|
const issuer = config.jwtIssuer || "dainid-oauth";
|
|
257
|
+
console.log(`[JWT Auth] Verifying JWT with issuer: ${issuer}, audience: ${jwtAudience}`);
|
|
204
258
|
const result = await (0, auth_1.verifyJWT)(jwtToken, publicKeyOrUrl, {
|
|
205
259
|
issuer: issuer,
|
|
206
260
|
audience: jwtAudience,
|
|
207
261
|
});
|
|
208
262
|
if (!result.valid) {
|
|
263
|
+
console.error(`[JWT Auth] ERROR: JWT verification failed - ${result.error}`);
|
|
264
|
+
console.error("[JWT Auth] Verification details:", {
|
|
265
|
+
expectedIssuer: issuer,
|
|
266
|
+
expectedAudience: jwtAudience,
|
|
267
|
+
publicKeySource: publicKeyOrUrl,
|
|
268
|
+
error: result.error
|
|
269
|
+
});
|
|
209
270
|
throw new http_exception_1.HTTPException(401, { message: `JWT verification failed: ${result.error}` });
|
|
210
271
|
}
|
|
272
|
+
console.log("[JWT Auth] JWT verification successful");
|
|
211
273
|
// Defense in depth: double-check audience claim
|
|
212
274
|
if (result.payload.aud !== jwtAudience) {
|
|
275
|
+
console.error("[JWT Auth] ERROR: Audience mismatch after verification");
|
|
276
|
+
console.error("[JWT Auth] Audience comparison:", {
|
|
277
|
+
expected: jwtAudience,
|
|
278
|
+
received: result.payload.aud,
|
|
279
|
+
match: result.payload.aud === jwtAudience
|
|
280
|
+
});
|
|
213
281
|
throw new http_exception_1.HTTPException(403, {
|
|
214
282
|
message: `JWT audience mismatch. Expected: ${jwtAudience}, Got: ${result.payload.aud}`
|
|
215
283
|
});
|
|
216
284
|
}
|
|
285
|
+
console.log(`[JWT Auth] ✓ Authentication successful for smart account: ${result.smartAccountId}`);
|
|
217
286
|
c.set('authMethod', 'jwt');
|
|
218
287
|
c.set('smartAccountId', result.smartAccountId);
|
|
219
288
|
c.set('address', result.smartAccountId); // Use smartAccountId as address for JWT auth
|
|
@@ -222,18 +291,31 @@ function setupHttpServer(config, tools, services, toolboxes, metadata, privateKe
|
|
|
222
291
|
c.set('smartAccountPDA', c.req.header("X-DAIN-SMART-ACCOUNT-PDA"));
|
|
223
292
|
}
|
|
224
293
|
else if (apiKey) {
|
|
294
|
+
console.log(`[API Key Auth] Starting API key authentication for ${c.req.method} ${c.req.path}`);
|
|
225
295
|
// API Key Authentication (Services/Agents)
|
|
226
296
|
const parsed = (0, auth_1.parseAPIKey)(apiKey);
|
|
227
297
|
if (!parsed) {
|
|
298
|
+
console.error("[API Key Auth] ERROR: Invalid API key format");
|
|
228
299
|
throw new http_exception_1.HTTPException(401, { message: "Invalid API key format" });
|
|
229
300
|
}
|
|
301
|
+
console.log("[API Key Auth] Parsed API key:", {
|
|
302
|
+
agentId: parsed.agentId,
|
|
303
|
+
orgId: parsed.orgId
|
|
304
|
+
});
|
|
230
305
|
// Validate API key with platform (skip in dev mode if no platform URL)
|
|
231
306
|
if (config.platformBaseUrl) {
|
|
307
|
+
console.log(`[API Key Auth] Validating with platform: ${config.platformBaseUrl}`);
|
|
232
308
|
const isValid = await (0, auth_1.validateAPIKeyWithPlatform)(apiKey, config.platformBaseUrl);
|
|
233
309
|
if (!isValid) {
|
|
310
|
+
console.error("[API Key Auth] ERROR: Platform validation failed");
|
|
234
311
|
throw new http_exception_1.HTTPException(401, { message: "Invalid API key" });
|
|
235
312
|
}
|
|
313
|
+
console.log("[API Key Auth] ✓ Platform validation successful");
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
console.log("[API Key Auth] Skipping platform validation (no platformBaseUrl configured)");
|
|
236
317
|
}
|
|
318
|
+
console.log(`[API Key Auth] ✓ Authentication successful for agent: ${parsed.agentId}`);
|
|
237
319
|
c.set('authMethod', 'apiKey');
|
|
238
320
|
c.set('agentId', parsed.agentId);
|
|
239
321
|
c.set('orgId', parsed.orgId);
|
|
@@ -241,6 +323,7 @@ function setupHttpServer(config, tools, services, toolboxes, metadata, privateKe
|
|
|
241
323
|
c.set('smartAccountPDA', c.req.header("X-DAIN-SMART-ACCOUNT-PDA"));
|
|
242
324
|
}
|
|
243
325
|
else {
|
|
326
|
+
console.error("[Auth] ERROR: No authentication provided (no JWT or API key found)");
|
|
244
327
|
throw new http_exception_1.HTTPException(401, { message: "No authentication provided" });
|
|
245
328
|
}
|
|
246
329
|
await next();
|