Add CLI package, config file support, and workspace setup

Add cli/ package with initial scaffolding. Add config-schema to shared
package for typed configuration. Add server config-file loader for
paperclip.config.ts support. Register cli in pnpm workspace. Add
.paperclip/ and .pnpm-store/ to gitignore. Minor Companies page fix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Forgotten
2026-02-17 13:39:47 -06:00
parent 0975907121
commit 5306142542
28 changed files with 1091 additions and 7 deletions

18
cli/src/utils/net.ts Normal file
View File

@@ -0,0 +1,18 @@
import net from "node:net";
export function checkPort(port: number): Promise<{ available: boolean; error?: string }> {
return new Promise((resolve) => {
const server = net.createServer();
server.once("error", (err: NodeJS.ErrnoException) => {
if (err.code === "EADDRINUSE") {
resolve({ available: false, error: `Port ${port} is already in use` });
} else {
resolve({ available: false, error: err.message });
}
});
server.once("listening", () => {
server.close(() => resolve({ available: true }));
});
server.listen(port, "127.0.0.1");
});
}