@aloth/olcli 0.15.3 → 0.16.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.
Files changed (49) hide show
  1. package/README.md +140 -437
  2. package/dist/browser-auth.d.ts +144 -0
  3. package/dist/browser-auth.d.ts.map +1 -0
  4. package/dist/browser-auth.js +442 -0
  5. package/dist/browser-auth.js.map +1 -0
  6. package/dist/cli.js +429 -174
  7. package/dist/cli.js.map +1 -1
  8. package/dist/client.d.ts +20 -0
  9. package/dist/client.d.ts.map +1 -1
  10. package/dist/client.js +103 -37
  11. package/dist/client.js.map +1 -1
  12. package/dist/config.d.ts +25 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +40 -7
  15. package/dist/config.js.map +1 -1
  16. package/dist/errors.d.ts +50 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +115 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/fast-export.d.ts +2 -0
  21. package/dist/fast-export.d.ts.map +1 -1
  22. package/dist/fast-export.js +5 -1
  23. package/dist/fast-export.js.map +1 -1
  24. package/dist/mcp-server.d.ts.map +1 -1
  25. package/dist/mcp-server.js +4 -1
  26. package/dist/mcp-server.js.map +1 -1
  27. package/dist/mcp.js +1 -1
  28. package/dist/mcp.js.map +1 -1
  29. package/dist/paths.d.ts +18 -0
  30. package/dist/paths.d.ts.map +1 -1
  31. package/dist/paths.js +45 -0
  32. package/dist/paths.js.map +1 -1
  33. package/dist/project-match.d.ts +37 -0
  34. package/dist/project-match.d.ts.map +1 -0
  35. package/dist/project-match.js +97 -0
  36. package/dist/project-match.js.map +1 -0
  37. package/dist/proxy.d.ts +52 -0
  38. package/dist/proxy.d.ts.map +1 -0
  39. package/dist/proxy.js +189 -0
  40. package/dist/proxy.js.map +1 -0
  41. package/dist/remote-helper.d.ts +3 -2
  42. package/dist/remote-helper.d.ts.map +1 -1
  43. package/dist/remote-helper.js +130 -37
  44. package/dist/remote-helper.js.map +1 -1
  45. package/dist/term.d.ts +25 -0
  46. package/dist/term.d.ts.map +1 -0
  47. package/dist/term.js +42 -0
  48. package/dist/term.js.map +1 -0
  49. package/package.json +9 -4
@@ -9,13 +9,16 @@
9
9
  *
10
10
  * Protocol reference: gitremote-helpers(7)
11
11
  *
12
- * Capabilities: import + export with refspec.
13
- * State stored in .git/overleaf/ (manifest).
12
+ * Capabilities: import + export with refspec, option (for push --force).
13
+ * State stored in .git/overleaf/ (manifest, marks, sha256 of every remote file).
14
+ * A push is refused while Overleaf has changes the clone has not fetched.
14
15
  */
15
16
  import { execSync } from 'node:child_process';
17
+ import { createHash } from 'node:crypto';
16
18
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
17
19
  import { join, resolve } from 'node:path';
18
20
  import { OverleafClient } from './client.js';
21
+ import { formatErrorText } from './errors.js';
19
22
  import { getSessionCookie, getBaseUrl, getSessionCookieName, getTimeout, getPasswordCredentials, } from './config.js';
20
23
  import { loadIgnore, shouldIgnore } from './ignore.js';
21
24
  import { ByteReader, parseFastExport } from './fast-export.js';
@@ -52,6 +55,35 @@ function parseRemoteUrl(url) {
52
55
  }
53
56
  fatal(`Cannot parse Overleaf URL: ${url}\n Expected: https://<host>/project/<24-char-id>`);
54
57
  }
