No description
  • JavaScript 59.6%
  • TypeScript 40.4%
Find a file
Zhan Wang 6e16ed758c
Some checks failed
ci / check (push) Has been cancelled
Initial commit
2026-08-14 20:47:42 -07:00
.agents/skills Initial commit 2026-08-14 20:47:42 -07:00
.codex Initial commit 2026-08-14 20:47:42 -07:00
.github/workflows Initial commit 2026-08-14 20:47:42 -07:00
.vscode Initial commit 2026-08-14 20:47:42 -07:00
docs Initial commit 2026-08-14 20:47:42 -07:00
scripts Initial commit 2026-08-14 20:47:42 -07:00
shared Initial commit 2026-08-14 20:47:42 -07:00
src Initial commit 2026-08-14 20:47:42 -07:00
tests Initial commit 2026-08-14 20:47:42 -07:00
workflows Initial commit 2026-08-14 20:47:42 -07:00
.editorconfig Initial commit 2026-08-14 20:47:42 -07:00
.gitattributes Initial commit 2026-08-14 20:47:42 -07:00
.gitignore Initial commit 2026-08-14 20:47:42 -07:00
.prettierignore Initial commit 2026-08-14 20:47:42 -07:00
.prettierrc Initial commit 2026-08-14 20:47:42 -07:00
AGENTS.md Initial commit 2026-08-14 20:47:42 -07:00
eslint.config.mjs Initial commit 2026-08-14 20:47:42 -07:00
LICENSE Initial commit 2026-08-14 20:47:42 -07:00
package.json Initial commit 2026-08-14 20:47:42 -07:00
pnpm-lock.yaml Initial commit 2026-08-14 20:47:42 -07:00
pnpm-workspace.yaml Initial commit 2026-08-14 20:47:42 -07:00
README.md Initial commit 2026-08-14 20:47:42 -07:00
skills-lock.json Initial commit 2026-08-14 20:47:42 -07:00
tsconfig.json Initial commit 2026-08-14 20:47:42 -07:00
webpack.config.mjs Initial commit 2026-08-14 20:47:42 -07:00

Astra

Astra 是运行在 SillyTavern / TavernHelper 宿主中的可视化工作流编排器,用显式节点、关系和运行档案组织 AI 与确定性记忆处理。

主要能力

  • 事件触发、来源读取、AI 操作、确定性处理、记忆召回、条目解释、写回与停止节点;
  • Module 分组、运行开关、并发控制、API 调用预算、失败回退与动态任务派发;
  • 具名端口、Schema 校验、多输入策略、Prompt 编排、Skill、共享条目库与 API Profile
  • 完整运行、单节点检查、Module 重跑、失败恢复、主动停止与持久化诊断档案;
  • 工作流导入导出、全局或角色绑定,以及服务端持久化。

关系是节点间传递与执行顺序的唯一事实来源。保存工作流时会统一检查结构、引用、端口、Schema、Module 顺序和拓扑;无效配置不会通过兼容分支或占位数据进入运行时。

使用正式版本

把下面这一行保存到酒馆助手脚本中。地址固定到具体的产物提交SHA 就是当前版本号;每次执行 pnpm release 后,本区块都会自动更新。

await import('https://cdn.jsdelivr.net/gh/Serialeo/Astra@32e67765eb85e775f83d565a26e90418e1d64746/astra.js');

产物提交 32e6776 · 源码提交 cd47aed · 构建于 2026-08-11T14:02:21Z

正式验收必须使用固定提交地址,不使用 @release 分支地址。分支解析可能被 jsDelivr 缓存,无法证明刚发布的版本已经生效;完整原因见 发布分支说明

本地开发

以下命令都从 Astra 仓库根目录执行,并假设 AstraSillyTavern 位于同一父目录。

1. 启动本地 SillyTavern

在第一个终端运行:

npm --prefix ../SillyTavern start -- --browserLaunchEnabled false

SillyTavern 启动后应能通过 http://127.0.0.1:8000 访问。如果两个仓库不是相邻目录,把 ../SillyTavern 换成实际路径。

2. 启动 Astra 自动编译与热更新

在第二个终端运行:

pnpm install && pnpm watch

