Skip to content

g1t/apps/sudo/app/lib/services.server.ts

38 lines1,475 bytesCodeBlame

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Billing accounts, terms and enterprises; g1t is no longer free1import { env } from "cloudflare:workers";
2
status.g1t.sh with incident management, invites that land you in the workspace, settings as pages, usage without quotas3import {
Models: g1t keeps up with new models, and staff choose each default in sudo4 type ModelDiscoveryApi,
status.g1t.sh with incident management, invites that land you in the workspace, settings as pages, usage without quotas5 type StatusAdminApi,
6 accountsAdminClient,
7 billingAdminClient,
8 billingClient,
9 eventsClient,
10 identityAdminClient,
11} from "@g1t/contracts";
Billing accounts, terms and enterprises; g1t is no longer free12
13/** Staff-only billing, on the billing service. */
14export const admin = billingAdminClient(env.BILLING);
Billing on Stripe's pages, month-end charges, warnings; sudo by workspace15
A menu shaped by how g1t works, Soon pages for every promise, and sudo for sales16/** The public price book, read-only, from the same service. */
17export const priceBook = () => billingClient(env.BILLING).prices();
18
Billing on Stripe's pages, month-end charges, warnings; sudo by workspace19/** Staff-only identity: every workspace, its owners and members. */
20export const identity = identityAdminClient(env.IDENTITY);
Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look21
22/** Staff-only accounts: a person's email addresses and security log. */
23export const accountsAdmin = accountsAdminClient(env.IDENTITY);
24
25/** The workspace's plan, caps and pause, as billing gives them to every service. */
26export const entitlements = (workspace: string) => billingClient(env.BILLING).entitlements(workspace);
27
28/** The event log, read-only: sudo lists `abuse.flagged`. */
29export const events = eventsClient(env.EVENTS);
status.g1t.sh with incident management, invites that land you in the workspace, settings as pages, usage without quotas30
31/** The status page's incidents (apps/status's `StatusAdmin` entrypoint). */
32export const statusAdmin = env.STATUS as unknown as StatusAdminApi;
33
Models: g1t keeps up with new models, and staff choose each default in sudo34/** "Check for new models": the model proxy's `Discovery` entrypoint (services/models). */
35export const modelDiscovery = env.MODELS as unknown as ModelDiscoveryApi;
36
status.g1t.sh with incident management, invites that land you in the workspace, settings as pages, usage without quotas37/** STAFF_EMAILS, for suggesting staff in the incident roles. */
38export const staffEmails = (): string => env.STAFF_EMAILS ?? "";