@llamaventures/cli 1.3.0 → 1.3.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.
package/AGENT_BRIEFING.md CHANGED
@@ -139,7 +139,6 @@ Tools available:
139
139
  - `timeline` / `post`
140
140
  - `mentions_list`
141
141
  - `pitch_start` / `pitch_send_message` / `pitch_upload_file` / `pitch_status` / `pitch_finalize` — public intake (no Llama token needed; for founders / EAs / external agents)
142
- - `llama_api` — escape hatch for any endpoint not yet wrapped (path must start `/api/`)
143
142
 
144
143
  You can also fetch this exact briefing as an MCP prompt named `agent_briefing`.
145
144
 
package/README.md CHANGED
@@ -342,9 +342,8 @@ llama pitch upload ./deck.pdf
342
342
  llama pitch # interactive REPL
343
343
  ```
344
344
 
345
- Server-enforced caps (same as the web flow): 5 sessions/IP/day,
346
- 3 sessions/email/day, 30 min idle timeout, 100 messages/session,
347
- 1 M tokens/session.
345
+ Server-enforced rate limits apply (per-IP, per-email, per-session). If you
346
+ hit a limit, the CLI surfaces the server's response message.
348
347
 
349
348
  This is genuine **agent-to-agent**: your AI helps you tell the story, our
350
349
  intake agent extracts the structured fields and produces the verdict.
package/bin/llama-mcp.mjs CHANGED
@@ -364,9 +364,8 @@ server.registerTool(
364
364
  // founder's agent talks to ours, structured intake gets captured, and a
365
365
  // 12-dimension verdict is returned.
366
366
  //
367
- // Anti-abuse caps are server-enforced (5 sessions/IP/day, 3/email/day,
368
- // 30min idle, 100 msg cap, 1M token cap, global daily cap). The MCP tools
369
- // surface those rejections as text back to the agent.
367
+ // Anti-abuse rate limits are server-enforced. The MCP tools surface
368
+ // any server-side rejections as text back to the agent.
370
369
 
371
370
  function asTextResult(text, isError = false) {
372
371
  return {
@@ -383,8 +382,8 @@ server.registerTool(
383
382
  "when a founder (the user) wants to pitch their company to Llama. " +
384
383
  "Requires their name + email. Returns a session_id; the conversation " +
385
384
  "is then maintained via pitch_send_message until the agent finalizes. " +
386
- "Caps (server-enforced): 5 sessions/IP/day, 3 sessions/email/day, " +
387
- "30min idle timeout. No Llama Command token needed.",
385
+ "Server-enforced rate limits apply (per-IP, per-email, per-session). " +
386
+ "No Llama Command token needed.",
388
387
  inputSchema: {
389
388
  name: z.string().describe("the founder's full name (max 100 chars)"),
390
389
  email: z.string().describe("the founder's email (deliverable, not a disposable domain)"),
@@ -447,8 +446,9 @@ server.registerTool(
447
446
  description:
448
447
  "Attach a file (deck, one-pager, deck PDF, screenshot, etc.) to the " +
449
448
  "active pitch session. Server allows pdf / pptx / ppt / docx / doc / " +
450
- "xlsx / xls / png / jpg / webp / heic / heif / txt / md, max 50 MB, " +
451
- "10 files per session. Returns a drive_file_id; the intake agent will " +
449
+ "xlsx / xls / png / jpg / webp / heic / heif / txt / md, with " +
450
+ "server-enforced size and per-session count limits. " +
451
+ "Returns a drive_file_id; the intake agent will " +
452
452
  "pick the file up via list_uploaded_files / read_uploaded_file on its " +
453
453
  "next turn (so call pitch_send_message with a one-line note like " +
454
454
  "'I just uploaded our pitch deck' so the agent knows to look).",
@@ -493,7 +493,7 @@ server.registerTool(
493
493
  "server-side intake agent to finalize — the agent decides that on its " +
494
494
  "own once the pitch is sufficient. Use this for cleanup after a session " +
495
495
  "ends, or to abandon a session early. The server-side session will " +
496
- "naturally expire after 30min of idle.",
496
+ "naturally expire after the server's idle timeout.",
497
497
  inputSchema: {},
498
498
  },
499
499
  async () => {
@@ -505,7 +505,7 @@ server.registerTool(
505
505
  {
506
506
  cleared: before.active,
507
507
  previous_session: before.active ? before : null,
508
- note: "Local pitch session state cleared. Server-side session may still be active for ~30min until idle timeout.",
508
+ note: "Local pitch session state cleared. Server-side session may still be active until its idle timeout.",
509
509
  },
510
510
  null,
511
511
  2
package/bin/llama.mjs CHANGED
@@ -242,7 +242,7 @@ Skill corrections (persona-owner pushback — read by persona-watcher):
242
242
  llama skill-correction add <skill-slug> "<correction text>" [--deal <uuid>] [--block <blockId>]
243
243
  llama skill-correction delete <id>
244
244
  Server enforces persona owner OR system admin on POST/DELETE; GET is open.
245
- External personas (owner_email=null, e.g. virtual-liu-yi) are admin-only for write.
245
+ External personas (owner_email=null) are admin-only for write.
246
246
 
247
247
  Mentions / Inbox:
248
248
  llama mentions # default: my unresolved cues
@@ -318,9 +318,9 @@ Inspect / clean up:
318
318
  llama pitch status # session id, idle minutes, finalized?
319
319
  llama pitch end # clear local session state
320
320
 
321
- Caps (server-enforced):
322
- 5 sessions per IP per day, 3 per email per day, 60min idle timeout,
323
- 100 messages per session, 1M tokens per session.
321
+ Caps:
322
+ Server-enforced per-IP / per-email / per-session rate limits apply.
323
+ The CLI surfaces server messages if a limit is hit.
324
324
 
325
325
  Environment:
326
326
  LLAMA_API_URL override base URL (dev: http://localhost:3000)
@@ -411,7 +411,7 @@ Environment:
411
411
  cleared: !!had,
412
412
  session_file: EXTERNAL_SESSION_FILE,
413
413
  note: had
414
- ? "Local session state cleared. Server-side session may still be active until idle timeout (60min)."
414
+ ? "Local session state cleared. Server-side session may still be active until idle timeout."
415
415
  : "No local session was active.",
416
416
  });
417
417
  return;
package/lib/external.mjs CHANGED
@@ -18,14 +18,11 @@ import { getBaseUrl } from "./client.mjs";
18
18
  const SESSION_DIR = path.join(os.homedir(), ".llama");
19
19
  const SESSION_FILE = path.join(SESSION_DIR, "external-session.json");
20
20
 
21
- // Server-side proof-of-work prefix. Must agree with
22
- // llama-command/src/lib/external-pow-client.ts. ~65k iterations average on
23
- // commodity hardware (~50–500ms in node).
21
+ // Server-side proof-of-work prefix. Server-validated; tune in tandem
22
+ // with the server policy if changed.
24
23
  const POW_DIFFICULTY_PREFIX = "0000";
25
24
 
26
- // Server requires ts_rendered to be at least 3s old (anti-replay). We
27
- // backdate by 4s when computing PoW so the request lands inside the
28
- // validity window without waiting.
25
+ // Backdate offset for the rendered-at timestamp passed to the server.
29
26
  const POW_BACKDATE_MS = 4_000;
30
27
 
31
28
  // ============================================================
@@ -360,13 +357,13 @@ export async function uploadExternalFile(filePath) {
360
357
 
361
358
  if (!res.ok) {
362
359
  if (res.status === 413) {
363
- throw new Error("File too large (max 50 MB).");
360
+ throw new Error("File too large.");
364
361
  }
365
362
  if (res.status === 415) {
366
363
  throw new Error(`MIME type "${mimetype}" not in server allowlist.`);
367
364
  }
368
365
  if (res.status === 429) {
369
- throw new Error("Upload cap reached (10 files per session).");
366
+ throw new Error("Upload cap reached.");
370
367
  }
371
368
  if (res.status === 401 || res.status === 403) {
372
369
  throw new Error(
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@llamaventures/cli",
3
- "version": "1.3.0",
4
- "description": "Llama Ventures CLI + MCP server. Internal team tool for command.llamaventures.vc.",
3
+ "version": "1.3.1",
4
+ "description": "CLI + MCP server for the Llama Ventures investment workbench (command.llamaventures.vc).",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "llama": "bin/llama.mjs",