pnpm watch 会持续执行开发构建,并只在本机回环地址 127.0.0.1:4173 提供本地产物。需要改端口时使用:

pnpm watch -- --port 4174

3. 设置酒馆助手开发脚本

在酒馆助手中新建并启用一个全局脚本例如命名为“Astra 本地开发”,内容只保留:

await import('http://127.0.0.1:4173/astra.js?t=' + Date.now());

如果修改了开发服务端口,这一行的端口必须同步修改。脚本只需设置一次;之后每次 Webpack 成功编译,酒馆页面都会收到更新事件,并用新的构建标识重新载入 bundle不需要刷新整个 SillyTavern 页面。

编译失败时不会发送更新事件。终端会保留完整错误,酒馆继续运行上一次成功构建,直到下一次编译成功。

4. 检查开发服务

curl --fail --silent http://127.0.0.1:4173/status

正常结果必须满足:

  • readytrue
  • revision 有值;
  • 酒馆页面打开且开发脚本启用后,connectedPages 至少为 1

浏览器 MCP 验收

完成一次功能或修复后,用浏览器 MCP 打开 http://127.0.0.1:8000,至少检查:

  1. 浏览器控制台没有本次修改引入的加载、运行时或交互错误;
  2. Astra 启动器存在,面板能够打开、关闭并进入本次修改涉及的页面;
  3. 实际执行本次修改涉及的业务路径,并核对界面结果或持久化结果;
  4. 保存一次源码,确认 /statusrevision 变化,酒馆没有整页刷新,并成功载入新构建。

浏览器验收使用真实 SillyTavern 宿主,不用 Node 宿主桩替代,也不在仓库中写入伪造的“通过”标记。更完整的操作说明见 本地开发与发布前验收

发布

先完成浏览器 MCP 验收,再检查准备提交的文件:

git status --short
git diff --check

确认工作区内容全部属于本次发布后,执行完整发布命令;只修改提交说明:

pnpm exec tsc --noEmit && \
pnpm lint && \
pnpm test && \
pnpm build && \
git add -A && \
git diff --cached --check && \
git commit -m "feat: 描述本次修改" && \
pnpm release && \
git push origin HEAD:main

发布链的职责如下:

  1. 本地类型检查、静态检查、自动化测试和生产构建全部通过;
  2. 创建源码提交;
  3. pnpm release 再次执行必要编译,将 astra.jsversion.json 和发布说明写入孤儿 release 分支;
  4. pnpm release 强制更新 github/release,刷新 jsDelivr 并从固定提交地址核对线上版本;
  5. 发布脚本自动更新并提交 README 中的正式载入地址;
  6. 最后把源码提交和载入地址提交一起推送到 origin/main

任何一步失败都会停止后续命令。如果 pnpm release 已成功、只有最后的 git push origin HEAD:main 失败,修复远端问题后只需重新执行该 push不要重复发布 release。

主要源码

  • src/memory/core/workflow/:工作流规范化、编译、端口、任务派发与拓扑契约;
  • src/memory/runtime/workflow/:调度、运行归档、取消、重跑与状态仓储;
  • src/console/orchestrator/:画布、节点与关系详情、任务目录、端口和运行面板;
  • src/console/workflow/store.ts:工作流目录、绑定、保存与并发编辑协调;
  • src/memory/ui/api.ts:控制台与宿主运行时之间的结构化 API 边界;
  • src/memory/runtime/bootstrap.js:运行时唯一激活、所有权切换、失败回滚与销毁边界;
  • src/console/runtime-ready.ts:控制台功能模块统一的运行时就绪信号。

运行时约束

  • src/memory/index.js 只导出能力,不在 import 时初始化或启动重试定时器;
  • 控制台入口是唯一激活方;新 bundle 完整注册并发布后,才销毁旧 owner
  • 每个宿主监听和全局 API 注册都提供幂等清理,失败时按相反顺序回滚;
  • 功能模块只订阅统一的运行时就绪信号,不建立并行初始化路径;
  • 锚点初始化失败只影响真正依赖锚点的写入,不阻断 AI、预览或其他无关操作
  • 视口小于 320×280 时面板保持折叠,但启动器始终可见。

许可证

Aladdin