@agentuity/server 0.1.34 → 0.1.35
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/api/region/resources.d.ts.map +1 -1
- package/dist/api/region/resources.js +5 -1
- package/dist/api/region/resources.js.map +1 -1
- package/dist/api/sandbox/create.d.ts.map +1 -1
- package/dist/api/sandbox/create.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +162 -7
- package/dist/server.js.map +1 -1
- package/package.json +4 -4
- package/src/api/region/resources.ts +5 -1
- package/src/api/sandbox/create.ts +1 -2
- package/src/server.ts +172 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/api/region/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAqB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGtD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/api/region/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAqB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGtD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;iBAiCxB,CAAC;AACH,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAA0C,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,YAAY,CAAC,CAUvB"}
|
|
@@ -12,7 +12,11 @@ const ResourceListResponse = z.object({
|
|
|
12
12
|
env: z.record(z.string(), z.string()).describe('environment variables for the resource'),
|
|
13
13
|
bucket_type: z.string().describe('the bucket type (user or snapshots)'),
|
|
14
14
|
internal: z.boolean().describe('whether this is a system-managed bucket'),
|
|
15
|
-
description: z
|
|
15
|
+
description: z
|
|
16
|
+
.string()
|
|
17
|
+
.nullable()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('optional description of the bucket'),
|
|
16
20
|
})),
|
|
17
21
|
db: z.array(z.object({
|
|
18
22
|
name: z.string().describe('the database name'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/api/region/resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAa,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,KAAK,CACV,CAAC,CAAC,MAAM,CAAC;QACR,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACxF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACvE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QACzE,WAAW,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/api/region/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAqB,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAqB,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAmH3E,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,GAAE,mBAAwB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA8EhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/api/sandbox/create.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/api/sandbox/create.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EAEZ,aAAa,EACb,YAAY,EACZ,MAAM,EAEN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAoC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EAEZ,aAAa,EACb,YAAY,EACZ,MAAM,EAEN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAoC,MAAM,iBAAiB,CAAC;AAGrF,UAAU,oBAAoB;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,OAAO,CAAC,EAAE,CAAC,CAAC,EACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,gBAAgB,CAAC,KACvC,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAqKD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CACrB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,MAAU,EAClB,IAAI,GAAE,MAAY,GAChB,MAAM,CAaR;AAgBD,cAAM,kBAAmB,YAAW,YAAY;;gBAInC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM;YAI1C,OAAO;IAqEf,MAAM,CAAC,CAAC,EACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAiC,GACxC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAmC5B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,sBAEpF"}
|
package/dist/server.js
CHANGED
|
@@ -1,5 +1,157 @@
|
|
|
1
1
|
import { ServiceException, toServiceException, fromResponse } from '@agentuity/core';
|
|
2
|
-
|
|
2
|
+
import { appendFileSync } from 'node:fs';
|
|
3
|
+
/**
|
|
4
|
+
* Headers that contain sensitive information and should be redacted in debug logs.
|
|
5
|
+
* Includes authentication tokens, API keys, cookies, and proxy credentials.
|
|
6
|
+
*/
|
|
7
|
+
const sensitiveHeaders = new Set([
|
|
8
|
+
'authorization',
|
|
9
|
+
'x-api-key',
|
|
10
|
+
'cookie',
|
|
11
|
+
'set-cookie',
|
|
12
|
+
'proxy-authorization',
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Check if API debug logging is enabled and return the output destination.
|
|
16
|
+
* Returns:
|
|
17
|
+
* - 'console' if CI=1/true or AGENTUITY_API_DEBUG=1/true
|
|
18
|
+
* - file path string if AGENTUITY_API_DEBUG is set to a path
|
|
19
|
+
* - null if debug logging is disabled (including AGENTUITY_API_DEBUG=0/false)
|
|
20
|
+
*/
|
|
21
|
+
function getDebugOutput() {
|
|
22
|
+
const apiDebug = process.env.AGENTUITY_API_DEBUG?.trim();
|
|
23
|
+
if (apiDebug) {
|
|
24
|
+
const normalized = apiDebug.toLowerCase();
|
|
25
|
+
// Check if explicitly disabled
|
|
26
|
+
if (normalized === '0' || normalized === 'false') {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
// Check if it's a truthy value (console output)
|
|
30
|
+
if (normalized === '1' || normalized === 'true') {
|
|
31
|
+
return 'console';
|
|
32
|
+
}
|
|
33
|
+
// Treat any other non-empty value as a file path
|
|
34
|
+
return apiDebug;
|
|
35
|
+
}
|
|
36
|
+
// Fall back to CI environment check
|
|
37
|
+
if (process.env.CI === '1' || process.env.CI === 'true') {
|
|
38
|
+
return 'console';
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Format request body for CI debug logging
|
|
44
|
+
*/
|
|
45
|
+
function formatRequestBody(body) {
|
|
46
|
+
if (body === undefined || body === null) {
|
|
47
|
+
return '[no body]';
|
|
48
|
+
}
|
|
49
|
+
if (typeof body === 'string') {
|
|
50
|
+
return body;
|
|
51
|
+
}
|
|
52
|
+
if (body instanceof Uint8Array) {
|
|
53
|
+
return `[binary data: ${body.length} bytes]`;
|
|
54
|
+
}
|
|
55
|
+
if (body instanceof ArrayBuffer) {
|
|
56
|
+
return `[binary data: ${body.byteLength} bytes]`;
|
|
57
|
+
}
|
|
58
|
+
if (body instanceof ReadableStream) {
|
|
59
|
+
return '[stream]';
|
|
60
|
+
}
|
|
61
|
+
return String(body);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Format a sensitive header value, preserving Bearer prefix if present.
|
|
65
|
+
*/
|
|
66
|
+
function redactSensitiveHeader(key, value) {
|
|
67
|
+
const _k = key.toLowerCase();
|
|
68
|
+
// Handle Bearer tokens in authorization and proxy-authorization headers
|
|
69
|
+
if ((_k === 'authorization' || _k === 'proxy-authorization') && value.startsWith('Bearer ')) {
|
|
70
|
+
return `Bearer ${redact(value.substring(7))}`;
|
|
71
|
+
}
|
|
72
|
+
return redact(value);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Format headers as a readable string for debug logging.
|
|
76
|
+
* Sensitive headers (auth tokens, cookies, API keys) are redacted.
|
|
77
|
+
*/
|
|
78
|
+
function formatHeaders(headers) {
|
|
79
|
+
const entries = [];
|
|
80
|
+
if (headers instanceof Headers) {
|
|
81
|
+
headers.forEach((value, key) => {
|
|
82
|
+
const _k = key.toLowerCase();
|
|
83
|
+
if (sensitiveHeaders.has(_k)) {
|
|
84
|
+
entries.push(` ${key}: ${redactSensitiveHeader(key, value)}`);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
entries.push(` ${key}: ${value}`);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
93
|
+
const _k = key.toLowerCase();
|
|
94
|
+
if (sensitiveHeaders.has(_k)) {
|
|
95
|
+
entries.push(` ${key}: ${redactSensitiveHeader(key, value)}`);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
entries.push(` ${key}: ${value}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return entries.join('\n');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Log detailed debug information when API requests fail.
|
|
106
|
+
* Output destination is determined by AGENTUITY_API_DEBUG or CI environment variables.
|
|
107
|
+
*/
|
|
108
|
+
function logAPIDebug(url, method, requestHeaders, requestBody, response, responseBody) {
|
|
109
|
+
const output = getDebugOutput();
|
|
110
|
+
if (!output) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const separator = '='.repeat(60);
|
|
114
|
+
const timestamp = new Date().toISOString();
|
|
115
|
+
const lines = [
|
|
116
|
+
'',
|
|
117
|
+
separator,
|
|
118
|
+
`API DEBUG: Request Failed [${timestamp}]`,
|
|
119
|
+
separator,
|
|
120
|
+
'',
|
|
121
|
+
'>>> REQUEST',
|
|
122
|
+
`URL: ${url}`,
|
|
123
|
+
`Method: ${method}`,
|
|
124
|
+
'Headers:',
|
|
125
|
+
formatHeaders(requestHeaders),
|
|
126
|
+
'Body:',
|
|
127
|
+
` ${formatRequestBody(requestBody)}`,
|
|
128
|
+
'',
|
|
129
|
+
'<<< RESPONSE',
|
|
130
|
+
`Status: ${response.status} ${response.statusText}`,
|
|
131
|
+
'Headers:',
|
|
132
|
+
formatHeaders(response.headers),
|
|
133
|
+
'Body:',
|
|
134
|
+
` ${responseBody || '[empty]'}`,
|
|
135
|
+
'',
|
|
136
|
+
separator,
|
|
137
|
+
'',
|
|
138
|
+
];
|
|
139
|
+
const content = lines.join('\n');
|
|
140
|
+
if (output === 'console') {
|
|
141
|
+
console.error(content);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
// Append to file
|
|
145
|
+
try {
|
|
146
|
+
appendFileSync(output, content + '\n');
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
// If file write fails, fall back to console.error
|
|
150
|
+
console.error(`[API DEBUG] Failed to write to ${output}, falling back to console`);
|
|
151
|
+
console.error(content);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
3
155
|
/**
|
|
4
156
|
* Redacts the middle of a string while keeping a prefix and suffix visible.
|
|
5
157
|
* Ensures that if the string is too short, everything is redacted.
|
|
@@ -27,12 +179,7 @@ const redactHeaders = (kv) => {
|
|
|
27
179
|
const _k = k.toLowerCase();
|
|
28
180
|
const v = kv[k];
|
|
29
181
|
if (sensitiveHeaders.has(_k)) {
|
|
30
|
-
|
|
31
|
-
values.push(`${_k}=Bearer ${redact(v.substring(7))}`);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
values.push(`${_k}=${redact(v)}`);
|
|
35
|
-
}
|
|
182
|
+
values.push(`${_k}=${redactSensitiveHeader(k, v)}`);
|
|
36
183
|
}
|
|
37
184
|
else {
|
|
38
185
|
values.push(`${_k}=${v}`);
|
|
@@ -99,11 +246,19 @@ class ServerFetchAdapter {
|
|
|
99
246
|
};
|
|
100
247
|
}
|
|
101
248
|
if (res.status === 404) {
|
|
249
|
+
// Log debug info for 404 errors if debugging is enabled
|
|
250
|
+
if (getDebugOutput()) {
|
|
251
|
+
const responseBody = await res.clone().text();
|
|
252
|
+
logAPIDebug(url, method, headers, options.body, res, responseBody);
|
|
253
|
+
}
|
|
102
254
|
return {
|
|
103
255
|
ok: false,
|
|
104
256
|
response: res,
|
|
105
257
|
};
|
|
106
258
|
}
|
|
259
|
+
// Clone response to read body for debug logging before toServiceException consumes it
|
|
260
|
+
const responseBody = getDebugOutput() ? await res.clone().text() : '';
|
|
261
|
+
logAPIDebug(url, method, headers, options.body, res, responseBody);
|
|
107
262
|
const err = await toServiceException(method, url, res);
|
|
108
263
|
throw err;
|
|
109
264
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.35",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"prepublishOnly": "bun run clean && bun run build"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@agentuity/core": "0.1.
|
|
29
|
-
"@agentuity/schema": "0.1.
|
|
28
|
+
"@agentuity/core": "0.1.35",
|
|
29
|
+
"@agentuity/schema": "0.1.35",
|
|
30
30
|
"zod": "^4.3.5"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@agentuity/test-utils": "0.1.
|
|
33
|
+
"@agentuity/test-utils": "0.1.35",
|
|
34
34
|
"@types/bun": "latest",
|
|
35
35
|
"@types/node": "^22.0.0",
|
|
36
36
|
"bun-types": "latest",
|
|
@@ -14,7 +14,11 @@ const ResourceListResponse = z.object({
|
|
|
14
14
|
env: z.record(z.string(), z.string()).describe('environment variables for the resource'),
|
|
15
15
|
bucket_type: z.string().describe('the bucket type (user or snapshots)'),
|
|
16
16
|
internal: z.boolean().describe('whether this is a system-managed bucket'),
|
|
17
|
-
description: z
|
|
17
|
+
description: z
|
|
18
|
+
.string()
|
|
19
|
+
.nullable()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('optional description of the bucket'),
|
|
18
22
|
})
|
|
19
23
|
),
|
|
20
24
|
db: z.array(
|
|
@@ -95,8 +95,7 @@ const SandboxCreateRequestSchema = z
|
|
|
95
95
|
return true;
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
|
-
message:
|
|
99
|
-
'cannot specify both snapshot and runtime; snapshot includes its own runtime',
|
|
98
|
+
message: 'cannot specify both snapshot and runtime; snapshot includes its own runtime',
|
|
100
99
|
path: ['snapshot'],
|
|
101
100
|
}
|
|
102
101
|
)
|
package/src/server.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
HttpMethod,
|
|
8
8
|
} from '@agentuity/core';
|
|
9
9
|
import { ServiceException, toServiceException, fromResponse } from '@agentuity/core';
|
|
10
|
+
import { appendFileSync } from 'node:fs';
|
|
10
11
|
|
|
11
12
|
interface ServiceAdapterConfig {
|
|
12
13
|
headers: Record<string, string>;
|
|
@@ -19,7 +20,168 @@ interface ServiceAdapterConfig {
|
|
|
19
20
|
) => Promise<void>;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Headers that contain sensitive information and should be redacted in debug logs.
|
|
25
|
+
* Includes authentication tokens, API keys, cookies, and proxy credentials.
|
|
26
|
+
*/
|
|
27
|
+
const sensitiveHeaders = new Set([
|
|
28
|
+
'authorization',
|
|
29
|
+
'x-api-key',
|
|
30
|
+
'cookie',
|
|
31
|
+
'set-cookie',
|
|
32
|
+
'proxy-authorization',
|
|
33
|
+
]);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Check if API debug logging is enabled and return the output destination.
|
|
37
|
+
* Returns:
|
|
38
|
+
* - 'console' if CI=1/true or AGENTUITY_API_DEBUG=1/true
|
|
39
|
+
* - file path string if AGENTUITY_API_DEBUG is set to a path
|
|
40
|
+
* - null if debug logging is disabled (including AGENTUITY_API_DEBUG=0/false)
|
|
41
|
+
*/
|
|
42
|
+
function getDebugOutput(): 'console' | string | null {
|
|
43
|
+
const apiDebug = process.env.AGENTUITY_API_DEBUG?.trim();
|
|
44
|
+
if (apiDebug) {
|
|
45
|
+
const normalized = apiDebug.toLowerCase();
|
|
46
|
+
// Check if explicitly disabled
|
|
47
|
+
if (normalized === '0' || normalized === 'false') {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
// Check if it's a truthy value (console output)
|
|
51
|
+
if (normalized === '1' || normalized === 'true') {
|
|
52
|
+
return 'console';
|
|
53
|
+
}
|
|
54
|
+
// Treat any other non-empty value as a file path
|
|
55
|
+
return apiDebug;
|
|
56
|
+
}
|
|
57
|
+
// Fall back to CI environment check
|
|
58
|
+
if (process.env.CI === '1' || process.env.CI === 'true') {
|
|
59
|
+
return 'console';
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Format request body for CI debug logging
|
|
66
|
+
*/
|
|
67
|
+
function formatRequestBody(body: unknown): string {
|
|
68
|
+
if (body === undefined || body === null) {
|
|
69
|
+
return '[no body]';
|
|
70
|
+
}
|
|
71
|
+
if (typeof body === 'string') {
|
|
72
|
+
return body;
|
|
73
|
+
}
|
|
74
|
+
if (body instanceof Uint8Array) {
|
|
75
|
+
return `[binary data: ${body.length} bytes]`;
|
|
76
|
+
}
|
|
77
|
+
if (body instanceof ArrayBuffer) {
|
|
78
|
+
return `[binary data: ${body.byteLength} bytes]`;
|
|
79
|
+
}
|
|
80
|
+
if (body instanceof ReadableStream) {
|
|
81
|
+
return '[stream]';
|
|
82
|
+
}
|
|
83
|
+
return String(body);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Format a sensitive header value, preserving Bearer prefix if present.
|
|
88
|
+
*/
|
|
89
|
+
function redactSensitiveHeader(key: string, value: string): string {
|
|
90
|
+
const _k = key.toLowerCase();
|
|
91
|
+
// Handle Bearer tokens in authorization and proxy-authorization headers
|
|
92
|
+
if ((_k === 'authorization' || _k === 'proxy-authorization') && value.startsWith('Bearer ')) {
|
|
93
|
+
return `Bearer ${redact(value.substring(7))}`;
|
|
94
|
+
}
|
|
95
|
+
return redact(value);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Format headers as a readable string for debug logging.
|
|
100
|
+
* Sensitive headers (auth tokens, cookies, API keys) are redacted.
|
|
101
|
+
*/
|
|
102
|
+
function formatHeaders(headers: Headers | Record<string, string>): string {
|
|
103
|
+
const entries: string[] = [];
|
|
104
|
+
if (headers instanceof Headers) {
|
|
105
|
+
headers.forEach((value, key) => {
|
|
106
|
+
const _k = key.toLowerCase();
|
|
107
|
+
if (sensitiveHeaders.has(_k)) {
|
|
108
|
+
entries.push(` ${key}: ${redactSensitiveHeader(key, value)}`);
|
|
109
|
+
} else {
|
|
110
|
+
entries.push(` ${key}: ${value}`);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
} else {
|
|
114
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
115
|
+
const _k = key.toLowerCase();
|
|
116
|
+
if (sensitiveHeaders.has(_k)) {
|
|
117
|
+
entries.push(` ${key}: ${redactSensitiveHeader(key, value)}`);
|
|
118
|
+
} else {
|
|
119
|
+
entries.push(` ${key}: ${value}`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return entries.join('\n');
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Log detailed debug information when API requests fail.
|
|
128
|
+
* Output destination is determined by AGENTUITY_API_DEBUG or CI environment variables.
|
|
129
|
+
*/
|
|
130
|
+
function logAPIDebug(
|
|
131
|
+
url: string,
|
|
132
|
+
method: string,
|
|
133
|
+
requestHeaders: Record<string, string>,
|
|
134
|
+
requestBody: unknown,
|
|
135
|
+
response: Response,
|
|
136
|
+
responseBody: string
|
|
137
|
+
): void {
|
|
138
|
+
const output = getDebugOutput();
|
|
139
|
+
if (!output) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const separator = '='.repeat(60);
|
|
144
|
+
const timestamp = new Date().toISOString();
|
|
145
|
+
const lines = [
|
|
146
|
+
'',
|
|
147
|
+
separator,
|
|
148
|
+
`API DEBUG: Request Failed [${timestamp}]`,
|
|
149
|
+
separator,
|
|
150
|
+
'',
|
|
151
|
+
'>>> REQUEST',
|
|
152
|
+
`URL: ${url}`,
|
|
153
|
+
`Method: ${method}`,
|
|
154
|
+
'Headers:',
|
|
155
|
+
formatHeaders(requestHeaders),
|
|
156
|
+
'Body:',
|
|
157
|
+
` ${formatRequestBody(requestBody)}`,
|
|
158
|
+
'',
|
|
159
|
+
'<<< RESPONSE',
|
|
160
|
+
`Status: ${response.status} ${response.statusText}`,
|
|
161
|
+
'Headers:',
|
|
162
|
+
formatHeaders(response.headers),
|
|
163
|
+
'Body:',
|
|
164
|
+
` ${responseBody || '[empty]'}`,
|
|
165
|
+
'',
|
|
166
|
+
separator,
|
|
167
|
+
'',
|
|
168
|
+
];
|
|
169
|
+
|
|
170
|
+
const content = lines.join('\n');
|
|
171
|
+
|
|
172
|
+
if (output === 'console') {
|
|
173
|
+
console.error(content);
|
|
174
|
+
} else {
|
|
175
|
+
// Append to file
|
|
176
|
+
try {
|
|
177
|
+
appendFileSync(output, content + '\n');
|
|
178
|
+
} catch {
|
|
179
|
+
// If file write fails, fall back to console.error
|
|
180
|
+
console.error(`[API DEBUG] Failed to write to ${output}, falling back to console`);
|
|
181
|
+
console.error(content);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
23
185
|
|
|
24
186
|
/**
|
|
25
187
|
* Redacts the middle of a string while keeping a prefix and suffix visible.
|
|
@@ -56,11 +218,7 @@ const redactHeaders = (kv: Record<string, string>): string => {
|
|
|
56
218
|
const _k = k.toLowerCase();
|
|
57
219
|
const v = kv[k];
|
|
58
220
|
if (sensitiveHeaders.has(_k)) {
|
|
59
|
-
|
|
60
|
-
values.push(`${_k}=Bearer ${redact(v.substring(7))}`);
|
|
61
|
-
} else {
|
|
62
|
-
values.push(`${_k}=${redact(v)}`);
|
|
63
|
-
}
|
|
221
|
+
values.push(`${_k}=${redactSensitiveHeader(k, v)}`);
|
|
64
222
|
} else {
|
|
65
223
|
values.push(`${_k}=${v}`);
|
|
66
224
|
}
|
|
@@ -129,11 +287,19 @@ class ServerFetchAdapter implements FetchAdapter {
|
|
|
129
287
|
};
|
|
130
288
|
}
|
|
131
289
|
if (res.status === 404) {
|
|
290
|
+
// Log debug info for 404 errors if debugging is enabled
|
|
291
|
+
if (getDebugOutput()) {
|
|
292
|
+
const responseBody = await res.clone().text();
|
|
293
|
+
logAPIDebug(url, method, headers, options.body, res, responseBody);
|
|
294
|
+
}
|
|
132
295
|
return {
|
|
133
296
|
ok: false,
|
|
134
297
|
response: res,
|
|
135
298
|
} as FetchErrorResponse;
|
|
136
299
|
}
|
|
300
|
+
// Clone response to read body for debug logging before toServiceException consumes it
|
|
301
|
+
const responseBody = getDebugOutput() ? await res.clone().text() : '';
|
|
302
|
+
logAPIDebug(url, method, headers, options.body, res, responseBody);
|
|
137
303
|
const err = await toServiceException(method, url, res);
|
|
138
304
|
throw err;
|
|
139
305
|
}
|