@llamaventures/cli 1.9.0 → 1.10.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 +14 -2
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/bin/llama-mcp.mjs +12 -2
- package/bin/llama.mjs +16 -2
- package/lib/client.mjs +1 -1
- package/package.json +5 -5
package/AGENT_BRIEFING.md
CHANGED
|
@@ -104,6 +104,18 @@ HTML / thesis / artifact in hand
|
|
|
104
104
|
|
|
105
105
|
**Default bias:** when in doubt, route to Llama Command. It has auth, audit, search, backlinks, and lives next to the rest of the team's context. Netlify is the escape hatch for genuinely-external surfaces — not "where pretty HTML goes."
|
|
106
106
|
|
|
107
|
+
### Adding content to ONE deal — fact vs post vs brief (the #1 mis-route)
|
|
108
|
+
|
|
109
|
+
These three look similar but land in different surfaces. Don't infer from the command name — pick by intent:
|
|
110
|
+
|
|
111
|
+
| You want to… | Command | Lands in |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| Record a **sourced, verifiable fact** | `llama deal fact add <dealId> --category <cat> --claim "…" --source <url>` | Facts → deal **Feed** (FACT card) + citable in the **Memo** |
|
|
114
|
+
| Leave a **comment / opinion / question / reaction** for the team | `llama post <dealId> "…"` (`@name` to notify) | Posts → deal **Feed** (POST card); `@mention` fires email + UI badge |
|
|
115
|
+
| Write **narrative that belongs in the IC memo** | `llama brief add-text <dealId> --heading "…" --body "…"` | Brief blocks → **Memo tab only — NOT in the Feed** |
|
|
116
|
+
|
|
117
|
+
⚠️ The trap: `brief add-text` is **not** visible in the Activity Feed. If the team should see it in the feed, use `llama post`. If it's a claim that needs a source + verification, use `llama deal fact add`. (It's `deal fact add`, not `fact-add`.)
|
|
118
|
+
|
|
107
119
|
The table below details the exact CLI for each destination.
|
|
108
120
|
|
|
109
121
|
| Type | Destination | How |
|
|
@@ -113,7 +125,7 @@ The table below details the exact CLI for each destination.
|
|
|
113
125
|
| **HTML artifact, internal — IC report, dashboard, market map, 2×2, any hand-authored page** | **Llama Command native** (Postgres + sandboxed iframe at `/deals/<id>/browse/<slug>`) | Default path when the user says "deploy to llama", "deploy to llama command", "部署到 llama command", "put this HTML on the deal page", "在 deal 里看这个". **You MUST declare intent — "new artifact" vs "update existing":**<br><br>**New artifact:** `llama html upload <dealId> --new --title "<artifact name>" --file <path>` (CLI slugifies the title; pass `--doc <slug>` to override).<br>**Update existing:** `llama html upload <dealId> --doc <slug> --file <path>` (slug must already exist — run `llama html docs <dealId>` first to see what's there).<br><br>The bare form `llama html upload <id> --file <path>` REFUSES if `main` already has content. Do NOT default to Netlify for internal pages. |
|
|
114
126
|
| HTML artifact, external — founder-facing share link | Netlify | Only when the user explicitly says "share link", "give it to the founder", "publish publicly". Use the `netlify-access-guard` workflow (server-side password + edge 401 verification). |
|
|
115
127
|
| Insights, decisions, framework improvements | Wiki (markdown) | `llama wiki save <slug> --content "..."` (with attribution — see below) |
|
|
116
|
-
| **HTML wiki entry — standalone HTML page hosted at `/wiki/<slug>`** (sector landscape, market map, dashboard, hand-styled thesis page) | **Wiki (HTML)** | `llama wiki save <slug> --title "..." --file <path.html> --sources "..."`. Auto-detects content_type=html from extension. Public page is full-viewport sandboxed iframe takeover (no wiki chrome). Sources/status/title still required; appears in `wiki search` + backlinks. Use when the user says "deploy this HTML to wiki", "wiki 词条", "make this page a wiki entry". HTML must be self-contained (inline CSS/JS, image data URIs or external URLs) — asset bundles aren't supported on wiki yet. |
|
|
128
|
+
| **HTML wiki entry — standalone HTML page hosted at `/wiki/<slug>`** (sector landscape, market map, dashboard, hand-styled thesis page) | **Wiki (HTML)** | `llama wiki save <slug> --title "..." --file <path.html> --sources "..."`. Auto-detects content_type=html from extension. Public page is full-viewport sandboxed iframe takeover (no wiki chrome). Sources/status/title still required; appears in `wiki search` + backlinks. Use when the user says "deploy this HTML to wiki", "wiki 词条", "make this page a wiki entry". HTML must be self-contained (inline CSS/JS, image data URIs or external URLs) — asset bundles aren't supported on wiki yet. **Native comments + working in-page (#) anchor links are injected automatically** — readers discuss inline and the table of contents scrolls; you don't wire anything up (pages that already embed the comment widget are left as-is). |
|
|
117
129
|
| Large files (deck / PDF / transcript) | Drive deal folder | the deal's `folder_url` (from `llama deal show`) → upload via your filesystem / Drive tool |
|
|
118
130
|
| Cross-team mentions | Inbox + email | `llama post <dealId> "@<teammate> ..."` — server fires email + UI badge to the recipient |
|
|
119
131
|
|
|
@@ -302,7 +314,7 @@ the intake agent; relay the conversation, then surface the verdict.
|
|
|
302
314
|
- This file: `AGENT_BRIEFING.md` in the `@llamaventures/cli` npm package
|
|
303
315
|
- Re-printable any time: `llama agent-onboard`
|
|
304
316
|
- MCP prompt: `agent_briefing` from the `llama-mcp` server
|
|
305
|
-
- Public source: <https://github.com/
|
|
317
|
+
- Public source: <https://github.com/Llama-Ventures/llama-cli/blob/main/AGENT_BRIEFING.md>
|
|
306
318
|
|
|
307
319
|
You're now a Llama Ventures teammate (or an external agent helping a
|
|
308
320
|
founder pitch us). Welcome.
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<a href="https://www.npmjs.com/package/@llamaventures/cli"><img alt="npm" src="https://img.shields.io/npm/v/@llamaventures/cli?label=npm&color=cb3837&logo=npm&logoColor=white"></a>
|
|
16
|
-
<a href="https://github.com/
|
|
16
|
+
<a href="https://github.com/Llama-Ventures/llama-cli/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Llama-Ventures/llama-cli/actions/workflows/ci.yml/badge.svg"></a>
|
|
17
17
|
<a href="https://docs.npmjs.com/trusted-publishers"><img alt="Provenance" src="https://img.shields.io/badge/provenance-signed-2e8b57?logo=npm"></a>
|
|
18
18
|
<a href="https://nodejs.org/"><img alt="Node" src="https://img.shields.io/node/v/@llamaventures/cli?color=339933&logo=nodedotjs&logoColor=white"></a>
|
|
19
19
|
<a href="https://modelcontextprotocol.io"><img alt="MCP 2024-11-05" src="https://img.shields.io/badge/MCP-2024--11--05-7d3aed"></a>
|
package/README.zh-CN.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<a href="https://www.npmjs.com/package/@llamaventures/cli"><img alt="npm" src="https://img.shields.io/npm/v/@llamaventures/cli?label=npm&color=cb3837&logo=npm&logoColor=white"></a>
|
|
16
|
-
<a href="https://github.com/
|
|
16
|
+
<a href="https://github.com/Llama-Ventures/llama-cli/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Llama-Ventures/llama-cli/actions/workflows/ci.yml/badge.svg"></a>
|
|
17
17
|
<a href="https://docs.npmjs.com/trusted-publishers"><img alt="Provenance" src="https://img.shields.io/badge/provenance-signed-2e8b57?logo=npm"></a>
|
|
18
18
|
<a href="https://nodejs.org/"><img alt="Node" src="https://img.shields.io/node/v/@llamaventures/cli?color=339933&logo=nodedotjs&logoColor=white"></a>
|
|
19
19
|
<a href="https://modelcontextprotocol.io"><img alt="MCP 2024-11-05" src="https://img.shields.io/badge/MCP-2024--11--05-7d3aed"></a>
|
package/bin/llama-mcp.mjs
CHANGED
|
@@ -971,20 +971,30 @@ server.registerTool(
|
|
|
971
971
|
"Trigger server-side regeneration of the deal memo. Synchronous: " +
|
|
972
972
|
"returns the final result (version, model, duration_ms, degraded) " +
|
|
973
973
|
"once the composer finishes. Typical duration 2-3 minutes. Use " +
|
|
974
|
-
"tier='opus' for high-stakes deals (higher cost, deeper analysis)."
|
|
974
|
+
"tier='opus' for high-stakes deals (higher cost, deeper analysis). " +
|
|
975
|
+
"Pass `instructions` to steer THIS regeneration (e.g. 'focus on team " +
|
|
976
|
+
"risk', 'frame as a follow-on') — applied across all panels, never " +
|
|
977
|
+
"overrides the facts or the verdict.",
|
|
975
978
|
inputSchema: {
|
|
976
979
|
dealId: z.string().describe("deal uuid"),
|
|
977
980
|
tier: z
|
|
978
981
|
.enum(["sonnet", "opus"])
|
|
979
982
|
.optional()
|
|
980
983
|
.describe("LLM tier (default: sonnet)"),
|
|
984
|
+
instructions: z
|
|
985
|
+
.string()
|
|
986
|
+
.optional()
|
|
987
|
+
.describe(
|
|
988
|
+
"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."
|
|
989
|
+
),
|
|
981
990
|
},
|
|
982
991
|
},
|
|
983
|
-
async ({ dealId, tier }) =>
|
|
992
|
+
async ({ dealId, tier, instructions }) =>
|
|
984
993
|
callApi("POST", `/api/deals/${encodeURIComponent(dealId)}/memo`, {
|
|
985
994
|
action: "regenerate",
|
|
986
995
|
stream: false,
|
|
987
996
|
model: tier ?? "sonnet",
|
|
997
|
+
instructions: instructions || undefined,
|
|
988
998
|
})
|
|
989
999
|
);
|
|
990
1000
|
|
package/bin/llama.mjs
CHANGED
|
@@ -349,6 +349,7 @@ Wiki:
|
|
|
349
349
|
HTML entry — standalone HTML page at /wiki/<slug> (full-viewport sandboxed iframe):
|
|
350
350
|
llama wiki save <slug> --title "..." --file path.html --sources "..." [--content-type html]
|
|
351
351
|
(.html / .htm extension auto-implies content_type=html)
|
|
352
|
+
Native comments + working in-page (#) links are added automatically — just upload self-contained HTML.
|
|
352
353
|
➜ Use Wiki when the artifact is NOT tied to one specific deal — sector landscape, market map,
|
|
353
354
|
thesis, framework, methodology. For deal-specific HTML use "llama html upload <dealId>" instead.
|
|
354
355
|
Delete / restore (soft — reversible):
|
|
@@ -357,7 +358,7 @@ Wiki:
|
|
|
357
358
|
|
|
358
359
|
Memo (long-form HTML investment memo — Memo tab in the UI):
|
|
359
360
|
llama memo show <dealId> [--out <path>] [--json] # default: html → stdout (pipeable to file / browser)
|
|
360
|
-
llama memo regenerate <dealId> [--opus]
|
|
361
|
+
llama memo regenerate <dealId> [--opus] [--instructions "..."] # --instructions steers THIS run (e.g. "focus on team risk"); progress → stderr
|
|
361
362
|
llama memo save <dealId> --file <path> # paste a hand-written HTML as manual override
|
|
362
363
|
llama memo reset <dealId> [--all] # default drops manual override; --all drops every version
|
|
363
364
|
|
|
@@ -784,6 +785,14 @@ async function main() {
|
|
|
784
785
|
usage(area);
|
|
785
786
|
return;
|
|
786
787
|
}
|
|
788
|
+
// `llama <area> <action> --help` (e.g. `brief add-text --help`). Without this
|
|
789
|
+
// short-circuit, "--help" falls through to the action handler, where rest[0]
|
|
790
|
+
// can be read as a positional (e.g. dealId="--help") and trigger a REAL write.
|
|
791
|
+
// Catch --help/-h anywhere in the sub-command args and print group help first.
|
|
792
|
+
if (rest.includes("--help") || rest.includes("-h")) {
|
|
793
|
+
usage(area);
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
787
796
|
|
|
788
797
|
// `llama agent-onboard` — print the bundled AGENT_BRIEFING.md so an AI
|
|
789
798
|
// agent reads it once and internalises the Llama Ventures workflow
|
|
@@ -1955,7 +1964,9 @@ Routing — is this the right command?
|
|
|
1955
1964
|
if (sub === "regenerate") {
|
|
1956
1965
|
const dealId = rest[0];
|
|
1957
1966
|
if (!dealId) {
|
|
1958
|
-
throw new Error(
|
|
1967
|
+
throw new Error(
|
|
1968
|
+
'Usage: llama memo regenerate <dealId> [--opus] [--instructions "..."]'
|
|
1969
|
+
);
|
|
1959
1970
|
}
|
|
1960
1971
|
const { flags } = parseFlags(rest.slice(1));
|
|
1961
1972
|
const tier = flags.opus ? "opus" : "sonnet";
|
|
@@ -1974,6 +1985,9 @@ Routing — is this the right command?
|
|
|
1974
1985
|
action: "regenerate",
|
|
1975
1986
|
stream: true,
|
|
1976
1987
|
model: tier,
|
|
1988
|
+
instructions: flags.instructions
|
|
1989
|
+
? String(flags.instructions)
|
|
1990
|
+
: undefined,
|
|
1977
1991
|
}),
|
|
1978
1992
|
}
|
|
1979
1993
|
);
|
package/lib/client.mjs
CHANGED
|
@@ -38,7 +38,7 @@ export function readBriefing() {
|
|
|
38
38
|
"AGENT_BRIEFING.md not found at " +
|
|
39
39
|
briefingPath +
|
|
40
40
|
". This shouldn't happen in a published @llamaventures/cli install — " +
|
|
41
|
-
"report at https://github.com/
|
|
41
|
+
"report at https://github.com/Llama-Ventures/llama-cli/issues."
|
|
42
42
|
);
|
|
43
43
|
}
|
|
44
44
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llamaventures/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "CLI + MCP server for the Llama Ventures investment workbench (command.llamaventures.vc).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"node": ">=18"
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
|
-
"homepage": "https://github.com/
|
|
21
|
+
"homepage": "https://github.com/Llama-Ventures/llama-cli#readme",
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "git+https://github.com/
|
|
24
|
+
"url": "git+https://github.com/Llama-Ventures/llama-cli.git"
|
|
25
25
|
},
|
|
26
26
|
"bugs": {
|
|
27
|
-
"url": "https://github.com/
|
|
27
|
+
"url": "https://github.com/Llama-Ventures/llama-cli/issues"
|
|
28
28
|
},
|
|
29
29
|
"keywords": [
|
|
30
30
|
"llama-ventures",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"anthropic"
|
|
40
40
|
],
|
|
41
41
|
"author": "Llama Ventures, Inc.",
|
|
42
|
-
"funding": "https://github.com/
|
|
42
|
+
"funding": "https://github.com/Llama-Ventures/llama-cli",
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|