Serve the site from the penguin.ooo apex domain
Set the Pages workflow BASE_PATH to / (assets 404ed on the custom domain under the /<repo>/ subpath) and point all hardcoded site links at https://penguin.ooo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ihk8iQuo3kv2aPjAYEPuR
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
# tree — landing dist with the docs dist copied under docs/).
|
||||
# - Pull requests touching either package only BUILD (validation) — no Pages
|
||||
# configuration and no deploy, so PRs never fail on Pages availability.
|
||||
# - Pushes to main (and manual dispatch) build + deploy. BASE_PATH is derived from the
|
||||
# repository name so project-pages URLs (https://<owner>.github.io/<repo>/) resolve;
|
||||
# repos served from a custom domain / user pages can set it to "/" instead.
|
||||
# - Pushes to main (and manual dispatch) build + deploy. The site is served from the
|
||||
# custom apex domain https://penguin.ooo/ (Settings -> Pages -> Custom domain), so
|
||||
# BASE_PATH is "/" — assets resolve from the domain root, not a /<repo>/ subpath.
|
||||
# First-time setup: repository Settings -> Pages -> Source = "GitHub Actions".
|
||||
name: Deploy Site
|
||||
|
||||
@@ -54,7 +54,7 @@ jobs:
|
||||
|
||||
- name: Build site (landing + docs, vite)
|
||||
env:
|
||||
BASE_PATH: /${{ github.event.repository.name }}/
|
||||
BASE_PATH: /
|
||||
run: pnpm build:site
|
||||
|
||||
# Only the deploying runs need the Pages artifact (PRs stop at the build check).
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
|
||||
<p align="center">
|
||||
English | <a href="README.zh.md">简体中文</a> ·
|
||||
<a href="https://prism-shadow.github.io/penguin-harness/">Website</a> ·
|
||||
<a href="https://prism-shadow.github.io/penguin-harness/docs/">Docs</a> ·
|
||||
<a href="https://prism-shadow.github.io/penguin-harness/blog">Blog</a>
|
||||
<a href="https://penguin.ooo/">Website</a> ·
|
||||
<a href="https://penguin.ooo/docs/">Docs</a> ·
|
||||
<a href="https://penguin.ooo/blog">Blog</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -100,11 +100,11 @@ A pnpm monorepo (TypeScript, Node >= 24). One install ships four layers that sha
|
||||
| [`packages/landing`](packages/landing) | — | Product landing page (this repo's website) |
|
||||
| [`packages/docs`](packages/docs) | — | Documentation site (bilingual, deployed under `/docs/`) |
|
||||
|
||||
Responsibilities split by source of truth: the **SDK** owns protocol and execution (message parsing, the agent loop, tools), the **Server** owns the multi-user runtime (auth, SSE streaming, scheduled tasks), and the **file layer** under `~/.penguin/data` owns everything editable and recorded (prompts, Skills, secrets, Traces). The full design-by-design map is in [Architecture → Division of responsibilities](https://prism-shadow.github.io/penguin-harness/docs/architecture).
|
||||
Responsibilities split by source of truth: the **SDK** owns protocol and execution (message parsing, the agent loop, tools), the **Server** owns the multi-user runtime (auth, SSE streaming, scheduled tasks), and the **file layer** under `~/.penguin/data` owns everything editable and recorded (prompts, Skills, secrets, Traces). The full design-by-design map is in [Architecture → Division of responsibilities](https://penguin.ooo/docs/architecture).
|
||||
|
||||
## Documentation
|
||||
|
||||
The docs site covers both usage and design: [Introduction](https://prism-shadow.github.io/penguin-harness/docs/) · [Quickstart](https://prism-shadow.github.io/penguin-harness/docs/quickstart) · [Architecture](https://prism-shadow.github.io/penguin-harness/docs/architecture) · [The OmniMessage Protocol](https://prism-shadow.github.io/penguin-harness/docs/omni-message) · [Core Interfaces](https://prism-shadow.github.io/penguin-harness/docs/interfaces) · [The Agent Loop](https://prism-shadow.github.io/penguin-harness/docs/agent-loop) · [CLI Reference](https://prism-shadow.github.io/penguin-harness/docs/cli) · [Server API](https://prism-shadow.github.io/penguin-harness/docs/server-api) · [Configuration](https://prism-shadow.github.io/penguin-harness/docs/configuration)
|
||||
The docs site covers both usage and design: [Introduction](https://penguin.ooo/docs/) · [Quickstart](https://penguin.ooo/docs/quickstart) · [Architecture](https://penguin.ooo/docs/architecture) · [The OmniMessage Protocol](https://penguin.ooo/docs/omni-message) · [Core Interfaces](https://penguin.ooo/docs/interfaces) · [The Agent Loop](https://penguin.ooo/docs/agent-loop) · [CLI Reference](https://penguin.ooo/docs/cli) · [Server API](https://penguin.ooo/docs/server-api) · [Configuration](https://penguin.ooo/docs/configuration)
|
||||
|
||||
Every doc page has a "Copy Markdown" button, so you can paste it straight into a model context.
|
||||
|
||||
|
||||
+5
-5
@@ -19,9 +19,9 @@
|
||||
|
||||
<p align="center">
|
||||
<a href="README.md">English</a> | 简体中文 ·
|
||||
<a href="https://prism-shadow.github.io/penguin-harness/">官网</a> ·
|
||||
<a href="https://prism-shadow.github.io/penguin-harness/docs/">文档</a> ·
|
||||
<a href="https://prism-shadow.github.io/penguin-harness/blog">博客</a>
|
||||
<a href="https://penguin.ooo/">官网</a> ·
|
||||
<a href="https://penguin.ooo/docs/">文档</a> ·
|
||||
<a href="https://penguin.ooo/blog">博客</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -99,11 +99,11 @@ pnpm monorepo(TypeScript,Node >= 24)。一次安装交付四层组件,共享同
|
||||
| [`packages/landing`](packages/landing) | — | 产品落地页(本仓库官网) |
|
||||
| [`packages/docs`](packages/docs) | — | 文档站(双语,部署于 `/docs/` 路径) |
|
||||
|
||||
职责按事实来源划分:**SDK** 负责协议与执行(消息解析、运行循环、工具),**Server** 负责多用户运行时(认证、SSE 流式、定时任务),`~/.penguin/data` 下的**文件层**承载一切可编辑与被记录的状态(Prompt、Skill、密钥、Trace)。逐项对应表见[架构总览 → 职责划分](https://prism-shadow.github.io/penguin-harness/docs/architecture)。
|
||||
职责按事实来源划分:**SDK** 负责协议与执行(消息解析、运行循环、工具),**Server** 负责多用户运行时(认证、SSE 流式、定时任务),`~/.penguin/data` 下的**文件层**承载一切可编辑与被记录的状态(Prompt、Skill、密钥、Trace)。逐项对应表见[架构总览 → 职责划分](https://penguin.ooo/docs/architecture)。
|
||||
|
||||
## 文档
|
||||
|
||||
文档站覆盖使用与设计两个层面:[产品介绍](https://prism-shadow.github.io/penguin-harness/docs/) · [快速开始](https://prism-shadow.github.io/penguin-harness/docs/quickstart) · [架构总览](https://prism-shadow.github.io/penguin-harness/docs/architecture) · [OmniMessage 协议](https://prism-shadow.github.io/penguin-harness/docs/omni-message) · [接口契约](https://prism-shadow.github.io/penguin-harness/docs/interfaces) · [Agent 运行循环](https://prism-shadow.github.io/penguin-harness/docs/agent-loop) · [CLI 参考](https://prism-shadow.github.io/penguin-harness/docs/cli) · [Server API](https://prism-shadow.github.io/penguin-harness/docs/server-api) · [配置参考](https://prism-shadow.github.io/penguin-harness/docs/configuration)
|
||||
文档站覆盖使用与设计两个层面:[产品介绍](https://penguin.ooo/docs/) · [快速开始](https://penguin.ooo/docs/quickstart) · [架构总览](https://penguin.ooo/docs/architecture) · [OmniMessage 协议](https://penguin.ooo/docs/omni-message) · [接口契约](https://penguin.ooo/docs/interfaces) · [Agent 运行循环](https://penguin.ooo/docs/agent-loop) · [CLI 参考](https://penguin.ooo/docs/cli) · [Server API](https://penguin.ooo/docs/server-api) · [配置参考](https://penguin.ooo/docs/configuration)
|
||||
|
||||
每页文档都带「复制 Markdown」按钮,可直接粘贴进模型上下文。
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# The data dir (~/.penguin/data) sits under the install home but is never touched by reinstall/upgrade (which only replace bin/lib/web/node).
|
||||
#
|
||||
# Docs: https://prism-shadow.github.io/penguin-harness/docs/installation
|
||||
# Docs: https://penguin.ooo/docs/installation
|
||||
set -eu
|
||||
|
||||
REPO="https://github.com/Prism-Shadow/penguin-harness"
|
||||
|
||||
@@ -19,13 +19,13 @@ penguin chat --resume # resume the late
|
||||
|
||||
Tool calls go through an approval gate — `--approve allow-all` (default) `| deny-all | read-only | always-ask`. Data lives under `~/.penguin/data` (`PENGUIN_HOME` or `--root` override); model credentials come from the Project config or provider env vars (e.g. `DEEPSEEK_API_KEY`).
|
||||
|
||||
Prefer a one-line install with a bundled Node runtime? See the [installation guide](https://prism-shadow.github.io/penguin-harness/docs/installation).
|
||||
Prefer a one-line install with a bundled Node runtime? See the [installation guide](https://penguin.ooo/docs/installation).
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Quickstart](https://prism-shadow.github.io/penguin-harness/docs/quickstart)
|
||||
- [CLI Reference](https://prism-shadow.github.io/penguin-harness/docs/cli)
|
||||
- [Configuration Reference](https://prism-shadow.github.io/penguin-harness/docs/configuration)
|
||||
- [Quickstart](https://penguin.ooo/docs/quickstart)
|
||||
- [CLI Reference](https://penguin.ooo/docs/cli)
|
||||
- [Configuration Reference](https://penguin.ooo/docs/configuration)
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
@@ -23,11 +23,11 @@ A single `run` drives a complete Task: streaming output, per-call approvals, con
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Architecture](https://prism-shadow.github.io/penguin-harness/docs/architecture)
|
||||
- [The OmniMessage Protocol](https://prism-shadow.github.io/penguin-harness/docs/omni-message)
|
||||
- [Core Interfaces](https://prism-shadow.github.io/penguin-harness/docs/interfaces)
|
||||
- [The Agent Loop](https://prism-shadow.github.io/penguin-harness/docs/agent-loop)
|
||||
- [Sessions & Traces](https://prism-shadow.github.io/penguin-harness/docs/sessions-and-traces)
|
||||
- [Architecture](https://penguin.ooo/docs/architecture)
|
||||
- [The OmniMessage Protocol](https://penguin.ooo/docs/omni-message)
|
||||
- [Core Interfaces](https://penguin.ooo/docs/interfaces)
|
||||
- [The Agent Loop](https://penguin.ooo/docs/agent-loop)
|
||||
- [Sessions & Traces](https://penguin.ooo/docs/sessions-and-traces)
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
The PenguinHarness documentation site (React + Vite + Tailwind CSS 4). Its own package, sharing the landing page's visual language: bilingual pages (zh/en), light/dark themes, a sidebar + per-page table of contents, and a "Copy Markdown" button on every page.
|
||||
|
||||
Live at <https://prism-shadow.github.io/penguin-harness/docs/>.
|
||||
Live at <https://penguin.ooo/docs/>.
|
||||
|
||||
## Content model
|
||||
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
* Vite config: static docs site (React SPA + Tailwind CSS 4), a sibling of the
|
||||
* landing page but its own package so either site can evolve independently.
|
||||
*
|
||||
* BASE_PATH is injected by the GitHub Pages workflow as "/<repo>/docs/" — the docs
|
||||
* build is copied into the landing dist under docs/ so both sites ship as one Pages
|
||||
* artifact (see scripts/build-site.mjs at the repo root). Local dev defaults to "/".
|
||||
* BASE_PATH is injected by the GitHub Pages workflow as "/docs/" (the site lives at the
|
||||
* custom apex domain https://penguin.ooo/) — the docs build is copied into the landing
|
||||
* dist under docs/ so both sites ship as one Pages artifact (see scripts/build-site.mjs
|
||||
* at the repo root). Local dev defaults to "/".
|
||||
* Doc pages are local Markdown files imported at build time via import.meta.glob
|
||||
* (?raw), so the built site is fully static — no server or CMS involved.
|
||||
*/
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
* Vite config: static landing page (React SPA + Tailwind CSS 4).
|
||||
*
|
||||
* BASE_PATH is injected by the GitHub Pages workflow (e.g. "/penguin-harness/") so asset
|
||||
* URLs resolve under the project-pages subpath; local dev and previews default to "/".
|
||||
* BASE_PATH is injected by the GitHub Pages workflow ("/" — the site is served from the
|
||||
* custom apex domain https://penguin.ooo/); local dev and previews also default to "/".
|
||||
* Blog posts are local Markdown files imported at build time via import.meta.glob (?raw),
|
||||
* so the built site is fully static — no server or CMS involved.
|
||||
*/
|
||||
|
||||
@@ -10,7 +10,7 @@ The PenguinHarness Web backend — the Web implementation of the SDK's Human bou
|
||||
- **SSE**: per-channel monotonic event ids with a bounded replay buffer (1000 events / 2MB); reconnects replay from `Last-Event-ID` or receive `resync_required`; heartbeat comment every 20s.
|
||||
- **Usage**: `token_usage` events are persisted row by row; costs are computed at query time from current per-model pricing.
|
||||
|
||||
The full route tables and the SSE protocol are documented in the [Server API reference](https://prism-shadow.github.io/penguin-harness/docs/server-api). DTO types are exported for type-only import via `@prismshadow/penguin-server/api`.
|
||||
The full route tables and the SSE protocol are documented in the [Server API reference](https://penguin.ooo/docs/server-api). DTO types are exported for type-only import via `@prismshadow/penguin-server/api`.
|
||||
|
||||
## Environment
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@ The first group powers the self-improvement loop: design a Benchmark, evaluate t
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Skills](https://prism-shadow.github.io/penguin-harness/docs/skills)
|
||||
- [Self-Improvement](https://prism-shadow.github.io/penguin-harness/docs/self-improvement)
|
||||
- [Skills](https://penguin.ooo/docs/skills)
|
||||
- [Self-Improvement](https://penguin.ooo/docs/self-improvement)
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# @prismshadow/penguin-web
|
||||
|
||||
The PenguinHarness Web App — a React 19 + Vite + Tailwind CSS 4 SPA that renders the OmniMessage stream (same protocol and statistics as the CLI) and manages Agents, Skills, Models, usage and Traces. Feature tour: [Web App Guide](https://prism-shadow.github.io/penguin-harness/docs/web-app).
|
||||
The PenguinHarness Web App — a React 19 + Vite + Tailwind CSS 4 SPA that renders the OmniMessage stream (same protocol and statistics as the CLI) and manages Agents, Skills, Models, usage and Traces. Feature tour: [Web App Guide](https://penguin.ooo/docs/web-app).
|
||||
|
||||
## Layout
|
||||
|
||||
|
||||
Reference in New Issue
Block a user