chore: settle product naming across app, widget and deployments

One word everywhere: ReplyPier in UI copy, package and image names, the
replypier.site domains (app/api/docs/help), REPLYPIER_* settings and the
--rp-* design tokens.

- public widget API is window.ReplyPier with replypierId / replypierBaseUrl /
  replypierConfig / replypierToken, loader at webclient/replypier.min.js;
  both bundles rebuilt from source
- NOTICE, llms.txt, CONTRIBUTING, HELP_CENTER_INFRA and the demo runtime
  config rewritten; the demo config ships no third-party keys
- migration adds the ReplyPier managed model value to the AI model enum
- local compose project, database, role, volume and Docker network carry the
  same name
This commit is contained in:
WangShen007 committed 2026-10-26 00:57:22 +08:00
1 parent ff0a09f0e5
commit 20fef2b9f3
1156 files changed
+7267 -7148

No files matched your search

+8 -8
View File
@@ -23,18 +23,18 @@ async function buildWebClientDev() {
process.env.NODE_ENV = 'development'
// Baked DEFAULT base URL only; getBaseUrl() still resolves
// window.chattermateBaseUrl / window.APP_CONFIG at runtime, so no rebuild is
// window.replypierBaseUrl / window.APP_CONFIG at runtime, so no rebuild is
// needed when a deployment's env changes.
const apiUrl = process.env.VITE_API_URL || 'http://localhost:8000/api/v1'
console.log('Using API URL:', apiUrl)
const sourceFile = resolve(dirname(__dirname), 'src/webclient/chattermate.js')
const sourceFile = resolve(dirname(__dirname), 'src/webclient/replypier.js')
await build({
entryPoints: [sourceFile],
bundle: true,
minify: false, // Don't minify for development
outfile: resolve(dirname(__dirname), 'public/webclient/chattermate.min.js'),
outfile: resolve(dirname(__dirname), 'public/webclient/replypier.min.js'),
format: 'iife',
target: ['es2015'],
loader: {
@@ -42,17 +42,17 @@ async function buildWebClientDev() {
},
define: {
'process.env.NODE_ENV': '"development"',
'__CHATTERMATE_API_URL__': JSON.stringify(apiUrl),
'__REPLYPIER_API_URL__': JSON.stringify(apiUrl),
},
sourcemap: true, // Add sourcemap for development
})
// Copy output to dist/webclient directory
const publicWebclientPath = resolve(dirname(__dirname), 'public/webclient/chattermate.min.js')
const publicSourcemapPath = resolve(dirname(__dirname), 'public/webclient/chattermate.min.js.map')
const publicWebclientPath = resolve(dirname(__dirname), 'public/webclient/replypier.min.js')
const publicSourcemapPath = resolve(dirname(__dirname), 'public/webclient/replypier.min.js.map')
const distWebclientDir = resolve(dirname(__dirname), 'dist/webclient')
const distWebclientPath = resolve(distWebclientDir, 'chattermate.min.js')
const distSourcemapPath = resolve(distWebclientDir, 'chattermate.min.js.map')
const distWebclientPath = resolve(distWebclientDir, 'replypier.min.js')
const distSourcemapPath = resolve(distWebclientDir, 'replypier.min.js.map')
// Ensure dist/webclient directory exists
if (!fs.existsSync(distWebclientDir)) {
+7 -7
View File
@@ -22,18 +22,18 @@ async function buildWebClientProd() {
process.env.NODE_ENV = 'production'
// Baked DEFAULT base URL. This only sets the fallback; getBaseUrl() still
// resolves window.chattermateBaseUrl / window.APP_CONFIG at runtime, so an
// resolves window.replypierBaseUrl / window.APP_CONFIG at runtime, so an
// env change on a deployment needs no rebuild of this artifact.
const apiUrl = process.env.VITE_API_URL || 'https://api.chattermate.chat/api/v1'
const apiUrl = process.env.VITE_API_URL || 'https://api.replypier.site/api/v1'
console.log('Using API URL:', apiUrl)
const sourceFile = resolve(dirname(__dirname), 'src/webclient/chattermate.js')
const sourceFile = resolve(dirname(__dirname), 'src/webclient/replypier.js')
await build({
entryPoints: [sourceFile],
bundle: true,
minify: true,
outfile: resolve(dirname(__dirname), 'public/webclient/chattermate.min.js'),
outfile: resolve(dirname(__dirname), 'public/webclient/replypier.min.js'),
format: 'iife',
target: ['es2015'],
loader: {
@@ -41,14 +41,14 @@ async function buildWebClientProd() {
},
define: {
'process.env.NODE_ENV': '"production"',
'__CHATTERMATE_API_URL__': JSON.stringify(apiUrl),
'__REPLYPIER_API_URL__': JSON.stringify(apiUrl),
},
})
// Copy output to dist/webclient directory
const publicWebclientPath = resolve(dirname(__dirname), 'public/webclient/chattermate.min.js')
const publicWebclientPath = resolve(dirname(__dirname), 'public/webclient/replypier.min.js')
const distWebclientDir = resolve(dirname(__dirname), 'dist/webclient')
const distWebclientPath = resolve(distWebclientDir, 'chattermate.min.js')
const distWebclientPath = resolve(distWebclientDir, 'replypier.min.js')
// Ensure dist/webclient directory exists
if (!fs.existsSync(distWebclientDir)) {
+3 -3
View File
@@ -14,9 +14,9 @@ const configContent = `// Runtime configuration - this file gets replaced at con
// it too; in a page self === window, so window.APP_CONFIG still works.
self.APP_CONFIG = {
// API URLs
API_URL: "${process.env.VITE_API_URL || 'https://api.chattermate.chat/api/v1'}",
WS_URL: "${process.env.VITE_WS_URL || 'wss://api.chattermate.chat'}",
WIDGET_URL: "${process.env.VITE_WIDGET_URL || 'https://api.chattermate.chat'}",
API_URL: "${process.env.VITE_API_URL || 'https://api.replypier.site/api/v1'}",
WS_URL: "${process.env.VITE_WS_URL || 'wss://api.replypier.site'}",
WIDGET_URL: "${process.env.VITE_WIDGET_URL || 'https://api.replypier.site'}",
// Firebase Configuration
FIREBASE_API_KEY: "${process.env.VITE_FIREBASE_API_KEY || ''}",