@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 +16 -18
- package/dist/apiBasedTools.js +11 -9
- package/package.json +1 -1
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,
|
|
102
|
+
post_process_response: async ({ adminforth, output, inputs, userTimeZone }) => {
|
|
111
103
|
if (hasToolError(output)) {
|
|
112
104
|
return output;
|
|
113
105
|
}
|
|
114
106
|
|
|
115
|
-
const
|
|
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(
|
|
304
|
-
|
|
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.
|
|
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,
|
package/dist/apiBasedTools.js
CHANGED
|
@@ -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,
|
|
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
|
|
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(
|
|
200
|
-
const
|
|
201
|
-
|
|
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,
|