@lumifai/harness-tool-pack-workspace-data 0.0.1
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/README.md +22 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/workspace-data.d.ts +8 -0
- package/dist/workspace-data.js +380 -0
- package/dist/workspace-data.js.map +1 -0
- package/package.json +37 -0
package/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# @lumifai/harness-tool-pack-workspace-data
|
|
2
|
+
|
|
3
|
+
Workspace JSON, CSV, and jq query tools for the Lumif harness.
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import { createWorkspaceDataToolPack } from '@lumifai/harness-tool-pack-workspace-data';
|
|
7
|
+
|
|
8
|
+
createWorkspaceDataToolPack();
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Tools:
|
|
12
|
+
|
|
13
|
+
- `workspace_inspect_json_schema` / `workspace_query_json` — JSON schema inspection and jq filtering
|
|
14
|
+
- `workspace_inspect_csv_schema` / `workspace_query_csv` — CSV column inspection and row queries
|
|
15
|
+
|
|
16
|
+
Tool pack id: `workspace-data`. Default policies: inspect tools are auto-approved; query tools prompt for approval.
|
|
17
|
+
|
|
18
|
+
## Native dependency note
|
|
19
|
+
|
|
20
|
+
This package uses `@lumifai/node-jq-native` for jq evaluation. Published prebuilds cover common
|
|
21
|
+
Darwin and Linux x64/arm64 platforms; consumers on unsupported platforms need a working native
|
|
22
|
+
addon build toolchain so the dependency can compile during install.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { DEFAULT_WORKSPACE_DATA_QUERY_LIMIT, MAX_WORKSPACE_DATA_QUERY_LIMIT, CSV_SCHEMA_SAMPLE_ROWS, createWorkspaceDataTools, createWorkspaceDataToolPack, } from './workspace-data';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createWorkspaceDataToolPack = exports.createWorkspaceDataTools = exports.CSV_SCHEMA_SAMPLE_ROWS = exports.MAX_WORKSPACE_DATA_QUERY_LIMIT = exports.DEFAULT_WORKSPACE_DATA_QUERY_LIMIT = void 0;
|
|
4
|
+
var workspace_data_1 = require("./workspace-data");
|
|
5
|
+
Object.defineProperty(exports, "DEFAULT_WORKSPACE_DATA_QUERY_LIMIT", { enumerable: true, get: function () { return workspace_data_1.DEFAULT_WORKSPACE_DATA_QUERY_LIMIT; } });
|
|
6
|
+
Object.defineProperty(exports, "MAX_WORKSPACE_DATA_QUERY_LIMIT", { enumerable: true, get: function () { return workspace_data_1.MAX_WORKSPACE_DATA_QUERY_LIMIT; } });
|
|
7
|
+
Object.defineProperty(exports, "CSV_SCHEMA_SAMPLE_ROWS", { enumerable: true, get: function () { return workspace_data_1.CSV_SCHEMA_SAMPLE_ROWS; } });
|
|
8
|
+
Object.defineProperty(exports, "createWorkspaceDataTools", { enumerable: true, get: function () { return workspace_data_1.createWorkspaceDataTools; } });
|
|
9
|
+
Object.defineProperty(exports, "createWorkspaceDataToolPack", { enumerable: true, get: function () { return workspace_data_1.createWorkspaceDataToolPack; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAM0B;AALxB,oIAAA,kCAAkC,OAAA;AAClC,gIAAA,8BAA8B,OAAA;AAC9B,wHAAA,sBAAsB,OAAA;AACtB,0HAAA,wBAAwB,OAAA;AACxB,6HAAA,2BAA2B,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ToolsInput } from '@mastra/core/agent';
|
|
2
|
+
export declare const DEFAULT_WORKSPACE_DATA_QUERY_LIMIT = 100;
|
|
3
|
+
export declare const MAX_WORKSPACE_DATA_QUERY_LIMIT = 500;
|
|
4
|
+
export declare const CSV_SCHEMA_SAMPLE_ROWS = 5;
|
|
5
|
+
export declare const JSON_SHAPE_MAX_DEPTH = 2;
|
|
6
|
+
export declare const JSON_ARRAY_SCHEMA_SAMPLE_SIZE = 10;
|
|
7
|
+
export declare function createWorkspaceDataTools(): ToolsInput;
|
|
8
|
+
export declare function createWorkspaceDataToolPack(): import("@lumifai/harness-tool-packs").ToolPack;
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JSON_ARRAY_SCHEMA_SAMPLE_SIZE = exports.JSON_SHAPE_MAX_DEPTH = exports.CSV_SCHEMA_SAMPLE_ROWS = exports.MAX_WORKSPACE_DATA_QUERY_LIMIT = exports.DEFAULT_WORKSPACE_DATA_QUERY_LIMIT = void 0;
|
|
4
|
+
exports.createWorkspaceDataTools = createWorkspaceDataTools;
|
|
5
|
+
exports.createWorkspaceDataToolPack = createWorkspaceDataToolPack;
|
|
6
|
+
const tools_1 = require("@mastra/core/tools");
|
|
7
|
+
const sync_1 = require("csv-parse/sync");
|
|
8
|
+
const node_jq_native_1 = require("@lumifai/node-jq-native");
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const harness_tool_packs_1 = require("@lumifai/harness-tool-packs");
|
|
11
|
+
exports.DEFAULT_WORKSPACE_DATA_QUERY_LIMIT = 100;
|
|
12
|
+
exports.MAX_WORKSPACE_DATA_QUERY_LIMIT = 500;
|
|
13
|
+
exports.CSV_SCHEMA_SAMPLE_ROWS = 5;
|
|
14
|
+
exports.JSON_SHAPE_MAX_DEPTH = 2;
|
|
15
|
+
exports.JSON_ARRAY_SCHEMA_SAMPLE_SIZE = 10;
|
|
16
|
+
const workspaceFilePathSchema = zod_1.z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.describe('Absolute workspace path to a file, e.g. /data/results.json');
|
|
20
|
+
function createWorkspaceDataTools() {
|
|
21
|
+
const workspaceInspectJsonShape = (0, tools_1.createTool)({
|
|
22
|
+
id: 'workspace_inspect_json_shape',
|
|
23
|
+
description: 'Inspect JSON file structure without loading the full document. Returns two levels of nesting, array lengths, and inferred object schemas for arrays of objects.',
|
|
24
|
+
inputSchema: zod_1.z.object({
|
|
25
|
+
path: workspaceFilePathSchema,
|
|
26
|
+
}),
|
|
27
|
+
execute: async (inputData, context) => {
|
|
28
|
+
const { content, normalizedPath } = await readWorkspaceFileText(context, inputData.path);
|
|
29
|
+
const parsed = parseJsonContent(content, normalizedPath);
|
|
30
|
+
return {
|
|
31
|
+
path: normalizedPath,
|
|
32
|
+
shape: summarizeJsonShape(parsed),
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
const workspaceInspectCsvSchema = (0, tools_1.createTool)({
|
|
37
|
+
id: 'workspace_inspect_csv_schema',
|
|
38
|
+
description: 'Inspect CSV columns and a small row sample. Use before workspace_query_csv.',
|
|
39
|
+
inputSchema: zod_1.z.object({
|
|
40
|
+
path: workspaceFilePathSchema,
|
|
41
|
+
}),
|
|
42
|
+
execute: async (inputData, context) => {
|
|
43
|
+
const { content, normalizedPath } = await readWorkspaceFileText(context, inputData.path);
|
|
44
|
+
const rows = parseCsvRows(content, normalizedPath);
|
|
45
|
+
const columns = rows.length > 0 ? Object.keys(rows[0] ?? {}) : [];
|
|
46
|
+
return {
|
|
47
|
+
path: normalizedPath,
|
|
48
|
+
columns,
|
|
49
|
+
sample_rows: rows.slice(0, exports.CSV_SCHEMA_SAMPLE_ROWS),
|
|
50
|
+
row_count: rows.length,
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
const workspaceQueryCsv = (0, tools_1.createTool)({
|
|
55
|
+
id: 'workspace_query_csv',
|
|
56
|
+
description: 'Filter and project rows from a CSV file in the workspace filesystem.',
|
|
57
|
+
inputSchema: zod_1.z.object({
|
|
58
|
+
path: workspaceFilePathSchema,
|
|
59
|
+
where: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
60
|
+
select: zod_1.z.array(zod_1.z.string()).optional(),
|
|
61
|
+
order_by: zod_1.z
|
|
62
|
+
.object({
|
|
63
|
+
field: zod_1.z.string().min(1),
|
|
64
|
+
direction: zod_1.z.enum(['asc', 'desc']).optional().default('asc'),
|
|
65
|
+
})
|
|
66
|
+
.optional(),
|
|
67
|
+
limit: zod_1.z.number().int().min(1).max(exports.MAX_WORKSPACE_DATA_QUERY_LIMIT).optional(),
|
|
68
|
+
}),
|
|
69
|
+
execute: async (inputData, context) => {
|
|
70
|
+
const { content, normalizedPath } = await readWorkspaceFileText(context, inputData.path);
|
|
71
|
+
const rows = parseCsvRows(content, normalizedPath);
|
|
72
|
+
const filtered = filterCsvRows(rows, inputData.where);
|
|
73
|
+
const ordered = sortCsvRows(filtered, inputData.order_by);
|
|
74
|
+
const selected = projectCsvRows(ordered, inputData.select);
|
|
75
|
+
const { rows: cappedRows, truncated } = capQueryResult(selected, inputData.limit ?? exports.DEFAULT_WORKSPACE_DATA_QUERY_LIMIT);
|
|
76
|
+
return {
|
|
77
|
+
path: normalizedPath,
|
|
78
|
+
columns: cappedRows.length > 0 ? Object.keys(cappedRows[0] ?? {}) : [],
|
|
79
|
+
rows: cappedRows,
|
|
80
|
+
returned_count: cappedRows.length,
|
|
81
|
+
truncated,
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
const workspaceQueryJson = (0, tools_1.createTool)({
|
|
86
|
+
id: 'workspace_query_json',
|
|
87
|
+
description: 'Run a jq filter against a JSON file in the workspace filesystem. Supports full jq syntax, e.g. ".result.items", ".summary.total", or ".items[] | select(.active)".',
|
|
88
|
+
inputSchema: zod_1.z.object({
|
|
89
|
+
path: workspaceFilePathSchema,
|
|
90
|
+
filter: zod_1.z
|
|
91
|
+
.string()
|
|
92
|
+
.min(1)
|
|
93
|
+
.describe('jq filter expression, e.g. ".result.items" or ".items[] | select(.status == \\"ok\\")"'),
|
|
94
|
+
limit: zod_1.z.number().int().min(1).max(exports.MAX_WORKSPACE_DATA_QUERY_LIMIT).optional(),
|
|
95
|
+
}),
|
|
96
|
+
execute: async (inputData, context) => {
|
|
97
|
+
const { content, normalizedPath } = await readWorkspaceFileText(context, inputData.path);
|
|
98
|
+
const evaluated = evaluateJqFilter(content, normalizedPath, inputData.filter);
|
|
99
|
+
if (Array.isArray(evaluated)) {
|
|
100
|
+
const { rows, truncated } = capQueryResult(evaluated, inputData.limit ?? exports.DEFAULT_WORKSPACE_DATA_QUERY_LIMIT);
|
|
101
|
+
return {
|
|
102
|
+
path: normalizedPath,
|
|
103
|
+
filter: inputData.filter,
|
|
104
|
+
result_type: 'array',
|
|
105
|
+
returned_count: rows.length,
|
|
106
|
+
truncated,
|
|
107
|
+
result: rows,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
path: normalizedPath,
|
|
112
|
+
filter: inputData.filter,
|
|
113
|
+
result_type: typeof evaluated,
|
|
114
|
+
returned_count: 1,
|
|
115
|
+
truncated: false,
|
|
116
|
+
result: evaluated,
|
|
117
|
+
};
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
workspaceInspectJsonShape,
|
|
122
|
+
workspaceInspectCsvSchema,
|
|
123
|
+
workspaceQueryCsv,
|
|
124
|
+
workspaceQueryJson,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function createWorkspaceDataToolPack() {
|
|
128
|
+
return (0, harness_tool_packs_1.defineToolPack)({
|
|
129
|
+
id: 'workspace-data',
|
|
130
|
+
description: 'Workspace JSON and CSV inspection/query tools.',
|
|
131
|
+
enabledByDefault: true,
|
|
132
|
+
tools: createWorkspaceDataTools(),
|
|
133
|
+
permissionPolicies: {
|
|
134
|
+
workspace_inspect_json_shape: 'allow',
|
|
135
|
+
workspace_inspect_csv_schema: 'allow',
|
|
136
|
+
workspace_query_csv: 'ask',
|
|
137
|
+
workspace_query_json: 'ask',
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function capQueryResult(rows, limit) {
|
|
142
|
+
const normalizedLimit = Math.max(1, Math.min(limit, exports.MAX_WORKSPACE_DATA_QUERY_LIMIT));
|
|
143
|
+
return {
|
|
144
|
+
rows: rows.slice(0, normalizedLimit),
|
|
145
|
+
truncated: rows.length > normalizedLimit,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function parseJsonContent(content, path) {
|
|
149
|
+
try {
|
|
150
|
+
return JSON.parse(content);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
throw new Error(`File at ${path} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function summarizeJsonShape(value, depth = 0) {
|
|
157
|
+
if (value === null) {
|
|
158
|
+
return 'null';
|
|
159
|
+
}
|
|
160
|
+
const valueType = typeof value;
|
|
161
|
+
if (valueType !== 'object') {
|
|
162
|
+
return valueType;
|
|
163
|
+
}
|
|
164
|
+
if (Array.isArray(value)) {
|
|
165
|
+
return summarizeJsonArrayShape(value, depth);
|
|
166
|
+
}
|
|
167
|
+
return summarizeJsonObjectShape(value, depth);
|
|
168
|
+
}
|
|
169
|
+
function summarizeJsonObjectShape(object, depth) {
|
|
170
|
+
if (depth >= exports.JSON_SHAPE_MAX_DEPTH) {
|
|
171
|
+
return {
|
|
172
|
+
type: 'object',
|
|
173
|
+
key_count: Object.keys(object).length,
|
|
174
|
+
keys: Object.keys(object).sort(),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return Object.fromEntries(Object.entries(object).map(([key, child]) => [key, summarizeJsonShape(child, depth + 1)]));
|
|
178
|
+
}
|
|
179
|
+
function summarizeJsonArrayShape(array, depth) {
|
|
180
|
+
const summary = {
|
|
181
|
+
type: 'array',
|
|
182
|
+
length: array.length,
|
|
183
|
+
};
|
|
184
|
+
if (array.length === 0) {
|
|
185
|
+
summary.items = { type: 'unknown', note: 'empty array' };
|
|
186
|
+
return summary;
|
|
187
|
+
}
|
|
188
|
+
if (depth >= exports.JSON_SHAPE_MAX_DEPTH) {
|
|
189
|
+
summary.items = describeShallowJsonValue(array[0]);
|
|
190
|
+
return summary;
|
|
191
|
+
}
|
|
192
|
+
summary.items = inferArrayItemShape(array, depth + 1);
|
|
193
|
+
return summary;
|
|
194
|
+
}
|
|
195
|
+
function inferArrayItemShape(array, depth) {
|
|
196
|
+
const sample = array.slice(0, exports.JSON_ARRAY_SCHEMA_SAMPLE_SIZE);
|
|
197
|
+
const defined = sample.filter((value) => value !== null && value !== undefined);
|
|
198
|
+
if (defined.length === 0) {
|
|
199
|
+
return 'null';
|
|
200
|
+
}
|
|
201
|
+
const kinds = [...new Set(defined.map(classifyJsonValueKind))];
|
|
202
|
+
if (kinds.length > 1) {
|
|
203
|
+
return { type: 'mixed', kinds };
|
|
204
|
+
}
|
|
205
|
+
const kind = kinds[0];
|
|
206
|
+
if (kind === 'object') {
|
|
207
|
+
return {
|
|
208
|
+
type: 'object',
|
|
209
|
+
schema: mergeObjectSchema(defined, depth),
|
|
210
|
+
sampled_from: Math.min(array.length, exports.JSON_ARRAY_SCHEMA_SAMPLE_SIZE),
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
if (kind === 'array') {
|
|
214
|
+
const nestedArrays = defined;
|
|
215
|
+
const lengths = nestedArrays.map((entry) => entry.length);
|
|
216
|
+
const nestedItems = nestedArrays.flatMap((entry) => entry.slice(0, 3));
|
|
217
|
+
return {
|
|
218
|
+
type: 'array',
|
|
219
|
+
length_range: [Math.min(...lengths), Math.max(...lengths)],
|
|
220
|
+
items: nestedItems.length > 0 ? inferArrayItemShape(nestedItems, depth) : { type: 'unknown' },
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
return summarizePrimitiveFieldShape(defined);
|
|
224
|
+
}
|
|
225
|
+
function mergeObjectSchema(objects, depth) {
|
|
226
|
+
const keys = new Set();
|
|
227
|
+
for (const object of objects) {
|
|
228
|
+
for (const key of Object.keys(object)) {
|
|
229
|
+
keys.add(key);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const fields = {};
|
|
233
|
+
for (const key of [...keys].sort()) {
|
|
234
|
+
const values = objects.map((object) => object[key]);
|
|
235
|
+
const definedValues = values.filter((value) => value !== undefined);
|
|
236
|
+
const fieldShape = summarizeFieldValues(definedValues, depth);
|
|
237
|
+
fields[key] =
|
|
238
|
+
definedValues.length < objects.length
|
|
239
|
+
? { ...asFieldShape(fieldShape), optional: true }
|
|
240
|
+
: fieldShape;
|
|
241
|
+
}
|
|
242
|
+
return fields;
|
|
243
|
+
}
|
|
244
|
+
function summarizeFieldValues(values, depth) {
|
|
245
|
+
if (values.length === 0) {
|
|
246
|
+
return 'undefined';
|
|
247
|
+
}
|
|
248
|
+
if (depth >= exports.JSON_SHAPE_MAX_DEPTH) {
|
|
249
|
+
return describeShallowJsonValue(values[0]);
|
|
250
|
+
}
|
|
251
|
+
const defined = values.filter((value) => value !== null && value !== undefined);
|
|
252
|
+
if (defined.length === 0) {
|
|
253
|
+
return 'null';
|
|
254
|
+
}
|
|
255
|
+
const kinds = [...new Set(defined.map(classifyJsonValueKind))];
|
|
256
|
+
if (kinds.length > 1) {
|
|
257
|
+
return { type: 'mixed', kinds };
|
|
258
|
+
}
|
|
259
|
+
const kind = kinds[0];
|
|
260
|
+
if (kind === 'object') {
|
|
261
|
+
return {
|
|
262
|
+
type: 'object',
|
|
263
|
+
schema: mergeObjectSchema(defined, depth + 1),
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
if (kind === 'array') {
|
|
267
|
+
return inferArrayItemShape(defined.flatMap((value) => (Array.isArray(value) ? value : [])), depth);
|
|
268
|
+
}
|
|
269
|
+
return summarizePrimitiveFieldShape(defined);
|
|
270
|
+
}
|
|
271
|
+
function summarizePrimitiveFieldShape(values) {
|
|
272
|
+
const types = [...new Set(values.map((value) => typeof value))];
|
|
273
|
+
if (types.length === 1) {
|
|
274
|
+
return types[0] ?? 'undefined';
|
|
275
|
+
}
|
|
276
|
+
return { type: 'mixed', types };
|
|
277
|
+
}
|
|
278
|
+
function asFieldShape(shape) {
|
|
279
|
+
if (shape && typeof shape === 'object' && !Array.isArray(shape)) {
|
|
280
|
+
return shape;
|
|
281
|
+
}
|
|
282
|
+
return { type: shape };
|
|
283
|
+
}
|
|
284
|
+
function classifyJsonValueKind(value) {
|
|
285
|
+
if (value === null || value === undefined) {
|
|
286
|
+
return 'null';
|
|
287
|
+
}
|
|
288
|
+
if (Array.isArray(value)) {
|
|
289
|
+
return 'array';
|
|
290
|
+
}
|
|
291
|
+
if (typeof value === 'object') {
|
|
292
|
+
return 'object';
|
|
293
|
+
}
|
|
294
|
+
return 'primitive';
|
|
295
|
+
}
|
|
296
|
+
function describeShallowJsonValue(value) {
|
|
297
|
+
if (value === null) {
|
|
298
|
+
return 'null';
|
|
299
|
+
}
|
|
300
|
+
if (Array.isArray(value)) {
|
|
301
|
+
return { type: 'array', length: value.length };
|
|
302
|
+
}
|
|
303
|
+
if (typeof value === 'object') {
|
|
304
|
+
return {
|
|
305
|
+
type: 'object',
|
|
306
|
+
key_count: Object.keys(value).length,
|
|
307
|
+
keys: Object.keys(value).sort(),
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
return typeof value;
|
|
311
|
+
}
|
|
312
|
+
function evaluateJqFilter(content, path, filter) {
|
|
313
|
+
const normalizedFilter = filter.trim();
|
|
314
|
+
const parsed = parseJsonContent(content, path);
|
|
315
|
+
if (!normalizedFilter || normalizedFilter === '.') {
|
|
316
|
+
return parsed;
|
|
317
|
+
}
|
|
318
|
+
try {
|
|
319
|
+
return (0, node_jq_native_1.evaluate)(normalizedFilter, parsed);
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
throw new Error(`workspace_query_json jq filter failed for ${path}: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
function parseCsvRows(content, path) {
|
|
326
|
+
try {
|
|
327
|
+
return (0, sync_1.parse)(content, {
|
|
328
|
+
columns: true,
|
|
329
|
+
skip_empty_lines: true,
|
|
330
|
+
trim: true,
|
|
331
|
+
relax_column_count: true,
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
throw new Error(`File at ${path} is not valid CSV: ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
function filterCsvRows(rows, where) {
|
|
339
|
+
if (!where || Object.keys(where).length === 0) {
|
|
340
|
+
return rows;
|
|
341
|
+
}
|
|
342
|
+
return rows.filter((row) => Object.entries(where).every(([field, expected]) => {
|
|
343
|
+
const value = String(row[field] ?? '');
|
|
344
|
+
return value.toLowerCase().includes(expected.toLowerCase());
|
|
345
|
+
}));
|
|
346
|
+
}
|
|
347
|
+
function sortCsvRows(rows, orderBy) {
|
|
348
|
+
if (!orderBy) {
|
|
349
|
+
return rows;
|
|
350
|
+
}
|
|
351
|
+
const direction = orderBy.direction === 'desc' ? -1 : 1;
|
|
352
|
+
return [...rows].sort((left, right) => String(left[orderBy.field] ?? '').localeCompare(String(right[orderBy.field] ?? '')) *
|
|
353
|
+
direction);
|
|
354
|
+
}
|
|
355
|
+
function projectCsvRows(rows, select) {
|
|
356
|
+
if (!select || select.length === 0) {
|
|
357
|
+
return rows;
|
|
358
|
+
}
|
|
359
|
+
return rows.map((row) => Object.fromEntries(select.map((field) => [field, String(row[field] ?? '')])));
|
|
360
|
+
}
|
|
361
|
+
async function readWorkspaceFileText(context, path) {
|
|
362
|
+
const normalizedPath = normalizeWorkspaceFilePath(path);
|
|
363
|
+
const workspace = context.workspace;
|
|
364
|
+
if (!workspace?.filesystem?.readFile) {
|
|
365
|
+
throw new Error(`Workspace data tools require a workspace filesystem to read ${normalizedPath}`);
|
|
366
|
+
}
|
|
367
|
+
const fileContent = await workspace.filesystem.readFile(normalizedPath, {
|
|
368
|
+
encoding: 'utf8',
|
|
369
|
+
});
|
|
370
|
+
const content = typeof fileContent === 'string' ? fileContent : fileContent.toString('utf8');
|
|
371
|
+
return { normalizedPath, content };
|
|
372
|
+
}
|
|
373
|
+
function normalizeWorkspaceFilePath(path) {
|
|
374
|
+
const trimmed = path.trim();
|
|
375
|
+
if (!trimmed.startsWith('/')) {
|
|
376
|
+
throw new Error(`Path must be absolute within the workspace: ${path}`);
|
|
377
|
+
}
|
|
378
|
+
return trimmed;
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=workspace-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-data.js","sourceRoot":"","sources":["../src/workspace-data.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lumifai/harness-tool-pack-workspace-data",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=22.13.0"
|
|
7
|
+
},
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"require": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
"main": "dist/index.js",
|
|
18
|
+
"types": "dist/index.d.ts",
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"!dist/**/*.test.*"
|
|
22
|
+
],
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@lumifai/node-jq-native": "^1.2.2",
|
|
25
|
+
"@mastra/core": "1.50.1",
|
|
26
|
+
"csv-parse": "^7.0.0",
|
|
27
|
+
"zod": "^4.4.3",
|
|
28
|
+
"@lumifai/harness-tool-packs": "0.0.1"
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public",
|
|
32
|
+
"registry": "https://registry.npmjs.org/"
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsc -p tsconfig.json"
|
|
36
|
+
}
|
|
37
|
+
}
|