58
+ /** Download the project and hash every file in it. */
59
+ async function remoteSnapshot(client, projectId) {
60
+ const zipBuffer = await client.downloadProject(projectId);
61
+ const AdmZip = (await import('adm-zip')).default;
62
+ const files = [];
63
+ const hashes = {};
64
+ for (const entry of new AdmZip(zipBuffer).getEntries()) {
65
+ if (entry.isDirectory)
66
+ continue;
67
+ const data = entry.getData();
68
+ files.push({ path: entry.entryName, data });
69
+ hashes[entry.entryName] = createHash('sha256').update(data).digest('hex');
70
+ }
71
+ return { files, hashes };
72
+ }
73
+ /** Paths whose content differs between two snapshots, including added and removed files. */
74
+ function changedPaths(before, after) {
75
+ const paths = new Set([...Object.keys(before), ...Object.keys(after)]);
76
+ return [...paths].filter((p) => before[p] !== after[p]).sort();
77
+ }
78
+ function localRemoteSha() {
79
+ try {
80
+ const sha = execSync('git rev-parse --verify refs/overleaf/main 2>/dev/null', { encoding: 'utf-8', env: { ...process.env, GIT_DIR: getGitDir() } }).trim();
81
+ return /^[a-f0-9]{40}$/.test(sha) ? sha : undefined;
82
+ }
83
+ catch {
84
+ return undefined;
85
+ }
86
+ }
55
87
  function getGitDir() {
56
88
  const gitDir = process.env.GIT_DIR;
57
89
  if (!gitDir)
@@ -94,7 +126,7 @@ async function getClient(baseUrl) {
94
126
  }
95
127
  catch (err) {
96
128
  if (!passwordCredentials) {
97
- fatal(`Authentication failed: ${err.message}\nRun 'olcli auth' or set OVERLEAF_SESSION.`);
129
+ fatal(`Authentication failed: ${formatErrorText(err, { verbose: true })}\nRun 'olcli auth' or set OVERLEAF_SESSION.`);
98
130
  }
99
131
  }
100
132
  }
@@ -130,6 +162,41 @@ async function pushChanges(client, projectId, parsed, _state) {
130
162
  }
131
163
  }
132
164
  }
165
+ /**
166
+ * Why a push must not go ahead, or undefined when it may. Mirrors git's
167
+ * non-fast-forward rejection: Overleaf has changes this clone has not fetched.
168
+ */
169
+ function pushRefusal(recorded, current) {
170
+ if (!recorded) {
171
+ return 'this clone has no record of the Overleaf state (made by olcli 0.16.0 or earlier); run git pull once, then push again';
172
+ }
173
+ const changed = changedPaths(recorded, current);
174
+ if (changed.length === 0)
175
+ return undefined;
176
+ const shown = changed.slice(0, 3).join(', ') + (changed.length > 3 ? ` and ${changed.length - 3} more` : '');
177
+ return `Overleaf has changes you do not have yet (${shown}); run git pull, then push again, or git push --force to overwrite them`;
178
+ }
179
+ /**
180
+ * The commit being pushed must contain the last import, or the push would
181
+ * replace what was fetched from Overleaf with an older version, for example
182
+ * after a git pull whose merge conflict was never resolved.
183
+ */
184
+ function notMergedRefusal(refs) {
185
+ const fetchedSha = localRemoteSha();
186
+ if (!fetchedSha)
187
+ return undefined;
188
+ for (const ref of refs.length ? refs : ['HEAD']) {
189
+ try {
190
+ execSync(`git merge-base --is-ancestor ${fetchedSha} ${JSON.stringify(ref)}`, {
191
+ stdio: 'ignore', env: { ...process.env, GIT_DIR: getGitDir() },
192
+ });
193
+ }
194
+ catch {
195
+ return 'your branch does not contain the last fetch from Overleaf; merge it first (git pull, resolve any conflict, commit), then push again, or git push --force to overwrite';
196
+ }
197
+ }
198
+ return undefined;
199
+ }
133
200
  // ─── Protocol handler ───
