@adminforth/agent 1.26.8 → 1.26.10

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/apiBasedTools.ts CHANGED
@@ -110,11 +110,17 @@ const TOOL_OVERRIDES: Record<string, ToolOverride> = {
110
110
  return output;
111
111
  }
112
112
 
113
+ if (!hasGetResourceDataRows(output)) {
114
+ logger.warn(
115
+ `Skipping datetime formatting for get_resource_data because response.data is not an array for resource ${getInputString(inputs, 'resourceId') ?? 'unknown'}`,
116
+ );
117
+ return output;
118
+ }
119
+
113
120
  const localizedTimeZone = userTimeZone ?? DEFAULT_USER_TIME_ZONE;
114
- const response = output as GetResourceDataToolResponse;
115
- formatDateTimeColumns(response.data, dateTimeColumnNames, localizedTimeZone);
121
+ formatDateTimeColumns(output.data, dateTimeColumnNames, localizedTimeZone);
116
122
 
117
- return response;
123
+ return output;
118
124
  },
119
125
  },
120
126
  aggregate: {
@@ -288,6 +294,14 @@ function hasToolError(output: unknown): output is { error: unknown } {
288
294
  return typeof output === 'object' && output !== null && 'error' in output;
289
295
  }
290
296
 
297
+ function hasGetResourceDataRows(output: unknown): output is GetResourceDataToolResponse {
298
+ if (typeof output !== 'object' || output === null || !('data' in output)) {
299
+ return false;
300
+ }
301
+
302
+ return Array.isArray((output as { data?: unknown }).data);
303
+ }
304
+
291
305
  function getDateTimeColumnNames(
292
306
  adminforth: IAdminForth,
293
307
  inputs: Record<string, unknown> | undefined,
@@ -726,11 +740,13 @@ async function callOpenApiSchema(params: {
726
740
  toolName,
727
741
  });
728
742
  const hasRequestBody = !METHODS_WITHOUT_REQUEST_BODY.has(method);
743
+ logger.info(`Calling OpenAPI tool "${toolName}" with method ${method} at URL ${requestUrl}`);
729
744
  const response = await fetch(hasRequestBody ? requestUrl : appendInputsToQueryString(requestUrl, body), {
730
745
  method,
731
746
  headers: createToolRequestHeaders(httpExtra, userTimeZone),
732
747
  body: hasRequestBody ? JSON.stringify(body) : undefined,
733
748
  });
749
+ logger.info(`Received response with status ${response.status} from OpenAPI tool "${toolName}"`);
734
750
 
735
751
  return parseOpenApiToolResponse(response);
736
752
  }
package/build.log CHANGED
@@ -38,5 +38,5 @@ custom/skills/fetch_data/SKILL.md
38
38
  custom/skills/mutate_data/
39
39
  custom/skills/mutate_data/SKILL.md
40
40
 
41
- sent 207,935 bytes received 562 bytes 416,994.00 bytes/sec
41
+ sent 207,931 bytes received 562 bytes 416,986.00 bytes/sec
42
42
  total size is 205,621 speedup is 0.99
@@ -55,6 +55,7 @@ const TOOL_OVERRIDES = {
55
55
  get_resource_data: {
56
56
  format_tool: ({ inputs, resourceLabel }) => (`Get ${getDataPrefix(inputs)}${resourceLabel}`),
57
57
  post_process_response: (_a) => __awaiter(void 0, [_a], void 0, function* ({ adminforth, output, inputs, userTimeZone }) {
58
+ var _b;
58
59
  if (hasToolError(output)) {
59
60
  return output;
60
61
  }
@@ -62,10 +63,13 @@ const TOOL_OVERRIDES = {
62
63
  if (dateTimeColumnNames.length === 0) {
63
64
  return output;
64
65
  }
66
+ if (!hasGetResourceDataRows(output)) {
67
+ logger.warn(`Skipping datetime formatting for get_resource_data because response.data is not an array for resource ${(_b = getInputString(inputs, 'resourceId')) !== null && _b !== void 0 ? _b : 'unknown'}`);
68
+ return output;
69
+ }
65
70
  const localizedTimeZone = userTimeZone !== null && userTimeZone !== void 0 ? userTimeZone : DEFAULT_USER_TIME_ZONE;
66
- const response = output;
67
- formatDateTimeColumns(response.data, dateTimeColumnNames, localizedTimeZone);
68
- return response;
71
+ formatDateTimeColumns(output.data, dateTimeColumnNames, localizedTimeZone);
72
+ return output;
69
73
  }),
70
74
  },
71
75
  aggregate: {
@@ -192,6 +196,12 @@ function wipePath(target, pathParts) {
192
196
  function hasToolError(output) {
193
197
  return typeof output === 'object' && output !== null && 'error' in output;
194
198
  }
199
+ function hasGetResourceDataRows(output) {
200
+ if (typeof output !== 'object' || output === null || !('data' in output)) {
201
+ return false;
202
+ }
203
+ return Array.isArray(output.data);
204
+ }
195
205
  function getDateTimeColumnNames(adminforth, inputs) {
196
206
  const resourceId = getInputString(inputs, 'resourceId');
197
207
  const resource = adminforth.config.resources.find((res) => res.resourceId === resourceId);
@@ -493,11 +503,13 @@ function callOpenApiSchema(params) {
493
503
  toolName,
494
504
  });
495
505
  const hasRequestBody = !METHODS_WITHOUT_REQUEST_BODY.has(method);
506
+ logger.info(`Calling OpenAPI tool "${toolName}" with method ${method} at URL ${requestUrl}`);
496
507
  const response = yield fetch(hasRequestBody ? requestUrl : appendInputsToQueryString(requestUrl, body), {
497
508
  method,
498
509
  headers: createToolRequestHeaders(httpExtra, userTimeZone),
499
510
  body: hasRequestBody ? JSON.stringify(body) : undefined,
500
511
  });
512
+ logger.info(`Received response with status ${response.status} from OpenAPI tool "${toolName}"`);
501
513
  return parseOpenApiToolResponse(response);
502
514
  });
503
515
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminforth/agent",
3
- "version": "1.26.8",
3
+ "version": "1.26.10",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",