release: 0.1.1 with Gemini 3.6 support and two blog posts (#44)
Co-authored-by: Alice <alice@prismshadow.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -143,4 +143,29 @@ penguin web
|
||||
|
||||
Port / host priority: command-line option > the `PORT` / `HOST` env vars (including `.env`) > defaults.
|
||||
|
||||
## penguin update
|
||||
|
||||
Upgrades this install in place, using the mechanism it was installed with. The install kind is detected from the real path of the running CLI, never guessed.
|
||||
|
||||
```bash
|
||||
penguin update --check # report versions only
|
||||
penguin update # upgrade to the latest release, after confirming
|
||||
```
|
||||
|
||||
| Option | Description |
|
||||
| --- | --- |
|
||||
| `--check` | Only report the installed and latest versions; change nothing. Exit code is 0 either way |
|
||||
| `--release <tag>` | Target a specific release instead of the latest (`v0.1.2` or `0.1.2`); older tags are allowed and reported as a downgrade |
|
||||
| `-y, --yes` | Skip the confirmation prompt |
|
||||
|
||||
The target flag is `--release`, not `--version`, because `-v, --version` is the CLI's own version flag and would take precedence.
|
||||
|
||||
| Install kind | How it upgrades |
|
||||
| --- | --- |
|
||||
| Tarball (`install.sh`, default `~/.penguin`) | Re-runs the official installer, preserving the install dir and whether the package bundles a Node runtime |
|
||||
| Global npm/pnpm/yarn/bun install | Runs that manager's global install of `@prismshadow/penguin-cli@<target>`; if the manager cannot be identified, prints the command instead of guessing |
|
||||
| Source checkout | Refused — update it with `git pull` and a rebuild |
|
||||
|
||||
Without `-y` the command prints exactly what it will do — mechanism, target version and install dir — and asks for confirmation; when stdin is not a terminal it requires `--yes` rather than waiting on a prompt nobody can answer. The latest version comes from the GitHub Releases API. **The data root is never touched**: an upgrade only replaces `bin`, `lib`, `web` and `node`. Neither path upgrades in place on Windows: the installer is a POSIX shell script, and a global install cannot be driven from here because Node will not execute an `npm`/`pnpm` `.cmd` shim without a shell — so the command prints the exact command to run yourself instead.
|
||||
|
||||
See also: [Configuration Reference](/configuration), [Models & Providers](/models).
|
||||
|
||||
@@ -143,4 +143,29 @@ penguin web
|
||||
|
||||
端口 / 地址优先级:命令行选项 > 环境变量 `PORT` / `HOST`(含 `.env`)> 默认值。
|
||||
|
||||
## penguin update
|
||||
|
||||
原地升级当前安装,并沿用它当初的安装方式。安装方式由运行中 CLI 的真实路径判定,不做猜测。
|
||||
|
||||
```bash
|
||||
penguin update --check # 只报告版本
|
||||
penguin update # 确认后升级到最新版
|
||||
```
|
||||
|
||||
| 选项 | 说明 |
|
||||
| --- | --- |
|
||||
| `--check` | 只报告已安装版本与最新版本,不做任何修改;两种情况下退出码均为 0 |
|
||||
| `--release <tag>` | 指定目标版本而不是最新版(`v0.1.2` 或 `0.1.2`);允许低于当前版本,会明确提示为降级 |
|
||||
| `-y, --yes` | 跳过确认提示 |
|
||||
|
||||
目标版本参数叫 `--release` 而不是 `--version`,因为 `-v, --version` 是 CLI 自身的版本参数,会优先生效。
|
||||
|
||||
| 安装方式 | 升级方式 |
|
||||
| --- | --- |
|
||||
| tarball(`install.sh`,默认 `~/.penguin`) | 重新执行官方安装脚本,并保持原安装目录以及是否内置 Node 运行时 |
|
||||
| npm/pnpm/yarn/bun 全局安装 | 用该包管理器全局安装 `@prismshadow/penguin-cli@<目标版本>`;无法确定包管理器时,只打印命令而不猜测 |
|
||||
| 源码检出 | 拒绝执行——请用 `git pull` 更新并重新构建 |
|
||||
|
||||
不带 `-y` 时,命令会先打印它将要做什么——方式、目标版本与安装目录——再请求确认;当 stdin 不是终端时,它要求显式加 `--yes`,而不是卡在无人能回答的提示上。最新版本取自 GitHub Releases API。**数据目录不会被改动**:升级只替换 `bin`、`lib`、`web` 与 `node`。两条路径在 Windows 上都不做原地升级:安装脚本是 POSIX shell 脚本,而全局安装也无法由此驱动——Node 不会在没有 shell 的情况下执行 `npm`/`pnpm` 的 `.cmd` 包装脚本——因此命令会直接打印出应当由你自己执行的命令。
|
||||
|
||||
相关文档:[配置参考](/configuration)、[模型与 Provider](/models)。
|
||||
|
||||
@@ -60,6 +60,7 @@ The built-in Skills, by group (the group manifest is `SKILL_GROUPS` in `packages
|
||||
| --- | --- | --- |
|
||||
| Office Productivity | `data-analysis` | Complete data-analysis tasks with bounded evidence inspection, explicit answer-changing decisions, native artifact handling and final output verification |
|
||||
| | `firecrawl` | Web search and page scraping into clean markdown via the Firecrawl API |
|
||||
| | `bento-slides` | Author and edit Bento presentations: single-file `.bento.html` decks whose document is JSON, mapping material to charts, morph transitions and state slides |
|
||||
| Software Development | `web-design` | Penguin visual language for generated web pages and app UIs: design tokens, components, light/dark themes and chat layouts |
|
||||
| | `software-engineering` | Complete software-engineering tasks: investigate and review code, implement fixes, features and refactors with minimal scope, validate changes, and report verified outcomes |
|
||||
| AI App Development | `penguin-sdk` | Build AI and RAG apps on the SDK: the createSession/run streaming loop plus a complete retrieval recipe with chunk-revealing citations |
|
||||
|
||||
@@ -60,6 +60,7 @@ Skill 库以 npm 包 `@prismshadow/penguin-skills` 发布,tarball 直接携带
|
||||
| --- | --- | --- |
|
||||
| 办公效率 | `data-analysis` | 以有界的证据检查、显式的改答案决策、原生产物处理与最终输出校验完成数据分析任务 |
|
||||
| | `firecrawl` | 经 Firecrawl API 做网络搜索与页面抓取,产出干净的 Markdown |
|
||||
| | `bento-slides` | 制作与编辑 Bento 演示文稿:单文件 `.bento.html`、文档即 JSON,把素材映射到图表、morph 转场与状态页 |
|
||||
| 软件开发 | `web-design` | 生成网页与应用界面的 Penguin 视觉语言:设计令牌、组件配方、明暗主题与聊天布局 |
|
||||
| | `software-engineering` | 完成软件工程任务:调查与审查代码,以最小改动实现修复、特性与重构,验证改动并报告经过确认的结果 |
|
||||
| AI 应用开发 | `penguin-sdk` | 基于 SDK 构建 AI 与 RAG 应用:createSession/run 流式循环,外加带可溯源引用的完整检索配方 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@prismshadow/penguin-docs",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"description": "PenguinHarness documentation site (React + Vite + Tailwind CSS): bilingual zh/en Markdown pages with light/dark themes and per-page Copy Markdown, deployed to GitHub Pages under /docs/ next to the landing page.",
|
||||
|
||||
@@ -160,9 +160,26 @@
|
||||
}
|
||||
.md-body a {
|
||||
@apply text-brand-700 underline decoration-brand-300 underline-offset-2 transition-colors hover:text-brand-600 dark:text-brand-300 dark:decoration-brand-700;
|
||||
/* `anywhere` rather than `word-break: break-all`: it only breaks a token that would otherwise
|
||||
overflow, so long URLs wrap cleanly (filling each line) while short Latin words in mixed
|
||||
CJK/Latin link text never split mid-word; unlike `break-word` it also counts the break
|
||||
opportunities toward min-content sizing, so a long link can't blow out flex/table layouts. */
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
/* Font size only, so fenced blocks keep the size they have always had; the visible chrome below
|
||||
is scoped to inline code. */
|
||||
.md-body code {
|
||||
@apply rounded bg-gray-100 px-1 py-0.5 text-[0.85em] text-gray-800 dark:bg-gray-800 dark:text-gray-200;
|
||||
@apply text-[0.85em];
|
||||
}
|
||||
/* Inline code: a hairline outline over a barely-there brand wash, replacing the solid gray fill
|
||||
this used to carry — in prose dense with `code` that fill read as a row of heavy blocks. The
|
||||
chrome is scoped to inline code because the `.md-body pre code` reset below strips background,
|
||||
color and padding inside fenced blocks but would not strip a border. Prose often holds long
|
||||
unbroken paths and identifiers, so inline code gets the same `anywhere` treatment as links.
|
||||
Kept identical to the landing site: penguin.ooo and penguin.ooo/docs share one design language. */
|
||||
.md-body :not(pre) > code {
|
||||
@apply rounded-md border border-brand-200/60 bg-brand-50/40 px-[0.3em] py-[0.1em] text-[0.875em] text-gray-900 dark:border-brand-900/70 dark:bg-brand-950/50 dark:text-gray-100;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
.md-body pre {
|
||||
@apply overflow-x-auto rounded-lg border border-gray-200 bg-gray-50 p-3 text-[13px] leading-6 dark:border-gray-800 dark:bg-gray-900;
|
||||
|
||||
Reference in New Issue
Block a user