134
201
  async function main() {
135
202
  // Args: git-remote-overleaf <remote-name> <url>
@@ -143,6 +210,12 @@ async function main() {
143
210
  debug(`Project ID: ${projectId}, Base URL: ${baseUrl}`);
144
211
  ensureStateDir();
145
212
  const state = loadState();
213
+ let clientPromise;
214
+ const client = () => (clientPromise ??= getClient(baseUrl));
215
+ // The snapshot `list` downloads is reused by the `import` that follows in the
216
+ // same process, so a fetch downloads the project once.
217
+ let fetched;
218
+ let force = false;
146
219
  // Byte-exact reader: fast-export blobs are raw bytes, which a line reader
147
220
  // such as readline would decode as text and corrupt.
148
221
  const reader = new ByteReader(process.stdin);
@@ -168,6 +241,8 @@ async function main() {
168
241
  const caps = [
169
242
  'import',
170
243
  'export',
244
+ // Lets git pass `option force true` for `git push --force`.
245
+ 'option',
171
246
  // Map remote refs/heads/* to a private namespace refs/overleaf/<remote>/*
172
247
  // This is critical: git uses the private namespace to track what the remote has.
173
248
  // Without a separate namespace, git can't compute the push delta.
@@ -182,25 +257,25 @@ async function main() {
182
257
  continue;
183
258
  }
184
259
  if (trimmed === 'list' || trimmed === 'list for-push') {
185
- // Report what SHA the remote currently has.
186
- // Read from refs/overleaf/main (our private namespace ref updated by
187
- // git after import/export via the refspec mapping).
188
- let remoteSha;
189
- try {
190
- const sha = execSync('git rev-parse --verify refs/overleaf/main 2>/dev/null', { encoding: 'utf-8', env: { ...process.env, GIT_DIR: getGitDir() } }).trim();
191
- if (/^[a-f0-9]{40}$/.test(sha))
192
- remoteSha = sha;
193
- }
194
- catch { /* not yet created */ }
195
- if (remoteSha) {
196
- process.stdout.write(`${remoteSha} refs/heads/main\n`);
197
- }
198
- else {
199
- process.stdout.write('? refs/heads/main\n');
260
+ // Tell git which commit the remote is at. refs/overleaf/main is the
261
+ // commit of the last import or push; it is only still true if Overleaf
262
+ // has not changed since. Before a fetch, download the project and
263
+ // compare: unchanged reports that commit (git has nothing to do),
264
+ // changed reports '?' so git asks for an import. For a push the check
265
+ // happens in export instead, against a fresh download.
266
+ const remoteSha = localRemoteSha();
267
+ let report = remoteSha ?? '?';
268
+ if (trimmed === 'list' && remoteSha) {
269
+ fetched = await remoteSnapshot(await client(), projectId);
270
+ const changed = state.remoteHashes ? changedPaths(state.remoteHashes, fetched.hashes) : ['(no record)'];
271
+ if (changed.length > 0)
272
+ report = '?';
273
+ debug(`Overleaf changed since last import: ${changed.length ? changed.join(', ') : 'nothing'}`);
200
274
  }
275
+ process.stdout.write(`${report} refs/heads/main\n`);
201
276
  process.stdout.write('@refs/heads/main HEAD\n');
202
277
  process.stdout.write('\n'); // blank line terminates
203
- debug(`> list response sent (sha=${remoteSha || '?'})`);
278
+ debug(`> list response sent (sha=${report})`);
204
279
  continue;
205
280
  }
206
281
  if (trimmed.startsWith('import ')) {
@@ -220,13 +295,9 @@ async function main() {
220
295
  }
221
296
  }
222
297
  debug(`Import requested for: ${refs.join(', ')}`);
223
- // Authenticate and fetch
224
- const client = await getClient(baseUrl);
225
298
  debug('Generating fast-import stream...');
226
- const zipBuffer = await client.downloadProject(projectId);
227
- const AdmZip = (await import('adm-zip')).default;
228
- const zip = new AdmZip(zipBuffer);
229
- const entries = zip.getEntries();
299
+ const snapshot = fetched ?? await remoteSnapshot(await client(), projectId);
300
+ fetched = undefined;
230
301
  let mark = state.lastMark;
231
302
  const newManifest = [];
232
303
  const fileMarks = [];
@@ -238,14 +309,18 @@ async function main() {
238
309
  process.stdout.write(`feature export-marks=${marks}\n`);
239
310
  // feature done tells fast-import to expect "done" as terminator
240
311
  process.stdout.write('feature done\n');
312
+ // Nothing changed on Overleaf since the last import or push: write no
313
+ // commit, so the history does not fill up with empty imports.
314
+ const parentSha = localRemoteSha();
315
+ if (parentSha && state.remoteHashes && changedPaths(state.remoteHashes, snapshot.hashes).length === 0) {
316
+ process.stdout.write('done\n');
317
+ debug('Import: Overleaf unchanged, no commit');
318
+ continue;
319
+ }
241
320
  // Write blobs
242
- for (const entry of entries) {
243
- if (entry.isDirectory)
244
- continue;
245
- const path = entry.entryName;
321
+ for (const { path, data } of snapshot.files) {
246
322
  newManifest.push(path);
247
323
  mark++;
248
- const data = entry.getData();
249
324
  process.stdout.write(`blob\nmark :${mark}\ndata ${data.length}\n`);
250
325
  process.stdout.write(data);
251
326
  process.stdout.write('\n');
@@ -261,8 +336,8 @@ async function main() {
261
336
  const msg = 'Import from Overleaf';
262
337
  process.stdout.write(`data ${Buffer.byteLength(msg)}\n`);
263
338
  process.stdout.write(`${msg}\n`);
264
- // Parent: reference previous state if any
265
- if (state.manifest.length > 0) {
339
+ // Parent: the last imported or pushed commit, if any
340
+ if (parentSha) {
266
341
  process.stdout.write(`from refs/overleaf/main^0\n`);
267
342
  }
268
343
  // Deletions (files removed on Overleaf since last import)
@@ -279,6 +354,7 @@ async function main() {
279
354
  // Update state
280
355
  state.manifest = newManifest;
281
356
  state.lastMark = mark;
357
+ state.remoteHashes = snapshot.hashes;
282
358
  saveState(state);
283
359
  debug(`Import complete: ${fileMarks.length} files, ${removedFiles.length} deletions`);
284
360
  continue;
@@ -286,7 +362,6 @@ async function main() {
286
362
  if (trimmed.startsWith('export')) {
287
363
  // Push: git sends a fast-export stream on stdin
288
364
  debug('Export (push) starting — reading fast-export stream...');
289
- const client = await getClient(baseUrl);
290
365
  const parsed = await parseFastExport(reader);
291
366
  debug(`Parsed export: ${parsed.files.length} modifications, ${parsed.deletes.length} deletions`);
292
367
  if (parsed.files.length === 0 && parsed.deletes.length === 0) {
@@ -296,7 +371,17 @@ async function main() {
296
371
  process.stdout.write('\n');
297
372
  }
298
373
  else {
299
- await pushChanges(client, projectId, parsed, state);
374
+ const overleaf = await client();
375
+ // Refuse to overwrite edits made on Overleaf since the last fetch, the
376
+ // way git refuses a non-fast-forward push. --force skips the check.
377
+ const before = await remoteSnapshot(overleaf, projectId);
378
+ const refusal = force ? undefined : (pushRefusal(state.remoteHashes, before.hashes) ?? notMergedRefusal(parsed.refs));
379
+ if (refusal) {
380
+ process.stdout.write(`error refs/heads/main ${refusal}\n\n`);
381
+ debug(`Push refused: ${refusal}`);
382
+ continue;
383
+ }
384
+ await pushChanges(overleaf, projectId, parsed, state);
300
385
  // Report success for each ref that was pushed
301
386
  process.stdout.write('ok refs/heads/main\n');
302
387
  process.stdout.write('\n');
@@ -309,14 +394,22 @@ async function main() {
309
394
  currentManifest.add(file.path);
310
395
  }
311
396
  state.manifest = [...currentManifest];
397
+ // Record Overleaf as it is after the push, as Overleaf stores it, so
398
+ // the next push does not mistake our own upload for a coauthor's edit.
399
+ state.remoteHashes = (await remoteSnapshot(overleaf, projectId)).hashes;
312
400
  saveState(state);
313
401
  }
314
402
  debug('Export complete.');
315
403
  continue;
316
404
  }
317
405
  if (trimmed.startsWith('option ')) {
318
- // We don't support any options currently
319
- process.stdout.write('unsupported\n');
406
+ if (trimmed === 'option force true' || trimmed === 'option force false') {
407
+ force = trimmed.endsWith('true');
408
+ process.stdout.write('ok\n');
409
+ }
410
+ else {
411
+ process.stdout.write('unsupported\n');
412
+ }
320
413
  continue;
321
414
  }
322
415
  // Unknown command
@@ -331,6 +424,6 @@ process.stdout.on('error', (err) => {
331
424
  throw err;
332
425
  });
333
426
  main().catch((err) => {
334
- fatal(err.message || String(err));
427
+ fatal(formatErrorText(err, { verbose: true }));
335
428
  });
336
429
  //# sourceMappingURL=remote-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-helper.js","sourceRoot":"","sources":["../src/remote-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-helper.js","sourceRoot":"","sources":["../src/remote-helper.ts"],"names":[],"mappings":"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"}
package/dist/term.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Terminal behavior: color, emoji and symbols only where a human is looking.
3
+ *
4
+ * - Color follows NO_COLOR (https://no-color.org: set and non-empty turns it
5
+ * off) and the global --no-color flag. chalk already turns color off when
6
+ * stdout is not a TTY.
7
+ * - Spinners: ora only animates on an interactive stderr; createSpinner()
8
+ * also swaps its result symbols for words when stderr is not a terminal.
9
+ * - Emoji and decorative symbols are replaced with plain text when stdout is
10
+ * not a TTY, so piped output stays greppable.
11
+ */
12
+ import { type Ora } from 'ora';
13
+ export declare function colorDisabled(env?: NodeJS.ProcessEnv, argv?: string[]): boolean;
14
+ export declare function isInteractive(stream?: {
15
+ isTTY?: boolean;
16
+ }, env?: NodeJS.ProcessEnv): boolean;
17
+ /** `fancy` on an interactive stdout, `plain` otherwise. */
18
+ export declare function icon(fancy: string, plain: string): string;
19
+ /**
20
+ * An ora spinner that prints plain words instead of symbols when stderr (where
21
+ * ora writes) is not a terminal, so a log or CI output reads "error: ..."
22
+ * rather than a glyph. On a terminal it is ora unchanged.
23
+ */
24
+ export declare function createSpinner(text: string): Ora;
25
+ //# sourceMappingURL=term.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"term.d.ts","sourceRoot":"","sources":["../src/term.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAE3C,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAI1G;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAmB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzH;AAED,2DAA2D;AAC3D,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAS/C"}
package/dist/term.js ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Terminal behavior: color, emoji and symbols only where a human is looking.
3
+ *
4
+ * - Color follows NO_COLOR (https://no-color.org: set and non-empty turns it
5
+ * off) and the global --no-color flag. chalk already turns color off when
6
+ * stdout is not a TTY.
7
+ * - Spinners: ora only animates on an interactive stderr; createSpinner()
8
+ * also swaps its result symbols for words when stderr is not a terminal.
9
+ * - Emoji and decorative symbols are replaced with plain text when stdout is
10
+ * not a TTY, so piped output stays greppable.
11
+ */
12
+ import oraFactory from 'ora';
13
+ export function colorDisabled(env = process.env, argv = process.argv) {
14
+ if (env.NO_COLOR !== undefined && env.NO_COLOR !== '')
15
+ return true;
16
+ const end = argv.indexOf('--');
17
+ return (end === -1 ? argv : argv.slice(0, end)).includes('--no-color');
18
+ }
19
+ export function isInteractive(stream = process.stdout, env = process.env) {
20
+ return Boolean(stream.isTTY) && env.TERM !== 'dumb';
21
+ }
22
+ /** `fancy` on an interactive stdout, `plain` otherwise. */
23
+ export function icon(fancy, plain) {
24
+ return isInteractive() ? fancy : plain;
25
+ }
26
+ /**
27
+ * An ora spinner that prints plain words instead of symbols when stderr (where
28
+ * ora writes) is not a terminal, so a log or CI output reads "error: ..."
29
+ * rather than a glyph. On a terminal it is ora unchanged.
30
+ */
31
+ export function createSpinner(text) {
32
+ const spinner = oraFactory({ text });
33
+ if (isInteractive(process.stderr))
34
+ return spinner;
35
+ const plain = (symbol) => (message) => spinner.stopAndPersist({ symbol, text: message });
36
+ spinner.succeed = plain('ok:');
37
+ spinner.fail = plain('error:');
38
+ spinner.warn = plain('warning:');
39
+ spinner.info = plain('info:');
40
+ return spinner;
41
+ }
42
+ //# sourceMappingURL=term.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"term.js","sourceRoot":"","sources":["../src/term.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,UAAwB,MAAM,KAAK,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,MAAyB,OAAO,CAAC,GAAG,EAAE,OAAiB,OAAO,CAAC,IAAI;IAC/F,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAA8B,OAAO,CAAC,MAAM,EAAE,MAAyB,OAAO,CAAC,GAAG;IAC9G,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;AACtD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,IAAI,CAAC,KAAa,EAAE,KAAa;IAC/C,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,OAAgB,EAAO,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/G,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aloth/olcli",
3
- "version": "0.15.3",
4
- "description": "Command-line interface for Overleaf — Sync, manage, and compile LaTeX projects from your terminal",
3
+ "version": "0.16.1",
4
+ "description": "Overleaf CLI: pull, push, sync and compile LaTeX projects from your terminal. Git remote helper, MCP server and TypeScript library.",
5
5
  "mcpName": "io.github.aloth/olcli",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
@@ -45,7 +45,12 @@
45
45
  "arxiv",
46
46
  "terminal",
47
47
  "typescript",
48
- "latex-tools"
48
+ "latex-tools",
49
+ "mcp",
50
+ "mcp-server",
51
+ "model-context-protocol",
52
+ "git-remote-helper",
53
+ "ai-agents"
49
54
  ],
50
55
  "author": "Alexander Loth <home@alexloth.com> (https://alexloth.com)",
51
56
  "license": "MIT",
@@ -62,7 +67,7 @@
62
67
  "adm-zip": "^0.5.16",
63
68
  "chalk": "^5.3.0",
64
69
  "cheerio": "^1.0.0",
65
- "commander": "^12.1.0",
70
+ "commander": "^14.0.3",
66
71
  "conf": "^13.0.0",
67
72
  "diff": "^9.0.0",
68
73
  "ignore": "^7.0.5",