Skip to content

Add a venture capital tenant package - #55

Open
andreolf wants to merge 1 commit into
CopilotKit:mainfrom
andreolf:feat/vc-tenant-package
Open

Add a venture capital tenant package#55
andreolf wants to merge 1 commit into
CopilotKit:mainfrom
andreolf:feat/vc-tenant-package

Conversation

@andreolf

Copy link
Copy Markdown

What this changes

Adds a second example tenant package beside examples/fintech, for a venture fund. Five coworkers, all configuration rather than code:

  • Deal Scout (built-in) — screens inbound decks and intros, briefs them against the thesis.
  • Diligence Analyst (remote-ag-ui) — first-pass market and company diligence on a governed computer; endpoint read from MANAGED_AGENT_AG_UI_URL with a fallback to the Bot in the box.
  • Portfolio Monitor, Fund Knowledge, LP Relations (built-in).

Channels scope them across partners, investment, and platform groups. The point is to show the package format on a second vertical, and to give funds a starting point they can edit rather than author from scratch. Worth doing because the format is easy to get subtly wrong by hand (cross-file agent references, environment fallbacks), and a worked second example is the cheapest way to document it.

Includes a test mirroring fintech-package.test.ts that checks the five files exist, the brand id is present, and — like the clean-checkout test — that every ${VAR} in agents.yaml carries a :- fallback so a fresh clone can read the package with no .env.

Where it runs

No runtime code. This is static YAML loaded by the existing tenant-package reader; it adds no state, no listener, no fan-out.

  • New state that outlives a request? None.
  • What happens on the second replica? No change; the package is read identically by every replica at startup, as examples/fintech already is.
  • Anything serialised? None.
  • Anything fanned out to a browser? None.
  • New listener, port, or schedule? None.

Boundary and audit

  • Every acting call still goes through the gateway: resolve, decide, audit, then act. Unchanged — no acting code here.
  • New refusals and new failures each write a row. N/A.
  • Nothing new is trusted from the client that the server can resolve itself. N/A.

Proof

$ bun test tests/vc-package.test.ts tests/fintech-package.test.ts
 3 pass, 0 fail

# loaded through the real validator
$ MANAGED_AGENT_AG_UI_URL= bun -e 'import {loadTenantPackage} from "./server/src/tenant-package.ts";
  const p = await loadTenantPackage("./examples/vc"); console.log(p.tenantId, p.agents.length, p.channels.length)'
venture 5 5

$ bun run format:check   # clean
$ bun run lint           # clean (new file)

Run it with TENANT_PACKAGE_DIR=../examples/vc bash scripts/start.sh.

A second example package beside fintech, for a venture fund: five coworkers
(deal screening, first-pass diligence on a governed computer, portfolio
tracking, fund knowledge, LP reporting) scoped across partner, investment, and
platform groups. Configuration, not code.

Loads through the tenant-package validator, uses the same ${VAR:-fallback}
convention as fintech so a clone reads it with no .env, and ships a test that
mirrors the fintech package test and checks every environment reference has a
fallback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant