summaryrefslogtreecommitdiff
path: root/tsconfig.cli.json
diff options
context:
space:
mode:
authorYurenHao0426 <blackhao0426@gmail.com>2026-09-13 04:05:38 +0000
committerYurenHao0426 <blackhao0426@gmail.com>2026-09-13 04:05:38 +0000
commitf3b2fc01082e754f7dfe73caa4f0a4f207a2adfb (patch)
treef6083a5abddc3541ad7996f71695e559b4b41ece /tsconfig.cli.json
parent34f22876ab9e15e9f14300a8c21cd7109800d1ab (diff)
Add headless CLI for Overleaf project management (lattex-cli)
New src/cli/ module providing a headless CLI for AI agents to work with Overleaf projects from a server with no display. Commands: auth, projects, clone, pull, status, push, compile. Key design decisions: - Uses Node.js https module (no Electron dependency), same approach as the existing MCP server in src/mcp/lattex.mjs - Reuses overleafProtocol.ts for Socket.IO v0.9 parsing (pure, no Electron) - Separate esbuild bundle (out/cli/lattex-cli.mjs) — does not touch the Electron app build - 64 tests for arg parsing, file tree walking, diff logic, and log parsing Files: - src/cli/main.ts — CLI entry point with all commands - src/cli/args.ts — argument parser - src/cli/overleafApi.ts — Overleaf API client using https + ws - src/cli/fileTree.ts — project root folder walker - src/cli/localState.ts — per-clone state (.lattex-cli.json) and auth storage - src/cli/diff.ts — local vs remote diff logic - src/cli/logParser.ts — LaTeX compile log parser - src/cli/test.ts — unit tests - tsconfig.cli.json — TypeScript config for CLI Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'tsconfig.cli.json')
-rw-r--r--tsconfig.cli.json22
1 files changed, 22 insertions, 0 deletions
diff --git a/tsconfig.cli.json b/tsconfig.cli.json
new file mode 100644
index 0000000..4efc99c
--- /dev/null
+++ b/tsconfig.cli.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true,
+ "esModuleInterop": true,
+ "outDir": "./out/cli",
+ "rootDir": "./src",
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "target": "ESNext",
+ "types": ["node"],
+ "declaration": true,
+ "declarationDir": "./out/cli/types"
+ },
+ "include": [
+ "src/cli/**/*",
+ "src/main/overleafProtocol.ts"
+ ]
+}