diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 528a7fb40..aa1113a2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,7 +102,7 @@ jobs: node-version: 22 cache: npm - run: npm ci - - run: npx tsx apps/cockpit/scripts/deploy-smoke.ts --url https://cockpit.stream-resource.dev --dry-run + - run: npx tsx apps/cockpit/scripts/deploy-smoke.ts --url https://cockpit.cacheplane.ai --dry-run mcp: name: MCP — build / smoke @@ -239,7 +239,7 @@ jobs: if: steps.affected.outputs.website == 'true' run: npx nx e2e website --skip-nx-cache env: - BASE_URL: https://stream-resource.dev + BASE_URL: https://cacheplane.ai - name: Prepare cockpit Vercel project if: steps.affected.outputs.cockpit == 'true' run: | @@ -259,7 +259,7 @@ jobs: - name: Verify deployed cockpit if: steps.affected.outputs.cockpit == 'true' run: | - npx tsx apps/cockpit/scripts/deploy-smoke.ts --url https://cockpit.stream-resource.dev --retries 20 --retry-delay-ms 5000 + npx tsx apps/cockpit/scripts/deploy-smoke.ts --url https://cockpit.cacheplane.ai --retries 20 --retry-delay-ms 5000 # ── Angular examples deploy ────────────────────────────────────────── - name: Check if examples changed @@ -314,6 +314,6 @@ jobs: - name: Run production smoke tests run: npx playwright test apps/cockpit/e2e/production-smoke.spec.ts --reporter=list env: - BASE_URL: https://cockpit.stream-resource.dev - EXAMPLES_URL: https://examples.stream-resource.dev + BASE_URL: https://cockpit.cacheplane.ai + EXAMPLES_URL: https://examples.cacheplane.ai OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} diff --git a/COMMERCIAL.md b/COMMERCIAL.md index 7fe244ca5..8ab6900dd 100644 --- a/COMMERCIAL.md +++ b/COMMERCIAL.md @@ -23,7 +23,7 @@ Any use in a for-profit product, service, or organization requires a paid commer ## Purchase or inquire -- Website: https://stream-resource.dev/pricing +- Website: https://cacheplane.ai/pricing - Email: hello@cacheplane.ai See [`LICENSE-COMMERCIAL`](./LICENSE-COMMERCIAL) for the full commercial license terms. diff --git a/README.md b/README.md index 1ef81f2df..0452fc388 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
Whitepaper Follow-up Did you get a chance to read Chapter 3? Chapter 3 covers tool-call rendering — how to surface agent actions as real UI instead of raw JSON. It's the chapter most teams bookmark first.
@@ -17,7 +17,7 @@
-
+
@@ -110,7 +110,7 @@ That's it. `chat.messages()` is an Angular Signal. Bind it directly in your temp
@@ -129,17 +129,17 @@ That's it. `chat.messages()` is an Angular Signal. Bind it directly in your temp
| **Application Deployment** | $2,000 / app | One-time per application — covers dev, staging, and prod |
| **Enterprise** | Custom | Volume licensing, priority support, custom contract |
-[Full pricing details and license terms →](https://stream-resource.dev/pricing)
+[Full pricing details and license terms →](https://cacheplane.ai/pricing)
---
## Documentation
-- [Getting Started](https://stream-resource.dev/docs/getting-started)
-- [API Reference](https://stream-resource.dev/api-reference)
-- [Testing with MockAgentTransport](https://stream-resource.dev/docs/testing)
-- [Human-in-the-Loop / Interrupts](https://stream-resource.dev/docs/interrupts)
-- [Subagent Streaming](https://stream-resource.dev/docs/subagents)
+- [Getting Started](https://cacheplane.ai/docs/getting-started)
+- [API Reference](https://cacheplane.ai/api-reference)
+- [Testing with MockAgentTransport](https://cacheplane.ai/docs/testing)
+- [Human-in-the-Loop / Interrupts](https://cacheplane.ai/docs/interrupts)
+- [Subagent Streaming](https://cacheplane.ai/docs/subagents)
---
@@ -150,4 +150,4 @@ That's it. `chat.messages()` is an Angular Signal. Bind it directly in your temp
- **PolyForm Noncommercial 1.0.0** — free for noncommercial use (personal projects, academic, research, non-profit internal tooling). See [`LICENSE`](./LICENSE).
- **Angular Agent Framework Commercial License** — required for any for-profit or revenue-generating use. See [`LICENSE-COMMERCIAL`](./LICENSE-COMMERCIAL) and [`COMMERCIAL.md`](./COMMERCIAL.md).
-This is **not** an open-source license. Commercial use — including use in a for-profit product, service, or organization — requires a paid commercial license. See [pricing](https://stream-resource.dev/pricing).
+This is **not** an open-source license. Commercial use — including use in a for-profit product, service, or organization — requires a paid commercial license. See [pricing](https://cacheplane.ai/pricing).
diff --git a/apps/cockpit/e2e/production-smoke.spec.ts b/apps/cockpit/e2e/production-smoke.spec.ts
index 7f00dbad9..fd78774e3 100644
--- a/apps/cockpit/e2e/production-smoke.spec.ts
+++ b/apps/cockpit/e2e/production-smoke.spec.ts
@@ -4,16 +4,16 @@ import { expect, test } from '@playwright/test';
* Production smoke test — verifies the deployed stack works end-to-end.
*
* Requires:
- * EXAMPLES_URL - e.g., https://examples.stream-resource.dev
+ * EXAMPLES_URL - e.g., https://examples.cacheplane.ai
* OPENAI_API_KEY - for send/receive tests (optional)
*
* Run:
- * BASE_URL=https://cockpit.stream-resource.dev \
- * EXAMPLES_URL=https://examples.stream-resource.dev \
+ * BASE_URL=https://cockpit.cacheplane.ai \
+ * EXAMPLES_URL=https://examples.cacheplane.ai \
* npx playwright test apps/cockpit/e2e/production-smoke.spec.ts
*/
-const EXAMPLES_URL = process.env['EXAMPLES_URL'] ?? 'https://examples.stream-resource.dev';
+const EXAMPLES_URL = process.env['EXAMPLES_URL'] ?? 'https://examples.cacheplane.ai';
const CAPABILITIES = [
'langgraph/streaming',
diff --git a/apps/cockpit/scripts/deploy-smoke.spec.ts b/apps/cockpit/scripts/deploy-smoke.spec.ts
index b00c951a8..9c1720157 100644
--- a/apps/cockpit/scripts/deploy-smoke.spec.ts
+++ b/apps/cockpit/scripts/deploy-smoke.spec.ts
@@ -6,7 +6,7 @@ describe('deploy smoke helper', () => {
expect(
parseDeploySmokeArgs([
'--url',
- 'https://cockpit.stream-resource.dev',
+ 'https://cockpit.cacheplane.ai',
'--dry-run',
'--retries',
'5',
@@ -14,7 +14,7 @@ describe('deploy smoke helper', () => {
'1000',
])
).toEqual({
- url: 'https://cockpit.stream-resource.dev',
+ url: 'https://cockpit.cacheplane.ai',
expectedTitle: 'Cockpit',
dryRun: true,
retries: 5,
@@ -25,11 +25,11 @@ describe('deploy smoke helper', () => {
it('formats dry-run output without performing a network request', async () => {
await expect(
runDeploySmoke({
- url: 'https://cockpit.stream-resource.dev',
+ url: 'https://cockpit.cacheplane.ai',
expectedTitle: 'Cockpit',
dryRun: true,
})
- ).resolves.toBe('dry-run:https://cockpit.stream-resource.dev:Cockpit');
+ ).resolves.toBe('dry-run:https://cockpit.cacheplane.ai:Cockpit');
});
it('retries until the deployment responds with the expected title', async () => {
@@ -46,13 +46,13 @@ describe('deploy smoke helper', () => {
await expect(
runDeploySmoke({
- url: 'https://cockpit.stream-resource.dev',
+ url: 'https://cockpit.cacheplane.ai',
retries: 1,
retryDelayMs: 1,
fetchImpl,
sleep,
})
- ).resolves.toBe('pass:https://cockpit.stream-resource.dev:Cockpit');
+ ).resolves.toBe('pass:https://cockpit.cacheplane.ai:Cockpit');
expect(fetchImpl).toHaveBeenCalledTimes(2);
expect(sleep).toHaveBeenCalledTimes(1);
diff --git a/apps/cockpit/src/lib/content-bundle.spec.ts b/apps/cockpit/src/lib/content-bundle.spec.ts
index 6de2f442f..1e61d58a9 100644
--- a/apps/cockpit/src/lib/content-bundle.spec.ts
+++ b/apps/cockpit/src/lib/content-bundle.spec.ts
@@ -28,10 +28,10 @@ describe('resolveRuntimeUrl', () => {
});
it('uses NEXT_PUBLIC_COCKPIT_RUNTIME_BASE_URL when set', () => {
- vi.stubEnv('NEXT_PUBLIC_COCKPIT_RUNTIME_BASE_URL', 'https://examples.stream-resource.dev');
+ vi.stubEnv('NEXT_PUBLIC_COCKPIT_RUNTIME_BASE_URL', 'https://examples.cacheplane.ai');
expect(
resolveRuntimeUrl({ runtimeUrl: 'langgraph/streaming', devPort: 4300 })
- ).toBe('https://examples.stream-resource.dev/langgraph/streaming');
+ ).toBe('https://examples.cacheplane.ai/langgraph/streaming');
});
it('falls back to localhost with devPort when no env var is set', () => {
@@ -49,7 +49,7 @@ describe('resolveRuntimeUrl', () => {
});
it('returns null when runtimeUrl is undefined even with env var set', () => {
- vi.stubEnv('NEXT_PUBLIC_COCKPIT_RUNTIME_BASE_URL', 'https://examples.stream-resource.dev');
+ vi.stubEnv('NEXT_PUBLIC_COCKPIT_RUNTIME_BASE_URL', 'https://examples.cacheplane.ai');
expect(
resolveRuntimeUrl({ runtimeUrl: undefined, devPort: undefined })
).toBeNull();
diff --git a/apps/website/emails/drip-whitepaper-followup.ts b/apps/website/emails/drip-whitepaper-followup.ts
index dc45d4e91..da4b05e57 100644
--- a/apps/website/emails/drip-whitepaper-followup.ts
+++ b/apps/website/emails/drip-whitepaper-followup.ts
@@ -9,7 +9,7 @@ export function dripWhitepaperFollowupHtml(day: number): { subject: string; html
Production Readiness
The gap between demo and production
Half of GenAI projects die after proof of concept. The gap isn't the model — it's the frontend production path: streaming state, thread persistence, human approval flows, and deterministic testing.
- See How It Works → + See How It Works → `, showUnsubscribe: true, }), @@ -44,7 +44,7 @@ export function dripWhitepaperFollowupHtml(day: number): { subject: string; htmlMonth 1 · First agent in staging
Month 3 · Production deployment
- Learn About the Pilot → + Learn About the Pilot → `, showUnsubscribe: true, }), diff --git a/apps/website/emails/email-wrapper.ts b/apps/website/emails/email-wrapper.ts index 77bb9d1eb..b12324734 100644 --- a/apps/website/emails/email-wrapper.ts +++ b/apps/website/emails/email-wrapper.ts @@ -16,7 +16,7 @@ export function wrapEmail(opts: { ${opts.body}Angular Agent Framework — Signal-native streaming for LangGraph.
- ${opts.showUnsubscribe ? '' : ''} + ${opts.showUnsubscribe ? '' : ''}Welcome to Angular Agent Framework updates
You'll receive updates on new capabilities, production patterns, and Angular agent best practices. We keep it focused and infrequent — no spam.
- Explore the Docs + Explore the Docs `, }); } diff --git a/apps/website/emails/whitepaper-download.ts b/apps/website/emails/whitepaper-download.ts index 4c0141b40..5a1978fe9 100644 --- a/apps/website/emails/whitepaper-download.ts +++ b/apps/website/emails/whitepaper-download.ts @@ -1,6 +1,6 @@ import { wrapEmail, esc } from './email-wrapper'; -const DOWNLOAD_URL = 'https://stream-resource.dev/whitepaper.pdf'; +const DOWNLOAD_URL = 'https://cacheplane.ai/whitepaper.pdf'; export function whitepaperDownloadHtml(name?: string): string { return wrapEmail({ diff --git a/apps/website/public/AGENTS.md b/apps/website/public/AGENTS.md index 7e9ff976a..1ed806f13 100644 --- a/apps/website/public/AGENTS.md +++ b/apps/website/public/AGENTS.md @@ -41,4 +41,4 @@ Add to ~/.claude/settings.json: {"mcpServers":{"angular":{"command":"npx","args":["@angular/mcp"]}}} ## Version check -If this file is stale, fetch the latest: https://stream-resource.dev/llms-full.txt +If this file is stale, fetch the latest: https://cacheplane.ai/llms-full.txt diff --git a/apps/website/public/CLAUDE.md b/apps/website/public/CLAUDE.md index 7e9ff976a..1ed806f13 100644 --- a/apps/website/public/CLAUDE.md +++ b/apps/website/public/CLAUDE.md @@ -41,4 +41,4 @@ Add to ~/.claude/settings.json: {"mcpServers":{"angular":{"command":"npx","args":["@angular/mcp"]}}} ## Version check -If this file is stale, fetch the latest: https://stream-resource.dev/llms-full.txt +If this file is stale, fetch the latest: https://cacheplane.ai/llms-full.txt diff --git a/apps/website/src/app/llms.txt/route.ts b/apps/website/src/app/llms.txt/route.ts index de348aac3..6068ea8ef 100644 --- a/apps/website/src/app/llms.txt/route.ts +++ b/apps/website/src/app/llms.txt/route.ts @@ -31,7 +31,7 @@ function buildLlmsTxt(): string { 'npx @cacheplane/angular-mcp', '', '## Full reference', - 'https://stream-resource.dev/llms-full.txt', + 'https://cacheplane.ai/llms-full.txt', ].join('\n'); } diff --git a/apps/website/src/components/shared/Footer.tsx b/apps/website/src/components/shared/Footer.tsx index 8e051eace..d26c3646a 100644 --- a/apps/website/src/components/shared/Footer.tsx +++ b/apps/website/src/components/shared/Footer.tsx @@ -146,7 +146,7 @@ export function Footer() { onMouseLeave={(e) => (e.currentTarget.style.color = tokens.colors.textSecondary)}> API Reference - (e.currentTarget.style.color = tokens.colors.accent)} onMouseLeave={(e) => (e.currentTarget.style.color = tokens.colors.textSecondary)}> Examples diff --git a/apps/website/src/components/shared/Nav.tsx b/apps/website/src/components/shared/Nav.tsx index fe44fbe19..813e8cd1e 100644 --- a/apps/website/src/components/shared/Nav.tsx +++ b/apps/website/src/components/shared/Nav.tsx @@ -7,7 +7,7 @@ const links = [ { label: 'Pilot to Prod', href: '/pilot-to-prod', external: false }, { label: 'Docs', href: '/docs', external: false }, { label: 'API', href: '/docs/agent/api/agent', external: false }, - { label: 'Examples', href: 'https://cockpit.stream-resource.dev', external: true }, + { label: 'Examples', href: 'https://cockpit.cacheplane.ai', external: true }, { label: 'Pricing', href: '/pricing', external: false }, ]; diff --git a/docs/superpowers/plans/2026-03-17-angular-library.md b/docs/superpowers/plans/2026-03-17-angular-library.md index 183c3f458..746a05c0f 100644 --- a/docs/superpowers/plans/2026-03-17-angular-library.md +++ b/docs/superpowers/plans/2026-03-17-angular-library.md @@ -1627,7 +1627,7 @@ NON-COMMERCIAL USE is defined as: - Internal tooling at non-profit organizations COMMERCIAL USE requires a separate commercial license. See LICENSE-COMMERCIAL -or visit https://stream-resource.dev/pricing for details. +or visit https://cacheplane.ai/pricing for details. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. @@ -1664,9 +1664,9 @@ ENTERPRISE LICENSE: Custom pricing - Volume seat discounts (10+ developers) - Unlimited deployment licenses - Dedicated support and SLA agreements -- Contact: enterprise@stream-resource.dev +- Contact: enterprise@cacheplane.ai -To purchase a license, visit: https://stream-resource.dev/pricing +To purchase a license, visit: https://cacheplane.ai/pricing Unauthorized commercial use is a violation of this license. ``` diff --git a/docs/superpowers/plans/2026-03-17-readme.md b/docs/superpowers/plans/2026-03-17-readme.md index 76fbf7ceb..4022e94be 100644 --- a/docs/superpowers/plans/2026-03-17-readme.md +++ b/docs/superpowers/plans/2026-03-17-readme.md @@ -260,7 +260,7 @@ apps/website/public/assets/