@llamaventures/cli 1.12.0 → 1.13.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.
Files changed (2) hide show
  1. package/bin/llama.mjs +41 -2
  2. package/package.json +1 -1
package/bin/llama.mjs CHANGED
@@ -228,12 +228,18 @@ Deals:
228
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
- description, website, location, founders, proposedAmount, roundSize,
232
- valuation, sector, subsector, foundedYear, leadInvestor, investors.
231
+ description, website, location, founders, founderInfo, proposedAmount,
232
+ roundSize, valuation, deckLink, folderUrl, sector, subsector,
233
+ foundedYear, leadInvestor, investors, agentActive.
233
234
  e.g. llama deal update <dealId> website https://acme.ai
234
235
  llama deal update <dealId> sector "Developer Tools"
235
236
  llama deal update <dealId> foundedYear 2024
236
237
  llama deal update <dealId> leadInvestor "Acme Capital"
238
+ llama deal extra set <dealId> <key> <value> # system-admin only
239
+ Patch one top-level key in deals.extra JSONB. Value is parsed as
240
+ JSON when possible ('{"a":1}', 'true', '3'), else stored as a
241
+ string. Audited to deal_events as field_change "extra.<key>".
242
+ llama deal extra unset <dealId> <key> # delete the key (admin)
237
243
  llama deal search <query> [--founder name] [--owner <user-key>] [--status Diligence]
238
244
  [--theirStage Raising] [--stage Seed]
239
245
  [--limit 200] [--offset 0]
@@ -1100,6 +1106,39 @@ https://command.llamaventures.vc/settings/tokens, run
1100
1106
  return;
1101
1107
  }
1102
1108
 
1109
+ // ----- deals.extra JSONB patches (system-admin only, server-gated) -----
1110
+ // Same endpoint as `deal update`, but `extraKey` instead of `field`.
1111
+ // Server patches one top-level key via jsonb_set and audits the change
1112
+ // to deal_events as field_change with field "extra.<key>". value=null
1113
+ // deletes the key.
1114
+ if (area === "deal" && action === "extra") {
1115
+ const sub = rest[0];
1116
+ const dealId = rest[1];
1117
+ const key = rest[2];
1118
+ if (sub === "set") {
1119
+ const raw = rest.slice(3).join(" ");
1120
+ if (!dealId || !key || !raw) {
1121
+ throw new Error(
1122
+ "Usage: llama deal extra set <dealId> <key> <value> (value parsed as JSON when possible, else stored as string)"
1123
+ );
1124
+ }
1125
+ let value;
1126
+ try {
1127
+ value = JSON.parse(raw);
1128
+ } catch {
1129
+ value = raw;
1130
+ }
1131
+ print(await request("POST", "/api/deals/update", { dealId, extraKey: key, value }));
1132
+ return;
1133
+ }
1134
+ if (sub === "unset") {
1135
+ if (!dealId || !key) throw new Error("Usage: llama deal extra unset <dealId> <key>");
1136
+ print(await request("POST", "/api/deals/update", { dealId, extraKey: key, value: null }));
1137
+ return;
1138
+ }
1139
+ throw new Error("Usage: llama deal extra set|unset <dealId> <key> [value]");
1140
+ }
1141
+
1103
1142
  if (area === "deal" && action === "search") {
1104
1143
  const { flags, positional } = parseFlags(rest);
1105
1144
  const q = positional.join(" ").trim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llamaventures/cli",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "CLI + MCP server for the Llama Ventures investment workbench (command.llamaventures.vc).",
5
5
  "type": "module",
6
6
  "bin": {