@apify/actors-mcp-server 0.10.14-beta.0 → 0.10.14-beta.2
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/const.d.ts +1 -0
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +1 -0
- package/dist/const.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +3 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/server_card.d.ts +3 -0
- package/dist/server_card.d.ts.map +1 -1
- package/dist/server_card.js +18 -1
- package/dist/server_card.js.map +1 -1
- package/dist/tools/common/dataset_collection.d.ts.map +1 -1
- package/dist/tools/common/dataset_collection.js +17 -4
- package/dist/tools/common/dataset_collection.js.map +1 -1
- package/dist/tools/common/get_dataset.d.ts.map +1 -1
- package/dist/tools/common/get_dataset.js +12 -3
- package/dist/tools/common/get_dataset.js.map +1 -1
- package/dist/tools/common/get_dataset_items.d.ts.map +1 -1
- package/dist/tools/common/get_dataset_items.js +10 -4
- package/dist/tools/common/get_dataset_items.js.map +1 -1
- package/dist/tools/common/get_dataset_schema.d.ts.map +1 -1
- package/dist/tools/common/get_dataset_schema.js +13 -4
- package/dist/tools/common/get_dataset_schema.js.map +1 -1
- package/dist/tools/common/get_key_value_store.d.ts.map +1 -1
- package/dist/tools/common/get_key_value_store.js +12 -3
- package/dist/tools/common/get_key_value_store.js.map +1 -1
- package/dist/tools/common/get_key_value_store_keys.d.ts.map +1 -1
- package/dist/tools/common/get_key_value_store_keys.js +15 -3
- package/dist/tools/common/get_key_value_store_keys.js.map +1 -1
- package/dist/tools/common/get_key_value_store_record.d.ts.map +1 -1
- package/dist/tools/common/get_key_value_store_record.js +12 -4
- package/dist/tools/common/get_key_value_store_record.js.map +1 -1
- package/dist/tools/common/key_value_store_collection.d.ts.map +1 -1
- package/dist/tools/common/key_value_store_collection.js +17 -4
- package/dist/tools/common/key_value_store_collection.js.map +1 -1
- package/dist/tools/common/storage_helpers.d.ts +69 -0
- package/dist/tools/common/storage_helpers.d.ts.map +1 -1
- package/dist/tools/common/storage_helpers.js +77 -1
- package/dist/tools/common/storage_helpers.js.map +1 -1
- package/dist/tools/core/actor_run_response.js +4 -4
- package/dist/tools/core/actor_run_response.js.map +1 -1
- package/dist/tools/structured_output_schemas.d.ts +158 -44
- package/dist/tools/structured_output_schemas.d.ts.map +1 -1
- package/dist/tools/structured_output_schemas.js +109 -83
- package/dist/tools/structured_output_schemas.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/generic.d.ts +2 -0
- package/dist/utils/generic.d.ts.map +1 -1
- package/dist/utils/generic.js +13 -0
- package/dist/utils/generic.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,12 +3,12 @@ import { z } from 'zod';
|
|
|
3
3
|
import { HelperTools, HTTP_NOT_FOUND, TOOL_STATUS } from '../../const.js';
|
|
4
4
|
import { TOOL_TYPE } from '../../types.js';
|
|
5
5
|
import { compileSchema } from '../../utils/ajv.js';
|
|
6
|
-
import { wrapJsonText } from '../../utils/encode_text.js';
|
|
7
6
|
import { stripQuoteWrappers } from '../../utils/generic.js';
|
|
8
7
|
import { getHttpStatusCode } from '../../utils/logging.js';
|
|
9
8
|
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
10
9
|
import { generateSchemaFromItems } from '../../utils/schema_generation.js';
|
|
11
|
-
import {
|
|
10
|
+
import { datasetSchemaOutputSchema } from '../structured_output_schemas.js';
|
|
11
|
+
import { buildStorageNotFound, buildStorageResponse } from './storage_helpers.js';
|
|
12
12
|
const getDatasetSchemaArgs = z.object({
|
|
13
13
|
datasetId: z.string().min(1).describe('Dataset ID or username~dataset-name.'),
|
|
14
14
|
limit: z
|
|
@@ -40,6 +40,7 @@ export const getDatasetSchema = Object.freeze({
|
|
|
40
40
|
- user_input: Generate schema for dataset 34das2 using 10 items
|
|
41
41
|
- user_input: Show schema of username~my-dataset (clean items only)`,
|
|
42
42
|
inputSchema: z.toJSONSchema(getDatasetSchemaArgs),
|
|
43
|
+
outputSchema: datasetSchemaOutputSchema,
|
|
43
44
|
ajvValidate: compileSchema(z.toJSONSchema(getDatasetSchemaArgs)),
|
|
44
45
|
paymentRequired: true,
|
|
45
46
|
annotations: {
|
|
@@ -50,6 +51,7 @@ export const getDatasetSchema = Object.freeze({
|
|
|
50
51
|
openWorldHint: false,
|
|
51
52
|
},
|
|
52
53
|
call: async (toolArgs) => {
|
|
54
|
+
var _a;
|
|
53
55
|
const { args, apifyClient: client } = toolArgs;
|
|
54
56
|
const parsed = getDatasetSchemaArgs.parse(args);
|
|
55
57
|
const datasetId = stripQuoteWrappers(parsed.datasetId);
|
|
@@ -69,7 +71,11 @@ export const getDatasetSchema = Object.freeze({
|
|
|
69
71
|
}
|
|
70
72
|
const datasetItems = datasetResponse.items;
|
|
71
73
|
if (datasetItems.length === 0) {
|
|
72
|
-
|
|
74
|
+
// Empty dataset: no items to infer from, but still emit a schema-conforming
|
|
75
|
+
// response (empty schema = "any") rather than bare text.
|
|
76
|
+
const summary = `Dataset '${datasetId}' is empty; no schema to infer.`;
|
|
77
|
+
const nextStep = `Use ${HelperTools.DATASET_GET} with datasetId=${datasetId} to check itemCount and stats.`;
|
|
78
|
+
return buildStorageResponse({ structuredContent: { datasetId, schema: {} }, summary, nextStep });
|
|
73
79
|
}
|
|
74
80
|
// Generate schema using the shared utility
|
|
75
81
|
const schema = generateSchemaFromItems(datasetItems, {
|
|
@@ -84,7 +90,10 @@ export const getDatasetSchema = Object.freeze({
|
|
|
84
90
|
telemetry: { toolStatus: TOOL_STATUS.FAILED },
|
|
85
91
|
});
|
|
86
92
|
}
|
|
87
|
-
|
|
93
|
+
const fieldCount = Object.keys((_a = schema.items.properties) !== null && _a !== void 0 ? _a : {}).length;
|
|
94
|
+
const summary = `Schema inferred from ${datasetItems.length} ${datasetItems.length === 1 ? 'item' : 'items'}, ${fieldCount} ${fieldCount === 1 ? 'field' : 'fields'}.`;
|
|
95
|
+
const nextStep = `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and fields="..." to project specific fields.`;
|
|
96
|
+
return buildStorageResponse({ structuredContent: { datasetId, schema }, summary, nextStep });
|
|
88
97
|
},
|
|
89
98
|
});
|
|
90
99
|
//# sourceMappingURL=get_dataset_schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_dataset_schema.js","sourceRoot":"","sources":["../../../src/tools/common/get_dataset_schema.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get_dataset_schema.js","sourceRoot":"","sources":["../../../src/tools/common/get_dataset_schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_key_value_store.d.ts","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAWnF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"get_key_value_store.d.ts","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAWnF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAyCpB,CAAC"}
|
|
@@ -3,9 +3,9 @@ import { z } from 'zod';
|
|
|
3
3
|
import { HelperTools } from '../../const.js';
|
|
4
4
|
import { TOOL_TYPE } from '../../types.js';
|
|
5
5
|
import { compileSchema } from '../../utils/ajv.js';
|
|
6
|
-
import { wrapJsonText } from '../../utils/encode_text.js';
|
|
7
6
|
import { stripQuoteWrappers } from '../../utils/generic.js';
|
|
8
|
-
import {
|
|
7
|
+
import { keyValueStoreOutputSchema } from '../structured_output_schemas.js';
|
|
8
|
+
import { buildStorageNotFound, buildStorageResponse } from './storage_helpers.js';
|
|
9
9
|
const getKeyValueStoreArgs = z.object({
|
|
10
10
|
keyValueStoreId: z.string().min(1).describe('Key-value store ID or username~store-name'),
|
|
11
11
|
});
|
|
@@ -26,6 +26,7 @@ export const getKeyValueStore = Object.freeze({
|
|
|
26
26
|
- user_input: Show info for key-value store username~my-store
|
|
27
27
|
- user_input: Get details for store adb123`,
|
|
28
28
|
inputSchema: z.toJSONSchema(getKeyValueStoreArgs),
|
|
29
|
+
outputSchema: keyValueStoreOutputSchema,
|
|
29
30
|
ajvValidate: compileSchema(z.toJSONSchema(getKeyValueStoreArgs)),
|
|
30
31
|
paymentRequired: true,
|
|
31
32
|
annotations: {
|
|
@@ -36,6 +37,7 @@ export const getKeyValueStore = Object.freeze({
|
|
|
36
37
|
openWorldHint: false,
|
|
37
38
|
},
|
|
38
39
|
call: async (toolArgs) => {
|
|
40
|
+
var _a, _b;
|
|
39
41
|
const { args, apifyClient: client } = toolArgs;
|
|
40
42
|
const parsed = getKeyValueStoreArgs.parse(args);
|
|
41
43
|
const keyValueStoreId = stripQuoteWrappers(parsed.keyValueStoreId);
|
|
@@ -43,7 +45,14 @@ export const getKeyValueStore = Object.freeze({
|
|
|
43
45
|
if (!kvStore) {
|
|
44
46
|
return buildStorageNotFound(`Key-value store '${keyValueStoreId}' not found.`);
|
|
45
47
|
}
|
|
46
|
-
|
|
48
|
+
const bytes = (_a = kvStore.stats) === null || _a === void 0 ? void 0 : _a.storageBytes;
|
|
49
|
+
const summary = `Key-value store '${(_b = kvStore.name) !== null && _b !== void 0 ? _b : keyValueStoreId}'${bytes !== undefined ? ` holds ${bytes} bytes` : ''}.`;
|
|
50
|
+
const nextStep = `Use ${HelperTools.KEY_VALUE_STORE_KEYS_GET} with keyValueStoreId=${keyValueStoreId} to list keys.`;
|
|
51
|
+
return buildStorageResponse({
|
|
52
|
+
structuredContent: kvStore,
|
|
53
|
+
summary,
|
|
54
|
+
nextStep,
|
|
55
|
+
});
|
|
47
56
|
},
|
|
48
57
|
});
|
|
49
58
|
//# sourceMappingURL=get_key_value_store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_key_value_store.js","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get_key_value_store.js","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAElF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC3F,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAc,MAAM,CAAC,MAAM,CAAC;IACrD,IAAI,EAAE,SAAS,CAAC,QAAQ;IACxB,IAAI,EAAE,WAAW,CAAC,mBAAmB;IACrC,WAAW,EAAE,MAAM,CAAA;;;;;;;;;mDAS4B;IAC/C,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAoB;IACpE,YAAY,EAAE,yBAAyB;IACvC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAChE,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE;QACT,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACvB;IACD,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;;QACvC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,oBAAoB,CAAC,oBAAoB,eAAe,cAAc,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,KAAK,GAAG,MAAC,OAAO,CAAC,KAA+C,0CAAE,YAAY,CAAC;QACrF,MAAM,OAAO,GAAG,oBAAoB,MAAA,OAAO,CAAC,IAAI,mCAAI,eAAe,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC7H,MAAM,QAAQ,GAAG,OAAO,WAAW,CAAC,wBAAwB,yBAAyB,eAAe,gBAAgB,CAAC;QACrH,OAAO,oBAAoB,CAAC;YACxB,iBAAiB,EAAE,OAA6C;YAChE,OAAO;YACP,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;CACK,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_key_value_store_keys.d.ts","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_keys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"get_key_value_store_keys.d.ts","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_keys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAiBnF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAyDxB,CAAC"}
|
|
@@ -3,11 +3,10 @@ import { z } from 'zod';
|
|
|
3
3
|
import { HelperTools, HTTP_NOT_FOUND } from '../../const.js';
|
|
4
4
|
import { TOOL_TYPE } from '../../types.js';
|
|
5
5
|
import { compileSchema } from '../../utils/ajv.js';
|
|
6
|
-
import { encodeToon } from '../../utils/encode_text.js';
|
|
7
6
|
import { stripQuoteWrappers } from '../../utils/generic.js';
|
|
8
7
|
import { getHttpStatusCode } from '../../utils/logging.js';
|
|
9
8
|
import { keyValueStoreKeysOutputSchema } from '../structured_output_schemas.js';
|
|
10
|
-
import { buildStorageNotFound } from './storage_helpers.js';
|
|
9
|
+
import { buildKvsKeysSummaryNextStep, buildStorageNotFound, buildStorageResponse } from './storage_helpers.js';
|
|
11
10
|
const getKeyValueStoreKeysArgs = z.object({
|
|
12
11
|
keyValueStoreId: z.string().min(1).describe('Key-value store ID or username~store-name'),
|
|
13
12
|
exclusiveStartKey: z
|
|
@@ -45,6 +44,7 @@ export const getKeyValueStoreKeys = Object.freeze({
|
|
|
45
44
|
openWorldHint: false,
|
|
46
45
|
},
|
|
47
46
|
call: async (toolArgs) => {
|
|
47
|
+
var _a;
|
|
48
48
|
const { args, apifyClient: client } = toolArgs;
|
|
49
49
|
const parsed = getKeyValueStoreKeysArgs.parse(args);
|
|
50
50
|
const keyValueStoreId = stripQuoteWrappers(parsed.keyValueStoreId);
|
|
@@ -62,7 +62,19 @@ export const getKeyValueStoreKeys = Object.freeze({
|
|
|
62
62
|
if (!keys) {
|
|
63
63
|
return buildStorageNotFound(`Key-value store '${keyValueStoreId}' not found.`);
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
const { summary, nextStep } = buildKvsKeysSummaryNextStep({
|
|
66
|
+
keyValueStoreId,
|
|
67
|
+
count: keys.items.length,
|
|
68
|
+
isTruncated: keys.isTruncated,
|
|
69
|
+
nextExclusiveStartKey: keys.nextExclusiveStartKey,
|
|
70
|
+
firstKey: (_a = keys.items[0]) === null || _a === void 0 ? void 0 : _a.key,
|
|
71
|
+
});
|
|
72
|
+
return buildStorageResponse({
|
|
73
|
+
structuredContent: { keyValueStoreId, ...keys },
|
|
74
|
+
summary,
|
|
75
|
+
nextStep,
|
|
76
|
+
toon: true,
|
|
77
|
+
});
|
|
66
78
|
},
|
|
67
79
|
});
|
|
68
80
|
//# sourceMappingURL=get_key_value_store_keys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_key_value_store_keys.js","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_keys.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get_key_value_store_keys.js","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_keys.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE/G,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACxF,iBAAiB,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CACvG,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAc,MAAM,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,SAAS,CAAC,QAAQ;IACxB,IAAI,EAAE,WAAW,CAAC,wBAAwB;IAC1C,WAAW,EAAE,MAAM,CAAA;;;;;;;;;;6EAUsD;IACzE,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAoB;IACxE,YAAY,EAAE,6BAA6B;IAC3C,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACpE,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE;QACT,KAAK,EAAE,0BAA0B;QACjC,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACvB;IACD,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;;QACvC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC/C,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnE,kFAAkF;QAClF,wEAAwE;QACxE,MAAM,IAAI,GAAG,MAAM,MAAM;aACpB,aAAa,CAAC,eAAe,CAAC;aAC9B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;aAC9E,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACpB,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,cAAc,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,oBAAoB,CAAC,oBAAoB,eAAe,cAAc,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,2BAA2B,CAAC;YACtD,eAAe;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,QAAQ,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,GAAG;SAC/B,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC;YACxB,iBAAiB,EAAE,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE;YAC/C,OAAO;YACP,QAAQ;YACR,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;CACK,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_key_value_store_record.d.ts","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_record.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAYnF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"get_key_value_store_record.d.ts","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_record.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAYnF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAgD1B,CAAC"}
|
|
@@ -3,9 +3,9 @@ import { z } from 'zod';
|
|
|
3
3
|
import { HelperTools } from '../../const.js';
|
|
4
4
|
import { TOOL_TYPE } from '../../types.js';
|
|
5
5
|
import { compileSchema } from '../../utils/ajv.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { buildStorageNotFound, normalizeRecordKey } from './storage_helpers.js';
|
|
6
|
+
import { computeValueBytes, stripQuoteWrappers } from '../../utils/generic.js';
|
|
7
|
+
import { keyValueStoreRecordOutputSchema } from '../structured_output_schemas.js';
|
|
8
|
+
import { buildStorageNotFound, buildStorageResponse, normalizeRecordKey } from './storage_helpers.js';
|
|
9
9
|
const getKeyValueStoreRecordArgs = z.object({
|
|
10
10
|
keyValueStoreId: z.string().min(1).describe('Key-value store ID or username~store-name'),
|
|
11
11
|
recordKey: z.string().min(1).describe('Key of the record to retrieve.'),
|
|
@@ -27,6 +27,7 @@ export const getKeyValueStoreRecord = Object.freeze({
|
|
|
27
27
|
- user_input: Get record INPUT from store abc123
|
|
28
28
|
- user_input: Get record data.json from store username~my-store`,
|
|
29
29
|
inputSchema: z.toJSONSchema(getKeyValueStoreRecordArgs),
|
|
30
|
+
outputSchema: keyValueStoreRecordOutputSchema,
|
|
30
31
|
ajvValidate: compileSchema(z.toJSONSchema(getKeyValueStoreRecordArgs)),
|
|
31
32
|
paymentRequired: true,
|
|
32
33
|
annotations: {
|
|
@@ -51,7 +52,14 @@ export const getKeyValueStoreRecord = Object.freeze({
|
|
|
51
52
|
: `Key-value store '${keyValueStoreId}' not found.`;
|
|
52
53
|
return buildStorageNotFound(text);
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
+
const bytes = computeValueBytes(record.value);
|
|
56
|
+
const details = [
|
|
57
|
+
record.contentType ? `contentType=${record.contentType}` : undefined,
|
|
58
|
+
bytes !== undefined ? `${bytes} bytes` : undefined,
|
|
59
|
+
].filter(Boolean);
|
|
60
|
+
const summary = `Read '${recordKey}'${details.length ? ` (${details.join(', ')})` : ''}.`;
|
|
61
|
+
// Reading a record is terminal — no nextStep.
|
|
62
|
+
return buildStorageResponse({ structuredContent: { keyValueStoreId, ...record }, summary });
|
|
55
63
|
},
|
|
56
64
|
});
|
|
57
65
|
//# sourceMappingURL=get_key_value_store_record.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_key_value_store_record.js","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_record.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get_key_value_store_record.js","sourceRoot":"","sources":["../../../src/tools/common/get_key_value_store_record.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key_value_store_collection.d.ts","sourceRoot":"","sources":["../../../src/tools/common/key_value_store_collection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AA8BnF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"key_value_store_collection.d.ts","sourceRoot":"","sources":["../../../src/tools/common/key_value_store_collection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AA8BnF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAkD7B,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|
|
3
3
|
import { HelperTools } from '../../const.js';
|
|
4
4
|
import { TOOL_TYPE } from '../../types.js';
|
|
5
5
|
import { compileSchema } from '../../utils/ajv.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { storageListOutputSchema } from '../structured_output_schemas.js';
|
|
7
|
+
import { buildStorageListSummaryNextStep, buildStorageResponse } from './storage_helpers.js';
|
|
8
8
|
const getUserKeyValueStoresListArgs = z.object({
|
|
9
9
|
offset: z
|
|
10
10
|
.number()
|
|
@@ -44,7 +44,7 @@ export const getUserKeyValueStoresList = Object.freeze({
|
|
|
44
44
|
- user_input: List my last 10 key-value stores (newest first)
|
|
45
45
|
- user_input: List unnamed key-value stores`,
|
|
46
46
|
inputSchema: z.toJSONSchema(getUserKeyValueStoresListArgs),
|
|
47
|
-
outputSchema:
|
|
47
|
+
outputSchema: storageListOutputSchema,
|
|
48
48
|
ajvValidate: compileSchema(z.toJSONSchema(getUserKeyValueStoresListArgs)),
|
|
49
49
|
annotations: {
|
|
50
50
|
title: 'Get user key-value stores list',
|
|
@@ -62,7 +62,20 @@ export const getUserKeyValueStoresList = Object.freeze({
|
|
|
62
62
|
desc: parsed.desc,
|
|
63
63
|
unnamed: parsed.unnamed,
|
|
64
64
|
});
|
|
65
|
-
|
|
65
|
+
const { summary, nextStep } = buildStorageListSummaryNextStep({
|
|
66
|
+
count: stores.items.length,
|
|
67
|
+
total: stores.total,
|
|
68
|
+
offset: stores.offset,
|
|
69
|
+
noun: 'key-value stores',
|
|
70
|
+
listToolName: HelperTools.KEY_VALUE_STORE_LIST_GET,
|
|
71
|
+
inspectHint: `Use ${HelperTools.KEY_VALUE_STORE_GET} with a keyValueStoreId from the list to inspect a store.`,
|
|
72
|
+
});
|
|
73
|
+
return buildStorageResponse({
|
|
74
|
+
structuredContent: stores,
|
|
75
|
+
summary,
|
|
76
|
+
nextStep,
|
|
77
|
+
toon: true,
|
|
78
|
+
});
|
|
66
79
|
},
|
|
67
80
|
});
|
|
68
81
|
//# sourceMappingURL=key_value_store_collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key_value_store_collection.js","sourceRoot":"","sources":["../../../src/tools/common/key_value_store_collection.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"key_value_store_collection.js","sourceRoot":"","sources":["../../../src/tools/common/key_value_store_collection.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE7F,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CAAC,iFAAiF,CAAC;SAC3F,OAAO,CAAC,CAAC,CAAC;IACf,KAAK,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,oFAAoF,CAAC;SAC9F,OAAO,CAAC,EAAE,CAAC;IAChB,IAAI,EAAE,CAAC;SACF,OAAO,EAAE;SACT,QAAQ,CACL,yHAAyH,CAC5H;SACA,OAAO,CAAC,KAAK,CAAC;IACnB,OAAO,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,CACL,sGAAsG,CACzG;SACA,OAAO,CAAC,KAAK,CAAC;CACtB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAc,MAAM,CAAC,MAAM,CAAC;IAC9D,IAAI,EAAE,SAAS,CAAC,QAAQ;IACxB,IAAI,EAAE,WAAW,CAAC,wBAAwB;IAC1C,WAAW,EAAE,MAAM,CAAA;;;;;;;;;;;;oDAY6B;IAChD,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,6BAA6B,CAAoB;IAC7E,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IACzE,WAAW,EAAE;QACT,KAAK,EAAE,gCAAgC;QACvC,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;KACvB;IACD,IAAI,EAAE,KAAK,EAAE,QAA0B,EAAE,EAAE;QACvC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC/C,MAAM,MAAM,GAAG,6BAA6B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC;YAC9C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,+BAA+B,CAAC;YAC1D,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,kBAAkB;YACxB,YAAY,EAAE,WAAW,CAAC,wBAAwB;YAClD,WAAW,EAAE,OAAO,WAAW,CAAC,mBAAmB,2DAA2D;SACjH,CAAC,CAAC;QACH,OAAO,oBAAoB,CAAC;YACxB,iBAAiB,EAAE,MAA4C;YAC/D,OAAO;YACP,QAAQ;YACR,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;CACK,CAAC,CAAC"}
|
|
@@ -13,5 +13,74 @@ export declare function buildStorageNotFound(text: string): {
|
|
|
13
13
|
}[];
|
|
14
14
|
isError: boolean;
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Build a storage tool response, mirroring `actor_run_response.ts`:
|
|
18
|
+
* `structuredContent` carries the data plus `summary` (and `nextStep` unless terminal).
|
|
19
|
+
* `nextStep` is omitted for terminal responses (e.g. get-key-value-store-record).
|
|
20
|
+
*
|
|
21
|
+
* `toon: true` (the list tools) emits a single text: the data TOON-encoded in a ```toon fence
|
|
22
|
+
* (token-cheaper for uniform-row arrays; `summary`/`nextStep` are prose, not tabular, so they
|
|
23
|
+
* stay out of the fence) followed by `summary`/`nextStep` as plain text. Single-object tools
|
|
24
|
+
* leave it off and ship `content[0]` as the raw-JSON dump of `structuredContent` plus
|
|
25
|
+
* `content[1]` with `summary`/`nextStep`. Either way `structuredContent` is the lossless source
|
|
26
|
+
* of truth — programmatic consumers read it, not `content[]`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildStorageResponse(params: {
|
|
29
|
+
structuredContent: Record<string, unknown>;
|
|
30
|
+
summary: string;
|
|
31
|
+
nextStep?: string;
|
|
32
|
+
toon?: boolean;
|
|
33
|
+
}): {
|
|
34
|
+
_meta?: Record<string, unknown> | undefined;
|
|
35
|
+
structuredContent?: {} | null | undefined;
|
|
36
|
+
toolTelemetry?: import("../../types.js").ToolTelemetryContext | undefined;
|
|
37
|
+
content: {
|
|
38
|
+
type: "text";
|
|
39
|
+
text: string;
|
|
40
|
+
}[];
|
|
41
|
+
isError: boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* {summary, nextStep} for paginated storage listings (datasets, key-value stores).
|
|
45
|
+
* When more items remain, nextStep points at the next page; otherwise at inspecting an entry.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildStorageListSummaryNextStep(params: {
|
|
48
|
+
count: number;
|
|
49
|
+
total: number;
|
|
50
|
+
offset: number;
|
|
51
|
+
noun: string;
|
|
52
|
+
listToolName: string;
|
|
53
|
+
inspectHint: string;
|
|
54
|
+
}): {
|
|
55
|
+
summary: string;
|
|
56
|
+
nextStep: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Pagination-aware {summary, nextStep}: when more items remain, point at the next page;
|
|
60
|
+
* otherwise point at get-dataset-schema for structure inspection.
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildDatasetItemsSummaryNextStep(params: {
|
|
63
|
+
datasetId: string;
|
|
64
|
+
itemCount: number;
|
|
65
|
+
totalItemCount: number;
|
|
66
|
+
offset: number;
|
|
67
|
+
}): {
|
|
68
|
+
summary: string;
|
|
69
|
+
nextStep: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* {summary, nextStep} for cursor-paginated key-value store key listings.
|
|
73
|
+
* When truncated, nextStep points at the next page; otherwise at inspecting a record or the store.
|
|
74
|
+
*/
|
|
75
|
+
export declare function buildKvsKeysSummaryNextStep(params: {
|
|
76
|
+
keyValueStoreId: string;
|
|
77
|
+
count: number;
|
|
78
|
+
isTruncated: boolean;
|
|
79
|
+
nextExclusiveStartKey?: string;
|
|
80
|
+
firstKey?: string;
|
|
81
|
+
}): {
|
|
82
|
+
summary: string;
|
|
83
|
+
nextStep: string;
|
|
84
|
+
};
|
|
16
85
|
export declare function normalizeRecordKey(key: string): string;
|
|
17
86
|
//# sourceMappingURL=storage_helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_helpers.d.ts","sourceRoot":"","sources":["../../../src/tools/common/storage_helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage_helpers.d.ts","sourceRoot":"","sources":["../../../src/tools/common/storage_helpers.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;;;;;;;EAMhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IACzC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;;;;;;;;;EAQA;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACvB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CASxC;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAClB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAgBxC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAgBxC;AAWD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { FAILURE_CATEGORY, TOOL_STATUS } from '../../const.js';
|
|
1
|
+
import { FAILURE_CATEGORY, TOOL_STATUS, HelperTools } from '../../const.js';
|
|
2
|
+
import { encodeToon } from '../../utils/encode_text.js';
|
|
2
3
|
import { QUOTE_WRAPPER_CHARS } from '../../utils/generic.js';
|
|
3
4
|
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
4
5
|
/**
|
|
@@ -13,6 +14,81 @@ export function buildStorageNotFound(text) {
|
|
|
13
14
|
telemetry: { toolStatus: TOOL_STATUS.SOFT_FAIL, failureCategory: FAILURE_CATEGORY.INVALID_INPUT },
|
|
14
15
|
});
|
|
15
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Build a storage tool response, mirroring `actor_run_response.ts`:
|
|
19
|
+
* `structuredContent` carries the data plus `summary` (and `nextStep` unless terminal).
|
|
20
|
+
* `nextStep` is omitted for terminal responses (e.g. get-key-value-store-record).
|
|
21
|
+
*
|
|
22
|
+
* `toon: true` (the list tools) emits a single text: the data TOON-encoded in a ```toon fence
|
|
23
|
+
* (token-cheaper for uniform-row arrays; `summary`/`nextStep` are prose, not tabular, so they
|
|
24
|
+
* stay out of the fence) followed by `summary`/`nextStep` as plain text. Single-object tools
|
|
25
|
+
* leave it off and ship `content[0]` as the raw-JSON dump of `structuredContent` plus
|
|
26
|
+
* `content[1]` with `summary`/`nextStep`. Either way `structuredContent` is the lossless source
|
|
27
|
+
* of truth — programmatic consumers read it, not `content[]`.
|
|
28
|
+
*/
|
|
29
|
+
export function buildStorageResponse(params) {
|
|
30
|
+
const { structuredContent, summary, nextStep, toon } = params;
|
|
31
|
+
const full = { ...structuredContent, summary, ...(nextStep !== undefined && { nextStep }) };
|
|
32
|
+
const summaryText = nextStep !== undefined ? `${summary}\n${nextStep}` : summary;
|
|
33
|
+
return buildMCPResponse({
|
|
34
|
+
texts: toon ? [encodeToon(structuredContent), summaryText] : [JSON.stringify(structuredContent), summaryText],
|
|
35
|
+
structuredContent: full,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* {summary, nextStep} for paginated storage listings (datasets, key-value stores).
|
|
40
|
+
* When more items remain, nextStep points at the next page; otherwise at inspecting an entry.
|
|
41
|
+
*/
|
|
42
|
+
export function buildStorageListSummaryNextStep(params) {
|
|
43
|
+
const { count, total, offset, noun, listToolName, inspectHint } = params;
|
|
44
|
+
return {
|
|
45
|
+
summary: `Listed ${count} of ${total} ${noun}.`,
|
|
46
|
+
nextStep: offset + count < total
|
|
47
|
+
? `Call ${listToolName} again with offset=${offset + count} to fetch the next page.`
|
|
48
|
+
: inspectHint,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Pagination-aware {summary, nextStep}: when more items remain, point at the next page;
|
|
53
|
+
* otherwise point at get-dataset-schema for structure inspection.
|
|
54
|
+
*/
|
|
55
|
+
export function buildDatasetItemsSummaryNextStep(params) {
|
|
56
|
+
const { datasetId, itemCount, totalItemCount, offset } = params;
|
|
57
|
+
if (offset + itemCount < totalItemCount) {
|
|
58
|
+
return {
|
|
59
|
+
summary: `Fetched ${itemCount} of ${totalItemCount} items (offset=${offset}).`,
|
|
60
|
+
nextStep: `Call ${HelperTools.DATASET_GET_ITEMS} again with offset=${offset + itemCount} to fetch the next page.`,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const summary = offset === 0 && itemCount === totalItemCount
|
|
64
|
+
? `Fetched all ${itemCount} items.`
|
|
65
|
+
: `Fetched ${itemCount} of ${totalItemCount} items (offset=${offset}); no more pages.`;
|
|
66
|
+
return {
|
|
67
|
+
summary,
|
|
68
|
+
nextStep: `Use ${HelperTools.DATASET_SCHEMA_GET} with datasetId=${datasetId} to inspect structure if needed.`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* {summary, nextStep} for cursor-paginated key-value store key listings.
|
|
73
|
+
* When truncated, nextStep points at the next page; otherwise at inspecting a record or the store.
|
|
74
|
+
*/
|
|
75
|
+
export function buildKvsKeysSummaryNextStep(params) {
|
|
76
|
+
const { keyValueStoreId, count, isTruncated, nextExclusiveStartKey, firstKey } = params;
|
|
77
|
+
const noun = count === 1 ? 'key' : 'keys';
|
|
78
|
+
const summary = `Listed ${count} ${noun}${isTruncated ? ' (more available)' : ''}.`;
|
|
79
|
+
if (isTruncated && nextExclusiveStartKey) {
|
|
80
|
+
return {
|
|
81
|
+
summary,
|
|
82
|
+
nextStep: `Call ${HelperTools.KEY_VALUE_STORE_KEYS_GET} again with exclusiveStartKey=${nextExclusiveStartKey} to fetch the next page.`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
summary,
|
|
87
|
+
nextStep: firstKey
|
|
88
|
+
? `Use ${HelperTools.KEY_VALUE_STORE_RECORD_GET} with keyValueStoreId=${keyValueStoreId} and recordKey=${firstKey} to read a value.`
|
|
89
|
+
: `Use ${HelperTools.KEY_VALUE_STORE_GET} with keyValueStoreId=${keyValueStoreId} to inspect the store.`,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
16
92
|
/**
|
|
17
93
|
* Normalize a key-value store record key before SDK lookup.
|
|
18
94
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_helpers.js","sourceRoot":"","sources":["../../../src/tools/common/storage_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"storage_helpers.js","sourceRoot":"","sources":["../../../src/tools/common/storage_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -261,7 +261,7 @@ function buildSucceededSummaryNextStep(runTimeSecs, statusMessage, dataset, keyV
|
|
|
261
261
|
const fields = (_a = dataset === null || dataset === void 0 ? void 0 : dataset.fields) !== null && _a !== void 0 ? _a : [];
|
|
262
262
|
return {
|
|
263
263
|
summary: `SUCCEEDED in ${runTimeSecs}s. ${itemCount} ${itemCount === 1 ? 'item' : 'items'}; ${fields.length} fields available.${kv.summarySuffix}`,
|
|
264
|
-
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit
|
|
264
|
+
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit (for example 20) to fetch items (${itemCount} total).${fieldsProjectionHint(fields)}`,
|
|
265
265
|
};
|
|
266
266
|
}
|
|
267
267
|
// datasetId known but metadata unavailable (transient fetch failure on a terminal run). Don't
|
|
@@ -269,7 +269,7 @@ function buildSucceededSummaryNextStep(runTimeSecs, statusMessage, dataset, keyV
|
|
|
269
269
|
if (itemCount === undefined && datasetId) {
|
|
270
270
|
return {
|
|
271
271
|
summary: `SUCCEEDED in ${runTimeSecs}s. Dataset metadata unavailable.${statusMessageLine(statusMessage)}${kv.summarySuffix}`,
|
|
272
|
-
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit
|
|
272
|
+
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit (for example 20) to inspect output.`,
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
275
|
// Metadata can report itemCount === 0 briefly after SUCCEEDED (eventual consistency). Surface the
|
|
@@ -277,7 +277,7 @@ function buildSucceededSummaryNextStep(runTimeSecs, statusMessage, dataset, keyV
|
|
|
277
277
|
if (itemCount === 0 && datasetId) {
|
|
278
278
|
return {
|
|
279
279
|
summary: `SUCCEEDED in ${runTimeSecs}s. No dataset items found.${statusMessageLine(statusMessage)}${kv.summarySuffix}`,
|
|
280
|
-
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit
|
|
280
|
+
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit (for example 20) to verify output (metadata reports 0 items).${fieldsProjectionHint(dataset === null || dataset === void 0 ? void 0 : dataset.fields)}`,
|
|
281
281
|
};
|
|
282
282
|
}
|
|
283
283
|
// KV store is rarely the primary output for Apify actors (mostly SDK state / intermediate data),
|
|
@@ -300,7 +300,7 @@ function buildTimedOutSummaryNextStep(runTimeSecs, dataset, keyValueStore) {
|
|
|
300
300
|
const fields = (_b = dataset === null || dataset === void 0 ? void 0 : dataset.fields) !== null && _b !== void 0 ? _b : [];
|
|
301
301
|
return {
|
|
302
302
|
summary: `TIMED-OUT after ${runTimeSecs}s.${kv.summarySuffix}`,
|
|
303
|
-
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit
|
|
303
|
+
nextStep: `Use ${HelperTools.DATASET_GET_ITEMS} with datasetId=${datasetId} and limit (for example 20) to fetch any partial output (${itemCount} ${itemCount === 1 ? 'item' : 'items'} written). Available fields: ${fields.length > 0 ? fields.join(', ') : 'none'}.`,
|
|
304
304
|
};
|
|
305
305
|
}
|
|
306
306
|
return {
|