@llamaventures/cli 1.9.1 → 1.11.0

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
@@ -47,7 +47,8 @@ A teammate says "I just met them and heard…" or pastes a chunk of notes. Your
47
47
  - **Verifiable claims → facts.** `llama deal fact add <dealId> --category <cat> --claim "…" --source "<where it came from>"`. A claim someone *relayed* ("their ARR is $3M", "raised from a16z") is a fact at **unverified** trust — it's hearsay until checked. Pass `--attested` ONLY if you actually verified it against a source yourself.
48
48
  - **Their judgment / impression → a note.** `llama post <dealId> "…"`. "Founder seemed evasive", "I'd lean pass", "worth a second meeting" — opinion, not fact. Attributed, never "verified".
49
49
  - A pasted blob → pull the verifiable claims out as facts, capture their take as a note.
50
- 3. **Confirm accuracy.** After filing, tell them in plain language what you recorded and where, and ask if it's right. Facts you add stay **unverified** until a human confirms them (then they rise to human-vouched) the confirmation IS the trust step. Never silently mark something verified.
50
+ 3. **Read it back before you claim it's saved.** A tool call returning `{ok:true}` is NOT proof the content is where the user will look for it. After filing, run `llama deal feed <dealId>` and confirm your fact/note actually appears, THEN tell the user in plain language what you recorded and where. Never say "记好了 / saved" from the return value alone the #1 failure is an agent writing to the wrong surface (e.g. the brief, which is the Memo and does NOT appear in the feed) and reporting success anyway. If it's not in the feed, you routed it wrong — fix it.
51
+ - **Authorship is automatic, don't fake it.** Everything you write via CLI/MCP is recorded as "via assistant" (you're the accountable human's assistant). You can't and shouldn't make it read as human-typed — that honesty is the feature. Facts you add stay **unverified** until a human confirms them; if you pass `--attested` (only when you actually checked the source) your ceiling is **agent-verified**, never human-vouched. Only a person, signed in at the browser, can vouch. The confirmation IS the trust step — never silently mark something verified.
51
52
 
52
53
  Why split it: facts and opinions live in different layers so the deal keeps one clean **source of truth** (facts, sourced + trust-rated) separate from people's **takes** (notes). The four layers — facts / notes / brief (AI's synthesis) / timeline — are documented in Llama Command's `docs/SCHEMA.md`.
53
54
 
