@fairmint/captable-ai 0.1.39 → 0.1.40

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 (3) hide show
  1. package/README.md +6 -4
  2. package/dist/index.js +47 -21
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -125,16 +125,18 @@ captable-ai export convertibles --type SAFE --csv # SAFEs only, CSV on
125
125
  captable-ai export convertibles --type NOTE --json --output notes.json
126
126
  ```
127
127
 
128
- Every register starts with the holder fields (name, email, address, country, state),
129
- then the economics of that family. Without a format flag the result is one Excel sheet
128
+ Every register carries the holder fields (name, email, address, country, state) and the
129
+ economics of that family. Grants lead with the grant date; convertibles put the signature
130
+ date, execution date, and status right after the holder. Without a format flag the result is one Excel sheet
130
131
  returned as a download link. `--csv` prints RFC-4180 CSV whose header row is the JSON
131
132
  keys; `--json` prints the rows as a JSON array. Pass one or neither. `--output <path>`
132
133
  writes the CSV or JSON body to a file and, for these commands only, does not imply
133
134
  `--json`.
134
135
 
135
136
  By default a register lists the committed cap table only. `--include-pending` adds what
136
- is not committed yet: draft OCF objects, plus `investment` and `equity_grant` rows that
137
- have no OCF transaction. A row that already has an OCF object appears once. Registers
137
+ is not committed yet: draft OCF objects, plus `investment`, `equity_grant`, and
138
+ `equity_award` (Send One Grant) rows that have no OCF transaction. A row that already has
139
+ an OCF object appears once. Registers
138
140
  are read-only and never commit drafts. You must be an owner or admin of the active
139
141
  company.
140
142
 
package/dist/index.js CHANGED
@@ -16151,21 +16151,27 @@ var exportResultSchema = external_exports.object({
16151
16151
  // ../captable-ai-core/dist/export-registers.js
16152
16152
  var EXPORT_REGISTERS = ["stock", "grants", "warrants", "convertibles"];
16153
16153
  var CONVERTIBLE_TYPE_FILTERS = ["SAFE", "NOTE"];
16154
- var REGISTER_ROW_SOURCES = ["committed", "draft", "investment", "equity_grant"];
16154
+ var REGISTER_ROW_SOURCES = [
16155
+ "committed",
16156
+ "draft",
16157
+ "investment",
16158
+ "equity_grant",
16159
+ "equity_award"
16160
+ ];
16155
16161
  var isoDateSchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Must be YYYY-MM-DD").refine((val) => {
16156
16162
  const [y, m, d] = val.split("-").map(Number);
16157
16163
  const parsed = new Date(Date.UTC(y, m - 1, d));
16158
16164
  return parsed.toISOString().slice(0, 10) === val;
16159
16165
  }, { message: "Invalid calendar date (e.g. Feb 30 does not exist)" });
16160
16166
  var exportRegisterInputSchema = external_exports.object({
16161
- includePending: external_exports.boolean().optional().default(false).describe("Add draft OCF objects and investment / equity_grant rows that have no OCF transaction yet."),
16167
+ includePending: external_exports.boolean().optional().default(false).describe("Add draft OCF objects and investment / equity_grant / equity_award rows that have no OCF transaction yet."),
16162
16168
  asOf: isoDateSchema.optional().describe("Only securities issued on or before this date (YYYY-MM-DD)."),
16163
16169
  convertibleType: external_exports.enum(CONVERTIBLE_TYPE_FILTERS).optional().describe("convertibles only: keep SAFE or NOTE rows."),
16164
16170
  format: external_exports.enum(["rows", "xlsx"]).optional().default("rows").describe("rows returns the rows as JSON; xlsx also uploads a one-sheet workbook.")
16165
16171
  });
16166
16172
  var cell = external_exports.union([external_exports.string(), external_exports.number()]).nullable();
16167
16173
  var holderShape = {
16168
- source: external_exports.enum(REGISTER_ROW_SOURCES).describe("committed, draft, investment, or equity_grant."),
16174
+ source: external_exports.enum(REGISTER_ROW_SOURCES).describe("committed, draft, investment, equity_grant, or equity_award."),
16169
16175
  security_id: external_exports.string().nullable().describe("OCF security id, null for operational-only rows."),
16170
16176
  ocf_object_id: external_exports.string().nullable().describe("OCF transaction object id."),
16171
16177
  holder_name: cell.describe("Holder legal name."),
@@ -16187,11 +16193,13 @@ var grantRegisterRowSchema = external_exports.object({
16187
16193
  award_type: cell.describe("ISO, NSO, RSU, or another OCF compensation type."),
16188
16194
  quantity: cell.describe("Shares or units granted."),
16189
16195
  dollar_amount: cell.describe("equity_grant.dollar_amount when a linked grant row exists."),
16190
- status: cell.describe("equity_grant workflow status, or COMMITTED / DRAFT for OCF-only grants."),
16196
+ status: cell.describe("equity_grant / equity_award workflow status, or COMMITTED / DRAFT for OCF-only grants."),
16191
16197
  accepted_on: cell.describe("Date the grantee signed (YYYY-MM-DD)."),
16198
+ vesting_schedule: cell.describe("Vesting schedule name, e.g. 4 years, 1-year cliff."),
16192
16199
  cliff_months: cell.describe("Cliff length in months."),
16193
16200
  vesting_months: cell.describe("Total vesting length in months."),
16194
16201
  effective_date: cell.describe("Grant date (YYYY-MM-DD)."),
16202
+ vesting_start_date: cell.describe("Vesting commencement date (YYYY-MM-DD)."),
16195
16203
  exercise_price: cell.describe("Exercise price per share, blank for RSUs."),
16196
16204
  series: cell.describe("Series name (Hospitable's team / retention / community categories)."),
16197
16205
  plan: cell.describe("Stock plan name.")
@@ -16207,6 +16215,9 @@ var warrantRegisterRowSchema = external_exports.object({
16207
16215
  });
16208
16216
  var convertibleRegisterRowSchema = external_exports.object({
16209
16217
  ...holderShape,
16218
+ signature_date: cell.describe("Date the investor signed (YYYY-MM-DD)."),
16219
+ execution_date: cell.describe("Date the agreement was fully executed (YYYY-MM-DD)."),
16220
+ status: cell.describe("investment workflow status, or COMMITTED / DRAFT for OCF-only rows."),
16210
16221
  convertible_type: cell.describe("SAFE, NOTE, or SECURITY."),
16211
16222
  date: cell.describe("Investment date (YYYY-MM-DD)."),
16212
16223
  round: cell.describe("Round / series / offering name."),
@@ -16237,17 +16248,24 @@ var REGISTER_COLUMNS = {
16237
16248
  { key: "amount", header: "Amount", format: "money" },
16238
16249
  ...TRAILING_COLUMNS
16239
16250
  ],
16251
+ // Leading columns follow the grant file Hospitable asked for (ENG-2200).
16240
16252
  grants: [
16241
- ...HOLDER_COLUMNS,
16242
- { key: "award_type", header: "Award Type", format: "text" },
16253
+ { key: "effective_date", header: "Grant Date", format: "date" },
16254
+ { key: "holder_name", header: "Name", format: "text" },
16255
+ { key: "holder_email", header: "Email", format: "text" },
16256
+ { key: "award_type", header: "Type", format: "text" },
16243
16257
  { key: "quantity", header: "Quantity", format: "number" },
16244
- { key: "dollar_amount", header: "Dollar Amount", format: "money" },
16245
16258
  { key: "status", header: "Status", format: "text" },
16246
- { key: "accepted_on", header: "Accepted On", format: "date" },
16247
- { key: "cliff_months", header: "Cliff (Months)", format: "number" },
16248
- { key: "vesting_months", header: "Vesting Length (Months)", format: "number" },
16249
- { key: "effective_date", header: "Effective Date", format: "date" },
16259
+ { key: "vesting_schedule", header: "Vesting", format: "text" },
16260
+ { key: "vesting_months", header: "Vesting Period (Months)", format: "number" },
16261
+ { key: "cliff_months", header: "Cliff Months", format: "number" },
16250
16262
  { key: "exercise_price", header: "Exercise Price", format: "money" },
16263
+ { key: "accepted_on", header: "Signed Date", format: "date" },
16264
+ { key: "vesting_start_date", header: "Vesting Start Date", format: "date" },
16265
+ { key: "holder_address", header: "Address", format: "text" },
16266
+ { key: "holder_country", header: "Country", format: "text" },
16267
+ { key: "holder_state", header: "State", format: "text" },
16268
+ { key: "dollar_amount", header: "Dollar Amount", format: "money" },
16251
16269
  { key: "series", header: "Series", format: "text" },
16252
16270
  { key: "plan", header: "Plan", format: "text" },
16253
16271
  ...TRAILING_COLUMNS
@@ -16262,13 +16280,18 @@ var REGISTER_COLUMNS = {
16262
16280
  { key: "issue_date", header: "Issue Date", format: "date" },
16263
16281
  ...TRAILING_COLUMNS
16264
16282
  ],
16283
+ // Signature / execution / status / round / amount / funding follow the SAFE
16284
+ // file Hospitable asked for (ENG-2200).
16265
16285
  convertibles: [
16266
16286
  ...HOLDER_COLUMNS,
16267
- { key: "convertible_type", header: "Type", format: "text" },
16268
- { key: "date", header: "Date", format: "date" },
16287
+ { key: "signature_date", header: "Signature Date", format: "date" },
16288
+ { key: "execution_date", header: "Execution Date", format: "date" },
16289
+ { key: "status", header: "Status", format: "text" },
16269
16290
  { key: "round", header: "Round", format: "text" },
16270
16291
  { key: "amount", header: "Amount", format: "money" },
16271
16292
  { key: "funding_method", header: "Funding Method", format: "text" },
16293
+ { key: "convertible_type", header: "Type", format: "text" },
16294
+ { key: "date", header: "Investment Date", format: "date" },
16272
16295
  { key: "valuation_cap", header: "Valuation Cap", format: "money" },
16273
16296
  { key: "discount", header: "Discount (%)", format: "percent" },
16274
16297
  ...TRAILING_COLUMNS
@@ -18172,7 +18195,7 @@ var REGISTER_DESCRIPTIONS = {
18172
18195
  var REGISTER_FLAGS = [
18173
18196
  {
18174
18197
  name: "include-pending",
18175
- description: "Add draft OCF objects and investment / equity_grant rows with no OCF transaction.",
18198
+ description: "Add draft OCF objects and investment / equity_grant / equity_award rows with no OCF transaction.",
18176
18199
  type: "boolean"
18177
18200
  },
18178
18201
  {
@@ -19561,18 +19584,21 @@ Workbook options:
19561
19584
  Registers (one row per security; holder name, email, address, country, state,
19562
19585
  plus the economics of that instrument):
19563
19586
  stock Stock issuances: class, quantity, issue date, price, amount
19564
- grants Options, RSUs, other awards: award type (ISO/NSO/RSU), quantity,
19565
- dollar amount, status, accepted on, cliff, vesting length,
19566
- effective date, exercise price, series, plan
19587
+ grants Options, RSUs, other awards: grant date, award type
19588
+ (ISO/NSO/RSU), quantity, status, vesting schedule, vesting
19589
+ length, cliff, exercise price, signed date, vesting start
19590
+ date, dollar amount, series, plan
19567
19591
  warrants Warrants: quantity, exercise price, purchase price, expiration,
19568
19592
  underlying class, issue date
19569
- convertibles SAFEs, notes: type, date, round, amount, funding method,
19570
- valuation cap, discount
19593
+ convertibles SAFEs, notes: signature date, execution date, status, round,
19594
+ amount, funding method, type, investment date, valuation cap,
19595
+ discount
19571
19596
 
19572
19597
  Register options:
19573
19598
  --include-pending Add what is not committed yet: draft OCF objects, and
19574
- investment / equity_grant rows with no OCF transaction.
19575
- A row that already has an OCF object is listed once.
19599
+ investment / equity_grant / equity_award rows with no
19600
+ OCF transaction. A row that already has an OCF object
19601
+ is listed once.
19576
19602
  --as-of YYYY-MM-DD Only securities issued on or before this date
19577
19603
  --type SAFE|NOTE convertibles only: keep SAFEs or notes
19578
19604
  --csv Print CSV to stdout: RFC-4180 quoting, UTF-8, LF line
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/captable-ai",
3
- "version": "0.1.39",
3
+ "version": "0.1.40",
4
4
  "description": "Agent-native CLI for Captable AI — manage companies, upload documents, run OCF extraction, and commit cap tables from the terminal.",
5
5
  "keywords": [
6
6
  "captable",