Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy-dev2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
- name: Verify the site answers
run: |
for i in $(seq 1 10); do
code=$(curl -s -o /dev/null -w '%{http_code}' "https://tleehealth.com/api/v1/health" || true)
code=$(curl -s -o /dev/null -w '%{http_code}' "https://tleehealth.pwa.pit.world/api/v1/health" || true)
case "$code" in 2*) echo "tleehealth.com $code"; exit 0;; esac
echo "attempt $i: $code"; sleep 10
done
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ up to 1,000 seats, whichever is lower. Patients and leads are free.
| `packages/cli` | `@profullstack/tleehealth`: CLI, hqtui front-desk TUI (`tleehealth tui`), API client |
| `packages/mcp` | `@profullstack/tleehealth-mcp`: MCP server over stdio |
| `docs/e2ee-record-vault.md` | E2EE vault protocol, limits and legacy-data boundary |
| `bin/install.sh` | `curl -fsSL https://tleehealth.com/install.sh \| sh` |
| `bin/install.sh` | `curl -fsSL https://tleehealth.pwa.pit.world/install.sh \| sh` |

```sh
bun install
Expand All @@ -56,4 +56,4 @@ bun run dev # http://localhost:3000 (without RESEND_API_KEY the sign-in l
`release.yml` tags that CLI version, creates the GitHub release, and publishes both
packages to npm. The CLI package exports the shared vault crypto module.

The API is listed at https://tleehealth.com/llms.txt.
The API is listed at https://tleehealth.pwa.pit.world/llms.txt.
2 changes: 1 addition & 1 deletion apps/web/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>tleehealth: the practice that runs itself</title>
<meta name="description" content="Telehealth and practice management with an AI agent that calls every patient. Scheduling, prescriptions, labs, care plans and Medicare navigation billing. $10 per seat or $199 for up to 1,000.">
<link rel="canonical" href="https://tleehealth.com/">
<link rel="canonical" href="https://tleehealth.pwa.pit.world/">
<link rel="manifest" href="/manifest.webmanifest">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<meta name="theme-color" content="#0A0D0C">
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ app.post('/webhooks/telnyx', async (c) => {

/* --------------------------------------------------------------------- API -- */

app.get('/api/v1', (c) => c.json({ name: 'tleehealth', version: VERSION, docs: 'https://tleehealth.com/llms.txt' }));
app.get('/api/v1', (c) => c.json({ name: 'tleehealth', version: VERSION, docs: 'https://tleehealth.pwa.pit.world/llms.txt' }));

// Up means the app AND its database answer; 503 otherwise.
app.get('/api/v1/health', async (c) => {
Expand Down Expand Up @@ -334,7 +334,7 @@ app.get('/.well-known/jwks-sandbox.json', jwksRoute);
app.get('/.well-known/openwebring.json', (c) =>
c.json({
openwebring: '0.1',
site: { url: 'https://tleehealth.com/', name: 'tleehealth' },
site: { url: 'https://tleehealth.pwa.pit.world/', name: 'tleehealth' },
made_by: 'both',
rings: [{ ring: 'https://rssamplifier.com/ring/profullstack', slug: 'tleehealth-com' }],
}),
Expand All @@ -353,7 +353,7 @@ app.get('/llms.txt', (c) =>

Pricing: $10 per team seat per month, or $199/month for up to 1,000 seats. Patients and leads are free.

## API (https://tleehealth.com/api/v1)
## API (https://tleehealth.pwa.pit.world/api/v1)
Authenticate with a session cookie or \`Authorization: Bearer th_live_...\` (create a key in the app under Settings).
- GET /health
- GET /me your practices and user type in each
Expand Down Expand Up @@ -391,7 +391,7 @@ Authenticate with a session cookie or \`Authorization: Bearer th_live_...\` (cre
the month's billable codes per patient, ready or on hold with the reason

## Tools
- CLI + TUI: npm i -g @profullstack/tleehealth (or: curl -fsSL https://tleehealth.com/install.sh | sh)
- CLI + TUI: npm i -g @profullstack/tleehealth (or: curl -fsSL https://tleehealth.pwa.pit.world/install.sh | sh)
- MCP: npx -y @profullstack/tleehealth-mcp
`),
);
2 changes: 1 addition & 1 deletion apps/web/src/crawl-gate.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export function createCrawlGate(env = process.env) {
const apiKey = env.COINPAY_X402_KEY || '';
const payTo = env.CRAWL_PAY_TO || '';
if (!apiKey || !payTo) return null;
const site = env.SITE_URL && !/localhost|127\.0\.0\.1/.test(env.SITE_URL) ? env.SITE_URL : 'https://tleehealth.com';
const site = env.SITE_URL && !/localhost|127\.0\.0\.1/.test(env.SITE_URL) ? env.SITE_URL : 'https://tleehealth.pwa.pit.world';
return createGateway({
siteUrl: site.replace(/\/+$/, ''),
siteName: 'tleehealth',
Expand Down
8 changes: 4 additions & 4 deletions apps/web/src/universal-footer.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import { footerHtml, footerHtmlSync } from '@profullstack/footer';

const options = {
site: 'https://tleehealth.com/',
owner: { name: 'tleehealth', url: 'https://tleehealth.com/' },
site: 'https://tleehealth.pwa.pit.world/',
owner: { name: 'tleehealth', url: 'https://tleehealth.pwa.pit.world/' },
links: [
{ label: 'Start a practice', href: '/app' },
{ label: 'Terms', href: '/terms' },
{ label: 'Privacy', href: '/privacy' },
{ label: 'Contact', href: 'mailto:hello@tleehealth.com' },
],
pwamartHref: 'https://pwamart.com/for?site=https://tleehealth.com/',
builtIndieHref: 'https://built.indie.pit.world/for?site=https://tleehealth.com/',
pwamartHref: 'https://pwamart.com/for?site=https://tleehealth.pwa.pit.world/',
builtIndieHref: 'https://built.indie.pit.world/for?site=https://tleehealth.pwa.pit.world/',
};
const TTL_MS = 15 * 60 * 1000;

Expand Down
2 changes: 1 addition & 1 deletion bin/install.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/sh
# tleehealth installer: curl -fsSL https://tleehealth.com/install.sh | sh
# tleehealth installer: curl -fsSL https://tleehealth.pwa.pit.world/install.sh | sh
# Installs the tleehealth CLI + TUI (@profullstack/tleehealth) with bun or npm,
# pinned to the registry's exact latest version (a bare @latest can be served
# from a package manager's cache).
Expand Down
2 changes: 1 addition & 1 deletion design/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
'Main.dc.html': ('index.html', 'tleehealth: the practice that runs itself',
'Telehealth and practice management with an AI agent that calls every patient. '
'Scheduling, prescriptions, labs, care plans and Medicare navigation billing. $10 per seat or $199 for up to 1,000.',
'https://tleehealth.com/'),
'https://tleehealth.pwa.pit.world/'),
}

for src, (out, title, desc, canonical) in PAGES.items():
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# @profullstack/tleehealth

The [tleehealth](https://tleehealth.com) CLI and dashboard TUI.
The [tleehealth](https://tleehealth.pwa.pit.world) CLI and dashboard TUI.

```sh
npm i -g @profullstack/tleehealth # or: curl -fsSL https://tleehealth.com/install.sh | sh
npm i -g @profullstack/tleehealth # or: curl -fsSL https://tleehealth.pwa.pit.world/install.sh | sh
tleehealth schedule --date today
tleehealth dashboard # Today · Needs · Caseload · Records (alias: tleehealth tui)
```
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"license": "MIT",
"author": "Profullstack, Inc.",
"homepage": "https://tleehealth.com",
"homepage": "https://tleehealth.pwa.pit.world",
"repository": {
"type": "git",
"url": "https://github.com/profullstack/tleehealth.com",
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export async function saveConfig(patch) {
export async function resolveAuth({ server, key } = {}) {
const saved = await loadConfig();
return {
server: (server || process.env.TLEEHEALTH_URL || saved.server || 'https://tleehealth.com').replace(/\/+$/, ''),
server: (server || process.env.TLEEHEALTH_URL || saved.server || 'https://tleehealth.pwa.pit.world').replace(/\/+$/, ''),
key: key || process.env.TLEEHEALTH_API_KEY || saved.key || '',
};
}
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# @profullstack/tleehealth-mcp

MCP server for [tleehealth](https://tleehealth.com).
MCP server for [tleehealth](https://tleehealth.pwa.pit.world).

```json
{ "mcpServers": { "tleehealth": { "command": "npx", "args": ["-y", "@profullstack/tleehealth-mcp"] } } }
Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"license": "MIT",
"author": "Profullstack, Inc.",
"homepage": "https://tleehealth.com",
"homepage": "https://tleehealth.pwa.pit.world",
"repository": {
"type": "git",
"url": "https://github.com/profullstack/tleehealth.com",
Expand Down
4 changes: 2 additions & 2 deletions test/app.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ describe('web', () => {
const foot = home.match(/<footer\b[^>]*data-pfs-footer[^>]*>[\s\S]*?<\/footer>/)?.[0] ?? '';
expect(foot).not.toBe('');
expect(foot).toContain('class="webring pfs-footer__ring"');
expect(foot).toContain('https://rssamplifier.com/ring/profullstack/next?from=https%3A%2F%2Ftleehealth.com%2F');
expect(foot).toContain('https://rssamplifier.com/ring/profullstack/previous?from=https%3A%2F%2Ftleehealth.com%2F');
expect(foot).toContain('https://rssamplifier.com/ring/profullstack/next?from=https%3A%2F%2Ftleehealth.pwa.pit.world%2F');
expect(foot).toContain('https://rssamplifier.com/ring/profullstack/previous?from=https%3A%2F%2Ftleehealth.pwa.pit.world%2F');
expect(foot.match(/&copy;/g)?.length).toBe(1);
});
test('healthz', async () => expect((await get('/healthz')).status).toBe(200));
Expand Down
2 changes: 1 addition & 1 deletion test/crawl-gate.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const CHROME = {
'sec-fetch-dest': 'document',
};
const gate = createCrawlGate({ COINPAY_X402_KEY: 'cp_live_test', CRAWL_PAY_TO: '0xCC3b072391AE7A8d10cF00DdC5F61DB2cA5541E5' });
const ask = (path, headers) => gate.handle(new Request(`https://tleehealth.com${path}`, { headers }));
const ask = (path, headers) => gate.handle(new Request(`https://tleehealth.pwa.pit.world${path}`, { headers }));

describe('crawl gate', () => {
test('is off without a key', () => {
Expand Down
Loading