@framers/agentos-ext-cli-executor 1.1.0 → 1.2.0
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/LICENSE +23 -0
- package/README.md +80 -28
- package/dist/index.d.ts +68 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +78 -18
- package/dist/index.js.map +1 -1
- package/dist/services/shellService.d.ts +15 -1
- package/dist/services/shellService.d.ts.map +1 -1
- package/dist/services/shellService.js +96 -10
- package/dist/services/shellService.js.map +1 -1
- package/dist/tools/createPdf.d.ts +32 -0
- package/dist/tools/createPdf.d.ts.map +1 -0
- package/dist/tools/createPdf.js +215 -0
- package/dist/tools/createPdf.js.map +1 -0
- package/dist/tools/execute.d.ts +15 -18
- package/dist/tools/execute.d.ts.map +1 -1
- package/dist/tools/execute.js +36 -36
- package/dist/tools/execute.js.map +1 -1
- package/dist/tools/fileRead.d.ts +15 -18
- package/dist/tools/fileRead.d.ts.map +1 -1
- package/dist/tools/fileRead.js +63 -39
- package/dist/tools/fileRead.js.map +1 -1
- package/dist/tools/fileWrite.d.ts +15 -18
- package/dist/tools/fileWrite.d.ts.map +1 -1
- package/dist/tools/fileWrite.js +47 -40
- package/dist/tools/fileWrite.js.map +1 -1
- package/dist/tools/listDir.d.ts +15 -18
- package/dist/tools/listDir.d.ts.map +1 -1
- package/dist/tools/listDir.js +45 -45
- package/dist/tools/listDir.js.map +1 -1
- package/dist/tools/readDocument.d.ts +41 -0
- package/dist/tools/readDocument.d.ts.map +1 -0
- package/dist/tools/readDocument.js +252 -0
- package/dist/tools/readDocument.js.map +1 -0
- package/dist/types.d.ts +63 -0
- package/dist/types.d.ts.map +1 -1
- package/manifest.json +20 -14
- package/package.json +15 -9
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read Document Tool
|
|
3
|
+
* Extract text content from binary document formats (xlsx, csv, docx, pdf).
|
|
4
|
+
*
|
|
5
|
+
* @module @framers/agentos-ext-cli-executor
|
|
6
|
+
*/
|
|
7
|
+
import { extname } from 'node:path';
|
|
8
|
+
const EXTENSION_FORMAT_MAP = {
|
|
9
|
+
'.xlsx': 'xlsx',
|
|
10
|
+
'.xls': 'xlsx',
|
|
11
|
+
'.csv': 'csv',
|
|
12
|
+
'.tsv': 'csv',
|
|
13
|
+
'.docx': 'docx',
|
|
14
|
+
'.pdf': 'pdf',
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Escape pipe characters for markdown table cells.
|
|
18
|
+
*/
|
|
19
|
+
function escapeCell(value) {
|
|
20
|
+
if (value === null || value === undefined)
|
|
21
|
+
return '';
|
|
22
|
+
return String(value).replace(/\|/g, '\\|').replace(/\n/g, ' ');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convert sheet rows to a markdown table string.
|
|
26
|
+
*/
|
|
27
|
+
function toMarkdownTable(headers, rows, sheetName, totalRows, maxRows) {
|
|
28
|
+
const truncated = totalRows > maxRows;
|
|
29
|
+
const countLabel = truncated
|
|
30
|
+
? `(showing ${maxRows} of ${totalRows} rows)`
|
|
31
|
+
: `(${totalRows} rows)`;
|
|
32
|
+
const lines = [];
|
|
33
|
+
lines.push(`## Sheet: ${sheetName} ${countLabel}`);
|
|
34
|
+
lines.push(`| ${headers.map(escapeCell).join(' | ')} |`);
|
|
35
|
+
lines.push(`| ${headers.map(() => '---').join(' | ')} |`);
|
|
36
|
+
for (const row of rows) {
|
|
37
|
+
lines.push(`| ${row.map(escapeCell).join(' | ')} |`);
|
|
38
|
+
}
|
|
39
|
+
return lines.join('\n');
|
|
40
|
+
}
|
|
41
|
+
// ── Format-specific parsers ─────────────────────────────────────────────────
|
|
42
|
+
async function parseXlsx(buffer, opts) {
|
|
43
|
+
const XLSX = await import('xlsx');
|
|
44
|
+
const workbook = XLSX.read(buffer, { type: 'buffer' });
|
|
45
|
+
const sheetNames = opts.sheet
|
|
46
|
+
? workbook.SheetNames.filter((n) => n === opts.sheet)
|
|
47
|
+
: workbook.SheetNames;
|
|
48
|
+
if (opts.sheet && sheetNames.length === 0) {
|
|
49
|
+
throw new Error(`Sheet "${opts.sheet}" not found. Available sheets: ${workbook.SheetNames.join(', ')}`);
|
|
50
|
+
}
|
|
51
|
+
const contentParts = [];
|
|
52
|
+
const structuredSheets = [];
|
|
53
|
+
for (const name of sheetNames) {
|
|
54
|
+
const ws = workbook.Sheets[name];
|
|
55
|
+
const jsonRows = XLSX.utils.sheet_to_json(ws, { header: 1 });
|
|
56
|
+
if (jsonRows.length === 0)
|
|
57
|
+
continue;
|
|
58
|
+
const headers = (jsonRows[0] || []).map(String);
|
|
59
|
+
const dataRows = jsonRows.slice(1);
|
|
60
|
+
const totalRows = dataRows.length;
|
|
61
|
+
const truncated = totalRows > opts.maxRows;
|
|
62
|
+
const displayRows = dataRows.slice(0, opts.maxRows);
|
|
63
|
+
contentParts.push(toMarkdownTable(headers, displayRows, name, totalRows, opts.maxRows));
|
|
64
|
+
structuredSheets.push({
|
|
65
|
+
name,
|
|
66
|
+
headers,
|
|
67
|
+
rows: displayRows,
|
|
68
|
+
rowCount: totalRows,
|
|
69
|
+
truncated,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
content: contentParts.join('\n\n'),
|
|
74
|
+
structured: { sheets: structuredSheets },
|
|
75
|
+
metadata: { sheetNames: workbook.SheetNames },
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function parseCsv(buffer, opts) {
|
|
79
|
+
// Use xlsx to parse CSV for consistent handling of quoted fields, delimiters, etc.
|
|
80
|
+
const XLSX = await import('xlsx');
|
|
81
|
+
const workbook = XLSX.read(buffer, { type: 'buffer' });
|
|
82
|
+
const sheetName = workbook.SheetNames[0] || 'Sheet1';
|
|
83
|
+
const ws = workbook.Sheets[sheetName];
|
|
84
|
+
const jsonRows = XLSX.utils.sheet_to_json(ws, { header: 1 });
|
|
85
|
+
if (jsonRows.length === 0) {
|
|
86
|
+
return { content: '(empty CSV file)', structured: { sheets: [] } };
|
|
87
|
+
}
|
|
88
|
+
const headers = (jsonRows[0] || []).map(String);
|
|
89
|
+
const dataRows = jsonRows.slice(1);
|
|
90
|
+
const totalRows = dataRows.length;
|
|
91
|
+
const truncated = totalRows > opts.maxRows;
|
|
92
|
+
const displayRows = dataRows.slice(0, opts.maxRows);
|
|
93
|
+
return {
|
|
94
|
+
content: toMarkdownTable(headers, displayRows, 'CSV', totalRows, opts.maxRows),
|
|
95
|
+
structured: {
|
|
96
|
+
sheets: [{
|
|
97
|
+
name: 'CSV',
|
|
98
|
+
headers,
|
|
99
|
+
rows: displayRows,
|
|
100
|
+
rowCount: totalRows,
|
|
101
|
+
truncated,
|
|
102
|
+
}],
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
async function parseDocx(buffer) {
|
|
107
|
+
const mammoth = await import('mammoth');
|
|
108
|
+
const result = await mammoth.extractRawText({ buffer });
|
|
109
|
+
return {
|
|
110
|
+
content: result.value,
|
|
111
|
+
metadata: result.messages.length > 0
|
|
112
|
+
? { warnings: result.messages.map((m) => m.message) }
|
|
113
|
+
: undefined,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
async function parsePdf(buffer) {
|
|
117
|
+
// pdf-parse has no types — import default export
|
|
118
|
+
const pdfParse = (await import('pdf-parse')).default;
|
|
119
|
+
const result = await pdfParse(buffer);
|
|
120
|
+
return {
|
|
121
|
+
content: result.text,
|
|
122
|
+
metadata: {
|
|
123
|
+
pages: result.numpages,
|
|
124
|
+
info: result.info,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// ── Tool ─────────────────────────────────────────────────────────────────────
|
|
129
|
+
/**
|
|
130
|
+
* Tool for reading binary document formats
|
|
131
|
+
*/
|
|
132
|
+
export class ReadDocumentTool {
|
|
133
|
+
shellService;
|
|
134
|
+
id = 'cli-read-document-v1';
|
|
135
|
+
/** Tool call name used by the LLM / ToolExecutor. */
|
|
136
|
+
name = 'read_document';
|
|
137
|
+
displayName = 'Read Document';
|
|
138
|
+
description = 'Read and extract text content from binary document formats: ' +
|
|
139
|
+
'.xlsx/.xls (spreadsheets), .csv/.tsv (comma/tab-separated), ' +
|
|
140
|
+
'.docx (Word documents), .pdf (PDFs). ' +
|
|
141
|
+
'Returns structured text that can be analyzed. ' +
|
|
142
|
+
'For plain text files (.txt, .md, .json, etc.), use file_read instead.';
|
|
143
|
+
category = 'system';
|
|
144
|
+
hasSideEffects = false;
|
|
145
|
+
inputSchema = {
|
|
146
|
+
type: 'object',
|
|
147
|
+
required: ['path'],
|
|
148
|
+
properties: {
|
|
149
|
+
path: {
|
|
150
|
+
type: 'string',
|
|
151
|
+
description: 'File path to the document',
|
|
152
|
+
},
|
|
153
|
+
format: {
|
|
154
|
+
type: 'string',
|
|
155
|
+
enum: ['xlsx', 'csv', 'docx', 'pdf', 'auto'],
|
|
156
|
+
default: 'auto',
|
|
157
|
+
description: 'Document format. Auto-detected from extension if not specified.',
|
|
158
|
+
},
|
|
159
|
+
sheet: {
|
|
160
|
+
type: 'string',
|
|
161
|
+
description: 'For xlsx: specific sheet name to read. Reads all sheets if omitted.',
|
|
162
|
+
},
|
|
163
|
+
maxRows: {
|
|
164
|
+
type: 'number',
|
|
165
|
+
description: 'For xlsx/csv: maximum data rows to return per sheet (default: 500)',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
additionalProperties: false,
|
|
169
|
+
};
|
|
170
|
+
constructor(shellService) {
|
|
171
|
+
this.shellService = shellService;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Read and parse a document
|
|
175
|
+
*/
|
|
176
|
+
async execute(input, _context) {
|
|
177
|
+
try {
|
|
178
|
+
// Detect format
|
|
179
|
+
const ext = extname(input.path).toLowerCase();
|
|
180
|
+
let format;
|
|
181
|
+
if (input.format && input.format !== 'auto') {
|
|
182
|
+
format = input.format;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
const detected = EXTENSION_FORMAT_MAP[ext];
|
|
186
|
+
if (!detected) {
|
|
187
|
+
const supported = Object.keys(EXTENSION_FORMAT_MAP).join(', ');
|
|
188
|
+
return {
|
|
189
|
+
success: false,
|
|
190
|
+
error: `Unsupported document format "${ext}". Supported: ${supported}. ` +
|
|
191
|
+
(ext === '.doc'
|
|
192
|
+
? 'Legacy .doc format is not supported. Please convert to .docx first.'
|
|
193
|
+
: 'For plain text files, use file_read instead.'),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
format = detected;
|
|
197
|
+
}
|
|
198
|
+
// Read file as buffer (enforces filesystem security)
|
|
199
|
+
const { buffer, path: absolutePath, size } = await this.shellService.readFileBuffer(input.path);
|
|
200
|
+
const maxRows = input.maxRows ?? 500;
|
|
201
|
+
// Parse by format
|
|
202
|
+
let parsed;
|
|
203
|
+
switch (format) {
|
|
204
|
+
case 'xlsx':
|
|
205
|
+
parsed = await parseXlsx(buffer, { sheet: input.sheet, maxRows });
|
|
206
|
+
break;
|
|
207
|
+
case 'csv':
|
|
208
|
+
parsed = await parseCsv(buffer, { maxRows });
|
|
209
|
+
break;
|
|
210
|
+
case 'docx':
|
|
211
|
+
parsed = await parseDocx(buffer);
|
|
212
|
+
break;
|
|
213
|
+
case 'pdf':
|
|
214
|
+
parsed = await parsePdf(buffer);
|
|
215
|
+
break;
|
|
216
|
+
default:
|
|
217
|
+
return { success: false, error: `Unknown format: ${format}` };
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
success: true,
|
|
221
|
+
output: {
|
|
222
|
+
path: absolutePath,
|
|
223
|
+
format,
|
|
224
|
+
size,
|
|
225
|
+
content: parsed.content,
|
|
226
|
+
structured: parsed.structured,
|
|
227
|
+
metadata: parsed.metadata,
|
|
228
|
+
},
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
return { success: false, error: error.message };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Validate input
|
|
237
|
+
*/
|
|
238
|
+
validateArgs(input) {
|
|
239
|
+
const errors = [];
|
|
240
|
+
if (!input.path) {
|
|
241
|
+
errors.push('Path is required');
|
|
242
|
+
}
|
|
243
|
+
else if (typeof input.path !== 'string') {
|
|
244
|
+
errors.push('Path must be a string');
|
|
245
|
+
}
|
|
246
|
+
if (input.format && !['xlsx', 'csv', 'docx', 'pdf', 'auto'].includes(input.format)) {
|
|
247
|
+
errors.push(`Invalid format "${input.format}". Must be one of: xlsx, csv, docx, pdf, auto`);
|
|
248
|
+
}
|
|
249
|
+
return errors.length === 0 ? { isValid: true } : { isValid: false, errors };
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=readDocument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readDocument.js","sourceRoot":"","sources":["../../src/tools/readDocument.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,10 +12,48 @@ export interface ShellConfig {
|
|
|
12
12
|
timeout?: number;
|
|
13
13
|
/** Default working directory */
|
|
14
14
|
workingDirectory?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional filesystem access policy for the file_* tools.
|
|
17
|
+
*
|
|
18
|
+
* When omitted, file tools can access any path (legacy behavior).
|
|
19
|
+
* When set, read/write/list operations are restricted to the configured roots.
|
|
20
|
+
*/
|
|
21
|
+
filesystem?: {
|
|
22
|
+
/** Allow file reads and directory listings. Default: false. */
|
|
23
|
+
allowRead?: boolean;
|
|
24
|
+
/** Allow file writes. Default: false. */
|
|
25
|
+
allowWrite?: boolean;
|
|
26
|
+
/** Allowed root directories for reads/listing. */
|
|
27
|
+
readRoots?: string[];
|
|
28
|
+
/** Allowed root directories for writes. */
|
|
29
|
+
writeRoots?: string[];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Optional per-agent workspace helper. When provided, the extension can
|
|
33
|
+
* auto-create an agent-specific directory and (optionally) default the
|
|
34
|
+
* workingDirectory/readRoots/writeRoots to that directory.
|
|
35
|
+
*/
|
|
36
|
+
agentWorkspace?: {
|
|
37
|
+
/** Enable workspace behavior when provided. Default: true. */
|
|
38
|
+
enabled?: boolean;
|
|
39
|
+
/** Base directory under which per-agent folders are created. */
|
|
40
|
+
baseDir?: string;
|
|
41
|
+
/** Folder name for this agent. */
|
|
42
|
+
agentId: string;
|
|
43
|
+
/** Create the workspace directory if missing. Default: true. */
|
|
44
|
+
createIfMissing?: boolean;
|
|
45
|
+
/** Subdirectories to create inside the workspace. Default: ['assets','exports','tmp'] */
|
|
46
|
+
subdirs?: string[];
|
|
47
|
+
};
|
|
15
48
|
/** Whitelist of allowed commands (empty = all allowed) */
|
|
16
49
|
allowedCommands?: string[];
|
|
17
50
|
/** Blacklist of blocked commands */
|
|
18
51
|
blockedCommands?: string[];
|
|
52
|
+
/**
|
|
53
|
+
* Disable all command safety checks (dangerous patterns, allow/deny lists).
|
|
54
|
+
* Use only in trusted environments.
|
|
55
|
+
*/
|
|
56
|
+
dangerouslySkipSecurityChecks?: boolean;
|
|
19
57
|
/** Environment variables to inject */
|
|
20
58
|
env?: Record<string, string>;
|
|
21
59
|
}
|
|
@@ -167,6 +205,31 @@ export interface ListDirectoryResult {
|
|
|
167
205
|
/** Whether listing was recursive */
|
|
168
206
|
recursive: boolean;
|
|
169
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Document read result
|
|
210
|
+
*/
|
|
211
|
+
export interface DocumentReadResult {
|
|
212
|
+
/** File path */
|
|
213
|
+
path: string;
|
|
214
|
+
/** Detected format */
|
|
215
|
+
format: string;
|
|
216
|
+
/** File size in bytes */
|
|
217
|
+
size: number;
|
|
218
|
+
/** Human/LLM-readable text representation (always present) */
|
|
219
|
+
content: string;
|
|
220
|
+
/** Structured data for spreadsheets */
|
|
221
|
+
structured?: {
|
|
222
|
+
sheets?: Array<{
|
|
223
|
+
name: string;
|
|
224
|
+
headers: string[];
|
|
225
|
+
rows: any[][];
|
|
226
|
+
rowCount: number;
|
|
227
|
+
truncated: boolean;
|
|
228
|
+
}>;
|
|
229
|
+
};
|
|
230
|
+
/** Document metadata (PDF info, etc.) */
|
|
231
|
+
metadata?: Record<string, any>;
|
|
232
|
+
}
|
|
170
233
|
/**
|
|
171
234
|
* Security check result
|
|
172
235
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/manifest.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"$schema": "https://agentos.sh/schemas/extension-manifest-v1.json",
|
|
3
3
|
"id": "com.framers.system.cli-executor",
|
|
4
4
|
"name": "CLI Executor Extension",
|
|
5
|
-
"version": "1.
|
|
6
|
-
"description": "Execute shell commands
|
|
5
|
+
"version": "1.2.0",
|
|
6
|
+
"description": "Execute shell commands and manage files for AgentOS agents",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Frame.dev",
|
|
9
9
|
"email": "support@frame.dev",
|
|
@@ -20,38 +20,45 @@
|
|
|
20
20
|
"extensions": [
|
|
21
21
|
{
|
|
22
22
|
"kind": "tool",
|
|
23
|
-
"id": "
|
|
23
|
+
"id": "shell_execute",
|
|
24
24
|
"displayName": "Execute Shell Command",
|
|
25
25
|
"description": "Execute a shell command and return output",
|
|
26
26
|
"entry": "./dist/tools/execute.js"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"kind": "tool",
|
|
30
|
-
"id": "
|
|
31
|
-
"displayName": "Run Script",
|
|
32
|
-
"description": "Run a script file (bash, python, node, etc.)",
|
|
33
|
-
"entry": "./dist/tools/script.js"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"kind": "tool",
|
|
37
|
-
"id": "fileRead",
|
|
30
|
+
"id": "file_read",
|
|
38
31
|
"displayName": "Read File",
|
|
39
32
|
"description": "Read contents of a file",
|
|
40
33
|
"entry": "./dist/tools/fileRead.js"
|
|
41
34
|
},
|
|
42
35
|
{
|
|
43
36
|
"kind": "tool",
|
|
44
|
-
"id": "
|
|
37
|
+
"id": "file_write",
|
|
45
38
|
"displayName": "Write File",
|
|
46
39
|
"description": "Write content to a file",
|
|
47
40
|
"entry": "./dist/tools/fileWrite.js"
|
|
48
41
|
},
|
|
49
42
|
{
|
|
50
43
|
"kind": "tool",
|
|
51
|
-
"id": "
|
|
44
|
+
"id": "list_directory",
|
|
52
45
|
"displayName": "List Directory",
|
|
53
46
|
"description": "List files and directories",
|
|
54
47
|
"entry": "./dist/tools/listDir.js"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"kind": "tool",
|
|
51
|
+
"id": "create_pdf",
|
|
52
|
+
"displayName": "Create PDF",
|
|
53
|
+
"description": "Create a real PDF document from text content",
|
|
54
|
+
"entry": "./dist/tools/createPdf.js"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"kind": "tool",
|
|
58
|
+
"id": "read_document",
|
|
59
|
+
"displayName": "Read Document",
|
|
60
|
+
"description": "Extract text from xlsx, csv, docx, pdf files",
|
|
61
|
+
"entry": "./dist/tools/readDocument.js"
|
|
55
62
|
}
|
|
56
63
|
],
|
|
57
64
|
"configuration": {
|
|
@@ -88,4 +95,3 @@
|
|
|
88
95
|
}
|
|
89
96
|
|
|
90
97
|
|
|
91
|
-
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos-ext-cli-executor",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "CLI executor extension for AgentOS - execute shell commands and manage files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,12 +16,6 @@
|
|
|
16
16
|
"manifest.json",
|
|
17
17
|
"README.md"
|
|
18
18
|
],
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "tsc",
|
|
21
|
-
"test": "vitest run",
|
|
22
|
-
"test:watch": "vitest",
|
|
23
|
-
"clean": "rm -rf dist"
|
|
24
|
-
},
|
|
25
19
|
"keywords": [
|
|
26
20
|
"agentos",
|
|
27
21
|
"extension",
|
|
@@ -48,12 +42,24 @@
|
|
|
48
42
|
"url": "https://github.com/framersai/agentos-extensions",
|
|
49
43
|
"directory": "registry/curated/system/cli-executor"
|
|
50
44
|
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"xlsx": "^0.18.5",
|
|
47
|
+
"mammoth": "^1.8.0",
|
|
48
|
+
"pdf-parse": "^1.1.1"
|
|
49
|
+
},
|
|
51
50
|
"peerDependencies": {
|
|
52
51
|
"@framers/agentos": "^0.1.0"
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
55
54
|
"@types/node": "^20.0.0",
|
|
56
55
|
"typescript": "^5.4.0",
|
|
57
|
-
"vitest": "^1.6.0"
|
|
56
|
+
"vitest": "^1.6.0",
|
|
57
|
+
"@framers/agentos": "0.1.6"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"build": "tsc",
|
|
61
|
+
"test": "vitest run",
|
|
62
|
+
"test:watch": "vitest",
|
|
63
|
+
"clean": "rm -rf dist"
|
|
58
64
|
}
|
|
59
|
-
}
|
|
65
|
+
}
|