@thecorporation/cli 1.0.4 → 1.0.5
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/README.md +5 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# @thecorporation/cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Corporate governance from the terminal. Every command validates input, passes it through the governance kernel, and commits the result to your git-backed corporate repo. The command runs. The commit appears. The corporate record updates.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
`corp` handles entity formation, equity management, payroll, tax filings, governance, and agent management — with an AI assistant that can execute any corporate action via `corp chat`.
|
|
6
|
+
|
|
7
|
+
Part of [TheCorporation](https://thecorporation.ai) — version-controlled governance, autonomous agents, and open-source corporate infrastructure.
|
|
6
8
|
|
|
7
9
|
## Install
|
|
8
10
|
|
|
@@ -114,6 +116,7 @@ Round close gating (v1, February 28, 2026):
|
|
|
114
116
|
| `corp agents resume <id>` | Resume an agent |
|
|
115
117
|
| `corp agents delete <id>` | Delete an agent |
|
|
116
118
|
| `corp agents skill <id>` | Add a skill to an agent |
|
|
119
|
+
| `corp agents executions <id>` | List agent executions |
|
|
117
120
|
|
|
118
121
|
### Billing & Approvals
|
|
119
122
|
|
package/dist/index.js
CHANGED
|
@@ -431,7 +431,7 @@ async function setupCommand() {
|
|
|
431
431
|
if (!cfg.api_key || !cfg.workspace_id) {
|
|
432
432
|
console.log("\nProvisioning workspace...");
|
|
433
433
|
try {
|
|
434
|
-
const result = await provisionWorkspace(cfg.api_url);
|
|
434
|
+
const result = await provisionWorkspace(cfg.api_url, `${user.name}'s workspace`);
|
|
435
435
|
cfg.api_key = result.api_key;
|
|
436
436
|
cfg.workspace_id = result.workspace_id;
|
|
437
437
|
console.log(`Workspace provisioned: ${result.workspace_id}`);
|
|
@@ -460,7 +460,7 @@ async function setupCommand() {
|
|
|
460
460
|
});
|
|
461
461
|
if (reprovision) {
|
|
462
462
|
try {
|
|
463
|
-
const result = await provisionWorkspace(cfg.api_url);
|
|
463
|
+
const result = await provisionWorkspace(cfg.api_url, `${user.name}'s workspace`);
|
|
464
464
|
cfg.api_key = result.api_key;
|
|
465
465
|
cfg.workspace_id = result.workspace_id;
|
|
466
466
|
console.log(`Workspace provisioned: ${result.workspace_id}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config.ts","../src/api-client.ts","../src/output.ts","../src/commands/setup.ts","../src/animation.ts","../src/spinner.ts","../src/commands/status.ts","../src/commands/config.ts","../src/commands/obligations.ts","../src/commands/digest.ts","../src/commands/link.ts","../src/commands/claim.ts","../src/llm.ts","../src/tools.ts","../src/chat.ts","../src/commands/entities.ts","../src/commands/contacts.ts","../src/commands/cap-table.ts","../src/commands/finance.ts","../src/commands/governance.ts","../src/commands/documents.ts","../src/commands/tax.ts","../src/commands/agents.ts","../src/commands/billing.ts","../src/commands/approvals.ts","../src/commands/form.ts","../src/commands/api-keys.ts","../src/commands/demo.ts","../src/commands/serve.ts","../src/index.ts"],"sourcesContent":["import { readFileSync, writeFileSync, mkdirSync, chmodSync, existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport type { CorpConfig } from \"./types.js\";\n\nconst CONFIG_DIR = process.env.CORP_CONFIG_DIR || join(homedir(), \".corp\");\nconst CONFIG_FILE = join(CONFIG_DIR, \"config.json\");\n\nconst DEFAULTS: CorpConfig = {\n api_url: process.env.CORP_API_URL || \"https://api.thecorporation.ai\",\n api_key: \"\",\n workspace_id: \"\",\n hosting_mode: \"\",\n llm: {\n provider: \"anthropic\",\n api_key: \"\",\n model: \"claude-sonnet-4-6\",\n },\n user: { name: \"\", email: \"\" },\n active_entity_id: \"\",\n};\n\nfunction deepMerge(base: Record<string, unknown>, override: Record<string, unknown>): void {\n for (const [key, value] of Object.entries(override)) {\n if (\n key in base &&\n typeof base[key] === \"object\" &&\n base[key] !== null &&\n !Array.isArray(base[key]) &&\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value)\n ) {\n deepMerge(base[key] as Record<string, unknown>, value as Record<string, unknown>);\n } else {\n base[key] = value;\n }\n }\n}\n\nexport function loadConfig(): CorpConfig {\n const cfg = structuredClone(DEFAULTS);\n if (existsSync(CONFIG_FILE)) {\n const saved = JSON.parse(readFileSync(CONFIG_FILE, \"utf-8\"));\n deepMerge(cfg as unknown as Record<string, unknown>, saved);\n }\n return cfg;\n}\n\nexport function saveConfig(cfg: CorpConfig): void {\n mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n writeFileSync(CONFIG_FILE, JSON.stringify(cfg, null, 2) + \"\\n\", { mode: 0o600 });\n}\n\nexport function getValue(cfg: Record<string, unknown>, dotPath: string): unknown {\n const keys = dotPath.split(\".\");\n let current: unknown = cfg;\n for (const key of keys) {\n if (typeof current === \"object\" && current !== null && key in current) {\n current = (current as Record<string, unknown>)[key];\n } else {\n return undefined;\n }\n }\n return current;\n}\n\nexport function setValue(cfg: Record<string, unknown>, dotPath: string, value: string): void {\n const keys = dotPath.split(\".\");\n let current = cfg;\n for (const key of keys.slice(0, -1)) {\n if (!(key in current) || typeof current[key] !== \"object\" || current[key] === null) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n current[keys[keys.length - 1]] = value;\n}\n\nexport function requireConfig(...fields: string[]): CorpConfig {\n const cfg = loadConfig();\n const missing = fields.filter((f) => !getValue(cfg as unknown as Record<string, unknown>, f));\n if (missing.length > 0) {\n console.error(`Missing config: ${missing.join(\", \")}`);\n console.error(\"Run 'corp setup' to configure.\");\n process.exit(1);\n }\n return cfg;\n}\n\nexport function maskKey(value: string): string {\n if (!value || value.length < 8) return \"***\";\n return \"***\" + value.slice(-4);\n}\n\nexport function configForDisplay(cfg: CorpConfig): Record<string, unknown> {\n const display = { ...cfg } as Record<string, unknown>;\n if (display.api_key) display.api_key = maskKey(display.api_key as string);\n if (typeof display.llm === \"object\" && display.llm !== null) {\n const llm = { ...(display.llm as Record<string, unknown>) };\n if (llm.api_key) llm.api_key = maskKey(llm.api_key as string);\n display.llm = llm;\n }\n return display;\n}\n\nexport function resolveEntityId(cfg: CorpConfig, explicitId?: string): string {\n const eid = explicitId || cfg.active_entity_id;\n if (!eid) {\n console.error(\n \"No entity specified. Use --entity-id or set active_entity_id via 'corp config set active_entity_id <id>'.\"\n );\n process.exit(1);\n }\n return eid;\n}\n","export { CorpAPIClient, SessionExpiredError, provisionWorkspace } from \"@thecorporation/corp-tools\";\n","import chalk from \"chalk\";\nimport Table from \"cli-table3\";\nimport type { ApiRecord } from \"./types.js\";\n\nconst URGENCY_COLORS: Record<string, (s: string) => string> = {\n overdue: chalk.red.bold,\n due_today: chalk.yellow.bold,\n d1: chalk.yellow,\n d7: chalk.cyan,\n d14: chalk.blue,\n d30: chalk.dim,\n upcoming: chalk.dim,\n};\n\nexport function printError(msg: string): void {\n console.error(chalk.red(\"Error:\"), msg);\n}\n\nexport function printSuccess(msg: string): void {\n console.log(chalk.green(msg));\n}\n\nexport function printWarning(msg: string): void {\n console.log(chalk.yellow(msg));\n}\n\nexport function printJson(data: unknown): void {\n console.log(JSON.stringify(data, null, 2));\n}\n\n// --- Status Panel ---\n\nexport function printStatusPanel(data: ApiRecord): void {\n console.log(chalk.blue(\"─\".repeat(50)));\n console.log(chalk.blue.bold(\" Corp Status\"));\n console.log(chalk.blue(\"─\".repeat(50)));\n console.log(` ${chalk.bold(\"Workspace:\")} ${data.workspace_id ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Entities:\")} ${data.entity_count ?? 0}`);\n\n const urgency = (data.urgency_counts ?? {}) as Record<string, number>;\n if (Object.keys(urgency).length > 0) {\n console.log(`\\n ${chalk.bold(\"Obligations:\")}`);\n for (const [tier, count] of Object.entries(urgency)) {\n const colorFn = URGENCY_COLORS[tier] ?? ((s: string) => s);\n console.log(` ${colorFn(`${tier}:`)} ${count}`);\n }\n }\n\n if (data.next_deadline) {\n console.log(`\\n ${chalk.bold(\"Next deadline:\")} ${data.next_deadline}`);\n }\n console.log(chalk.blue(\"─\".repeat(50)));\n}\n\n// --- Generic table helper ---\n\nfunction makeTable(title: string, columns: string[]): Table.Table {\n console.log(`\\n${chalk.bold(title)}`);\n return new Table({ head: columns.map((c) => chalk.dim(c)) });\n}\n\nfunction s(val: unknown, maxLen?: number): string {\n const str = val == null ? \"\" : String(val);\n if (maxLen && str.length > maxLen) return str.slice(0, maxLen);\n return str;\n}\n\nfunction money(val: unknown): string {\n if (typeof val === \"number\") return `$${val.toLocaleString()}`;\n return String(val ?? \"\");\n}\n\n// --- Domain tables ---\n\nexport function printEntitiesTable(entities: ApiRecord[]): void {\n const table = makeTable(\"Entities\", [\"ID\", \"Name\", \"Type\", \"Jurisdiction\", \"Status\"]);\n for (const e of entities) {\n table.push([s(e.entity_id, 12), s(e.name), s(e.entity_type), s(e.jurisdiction), s(e.status)]);\n }\n console.log(table.toString());\n}\n\nexport function printObligationsTable(obligations: ApiRecord[]): void {\n const table = makeTable(\"Obligations\", [\"ID\", \"Type\", \"Urgency\", \"Due\", \"Status\"]);\n for (const o of obligations) {\n const urg = s(o.urgency) || \"upcoming\";\n const colorFn = URGENCY_COLORS[urg] ?? ((x: string) => x);\n table.push([s(o.obligation_id, 12), s(o.obligation_type), colorFn(urg), s(o.due_at), s(o.status)]);\n }\n console.log(table.toString());\n}\n\nexport function printContactsTable(contacts: ApiRecord[]): void {\n const table = makeTable(\"Contacts\", [\"ID\", \"Name\", \"Email\", \"Category\", \"Entity\"]);\n for (const c of contacts) {\n table.push([\n s(c.contact_id ?? c.id, 12),\n s(c.name),\n s(c.email),\n s(c.category),\n s(c.entity_name ?? c.entity_id),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printCapTable(data: ApiRecord): void {\n const accessLevel = s(data.access_level) || \"admin\";\n const shareClasses = (data.share_classes ?? []) as ApiRecord[];\n if (shareClasses.length > 0) {\n const cols = [\"Class\", \"Authorized\", \"Outstanding\"];\n if (accessLevel !== \"summary\") cols.push(\"Holders\");\n const table = makeTable(\"Cap Table — Share Classes\", cols);\n for (const sc of shareClasses) {\n const row = [s(sc.class_code ?? sc.name), s(sc.authorized), s(sc.outstanding)];\n if (accessLevel !== \"summary\") {\n const holders = (sc.holders ?? []) as ApiRecord[];\n row.push(holders.map((h) => `${h.name ?? \"?\"}(${h.percentage ?? \"?\"}%)`).join(\", \"));\n }\n table.push(row);\n }\n console.log(table.toString());\n }\n\n const ownership = (data.ownership ?? []) as ApiRecord[];\n if (ownership.length > 0 && accessLevel !== \"summary\") {\n const table = makeTable(\"Ownership Breakdown\", [\"Holder\", \"Shares\", \"Percentage\", \"Class\"]);\n for (const o of ownership) {\n table.push([s(o.holder_name ?? o.name), s(o.shares), `${o.percentage ?? \"\"}%`, s(o.share_class)]);\n }\n console.log(table.toString());\n }\n\n const pools = (data.option_pools ?? []) as ApiRecord[];\n if (pools.length > 0) {\n const table = makeTable(\"Option Pools\", [\"Name\", \"Authorized\", \"Granted\", \"Available\"]);\n for (const p of pools) {\n table.push([s(p.name), s(p.authorized), s(p.granted), s(p.available)]);\n }\n console.log(table.toString());\n }\n\n if (data.fully_diluted_shares != null) {\n const fd = data.fully_diluted_shares;\n console.log(`\\n${chalk.bold(\"Fully Diluted Shares:\")} ${typeof fd === \"number\" ? fd.toLocaleString() : fd}`);\n }\n}\n\nexport function printSafesTable(safes: ApiRecord[]): void {\n const table = makeTable(\"SAFE Notes\", [\"ID\", \"Investor\", \"Amount\", \"Cap\", \"Discount\", \"Date\"]);\n for (const s_ of safes) {\n table.push([\n s(s_.safe_id ?? s_.id, 12),\n s(s_.investor_name ?? s_.investor),\n money(s_.investment_amount ?? s_.amount),\n s(s_.valuation_cap ?? s_.cap),\n s(s_.discount_rate ?? s_.discount),\n s(s_.date ?? s_.created_at),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printTransfersTable(transfers: ApiRecord[]): void {\n const table = makeTable(\"Share Transfers\", [\"ID\", \"From\", \"To\", \"Shares\", \"Class\", \"Date\"]);\n for (const t of transfers) {\n table.push([\n s(t.transfer_id ?? t.id, 12),\n s(t.from_holder ?? t.from),\n s(t.to_holder ?? t.to),\n s(t.shares),\n s(t.share_class),\n s(t.date ?? t.transfer_date),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printValuationsTable(valuations: ApiRecord[]): void {\n const table = makeTable(\"Valuations\", [\"Date\", \"Type\", \"Valuation\", \"PPS\"]);\n for (const v of valuations) {\n table.push([\n s(v.valuation_date ?? v.date),\n s(v.valuation_type ?? v.type),\n s(v.enterprise_value ?? v.valuation),\n s(v.price_per_share ?? v.pps ?? v.fmv_per_share),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printGovernanceTable(bodies: ApiRecord[]): void {\n const table = makeTable(\"Governance Bodies\", [\"ID\", \"Body\", \"Type\", \"Seats\", \"Meetings\"]);\n for (const b of bodies) {\n table.push([\n s(b.body_id ?? b.id, 12),\n s(b.name),\n s(b.body_type ?? b.type),\n s(b.seat_count ?? b.seats),\n s(b.meeting_count ?? b.meetings),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printSeatsTable(seats: ApiRecord[]): void {\n const table = makeTable(\"Seats\", [\"Seat\", \"Holder\", \"Role\", \"Status\"]);\n for (const st of seats) {\n table.push([s(st.seat_name ?? st.title), s(st.holder_name ?? st.holder), s(st.role), s(st.status)]);\n }\n console.log(table.toString());\n}\n\nexport function printMeetingsTable(meetings: ApiRecord[]): void {\n const table = makeTable(\"Meetings\", [\"ID\", \"Title\", \"Date\", \"Status\", \"Resolutions\"]);\n for (const m of meetings) {\n table.push([\n s(m.meeting_id ?? m.id, 12),\n s(m.title ?? m.name),\n s(m.meeting_date ?? m.date),\n s(m.status),\n s(m.resolution_count ?? m.resolutions),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printResolutionsTable(resolutions: ApiRecord[]): void {\n const table = makeTable(\"Resolutions\", [\"ID\", \"Title\", \"Type\", \"Status\", \"For\", \"Against\"]);\n for (const r of resolutions) {\n table.push([\n s(r.resolution_id ?? r.id, 12),\n s(r.title),\n s(r.resolution_type ?? r.type),\n s(r.status),\n s(r.votes_for),\n s(r.votes_against),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printDocumentsTable(docs: ApiRecord[]): void {\n const table = makeTable(\"Documents\", [\"ID\", \"Title\", \"Type\", \"Date\", \"Status\", \"Signatures\"]);\n for (const d of docs) {\n const sigs = d.signatures;\n const sigStr = Array.isArray(sigs) ? `${sigs.length} signed` : s(sigs);\n table.push([\n s(d.document_id ?? d.id, 12),\n s(d.title ?? d.name),\n s(d.document_type ?? d.type),\n s(d.date ?? d.created_at),\n s(d.status),\n sigStr,\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printAgentsTable(agents: ApiRecord[]): void {\n const table = makeTable(\"Agents\", [\"ID\", \"Name\", \"Status\", \"Model\"]);\n for (const a of agents) {\n const status = s(a.status);\n const colored =\n status === \"active\" ? chalk.green(status) : status === \"paused\" ? chalk.yellow(status) : status;\n table.push([s(a.agent_id ?? a.id, 12), s(a.name), colored, s(a.model)]);\n }\n console.log(table.toString());\n}\n\nexport function printApprovalsTable(approvals: ApiRecord[]): void {\n const table = makeTable(\"Pending Approvals\", [\"ID\", \"Type\", \"Requested By\", \"Description\", \"Created\"]);\n for (const a of approvals) {\n let desc = s(a.description ?? a.summary);\n if (desc.length > 60) desc = desc.slice(0, 57) + \"...\";\n table.push([\n s(a.approval_id ?? a.id, 12),\n s(a.approval_type ?? a.type),\n s(a.requested_by ?? a.requester),\n desc,\n s(a.created_at),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printBillingPanel(status: ApiRecord, plans: ApiRecord[]): void {\n const tier = s(status.tier ?? status.plan) || \"free\";\n const subs = (status.subscriptions ?? []) as ApiRecord[];\n const usageCount = status.usage_count ?? 0;\n\n console.log(chalk.green(\"─\".repeat(50)));\n console.log(chalk.green.bold(\" Billing Status\"));\n console.log(chalk.green(\"─\".repeat(50)));\n console.log(` ${chalk.bold(\"Current Tier:\")} ${tier}`);\n console.log(` ${chalk.bold(\"Active Subscriptions:\")} ${subs.length}`);\n for (const sub of subs) {\n console.log(` - ${sub.tier ?? \"N/A\"} (${sub.status ?? \"N/A\"})`);\n }\n console.log(` ${chalk.bold(\"Tool Calls:\")} ${usageCount}`);\n console.log(chalk.dim(\" Manage: corp billing portal\"));\n console.log(chalk.dim(\" Upgrade: corp billing upgrade\"));\n console.log(chalk.green(\"─\".repeat(50)));\n\n if (plans.length > 0) {\n const table = makeTable(\"Available Plans\", [\"Tier\", \"Price\", \"Type\", \"Description\"]);\n for (const p of plans) {\n const amount = (p.amount ?? 0) as number;\n const interval = s(p.interval);\n let priceStr = \"Free\";\n if (amount > 0) {\n priceStr = interval ? `$${Math.round(amount / 100)}/${interval[0]}` : `$${Math.round(amount / 100)}`;\n }\n let name = s(p.name ?? p.tier);\n if (p.addon) name += chalk.dim(\" (add-on)\");\n let desc = s(p.description);\n if (desc.length > 60) desc = desc.slice(0, 57) + \"...\";\n table.push([name, priceStr, s(p.type), desc]);\n }\n console.log(table.toString());\n }\n}\n","import { input, confirm } from \"@inquirer/prompts\";\nimport { loadConfig, saveConfig } from \"../config.js\";\nimport { provisionWorkspace } from \"../api-client.js\";\nimport { printSuccess, printError } from \"../output.js\";\n\nconst API_URL = \"https://api.thecorporation.ai\";\n\nexport async function setupCommand(): Promise<void> {\n const cfg = loadConfig();\n console.log(\"Welcome to corp — corporate governance from the terminal.\\n\");\n\n cfg.api_url = API_URL;\n\n console.log(\"--- User Info ---\");\n const user = cfg.user ?? { name: \"\", email: \"\" };\n user.name = await input({ message: \"Your name\", default: user.name || undefined });\n user.email = await input({ message: \"Your email\", default: user.email || undefined });\n cfg.user = user;\n\n if (!cfg.api_key || !cfg.workspace_id) {\n console.log(\"\\nProvisioning workspace...\");\n try {\n const result = await provisionWorkspace(cfg.api_url);\n cfg.api_key = result.api_key as string;\n cfg.workspace_id = result.workspace_id as string;\n console.log(`Workspace provisioned: ${result.workspace_id}`);\n } catch (err) {\n printError(`Auto-provision failed: ${err}`);\n console.log(\"You can manually set credentials with: corp config set api_key <key>\");\n }\n } else {\n console.log(\"\\nVerifying existing credentials...\");\n let keyValid = false;\n try {\n const resp = await fetch(\n `${cfg.api_url.replace(/\\/+$/, \"\")}/v1/workspaces/${cfg.workspace_id}/status`,\n { headers: { Authorization: `Bearer ${cfg.api_key}` } }\n );\n keyValid = resp.status !== 401;\n } catch {\n // network error — treat as potentially valid\n }\n\n if (keyValid) {\n console.log(\"Credentials OK.\");\n } else {\n console.log(\"API key is no longer valid.\");\n const reprovision = await confirm({\n message: \"Provision a new workspace? (This will replace your current credentials)\",\n default: false,\n });\n if (reprovision) {\n try {\n const result = await provisionWorkspace(cfg.api_url);\n cfg.api_key = result.api_key as string;\n cfg.workspace_id = result.workspace_id as string;\n console.log(`Workspace provisioned: ${result.workspace_id}`);\n } catch (err) {\n printError(`Provisioning failed: ${err}`);\n }\n } else {\n console.log(\"Keeping existing credentials. You can manually update with: corp config set api_key <key>\");\n }\n }\n }\n\n saveConfig(cfg);\n console.log(\"\\nConfig saved to ~/.corp/config.json\");\n console.log(\"Run 'corp status' to verify your connection.\");\n}\n","/**\n * Rising cityscape boot animation — ported from packages/cli/corp/tui/widgets/mascot.py\n */\n\n// prettier-ignore\nconst BUILDINGS: string[][] = [\n [\n \" ┌┐ \",\n \" ││ \",\n \" ││ \",\n \" ┌┤├┐ \",\n \" │││││\",\n \" │││││\",\n ],\n [\n \" ╔══╗ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n ],\n [\n \" /\\\\ \",\n \" / \\\\ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n ],\n [\n \" ┌──┐ \",\n \" │≋≋│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n ],\n [\n \" ╻ \",\n \" ┃ \",\n \" ┌┤┐ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n ],\n [\n \" ┌┐ \",\n \" ├┤ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n ],\n [\n \" ╔═══╗\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n ],\n [\n \" ┬─┬ \",\n \" │~│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n ],\n];\n\nconst MAX_HEIGHT = Math.max(...BUILDINGS.map((b) => b.length));\nconst TOTAL_FRAMES = MAX_HEIGHT + 4; // 15 frames, ~1.5s at 100ms\n\nconst GOLD = \"\\x1b[38;2;212;160;23m\";\nconst RESET = \"\\x1b[0m\";\n\nexport function renderFrame(frame: number): string {\n const cols: string[][] = [];\n for (let i = 0; i < BUILDINGS.length; i++) {\n const building = BUILDINGS[i];\n const h = building.length;\n const visible = Math.max(0, Math.min(h, frame - i));\n const width = building[0]?.length ?? 6;\n const blank = \" \".repeat(width);\n const col: string[] = Array(MAX_HEIGHT - visible).fill(blank);\n col.push(...building.slice(h - visible));\n cols.push(col);\n }\n\n const lines: string[] = [];\n for (let row = 0; row < MAX_HEIGHT; row++) {\n lines.push(cols.map((col) => col[row]).join(\"\"));\n }\n return lines.join(\"\\n\");\n}\n\n/**\n * Run an async function while displaying the rising cityscape animation.\n * No-ops when stdout is not a TTY (piped, CI, etc.).\n */\nexport async function withAnimation<T>(fn: () => Promise<T>): Promise<T> {\n if (!process.stdout.isTTY) {\n return fn();\n }\n\n let frame = 0;\n let animDone = false;\n const spinChars = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\n let spinIdx = 0;\n let lastLineCount = 0;\n\n const clearPrev = () => {\n if (lastLineCount > 0) {\n process.stdout.write(`\\x1b[${lastLineCount}A\\x1b[0J`);\n }\n };\n\n const drawFrame = () => {\n clearPrev();\n if (!animDone) {\n const art = renderFrame(frame);\n const output = `${GOLD}${art}${RESET}\\n`;\n process.stdout.write(output);\n lastLineCount = MAX_HEIGHT + 1;\n frame++;\n if (frame >= TOTAL_FRAMES) {\n animDone = true;\n }\n } else {\n // Dot spinner fallback after animation finishes\n const line = `${GOLD}${spinChars[spinIdx % spinChars.length]} Loading...${RESET}\\n`;\n process.stdout.write(line);\n lastLineCount = 1;\n spinIdx++;\n }\n };\n\n drawFrame();\n const timer = setInterval(drawFrame, 100);\n\n try {\n const result = await fn();\n return result;\n } finally {\n clearInterval(timer);\n clearPrev();\n }\n}\n","import { withAnimation } from \"./animation.js\";\n\n/**\n * Run an async function with a loading animation.\n * Silently skipped when `json` is truthy (pure JSON output) or non-TTY.\n */\nexport async function withSpinner<T>(\n _label: string,\n fn: () => Promise<T>,\n json?: boolean,\n): Promise<T> {\n if (json) {\n return fn();\n }\n return withAnimation(fn);\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printStatusPanel } from \"../output.js\";\nimport { withSpinner } from \"../spinner.js\";\n\nexport async function statusCommand(): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await withSpinner(\"Loading\", () => client.getStatus());\n printStatusPanel(data);\n } catch (err) {\n printError(`Failed to fetch status: ${err}`);\n process.exit(1);\n }\n}\n","import { configForDisplay, getValue, loadConfig, saveConfig, setValue } from \"../config.js\";\nimport { printError, printJson } from \"../output.js\";\n\nexport function configSetCommand(key: string, value: string): void {\n const cfg = loadConfig();\n setValue(cfg as unknown as Record<string, unknown>, key, value);\n saveConfig(cfg);\n console.log(`${key} = ${value}`);\n}\n\nexport function configGetCommand(key: string): void {\n const cfg = loadConfig();\n const val = getValue(cfg as unknown as Record<string, unknown>, key);\n if (val === undefined) {\n printError(`Key not found: ${key}`);\n process.exit(1);\n }\n if (typeof val === \"object\" && val !== null) {\n printJson(val);\n } else {\n console.log(String(val));\n }\n}\n\nexport function configListCommand(): void {\n const cfg = loadConfig();\n printJson(configForDisplay(cfg));\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printObligationsTable, printError, printJson } from \"../output.js\";\n\nexport async function obligationsCommand(opts: { tier?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.getObligations(opts.tier);\n const obligations = (data.obligations ?? []) as Record<string, unknown>[];\n if (opts.json) printJson(obligations);\n else if (obligations.length === 0) console.log(\"No obligations found.\");\n else printObligationsTable(obligations);\n } catch (err) { printError(`Failed to fetch obligations: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function digestCommand(opts: { trigger?: boolean; key?: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n if (opts.trigger) {\n const result = await client.triggerDigest();\n printSuccess(\"Digest triggered.\");\n printJson(result);\n } else if (opts.key) {\n const result = await client.getDigest(opts.key);\n printJson(result);\n } else {\n const digests = await client.listDigests();\n if (digests.length === 0) console.log(\"No digest history found.\");\n else printJson(digests);\n }\n } catch (err) { printError(`Failed: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError } from \"../output.js\";\n\nexport async function linkCommand(): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.createLink();\n const code = data.code as string;\n const expires = (data.expires_in_seconds ?? 900) as number;\n console.log();\n console.log(` ${code}`);\n console.log();\n console.log(`Run this on the other device (expires in ${Math.floor(expires / 60)} minutes):`);\n console.log(` corp claim ${code}`);\n console.log();\n } catch (err) {\n printError(`${err}`);\n process.exit(1);\n }\n}\n","import { loadConfig, saveConfig } from \"../config.js\";\nimport { printError } from \"../output.js\";\n\nexport async function claimCommand(code: string): Promise<void> {\n const cfg = loadConfig();\n const apiUrl = (cfg.api_url || \"https://api.thecorporation.ai\").replace(/\\/+$/, \"\");\n try {\n const resp = await fetch(`${apiUrl}/v1/workspaces/claim`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ code }),\n });\n if (!resp.ok) {\n let detail = \"\";\n try { const body = await resp.json() as Record<string, string>; detail = body.detail ?? \"\"; } catch { /* ignore */ }\n printError(detail || `${resp.status} ${resp.statusText}`);\n process.exit(1);\n }\n const data = await resp.json() as Record<string, string>;\n cfg.api_key = data.api_key;\n cfg.workspace_id = data.workspace_id;\n saveConfig(cfg);\n console.log(`Workspace joined: ${data.workspace_id}`);\n console.log(\"Credentials saved to ~/.corp/config.json\");\n } catch (err) {\n printError(`${err}`);\n process.exit(1);\n }\n}\n","import type { ToolCall, LLMResponse } from \"./types.js\";\n\nconst PROVIDER_BASE_URLS: Record<string, string> = {\n openrouter: \"https://openrouter.ai/api/v1\",\n};\n\nexport async function chat(\n messages: Record<string, unknown>[],\n tools?: Record<string, unknown>[],\n provider = \"anthropic\",\n apiKey = \"\",\n model = \"\",\n baseUrl?: string,\n): Promise<LLMResponse> {\n if (provider === \"anthropic\") {\n return chatAnthropic(messages, tools, apiKey, model);\n } else if (provider === \"openai\" || provider === \"openrouter\") {\n const effectiveUrl = baseUrl ?? PROVIDER_BASE_URLS[provider];\n return chatOpenAI(messages, tools, apiKey, model, effectiveUrl);\n }\n throw new Error(`Unknown LLM provider: ${provider}`);\n}\n\nasync function chatAnthropic(\n messages: Record<string, unknown>[],\n tools?: Record<string, unknown>[],\n apiKey = \"\",\n model = \"\",\n): Promise<LLMResponse> {\n const { default: Anthropic } = await import(\"@anthropic-ai/sdk\");\n const client = new Anthropic({ apiKey });\n\n let systemText = \"\";\n const convMessages: Record<string, unknown>[] = [];\n\n for (const msg of messages) {\n if (msg.role === \"system\") {\n systemText = msg.content as string;\n } else if (msg.role === \"tool\") {\n convMessages.push({\n role: \"user\",\n content: [{\n type: \"tool_result\",\n tool_use_id: msg.tool_call_id,\n content: msg.content,\n }],\n });\n } else if (msg.role === \"assistant\" && msg.tool_calls) {\n const contentBlocks: Record<string, unknown>[] = [];\n if (msg.content) contentBlocks.push({ type: \"text\", text: msg.content });\n for (const tc of msg.tool_calls as Record<string, unknown>[]) {\n const fn = tc.function as Record<string, unknown>;\n let args = fn.arguments;\n if (typeof args === \"string\") args = JSON.parse(args);\n contentBlocks.push({ type: \"tool_use\", id: tc.id, name: fn.name, input: args });\n }\n convMessages.push({ role: \"assistant\", content: contentBlocks });\n } else {\n convMessages.push({ role: msg.role, content: msg.content ?? \"\" });\n }\n }\n\n let anthropicTools: Record<string, unknown>[] | undefined;\n if (tools?.length) {\n anthropicTools = tools.map((t) => {\n const fn = (t as Record<string, unknown>).function as Record<string, unknown>;\n return {\n name: fn.name,\n description: fn.description ?? \"\",\n input_schema: fn.parameters ?? { type: \"object\", properties: {} },\n };\n });\n }\n\n const kwargs: Record<string, unknown> = {\n model: model || \"claude-sonnet-4-20250514\",\n max_tokens: 4096,\n messages: convMessages,\n };\n if (systemText) kwargs.system = systemText;\n if (anthropicTools) kwargs.tools = anthropicTools;\n\n const response = await client.messages.create(kwargs as Parameters<typeof client.messages.create>[0]);\n\n let content: string | null = null;\n const toolCallsOut: ToolCall[] = [];\n for (const block of response.content) {\n if (block.type === \"text\") {\n content = block.text;\n } else if (block.type === \"tool_use\") {\n toolCallsOut.push({\n id: block.id,\n name: block.name,\n arguments: typeof block.input === \"object\" ? (block.input as Record<string, unknown>) : {},\n });\n }\n }\n\n return {\n content,\n tool_calls: toolCallsOut,\n usage: {\n prompt_tokens: response.usage.input_tokens,\n completion_tokens: response.usage.output_tokens,\n total_tokens: response.usage.input_tokens + response.usage.output_tokens,\n },\n finish_reason: response.stop_reason ?? null,\n };\n}\n\nasync function chatOpenAI(\n messages: Record<string, unknown>[],\n tools?: Record<string, unknown>[],\n apiKey = \"\",\n model = \"\",\n baseUrl?: string,\n): Promise<LLMResponse> {\n const { default: OpenAI } = await import(\"openai\");\n const clientOpts: Record<string, unknown> = { apiKey };\n if (baseUrl) clientOpts.baseURL = baseUrl;\n const client = new OpenAI(clientOpts as ConstructorParameters<typeof OpenAI>[0]);\n\n const kwargs: Record<string, unknown> = {\n model: model || \"gpt-4o\",\n messages,\n max_tokens: 4096,\n };\n if (tools?.length) {\n kwargs.tools = tools;\n kwargs.tool_choice = \"auto\";\n }\n\n const response = await client.chat.completions.create(kwargs as Parameters<typeof client.chat.completions.create>[0]);\n const choice = response.choices[0];\n const message = choice.message;\n\n const toolCallsOut: ToolCall[] = [];\n if (message.tool_calls) {\n for (const tc of message.tool_calls) {\n let args: Record<string, unknown>;\n try {\n args = JSON.parse(tc.function.arguments);\n } catch {\n args = { _raw: tc.function.arguments };\n }\n toolCallsOut.push({ id: tc.id, name: tc.function.name, arguments: args });\n }\n }\n\n return {\n content: message.content,\n tool_calls: toolCallsOut,\n usage: {\n prompt_tokens: response.usage?.prompt_tokens ?? 0,\n completion_tokens: response.usage?.completion_tokens ?? 0,\n total_tokens: response.usage?.total_tokens ?? 0,\n },\n finish_reason: choice.finish_reason ?? null,\n };\n}\n","import {\n TOOL_DEFINITIONS as _TOOL_DEFINITIONS,\n isWriteTool as _isWriteTool,\n executeTool as _executeTool,\n} from \"@thecorporation/corp-tools\";\nimport type { CorpAPIClient } from \"@thecorporation/corp-tools\";\nimport { loadConfig, saveConfig } from \"./config.js\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\n\nexport const TOOL_DEFINITIONS = _TOOL_DEFINITIONS;\nexport const isWriteTool = _isWriteTool;\n\nexport async function executeTool(\n name: string,\n args: Record<string, unknown>,\n client: CorpAPIClient,\n): Promise<string> {\n return _executeTool(name, args, client, {\n dataDir: join(homedir(), \".corp\"),\n onEntityFormed: (entityId) => {\n try {\n const cfg = loadConfig();\n cfg.active_entity_id = entityId;\n saveConfig(cfg);\n } catch { /* ignore */ }\n },\n });\n}\n","import { createInterface } from \"node:readline\";\nimport chalk from \"chalk\";\nimport { requireConfig, configForDisplay, getValue, setValue, saveConfig } from \"./config.js\";\nimport { CorpAPIClient } from \"./api-client.js\";\nimport { chat as llmChat } from \"./llm.js\";\nimport { TOOL_DEFINITIONS, executeTool, isWriteTool } from \"./tools.js\";\nimport { printError, printStatusPanel, printObligationsTable, printJson } from \"./output.js\";\nimport type { CorpConfig, LLMResponse, ToolCall } from \"./types.js\";\n\nconst SYSTEM_PROMPT = `You are **corp**, an AI assistant for corporate governance.\nYou help users manage their companies — entities, cap tables, compliance, governance, finances, and more.\nYou have tools to read and write corporate data. Use them to fulfill user requests.\nFor write operations, confirm with the user before proceeding.\nMonetary values are in cents (e.g. 100000 = $1,000.00).\nDocuments must be signed by the human — you cannot sign on their behalf.\nAfter completing actions, suggest logical next steps.`;\n\nexport async function chatCommand(): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\", \"llm.api_key\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n\n const messages: Record<string, unknown>[] = [{ role: \"system\", content: SYSTEM_PROMPT }];\n let totalTokens = 0;\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n const prompt = () => new Promise<string>((resolve) => rl.question(chalk.green.bold(\"> \"), resolve));\n\n console.log(chalk.blue.bold(\"corp chat\") + \" — type /help for commands, /quit to exit\\n\");\n\n const slashHandlers: Record<string, (args: string) => void> = {\n \"/status\": async () => {\n try { printStatusPanel(await client.getStatus()); } catch (e) { printError(`Status error: ${e}`); }\n },\n \"/obligations\": async () => {\n try {\n const data = await client.getObligations();\n const obls = (data.obligations ?? []) as Record<string, unknown>[];\n if (obls.length) printObligationsTable(obls);\n else console.log(chalk.dim(\"No obligations found.\"));\n } catch (e) { printError(`Obligations error: ${e}`); }\n },\n \"/digest\": async () => {\n try {\n const digests = await client.listDigests();\n if (digests.length) printJson(digests);\n else console.log(chalk.dim(\"No digest history.\"));\n } catch (e) { printError(`Digest error: ${e}`); }\n },\n \"/config\": () => printJson(configForDisplay(cfg)),\n \"/model\": (args: string) => {\n const model = args.trim();\n if (!model) { console.log(`Current model: ${getValue(cfg as unknown as Record<string, unknown>, \"llm.model\")}`); return; }\n setValue(cfg as unknown as Record<string, unknown>, \"llm.model\", model);\n saveConfig(cfg);\n console.log(`Model switched to: ${model}`);\n },\n \"/cost\": () => console.log(`Session tokens used: ${totalTokens.toLocaleString()}`),\n \"/clear\": () => {\n messages.length = 0;\n messages.push({ role: \"system\", content: SYSTEM_PROMPT });\n totalTokens = 0;\n console.log(chalk.dim(\"Conversation cleared.\"));\n },\n \"/help\": () => {\n console.log(`\n${chalk.bold(\"Chat Slash Commands\")}\n /status Show workspace status\n /obligations List obligations\n /digest Show digest history\n /config Show current config (masked keys)\n /model <name> Switch LLM model\n /cost Show token usage\n /clear Clear conversation\n /help Show this help\n /quit Exit chat`);\n },\n };\n\n try {\n while (true) {\n let userInput: string;\n try {\n userInput = (await prompt()).trim();\n } catch {\n console.log(\"\\n\" + chalk.dim(\"Goodbye.\"));\n break;\n }\n\n if (!userInput) continue;\n\n if (userInput.startsWith(\"/\")) {\n const [cmd, ...rest] = userInput.split(/\\s+/);\n const args = rest.join(\" \");\n if (cmd === \"/quit\" || cmd === \"/exit\") {\n console.log(chalk.dim(\"Goodbye.\"));\n break;\n }\n const handler = slashHandlers[cmd.toLowerCase()];\n if (handler) { await handler(args); continue; }\n printError(`Unknown command: ${cmd}. Type /help for available commands.`);\n continue;\n }\n\n messages.push({ role: \"user\", content: userInput });\n\n const llmCfg = cfg.llm;\n while (true) {\n let response: LLMResponse;\n try {\n response = await llmChat(\n messages, TOOL_DEFINITIONS, llmCfg.provider, llmCfg.api_key, llmCfg.model, llmCfg.base_url,\n );\n } catch (err) {\n printError(`LLM error: ${err}`);\n break;\n }\n\n totalTokens += response.usage.total_tokens;\n\n const assistantMsg: Record<string, unknown> = { role: \"assistant\", content: response.content };\n if (response.tool_calls.length > 0) {\n assistantMsg.tool_calls = response.tool_calls.map((tc) => ({\n id: tc.id, type: \"function\",\n function: { name: tc.name, arguments: JSON.stringify(tc.arguments) },\n }));\n if (!response.content) assistantMsg.content = null;\n }\n messages.push(assistantMsg);\n\n if (response.tool_calls.length === 0) {\n if (response.content) console.log(\"\\n\" + response.content + \"\\n\");\n break;\n }\n\n for (const tc of response.tool_calls) {\n console.log(chalk.dim(` ${isWriteTool(tc.name) ? \"\\u2699\" : \"\\u2139\"} ${tc.name}(${JSON.stringify(tc.arguments).slice(0, 80)})`));\n const result = await executeTool(tc.name, tc.arguments, client);\n const short = result.length > 200 ? result.slice(0, 197) + \"...\" : result;\n console.log(chalk.dim(` => ${short}`));\n messages.push({ role: \"tool\", tool_call_id: tc.id, content: result });\n }\n }\n }\n } finally {\n rl.close();\n }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printEntitiesTable, printError, printSuccess, printJson } from \"../output.js\";\nimport { withSpinner } from \"../spinner.js\";\nimport chalk from \"chalk\";\n\nexport async function entitiesCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const entities = await withSpinner(\"Loading\", () => client.listEntities(), opts.json);\n if (opts.json) {\n printJson(entities);\n } else if (entities.length === 0) {\n console.log(\"No entities found.\");\n } else {\n printEntitiesTable(entities);\n }\n } catch (err) {\n printError(`Failed to fetch entities: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function entitiesShowCommand(entityId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const entities = await client.listEntities();\n const entity = entities.find((e) => e.entity_id === entityId);\n if (!entity) {\n printError(`Entity not found: ${entityId}`);\n process.exit(1);\n }\n if (opts.json) {\n printJson(entity);\n } else {\n console.log(chalk.blue(\"─\".repeat(40)));\n console.log(chalk.blue.bold(\" Entity Detail\"));\n console.log(chalk.blue(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"Name:\")} ${entity.name ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Type:\")} ${entity.entity_type ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Jurisdiction:\")} ${entity.jurisdiction ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${entity.status ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"ID:\")} ${entity.entity_id ?? \"N/A\"}`);\n if (entity.formation_date) console.log(` ${chalk.bold(\"Formation Date:\")} ${entity.formation_date}`);\n if (entity.ein) console.log(` ${chalk.bold(\"EIN:\")} ${entity.ein}`);\n console.log(chalk.blue(\"─\".repeat(40)));\n }\n } catch (err) {\n printError(`Failed to fetch entities: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function entitiesConvertCommand(\n entityId: string,\n opts: { to: string; jurisdiction?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: Record<string, string> = { new_entity_type: opts.to };\n if (opts.jurisdiction) data.new_jurisdiction = opts.jurisdiction;\n const result = await client.convertEntity(entityId, data);\n printSuccess(`Entity conversion initiated: ${result.conversion_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to convert entity: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function entitiesDissolveCommand(\n entityId: string,\n opts: { reason: string; effectiveDate?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: Record<string, string> = { reason: opts.reason };\n if (opts.effectiveDate) data.effective_date = opts.effectiveDate;\n const result = await client.dissolveEntity(entityId, data);\n printSuccess(`Dissolution initiated: ${result.dissolution_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to dissolve entity: ${err}`);\n process.exit(1);\n }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printContactsTable, printError, printSuccess, printJson } from \"../output.js\";\nimport chalk from \"chalk\";\nimport type { ApiRecord } from \"../types.js\";\n\nexport async function contactsListCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const contacts = await client.listContacts();\n if (opts.json) printJson(contacts);\n else if (contacts.length === 0) console.log(\"No contacts found.\");\n else printContactsTable(contacts);\n } catch (err) {\n printError(`Failed to fetch contacts: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function contactsShowCommand(contactId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const profile = await client.getContactProfile(contactId);\n if (opts.json) {\n printJson(profile);\n } else {\n const contact = (profile.contact ?? profile) as ApiRecord;\n console.log(chalk.cyan(\"─\".repeat(40)));\n console.log(chalk.cyan.bold(\" Contact Profile\"));\n console.log(chalk.cyan(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"Name:\")} ${contact.name ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Email:\")} ${contact.email ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Category:\")} ${contact.category ?? \"N/A\"}`);\n if (contact.phone) console.log(` ${chalk.bold(\"Phone:\")} ${contact.phone}`);\n if (contact.notes) console.log(` ${chalk.bold(\"Notes:\")} ${contact.notes}`);\n const holdings = profile.equity_holdings as ApiRecord[] | undefined;\n if (holdings?.length) {\n console.log(`\\n ${chalk.bold(\"Equity Holdings:\")}`);\n for (const h of holdings) console.log(` ${h.share_class ?? \"?\"}: ${h.shares ?? \"?\"} shares`);\n }\n const obls = profile.obligations as unknown[];\n if (obls?.length) console.log(`\\n ${chalk.bold(\"Obligations:\")} ${obls.length}`);\n console.log(chalk.cyan(\"─\".repeat(40)));\n }\n } catch (err) {\n printError(`Failed to fetch contact: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function contactsAddCommand(opts: {\n name: string;\n email: string;\n category?: string;\n phone?: string;\n notes?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: ApiRecord = { name: opts.name, email: opts.email };\n if (opts.category) data.category = opts.category;\n if (opts.phone) data.phone = opts.phone;\n if (opts.notes) data.notes = opts.notes;\n const result = await client.createContact(data);\n printSuccess(`Contact created: ${result.contact_id ?? result.id ?? \"OK\"}`);\n } catch (err) {\n printError(`Failed to create contact: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function contactsEditCommand(\n contactId: string,\n opts: { name?: string; email?: string; category?: string; phone?: string; notes?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: ApiRecord = {};\n if (opts.name != null) data.name = opts.name;\n if (opts.email != null) data.email = opts.email;\n if (opts.category != null) data.category = opts.category;\n if (opts.phone != null) data.phone = opts.phone;\n if (opts.notes != null) data.notes = opts.notes;\n if (Object.keys(data).length === 0) {\n console.log(\"No fields to update.\");\n return;\n }\n await client.updateContact(contactId, data);\n printSuccess(\"Contact updated.\");\n } catch (err) {\n printError(`Failed to update contact: ${err}`);\n process.exit(1);\n }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport {\n printCapTable, printSafesTable, printTransfersTable,\n printValuationsTable, printError, printSuccess, printJson,\n} from \"../output.js\";\nimport chalk from \"chalk\";\n\nexport async function capTableCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.getCapTable(eid);\n if (opts.json) { printJson(data); return; }\n if ((data.access_level as string) === \"none\") {\n printError(\"You do not have access to this entity's cap table.\");\n process.exit(1);\n }\n printCapTable(data);\n try {\n const val = await client.getCurrent409a(eid);\n if (val) print409a(val);\n } catch { /* ignore */ }\n } catch (err) {\n printError(`Failed to fetch cap table: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function safesCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const safes = await client.getSafeNotes(eid);\n if (opts.json) printJson(safes);\n else if (safes.length === 0) console.log(\"No SAFE notes found.\");\n else printSafesTable(safes);\n } catch (err) {\n printError(`Failed to fetch SAFE notes: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function transfersCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const transfers = await client.getShareTransfers(eid);\n if (opts.json) printJson(transfers);\n else if (transfers.length === 0) console.log(\"No share transfers found.\");\n else printTransfersTable(transfers);\n } catch (err) {\n printError(`Failed to fetch transfers: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function valuationsCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const valuations = await client.getValuations(eid);\n if (opts.json) printJson(valuations);\n else if (valuations.length === 0) console.log(\"No valuations found.\");\n else printValuationsTable(valuations);\n } catch (err) {\n printError(`Failed to fetch valuations: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function fourOhNineACommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.getCurrent409a(eid);\n if (opts.json) printJson(data);\n else if (!data || Object.keys(data).length === 0) console.log(\"No 409A valuation found.\");\n else print409a(data);\n } catch (err) {\n printError(`Failed to fetch 409A valuation: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function issueEquityCommand(opts: {\n entityId?: string;\n grantType: string;\n shares: number;\n recipient: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.issueEquity({\n entity_id: eid, grant_type: opts.grantType, shares: opts.shares, recipient_name: opts.recipient,\n });\n printSuccess(`Equity issued: ${result.grant_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to issue equity: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function issueSafeCommand(opts: {\n entityId?: string;\n investor: string;\n amount: number;\n safeType: string;\n valuationCap: number;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.issueSafe({\n entity_id: eid, investor_name: opts.investor, principal_amount_cents: opts.amount,\n safe_type: opts.safeType, valuation_cap_cents: opts.valuationCap,\n });\n printSuccess(`SAFE issued: ${result.safe_note_id ?? result.safe_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to issue SAFE: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function transferSharesCommand(opts: {\n entityId?: string;\n fromGrant: string;\n to: string;\n shares: number;\n type: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.transferShares({\n entity_id: eid, from_holder: opts.fromGrant, to_holder: opts.to,\n shares: opts.shares, transfer_type: opts.type,\n });\n printSuccess(`Transfer complete: ${result.transfer_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to transfer shares: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function distributeCommand(opts: {\n entityId?: string;\n amount: number;\n type: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.calculateDistribution({\n entity_id: eid, total_amount_cents: opts.amount, distribution_type: opts.type,\n });\n printSuccess(`Distribution calculated: ${result.distribution_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to calculate distribution: ${err}`);\n process.exit(1);\n }\n}\n\nfunction print409a(data: Record<string, unknown>): void {\n console.log(chalk.green(\"─\".repeat(40)));\n console.log(chalk.green.bold(\" 409A Valuation\"));\n console.log(chalk.green(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"FMV/Share:\")} $${data.fmv_per_share ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Enterprise Value:\")} $${data.enterprise_value ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Valuation Date:\")} ${data.valuation_date ?? \"N/A\"}`);\n if (data.provider) console.log(` ${chalk.bold(\"Provider:\")} ${data.provider}`);\n console.log(chalk.green(\"─\".repeat(40)));\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function financeInvoiceCommand(opts: {\n entityId?: string; customer: string; amount: number; dueDate: string; description: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.createInvoice({\n entity_id: eid, customer_name: opts.customer, amount_cents: opts.amount,\n due_date: opts.dueDate, description: opts.description,\n });\n printSuccess(`Invoice created: ${result.invoice_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to create invoice: ${err}`); process.exit(1); }\n}\n\nexport async function financePayrollCommand(opts: {\n entityId?: string; periodStart: string; periodEnd: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.runPayroll({\n entity_id: eid, pay_period_start: opts.periodStart, pay_period_end: opts.periodEnd,\n });\n printSuccess(`Payroll run created: ${result.payroll_run_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to run payroll: ${err}`); process.exit(1); }\n}\n\nexport async function financePayCommand(opts: {\n entityId?: string; amount: number; recipient: string; method: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.submitPayment({\n entity_id: eid, amount_cents: opts.amount, recipient: opts.recipient,\n description: `Payment via ${opts.method}`,\n });\n printSuccess(`Payment submitted: ${result.payment_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to submit payment: ${err}`); process.exit(1); }\n}\n\nexport async function financeOpenAccountCommand(opts: {\n entityId?: string; institution: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.openBankAccount({ entity_id: eid, institution_name: opts.institution });\n printSuccess(`Bank account opened: ${result.account_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to open bank account: ${err}`); process.exit(1); }\n}\n\nexport async function financeClassifyContractorCommand(opts: {\n entityId?: string; name: string; state: string; hours: number;\n exclusive: boolean; duration: number; providesTools: boolean;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.classifyContractor({\n entity_id: eid, contractor_name: opts.name, state: opts.state, hours_per_week: opts.hours,\n exclusive_client: opts.exclusive, duration_months: opts.duration, provides_tools: opts.providesTools,\n });\n printSuccess(`Classification: ${result.risk_level ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to classify contractor: ${err}`); process.exit(1); }\n}\n\nexport async function financeReconcileCommand(opts: {\n entityId?: string; startDate: string; endDate: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.reconcileLedger({\n entity_id: eid, start_date: opts.startDate, end_date: opts.endDate,\n });\n printSuccess(`Ledger reconciled: ${result.reconciliation_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to reconcile ledger: ${err}`); process.exit(1); }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport {\n printGovernanceTable, printSeatsTable, printMeetingsTable,\n printResolutionsTable, printError, printSuccess, printJson,\n} from \"../output.js\";\n\nexport async function governanceListCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const bodies = await client.listGovernanceBodies(eid);\n if (opts.json) printJson(bodies);\n else if (bodies.length === 0) console.log(\"No governance bodies found.\");\n else printGovernanceTable(bodies);\n } catch (err) { printError(`Failed to fetch governance bodies: ${err}`); process.exit(1); }\n}\n\nexport async function governanceSeatsCommand(bodyId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const seats = await client.getGovernanceSeats(bodyId);\n if (opts.json) printJson(seats);\n else if (seats.length === 0) console.log(\"No seats found.\");\n else printSeatsTable(seats);\n } catch (err) { printError(`Failed to fetch seats: ${err}`); process.exit(1); }\n}\n\nexport async function governanceMeetingsCommand(bodyId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const meetings = await client.listMeetings(bodyId);\n if (opts.json) printJson(meetings);\n else if (meetings.length === 0) console.log(\"No meetings found.\");\n else printMeetingsTable(meetings);\n } catch (err) { printError(`Failed to fetch meetings: ${err}`); process.exit(1); }\n}\n\nexport async function governanceResolutionsCommand(meetingId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const resolutions = await client.getMeetingResolutions(meetingId);\n if (opts.json) printJson(resolutions);\n else if (resolutions.length === 0) console.log(\"No resolutions found.\");\n else printResolutionsTable(resolutions);\n } catch (err) { printError(`Failed to fetch resolutions: ${err}`); process.exit(1); }\n}\n\nexport async function governanceConveneCommand(opts: {\n entityId?: string; body: string; meetingType: string; title: string; date: string; agenda: string[];\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.scheduleMeeting({\n entity_id: eid, body_id: opts.body, meeting_type: opts.meetingType,\n title: opts.title, scheduled_date: opts.date,\n agenda_item_titles: opts.agenda,\n });\n printSuccess(`Meeting scheduled: ${result.meeting_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to schedule meeting: ${err}`); process.exit(1); }\n}\n\nexport async function governanceVoteCommand(\n meetingId: string,\n itemId: string,\n opts: { voter: string; vote: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, undefined);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.castVote(eid, meetingId, itemId, {\n voter_id: opts.voter, vote_value: opts.vote,\n });\n printSuccess(`Vote cast: ${result.vote_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to cast vote: ${err}`); process.exit(1); }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printDocumentsTable, printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function documentsListCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const docs = await client.getEntityDocuments(eid);\n if (opts.json) printJson(docs);\n else if (docs.length === 0) console.log(\"No documents found.\");\n else printDocumentsTable(docs);\n } catch (err) { printError(`Failed to fetch documents: ${err}`); process.exit(1); }\n}\n\nexport async function documentsSigningLinkCommand(docId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = client.getSigningLink(docId);\n printSuccess(`Signing link: ${result.signing_url}`);\n console.log(\"Open this link in your browser to sign the document.\");\n } catch (err) { printError(`Failed to get signing link: ${err}`); process.exit(1); }\n}\n\nexport async function documentsGenerateCommand(opts: {\n entityId?: string; template: string; counterparty: string; effectiveDate?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.generateContract({\n entity_id: eid, template_type: opts.template,\n parameters: { counterparty_name: opts.counterparty, effective_date: opts.effectiveDate ?? \"\" },\n });\n printSuccess(`Contract generated: ${result.contract_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to generate contract: ${err}`); process.exit(1); }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function taxFileCommand(opts: { entityId?: string; type: string; year: number }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.fileTaxDocument({ entity_id: eid, document_type: opts.type, tax_year: opts.year });\n printSuccess(`Tax document filed: ${result.filing_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to file tax document: ${err}`); process.exit(1); }\n}\n\nexport async function taxDeadlineCommand(opts: {\n entityId?: string; type: string; dueDate: string; description: string; recurrence?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.trackDeadline({\n entity_id: eid, deadline_type: opts.type, due_date: opts.dueDate,\n description: opts.description, recurrence: opts.recurrence ?? \"\",\n });\n printSuccess(`Deadline tracked: ${result.deadline_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to track deadline: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printAgentsTable, printError, printSuccess, printJson } from \"../output.js\";\nimport chalk from \"chalk\";\nimport Table from \"cli-table3\";\nimport type { ApiRecord } from \"../types.js\";\n\nexport async function agentsListCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const agents = await client.listAgents();\n if (opts.json) printJson(agents);\n else if (agents.length === 0) console.log(\"No agents found.\");\n else printAgentsTable(agents);\n } catch (err) { printError(`Failed to fetch agents: ${err}`); process.exit(1); }\n}\n\nexport async function agentsShowCommand(agentId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const agent = await client.getAgent(agentId);\n let usage: ApiRecord = {};\n try { usage = await client.getAgentUsage(agentId); } catch { /* ignore */ }\n if (opts.json) { printJson({ agent, usage }); return; }\n console.log(chalk.magenta(\"─\".repeat(40)));\n console.log(chalk.magenta.bold(\" Agent Detail\"));\n console.log(chalk.magenta(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"Name:\")} ${agent.name ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${agent.status ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Model:\")} ${agent.model ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"ID:\")} ${agent.agent_id ?? \"N/A\"}`);\n if (agent.system_prompt) {\n let prompt = String(agent.system_prompt);\n if (prompt.length > 100) prompt = prompt.slice(0, 97) + \"...\";\n console.log(` ${chalk.bold(\"Prompt:\")} ${prompt}`);\n }\n if (Object.keys(usage).length > 0) {\n console.log(`\\n ${chalk.bold(\"Usage:\")}`);\n for (const [k, v] of Object.entries(usage)) {\n if (k !== \"agent_id\") console.log(` ${k}: ${v}`);\n }\n }\n console.log(chalk.magenta(\"─\".repeat(40)));\n } catch (err) { printError(`Failed to fetch agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsCreateCommand(opts: { name: string; prompt: string; model?: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: ApiRecord = { name: opts.name, system_prompt: opts.prompt };\n if (opts.model) data.model = opts.model;\n const result = await client.createAgent(data);\n printSuccess(`Agent created: ${result.agent_id ?? result.id ?? \"OK\"}`);\n } catch (err) { printError(`Failed to create agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsPauseCommand(agentId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.updateAgent(agentId, { status: \"paused\" });\n printSuccess(`Agent ${agentId} paused.`);\n } catch (err) { printError(`Failed to pause agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsResumeCommand(agentId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.updateAgent(agentId, { status: \"active\" });\n printSuccess(`Agent ${agentId} resumed.`);\n } catch (err) { printError(`Failed to resume agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsDeleteCommand(agentId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.deleteAgent(agentId);\n printSuccess(`Agent ${agentId} deleted.`);\n } catch (err) { printError(`Failed to delete agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsMessageCommand(agentId: string, opts: { body: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.sendAgentMessage(agentId, opts.body);\n printSuccess(`Message sent. Execution: ${result.execution_id ?? \"OK\"}`);\n } catch (err) { printError(`Failed to send message: ${err}`); process.exit(1); }\n}\n\nexport async function agentsExecutionsCommand(agentId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const executions = await client.listAgentExecutions(agentId);\n if (opts.json) { printJson(executions); return; }\n if (executions.length === 0) { console.log(\"No executions found.\"); return; }\n console.log(`\\n${chalk.bold(\"Agent Executions\")}`);\n const table = new Table({ head: [chalk.dim(\"ID\"), chalk.dim(\"Status\"), chalk.dim(\"Started\"), chalk.dim(\"Duration\")] });\n for (const ex of executions) {\n table.push([\n String(ex.execution_id ?? \"\").slice(0, 12),\n String(ex.status ?? \"\"),\n String(ex.started_at ?? \"\"),\n String(ex.duration ?? \"\"),\n ]);\n }\n console.log(table.toString());\n } catch (err) { printError(`Failed to fetch executions: ${err}`); process.exit(1); }\n}\n\nexport async function agentsSkillCommand(agentId: string, opts: {\n name: string; description: string; instructions?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.addAgentSkill(agentId, {\n skill_name: opts.name, description: opts.description, instructions: opts.instructions ?? \"\",\n });\n printSuccess(`Skill '${opts.name}' added to agent ${agentId}.`);\n printJson(result);\n } catch (err) { printError(`Failed to add skill: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printBillingPanel, printError, printSuccess, printJson } from \"../output.js\";\nimport { execSync } from \"node:child_process\";\n\nfunction makeClient() {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n return new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n}\n\nfunction openUrl(url: string) {\n try {\n const cmd = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n execSync(`${cmd} ${JSON.stringify(url)}`, { stdio: \"ignore\" });\n } catch { /* browser open is best-effort */ }\n}\n\nexport async function billingCommand(opts: { json?: boolean }): Promise<void> {\n const client = makeClient();\n try {\n const [status, plans] = await Promise.all([client.getBillingStatus(), client.getBillingPlans()]);\n if (opts.json) printJson({ status, plans });\n else printBillingPanel(status, plans);\n } catch (err) { printError(`Failed to fetch billing info: ${err}`); process.exit(1); }\n}\n\nexport async function billingPortalCommand(): Promise<void> {\n const client = makeClient();\n try {\n const result = await client.createBillingPortal();\n const url = result.portal_url as string;\n if (!url) { printError(\"No portal URL returned. Ensure you have an active subscription.\"); process.exit(1); }\n console.log(`Opening Stripe Customer Portal...\\n${url}`);\n openUrl(url);\n printSuccess(\"Portal opened in your browser.\");\n } catch (err) { printError(`Failed to create portal session: ${err}`); process.exit(1); }\n}\n\nexport async function billingUpgradeCommand(opts: { tier: string }): Promise<void> {\n const client = makeClient();\n try {\n const result = await client.createBillingCheckout(opts.tier);\n const url = result.checkout_url as string;\n if (!url) { printError(\"No checkout URL returned.\"); process.exit(1); }\n console.log(`Opening Stripe Checkout for ${opts.tier}...\\n${url}`);\n openUrl(url);\n printSuccess(\"Checkout opened in your browser.\");\n } catch (err) { printError(`Failed to create checkout session: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printApprovalsTable, printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function approvalsListCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const approvals = await client.listPendingApprovals();\n if (opts.json) printJson(approvals);\n else if (approvals.length === 0) console.log(\"No pending approvals.\");\n else printApprovalsTable(approvals);\n } catch (err) { printError(`Failed to fetch approvals: ${err}`); process.exit(1); }\n}\n\nexport async function approvalsRespondCommand(\n approvalId: string,\n decision: string,\n opts: { message?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.respondApproval(approvalId, decision, opts.message);\n printSuccess(`Approval ${approvalId} ${decision}d.`);\n } catch (err) { printError(`Failed to respond to approval: ${err}`); process.exit(1); }\n}\n","import { input, select } from \"@inquirer/prompts\";\nimport { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess } from \"../output.js\";\nimport type { ApiRecord } from \"../types.js\";\n\nexport async function formCommand(opts: {\n type?: string; name?: string; jurisdiction?: string; member?: string[];\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n let serverCfg: ApiRecord = {};\n try { serverCfg = await client.getConfig(); } catch { /* ignore */ }\n\n let entityType = opts.type;\n if (!entityType) {\n const types = (serverCfg.entity_types ?? [\"llc\", \"c_corp\", \"s_corp\"]) as string[];\n entityType = await select({ message: \"Entity type\", choices: types.map((t) => ({ value: t, name: t })) });\n }\n\n let name = opts.name;\n if (!name) {\n name = await input({ message: \"Entity name\" });\n }\n\n let jurisdiction = opts.jurisdiction;\n if (!jurisdiction) {\n const jurisdictions = (serverCfg.jurisdictions ?? [\"DE\", \"WY\", \"NV\", \"CA\"]) as string[];\n jurisdiction = await select({\n message: \"Jurisdiction\",\n choices: jurisdictions.map((j) => ({ value: j, name: j })),\n default: \"DE\",\n });\n }\n\n const parsedMembers: ApiRecord[] = [];\n if (opts.member && opts.member.length > 0) {\n for (const m of opts.member) {\n const parts = m.split(\",\").map((p) => p.trim());\n if (parts.length < 3) {\n printError(`Invalid member format: ${m}. Expected: name,email,role[,ownership_pct]`);\n process.exit(1);\n }\n const member: ApiRecord = { name: parts[0], email: parts[1], role: parts[2] };\n if (parts.length >= 4) member.ownership_pct = parseFloat(parts[3]);\n parsedMembers.push(member);\n }\n } else {\n console.log(\"Add members (leave name blank to finish):\");\n while (true) {\n const mname = await input({ message: \" Member name (blank to finish)\", default: \"\" });\n if (!mname) break;\n const memail = await input({ message: \" Email\" });\n const mrole = await input({ message: \" Role\", default: \"founder\" });\n const mpctStr = await input({ message: \" Ownership %\", default: \"0\" });\n parsedMembers.push({\n name: mname, email: memail, role: mrole, ownership_pct: parseFloat(mpctStr),\n });\n }\n }\n\n for (const m of parsedMembers) {\n if (!m.investor_type) m.investor_type = \"natural_person\";\n }\n\n const result = await client.createFormation({\n entity_type: entityType, legal_name: name, jurisdiction, members: parsedMembers,\n });\n printSuccess(`Formation created: ${result.formation_id ?? result.id ?? \"OK\"}`);\n if (result.entity_id) console.log(`Entity ID: ${result.entity_id}`);\n } catch (err) {\n if (err instanceof Error && err.message.includes(\"exit\")) throw err;\n printError(`Failed to create formation: ${err}`);\n process.exit(1);\n }\n}\n","import { requireConfig, maskKey } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printJson } from \"../output.js\";\nimport chalk from \"chalk\";\nimport Table from \"cli-table3\";\n\nexport async function apiKeysCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const keys = await client.listApiKeys();\n if (opts.json) { printJson(keys); return; }\n if (keys.length === 0) { console.log(\"No API keys found.\"); return; }\n console.log(`\\n${chalk.bold(\"API Keys\")}`);\n const table = new Table({\n head: [chalk.dim(\"ID\"), chalk.dim(\"Name\"), chalk.dim(\"Key\"), chalk.dim(\"Created\"), chalk.dim(\"Last Used\")],\n });\n for (const k of keys) {\n table.push([\n String(k.id ?? k.api_key_id ?? \"\").slice(0, 12),\n String(k.name ?? \"\"),\n maskKey(String(k.key ?? k.api_key ?? \"\")),\n String(k.created_at ?? \"\"),\n String(k.last_used_at ?? \"\"),\n ]);\n }\n console.log(table.toString());\n } catch (err) { printError(`Failed to fetch API keys: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\nimport { withSpinner } from \"../spinner.js\";\n\nexport async function demoCommand(opts: { name: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await withSpinner(\"Loading\", () => client.seedDemo(opts.name));\n printSuccess(`Demo seeded: ${result.entity_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to seed demo: ${err}`); process.exit(1); }\n}\n","import type { ChildProcess } from \"node:child_process\";\n\ninterface ServeOptions {\n port: string;\n dataDir: string;\n}\n\nexport async function serveCommand(opts: ServeOptions): Promise<void> {\n let server: { getBinaryPath: () => string | null; isAvailable: () => boolean; startServer: (options: Record<string, unknown>) => ChildProcess };\n try {\n server = await import(\"@thecorporation/server\");\n } catch {\n console.error(\n \"Error: @thecorporation/server is not installed.\\n\\n\" +\n \"Install it with:\\n\" +\n \" npm install @thecorporation/server\\n\\n\" +\n \"Or run the Rust binary directly:\\n\" +\n \" cd services/api-rs && cargo run\"\n );\n process.exit(1);\n }\n\n if (!server.isAvailable()) {\n console.error(\n \"Error: No server binary available for this platform.\\n\\n\" +\n \"Pre-built binaries are available for:\\n\" +\n \" - linux-x64, linux-arm64\\n\" +\n \" - darwin-x64, darwin-arm64\\n\" +\n \" - win32-x64\\n\\n\" +\n \"You can build from source:\\n\" +\n \" cd services/api-rs && cargo build --release\"\n );\n process.exit(1);\n }\n\n const port = parseInt(opts.port, 10);\n if (isNaN(port) || port < 1 || port > 65535) {\n console.error(`Error: Invalid port \"${opts.port}\"`);\n process.exit(1);\n }\n\n console.log(`Starting server on port ${port}...`);\n console.log(`Data directory: ${opts.dataDir}`);\n\n const child = server.startServer({\n port,\n dataDir: opts.dataDir,\n });\n\n const shutdown = () => {\n console.log(\"\\nShutting down server...\");\n child.kill(\"SIGTERM\");\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n child.on(\"exit\", (code) => {\n process.exit(code ?? 0);\n });\n}\n","import { Command } from \"commander\";\n\nconst program = new Command();\nprogram\n .name(\"corp\")\n .description(\"corp — Corporate governance from the terminal\")\n .version(\"0.1.0\");\n\n// --- setup ---\nprogram\n .command(\"setup\")\n .description(\"Interactive setup wizard\")\n .action(async () => {\n const { setupCommand } = await import(\"./commands/setup.js\");\n await setupCommand();\n });\n\n// --- status ---\nprogram\n .command(\"status\")\n .description(\"Workspace summary\")\n .action(async () => {\n const { statusCommand } = await import(\"./commands/status.js\");\n await statusCommand();\n });\n\n// --- config ---\nconst configCmd = program.command(\"config\").description(\"Manage configuration\");\nconfigCmd\n .command(\"set <key> <value>\")\n .description(\"Set a config value (dot-path)\")\n .action(async (key: string, value: string) => {\n const { configSetCommand } = await import(\"./commands/config.js\");\n configSetCommand(key, value);\n });\nconfigCmd\n .command(\"get <key>\")\n .description(\"Get a config value (dot-path)\")\n .action(async (key: string) => {\n const { configGetCommand } = await import(\"./commands/config.js\");\n configGetCommand(key);\n });\nconfigCmd\n .command(\"list\")\n .description(\"List all config (API keys masked)\")\n .action(async () => {\n const { configListCommand } = await import(\"./commands/config.js\");\n configListCommand();\n });\n\n// --- obligations ---\nprogram\n .command(\"obligations\")\n .description(\"List obligations with urgency tiers\")\n .option(\"--tier <tier>\", \"Filter by urgency tier\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { obligationsCommand } = await import(\"./commands/obligations.js\");\n await obligationsCommand(opts);\n });\n\n// --- digest ---\nprogram\n .command(\"digest\")\n .description(\"View or trigger daily digests\")\n .option(\"--trigger\", \"Trigger digest now\")\n .option(\"--key <key>\", \"Get specific digest by key\")\n .action(async (opts) => {\n const { digestCommand } = await import(\"./commands/digest.js\");\n await digestCommand(opts);\n });\n\n// --- link ---\nprogram\n .command(\"link\")\n .description(\"Generate a claim code to pair another device\")\n .action(async () => {\n const { linkCommand } = await import(\"./commands/link.js\");\n await linkCommand();\n });\n\n// --- claim ---\nprogram\n .command(\"claim <code>\")\n .description(\"Redeem a claim code to join a workspace\")\n .action(async (code: string) => {\n const { claimCommand } = await import(\"./commands/claim.js\");\n await claimCommand(code);\n });\n\n// --- chat ---\nprogram\n .command(\"chat\")\n .description(\"Interactive LLM chat session\")\n .action(async () => {\n const { chatCommand } = await import(\"./chat.js\");\n await chatCommand();\n });\n\n// --- entities ---\nconst entitiesCmd = program\n .command(\"entities\")\n .description(\"List entities, show detail, convert, or dissolve\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { entitiesCommand } = await import(\"./commands/entities.js\");\n await entitiesCommand(opts);\n });\nentitiesCmd\n .command(\"show <entity-id>\")\n .option(\"--json\", \"Output as JSON\")\n .description(\"Show entity detail\")\n .action(async (entityId: string, opts) => {\n const { entitiesShowCommand } = await import(\"./commands/entities.js\");\n await entitiesShowCommand(entityId, opts);\n });\nentitiesCmd\n .command(\"convert <entity-id>\")\n .requiredOption(\"--to <type>\", \"Target entity type (llc, corporation)\")\n .option(\"--jurisdiction <jurisdiction>\", \"New jurisdiction\")\n .description(\"Convert entity to a different type\")\n .action(async (entityId: string, opts) => {\n const { entitiesConvertCommand } = await import(\"./commands/entities.js\");\n await entitiesConvertCommand(entityId, opts);\n });\nentitiesCmd\n .command(\"dissolve <entity-id>\")\n .requiredOption(\"--reason <reason>\", \"Dissolution reason\")\n .option(\"--effective-date <date>\", \"Effective date (ISO 8601)\")\n .description(\"Dissolve an entity\")\n .action(async (entityId: string, opts) => {\n const { entitiesDissolveCommand } = await import(\"./commands/entities.js\");\n await entitiesDissolveCommand(entityId, opts);\n });\n\n// --- contacts ---\nconst contactsCmd = program\n .command(\"contacts\")\n .description(\"Contact management\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { contactsListCommand } = await import(\"./commands/contacts.js\");\n await contactsListCommand(opts);\n });\ncontactsCmd\n .command(\"show <contact-id>\")\n .option(\"--json\", \"Output as JSON\")\n .description(\"Show contact detail/profile\")\n .action(async (contactId: string, opts) => {\n const { contactsShowCommand } = await import(\"./commands/contacts.js\");\n await contactsShowCommand(contactId, opts);\n });\ncontactsCmd\n .command(\"add\")\n .requiredOption(\"--name <name>\", \"Contact name\")\n .requiredOption(\"--email <email>\", \"Contact email\")\n .option(\"--category <category>\", \"Contact category\")\n .option(\"--phone <phone>\", \"Phone number\")\n .option(\"--notes <notes>\", \"Notes\")\n .description(\"Add a new contact\")\n .action(async (opts) => {\n const { contactsAddCommand } = await import(\"./commands/contacts.js\");\n await contactsAddCommand(opts);\n });\ncontactsCmd\n .command(\"edit <contact-id>\")\n .option(\"--name <name>\", \"Contact name\")\n .option(\"--email <email>\", \"Contact email\")\n .option(\"--category <category>\", \"Contact category\")\n .option(\"--phone <phone>\", \"Phone number\")\n .option(\"--notes <notes>\", \"Notes\")\n .description(\"Edit an existing contact\")\n .action(async (contactId: string, opts) => {\n const { contactsEditCommand } = await import(\"./commands/contacts.js\");\n await contactsEditCommand(contactId, opts);\n });\n\n// --- cap-table ---\nconst capTableCmd = program\n .command(\"cap-table\")\n .description(\"Cap table, SAFEs, transfers, valuations\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { capTableCommand } = await import(\"./commands/cap-table.js\");\n await capTableCommand(opts);\n });\ncapTableCmd.command(\"safes\").description(\"SAFE notes\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { safesCommand } = await import(\"./commands/cap-table.js\");\n await safesCommand(parent);\n});\ncapTableCmd.command(\"transfers\").description(\"Share transfers\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { transfersCommand } = await import(\"./commands/cap-table.js\");\n await transfersCommand(parent);\n});\ncapTableCmd.command(\"valuations\").description(\"Valuations history\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { valuationsCommand } = await import(\"./commands/cap-table.js\");\n await valuationsCommand(parent);\n});\ncapTableCmd.command(\"409a\").description(\"Current 409A valuation\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { fourOhNineACommand } = await import(\"./commands/cap-table.js\");\n await fourOhNineACommand(parent);\n});\ncapTableCmd\n .command(\"issue-equity\")\n .requiredOption(\"--grant-type <type>\", \"Grant type\")\n .requiredOption(\"--shares <n>\", \"Number of shares\", parseInt)\n .requiredOption(\"--recipient <name>\", \"Recipient name\")\n .description(\"Issue an equity grant\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { issueEquityCommand } = await import(\"./commands/cap-table.js\");\n await issueEquityCommand({ ...opts, entityId: parent.entityId });\n });\ncapTableCmd\n .command(\"issue-safe\")\n .requiredOption(\"--investor <name>\", \"Investor name\")\n .requiredOption(\"--amount <n>\", \"Principal amount in cents\", parseInt)\n .option(\"--safe-type <type>\", \"SAFE type\", \"post_money\")\n .requiredOption(\"--valuation-cap <n>\", \"Valuation cap in cents\", parseInt)\n .description(\"Issue a SAFE note\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { issueSafeCommand } = await import(\"./commands/cap-table.js\");\n await issueSafeCommand({ ...opts, entityId: parent.entityId });\n });\ncapTableCmd\n .command(\"transfer\")\n .requiredOption(\"--from-grant <id>\", \"Source grant ID\")\n .requiredOption(\"--to <name>\", \"Recipient name\")\n .requiredOption(\"--shares <n>\", \"Number of shares\", parseInt)\n .option(\"--type <type>\", \"Transfer type\", \"sale\")\n .description(\"Transfer shares\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { transferSharesCommand } = await import(\"./commands/cap-table.js\");\n await transferSharesCommand({ ...opts, entityId: parent.entityId });\n });\ncapTableCmd\n .command(\"distribute\")\n .requiredOption(\"--amount <n>\", \"Total distribution amount in cents\", parseInt)\n .option(\"--type <type>\", \"Distribution type\", \"pro_rata\")\n .description(\"Calculate a distribution\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { distributeCommand } = await import(\"./commands/cap-table.js\");\n await distributeCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- finance ---\nconst financeCmd = program\n .command(\"finance\")\n .description(\"Invoicing, payroll, payments, banking\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\");\nfinanceCmd\n .command(\"invoice\")\n .requiredOption(\"--customer <name>\", \"Customer name\")\n .requiredOption(\"--amount <n>\", \"Amount in cents\", parseInt)\n .requiredOption(\"--due-date <date>\", \"Due date (ISO 8601)\")\n .option(\"--description <desc>\", \"Description\", \"Services rendered\")\n .description(\"Create an invoice\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeInvoiceCommand } = await import(\"./commands/finance.js\");\n await financeInvoiceCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"payroll\")\n .requiredOption(\"--period-start <date>\", \"Pay period start\")\n .requiredOption(\"--period-end <date>\", \"Pay period end\")\n .description(\"Run payroll\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financePayrollCommand } = await import(\"./commands/finance.js\");\n await financePayrollCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"pay\")\n .requiredOption(\"--amount <n>\", \"Amount in cents\", parseInt)\n .requiredOption(\"--recipient <name>\", \"Recipient name\")\n .option(\"--method <method>\", \"Payment method\", \"ach\")\n .description(\"Submit a payment\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financePayCommand } = await import(\"./commands/finance.js\");\n await financePayCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"open-account\")\n .option(\"--institution <name>\", \"Banking institution\", \"Mercury\")\n .description(\"Open a business bank account\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeOpenAccountCommand } = await import(\"./commands/finance.js\");\n await financeOpenAccountCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"classify-contractor\")\n .requiredOption(\"--name <name>\", \"Contractor name\")\n .requiredOption(\"--state <code>\", \"US state code\")\n .requiredOption(\"--hours <n>\", \"Hours per week\", parseInt)\n .option(\"--exclusive\", \"Exclusive client\", false)\n .requiredOption(\"--duration <n>\", \"Duration in months\", parseInt)\n .option(\"--provides-tools\", \"Company provides tools\", false)\n .description(\"Analyze contractor classification risk\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeClassifyContractorCommand } = await import(\"./commands/finance.js\");\n await financeClassifyContractorCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"reconcile\")\n .requiredOption(\"--start-date <date>\", \"Period start\")\n .requiredOption(\"--end-date <date>\", \"Period end\")\n .description(\"Reconcile ledger\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeReconcileCommand } = await import(\"./commands/finance.js\");\n await financeReconcileCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- governance ---\nconst governanceCmd = program\n .command(\"governance\")\n .description(\"Governance bodies, seats, meetings, resolutions\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { governanceListCommand } = await import(\"./commands/governance.js\");\n await governanceListCommand(opts);\n });\ngovernanceCmd\n .command(\"seats <body-id>\")\n .description(\"Seats for a governance body\")\n .action(async (bodyId: string, _opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceSeatsCommand } = await import(\"./commands/governance.js\");\n await governanceSeatsCommand(bodyId, parent);\n });\ngovernanceCmd\n .command(\"meetings <body-id>\")\n .description(\"Meetings for a governance body\")\n .action(async (bodyId: string, _opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceMeetingsCommand } = await import(\"./commands/governance.js\");\n await governanceMeetingsCommand(bodyId, parent);\n });\ngovernanceCmd\n .command(\"resolutions <meeting-id>\")\n .description(\"Resolutions for a meeting\")\n .action(async (meetingId: string, _opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceResolutionsCommand } = await import(\"./commands/governance.js\");\n await governanceResolutionsCommand(meetingId, parent);\n });\ngovernanceCmd\n .command(\"convene\")\n .requiredOption(\"--body <id>\", \"Governance body ID\")\n .requiredOption(\"--type <type>\", \"Meeting type\")\n .requiredOption(\"--title <title>\", \"Meeting title\")\n .requiredOption(\"--date <date>\", \"Meeting date (ISO 8601)\")\n .option(\"--agenda <item>\", \"Agenda item (repeatable)\", (v: string, a: string[]) => [...a, v], [] as string[])\n .description(\"Convene a governance meeting\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceConveneCommand } = await import(\"./commands/governance.js\");\n await governanceConveneCommand({ ...opts, meetingType: opts.type, entityId: parent.entityId });\n });\ngovernanceCmd\n .command(\"vote <meeting-id> <item-id>\")\n .requiredOption(\"--voter <name>\", \"Voter name/ID\")\n .requiredOption(\"--vote <value>\", \"Vote (yea, nay, abstain)\")\n .description(\"Cast a vote on an agenda item\")\n .action(async (meetingId: string, itemId: string, opts) => {\n const { governanceVoteCommand } = await import(\"./commands/governance.js\");\n await governanceVoteCommand(meetingId, itemId, opts);\n });\n\n// --- documents ---\nconst documentsCmd = program\n .command(\"documents\")\n .description(\"Documents and signing\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { documentsListCommand } = await import(\"./commands/documents.js\");\n await documentsListCommand(opts);\n });\ndocumentsCmd\n .command(\"signing-link <doc-id>\")\n .description(\"Get a signing link for a document\")\n .action(async (docId: string) => {\n const { documentsSigningLinkCommand } = await import(\"./commands/documents.js\");\n await documentsSigningLinkCommand(docId);\n });\ndocumentsCmd\n .command(\"generate\")\n .requiredOption(\"--template <type>\", \"Template type\")\n .requiredOption(\"--counterparty <name>\", \"Counterparty name\")\n .option(\"--effective-date <date>\", \"Effective date (ISO 8601)\")\n .description(\"Generate a contract from a template\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { documentsGenerateCommand } = await import(\"./commands/documents.js\");\n await documentsGenerateCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- tax ---\nconst taxCmd = program\n .command(\"tax\")\n .description(\"Tax filings and deadline tracking\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\");\ntaxCmd\n .command(\"file\")\n .requiredOption(\"--type <type>\", \"Document type\")\n .requiredOption(\"--year <year>\", \"Tax year\", parseInt)\n .description(\"File a tax document\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { taxFileCommand } = await import(\"./commands/tax.js\");\n await taxFileCommand({ ...opts, entityId: parent.entityId });\n });\ntaxCmd\n .command(\"deadline\")\n .requiredOption(\"--type <type>\", \"Deadline type\")\n .requiredOption(\"--due-date <date>\", \"Due date (ISO 8601)\")\n .requiredOption(\"--description <desc>\", \"Description\")\n .option(\"--recurrence <recurrence>\", \"Recurrence\")\n .description(\"Track a compliance deadline\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { taxDeadlineCommand } = await import(\"./commands/tax.js\");\n await taxDeadlineCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- agents ---\nconst agentsCmd = program\n .command(\"agents\")\n .description(\"Agent management\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { agentsListCommand } = await import(\"./commands/agents.js\");\n await agentsListCommand(opts);\n });\nagentsCmd.command(\"show <agent-id>\").option(\"--json\", \"Output as JSON\").description(\"Show agent detail\")\n .action(async (agentId: string, opts) => {\n const { agentsShowCommand } = await import(\"./commands/agents.js\");\n await agentsShowCommand(agentId, opts);\n });\nagentsCmd.command(\"create\").requiredOption(\"--name <name>\", \"Agent name\")\n .requiredOption(\"--prompt <prompt>\", \"System prompt\").option(\"--model <model>\", \"Model\")\n .description(\"Create a new agent\")\n .action(async (opts) => {\n const { agentsCreateCommand } = await import(\"./commands/agents.js\");\n await agentsCreateCommand(opts);\n });\nagentsCmd.command(\"pause <agent-id>\").description(\"Pause an agent\")\n .action(async (agentId: string) => {\n const { agentsPauseCommand } = await import(\"./commands/agents.js\");\n await agentsPauseCommand(agentId);\n });\nagentsCmd.command(\"resume <agent-id>\").description(\"Resume a paused agent\")\n .action(async (agentId: string) => {\n const { agentsResumeCommand } = await import(\"./commands/agents.js\");\n await agentsResumeCommand(agentId);\n });\nagentsCmd.command(\"delete <agent-id>\").description(\"Delete an agent\")\n .action(async (agentId: string) => {\n const { agentsDeleteCommand } = await import(\"./commands/agents.js\");\n await agentsDeleteCommand(agentId);\n });\nagentsCmd.command(\"message <agent-id>\").requiredOption(\"--body <text>\", \"Message text\")\n .description(\"Send a message to an agent\")\n .action(async (agentId: string, opts) => {\n const { agentsMessageCommand } = await import(\"./commands/agents.js\");\n await agentsMessageCommand(agentId, opts);\n });\nagentsCmd.command(\"executions <agent-id>\").option(\"--json\", \"Output as JSON\")\n .description(\"List agent execution history\")\n .action(async (agentId: string, opts) => {\n const { agentsExecutionsCommand } = await import(\"./commands/agents.js\");\n await agentsExecutionsCommand(agentId, opts);\n });\nagentsCmd.command(\"skill <agent-id>\").requiredOption(\"--name <name>\", \"Skill name\")\n .requiredOption(\"--description <desc>\", \"Skill description\").option(\"--instructions <text>\", \"Instructions\")\n .description(\"Add a skill to an agent\")\n .action(async (agentId: string, opts) => {\n const { agentsSkillCommand } = await import(\"./commands/agents.js\");\n await agentsSkillCommand(agentId, opts);\n });\n\n// --- billing ---\nconst billingCmd = program\n .command(\"billing\")\n .description(\"Billing status, plans, and subscription management\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { billingCommand } = await import(\"./commands/billing.js\");\n await billingCommand(opts);\n });\nbillingCmd.command(\"portal\").description(\"Open Stripe Customer Portal\")\n .action(async () => {\n const { billingPortalCommand } = await import(\"./commands/billing.js\");\n await billingPortalCommand();\n });\nbillingCmd.command(\"upgrade\").option(\"--tier <tier>\", \"Plan to upgrade to\", \"cloud\")\n .description(\"Open Stripe Checkout to upgrade your plan\")\n .action(async (opts) => {\n const { billingUpgradeCommand } = await import(\"./commands/billing.js\");\n await billingUpgradeCommand(opts);\n });\n\n// --- approvals ---\nconst approvalsCmd = program\n .command(\"approvals\")\n .description(\"Pending approvals and responses\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { approvalsListCommand } = await import(\"./commands/approvals.js\");\n await approvalsListCommand(opts);\n });\napprovalsCmd.command(\"approve <approval-id>\").option(\"--message <msg>\", \"Optional message\")\n .description(\"Approve a pending approval\")\n .action(async (approvalId: string, opts) => {\n const { approvalsRespondCommand } = await import(\"./commands/approvals.js\");\n await approvalsRespondCommand(approvalId, \"approve\", opts);\n });\napprovalsCmd.command(\"reject <approval-id>\").option(\"--message <msg>\", \"Optional message\")\n .description(\"Reject a pending approval\")\n .action(async (approvalId: string, opts) => {\n const { approvalsRespondCommand } = await import(\"./commands/approvals.js\");\n await approvalsRespondCommand(approvalId, \"reject\", opts);\n });\n\n// --- form ---\nprogram\n .command(\"form\")\n .description(\"Create a new entity (interactive or scripted)\")\n .option(\"--type <type>\", \"Entity type (llc, c_corp, etc.)\")\n .option(\"--name <name>\", \"Entity name\")\n .option(\"--jurisdiction <jurisdiction>\", \"Jurisdiction (e.g. DE, WY)\")\n .option(\"--member <member>\", \"Member as 'name,email,role[,pct]' (repeatable)\", (v: string, a: string[]) => [...a, v], [] as string[])\n .action(async (opts) => {\n const { formCommand } = await import(\"./commands/form.js\");\n await formCommand(opts);\n });\n\n// --- api-keys ---\nprogram\n .command(\"api-keys\")\n .description(\"List API keys\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { apiKeysCommand } = await import(\"./commands/api-keys.js\");\n await apiKeysCommand(opts);\n });\n\n// --- demo ---\nprogram\n .command(\"demo\")\n .description(\"Seed a fully-populated demo corporation\")\n .requiredOption(\"--name <name>\", \"Corporation name\")\n .action(async (opts) => {\n const { demoCommand } = await import(\"./commands/demo.js\");\n await demoCommand(opts);\n });\n\n// --- serve ---\nprogram\n .command(\"serve\")\n .description(\"Start the API server locally\")\n .option(\"--port <port>\", \"Port to listen on\", \"8000\")\n .option(\"--data-dir <path>\", \"Data directory\", \"./data/repos\")\n .action(async (opts) => {\n const { serveCommand } = await import(\"./commands/serve.js\");\n await serveCommand(opts);\n });\n\nprogram.parse();\n"],"mappings":"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","names":["s","init_config","join","homedir","chalk","chalk","chalk","chalk","chalk","Table","input","chalk","Table","setupCommand","statusCommand","configSetCommand","configGetCommand","configListCommand","obligationsCommand","digestCommand","linkCommand","claimCommand","chatCommand","entitiesCommand","entitiesShowCommand","entitiesConvertCommand","entitiesDissolveCommand","contactsListCommand","contactsShowCommand","contactsAddCommand","contactsEditCommand","capTableCommand","safesCommand","transfersCommand","valuationsCommand","fourOhNineACommand","issueEquityCommand","issueSafeCommand","transferSharesCommand","distributeCommand","financeInvoiceCommand","financePayrollCommand","financePayCommand","financeOpenAccountCommand","financeClassifyContractorCommand","financeReconcileCommand","governanceListCommand","governanceSeatsCommand","governanceMeetingsCommand","governanceResolutionsCommand","governanceConveneCommand","governanceVoteCommand","documentsListCommand","documentsSigningLinkCommand","documentsGenerateCommand","taxFileCommand","taxDeadlineCommand","agentsListCommand","agentsShowCommand","agentsCreateCommand","agentsPauseCommand","agentsResumeCommand","agentsDeleteCommand","agentsMessageCommand","agentsExecutionsCommand","agentsSkillCommand","billingCommand","billingPortalCommand","billingUpgradeCommand","approvalsListCommand","approvalsRespondCommand","formCommand","apiKeysCommand","demoCommand","serveCommand"]}
|
|
1
|
+
{"version":3,"sources":["../src/config.ts","../src/api-client.ts","../src/output.ts","../src/commands/setup.ts","../src/animation.ts","../src/spinner.ts","../src/commands/status.ts","../src/commands/config.ts","../src/commands/obligations.ts","../src/commands/digest.ts","../src/commands/link.ts","../src/commands/claim.ts","../src/llm.ts","../src/tools.ts","../src/chat.ts","../src/commands/entities.ts","../src/commands/contacts.ts","../src/commands/cap-table.ts","../src/commands/finance.ts","../src/commands/governance.ts","../src/commands/documents.ts","../src/commands/tax.ts","../src/commands/agents.ts","../src/commands/billing.ts","../src/commands/approvals.ts","../src/commands/form.ts","../src/commands/api-keys.ts","../src/commands/demo.ts","../src/commands/serve.ts","../src/index.ts"],"sourcesContent":["import { readFileSync, writeFileSync, mkdirSync, chmodSync, existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport type { CorpConfig } from \"./types.js\";\n\nconst CONFIG_DIR = process.env.CORP_CONFIG_DIR || join(homedir(), \".corp\");\nconst CONFIG_FILE = join(CONFIG_DIR, \"config.json\");\n\nconst DEFAULTS: CorpConfig = {\n api_url: process.env.CORP_API_URL || \"https://api.thecorporation.ai\",\n api_key: \"\",\n workspace_id: \"\",\n hosting_mode: \"\",\n llm: {\n provider: \"anthropic\",\n api_key: \"\",\n model: \"claude-sonnet-4-6\",\n },\n user: { name: \"\", email: \"\" },\n active_entity_id: \"\",\n};\n\nfunction deepMerge(base: Record<string, unknown>, override: Record<string, unknown>): void {\n for (const [key, value] of Object.entries(override)) {\n if (\n key in base &&\n typeof base[key] === \"object\" &&\n base[key] !== null &&\n !Array.isArray(base[key]) &&\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value)\n ) {\n deepMerge(base[key] as Record<string, unknown>, value as Record<string, unknown>);\n } else {\n base[key] = value;\n }\n }\n}\n\nexport function loadConfig(): CorpConfig {\n const cfg = structuredClone(DEFAULTS);\n if (existsSync(CONFIG_FILE)) {\n const saved = JSON.parse(readFileSync(CONFIG_FILE, \"utf-8\"));\n deepMerge(cfg as unknown as Record<string, unknown>, saved);\n }\n return cfg;\n}\n\nexport function saveConfig(cfg: CorpConfig): void {\n mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n writeFileSync(CONFIG_FILE, JSON.stringify(cfg, null, 2) + \"\\n\", { mode: 0o600 });\n}\n\nexport function getValue(cfg: Record<string, unknown>, dotPath: string): unknown {\n const keys = dotPath.split(\".\");\n let current: unknown = cfg;\n for (const key of keys) {\n if (typeof current === \"object\" && current !== null && key in current) {\n current = (current as Record<string, unknown>)[key];\n } else {\n return undefined;\n }\n }\n return current;\n}\n\nexport function setValue(cfg: Record<string, unknown>, dotPath: string, value: string): void {\n const keys = dotPath.split(\".\");\n let current = cfg;\n for (const key of keys.slice(0, -1)) {\n if (!(key in current) || typeof current[key] !== \"object\" || current[key] === null) {\n current[key] = {};\n }\n current = current[key] as Record<string, unknown>;\n }\n current[keys[keys.length - 1]] = value;\n}\n\nexport function requireConfig(...fields: string[]): CorpConfig {\n const cfg = loadConfig();\n const missing = fields.filter((f) => !getValue(cfg as unknown as Record<string, unknown>, f));\n if (missing.length > 0) {\n console.error(`Missing config: ${missing.join(\", \")}`);\n console.error(\"Run 'corp setup' to configure.\");\n process.exit(1);\n }\n return cfg;\n}\n\nexport function maskKey(value: string): string {\n if (!value || value.length < 8) return \"***\";\n return \"***\" + value.slice(-4);\n}\n\nexport function configForDisplay(cfg: CorpConfig): Record<string, unknown> {\n const display = { ...cfg } as Record<string, unknown>;\n if (display.api_key) display.api_key = maskKey(display.api_key as string);\n if (typeof display.llm === \"object\" && display.llm !== null) {\n const llm = { ...(display.llm as Record<string, unknown>) };\n if (llm.api_key) llm.api_key = maskKey(llm.api_key as string);\n display.llm = llm;\n }\n return display;\n}\n\nexport function resolveEntityId(cfg: CorpConfig, explicitId?: string): string {\n const eid = explicitId || cfg.active_entity_id;\n if (!eid) {\n console.error(\n \"No entity specified. Use --entity-id or set active_entity_id via 'corp config set active_entity_id <id>'.\"\n );\n process.exit(1);\n }\n return eid;\n}\n","export { CorpAPIClient, SessionExpiredError, provisionWorkspace } from \"@thecorporation/corp-tools\";\n","import chalk from \"chalk\";\nimport Table from \"cli-table3\";\nimport type { ApiRecord } from \"./types.js\";\n\nconst URGENCY_COLORS: Record<string, (s: string) => string> = {\n overdue: chalk.red.bold,\n due_today: chalk.yellow.bold,\n d1: chalk.yellow,\n d7: chalk.cyan,\n d14: chalk.blue,\n d30: chalk.dim,\n upcoming: chalk.dim,\n};\n\nexport function printError(msg: string): void {\n console.error(chalk.red(\"Error:\"), msg);\n}\n\nexport function printSuccess(msg: string): void {\n console.log(chalk.green(msg));\n}\n\nexport function printWarning(msg: string): void {\n console.log(chalk.yellow(msg));\n}\n\nexport function printJson(data: unknown): void {\n console.log(JSON.stringify(data, null, 2));\n}\n\n// --- Status Panel ---\n\nexport function printStatusPanel(data: ApiRecord): void {\n console.log(chalk.blue(\"─\".repeat(50)));\n console.log(chalk.blue.bold(\" Corp Status\"));\n console.log(chalk.blue(\"─\".repeat(50)));\n console.log(` ${chalk.bold(\"Workspace:\")} ${data.workspace_id ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Entities:\")} ${data.entity_count ?? 0}`);\n\n const urgency = (data.urgency_counts ?? {}) as Record<string, number>;\n if (Object.keys(urgency).length > 0) {\n console.log(`\\n ${chalk.bold(\"Obligations:\")}`);\n for (const [tier, count] of Object.entries(urgency)) {\n const colorFn = URGENCY_COLORS[tier] ?? ((s: string) => s);\n console.log(` ${colorFn(`${tier}:`)} ${count}`);\n }\n }\n\n if (data.next_deadline) {\n console.log(`\\n ${chalk.bold(\"Next deadline:\")} ${data.next_deadline}`);\n }\n console.log(chalk.blue(\"─\".repeat(50)));\n}\n\n// --- Generic table helper ---\n\nfunction makeTable(title: string, columns: string[]): Table.Table {\n console.log(`\\n${chalk.bold(title)}`);\n return new Table({ head: columns.map((c) => chalk.dim(c)) });\n}\n\nfunction s(val: unknown, maxLen?: number): string {\n const str = val == null ? \"\" : String(val);\n if (maxLen && str.length > maxLen) return str.slice(0, maxLen);\n return str;\n}\n\nfunction money(val: unknown): string {\n if (typeof val === \"number\") return `$${val.toLocaleString()}`;\n return String(val ?? \"\");\n}\n\n// --- Domain tables ---\n\nexport function printEntitiesTable(entities: ApiRecord[]): void {\n const table = makeTable(\"Entities\", [\"ID\", \"Name\", \"Type\", \"Jurisdiction\", \"Status\"]);\n for (const e of entities) {\n table.push([s(e.entity_id, 12), s(e.name), s(e.entity_type), s(e.jurisdiction), s(e.status)]);\n }\n console.log(table.toString());\n}\n\nexport function printObligationsTable(obligations: ApiRecord[]): void {\n const table = makeTable(\"Obligations\", [\"ID\", \"Type\", \"Urgency\", \"Due\", \"Status\"]);\n for (const o of obligations) {\n const urg = s(o.urgency) || \"upcoming\";\n const colorFn = URGENCY_COLORS[urg] ?? ((x: string) => x);\n table.push([s(o.obligation_id, 12), s(o.obligation_type), colorFn(urg), s(o.due_at), s(o.status)]);\n }\n console.log(table.toString());\n}\n\nexport function printContactsTable(contacts: ApiRecord[]): void {\n const table = makeTable(\"Contacts\", [\"ID\", \"Name\", \"Email\", \"Category\", \"Entity\"]);\n for (const c of contacts) {\n table.push([\n s(c.contact_id ?? c.id, 12),\n s(c.name),\n s(c.email),\n s(c.category),\n s(c.entity_name ?? c.entity_id),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printCapTable(data: ApiRecord): void {\n const accessLevel = s(data.access_level) || \"admin\";\n const shareClasses = (data.share_classes ?? []) as ApiRecord[];\n if (shareClasses.length > 0) {\n const cols = [\"Class\", \"Authorized\", \"Outstanding\"];\n if (accessLevel !== \"summary\") cols.push(\"Holders\");\n const table = makeTable(\"Cap Table — Share Classes\", cols);\n for (const sc of shareClasses) {\n const row = [s(sc.class_code ?? sc.name), s(sc.authorized), s(sc.outstanding)];\n if (accessLevel !== \"summary\") {\n const holders = (sc.holders ?? []) as ApiRecord[];\n row.push(holders.map((h) => `${h.name ?? \"?\"}(${h.percentage ?? \"?\"}%)`).join(\", \"));\n }\n table.push(row);\n }\n console.log(table.toString());\n }\n\n const ownership = (data.ownership ?? []) as ApiRecord[];\n if (ownership.length > 0 && accessLevel !== \"summary\") {\n const table = makeTable(\"Ownership Breakdown\", [\"Holder\", \"Shares\", \"Percentage\", \"Class\"]);\n for (const o of ownership) {\n table.push([s(o.holder_name ?? o.name), s(o.shares), `${o.percentage ?? \"\"}%`, s(o.share_class)]);\n }\n console.log(table.toString());\n }\n\n const pools = (data.option_pools ?? []) as ApiRecord[];\n if (pools.length > 0) {\n const table = makeTable(\"Option Pools\", [\"Name\", \"Authorized\", \"Granted\", \"Available\"]);\n for (const p of pools) {\n table.push([s(p.name), s(p.authorized), s(p.granted), s(p.available)]);\n }\n console.log(table.toString());\n }\n\n if (data.fully_diluted_shares != null) {\n const fd = data.fully_diluted_shares;\n console.log(`\\n${chalk.bold(\"Fully Diluted Shares:\")} ${typeof fd === \"number\" ? fd.toLocaleString() : fd}`);\n }\n}\n\nexport function printSafesTable(safes: ApiRecord[]): void {\n const table = makeTable(\"SAFE Notes\", [\"ID\", \"Investor\", \"Amount\", \"Cap\", \"Discount\", \"Date\"]);\n for (const s_ of safes) {\n table.push([\n s(s_.safe_id ?? s_.id, 12),\n s(s_.investor_name ?? s_.investor),\n money(s_.investment_amount ?? s_.amount),\n s(s_.valuation_cap ?? s_.cap),\n s(s_.discount_rate ?? s_.discount),\n s(s_.date ?? s_.created_at),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printTransfersTable(transfers: ApiRecord[]): void {\n const table = makeTable(\"Share Transfers\", [\"ID\", \"From\", \"To\", \"Shares\", \"Class\", \"Date\"]);\n for (const t of transfers) {\n table.push([\n s(t.transfer_id ?? t.id, 12),\n s(t.from_holder ?? t.from),\n s(t.to_holder ?? t.to),\n s(t.shares),\n s(t.share_class),\n s(t.date ?? t.transfer_date),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printValuationsTable(valuations: ApiRecord[]): void {\n const table = makeTable(\"Valuations\", [\"Date\", \"Type\", \"Valuation\", \"PPS\"]);\n for (const v of valuations) {\n table.push([\n s(v.valuation_date ?? v.date),\n s(v.valuation_type ?? v.type),\n s(v.enterprise_value ?? v.valuation),\n s(v.price_per_share ?? v.pps ?? v.fmv_per_share),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printGovernanceTable(bodies: ApiRecord[]): void {\n const table = makeTable(\"Governance Bodies\", [\"ID\", \"Body\", \"Type\", \"Seats\", \"Meetings\"]);\n for (const b of bodies) {\n table.push([\n s(b.body_id ?? b.id, 12),\n s(b.name),\n s(b.body_type ?? b.type),\n s(b.seat_count ?? b.seats),\n s(b.meeting_count ?? b.meetings),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printSeatsTable(seats: ApiRecord[]): void {\n const table = makeTable(\"Seats\", [\"Seat\", \"Holder\", \"Role\", \"Status\"]);\n for (const st of seats) {\n table.push([s(st.seat_name ?? st.title), s(st.holder_name ?? st.holder), s(st.role), s(st.status)]);\n }\n console.log(table.toString());\n}\n\nexport function printMeetingsTable(meetings: ApiRecord[]): void {\n const table = makeTable(\"Meetings\", [\"ID\", \"Title\", \"Date\", \"Status\", \"Resolutions\"]);\n for (const m of meetings) {\n table.push([\n s(m.meeting_id ?? m.id, 12),\n s(m.title ?? m.name),\n s(m.meeting_date ?? m.date),\n s(m.status),\n s(m.resolution_count ?? m.resolutions),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printResolutionsTable(resolutions: ApiRecord[]): void {\n const table = makeTable(\"Resolutions\", [\"ID\", \"Title\", \"Type\", \"Status\", \"For\", \"Against\"]);\n for (const r of resolutions) {\n table.push([\n s(r.resolution_id ?? r.id, 12),\n s(r.title),\n s(r.resolution_type ?? r.type),\n s(r.status),\n s(r.votes_for),\n s(r.votes_against),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printDocumentsTable(docs: ApiRecord[]): void {\n const table = makeTable(\"Documents\", [\"ID\", \"Title\", \"Type\", \"Date\", \"Status\", \"Signatures\"]);\n for (const d of docs) {\n const sigs = d.signatures;\n const sigStr = Array.isArray(sigs) ? `${sigs.length} signed` : s(sigs);\n table.push([\n s(d.document_id ?? d.id, 12),\n s(d.title ?? d.name),\n s(d.document_type ?? d.type),\n s(d.date ?? d.created_at),\n s(d.status),\n sigStr,\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printAgentsTable(agents: ApiRecord[]): void {\n const table = makeTable(\"Agents\", [\"ID\", \"Name\", \"Status\", \"Model\"]);\n for (const a of agents) {\n const status = s(a.status);\n const colored =\n status === \"active\" ? chalk.green(status) : status === \"paused\" ? chalk.yellow(status) : status;\n table.push([s(a.agent_id ?? a.id, 12), s(a.name), colored, s(a.model)]);\n }\n console.log(table.toString());\n}\n\nexport function printApprovalsTable(approvals: ApiRecord[]): void {\n const table = makeTable(\"Pending Approvals\", [\"ID\", \"Type\", \"Requested By\", \"Description\", \"Created\"]);\n for (const a of approvals) {\n let desc = s(a.description ?? a.summary);\n if (desc.length > 60) desc = desc.slice(0, 57) + \"...\";\n table.push([\n s(a.approval_id ?? a.id, 12),\n s(a.approval_type ?? a.type),\n s(a.requested_by ?? a.requester),\n desc,\n s(a.created_at),\n ]);\n }\n console.log(table.toString());\n}\n\nexport function printBillingPanel(status: ApiRecord, plans: ApiRecord[]): void {\n const tier = s(status.tier ?? status.plan) || \"free\";\n const subs = (status.subscriptions ?? []) as ApiRecord[];\n const usageCount = status.usage_count ?? 0;\n\n console.log(chalk.green(\"─\".repeat(50)));\n console.log(chalk.green.bold(\" Billing Status\"));\n console.log(chalk.green(\"─\".repeat(50)));\n console.log(` ${chalk.bold(\"Current Tier:\")} ${tier}`);\n console.log(` ${chalk.bold(\"Active Subscriptions:\")} ${subs.length}`);\n for (const sub of subs) {\n console.log(` - ${sub.tier ?? \"N/A\"} (${sub.status ?? \"N/A\"})`);\n }\n console.log(` ${chalk.bold(\"Tool Calls:\")} ${usageCount}`);\n console.log(chalk.dim(\" Manage: corp billing portal\"));\n console.log(chalk.dim(\" Upgrade: corp billing upgrade\"));\n console.log(chalk.green(\"─\".repeat(50)));\n\n if (plans.length > 0) {\n const table = makeTable(\"Available Plans\", [\"Tier\", \"Price\", \"Type\", \"Description\"]);\n for (const p of plans) {\n const amount = (p.amount ?? 0) as number;\n const interval = s(p.interval);\n let priceStr = \"Free\";\n if (amount > 0) {\n priceStr = interval ? `$${Math.round(amount / 100)}/${interval[0]}` : `$${Math.round(amount / 100)}`;\n }\n let name = s(p.name ?? p.tier);\n if (p.addon) name += chalk.dim(\" (add-on)\");\n let desc = s(p.description);\n if (desc.length > 60) desc = desc.slice(0, 57) + \"...\";\n table.push([name, priceStr, s(p.type), desc]);\n }\n console.log(table.toString());\n }\n}\n","import { input, confirm } from \"@inquirer/prompts\";\nimport { loadConfig, saveConfig } from \"../config.js\";\nimport { provisionWorkspace } from \"../api-client.js\";\nimport { printSuccess, printError } from \"../output.js\";\n\nconst API_URL = \"https://api.thecorporation.ai\";\n\nexport async function setupCommand(): Promise<void> {\n const cfg = loadConfig();\n console.log(\"Welcome to corp — corporate governance from the terminal.\\n\");\n\n cfg.api_url = API_URL;\n\n console.log(\"--- User Info ---\");\n const user = cfg.user ?? { name: \"\", email: \"\" };\n user.name = await input({ message: \"Your name\", default: user.name || undefined });\n user.email = await input({ message: \"Your email\", default: user.email || undefined });\n cfg.user = user;\n\n if (!cfg.api_key || !cfg.workspace_id) {\n console.log(\"\\nProvisioning workspace...\");\n try {\n const result = await provisionWorkspace(cfg.api_url, `${user.name}'s workspace`);\n cfg.api_key = result.api_key as string;\n cfg.workspace_id = result.workspace_id as string;\n console.log(`Workspace provisioned: ${result.workspace_id}`);\n } catch (err) {\n printError(`Auto-provision failed: ${err}`);\n console.log(\"You can manually set credentials with: corp config set api_key <key>\");\n }\n } else {\n console.log(\"\\nVerifying existing credentials...\");\n let keyValid = false;\n try {\n const resp = await fetch(\n `${cfg.api_url.replace(/\\/+$/, \"\")}/v1/workspaces/${cfg.workspace_id}/status`,\n { headers: { Authorization: `Bearer ${cfg.api_key}` } }\n );\n keyValid = resp.status !== 401;\n } catch {\n // network error — treat as potentially valid\n }\n\n if (keyValid) {\n console.log(\"Credentials OK.\");\n } else {\n console.log(\"API key is no longer valid.\");\n const reprovision = await confirm({\n message: \"Provision a new workspace? (This will replace your current credentials)\",\n default: false,\n });\n if (reprovision) {\n try {\n const result = await provisionWorkspace(cfg.api_url, `${user.name}'s workspace`);\n cfg.api_key = result.api_key as string;\n cfg.workspace_id = result.workspace_id as string;\n console.log(`Workspace provisioned: ${result.workspace_id}`);\n } catch (err) {\n printError(`Provisioning failed: ${err}`);\n }\n } else {\n console.log(\"Keeping existing credentials. You can manually update with: corp config set api_key <key>\");\n }\n }\n }\n\n saveConfig(cfg);\n console.log(\"\\nConfig saved to ~/.corp/config.json\");\n console.log(\"Run 'corp status' to verify your connection.\");\n}\n","/**\n * Rising cityscape boot animation — ported from packages/cli/corp/tui/widgets/mascot.py\n */\n\n// prettier-ignore\nconst BUILDINGS: string[][] = [\n [\n \" ┌┐ \",\n \" ││ \",\n \" ││ \",\n \" ┌┤├┐ \",\n \" │││││\",\n \" │││││\",\n ],\n [\n \" ╔══╗ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n \" ║▪▪║ \",\n ],\n [\n \" /\\\\ \",\n \" / \\\\ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n ],\n [\n \" ┌──┐ \",\n \" │≋≋│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n \" │▪▪│ \",\n ],\n [\n \" ╻ \",\n \" ┃ \",\n \" ┌┤┐ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n ],\n [\n \" ┌┐ \",\n \" ├┤ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n ],\n [\n \" ╔═══╗\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n \" ║▪ ▪║\",\n ],\n [\n \" ┬─┬ \",\n \" │~│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n \" │▪│ \",\n ],\n];\n\nconst MAX_HEIGHT = Math.max(...BUILDINGS.map((b) => b.length));\nconst TOTAL_FRAMES = MAX_HEIGHT + 4; // 15 frames, ~1.5s at 100ms\n\nconst GOLD = \"\\x1b[38;2;212;160;23m\";\nconst RESET = \"\\x1b[0m\";\n\nexport function renderFrame(frame: number): string {\n const cols: string[][] = [];\n for (let i = 0; i < BUILDINGS.length; i++) {\n const building = BUILDINGS[i];\n const h = building.length;\n const visible = Math.max(0, Math.min(h, frame - i));\n const width = building[0]?.length ?? 6;\n const blank = \" \".repeat(width);\n const col: string[] = Array(MAX_HEIGHT - visible).fill(blank);\n col.push(...building.slice(h - visible));\n cols.push(col);\n }\n\n const lines: string[] = [];\n for (let row = 0; row < MAX_HEIGHT; row++) {\n lines.push(cols.map((col) => col[row]).join(\"\"));\n }\n return lines.join(\"\\n\");\n}\n\n/**\n * Run an async function while displaying the rising cityscape animation.\n * No-ops when stdout is not a TTY (piped, CI, etc.).\n */\nexport async function withAnimation<T>(fn: () => Promise<T>): Promise<T> {\n if (!process.stdout.isTTY) {\n return fn();\n }\n\n let frame = 0;\n let animDone = false;\n const spinChars = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"];\n let spinIdx = 0;\n let lastLineCount = 0;\n\n const clearPrev = () => {\n if (lastLineCount > 0) {\n process.stdout.write(`\\x1b[${lastLineCount}A\\x1b[0J`);\n }\n };\n\n const drawFrame = () => {\n clearPrev();\n if (!animDone) {\n const art = renderFrame(frame);\n const output = `${GOLD}${art}${RESET}\\n`;\n process.stdout.write(output);\n lastLineCount = MAX_HEIGHT + 1;\n frame++;\n if (frame >= TOTAL_FRAMES) {\n animDone = true;\n }\n } else {\n // Dot spinner fallback after animation finishes\n const line = `${GOLD}${spinChars[spinIdx % spinChars.length]} Loading...${RESET}\\n`;\n process.stdout.write(line);\n lastLineCount = 1;\n spinIdx++;\n }\n };\n\n drawFrame();\n const timer = setInterval(drawFrame, 100);\n\n try {\n const result = await fn();\n return result;\n } finally {\n clearInterval(timer);\n clearPrev();\n }\n}\n","import { withAnimation } from \"./animation.js\";\n\n/**\n * Run an async function with a loading animation.\n * Silently skipped when `json` is truthy (pure JSON output) or non-TTY.\n */\nexport async function withSpinner<T>(\n _label: string,\n fn: () => Promise<T>,\n json?: boolean,\n): Promise<T> {\n if (json) {\n return fn();\n }\n return withAnimation(fn);\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printStatusPanel } from \"../output.js\";\nimport { withSpinner } from \"../spinner.js\";\n\nexport async function statusCommand(): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await withSpinner(\"Loading\", () => client.getStatus());\n printStatusPanel(data);\n } catch (err) {\n printError(`Failed to fetch status: ${err}`);\n process.exit(1);\n }\n}\n","import { configForDisplay, getValue, loadConfig, saveConfig, setValue } from \"../config.js\";\nimport { printError, printJson } from \"../output.js\";\n\nexport function configSetCommand(key: string, value: string): void {\n const cfg = loadConfig();\n setValue(cfg as unknown as Record<string, unknown>, key, value);\n saveConfig(cfg);\n console.log(`${key} = ${value}`);\n}\n\nexport function configGetCommand(key: string): void {\n const cfg = loadConfig();\n const val = getValue(cfg as unknown as Record<string, unknown>, key);\n if (val === undefined) {\n printError(`Key not found: ${key}`);\n process.exit(1);\n }\n if (typeof val === \"object\" && val !== null) {\n printJson(val);\n } else {\n console.log(String(val));\n }\n}\n\nexport function configListCommand(): void {\n const cfg = loadConfig();\n printJson(configForDisplay(cfg));\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printObligationsTable, printError, printJson } from \"../output.js\";\n\nexport async function obligationsCommand(opts: { tier?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.getObligations(opts.tier);\n const obligations = (data.obligations ?? []) as Record<string, unknown>[];\n if (opts.json) printJson(obligations);\n else if (obligations.length === 0) console.log(\"No obligations found.\");\n else printObligationsTable(obligations);\n } catch (err) { printError(`Failed to fetch obligations: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function digestCommand(opts: { trigger?: boolean; key?: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n if (opts.trigger) {\n const result = await client.triggerDigest();\n printSuccess(\"Digest triggered.\");\n printJson(result);\n } else if (opts.key) {\n const result = await client.getDigest(opts.key);\n printJson(result);\n } else {\n const digests = await client.listDigests();\n if (digests.length === 0) console.log(\"No digest history found.\");\n else printJson(digests);\n }\n } catch (err) { printError(`Failed: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError } from \"../output.js\";\n\nexport async function linkCommand(): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.createLink();\n const code = data.code as string;\n const expires = (data.expires_in_seconds ?? 900) as number;\n console.log();\n console.log(` ${code}`);\n console.log();\n console.log(`Run this on the other device (expires in ${Math.floor(expires / 60)} minutes):`);\n console.log(` corp claim ${code}`);\n console.log();\n } catch (err) {\n printError(`${err}`);\n process.exit(1);\n }\n}\n","import { loadConfig, saveConfig } from \"../config.js\";\nimport { printError } from \"../output.js\";\n\nexport async function claimCommand(code: string): Promise<void> {\n const cfg = loadConfig();\n const apiUrl = (cfg.api_url || \"https://api.thecorporation.ai\").replace(/\\/+$/, \"\");\n try {\n const resp = await fetch(`${apiUrl}/v1/workspaces/claim`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ code }),\n });\n if (!resp.ok) {\n let detail = \"\";\n try { const body = await resp.json() as Record<string, string>; detail = body.detail ?? \"\"; } catch { /* ignore */ }\n printError(detail || `${resp.status} ${resp.statusText}`);\n process.exit(1);\n }\n const data = await resp.json() as Record<string, string>;\n cfg.api_key = data.api_key;\n cfg.workspace_id = data.workspace_id;\n saveConfig(cfg);\n console.log(`Workspace joined: ${data.workspace_id}`);\n console.log(\"Credentials saved to ~/.corp/config.json\");\n } catch (err) {\n printError(`${err}`);\n process.exit(1);\n }\n}\n","import type { ToolCall, LLMResponse } from \"./types.js\";\n\nconst PROVIDER_BASE_URLS: Record<string, string> = {\n openrouter: \"https://openrouter.ai/api/v1\",\n};\n\nexport async function chat(\n messages: Record<string, unknown>[],\n tools?: Record<string, unknown>[],\n provider = \"anthropic\",\n apiKey = \"\",\n model = \"\",\n baseUrl?: string,\n): Promise<LLMResponse> {\n if (provider === \"anthropic\") {\n return chatAnthropic(messages, tools, apiKey, model);\n } else if (provider === \"openai\" || provider === \"openrouter\") {\n const effectiveUrl = baseUrl ?? PROVIDER_BASE_URLS[provider];\n return chatOpenAI(messages, tools, apiKey, model, effectiveUrl);\n }\n throw new Error(`Unknown LLM provider: ${provider}`);\n}\n\nasync function chatAnthropic(\n messages: Record<string, unknown>[],\n tools?: Record<string, unknown>[],\n apiKey = \"\",\n model = \"\",\n): Promise<LLMResponse> {\n const { default: Anthropic } = await import(\"@anthropic-ai/sdk\");\n const client = new Anthropic({ apiKey });\n\n let systemText = \"\";\n const convMessages: Record<string, unknown>[] = [];\n\n for (const msg of messages) {\n if (msg.role === \"system\") {\n systemText = msg.content as string;\n } else if (msg.role === \"tool\") {\n convMessages.push({\n role: \"user\",\n content: [{\n type: \"tool_result\",\n tool_use_id: msg.tool_call_id,\n content: msg.content,\n }],\n });\n } else if (msg.role === \"assistant\" && msg.tool_calls) {\n const contentBlocks: Record<string, unknown>[] = [];\n if (msg.content) contentBlocks.push({ type: \"text\", text: msg.content });\n for (const tc of msg.tool_calls as Record<string, unknown>[]) {\n const fn = tc.function as Record<string, unknown>;\n let args = fn.arguments;\n if (typeof args === \"string\") args = JSON.parse(args);\n contentBlocks.push({ type: \"tool_use\", id: tc.id, name: fn.name, input: args });\n }\n convMessages.push({ role: \"assistant\", content: contentBlocks });\n } else {\n convMessages.push({ role: msg.role, content: msg.content ?? \"\" });\n }\n }\n\n let anthropicTools: Record<string, unknown>[] | undefined;\n if (tools?.length) {\n anthropicTools = tools.map((t) => {\n const fn = (t as Record<string, unknown>).function as Record<string, unknown>;\n return {\n name: fn.name,\n description: fn.description ?? \"\",\n input_schema: fn.parameters ?? { type: \"object\", properties: {} },\n };\n });\n }\n\n const kwargs: Record<string, unknown> = {\n model: model || \"claude-sonnet-4-20250514\",\n max_tokens: 4096,\n messages: convMessages,\n };\n if (systemText) kwargs.system = systemText;\n if (anthropicTools) kwargs.tools = anthropicTools;\n\n const response = await client.messages.create(kwargs as Parameters<typeof client.messages.create>[0]);\n\n let content: string | null = null;\n const toolCallsOut: ToolCall[] = [];\n for (const block of response.content) {\n if (block.type === \"text\") {\n content = block.text;\n } else if (block.type === \"tool_use\") {\n toolCallsOut.push({\n id: block.id,\n name: block.name,\n arguments: typeof block.input === \"object\" ? (block.input as Record<string, unknown>) : {},\n });\n }\n }\n\n return {\n content,\n tool_calls: toolCallsOut,\n usage: {\n prompt_tokens: response.usage.input_tokens,\n completion_tokens: response.usage.output_tokens,\n total_tokens: response.usage.input_tokens + response.usage.output_tokens,\n },\n finish_reason: response.stop_reason ?? null,\n };\n}\n\nasync function chatOpenAI(\n messages: Record<string, unknown>[],\n tools?: Record<string, unknown>[],\n apiKey = \"\",\n model = \"\",\n baseUrl?: string,\n): Promise<LLMResponse> {\n const { default: OpenAI } = await import(\"openai\");\n const clientOpts: Record<string, unknown> = { apiKey };\n if (baseUrl) clientOpts.baseURL = baseUrl;\n const client = new OpenAI(clientOpts as ConstructorParameters<typeof OpenAI>[0]);\n\n const kwargs: Record<string, unknown> = {\n model: model || \"gpt-4o\",\n messages,\n max_tokens: 4096,\n };\n if (tools?.length) {\n kwargs.tools = tools;\n kwargs.tool_choice = \"auto\";\n }\n\n const response = await client.chat.completions.create(kwargs as Parameters<typeof client.chat.completions.create>[0]);\n const choice = response.choices[0];\n const message = choice.message;\n\n const toolCallsOut: ToolCall[] = [];\n if (message.tool_calls) {\n for (const tc of message.tool_calls) {\n let args: Record<string, unknown>;\n try {\n args = JSON.parse(tc.function.arguments);\n } catch {\n args = { _raw: tc.function.arguments };\n }\n toolCallsOut.push({ id: tc.id, name: tc.function.name, arguments: args });\n }\n }\n\n return {\n content: message.content,\n tool_calls: toolCallsOut,\n usage: {\n prompt_tokens: response.usage?.prompt_tokens ?? 0,\n completion_tokens: response.usage?.completion_tokens ?? 0,\n total_tokens: response.usage?.total_tokens ?? 0,\n },\n finish_reason: choice.finish_reason ?? null,\n };\n}\n","import {\n TOOL_DEFINITIONS as _TOOL_DEFINITIONS,\n isWriteTool as _isWriteTool,\n executeTool as _executeTool,\n} from \"@thecorporation/corp-tools\";\nimport type { CorpAPIClient } from \"@thecorporation/corp-tools\";\nimport { loadConfig, saveConfig } from \"./config.js\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\n\nexport const TOOL_DEFINITIONS = _TOOL_DEFINITIONS;\nexport const isWriteTool = _isWriteTool;\n\nexport async function executeTool(\n name: string,\n args: Record<string, unknown>,\n client: CorpAPIClient,\n): Promise<string> {\n return _executeTool(name, args, client, {\n dataDir: join(homedir(), \".corp\"),\n onEntityFormed: (entityId) => {\n try {\n const cfg = loadConfig();\n cfg.active_entity_id = entityId;\n saveConfig(cfg);\n } catch { /* ignore */ }\n },\n });\n}\n","import { createInterface } from \"node:readline\";\nimport chalk from \"chalk\";\nimport { requireConfig, configForDisplay, getValue, setValue, saveConfig } from \"./config.js\";\nimport { CorpAPIClient } from \"./api-client.js\";\nimport { chat as llmChat } from \"./llm.js\";\nimport { TOOL_DEFINITIONS, executeTool, isWriteTool } from \"./tools.js\";\nimport { printError, printStatusPanel, printObligationsTable, printJson } from \"./output.js\";\nimport type { CorpConfig, LLMResponse, ToolCall } from \"./types.js\";\n\nconst SYSTEM_PROMPT = `You are **corp**, an AI assistant for corporate governance.\nYou help users manage their companies — entities, cap tables, compliance, governance, finances, and more.\nYou have tools to read and write corporate data. Use them to fulfill user requests.\nFor write operations, confirm with the user before proceeding.\nMonetary values are in cents (e.g. 100000 = $1,000.00).\nDocuments must be signed by the human — you cannot sign on their behalf.\nAfter completing actions, suggest logical next steps.`;\n\nexport async function chatCommand(): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\", \"llm.api_key\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n\n const messages: Record<string, unknown>[] = [{ role: \"system\", content: SYSTEM_PROMPT }];\n let totalTokens = 0;\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n const prompt = () => new Promise<string>((resolve) => rl.question(chalk.green.bold(\"> \"), resolve));\n\n console.log(chalk.blue.bold(\"corp chat\") + \" — type /help for commands, /quit to exit\\n\");\n\n const slashHandlers: Record<string, (args: string) => void> = {\n \"/status\": async () => {\n try { printStatusPanel(await client.getStatus()); } catch (e) { printError(`Status error: ${e}`); }\n },\n \"/obligations\": async () => {\n try {\n const data = await client.getObligations();\n const obls = (data.obligations ?? []) as Record<string, unknown>[];\n if (obls.length) printObligationsTable(obls);\n else console.log(chalk.dim(\"No obligations found.\"));\n } catch (e) { printError(`Obligations error: ${e}`); }\n },\n \"/digest\": async () => {\n try {\n const digests = await client.listDigests();\n if (digests.length) printJson(digests);\n else console.log(chalk.dim(\"No digest history.\"));\n } catch (e) { printError(`Digest error: ${e}`); }\n },\n \"/config\": () => printJson(configForDisplay(cfg)),\n \"/model\": (args: string) => {\n const model = args.trim();\n if (!model) { console.log(`Current model: ${getValue(cfg as unknown as Record<string, unknown>, \"llm.model\")}`); return; }\n setValue(cfg as unknown as Record<string, unknown>, \"llm.model\", model);\n saveConfig(cfg);\n console.log(`Model switched to: ${model}`);\n },\n \"/cost\": () => console.log(`Session tokens used: ${totalTokens.toLocaleString()}`),\n \"/clear\": () => {\n messages.length = 0;\n messages.push({ role: \"system\", content: SYSTEM_PROMPT });\n totalTokens = 0;\n console.log(chalk.dim(\"Conversation cleared.\"));\n },\n \"/help\": () => {\n console.log(`\n${chalk.bold(\"Chat Slash Commands\")}\n /status Show workspace status\n /obligations List obligations\n /digest Show digest history\n /config Show current config (masked keys)\n /model <name> Switch LLM model\n /cost Show token usage\n /clear Clear conversation\n /help Show this help\n /quit Exit chat`);\n },\n };\n\n try {\n while (true) {\n let userInput: string;\n try {\n userInput = (await prompt()).trim();\n } catch {\n console.log(\"\\n\" + chalk.dim(\"Goodbye.\"));\n break;\n }\n\n if (!userInput) continue;\n\n if (userInput.startsWith(\"/\")) {\n const [cmd, ...rest] = userInput.split(/\\s+/);\n const args = rest.join(\" \");\n if (cmd === \"/quit\" || cmd === \"/exit\") {\n console.log(chalk.dim(\"Goodbye.\"));\n break;\n }\n const handler = slashHandlers[cmd.toLowerCase()];\n if (handler) { await handler(args); continue; }\n printError(`Unknown command: ${cmd}. Type /help for available commands.`);\n continue;\n }\n\n messages.push({ role: \"user\", content: userInput });\n\n const llmCfg = cfg.llm;\n while (true) {\n let response: LLMResponse;\n try {\n response = await llmChat(\n messages, TOOL_DEFINITIONS, llmCfg.provider, llmCfg.api_key, llmCfg.model, llmCfg.base_url,\n );\n } catch (err) {\n printError(`LLM error: ${err}`);\n break;\n }\n\n totalTokens += response.usage.total_tokens;\n\n const assistantMsg: Record<string, unknown> = { role: \"assistant\", content: response.content };\n if (response.tool_calls.length > 0) {\n assistantMsg.tool_calls = response.tool_calls.map((tc) => ({\n id: tc.id, type: \"function\",\n function: { name: tc.name, arguments: JSON.stringify(tc.arguments) },\n }));\n if (!response.content) assistantMsg.content = null;\n }\n messages.push(assistantMsg);\n\n if (response.tool_calls.length === 0) {\n if (response.content) console.log(\"\\n\" + response.content + \"\\n\");\n break;\n }\n\n for (const tc of response.tool_calls) {\n console.log(chalk.dim(` ${isWriteTool(tc.name) ? \"\\u2699\" : \"\\u2139\"} ${tc.name}(${JSON.stringify(tc.arguments).slice(0, 80)})`));\n const result = await executeTool(tc.name, tc.arguments, client);\n const short = result.length > 200 ? result.slice(0, 197) + \"...\" : result;\n console.log(chalk.dim(` => ${short}`));\n messages.push({ role: \"tool\", tool_call_id: tc.id, content: result });\n }\n }\n }\n } finally {\n rl.close();\n }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printEntitiesTable, printError, printSuccess, printJson } from \"../output.js\";\nimport { withSpinner } from \"../spinner.js\";\nimport chalk from \"chalk\";\n\nexport async function entitiesCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const entities = await withSpinner(\"Loading\", () => client.listEntities(), opts.json);\n if (opts.json) {\n printJson(entities);\n } else if (entities.length === 0) {\n console.log(\"No entities found.\");\n } else {\n printEntitiesTable(entities);\n }\n } catch (err) {\n printError(`Failed to fetch entities: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function entitiesShowCommand(entityId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const entities = await client.listEntities();\n const entity = entities.find((e) => e.entity_id === entityId);\n if (!entity) {\n printError(`Entity not found: ${entityId}`);\n process.exit(1);\n }\n if (opts.json) {\n printJson(entity);\n } else {\n console.log(chalk.blue(\"─\".repeat(40)));\n console.log(chalk.blue.bold(\" Entity Detail\"));\n console.log(chalk.blue(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"Name:\")} ${entity.name ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Type:\")} ${entity.entity_type ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Jurisdiction:\")} ${entity.jurisdiction ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${entity.status ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"ID:\")} ${entity.entity_id ?? \"N/A\"}`);\n if (entity.formation_date) console.log(` ${chalk.bold(\"Formation Date:\")} ${entity.formation_date}`);\n if (entity.ein) console.log(` ${chalk.bold(\"EIN:\")} ${entity.ein}`);\n console.log(chalk.blue(\"─\".repeat(40)));\n }\n } catch (err) {\n printError(`Failed to fetch entities: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function entitiesConvertCommand(\n entityId: string,\n opts: { to: string; jurisdiction?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: Record<string, string> = { new_entity_type: opts.to };\n if (opts.jurisdiction) data.new_jurisdiction = opts.jurisdiction;\n const result = await client.convertEntity(entityId, data);\n printSuccess(`Entity conversion initiated: ${result.conversion_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to convert entity: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function entitiesDissolveCommand(\n entityId: string,\n opts: { reason: string; effectiveDate?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: Record<string, string> = { reason: opts.reason };\n if (opts.effectiveDate) data.effective_date = opts.effectiveDate;\n const result = await client.dissolveEntity(entityId, data);\n printSuccess(`Dissolution initiated: ${result.dissolution_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to dissolve entity: ${err}`);\n process.exit(1);\n }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printContactsTable, printError, printSuccess, printJson } from \"../output.js\";\nimport chalk from \"chalk\";\nimport type { ApiRecord } from \"../types.js\";\n\nexport async function contactsListCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const contacts = await client.listContacts();\n if (opts.json) printJson(contacts);\n else if (contacts.length === 0) console.log(\"No contacts found.\");\n else printContactsTable(contacts);\n } catch (err) {\n printError(`Failed to fetch contacts: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function contactsShowCommand(contactId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const profile = await client.getContactProfile(contactId);\n if (opts.json) {\n printJson(profile);\n } else {\n const contact = (profile.contact ?? profile) as ApiRecord;\n console.log(chalk.cyan(\"─\".repeat(40)));\n console.log(chalk.cyan.bold(\" Contact Profile\"));\n console.log(chalk.cyan(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"Name:\")} ${contact.name ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Email:\")} ${contact.email ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Category:\")} ${contact.category ?? \"N/A\"}`);\n if (contact.phone) console.log(` ${chalk.bold(\"Phone:\")} ${contact.phone}`);\n if (contact.notes) console.log(` ${chalk.bold(\"Notes:\")} ${contact.notes}`);\n const holdings = profile.equity_holdings as ApiRecord[] | undefined;\n if (holdings?.length) {\n console.log(`\\n ${chalk.bold(\"Equity Holdings:\")}`);\n for (const h of holdings) console.log(` ${h.share_class ?? \"?\"}: ${h.shares ?? \"?\"} shares`);\n }\n const obls = profile.obligations as unknown[];\n if (obls?.length) console.log(`\\n ${chalk.bold(\"Obligations:\")} ${obls.length}`);\n console.log(chalk.cyan(\"─\".repeat(40)));\n }\n } catch (err) {\n printError(`Failed to fetch contact: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function contactsAddCommand(opts: {\n name: string;\n email: string;\n category?: string;\n phone?: string;\n notes?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: ApiRecord = { name: opts.name, email: opts.email };\n if (opts.category) data.category = opts.category;\n if (opts.phone) data.phone = opts.phone;\n if (opts.notes) data.notes = opts.notes;\n const result = await client.createContact(data);\n printSuccess(`Contact created: ${result.contact_id ?? result.id ?? \"OK\"}`);\n } catch (err) {\n printError(`Failed to create contact: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function contactsEditCommand(\n contactId: string,\n opts: { name?: string; email?: string; category?: string; phone?: string; notes?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: ApiRecord = {};\n if (opts.name != null) data.name = opts.name;\n if (opts.email != null) data.email = opts.email;\n if (opts.category != null) data.category = opts.category;\n if (opts.phone != null) data.phone = opts.phone;\n if (opts.notes != null) data.notes = opts.notes;\n if (Object.keys(data).length === 0) {\n console.log(\"No fields to update.\");\n return;\n }\n await client.updateContact(contactId, data);\n printSuccess(\"Contact updated.\");\n } catch (err) {\n printError(`Failed to update contact: ${err}`);\n process.exit(1);\n }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport {\n printCapTable, printSafesTable, printTransfersTable,\n printValuationsTable, printError, printSuccess, printJson,\n} from \"../output.js\";\nimport chalk from \"chalk\";\n\nexport async function capTableCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.getCapTable(eid);\n if (opts.json) { printJson(data); return; }\n if ((data.access_level as string) === \"none\") {\n printError(\"You do not have access to this entity's cap table.\");\n process.exit(1);\n }\n printCapTable(data);\n try {\n const val = await client.getCurrent409a(eid);\n if (val) print409a(val);\n } catch { /* ignore */ }\n } catch (err) {\n printError(`Failed to fetch cap table: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function safesCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const safes = await client.getSafeNotes(eid);\n if (opts.json) printJson(safes);\n else if (safes.length === 0) console.log(\"No SAFE notes found.\");\n else printSafesTable(safes);\n } catch (err) {\n printError(`Failed to fetch SAFE notes: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function transfersCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const transfers = await client.getShareTransfers(eid);\n if (opts.json) printJson(transfers);\n else if (transfers.length === 0) console.log(\"No share transfers found.\");\n else printTransfersTable(transfers);\n } catch (err) {\n printError(`Failed to fetch transfers: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function valuationsCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const valuations = await client.getValuations(eid);\n if (opts.json) printJson(valuations);\n else if (valuations.length === 0) console.log(\"No valuations found.\");\n else printValuationsTable(valuations);\n } catch (err) {\n printError(`Failed to fetch valuations: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function fourOhNineACommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data = await client.getCurrent409a(eid);\n if (opts.json) printJson(data);\n else if (!data || Object.keys(data).length === 0) console.log(\"No 409A valuation found.\");\n else print409a(data);\n } catch (err) {\n printError(`Failed to fetch 409A valuation: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function issueEquityCommand(opts: {\n entityId?: string;\n grantType: string;\n shares: number;\n recipient: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.issueEquity({\n entity_id: eid, grant_type: opts.grantType, shares: opts.shares, recipient_name: opts.recipient,\n });\n printSuccess(`Equity issued: ${result.grant_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to issue equity: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function issueSafeCommand(opts: {\n entityId?: string;\n investor: string;\n amount: number;\n safeType: string;\n valuationCap: number;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.issueSafe({\n entity_id: eid, investor_name: opts.investor, principal_amount_cents: opts.amount,\n safe_type: opts.safeType, valuation_cap_cents: opts.valuationCap,\n });\n printSuccess(`SAFE issued: ${result.safe_note_id ?? result.safe_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to issue SAFE: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function transferSharesCommand(opts: {\n entityId?: string;\n fromGrant: string;\n to: string;\n shares: number;\n type: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.transferShares({\n entity_id: eid, from_holder: opts.fromGrant, to_holder: opts.to,\n shares: opts.shares, transfer_type: opts.type,\n });\n printSuccess(`Transfer complete: ${result.transfer_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to transfer shares: ${err}`);\n process.exit(1);\n }\n}\n\nexport async function distributeCommand(opts: {\n entityId?: string;\n amount: number;\n type: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.calculateDistribution({\n entity_id: eid, total_amount_cents: opts.amount, distribution_type: opts.type,\n });\n printSuccess(`Distribution calculated: ${result.distribution_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) {\n printError(`Failed to calculate distribution: ${err}`);\n process.exit(1);\n }\n}\n\nfunction print409a(data: Record<string, unknown>): void {\n console.log(chalk.green(\"─\".repeat(40)));\n console.log(chalk.green.bold(\" 409A Valuation\"));\n console.log(chalk.green(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"FMV/Share:\")} $${data.fmv_per_share ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Enterprise Value:\")} $${data.enterprise_value ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Valuation Date:\")} ${data.valuation_date ?? \"N/A\"}`);\n if (data.provider) console.log(` ${chalk.bold(\"Provider:\")} ${data.provider}`);\n console.log(chalk.green(\"─\".repeat(40)));\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function financeInvoiceCommand(opts: {\n entityId?: string; customer: string; amount: number; dueDate: string; description: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.createInvoice({\n entity_id: eid, customer_name: opts.customer, amount_cents: opts.amount,\n due_date: opts.dueDate, description: opts.description,\n });\n printSuccess(`Invoice created: ${result.invoice_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to create invoice: ${err}`); process.exit(1); }\n}\n\nexport async function financePayrollCommand(opts: {\n entityId?: string; periodStart: string; periodEnd: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.runPayroll({\n entity_id: eid, pay_period_start: opts.periodStart, pay_period_end: opts.periodEnd,\n });\n printSuccess(`Payroll run created: ${result.payroll_run_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to run payroll: ${err}`); process.exit(1); }\n}\n\nexport async function financePayCommand(opts: {\n entityId?: string; amount: number; recipient: string; method: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.submitPayment({\n entity_id: eid, amount_cents: opts.amount, recipient: opts.recipient,\n description: `Payment via ${opts.method}`,\n });\n printSuccess(`Payment submitted: ${result.payment_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to submit payment: ${err}`); process.exit(1); }\n}\n\nexport async function financeOpenAccountCommand(opts: {\n entityId?: string; institution: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.openBankAccount({ entity_id: eid, institution_name: opts.institution });\n printSuccess(`Bank account opened: ${result.account_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to open bank account: ${err}`); process.exit(1); }\n}\n\nexport async function financeClassifyContractorCommand(opts: {\n entityId?: string; name: string; state: string; hours: number;\n exclusive: boolean; duration: number; providesTools: boolean;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.classifyContractor({\n entity_id: eid, contractor_name: opts.name, state: opts.state, hours_per_week: opts.hours,\n exclusive_client: opts.exclusive, duration_months: opts.duration, provides_tools: opts.providesTools,\n });\n printSuccess(`Classification: ${result.risk_level ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to classify contractor: ${err}`); process.exit(1); }\n}\n\nexport async function financeReconcileCommand(opts: {\n entityId?: string; startDate: string; endDate: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.reconcileLedger({\n entity_id: eid, start_date: opts.startDate, end_date: opts.endDate,\n });\n printSuccess(`Ledger reconciled: ${result.reconciliation_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to reconcile ledger: ${err}`); process.exit(1); }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport {\n printGovernanceTable, printSeatsTable, printMeetingsTable,\n printResolutionsTable, printError, printSuccess, printJson,\n} from \"../output.js\";\n\nexport async function governanceListCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const bodies = await client.listGovernanceBodies(eid);\n if (opts.json) printJson(bodies);\n else if (bodies.length === 0) console.log(\"No governance bodies found.\");\n else printGovernanceTable(bodies);\n } catch (err) { printError(`Failed to fetch governance bodies: ${err}`); process.exit(1); }\n}\n\nexport async function governanceSeatsCommand(bodyId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const seats = await client.getGovernanceSeats(bodyId);\n if (opts.json) printJson(seats);\n else if (seats.length === 0) console.log(\"No seats found.\");\n else printSeatsTable(seats);\n } catch (err) { printError(`Failed to fetch seats: ${err}`); process.exit(1); }\n}\n\nexport async function governanceMeetingsCommand(bodyId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const meetings = await client.listMeetings(bodyId);\n if (opts.json) printJson(meetings);\n else if (meetings.length === 0) console.log(\"No meetings found.\");\n else printMeetingsTable(meetings);\n } catch (err) { printError(`Failed to fetch meetings: ${err}`); process.exit(1); }\n}\n\nexport async function governanceResolutionsCommand(meetingId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const resolutions = await client.getMeetingResolutions(meetingId);\n if (opts.json) printJson(resolutions);\n else if (resolutions.length === 0) console.log(\"No resolutions found.\");\n else printResolutionsTable(resolutions);\n } catch (err) { printError(`Failed to fetch resolutions: ${err}`); process.exit(1); }\n}\n\nexport async function governanceConveneCommand(opts: {\n entityId?: string; body: string; meetingType: string; title: string; date: string; agenda: string[];\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.scheduleMeeting({\n entity_id: eid, body_id: opts.body, meeting_type: opts.meetingType,\n title: opts.title, scheduled_date: opts.date,\n agenda_item_titles: opts.agenda,\n });\n printSuccess(`Meeting scheduled: ${result.meeting_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to schedule meeting: ${err}`); process.exit(1); }\n}\n\nexport async function governanceVoteCommand(\n meetingId: string,\n itemId: string,\n opts: { voter: string; vote: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, undefined);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.castVote(eid, meetingId, itemId, {\n voter_id: opts.voter, vote_value: opts.vote,\n });\n printSuccess(`Vote cast: ${result.vote_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to cast vote: ${err}`); process.exit(1); }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printDocumentsTable, printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function documentsListCommand(opts: { entityId?: string; json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const docs = await client.getEntityDocuments(eid);\n if (opts.json) printJson(docs);\n else if (docs.length === 0) console.log(\"No documents found.\");\n else printDocumentsTable(docs);\n } catch (err) { printError(`Failed to fetch documents: ${err}`); process.exit(1); }\n}\n\nexport async function documentsSigningLinkCommand(docId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = client.getSigningLink(docId);\n printSuccess(`Signing link: ${result.signing_url}`);\n console.log(\"Open this link in your browser to sign the document.\");\n } catch (err) { printError(`Failed to get signing link: ${err}`); process.exit(1); }\n}\n\nexport async function documentsGenerateCommand(opts: {\n entityId?: string; template: string; counterparty: string; effectiveDate?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.generateContract({\n entity_id: eid, template_type: opts.template,\n parameters: { counterparty_name: opts.counterparty, effective_date: opts.effectiveDate ?? \"\" },\n });\n printSuccess(`Contract generated: ${result.contract_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to generate contract: ${err}`); process.exit(1); }\n}\n","import { requireConfig, resolveEntityId } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function taxFileCommand(opts: { entityId?: string; type: string; year: number }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.fileTaxDocument({ entity_id: eid, document_type: opts.type, tax_year: opts.year });\n printSuccess(`Tax document filed: ${result.filing_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to file tax document: ${err}`); process.exit(1); }\n}\n\nexport async function taxDeadlineCommand(opts: {\n entityId?: string; type: string; dueDate: string; description: string; recurrence?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const eid = resolveEntityId(cfg, opts.entityId);\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.trackDeadline({\n entity_id: eid, deadline_type: opts.type, due_date: opts.dueDate,\n description: opts.description, recurrence: opts.recurrence ?? \"\",\n });\n printSuccess(`Deadline tracked: ${result.deadline_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to track deadline: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printAgentsTable, printError, printSuccess, printJson } from \"../output.js\";\nimport chalk from \"chalk\";\nimport Table from \"cli-table3\";\nimport type { ApiRecord } from \"../types.js\";\n\nexport async function agentsListCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const agents = await client.listAgents();\n if (opts.json) printJson(agents);\n else if (agents.length === 0) console.log(\"No agents found.\");\n else printAgentsTable(agents);\n } catch (err) { printError(`Failed to fetch agents: ${err}`); process.exit(1); }\n}\n\nexport async function agentsShowCommand(agentId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const agent = await client.getAgent(agentId);\n let usage: ApiRecord = {};\n try { usage = await client.getAgentUsage(agentId); } catch { /* ignore */ }\n if (opts.json) { printJson({ agent, usage }); return; }\n console.log(chalk.magenta(\"─\".repeat(40)));\n console.log(chalk.magenta.bold(\" Agent Detail\"));\n console.log(chalk.magenta(\"─\".repeat(40)));\n console.log(` ${chalk.bold(\"Name:\")} ${agent.name ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Status:\")} ${agent.status ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"Model:\")} ${agent.model ?? \"N/A\"}`);\n console.log(` ${chalk.bold(\"ID:\")} ${agent.agent_id ?? \"N/A\"}`);\n if (agent.system_prompt) {\n let prompt = String(agent.system_prompt);\n if (prompt.length > 100) prompt = prompt.slice(0, 97) + \"...\";\n console.log(` ${chalk.bold(\"Prompt:\")} ${prompt}`);\n }\n if (Object.keys(usage).length > 0) {\n console.log(`\\n ${chalk.bold(\"Usage:\")}`);\n for (const [k, v] of Object.entries(usage)) {\n if (k !== \"agent_id\") console.log(` ${k}: ${v}`);\n }\n }\n console.log(chalk.magenta(\"─\".repeat(40)));\n } catch (err) { printError(`Failed to fetch agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsCreateCommand(opts: { name: string; prompt: string; model?: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const data: ApiRecord = { name: opts.name, system_prompt: opts.prompt };\n if (opts.model) data.model = opts.model;\n const result = await client.createAgent(data);\n printSuccess(`Agent created: ${result.agent_id ?? result.id ?? \"OK\"}`);\n } catch (err) { printError(`Failed to create agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsPauseCommand(agentId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.updateAgent(agentId, { status: \"paused\" });\n printSuccess(`Agent ${agentId} paused.`);\n } catch (err) { printError(`Failed to pause agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsResumeCommand(agentId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.updateAgent(agentId, { status: \"active\" });\n printSuccess(`Agent ${agentId} resumed.`);\n } catch (err) { printError(`Failed to resume agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsDeleteCommand(agentId: string): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.deleteAgent(agentId);\n printSuccess(`Agent ${agentId} deleted.`);\n } catch (err) { printError(`Failed to delete agent: ${err}`); process.exit(1); }\n}\n\nexport async function agentsMessageCommand(agentId: string, opts: { body: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.sendAgentMessage(agentId, opts.body);\n printSuccess(`Message sent. Execution: ${result.execution_id ?? \"OK\"}`);\n } catch (err) { printError(`Failed to send message: ${err}`); process.exit(1); }\n}\n\nexport async function agentsExecutionsCommand(agentId: string, opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const executions = await client.listAgentExecutions(agentId);\n if (opts.json) { printJson(executions); return; }\n if (executions.length === 0) { console.log(\"No executions found.\"); return; }\n console.log(`\\n${chalk.bold(\"Agent Executions\")}`);\n const table = new Table({ head: [chalk.dim(\"ID\"), chalk.dim(\"Status\"), chalk.dim(\"Started\"), chalk.dim(\"Duration\")] });\n for (const ex of executions) {\n table.push([\n String(ex.execution_id ?? \"\").slice(0, 12),\n String(ex.status ?? \"\"),\n String(ex.started_at ?? \"\"),\n String(ex.duration ?? \"\"),\n ]);\n }\n console.log(table.toString());\n } catch (err) { printError(`Failed to fetch executions: ${err}`); process.exit(1); }\n}\n\nexport async function agentsSkillCommand(agentId: string, opts: {\n name: string; description: string; instructions?: string;\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await client.addAgentSkill(agentId, {\n skill_name: opts.name, description: opts.description, instructions: opts.instructions ?? \"\",\n });\n printSuccess(`Skill '${opts.name}' added to agent ${agentId}.`);\n printJson(result);\n } catch (err) { printError(`Failed to add skill: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printBillingPanel, printError, printSuccess, printJson } from \"../output.js\";\nimport { execSync } from \"node:child_process\";\n\nfunction makeClient() {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n return new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n}\n\nfunction openUrl(url: string) {\n try {\n const cmd = process.platform === \"darwin\" ? \"open\" : process.platform === \"win32\" ? \"start\" : \"xdg-open\";\n execSync(`${cmd} ${JSON.stringify(url)}`, { stdio: \"ignore\" });\n } catch { /* browser open is best-effort */ }\n}\n\nexport async function billingCommand(opts: { json?: boolean }): Promise<void> {\n const client = makeClient();\n try {\n const [status, plans] = await Promise.all([client.getBillingStatus(), client.getBillingPlans()]);\n if (opts.json) printJson({ status, plans });\n else printBillingPanel(status, plans);\n } catch (err) { printError(`Failed to fetch billing info: ${err}`); process.exit(1); }\n}\n\nexport async function billingPortalCommand(): Promise<void> {\n const client = makeClient();\n try {\n const result = await client.createBillingPortal();\n const url = result.portal_url as string;\n if (!url) { printError(\"No portal URL returned. Ensure you have an active subscription.\"); process.exit(1); }\n console.log(`Opening Stripe Customer Portal...\\n${url}`);\n openUrl(url);\n printSuccess(\"Portal opened in your browser.\");\n } catch (err) { printError(`Failed to create portal session: ${err}`); process.exit(1); }\n}\n\nexport async function billingUpgradeCommand(opts: { tier: string }): Promise<void> {\n const client = makeClient();\n try {\n const result = await client.createBillingCheckout(opts.tier);\n const url = result.checkout_url as string;\n if (!url) { printError(\"No checkout URL returned.\"); process.exit(1); }\n console.log(`Opening Stripe Checkout for ${opts.tier}...\\n${url}`);\n openUrl(url);\n printSuccess(\"Checkout opened in your browser.\");\n } catch (err) { printError(`Failed to create checkout session: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printApprovalsTable, printError, printSuccess, printJson } from \"../output.js\";\n\nexport async function approvalsListCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const approvals = await client.listPendingApprovals();\n if (opts.json) printJson(approvals);\n else if (approvals.length === 0) console.log(\"No pending approvals.\");\n else printApprovalsTable(approvals);\n } catch (err) { printError(`Failed to fetch approvals: ${err}`); process.exit(1); }\n}\n\nexport async function approvalsRespondCommand(\n approvalId: string,\n decision: string,\n opts: { message?: string }\n): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n await client.respondApproval(approvalId, decision, opts.message);\n printSuccess(`Approval ${approvalId} ${decision}d.`);\n } catch (err) { printError(`Failed to respond to approval: ${err}`); process.exit(1); }\n}\n","import { input, select } from \"@inquirer/prompts\";\nimport { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess } from \"../output.js\";\nimport type { ApiRecord } from \"../types.js\";\n\nexport async function formCommand(opts: {\n type?: string; name?: string; jurisdiction?: string; member?: string[];\n}): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n let serverCfg: ApiRecord = {};\n try { serverCfg = await client.getConfig(); } catch { /* ignore */ }\n\n let entityType = opts.type;\n if (!entityType) {\n const types = (serverCfg.entity_types ?? [\"llc\", \"c_corp\", \"s_corp\"]) as string[];\n entityType = await select({ message: \"Entity type\", choices: types.map((t) => ({ value: t, name: t })) });\n }\n\n let name = opts.name;\n if (!name) {\n name = await input({ message: \"Entity name\" });\n }\n\n let jurisdiction = opts.jurisdiction;\n if (!jurisdiction) {\n const jurisdictions = (serverCfg.jurisdictions ?? [\"DE\", \"WY\", \"NV\", \"CA\"]) as string[];\n jurisdiction = await select({\n message: \"Jurisdiction\",\n choices: jurisdictions.map((j) => ({ value: j, name: j })),\n default: \"DE\",\n });\n }\n\n const parsedMembers: ApiRecord[] = [];\n if (opts.member && opts.member.length > 0) {\n for (const m of opts.member) {\n const parts = m.split(\",\").map((p) => p.trim());\n if (parts.length < 3) {\n printError(`Invalid member format: ${m}. Expected: name,email,role[,ownership_pct]`);\n process.exit(1);\n }\n const member: ApiRecord = { name: parts[0], email: parts[1], role: parts[2] };\n if (parts.length >= 4) member.ownership_pct = parseFloat(parts[3]);\n parsedMembers.push(member);\n }\n } else {\n console.log(\"Add members (leave name blank to finish):\");\n while (true) {\n const mname = await input({ message: \" Member name (blank to finish)\", default: \"\" });\n if (!mname) break;\n const memail = await input({ message: \" Email\" });\n const mrole = await input({ message: \" Role\", default: \"founder\" });\n const mpctStr = await input({ message: \" Ownership %\", default: \"0\" });\n parsedMembers.push({\n name: mname, email: memail, role: mrole, ownership_pct: parseFloat(mpctStr),\n });\n }\n }\n\n for (const m of parsedMembers) {\n if (!m.investor_type) m.investor_type = \"natural_person\";\n }\n\n const result = await client.createFormation({\n entity_type: entityType, legal_name: name, jurisdiction, members: parsedMembers,\n });\n printSuccess(`Formation created: ${result.formation_id ?? result.id ?? \"OK\"}`);\n if (result.entity_id) console.log(`Entity ID: ${result.entity_id}`);\n } catch (err) {\n if (err instanceof Error && err.message.includes(\"exit\")) throw err;\n printError(`Failed to create formation: ${err}`);\n process.exit(1);\n }\n}\n","import { requireConfig, maskKey } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printJson } from \"../output.js\";\nimport chalk from \"chalk\";\nimport Table from \"cli-table3\";\n\nexport async function apiKeysCommand(opts: { json?: boolean }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const keys = await client.listApiKeys();\n if (opts.json) { printJson(keys); return; }\n if (keys.length === 0) { console.log(\"No API keys found.\"); return; }\n console.log(`\\n${chalk.bold(\"API Keys\")}`);\n const table = new Table({\n head: [chalk.dim(\"ID\"), chalk.dim(\"Name\"), chalk.dim(\"Key\"), chalk.dim(\"Created\"), chalk.dim(\"Last Used\")],\n });\n for (const k of keys) {\n table.push([\n String(k.id ?? k.api_key_id ?? \"\").slice(0, 12),\n String(k.name ?? \"\"),\n maskKey(String(k.key ?? k.api_key ?? \"\")),\n String(k.created_at ?? \"\"),\n String(k.last_used_at ?? \"\"),\n ]);\n }\n console.log(table.toString());\n } catch (err) { printError(`Failed to fetch API keys: ${err}`); process.exit(1); }\n}\n","import { requireConfig } from \"../config.js\";\nimport { CorpAPIClient } from \"../api-client.js\";\nimport { printError, printSuccess, printJson } from \"../output.js\";\nimport { withSpinner } from \"../spinner.js\";\n\nexport async function demoCommand(opts: { name: string }): Promise<void> {\n const cfg = requireConfig(\"api_url\", \"api_key\", \"workspace_id\");\n const client = new CorpAPIClient(cfg.api_url, cfg.api_key, cfg.workspace_id);\n try {\n const result = await withSpinner(\"Loading\", () => client.seedDemo(opts.name));\n printSuccess(`Demo seeded: ${result.entity_id ?? \"OK\"}`);\n printJson(result);\n } catch (err) { printError(`Failed to seed demo: ${err}`); process.exit(1); }\n}\n","import type { ChildProcess } from \"node:child_process\";\n\ninterface ServeOptions {\n port: string;\n dataDir: string;\n}\n\nexport async function serveCommand(opts: ServeOptions): Promise<void> {\n let server: { getBinaryPath: () => string | null; isAvailable: () => boolean; startServer: (options: Record<string, unknown>) => ChildProcess };\n try {\n server = await import(\"@thecorporation/server\");\n } catch {\n console.error(\n \"Error: @thecorporation/server is not installed.\\n\\n\" +\n \"Install it with:\\n\" +\n \" npm install @thecorporation/server\\n\\n\" +\n \"Or run the Rust binary directly:\\n\" +\n \" cd services/api-rs && cargo run\"\n );\n process.exit(1);\n }\n\n if (!server.isAvailable()) {\n console.error(\n \"Error: No server binary available for this platform.\\n\\n\" +\n \"Pre-built binaries are available for:\\n\" +\n \" - linux-x64, linux-arm64\\n\" +\n \" - darwin-x64, darwin-arm64\\n\" +\n \" - win32-x64\\n\\n\" +\n \"You can build from source:\\n\" +\n \" cd services/api-rs && cargo build --release\"\n );\n process.exit(1);\n }\n\n const port = parseInt(opts.port, 10);\n if (isNaN(port) || port < 1 || port > 65535) {\n console.error(`Error: Invalid port \"${opts.port}\"`);\n process.exit(1);\n }\n\n console.log(`Starting server on port ${port}...`);\n console.log(`Data directory: ${opts.dataDir}`);\n\n const child = server.startServer({\n port,\n dataDir: opts.dataDir,\n });\n\n const shutdown = () => {\n console.log(\"\\nShutting down server...\");\n child.kill(\"SIGTERM\");\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n child.on(\"exit\", (code) => {\n process.exit(code ?? 0);\n });\n}\n","import { Command } from \"commander\";\n\nconst program = new Command();\nprogram\n .name(\"corp\")\n .description(\"corp — Corporate governance from the terminal\")\n .version(\"0.1.0\");\n\n// --- setup ---\nprogram\n .command(\"setup\")\n .description(\"Interactive setup wizard\")\n .action(async () => {\n const { setupCommand } = await import(\"./commands/setup.js\");\n await setupCommand();\n });\n\n// --- status ---\nprogram\n .command(\"status\")\n .description(\"Workspace summary\")\n .action(async () => {\n const { statusCommand } = await import(\"./commands/status.js\");\n await statusCommand();\n });\n\n// --- config ---\nconst configCmd = program.command(\"config\").description(\"Manage configuration\");\nconfigCmd\n .command(\"set <key> <value>\")\n .description(\"Set a config value (dot-path)\")\n .action(async (key: string, value: string) => {\n const { configSetCommand } = await import(\"./commands/config.js\");\n configSetCommand(key, value);\n });\nconfigCmd\n .command(\"get <key>\")\n .description(\"Get a config value (dot-path)\")\n .action(async (key: string) => {\n const { configGetCommand } = await import(\"./commands/config.js\");\n configGetCommand(key);\n });\nconfigCmd\n .command(\"list\")\n .description(\"List all config (API keys masked)\")\n .action(async () => {\n const { configListCommand } = await import(\"./commands/config.js\");\n configListCommand();\n });\n\n// --- obligations ---\nprogram\n .command(\"obligations\")\n .description(\"List obligations with urgency tiers\")\n .option(\"--tier <tier>\", \"Filter by urgency tier\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { obligationsCommand } = await import(\"./commands/obligations.js\");\n await obligationsCommand(opts);\n });\n\n// --- digest ---\nprogram\n .command(\"digest\")\n .description(\"View or trigger daily digests\")\n .option(\"--trigger\", \"Trigger digest now\")\n .option(\"--key <key>\", \"Get specific digest by key\")\n .action(async (opts) => {\n const { digestCommand } = await import(\"./commands/digest.js\");\n await digestCommand(opts);\n });\n\n// --- link ---\nprogram\n .command(\"link\")\n .description(\"Generate a claim code to pair another device\")\n .action(async () => {\n const { linkCommand } = await import(\"./commands/link.js\");\n await linkCommand();\n });\n\n// --- claim ---\nprogram\n .command(\"claim <code>\")\n .description(\"Redeem a claim code to join a workspace\")\n .action(async (code: string) => {\n const { claimCommand } = await import(\"./commands/claim.js\");\n await claimCommand(code);\n });\n\n// --- chat ---\nprogram\n .command(\"chat\")\n .description(\"Interactive LLM chat session\")\n .action(async () => {\n const { chatCommand } = await import(\"./chat.js\");\n await chatCommand();\n });\n\n// --- entities ---\nconst entitiesCmd = program\n .command(\"entities\")\n .description(\"List entities, show detail, convert, or dissolve\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { entitiesCommand } = await import(\"./commands/entities.js\");\n await entitiesCommand(opts);\n });\nentitiesCmd\n .command(\"show <entity-id>\")\n .option(\"--json\", \"Output as JSON\")\n .description(\"Show entity detail\")\n .action(async (entityId: string, opts) => {\n const { entitiesShowCommand } = await import(\"./commands/entities.js\");\n await entitiesShowCommand(entityId, opts);\n });\nentitiesCmd\n .command(\"convert <entity-id>\")\n .requiredOption(\"--to <type>\", \"Target entity type (llc, corporation)\")\n .option(\"--jurisdiction <jurisdiction>\", \"New jurisdiction\")\n .description(\"Convert entity to a different type\")\n .action(async (entityId: string, opts) => {\n const { entitiesConvertCommand } = await import(\"./commands/entities.js\");\n await entitiesConvertCommand(entityId, opts);\n });\nentitiesCmd\n .command(\"dissolve <entity-id>\")\n .requiredOption(\"--reason <reason>\", \"Dissolution reason\")\n .option(\"--effective-date <date>\", \"Effective date (ISO 8601)\")\n .description(\"Dissolve an entity\")\n .action(async (entityId: string, opts) => {\n const { entitiesDissolveCommand } = await import(\"./commands/entities.js\");\n await entitiesDissolveCommand(entityId, opts);\n });\n\n// --- contacts ---\nconst contactsCmd = program\n .command(\"contacts\")\n .description(\"Contact management\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { contactsListCommand } = await import(\"./commands/contacts.js\");\n await contactsListCommand(opts);\n });\ncontactsCmd\n .command(\"show <contact-id>\")\n .option(\"--json\", \"Output as JSON\")\n .description(\"Show contact detail/profile\")\n .action(async (contactId: string, opts) => {\n const { contactsShowCommand } = await import(\"./commands/contacts.js\");\n await contactsShowCommand(contactId, opts);\n });\ncontactsCmd\n .command(\"add\")\n .requiredOption(\"--name <name>\", \"Contact name\")\n .requiredOption(\"--email <email>\", \"Contact email\")\n .option(\"--category <category>\", \"Contact category\")\n .option(\"--phone <phone>\", \"Phone number\")\n .option(\"--notes <notes>\", \"Notes\")\n .description(\"Add a new contact\")\n .action(async (opts) => {\n const { contactsAddCommand } = await import(\"./commands/contacts.js\");\n await contactsAddCommand(opts);\n });\ncontactsCmd\n .command(\"edit <contact-id>\")\n .option(\"--name <name>\", \"Contact name\")\n .option(\"--email <email>\", \"Contact email\")\n .option(\"--category <category>\", \"Contact category\")\n .option(\"--phone <phone>\", \"Phone number\")\n .option(\"--notes <notes>\", \"Notes\")\n .description(\"Edit an existing contact\")\n .action(async (contactId: string, opts) => {\n const { contactsEditCommand } = await import(\"./commands/contacts.js\");\n await contactsEditCommand(contactId, opts);\n });\n\n// --- cap-table ---\nconst capTableCmd = program\n .command(\"cap-table\")\n .description(\"Cap table, SAFEs, transfers, valuations\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { capTableCommand } = await import(\"./commands/cap-table.js\");\n await capTableCommand(opts);\n });\ncapTableCmd.command(\"safes\").description(\"SAFE notes\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { safesCommand } = await import(\"./commands/cap-table.js\");\n await safesCommand(parent);\n});\ncapTableCmd.command(\"transfers\").description(\"Share transfers\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { transfersCommand } = await import(\"./commands/cap-table.js\");\n await transfersCommand(parent);\n});\ncapTableCmd.command(\"valuations\").description(\"Valuations history\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { valuationsCommand } = await import(\"./commands/cap-table.js\");\n await valuationsCommand(parent);\n});\ncapTableCmd.command(\"409a\").description(\"Current 409A valuation\").action(async (_opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { fourOhNineACommand } = await import(\"./commands/cap-table.js\");\n await fourOhNineACommand(parent);\n});\ncapTableCmd\n .command(\"issue-equity\")\n .requiredOption(\"--grant-type <type>\", \"Grant type\")\n .requiredOption(\"--shares <n>\", \"Number of shares\", parseInt)\n .requiredOption(\"--recipient <name>\", \"Recipient name\")\n .description(\"Issue an equity grant\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { issueEquityCommand } = await import(\"./commands/cap-table.js\");\n await issueEquityCommand({ ...opts, entityId: parent.entityId });\n });\ncapTableCmd\n .command(\"issue-safe\")\n .requiredOption(\"--investor <name>\", \"Investor name\")\n .requiredOption(\"--amount <n>\", \"Principal amount in cents\", parseInt)\n .option(\"--safe-type <type>\", \"SAFE type\", \"post_money\")\n .requiredOption(\"--valuation-cap <n>\", \"Valuation cap in cents\", parseInt)\n .description(\"Issue a SAFE note\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { issueSafeCommand } = await import(\"./commands/cap-table.js\");\n await issueSafeCommand({ ...opts, entityId: parent.entityId });\n });\ncapTableCmd\n .command(\"transfer\")\n .requiredOption(\"--from-grant <id>\", \"Source grant ID\")\n .requiredOption(\"--to <name>\", \"Recipient name\")\n .requiredOption(\"--shares <n>\", \"Number of shares\", parseInt)\n .option(\"--type <type>\", \"Transfer type\", \"sale\")\n .description(\"Transfer shares\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { transferSharesCommand } = await import(\"./commands/cap-table.js\");\n await transferSharesCommand({ ...opts, entityId: parent.entityId });\n });\ncapTableCmd\n .command(\"distribute\")\n .requiredOption(\"--amount <n>\", \"Total distribution amount in cents\", parseInt)\n .option(\"--type <type>\", \"Distribution type\", \"pro_rata\")\n .description(\"Calculate a distribution\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { distributeCommand } = await import(\"./commands/cap-table.js\");\n await distributeCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- finance ---\nconst financeCmd = program\n .command(\"finance\")\n .description(\"Invoicing, payroll, payments, banking\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\");\nfinanceCmd\n .command(\"invoice\")\n .requiredOption(\"--customer <name>\", \"Customer name\")\n .requiredOption(\"--amount <n>\", \"Amount in cents\", parseInt)\n .requiredOption(\"--due-date <date>\", \"Due date (ISO 8601)\")\n .option(\"--description <desc>\", \"Description\", \"Services rendered\")\n .description(\"Create an invoice\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeInvoiceCommand } = await import(\"./commands/finance.js\");\n await financeInvoiceCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"payroll\")\n .requiredOption(\"--period-start <date>\", \"Pay period start\")\n .requiredOption(\"--period-end <date>\", \"Pay period end\")\n .description(\"Run payroll\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financePayrollCommand } = await import(\"./commands/finance.js\");\n await financePayrollCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"pay\")\n .requiredOption(\"--amount <n>\", \"Amount in cents\", parseInt)\n .requiredOption(\"--recipient <name>\", \"Recipient name\")\n .option(\"--method <method>\", \"Payment method\", \"ach\")\n .description(\"Submit a payment\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financePayCommand } = await import(\"./commands/finance.js\");\n await financePayCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"open-account\")\n .option(\"--institution <name>\", \"Banking institution\", \"Mercury\")\n .description(\"Open a business bank account\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeOpenAccountCommand } = await import(\"./commands/finance.js\");\n await financeOpenAccountCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"classify-contractor\")\n .requiredOption(\"--name <name>\", \"Contractor name\")\n .requiredOption(\"--state <code>\", \"US state code\")\n .requiredOption(\"--hours <n>\", \"Hours per week\", parseInt)\n .option(\"--exclusive\", \"Exclusive client\", false)\n .requiredOption(\"--duration <n>\", \"Duration in months\", parseInt)\n .option(\"--provides-tools\", \"Company provides tools\", false)\n .description(\"Analyze contractor classification risk\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeClassifyContractorCommand } = await import(\"./commands/finance.js\");\n await financeClassifyContractorCommand({ ...opts, entityId: parent.entityId });\n });\nfinanceCmd\n .command(\"reconcile\")\n .requiredOption(\"--start-date <date>\", \"Period start\")\n .requiredOption(\"--end-date <date>\", \"Period end\")\n .description(\"Reconcile ledger\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { financeReconcileCommand } = await import(\"./commands/finance.js\");\n await financeReconcileCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- governance ---\nconst governanceCmd = program\n .command(\"governance\")\n .description(\"Governance bodies, seats, meetings, resolutions\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { governanceListCommand } = await import(\"./commands/governance.js\");\n await governanceListCommand(opts);\n });\ngovernanceCmd\n .command(\"seats <body-id>\")\n .description(\"Seats for a governance body\")\n .action(async (bodyId: string, _opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceSeatsCommand } = await import(\"./commands/governance.js\");\n await governanceSeatsCommand(bodyId, parent);\n });\ngovernanceCmd\n .command(\"meetings <body-id>\")\n .description(\"Meetings for a governance body\")\n .action(async (bodyId: string, _opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceMeetingsCommand } = await import(\"./commands/governance.js\");\n await governanceMeetingsCommand(bodyId, parent);\n });\ngovernanceCmd\n .command(\"resolutions <meeting-id>\")\n .description(\"Resolutions for a meeting\")\n .action(async (meetingId: string, _opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceResolutionsCommand } = await import(\"./commands/governance.js\");\n await governanceResolutionsCommand(meetingId, parent);\n });\ngovernanceCmd\n .command(\"convene\")\n .requiredOption(\"--body <id>\", \"Governance body ID\")\n .requiredOption(\"--type <type>\", \"Meeting type\")\n .requiredOption(\"--title <title>\", \"Meeting title\")\n .requiredOption(\"--date <date>\", \"Meeting date (ISO 8601)\")\n .option(\"--agenda <item>\", \"Agenda item (repeatable)\", (v: string, a: string[]) => [...a, v], [] as string[])\n .description(\"Convene a governance meeting\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { governanceConveneCommand } = await import(\"./commands/governance.js\");\n await governanceConveneCommand({ ...opts, meetingType: opts.type, entityId: parent.entityId });\n });\ngovernanceCmd\n .command(\"vote <meeting-id> <item-id>\")\n .requiredOption(\"--voter <name>\", \"Voter name/ID\")\n .requiredOption(\"--vote <value>\", \"Vote (yea, nay, abstain)\")\n .description(\"Cast a vote on an agenda item\")\n .action(async (meetingId: string, itemId: string, opts) => {\n const { governanceVoteCommand } = await import(\"./commands/governance.js\");\n await governanceVoteCommand(meetingId, itemId, opts);\n });\n\n// --- documents ---\nconst documentsCmd = program\n .command(\"documents\")\n .description(\"Documents and signing\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { documentsListCommand } = await import(\"./commands/documents.js\");\n await documentsListCommand(opts);\n });\ndocumentsCmd\n .command(\"signing-link <doc-id>\")\n .description(\"Get a signing link for a document\")\n .action(async (docId: string) => {\n const { documentsSigningLinkCommand } = await import(\"./commands/documents.js\");\n await documentsSigningLinkCommand(docId);\n });\ndocumentsCmd\n .command(\"generate\")\n .requiredOption(\"--template <type>\", \"Template type\")\n .requiredOption(\"--counterparty <name>\", \"Counterparty name\")\n .option(\"--effective-date <date>\", \"Effective date (ISO 8601)\")\n .description(\"Generate a contract from a template\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { documentsGenerateCommand } = await import(\"./commands/documents.js\");\n await documentsGenerateCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- tax ---\nconst taxCmd = program\n .command(\"tax\")\n .description(\"Tax filings and deadline tracking\")\n .option(\"--entity-id <id>\", \"Entity ID (overrides active entity)\");\ntaxCmd\n .command(\"file\")\n .requiredOption(\"--type <type>\", \"Document type\")\n .requiredOption(\"--year <year>\", \"Tax year\", parseInt)\n .description(\"File a tax document\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { taxFileCommand } = await import(\"./commands/tax.js\");\n await taxFileCommand({ ...opts, entityId: parent.entityId });\n });\ntaxCmd\n .command(\"deadline\")\n .requiredOption(\"--type <type>\", \"Deadline type\")\n .requiredOption(\"--due-date <date>\", \"Due date (ISO 8601)\")\n .requiredOption(\"--description <desc>\", \"Description\")\n .option(\"--recurrence <recurrence>\", \"Recurrence\")\n .description(\"Track a compliance deadline\")\n .action(async (opts, cmd) => {\n const parent = cmd.parent!.opts();\n const { taxDeadlineCommand } = await import(\"./commands/tax.js\");\n await taxDeadlineCommand({ ...opts, entityId: parent.entityId });\n });\n\n// --- agents ---\nconst agentsCmd = program\n .command(\"agents\")\n .description(\"Agent management\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { agentsListCommand } = await import(\"./commands/agents.js\");\n await agentsListCommand(opts);\n });\nagentsCmd.command(\"show <agent-id>\").option(\"--json\", \"Output as JSON\").description(\"Show agent detail\")\n .action(async (agentId: string, opts) => {\n const { agentsShowCommand } = await import(\"./commands/agents.js\");\n await agentsShowCommand(agentId, opts);\n });\nagentsCmd.command(\"create\").requiredOption(\"--name <name>\", \"Agent name\")\n .requiredOption(\"--prompt <prompt>\", \"System prompt\").option(\"--model <model>\", \"Model\")\n .description(\"Create a new agent\")\n .action(async (opts) => {\n const { agentsCreateCommand } = await import(\"./commands/agents.js\");\n await agentsCreateCommand(opts);\n });\nagentsCmd.command(\"pause <agent-id>\").description(\"Pause an agent\")\n .action(async (agentId: string) => {\n const { agentsPauseCommand } = await import(\"./commands/agents.js\");\n await agentsPauseCommand(agentId);\n });\nagentsCmd.command(\"resume <agent-id>\").description(\"Resume a paused agent\")\n .action(async (agentId: string) => {\n const { agentsResumeCommand } = await import(\"./commands/agents.js\");\n await agentsResumeCommand(agentId);\n });\nagentsCmd.command(\"delete <agent-id>\").description(\"Delete an agent\")\n .action(async (agentId: string) => {\n const { agentsDeleteCommand } = await import(\"./commands/agents.js\");\n await agentsDeleteCommand(agentId);\n });\nagentsCmd.command(\"message <agent-id>\").requiredOption(\"--body <text>\", \"Message text\")\n .description(\"Send a message to an agent\")\n .action(async (agentId: string, opts) => {\n const { agentsMessageCommand } = await import(\"./commands/agents.js\");\n await agentsMessageCommand(agentId, opts);\n });\nagentsCmd.command(\"executions <agent-id>\").option(\"--json\", \"Output as JSON\")\n .description(\"List agent execution history\")\n .action(async (agentId: string, opts) => {\n const { agentsExecutionsCommand } = await import(\"./commands/agents.js\");\n await agentsExecutionsCommand(agentId, opts);\n });\nagentsCmd.command(\"skill <agent-id>\").requiredOption(\"--name <name>\", \"Skill name\")\n .requiredOption(\"--description <desc>\", \"Skill description\").option(\"--instructions <text>\", \"Instructions\")\n .description(\"Add a skill to an agent\")\n .action(async (agentId: string, opts) => {\n const { agentsSkillCommand } = await import(\"./commands/agents.js\");\n await agentsSkillCommand(agentId, opts);\n });\n\n// --- billing ---\nconst billingCmd = program\n .command(\"billing\")\n .description(\"Billing status, plans, and subscription management\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { billingCommand } = await import(\"./commands/billing.js\");\n await billingCommand(opts);\n });\nbillingCmd.command(\"portal\").description(\"Open Stripe Customer Portal\")\n .action(async () => {\n const { billingPortalCommand } = await import(\"./commands/billing.js\");\n await billingPortalCommand();\n });\nbillingCmd.command(\"upgrade\").option(\"--tier <tier>\", \"Plan to upgrade to\", \"cloud\")\n .description(\"Open Stripe Checkout to upgrade your plan\")\n .action(async (opts) => {\n const { billingUpgradeCommand } = await import(\"./commands/billing.js\");\n await billingUpgradeCommand(opts);\n });\n\n// --- approvals ---\nconst approvalsCmd = program\n .command(\"approvals\")\n .description(\"Pending approvals and responses\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { approvalsListCommand } = await import(\"./commands/approvals.js\");\n await approvalsListCommand(opts);\n });\napprovalsCmd.command(\"approve <approval-id>\").option(\"--message <msg>\", \"Optional message\")\n .description(\"Approve a pending approval\")\n .action(async (approvalId: string, opts) => {\n const { approvalsRespondCommand } = await import(\"./commands/approvals.js\");\n await approvalsRespondCommand(approvalId, \"approve\", opts);\n });\napprovalsCmd.command(\"reject <approval-id>\").option(\"--message <msg>\", \"Optional message\")\n .description(\"Reject a pending approval\")\n .action(async (approvalId: string, opts) => {\n const { approvalsRespondCommand } = await import(\"./commands/approvals.js\");\n await approvalsRespondCommand(approvalId, \"reject\", opts);\n });\n\n// --- form ---\nprogram\n .command(\"form\")\n .description(\"Create a new entity (interactive or scripted)\")\n .option(\"--type <type>\", \"Entity type (llc, c_corp, etc.)\")\n .option(\"--name <name>\", \"Entity name\")\n .option(\"--jurisdiction <jurisdiction>\", \"Jurisdiction (e.g. DE, WY)\")\n .option(\"--member <member>\", \"Member as 'name,email,role[,pct]' (repeatable)\", (v: string, a: string[]) => [...a, v], [] as string[])\n .action(async (opts) => {\n const { formCommand } = await import(\"./commands/form.js\");\n await formCommand(opts);\n });\n\n// --- api-keys ---\nprogram\n .command(\"api-keys\")\n .description(\"List API keys\")\n .option(\"--json\", \"Output as JSON\")\n .action(async (opts) => {\n const { apiKeysCommand } = await import(\"./commands/api-keys.js\");\n await apiKeysCommand(opts);\n });\n\n// --- demo ---\nprogram\n .command(\"demo\")\n .description(\"Seed a fully-populated demo corporation\")\n .requiredOption(\"--name <name>\", \"Corporation name\")\n .action(async (opts) => {\n const { demoCommand } = await import(\"./commands/demo.js\");\n await demoCommand(opts);\n });\n\n// --- serve ---\nprogram\n .command(\"serve\")\n .description(\"Start the API server locally\")\n .option(\"--port <port>\", \"Port to listen on\", \"8000\")\n .option(\"--data-dir <path>\", \"Data directory\", \"./data/repos\")\n .action(async (opts) => {\n const { serveCommand } = await import(\"./commands/serve.js\");\n await serveCommand(opts);\n });\n\nprogram.parse();\n"],"mappings":"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","names":["s","init_config","join","homedir","chalk","chalk","chalk","chalk","chalk","Table","input","chalk","Table","setupCommand","statusCommand","configSetCommand","configGetCommand","configListCommand","obligationsCommand","digestCommand","linkCommand","claimCommand","chatCommand","entitiesCommand","entitiesShowCommand","entitiesConvertCommand","entitiesDissolveCommand","contactsListCommand","contactsShowCommand","contactsAddCommand","contactsEditCommand","capTableCommand","safesCommand","transfersCommand","valuationsCommand","fourOhNineACommand","issueEquityCommand","issueSafeCommand","transferSharesCommand","distributeCommand","financeInvoiceCommand","financePayrollCommand","financePayCommand","financeOpenAccountCommand","financeClassifyContractorCommand","financeReconcileCommand","governanceListCommand","governanceSeatsCommand","governanceMeetingsCommand","governanceResolutionsCommand","governanceConveneCommand","governanceVoteCommand","documentsListCommand","documentsSigningLinkCommand","documentsGenerateCommand","taxFileCommand","taxDeadlineCommand","agentsListCommand","agentsShowCommand","agentsCreateCommand","agentsPauseCommand","agentsResumeCommand","agentsDeleteCommand","agentsMessageCommand","agentsExecutionsCommand","agentsSkillCommand","billingCommand","billingPortalCommand","billingUpgradeCommand","approvalsListCommand","approvalsRespondCommand","formCommand","apiKeysCommand","demoCommand","serveCommand"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thecorporation/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "corp — Corporate governance from the terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@thecorporation/corp-tools": "1.0.
|
|
20
|
+
"@thecorporation/corp-tools": "1.0.5",
|
|
21
21
|
"commander": "^13.1.0",
|
|
22
22
|
"chalk": "^5.4.1",
|
|
23
23
|
"cli-table3": "^0.6.5",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"openai": "^4.80.0"
|
|
28
28
|
},
|
|
29
29
|
"optionalDependencies": {
|
|
30
|
-
"@thecorporation/server": "1.0.
|
|
30
|
+
"@thecorporation/server": "1.0.5"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"tsup": "^8.4.0",
|