@perstack/base 0.0.21 → 0.0.23

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 ADDED
@@ -0,0 +1,61 @@
1
+ # @perstack/base
2
+
3
+ Base skills (MCP tools) for Perstack agents.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @perstack/base
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### As MCP Server
14
+
15
+ Run directly via npx:
16
+
17
+ ```bash
18
+ npx @perstack/base
19
+ ```
20
+
21
+ ### As Library
22
+
23
+ Import and register tools with your MCP server:
24
+
25
+ ```typescript
26
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"
27
+ import { registerReadTextFile, registerWriteTextFile } from "@perstack/base"
28
+
29
+ const server = new McpServer({ name: "my-server", version: "1.0.0" })
30
+
31
+ registerReadTextFile(server)
32
+ registerWriteTextFile(server)
33
+ ```
34
+
35
+ ## Available Tools
36
+
37
+ ### File Operations
38
+ - `readTextFile` - Read text files with optional line range
39
+ - `writeTextFile` - Create or overwrite text files
40
+ - `appendTextFile` - Append content to existing files
41
+ - `editTextFile` - Replace text in existing files
42
+ - `deleteFile` - Remove files
43
+ - `moveFile` - Move or rename files
44
+ - `getFileInfo` - Get file metadata
45
+ - `readImageFile` - Read image files (PNG, JPEG, GIF, WebP)
46
+ - `readPdfFile` - Read PDF files
47
+
48
+ ### Directory Operations
49
+ - `listDirectory` - List directory contents
50
+ - `createDirectory` - Create directories
51
+ - `deleteDirectory` - Remove directories
52
+
53
+ ### Utilities
54
+ - `exec` - Execute system commands
55
+ - `think` - Sequential thinking for problem analysis
56
+ - `todo` - Task list management
57
+ - `attemptCompletion` - Signal task completion
58
+
59
+ ## License
60
+
61
+ Apache-2.0
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ import { registerAttemptCompletion, registerThink, registerTodo, registerClearTodo, registerExec, registerGetFileInfo, registerReadTextFile, registerReadImageFile, registerReadPdfFile, registerWriteTextFile, registerAppendTextFile, registerEditTextFile, registerMoveFile, registerDeleteFile, registerListDirectory, registerCreateDirectory, registerDeleteDirectory } from '../chunk-H76GGP62.js';
3
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
5
+ import { Command } from 'commander';
6
+
7
+ // package.json
8
+ var package_default = {
9
+ name: "@perstack/base",
10
+ version: "0.0.23",
11
+ description: "Perstack base skills for agents."};
12
+
13
+ // bin/server.ts
14
+ async function main() {
15
+ const program = new Command();
16
+ program.name(package_default.name).description(package_default.description).version(package_default.version, "-v, --version", "display the version number").option("--verbose", "verbose output").action(async () => {
17
+ const server = new McpServer(
18
+ {
19
+ name: package_default.name,
20
+ version: package_default.version
21
+ },
22
+ {
23
+ capabilities: {
24
+ tools: {}
25
+ }
26
+ }
27
+ );
28
+ registerAttemptCompletion(server);
29
+ registerThink(server);
30
+ registerTodo(server);
31
+ registerClearTodo(server);
32
+ registerExec(server);
33
+ registerGetFileInfo(server);
34
+ registerReadTextFile(server);
35
+ registerReadImageFile(server);
36
+ registerReadPdfFile(server);
37
+ registerWriteTextFile(server);
38
+ registerAppendTextFile(server);
39
+ registerEditTextFile(server);
40
+ registerMoveFile(server);
41
+ registerDeleteFile(server);
42
+ registerListDirectory(server);
43
+ registerCreateDirectory(server);
44
+ registerDeleteDirectory(server);
45
+ const transport = new StdioServerTransport();
46
+ console.error("Running @perstack/base version", package_default.version);
47
+ await server.connect(transport);
48
+ });
49
+ program.parse();
50
+ }
51
+ main();
52
+ //# sourceMappingURL=server.js.map
53
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../package.json","../../bin/server.ts"],"names":[],"mappings":";;;;;;;AAAA,IAAA,eAAA,GAAA;AAAA,EACE,IAAA,EAAQ,gBAAA;AAAA,EACR,OAAA,EAAW,QAAA;AAAA,EACX,WAAA,EAAe,kCA6CjB,CAAA;;;ACzBA,eAAe,IAAA,GAAO;AACpB,EAAA,MAAM,OAAA,GAAU,IAAI,OAAA,EAAQ;AAC5B,EAAA,OAAA,CACG,KAAK,eAAA,CAAY,IAAI,EACrB,WAAA,CAAY,eAAA,CAAY,WAAW,CAAA,CACnC,OAAA,CAAQ,gBAAY,OAAA,EAAS,eAAA,EAAiB,4BAA4B,CAAA,CAC1E,MAAA,CAAO,aAAa,gBAAgB,CAAA,CACpC,OAAO,YAAY;AAClB,IAAA,MAAM,SAAS,IAAI,SAAA;AAAA,MACjB;AAAA,QACE,MAAM,eAAA,CAAY,IAAA;AAAA,QAClB,SAAS,eAAA,CAAY;AAAA,OACvB;AAAA,MACA;AAAA,QACE,YAAA,EAAc;AAAA,UACZ,OAAO;AAAC;AACV;AACF,KACF;AACA,IAAA,yBAAA,CAA0B,MAAM,CAAA;AAChC,IAAA,aAAA,CAAc,MAAM,CAAA;AACpB,IAAA,YAAA,CAAa,MAAM,CAAA;AACnB,IAAA,iBAAA,CAAkB,MAAM,CAAA;AACxB,IAAA,YAAA,CAAa,MAAM,CAAA;AACnB,IAAA,mBAAA,CAAoB,MAAM,CAAA;AAC1B,IAAA,oBAAA,CAAqB,MAAM,CAAA;AAC3B,IAAA,qBAAA,CAAsB,MAAM,CAAA;AAC5B,IAAA,mBAAA,CAAoB,MAAM,CAAA;AAC1B,IAAA,qBAAA,CAAsB,MAAM,CAAA;AAC5B,IAAA,sBAAA,CAAuB,MAAM,CAAA;AAC7B,IAAA,oBAAA,CAAqB,MAAM,CAAA;AAC3B,IAAA,gBAAA,CAAiB,MAAM,CAAA;AACvB,IAAA,kBAAA,CAAmB,MAAM,CAAA;AACzB,IAAA,qBAAA,CAAsB,MAAM,CAAA;AAC5B,IAAA,uBAAA,CAAwB,MAAM,CAAA;AAC9B,IAAA,uBAAA,CAAwB,MAAM,CAAA;AAC9B,IAAA,MAAM,SAAA,GAAY,IAAI,oBAAA,EAAqB;AAC3C,IAAA,OAAA,CAAQ,KAAA,CAAM,gCAAA,EAAkC,eAAA,CAAY,OAAO,CAAA;AACnE,IAAA,MAAM,MAAA,CAAO,QAAQ,SAAS,CAAA;AAAA,EAChC,CAAC,CAAA;AACH,EAAA,OAAA,CAAQ,KAAA,EAAM;AAChB;AACA,IAAA,EAAK","file":"server.js","sourcesContent":["{\n \"name\": \"@perstack/base\",\n \"version\": \"0.0.23\",\n \"description\": \"Perstack base skills for agents.\",\n \"author\": \"Wintermute Technologies, Inc.\",\n \"license\": \"Apache-2.0\",\n \"type\": \"module\",\n \"exports\": {\n \".\": \"./src/index.ts\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"bin\": {\n \"@perstack/base\": \"dist/bin/server.js\"\n },\n \"exports\": {\n \".\": \"./dist/src/index.js\"\n },\n \"types\": {\n \".\": \"./dist/src/index.d.ts\"\n }\n },\n \"files\": [\n \"dist\"\n ],\n \"scripts\": {\n \"clean\": \"rm -rf dist\",\n \"build\": \"pnpm run clean && tsup\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"dependencies\": {\n \"@modelcontextprotocol/sdk\": \"^1.23.0\",\n \"commander\": \"^14.0.2\",\n \"mime-types\": \"^3.0.2\",\n \"ts-dedent\": \"^2.2.0\",\n \"zod\": \"^4.1.13\"\n },\n \"devDependencies\": {\n \"@tsconfig/node22\": \"^22.0.5\",\n \"@types/mime-types\": \"^3.0.1\",\n \"@types/node\": \"^24.10.1\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"^5.9.3\",\n \"vitest\": \"^4.0.14\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n }\n}\n","#!/usr/bin/env node\n\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\"\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\"\nimport { Command } from \"commander\"\nimport packageJson from \"../package.json\" with { type: \"json\" }\nimport { registerAppendTextFile } from \"../src/tools/append-text-file.js\"\nimport { registerAttemptCompletion } from \"../src/tools/attempt-completion.js\"\nimport { registerCreateDirectory } from \"../src/tools/create-directory.js\"\nimport { registerDeleteDirectory } from \"../src/tools/delete-directory.js\"\nimport { registerDeleteFile } from \"../src/tools/delete-file.js\"\nimport { registerEditTextFile } from \"../src/tools/edit-text-file.js\"\nimport { registerExec } from \"../src/tools/exec.js\"\nimport { registerGetFileInfo } from \"../src/tools/get-file-info.js\"\nimport { registerListDirectory } from \"../src/tools/list-directory.js\"\nimport { registerMoveFile } from \"../src/tools/move-file.js\"\nimport { registerReadImageFile } from \"../src/tools/read-image-file.js\"\nimport { registerReadPdfFile } from \"../src/tools/read-pdf-file.js\"\nimport { registerReadTextFile } from \"../src/tools/read-text-file.js\"\nimport { registerThink } from \"../src/tools/think.js\"\nimport { registerClearTodo, registerTodo } from \"../src/tools/todo.js\"\nimport { registerWriteTextFile } from \"../src/tools/write-text-file.js\"\n\nasync function main() {\n const program = new Command()\n program\n .name(packageJson.name)\n .description(packageJson.description)\n .version(packageJson.version, \"-v, --version\", \"display the version number\")\n .option(\"--verbose\", \"verbose output\")\n .action(async () => {\n const server = new McpServer(\n {\n name: packageJson.name,\n version: packageJson.version,\n },\n {\n capabilities: {\n tools: {},\n },\n },\n )\n registerAttemptCompletion(server)\n registerThink(server)\n registerTodo(server)\n registerClearTodo(server)\n registerExec(server)\n registerGetFileInfo(server)\n registerReadTextFile(server)\n registerReadImageFile(server)\n registerReadPdfFile(server)\n registerWriteTextFile(server)\n registerAppendTextFile(server)\n registerEditTextFile(server)\n registerMoveFile(server)\n registerDeleteFile(server)\n registerListDirectory(server)\n registerCreateDirectory(server)\n registerDeleteDirectory(server)\n const transport = new StdioServerTransport()\n console.error(\"Running @perstack/base version\", packageJson.version)\n await server.connect(transport)\n })\n program.parse()\n}\nmain()\n"]}