@adminforth/agent 1.26.7 → 1.26.8

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
@@ -23,6 +23,7 @@ type CookieItem = {
23
23
  type ToolOverrideCallParams = Pick<ApiBasedToolCallParams, 'httpExtra' | 'inputs' | 'userTimeZone'>;
24
24
 
25
25
  type ToolOverrideContext = {
26
+ adminforth: IAdminForth;
26
27
  output?: unknown;
27
28
  adminUser?: AdminUser;
28
29
  httpExtra?: Partial<HttpExtra>;
@@ -38,15 +39,6 @@ type ToolOverride = {
38
39
  post_process_response?: (params: ToolOverrideContext) => Promise<unknown> | unknown;
39
40
  };
40
41
 
41
- type GetResourceToolResponse = {
42
- resource: {
43
- columns: Array<{
44
- name: string;
45
- type?: string;
46
- }>;
47
- };
48
- };
49
-
50
42
  type GetResourceDataToolResponse = {
51
43
  data: Array<Record<string, unknown>>;
52
44
  total?: number;
@@ -107,16 +99,12 @@ const TOOL_OVERRIDES: Record<string, ToolOverride> = {
107
99
  format_tool: ({ inputs, resourceLabel }) => (
108
100
  `Get ${getDataPrefix(inputs)}${resourceLabel}`
109
101
  ),
110
- post_process_response: async ({ output, inputs, invokeTool, userTimeZone }) => {
102
+ post_process_response: async ({ adminforth, output, inputs, userTimeZone }) => {
111
103
  if (hasToolError(output)) {
112
104
  return output;
113
105
  }
114
106
 
115
- const resourceId = inputs?.resourceId as string;
116
- const getResourceOutput = await invokeTool('get_resource', {
117
- inputs: { resourceId },
118
- });
119
- const dateTimeColumnNames = getDateTimeColumnNames(getResourceOutput);
107
+ const dateTimeColumnNames = getDateTimeColumnNames(adminforth, inputs);
120
108
 
121
109
  if (dateTimeColumnNames.length === 0) {
122
110
  return output;
@@ -300,10 +288,18 @@ function hasToolError(output: unknown): output is { error: unknown } {
300
288
  return typeof output === 'object' && output !== null && 'error' in output;
301
289
  }
302
290
 
303
- function getDateTimeColumnNames(output: unknown): string[] {
304
- const resource = (output as GetResourceToolResponse).resource;
291
+ function getDateTimeColumnNames(
292
+ adminforth: IAdminForth,
293
+ inputs: Record<string, unknown> | undefined,
294
+ ): string[] {
295
+ const resourceId = getInputString(inputs, 'resourceId');
296
+ const resource = adminforth.config.resources.find((res) => res.resourceId === resourceId);
297
+
298
+ if (!resource) {
299
+ return [];
300
+ }
305
301
 
306
- return resource.columns
302
+ return resource.dataSourceColumns
307
303
  .filter((column) => column.type === AdminForthDataTypes.DATETIME)
308
304
  .map((column) => column.name);
309
305
  }
@@ -378,6 +374,7 @@ async function applyToolOverride(params: {
378
374
  }
379
375
 
380
376
  const postProcessedOutput = await override.post_process_response({
377
+ adminforth,
381
378
  output: sanitizedOutput,
382
379
  adminUser,
383
380
  httpExtra,
@@ -450,6 +447,7 @@ export async function formatApiBasedToolCall(params: {
450
447
  const formatTool = TOOL_OVERRIDES[params.toolName]?.format_tool;
451
448
 
452
449
  return await formatTool?.({
450
+ adminforth: params.adminforth,
453
451
  adminUser: params.adminUser,
454
452
  httpExtra: params.httpExtra,
455
453
  inputs: params.inputs,
@@ -54,15 +54,11 @@ const TOOL_OVERRIDES = {
54
54
  },
55
55
  get_resource_data: {
56
56
  format_tool: ({ inputs, resourceLabel }) => (`Get ${getDataPrefix(inputs)}${resourceLabel}`),
57
- post_process_response: (_a) => __awaiter(void 0, [_a], void 0, function* ({ output, inputs, invokeTool, userTimeZone }) {
57
+ post_process_response: (_a) => __awaiter(void 0, [_a], void 0, function* ({ adminforth, output, inputs, userTimeZone }) {
58
58
  if (hasToolError(output)) {
59
59
  return output;
60
60
  }
61
- const resourceId = inputs === null || inputs === void 0 ? void 0 : inputs.resourceId;
62
- const getResourceOutput = yield invokeTool('get_resource', {
63
- inputs: { resourceId },
64
- });
65
- const dateTimeColumnNames = getDateTimeColumnNames(getResourceOutput);
61
+ const dateTimeColumnNames = getDateTimeColumnNames(adminforth, inputs);
66
62
  if (dateTimeColumnNames.length === 0) {
67
63
  return output;
68
64
  }
@@ -196,9 +192,13 @@ function wipePath(target, pathParts) {
196
192
  function hasToolError(output) {
197
193
  return typeof output === 'object' && output !== null && 'error' in output;
198
194
  }
199
- function getDateTimeColumnNames(output) {
200
- const resource = output.resource;
201
- return resource.columns
195
+ function getDateTimeColumnNames(adminforth, inputs) {
196
+ const resourceId = getInputString(inputs, 'resourceId');
197
+ const resource = adminforth.config.resources.find((res) => res.resourceId === resourceId);
198
+ if (!resource) {
199
+ return [];
200
+ }
201
+ return resource.dataSourceColumns
202
202
  .filter((column) => column.type === AdminForthDataTypes.DATETIME)
203
203
  .map((column) => column.name);
204
204
  }
@@ -242,6 +242,7 @@ function applyToolOverride(params) {
242
242
  return sanitizedOutput;
243
243
  }
244
244
  const postProcessedOutput = yield override.post_process_response({
245
+ adminforth,
245
246
  output: sanitizedOutput,
246
247
  adminUser,
247
248
  httpExtra,
@@ -301,6 +302,7 @@ export function formatApiBasedToolCall(params) {
301
302
  var _a;
302
303
  const formatTool = (_a = TOOL_OVERRIDES[params.toolName]) === null || _a === void 0 ? void 0 : _a.format_tool;
303
304
  return yield (formatTool === null || formatTool === void 0 ? void 0 : formatTool({
305
+ adminforth: params.adminforth,
304
306
  adminUser: params.adminUser,
305
307
  httpExtra: params.httpExtra,
306
308
  inputs: params.inputs,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminforth/agent",
3
- "version": "1.26.7",
3
+ "version": "1.26.8",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",