package/bin/llama-mcp.mjs CHANGED
@@ -307,10 +307,16 @@ server.registerTool(
307
307
  "deal_feed",
308
308
  {
309
309
  description:
310
- "The unified, time-sorted stream of everything a HUMAN has added to a deal — " +
310
+ "The unified, time-sorted stream of every contribution to a deal — " +
311
311
  "facts + notes/discussion + legacy posts, merged at query time, newest first. " +
312
- "Excludes AI-generated content. Each item: kind (fact|note), ts, who, text, " +
313
- "and for facts: source + trust rung + category.",
312
+ "Shows contributions from ANYONE a teammate, their AI assistant, or an " +
313
+ "autonomous system agent; nothing is hidden. Each item carries `who` (the " +
314
+ "accountable person, null only for principal-less system writes) and `agent` " +
315
+ "(the assistant/system label when an AI did the writing, null when a human " +
316
+ "typed it) so you can tell human-typed from assistant-drafted. The AI's " +
317
+ "regenerable brief/persona synthesis is NOT here (that's the Memo) — only " +
318
+ "facts + discussion notes. Each item: kind (fact|note), ts, who, agent, " +
319
+ "origin, text, and for facts: source + trust rung + category.",
314
320
  inputSchema: {
315
321
  dealId: z.string(),
316
322
  },
@@ -971,20 +977,30 @@ server.registerTool(
971
977
  "Trigger server-side regeneration of the deal memo. Synchronous: " +
972
978
  "returns the final result (version, model, duration_ms, degraded) " +
973
979
  "once the composer finishes. Typical duration 2-3 minutes. Use " +
974
- "tier='opus' for high-stakes deals (higher cost, deeper analysis).",
980
+ "tier='opus' for high-stakes deals (higher cost, deeper analysis). " +
981
+ "Pass `instructions` to steer THIS regeneration (e.g. 'focus on team " +
982
+ "risk', 'frame as a follow-on') — applied across all panels, never " +
983
+ "overrides the facts or the verdict.",
975
984
  inputSchema: {
976
985
  dealId: z.string().describe("deal uuid"),
977
986
  tier: z
978
987
  .enum(["sonnet", "opus"])
979
988
  .optional()
980
989
  .describe("LLM tier (default: sonnet)"),
990
+ instructions: z
991
+ .string()
992
+ .optional()
993
+ .describe(
994
+ "Free-text steering for this regeneration only, e.g. 'focus on team risk'. Applied to all panels; never overrides verified facts or the verdict anchor."
995
+ ),
981
996
  },
982
997
  },
983
- async ({ dealId, tier }) =>
998
+ async ({ dealId, tier, instructions }) =>
984
999
  callApi("POST", `/api/deals/${encodeURIComponent(dealId)}/memo`, {
985
1000
  action: "regenerate",
986
1001
  stream: false,
987
1002
  model: tier ?? "sonnet",
1003
+ instructions: instructions || undefined,
988
1004
  })
989
1005
  );
990
1006
 
package/bin/llama.mjs CHANGED
@@ -225,7 +225,7 @@ Manually-set \`llc_\` tokens are used as a fallback.
225
225
  Deals:
226
226
  llama deal create "Company" --source <name> --description "..." --website https://...
227
227
  llama deal show <dealId>
228
- llama deal feed <dealId> # everything humans added (facts + notes), newest first
228
+ llama deal feed <dealId> # every contribution (facts + notes), human-typed or assistant-drafted, newest first
229
229
  llama deal update <dealId> <field> <value>
230
230
  Writable fields: status, theirStage, stage, notes, dealOwner, source,
231
231
  description, website, location, founders, proposedAmount, roundSize,
@@ -358,7 +358,7 @@ Wiki:
358
358
 
359
359
  Memo (long-form HTML investment memo — Memo tab in the UI):
360
360
  llama memo show <dealId> [--out <path>] [--json] # default: html → stdout (pipeable to file / browser)
361
- llama memo regenerate <dealId> [--opus] # streams panel progress to stderr; result version stdout
361
+ llama memo regenerate <dealId> [--opus] [--instructions "..."] # --instructions steers THIS run (e.g. "focus on team risk"); progressstderr
362
362
  llama memo save <dealId> --file <path> # paste a hand-written HTML as manual override
363
363
  llama memo reset <dealId> [--all] # default drops manual override; --all drops every version
364
364
 
@@ -423,7 +423,7 @@ const HELP_ROOT = `Llama Command CLI — the \`llama\` command for the Llama Ven
423
423
  Common:
424
424
  llama deal search "<name>" find a deal in the pipeline
425
425
  llama deal show <dealId> full deal record
426
- llama deal feed <dealId> everything humans added, newest first
426
+ llama deal feed <dealId> every contribution (facts + notes), newest first
427
427
  llama post <dealId> "..." add a note to a deal
428
428
  llama agent-onboard print the AI-agent workflow contract
429
429
 
@@ -1964,7 +1964,9 @@ Routing — is this the right command?
1964
1964
  if (sub === "regenerate") {
1965
1965
  const dealId = rest[0];
1966
1966
  if (!dealId) {
1967
- throw new Error("Usage: llama memo regenerate <dealId> [--opus]");
1967
+ throw new Error(
1968
+ 'Usage: llama memo regenerate <dealId> [--opus] [--instructions "..."]'
1969
+ );
1968
1970
  }
1969
1971
  const { flags } = parseFlags(rest.slice(1));
1970
1972
  const tier = flags.opus ? "opus" : "sonnet";
@@ -1983,6 +1985,9 @@ Routing — is this the right command?
1983
1985
  action: "regenerate",
1984
1986
  stream: true,
1985
1987
  model: tier,
1988
+ instructions: flags.instructions
1989
+ ? String(flags.instructions)
1990
+ : undefined,
1986
1991
  }),
1987
1992
  }
1988
1993
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llamaventures/cli",
3
- "version": "1.9.1",
3
+ "version": "1.11.0",
4
4
  "description": "CLI + MCP server for the Llama Ventures investment workbench (command.llamaventures.vc).",
5
5
  "type": "module",
6
6
  "bin": {