@thecorporation/corp-tools 26.3.13 → 26.3.17

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/dist/index.d.ts CHANGED
@@ -112,6 +112,7 @@ type components = {
112
112
  */
113
113
  AccountType: "asset" | "liability" | "equity" | "revenue" | "expense";
114
114
  AddFounderRequest: {
115
+ address?: null | components["schemas"]["Address"];
115
116
  email?: string | null;
116
117
  is_incorporator?: boolean | null;
117
118
  name: string;
@@ -474,12 +475,10 @@ type components = {
474
475
  accounts: components["schemas"]["AccountResponse"][];
475
476
  entity_id: components["schemas"]["EntityId"];
476
477
  };
477
- ChatSessionRequest: {
478
- email: string;
479
- };
480
- ChatSessionResponse: {
481
- expires_at: string;
482
- ws_token: string;
478
+ ClaimWorkItemRequest: {
479
+ claimed_by: string;
480
+ /** Format: int64 */
481
+ ttl_seconds?: number | null;
483
482
  };
484
483
  /** Format: uuid */
485
484
  ClassificationId: string;
@@ -516,6 +515,10 @@ type components = {
516
515
  phase?: string | null;
517
516
  required_signers?: string[];
518
517
  };
518
+ CompleteWorkItemRequest: {
519
+ completed_by: string;
520
+ result?: string | null;
521
+ };
519
522
  /** Format: uuid */
520
523
  ComplianceEscalationId: string;
521
524
  ComplianceEscalationResponse: {
@@ -566,7 +569,9 @@ type components = {
566
569
  contact_id: components["schemas"]["ContactId"];
567
570
  email?: string | null;
568
571
  entities: components["schemas"]["EntityId"][];
572
+ mailing_address?: string | null;
569
573
  name: string;
574
+ notes?: string | null;
570
575
  phone?: string | null;
571
576
  };
572
577
  ContactResponse: {
@@ -577,6 +582,7 @@ type components = {
577
582
  created_at: string;
578
583
  email?: string | null;
579
584
  entity_id: components["schemas"]["EntityId"];
585
+ mailing_address?: string | null;
580
586
  name: string;
581
587
  notes?: string | null;
582
588
  phone?: string | null;
@@ -613,7 +619,7 @@ type components = {
613
619
  * @description Template type for generated contracts.
614
620
  * @enum {string}
615
621
  */
616
- ContractTemplateType: "consulting_agreement" | "employment_offer" | "contractor_agreement" | "nda" | "custom";
622
+ ContractTemplateType: "consulting_agreement" | "employment_offer" | "contractor_agreement" | "nda" | "safe_agreement" | "custom";
617
623
  /** Format: uuid */
618
624
  ControlLinkId: string;
619
625
  ControlLinkResponse: {
@@ -682,6 +688,7 @@ type components = {
682
688
  total_new_units: number;
683
689
  };
684
690
  ConvertEntityRequest: {
691
+ jurisdiction?: null | components["schemas"]["Jurisdiction"];
685
692
  target_type: components["schemas"]["EntityType"];
686
693
  };
687
694
  CreateAccountRequest: {
@@ -735,7 +742,9 @@ type components = {
735
742
  contact_type: components["schemas"]["ContactType"];
736
743
  email?: string | null;
737
744
  entity_id: components["schemas"]["EntityId"];
745
+ mailing_address?: string | null;
738
746
  name: string;
747
+ notes?: string | null;
739
748
  };
740
749
  CreateControlLinkRequest: {
741
750
  child_legal_entity_id: components["schemas"]["LegalEntityId"];
@@ -869,6 +878,24 @@ type components = {
869
878
  entity_id: components["schemas"]["EntityId"];
870
879
  lines: components["schemas"]["LedgerLineRequest"][];
871
880
  };
881
+ CreateLegacyGrantRequest: {
882
+ entity_id: components["schemas"]["EntityId"];
883
+ grant_type: components["schemas"]["GrantType"];
884
+ recipient_name: string;
885
+ /** Format: int64 */
886
+ shares: number;
887
+ };
888
+ CreateLegacyShareTransferRequest: {
889
+ entity_id: components["schemas"]["EntityId"];
890
+ from_holder: string;
891
+ governing_doc_type?: null | components["schemas"]["GoverningDocType"];
892
+ share_class_id: components["schemas"]["ShareClassId"];
893
+ /** Format: int64 */
894
+ shares: number;
895
+ to_holder: string;
896
+ transfer_type: components["schemas"]["TransferType"];
897
+ transferee_rights?: null | components["schemas"]["TransfereeRights"];
898
+ };
872
899
  CreateLegalEntityRequest: {
873
900
  entity_id: components["schemas"]["EntityId"];
874
901
  linked_entity_id?: null | components["schemas"]["EntityId"];
@@ -907,9 +934,17 @@ type components = {
907
934
  pay_period_start: string;
908
935
  };
909
936
  CreatePendingFormationRequest: {
937
+ company_address?: null | components["schemas"]["Address"];
910
938
  entity_type: components["schemas"]["EntityType"];
939
+ fiscal_year_end?: string | null;
940
+ formation_date?: string | null;
911
941
  jurisdiction?: null | components["schemas"]["Jurisdiction"];
912
942
  legal_name: string;
943
+ registered_agent_address?: string | null;
944
+ registered_agent_name?: string | null;
945
+ right_of_first_refusal?: boolean | null;
946
+ s_corp_election?: boolean | null;
947
+ transfer_restrictions?: boolean | null;
913
948
  };
914
949
  CreateProxyRequest: {
915
950
  description?: string | null;
@@ -966,6 +1001,7 @@ type components = {
966
1001
  transferee_rights: components["schemas"]["TransfereeRights"];
967
1002
  };
968
1003
  CreateValuationRequest: {
1004
+ dlom?: string | null;
969
1005
  /** Format: date */
970
1006
  effective_date: string;
971
1007
  /** Format: int64 */
@@ -977,9 +1013,20 @@ type components = {
977
1013
  hurdle_amount_cents?: number | null;
978
1014
  methodology: components["schemas"]["ValuationMethodology"];
979
1015
  provider_contact_id?: null | components["schemas"]["ContactId"];
1016
+ report_date?: string | null;
980
1017
  report_document_id?: null | components["schemas"]["DocumentId"];
981
1018
  valuation_type: components["schemas"]["ValuationType"];
982
1019
  };
1020
+ CreateWorkItemRequest: {
1021
+ asap?: boolean;
1022
+ category: string;
1023
+ created_by?: string | null;
1024
+ /** Format: date */
1025
+ deadline?: string | null;
1026
+ description?: string | null;
1027
+ metadata?: unknown;
1028
+ title: string;
1029
+ };
983
1030
  /**
984
1031
  * @description A cron expression validated to have at least 5 whitespace-separated fields.
985
1032
  *
@@ -1060,6 +1107,7 @@ type components = {
1060
1107
  };
1061
1108
  DigestTriggerResponse: {
1062
1109
  digest_count: number;
1110
+ message: string;
1063
1111
  triggered: boolean;
1064
1112
  };
1065
1113
  DilutionPreviewQuery: {
@@ -1175,14 +1223,14 @@ type components = {
1175
1223
  * @description Type of legal document.
1176
1224
  * @enum {string}
1177
1225
  */
1178
- DocumentType: "articles_of_incorporation" | "articles_of_organization" | "bylaws" | "operating_agreement" | "ss4_application" | "meeting_notice" | "resolution" | "safe_agreement";
1226
+ DocumentType: "articles_of_incorporation" | "articles_of_organization" | "bylaws" | "incorporator_action" | "initial_board_consent" | "operating_agreement" | "initial_written_consent" | "ss4_application" | "meeting_notice" | "resolution" | "consulting_agreement" | "employment_offer_letter" | "contractor_services_agreement" | "mutual_nondisclosure_agreement" | "safe_agreement" | "four_oh_nine_a_valuation_report" | "stock_transfer_agreement" | "transfer_board_consent" | "financing_board_consent" | "equity_issuance_approval" | "subscription_agreement" | "investor_rights_agreement" | "restricted_stock_purchase_agreement" | "ip_assignment_agreement" | "contract";
1179
1227
  /** Format: uuid */
1180
1228
  EntityId: string;
1181
1229
  /**
1182
1230
  * @description The legal structure of a business entity.
1183
1231
  * @enum {string}
1184
1232
  */
1185
- EntityType: "corporation" | "llc";
1233
+ EntityType: "c_corp" | "llc";
1186
1234
  /** Format: uuid */
1187
1235
  EquityRoundId: string;
1188
1236
  /** @enum {string} */
@@ -1243,6 +1291,21 @@ type components = {
1243
1291
  entity_id: components["schemas"]["EntityId"];
1244
1292
  status: components["schemas"]["AgendaItemStatus"];
1245
1293
  };
1294
+ FinalizePendingFormationRequest: {
1295
+ /** Format: int64 */
1296
+ authorized_shares?: number | null;
1297
+ company_address?: null | components["schemas"]["Address"];
1298
+ fiscal_year_end?: string | null;
1299
+ formation_date?: string | null;
1300
+ incorporator_address?: string | null;
1301
+ incorporator_name?: string | null;
1302
+ par_value?: string | null;
1303
+ registered_agent_address?: string | null;
1304
+ registered_agent_name?: string | null;
1305
+ right_of_first_refusal?: boolean | null;
1306
+ s_corp_election?: boolean | null;
1307
+ transfer_restrictions?: boolean | null;
1308
+ };
1246
1309
  FinalizeWorkflowRequest: {
1247
1310
  entity_id: components["schemas"]["EntityId"];
1248
1311
  phase?: string | null;
@@ -1331,6 +1394,7 @@ type components = {
1331
1394
  vesting?: null | components["schemas"]["VestingSchedule"];
1332
1395
  };
1333
1396
  FounderSummary: {
1397
+ address?: null | components["schemas"]["Address"];
1334
1398
  email?: string | null;
1335
1399
  name: string;
1336
1400
  /** Format: double */
@@ -1596,6 +1660,11 @@ type components = {
1596
1660
  * @enum {string}
1597
1661
  */
1598
1662
  GoverningDocType: "bylaws" | "operating_agreement" | "shareholder_agreement" | "other";
1663
+ /**
1664
+ * @description The type of equity grant.
1665
+ * @enum {string}
1666
+ */
1667
+ GrantType: "common_stock" | "preferred_stock" | "membership_unit" | "stock_option" | "iso" | "nso" | "rsa" | "svu";
1599
1668
  /** Format: uuid */
1600
1669
  HolderId: string;
1601
1670
  HolderResponse: {
@@ -1973,7 +2042,7 @@ type components = {
1973
2042
  * @description Officer title for a corporate officer.
1974
2043
  * @enum {string}
1975
2044
  */
1976
- OfficerTitle: "ceo" | "cfo" | "secretary" | "president" | "vp" | "other";
2045
+ OfficerTitle: "ceo" | "cfo" | "cto" | "coo" | "secretary" | "treasurer" | "president" | "vp" | "other";
1977
2046
  /** Format: uuid */
1978
2047
  PacketId: string;
1979
2048
  PacketItem: {
@@ -2508,9 +2577,34 @@ type components = {
2508
2577
  obligation_id: components["schemas"]["ObligationId"];
2509
2578
  token: string;
2510
2579
  };
2580
+ /** @description Contract details included in signing resolve response. */
2581
+ SigningContractDetails: {
2582
+ counterparty_name: string;
2583
+ effective_date: string;
2584
+ parameters: unknown;
2585
+ rendered_text?: string | null;
2586
+ template_label?: string | null;
2587
+ template_type: string;
2588
+ };
2511
2589
  SigningLinkResponse: {
2512
2590
  document_id: components["schemas"]["DocumentId"];
2513
2591
  signing_url: string;
2592
+ token: string;
2593
+ };
2594
+ /** @description Response for the public resolve endpoint. */
2595
+ SigningResolveResponse: {
2596
+ contract?: null | components["schemas"]["SigningContractDetails"];
2597
+ document_id: components["schemas"]["DocumentId"];
2598
+ document_status: string;
2599
+ document_title: string;
2600
+ entity_id: components["schemas"]["EntityId"];
2601
+ /** @description Entity legal name for display. */
2602
+ entity_name?: string | null;
2603
+ /** @description Public PDF preview URL for the signing page. */
2604
+ pdf_url?: string | null;
2605
+ /** @description Plain-text preview fallback when a PDF is unavailable. */
2606
+ preview_text?: string | null;
2607
+ signatures: components["schemas"]["SignatureSummary"][];
2514
2608
  };
2515
2609
  /** Format: uuid */
2516
2610
  SpendingLimitId: string;
@@ -2686,8 +2780,10 @@ type components = {
2686
2780
  };
2687
2781
  UpdateContactRequest: {
2688
2782
  cap_table_access?: null | components["schemas"]["CapTableAccess"];
2783
+ category?: null | components["schemas"]["ContactCategory"];
2689
2784
  email?: string | null;
2690
2785
  entity_id: components["schemas"]["EntityId"];
2786
+ mailing_address?: string | null;
2691
2787
  name?: string | null;
2692
2788
  notes?: string | null;
2693
2789
  phone?: string | null;
@@ -2696,8 +2792,13 @@ type components = {
2696
2792
  adopted_by: string;
2697
2793
  /** Format: int32 */
2698
2794
  board_size?: number | null;
2795
+ company_address?: null | components["schemas"]["CompanyAddress"];
2796
+ directors?: components["schemas"]["DirectorInfo"][] | null;
2797
+ document_options?: null | components["schemas"]["DocumentOptions"];
2699
2798
  /** Format: date */
2700
2799
  effective_date: string;
2800
+ fiscal_year_end?: null | components["schemas"]["FiscalYearEnd"];
2801
+ founders?: components["schemas"]["FounderInfo"][] | null;
2701
2802
  incomplete_profile?: boolean | null;
2702
2803
  incorporator_address?: string | null;
2703
2804
  incorporator_name?: string | null;
@@ -2707,10 +2808,12 @@ type components = {
2707
2808
  legal_name: string;
2708
2809
  /** Format: date */
2709
2810
  next_mandatory_review: string;
2811
+ officers?: components["schemas"]["OfficerInfo"][] | null;
2710
2812
  principal_name?: string | null;
2711
2813
  principal_title?: string | null;
2712
2814
  registered_agent_address?: string | null;
2713
2815
  registered_agent_name?: string | null;
2816
+ stock_details?: null | components["schemas"]["StockDetails"];
2714
2817
  };
2715
2818
  UpdateNotificationPrefsRequest: {
2716
2819
  email_enabled?: boolean | null;
@@ -2798,6 +2901,32 @@ type components = {
2798
2901
  * @enum {string}
2799
2902
  */
2800
2903
  VotingMethod: "per_capita" | "per_unit";
2904
+ /** Format: uuid */
2905
+ WorkItemId: string;
2906
+ WorkItemResponse: {
2907
+ asap: boolean;
2908
+ category: string;
2909
+ /** Format: int64 */
2910
+ claim_ttl_seconds?: number | null;
2911
+ claimed_at?: string | null;
2912
+ claimed_by?: string | null;
2913
+ completed_at?: string | null;
2914
+ completed_by?: string | null;
2915
+ created_at: string;
2916
+ created_by?: string | null;
2917
+ /** Format: date */
2918
+ deadline?: string | null;
2919
+ description: string;
2920
+ effective_status: components["schemas"]["WorkItemStatus"];
2921
+ entity_id: components["schemas"]["EntityId"];
2922
+ metadata: unknown;
2923
+ result?: string | null;
2924
+ status: components["schemas"]["WorkItemStatus"];
2925
+ title: string;
2926
+ work_item_id: components["schemas"]["WorkItemId"];
2927
+ };
2928
+ /** @enum {string} */
2929
+ WorkItemStatus: "open" | "claimed" | "completed" | "cancelled";
2801
2930
  WorkerWorkspaceQuery: {
2802
2931
  workspace_id: components["schemas"]["WorkspaceId"];
2803
2932
  };
@@ -2970,6 +3099,7 @@ declare class CorpAPIClient {
2970
3099
  getValuations(entityId: string): Promise<ApiRecord[]>;
2971
3100
  getCurrent409a(entityId: string): Promise<ApiRecord>;
2972
3101
  createValuation(data: ApiRecord): Promise<ApiRecord>;
3102
+ createInstrument(data: ApiRecord): Promise<ApiRecord>;
2973
3103
  submitValuationForApproval(valuationId: string, entityId: string): Promise<ApiRecord>;
2974
3104
  approveValuation(valuationId: string, entityId: string, resolutionId?: string): Promise<ApiRecord>;
2975
3105
  transferShares(data: ApiRecord): Promise<ApiRecord>;
@@ -3051,6 +3181,10 @@ declare class CorpAPIClient {
3051
3181
  listApiKeys(): Promise<ApiRecord[]>;
3052
3182
  assignObligation(obligationId: string, contactId: string): Promise<ApiRecord>;
3053
3183
  getConfig(): Promise<ApiRecord>;
3184
+ submitFeedback(message: string, category?: string, email?: string): Promise<{
3185
+ feedback_id: string;
3186
+ submitted_at: string;
3187
+ }>;
3054
3188
  createLink(externalId: string, provider: string): Promise<ApiRecord>;
3055
3189
  }
3056
3190
 
@@ -3058,6 +3192,13 @@ interface ToolContext {
3058
3192
  dataDir: string;
3059
3193
  onEntityFormed?: (entityId: string) => void;
3060
3194
  }
3195
+ type CapTableInstrument = {
3196
+ instrument_id: string;
3197
+ kind: string;
3198
+ symbol: string;
3199
+ status?: string;
3200
+ };
3201
+ declare function ensureSafeInstrument(client: CorpAPIClient, entityId: string): Promise<CapTableInstrument>;
3061
3202
  declare const TOOL_DEFINITIONS: Record<string, unknown>[];
3062
3203
  declare function isWriteTool(name: string, args?: Record<string, unknown>): boolean;
3063
3204
  declare function executeTool(name: string, args: Record<string, unknown>, client: CorpAPIClient, ctx: ToolContext): Promise<string>;
@@ -3128,7 +3269,7 @@ declare const ContactType: readonly ["individual", "organization"];
3128
3269
  type ContactType = (typeof ContactType)[number];
3129
3270
  declare const ContractStatus: readonly ["draft", "active", "expired", "terminated"];
3130
3271
  type ContractStatus = (typeof ContractStatus)[number];
3131
- declare const ContractTemplateType: readonly ["consulting_agreement", "employment_offer", "contractor_agreement", "nda", "custom"];
3272
+ declare const ContractTemplateType: readonly ["consulting_agreement", "employment_offer", "contractor_agreement", "nda", "safe_agreement", "custom"];
3132
3273
  type ContractTemplateType = (typeof ContractTemplateType)[number];
3133
3274
  declare const ControlType: readonly ["voting", "board", "economic", "contractual"];
3134
3275
  type ControlType = (typeof ControlType)[number];
@@ -3146,9 +3287,9 @@ declare const DocumentRequestStatus: readonly ["requested", "provided", "not_app
3146
3287
  type DocumentRequestStatus = (typeof DocumentRequestStatus)[number];
3147
3288
  declare const DocumentStatus: readonly ["draft", "signed", "amended", "filed"];
3148
3289
  type DocumentStatus = (typeof DocumentStatus)[number];
3149
- declare const DocumentType: readonly ["articles_of_incorporation", "articles_of_organization", "bylaws", "operating_agreement", "ss4_application", "meeting_notice", "resolution", "safe_agreement"];
3290
+ declare const DocumentType: readonly ["articles_of_incorporation", "articles_of_organization", "bylaws", "incorporator_action", "initial_board_consent", "operating_agreement", "initial_written_consent", "ss4_application", "meeting_notice", "resolution", "consulting_agreement", "employment_offer_letter", "contractor_services_agreement", "mutual_nondisclosure_agreement", "safe_agreement", "four_oh_nine_a_valuation_report", "stock_transfer_agreement", "transfer_board_consent", "financing_board_consent", "equity_issuance_approval", "subscription_agreement", "investor_rights_agreement", "restricted_stock_purchase_agreement", "ip_assignment_agreement", "contract"];
3150
3291
  type DocumentType = (typeof DocumentType)[number];
3151
- declare const EntityType: readonly ["corporation", "llc"];
3292
+ declare const EntityType: readonly ["c_corp", "llc"];
3152
3293
  type EntityType = (typeof EntityType)[number];
3153
3294
  declare const EquityRoundStatus: readonly ["draft", "open", "board_approved", "accepted", "closed", "cancelled"];
3154
3295
  type EquityRoundStatus = (typeof EquityRoundStatus)[number];
@@ -3170,6 +3311,8 @@ declare const GovernanceTriggerType: readonly ["external_signal", "policy_eviden
3170
3311
  type GovernanceTriggerType = (typeof GovernanceTriggerType)[number];
3171
3312
  declare const GoverningDocType: readonly ["bylaws", "operating_agreement", "shareholder_agreement", "other"];
3172
3313
  type GoverningDocType = (typeof GoverningDocType)[number];
3314
+ declare const GrantType: readonly ["common_stock", "preferred_stock", "membership_unit", "stock_option", "iso", "nso", "rsa", "svu"];
3315
+ type GrantType = (typeof GrantType)[number];
3173
3316
  declare const HolderType: readonly ["individual", "organization", "fund", "nonprofit", "trust", "other"];
3174
3317
  type HolderType = (typeof HolderType)[number];
3175
3318
  declare const HttpMethod: readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"];
@@ -3202,7 +3345,7 @@ declare const NetworkEgress: readonly ["restricted", "open"];
3202
3345
  type NetworkEgress = (typeof NetworkEgress)[number];
3203
3346
  declare const ObligationStatus: readonly ["required", "in_progress", "fulfilled", "waived", "expired"];
3204
3347
  type ObligationStatus = (typeof ObligationStatus)[number];
3205
- declare const OfficerTitle: readonly ["ceo", "cfo", "secretary", "president", "vp", "other"];
3348
+ declare const OfficerTitle: readonly ["ceo", "cfo", "cto", "coo", "secretary", "treasurer", "president", "vp", "other"];
3206
3349
  type OfficerTitle = (typeof OfficerTitle)[number];
3207
3350
  declare const PaymentMethod: readonly ["bank_transfer", "card", "check", "wire", "ach"];
3208
3351
  type PaymentMethod = (typeof PaymentMethod)[number];
@@ -3256,7 +3399,9 @@ declare const VoteValue: readonly ["for", "against", "abstain", "recusal"];
3256
3399
  type VoteValue = (typeof VoteValue)[number];
3257
3400
  declare const VotingMethod: readonly ["per_capita", "per_unit"];
3258
3401
  type VotingMethod = (typeof VotingMethod)[number];
3402
+ declare const WorkItemStatus: readonly ["open", "claimed", "completed", "cancelled"];
3403
+ type WorkItemStatus = (typeof WorkItemStatus)[number];
3259
3404
  declare const WorkflowType: readonly ["transfer", "fundraising"];
3260
3405
  type WorkflowType = (typeof WorkflowType)[number];
3261
3406
 
3262
- export { type AcceptEquityRoundRequest, type AcceptRoundRequest, AccountType, type AddFounderRequest, type AddFounderResponse, type AddSecurityRequest, type AgendaItemResponse, AgendaItemStatus, AgendaItemType, type AgentResponse, AgentStatus, AntiDilutionMethod, type ApiRecord, type ApplyEquityRoundTermsRequest, type ApplyRoundTermsRequest, AssigneeType, type AttachResolutionDocumentRequest, AuthoritySource, AuthorityTier, BankAccountStatus, BankAccountType, type BoardApproveEquityRoundRequest, type BoardApproveRoundRequest, BodyStatus, BodyType, CapTableAccess, CapTableBasis, type CapTableHolderSummary, type CapTableInstrumentSummary, type CapTableResponse, type CastVoteRequest, ClassificationResult, type ComputeResolutionRequest, ContactCategory, type ContactProfileResponse, type ContactResponse, ContactStatus, ContactType, ContractStatus, ContractTemplateType, ControlType, type ConveneMeetingRequest, type ConvertEntityRequest, CorpAPIClient, type CorpConfig, type CreateAgentRequest, type CreateContactRequest, type CreateEquityRoundRequest, type CreateExecutionIntentRequest, type CreateFormationRequest, type CreatePendingFormationRequest, type CreateRoundRequest, Currency, DeadlineSeverity, DeadlineStatus, type DigestSummary, type DigestTriggerResponse, type DissolveEntityRequest, DistributionStatus, DistributionType, DocumentRequestStatus, type DocumentResponse, DocumentStatus, type DocumentSummary, DocumentType, EntityType, type EquityRoundResponse, EquityRoundStatus, EscalationStatus, type ExecuteRoundConversionRequest, type FinalizeAgendaItemRequest, type FormationGatesResponse, type FormationResponse, FormationState, FormationStatus, type FormationStatusResponse, type FormationWithCapTableResponse, GENERATED_TOOL_DEFINITIONS, GlAccountCode, GovernanceAuditEventType, type GovernanceBodyResponse, GovernanceMode, type GovernanceSeatResponse, GovernanceTriggerSource, GovernanceTriggerType, GoverningDocType, HolderType, HttpMethod, IncidentSeverity, IncidentStatus, InstrumentKind, InstrumentStatus, type IntentResponse, IntentStatus, InvestorType, type InvoiceResponse, InvoiceStatus, type IssueStagedRoundResponse, JournalEntryStatus, type LLMResponse, LegalEntityRole, type MeetingResponse, MeetingStatus, MeetingType, MemberRole, NetworkEgress, type ObligationResponse, ObligationStatus, type ObligationsSummaryResponse, OfficerTitle, PaymentMethod, PaymentStatus, PayrollStatus, type PendingFormationResponse, PositionStatus, type PreviewRoundConversionRequest, QuorumStatus, QuorumThreshold, READ_ONLY_TOOLS, ReceiptStatus, ReconciliationStatus, Recurrence, type ResolutionResponse, ResolutionType, RiskLevel, type RoundResponse, SYSTEM_PROMPT_BASE, type ScheduleMeetingRequest, Scope, SeatRole, SeatStatus, SessionExpiredError, Side, type StartStagedRoundRequest, TOOL_DEFINITIONS, TOOL_REGISTRY, TaxFilingStatus, type ToolCall, type ToolContext, TransactionPacketStatus, TransferStatus, TransferType, TransfereeRights, Transport, type UpdateAgentRequest, type UpdateContactRequest, ValuationMethodology, ValuationStatus, ValuationType, type VoteResponse, VoteValue, VotingMethod, WorkflowType, type WorkspaceContactSummary, type WorkspaceEntitySummary, type WorkspaceStatusResponse, type WrittenConsentRequest, type WrittenConsentResponse, describeToolCall, executeTool, formatConfigSection, isWriteTool, provisionWorkspace };
3407
+ export { type AcceptEquityRoundRequest, type AcceptRoundRequest, AccountType, type AddFounderRequest, type AddFounderResponse, type AddSecurityRequest, type AgendaItemResponse, AgendaItemStatus, AgendaItemType, type AgentResponse, AgentStatus, AntiDilutionMethod, type ApiRecord, type ApplyEquityRoundTermsRequest, type ApplyRoundTermsRequest, AssigneeType, type AttachResolutionDocumentRequest, AuthoritySource, AuthorityTier, BankAccountStatus, BankAccountType, type BoardApproveEquityRoundRequest, type BoardApproveRoundRequest, BodyStatus, BodyType, CapTableAccess, CapTableBasis, type CapTableHolderSummary, type CapTableInstrument, type CapTableInstrumentSummary, type CapTableResponse, type CastVoteRequest, ClassificationResult, type ComputeResolutionRequest, ContactCategory, type ContactProfileResponse, type ContactResponse, ContactStatus, ContactType, ContractStatus, ContractTemplateType, ControlType, type ConveneMeetingRequest, type ConvertEntityRequest, CorpAPIClient, type CorpConfig, type CreateAgentRequest, type CreateContactRequest, type CreateEquityRoundRequest, type CreateExecutionIntentRequest, type CreateFormationRequest, type CreatePendingFormationRequest, type CreateRoundRequest, Currency, DeadlineSeverity, DeadlineStatus, type DigestSummary, type DigestTriggerResponse, type DissolveEntityRequest, DistributionStatus, DistributionType, DocumentRequestStatus, type DocumentResponse, DocumentStatus, type DocumentSummary, DocumentType, EntityType, type EquityRoundResponse, EquityRoundStatus, EscalationStatus, type ExecuteRoundConversionRequest, type FinalizeAgendaItemRequest, type FormationGatesResponse, type FormationResponse, FormationState, FormationStatus, type FormationStatusResponse, type FormationWithCapTableResponse, GENERATED_TOOL_DEFINITIONS, GlAccountCode, GovernanceAuditEventType, type GovernanceBodyResponse, GovernanceMode, type GovernanceSeatResponse, GovernanceTriggerSource, GovernanceTriggerType, GoverningDocType, GrantType, HolderType, HttpMethod, IncidentSeverity, IncidentStatus, InstrumentKind, InstrumentStatus, type IntentResponse, IntentStatus, InvestorType, type InvoiceResponse, InvoiceStatus, type IssueStagedRoundResponse, JournalEntryStatus, type LLMResponse, LegalEntityRole, type MeetingResponse, MeetingStatus, MeetingType, MemberRole, NetworkEgress, type ObligationResponse, ObligationStatus, type ObligationsSummaryResponse, OfficerTitle, PaymentMethod, PaymentStatus, PayrollStatus, type PendingFormationResponse, PositionStatus, type PreviewRoundConversionRequest, QuorumStatus, QuorumThreshold, READ_ONLY_TOOLS, ReceiptStatus, ReconciliationStatus, Recurrence, type ResolutionResponse, ResolutionType, RiskLevel, type RoundResponse, SYSTEM_PROMPT_BASE, type ScheduleMeetingRequest, Scope, SeatRole, SeatStatus, SessionExpiredError, Side, type StartStagedRoundRequest, TOOL_DEFINITIONS, TOOL_REGISTRY, TaxFilingStatus, type ToolCall, type ToolContext, TransactionPacketStatus, TransferStatus, TransferType, TransfereeRights, Transport, type UpdateAgentRequest, type UpdateContactRequest, ValuationMethodology, ValuationStatus, ValuationType, type VoteResponse, VoteValue, VotingMethod, WorkItemStatus, WorkflowType, type WorkspaceContactSummary, type WorkspaceEntitySummary, type WorkspaceStatusResponse, type WrittenConsentRequest, type WrittenConsentResponse, describeToolCall, ensureSafeInstrument, executeTool, formatConfigSection, isWriteTool, provisionWorkspace };
package/dist/index.js CHANGED
@@ -164,6 +164,9 @@ var CorpAPIClient = class {
164
164
  createValuation(data) {
165
165
  return this.post("/v1/valuations", data);
166
166
  }
167
+ createInstrument(data) {
168
+ return this.post("/v1/equity/instruments", data);
169
+ }
167
170
  submitValuationForApproval(valuationId, entityId) {
168
171
  return this.post(`/v1/valuations/${valuationId}/submit-for-approval`, { entity_id: entityId });
169
172
  }
@@ -277,7 +280,7 @@ var CorpAPIClient = class {
277
280
  return this.get(`/v1/sign/${documentId}`, { entity_id: entityId });
278
281
  }
279
282
  async validatePreviewPdf(entityId, documentId) {
280
- const resp = await this.request("GET", "/v1/documents/preview/pdf", void 0, { entity_id: entityId, document_id: documentId });
283
+ const resp = await this.request("GET", "/v1/documents/preview/pdf/validate", void 0, { entity_id: entityId, document_id: documentId });
281
284
  await this.throwIfError(resp);
282
285
  return { entity_id: entityId, document_id: documentId };
283
286
  }
@@ -442,6 +445,10 @@ var CorpAPIClient = class {
442
445
  getConfig() {
443
446
  return this.get("/v1/config");
444
447
  }
448
+ // --- Feedback ---
449
+ submitFeedback(message, category, email) {
450
+ return this.post("/v1/feedback", { message, category, email });
451
+ }
445
452
  // --- Link/Claim ---
446
453
  async createLink(externalId, provider) {
447
454
  const resp = await this.request("POST", "/v1/workspaces/link", { external_id: externalId, provider });
@@ -509,6 +516,8 @@ var GENERATED_TOOL_DEFINITIONS = [
509
516
  "right_of_first_refusal": { "type": "boolean", "description": "create/finalize/form: include ROFR in bylaws (corp)" },
510
517
  "authorized_shares": { "type": "integer", "description": "finalize: authorized shares for corporations" },
511
518
  "par_value": { "type": "string", "description": "finalize: par value per share, e.g. 0.0001" },
519
+ "incorporator_name": { "type": "string", "description": "finalize: incorporator legal name (overrides founder)" },
520
+ "incorporator_address": { "type": "string", "description": "finalize: incorporator mailing address (overrides founder)" },
512
521
  "company_address": {
513
522
  "type": "object",
514
523
  "properties": {
@@ -536,7 +545,7 @@ var GENERATED_TOOL_DEFINITIONS = [
536
545
  "share_count": { "type": "integer" },
537
546
  "share_class": { "type": "string" },
538
547
  "role": { "type": "string", "enum": ["director", "officer", "manager", "member", "chair"] },
539
- "officer_title": { "type": "string", "enum": ["ceo", "cfo", "secretary", "president", "vp", "other"] },
548
+ "officer_title": { "type": "string", "enum": ["ceo", "cfo", "cto", "coo", "secretary", "treasurer", "president", "vp", "other"] },
540
549
  "shares_purchased": { "type": "integer" },
541
550
  "address": {
542
551
  "type": "object",
@@ -566,7 +575,7 @@ var GENERATED_TOOL_DEFINITIONS = [
566
575
  "email": { "type": "string", "description": "add_founder: email address" },
567
576
  "role": { "type": "string", "enum": ["director", "officer", "manager", "member", "chair"], "description": "add_founder: role" },
568
577
  "ownership_pct": { "type": "number", "description": "add_founder: ownership percentage (e.g. 50 for 50%)" },
569
- "officer_title": { "type": "string", "enum": ["ceo", "cfo", "secretary", "president", "vp", "other"], "description": "add_founder: officer title (corp only)" },
578
+ "officer_title": { "type": "string", "enum": ["ceo", "cfo", "cto", "coo", "secretary", "treasurer", "president", "vp", "other"], "description": "add_founder: officer title (corp only)" },
570
579
  "is_incorporator": { "type": "boolean", "description": "add_founder: is sole incorporator (corp only)" },
571
580
  "address": {
572
581
  "type": "object",
@@ -858,6 +867,22 @@ var GENERATED_TOOL_DEFINITIONS = [
858
867
  "required": ["action"]
859
868
  }
860
869
  }
870
+ },
871
+ {
872
+ "type": "function",
873
+ "function": {
874
+ "name": "feedback",
875
+ "description": "Submit feedback to TheCorporation. Logs the feedback and optionally emails a copy to the submitter.",
876
+ "parameters": {
877
+ "type": "object",
878
+ "properties": {
879
+ "message": { "type": "string", "description": "Feedback message" },
880
+ "category": { "type": "string", "description": "Category (e.g. bug, feature, general)" },
881
+ "email": { "type": "string", "description": "Submitter email to receive a copy" }
882
+ },
883
+ "required": ["message"]
884
+ }
885
+ }
861
886
  }
862
887
  ];
863
888
 
@@ -933,7 +958,9 @@ var entityActions = {
933
958
  s_corp_election: args.s_corp_election,
934
959
  transfer_restrictions: args.transfer_restrictions,
935
960
  right_of_first_refusal: args.right_of_first_refusal,
936
- company_address: args.company_address
961
+ company_address: args.company_address,
962
+ incorporator_name: args.incorporator_name,
963
+ incorporator_address: args.incorporator_address
937
964
  });
938
965
  if (entityId && ctx.onEntityFormed) {
939
966
  ctx.onEntityFormed(entityId);
@@ -976,6 +1003,34 @@ var entityActions = {
976
1003
  },
977
1004
  dissolve: async (args, client) => client.dissolveEntity(requiredString(args, "entity_id"), args)
978
1005
  };
1006
+ async function ensureSafeInstrument(client, entityId) {
1007
+ const capTable = await client.getCapTable(entityId);
1008
+ const issuerLegalEntityId = capTable.issuer_legal_entity_id;
1009
+ if (!issuerLegalEntityId) {
1010
+ throw new Error("No issuer legal entity found.");
1011
+ }
1012
+ const instruments = capTable.instruments ?? [];
1013
+ const safeInstrument = instruments.find((instrument) => {
1014
+ const status = String(instrument.status ?? "active").toLowerCase();
1015
+ return instrument.kind.toLowerCase() === "safe" && status === "active";
1016
+ });
1017
+ if (safeInstrument) {
1018
+ return safeInstrument;
1019
+ }
1020
+ const created = await client.createInstrument({
1021
+ entity_id: entityId,
1022
+ issuer_legal_entity_id: issuerLegalEntityId,
1023
+ symbol: "SAFE",
1024
+ kind: "safe",
1025
+ terms: {}
1026
+ });
1027
+ return {
1028
+ instrument_id: String(created.instrument_id ?? ""),
1029
+ kind: String(created.kind ?? "safe"),
1030
+ symbol: String(created.symbol ?? "SAFE"),
1031
+ status: String(created.status ?? "active")
1032
+ };
1033
+ }
979
1034
  var equityActions = {
980
1035
  start_round: async (args, client) => client.startEquityRound(args),
981
1036
  add_security: async (args, client) => {
@@ -1023,9 +1078,7 @@ var equityActions = {
1023
1078
  const capTable = await client.getCapTable(entityId);
1024
1079
  const issuerLegalEntityId = capTable.issuer_legal_entity_id;
1025
1080
  if (!issuerLegalEntityId) return { error: "No issuer legal entity found." };
1026
- const instruments = capTable.instruments;
1027
- const safeInstrument = instruments?.find((i) => i.kind.toLowerCase() === "safe");
1028
- if (!safeInstrument) return { error: "No SAFE instrument found on cap table." };
1081
+ const safeInstrument = await ensureSafeInstrument(client, entityId);
1029
1082
  const principalCents = args.principal_amount_cents ?? args.amount_cents ?? 0;
1030
1083
  const round = await client.startEquityRound({
1031
1084
  entity_id: entityId,
@@ -1042,7 +1095,6 @@ var equityActions = {
1042
1095
  grant_type: args.safe_type ?? "post_money"
1043
1096
  };
1044
1097
  if (args.email) securityData.email = args.email;
1045
- if (args.valuation_cap_cents) securityData.valuation_cap_cents = args.valuation_cap_cents;
1046
1098
  await client.addRoundSecurity(roundId, securityData);
1047
1099
  return client.issueRound(roundId, { entity_id: entityId });
1048
1100
  },
@@ -1338,6 +1390,18 @@ function isWriteTool(name, args) {
1338
1390
  return true;
1339
1391
  }
1340
1392
  async function executeTool(name, args, client, ctx) {
1393
+ if (name === "feedback") {
1394
+ try {
1395
+ const result = await client.submitFeedback(
1396
+ args.message,
1397
+ args.category,
1398
+ args.email
1399
+ );
1400
+ return JSON.stringify(result, null, 0);
1401
+ } catch (err) {
1402
+ return JSON.stringify({ error: String(err) });
1403
+ }
1404
+ }
1341
1405
  const dispatch = TOOL_DISPATCH[name];
1342
1406
  if (!dispatch) return JSON.stringify({ error: `Unknown tool: ${name}` });
1343
1407
  const action = args.action;
@@ -1659,7 +1723,7 @@ var ContactCategory = ["employee", "contractor", "board_member", "law_firm", "va
1659
1723
  var ContactStatus = ["active", "inactive"];
1660
1724
  var ContactType = ["individual", "organization"];
1661
1725
  var ContractStatus = ["draft", "active", "expired", "terminated"];
1662
- var ContractTemplateType = ["consulting_agreement", "employment_offer", "contractor_agreement", "nda", "custom"];
1726
+ var ContractTemplateType = ["consulting_agreement", "employment_offer", "contractor_agreement", "nda", "safe_agreement", "custom"];
1663
1727
  var ControlType = ["voting", "board", "economic", "contractual"];
1664
1728
  var Currency = ["usd"];
1665
1729
  var DeadlineSeverity = ["low", "medium", "high", "critical"];
@@ -1668,8 +1732,8 @@ var DistributionStatus = ["pending", "approved", "distributed"];
1668
1732
  var DistributionType = ["dividend", "return", "liquidation"];
1669
1733
  var DocumentRequestStatus = ["requested", "provided", "not_applicable", "waived"];
1670
1734
  var DocumentStatus = ["draft", "signed", "amended", "filed"];
1671
- var DocumentType = ["articles_of_incorporation", "articles_of_organization", "bylaws", "operating_agreement", "ss4_application", "meeting_notice", "resolution", "safe_agreement"];
1672
- var EntityType = ["corporation", "llc"];
1735
+ var DocumentType = ["articles_of_incorporation", "articles_of_organization", "bylaws", "incorporator_action", "initial_board_consent", "operating_agreement", "initial_written_consent", "ss4_application", "meeting_notice", "resolution", "consulting_agreement", "employment_offer_letter", "contractor_services_agreement", "mutual_nondisclosure_agreement", "safe_agreement", "four_oh_nine_a_valuation_report", "stock_transfer_agreement", "transfer_board_consent", "financing_board_consent", "equity_issuance_approval", "subscription_agreement", "investor_rights_agreement", "restricted_stock_purchase_agreement", "ip_assignment_agreement", "contract"];
1736
+ var EntityType = ["c_corp", "llc"];
1673
1737
  var EquityRoundStatus = ["draft", "open", "board_approved", "accepted", "closed", "cancelled"];
1674
1738
  var EscalationStatus = ["open", "resolved"];
1675
1739
  var FormationState = ["forming", "active"];
@@ -1680,6 +1744,7 @@ var GovernanceMode = ["normal", "principal_unavailable", "incident_lockdown"];
1680
1744
  var GovernanceTriggerSource = ["compliance_scanner", "execution_gate", "external_ingestion"];
1681
1745
  var GovernanceTriggerType = ["external_signal", "policy_evidence_mismatch", "compliance_deadline_missed_d_plus_1", "audit_chain_verification_failed"];
1682
1746
  var GoverningDocType = ["bylaws", "operating_agreement", "shareholder_agreement", "other"];
1747
+ var GrantType = ["common_stock", "preferred_stock", "membership_unit", "stock_option", "iso", "nso", "rsa", "svu"];
1683
1748
  var HolderType = ["individual", "organization", "fund", "nonprofit", "trust", "other"];
1684
1749
  var HttpMethod = ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"];
1685
1750
  var IncidentSeverity = ["low", "medium", "high", "critical"];
@@ -1696,7 +1761,7 @@ var MeetingType = ["board_meeting", "shareholder_meeting", "written_consent", "m
1696
1761
  var MemberRole = ["director", "officer", "manager", "member", "chair"];
1697
1762
  var NetworkEgress = ["restricted", "open"];
1698
1763
  var ObligationStatus = ["required", "in_progress", "fulfilled", "waived", "expired"];
1699
- var OfficerTitle = ["ceo", "cfo", "secretary", "president", "vp", "other"];
1764
+ var OfficerTitle = ["ceo", "cfo", "cto", "coo", "secretary", "treasurer", "president", "vp", "other"];
1700
1765
  var PaymentMethod = ["bank_transfer", "card", "check", "wire", "ach"];
1701
1766
  var PaymentStatus = ["submitted", "processing", "completed", "failed"];
1702
1767
  var PayrollStatus = ["pending", "processing", "completed"];
@@ -1723,6 +1788,7 @@ var ValuationStatus = ["draft", "pending_approval", "approved", "expired", "supe
1723
1788
  var ValuationType = ["four_oh_nine_a", "llc_profits_interest", "fair_market_value", "gift", "estate", "other"];
1724
1789
  var VoteValue = ["for", "against", "abstain", "recusal"];
1725
1790
  var VotingMethod = ["per_capita", "per_unit"];
1791
+ var WorkItemStatus = ["open", "claimed", "completed", "cancelled"];
1726
1792
  var WorkflowType = ["transfer", "fundraising"];
1727
1793
  export {
1728
1794
  AccountType,
@@ -1767,6 +1833,7 @@ export {
1767
1833
  GovernanceTriggerSource,
1768
1834
  GovernanceTriggerType,
1769
1835
  GoverningDocType,
1836
+ GrantType,
1770
1837
  HolderType,
1771
1838
  HttpMethod,
1772
1839
  IncidentSeverity,
@@ -1815,8 +1882,10 @@ export {
1815
1882
  ValuationType,
1816
1883
  VoteValue,
1817
1884
  VotingMethod,
1885
+ WorkItemStatus,
1818
1886
  WorkflowType,
1819
1887
  describeToolCall,
1888
+ ensureSafeInstrument,
1820
1889
  executeTool,
1821
1890
  formatConfigSection,
1822
1891
  isWriteTool,