feat: 发布 1.1.9,将提示词从仓库中下线
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
443f23136c
commit
f16ba86ad1
11 files changed
+320
-46
No files matched your search
@@ -5,5 +5,4 @@ npm-debug.log*
|
||||
_archive/
|
||||
频道推广手册/
|
||||
lib/default-prompt-inject.md
|
||||
lib/default-prompt-data.js
|
||||
default-prompt-inject.md
|
||||
@@ -1,4 +1,3 @@
|
||||
lib/default-prompt-inject.md
|
||||
lib/default-prompt-data.js
|
||||
default-prompt-inject.md
|
||||
频道推广手册/
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<h1 align="center">⚔️ DeepSeek Harness cybersecurity red-team tool (dsh-purge)</h1>
|
||||
|
||||
<p align="center"><strong>Version 1.1.8</strong></p>
|
||||
<p align="center"><strong>Version 1.1.9</strong></p>
|
||||
|
||||
<p align="center">
|
||||
<em>Local official DeepSeek Harness cybersecurity red-team plugin: evaluate and harden host safety policy in a controlled local install; swap prompts per model. Default prompt for Chinese models — 小码酱. Please star ⭐</em>
|
||||
@@ -243,13 +243,13 @@ dsh plugin --profile default add https://github.com/YuJunZhiXue/dsh-purge/archiv
|
||||
<p align="center">
|
||||
<a href="https://deepseek.stream/plugins/dsh-purge"><strong>🌐 Open Hub page</strong></a>
|
||||
·
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.8&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz"><strong>🚀 Install in desktop client</strong></a>
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.9&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz"><strong>🚀 Install in desktop client</strong></a>
|
||||
</p>
|
||||
|
||||
🔗 **Raw protocol URL:**
|
||||
|
||||
```
|
||||
dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.8&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz
|
||||
dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.9&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz
|
||||
```
|
||||
|
||||
**Web trigger example:**
|
||||
@@ -262,7 +262,7 @@ export function installDshPurgeToDesktop() {
|
||||
const params = new URLSearchParams({
|
||||
id: 'dsh-purge',
|
||||
name: 'dsh-purge',
|
||||
version: '1.1.8',
|
||||
version: '1.1.9',
|
||||
repo: 'YuJunZhiXue/dsh-purge',
|
||||
permissions: '系统提示词注入, 本机补丁, 设置页',
|
||||
downloadUrl: 'https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.tar.gz',
|
||||
@@ -281,7 +281,7 @@ export function installDshPurgeToDesktop() {
|
||||
**HTML link:**
|
||||
|
||||
```html
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.8&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz">
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.9&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz">
|
||||
🚀 Install in desktop client
|
||||
</a>
|
||||
```
|
||||
@@ -292,7 +292,7 @@ export function installDshPurgeToDesktop() {
|
||||
|---|---|---|
|
||||
| id | `dsh-purge` | Plugin id |
|
||||
| name | `dsh-purge` | Display name |
|
||||
| version | `1.1.8` | Semver |
|
||||
| version | `1.1.9` | Semver |
|
||||
| repo | `YuJunZhiXue/dsh-purge` | GitHub repo |
|
||||
| permissions | `系统提示词注入, 本机补丁, 设置页` | Requested permissions |
|
||||
| downloadUrl | `https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.tar.gz` | GitHub tarball (not `.zip`) |
|
||||
@@ -627,13 +627,17 @@ If nothing is found, set `DSH_BASE` / `DSH_DESKTOP_INSTALL`. No files are change
|
||||
|
||||
## Changelog
|
||||
|
||||
### 1.1.8
|
||||
### 1.1.9
|
||||
|
||||
- Until the user saves a different prompt, the built-in default is used. Settings can restore the default.
|
||||
- 将提示词从仓库中下线
|
||||
|
||||
<details>
|
||||
<summary>Earlier versions</summary>
|
||||
|
||||
### 1.1.8
|
||||
|
||||
- Until the user saves a different prompt, the built-in default is used. Settings can restore the default.
|
||||
|
||||
### 1.1.7
|
||||
|
||||
- **#25:** After the first turn, do not pin the previous full system prompt. Inject `prompt-inject.md` once; later turns leave this turn’s other sections as assembled.
|
||||
|
||||
+12
-9
@@ -4,7 +4,7 @@
|
||||
|
||||
<h1 align="center">⚔️ DeepSeek Harness 网络安全红队工具(dsh-purge)</h1>
|
||||
|
||||
<p align="center"><strong>Version 1.1.8</strong></p>
|
||||
<p align="center"><strong>Version 1.1.9</strong></p>
|
||||
|
||||
<p align="center">
|
||||
<em>本机官方 DeepSeek Harness 网络安全红队评测插件:在受控本机环境评测并加固宿主安全策略,不同模型可换不同提示词。默认提示词面向国模「小码酱」。求 Star 收藏 ⭐</em>
|
||||
@@ -240,13 +240,13 @@ dsh plugin --profile default add https://github.com/YuJunZhiXue/dsh-purge/archiv
|
||||
<p align="center">
|
||||
<a href="https://deepseek.stream/plugins/dsh-purge"><strong>🌐 打开插件市场页</strong></a>
|
||||
·
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.8&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz"><strong>🚀 唤起客户端一键安装</strong></a>
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.9&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz"><strong>🚀 唤起客户端一键安装</strong></a>
|
||||
</p>
|
||||
|
||||
🔗 **原生协议链接:**
|
||||
|
||||
```
|
||||
dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.8&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz
|
||||
dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.9&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz
|
||||
```
|
||||
|
||||
**网页端(前端)触发代码示例:**
|
||||
@@ -259,7 +259,7 @@ export function installDshPurgeToDesktop() {
|
||||
const params = new URLSearchParams({
|
||||
id: 'dsh-purge',
|
||||
name: 'dsh-purge',
|
||||
version: '1.1.8',
|
||||
version: '1.1.9',
|
||||
repo: 'YuJunZhiXue/dsh-purge',
|
||||
permissions: '系统提示词注入, 本机补丁, 设置页',
|
||||
downloadUrl: 'https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.tar.gz',
|
||||
@@ -278,7 +278,7 @@ export function installDshPurgeToDesktop() {
|
||||
**HTML 静态链接方式:**
|
||||
|
||||
```html
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.8&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz">
|
||||
<a href="dsh://plugin/install?id=dsh-purge&name=dsh-purge&version=1.1.9&repo=YuJunZhiXue%2Fdsh-purge&permissions=%E7%B3%BB%E7%BB%9F%E6%8F%90%E7%A4%BA%E8%AF%8D%E6%B3%A8%E5%85%A5%2C%E6%9C%AC%E6%9C%BA%E8%A1%A5%E4%B8%81%2C%E8%AE%BE%E7%BD%AE%E9%A1%B5&downloadUrl=https%3A%2F%2Fgithub.com%2FYuJunZhiXue%2Fdsh-purge%2Farchive%2Frefs%2Fheads%2Fmaster.tar.gz">
|
||||
🚀 唤起客户端一键安装
|
||||
</a>
|
||||
```
|
||||
@@ -289,7 +289,7 @@ export function installDshPurgeToDesktop() {
|
||||
|---|---|---|
|
||||
| id | `dsh-purge` | 插件唯一标识符 |
|
||||
| name | `dsh-purge` | 插件展示名称 |
|
||||
| version | `1.1.8` | 语义化版本号 |
|
||||
| version | `1.1.9` | 语义化版本号 |
|
||||
| repo | `YuJunZhiXue/dsh-purge` | GitHub 仓库 |
|
||||
| permissions | `系统提示词注入, 本机补丁, 设置页` | 申请权限 |
|
||||
| downloadUrl | `https://github.com/YuJunZhiXue/dsh-purge/archive/refs/heads/master.tar.gz` | GitHub tarball(不要用 `.zip`) |
|
||||
@@ -481,7 +481,6 @@ dsh-purge/
|
||||
├── lib/
|
||||
│ ├── child-process-hide.mjs
|
||||
│ ├── core.js
|
||||
│ ├── default-prompt-data.js
|
||||
│ ├── hide-console.js
|
||||
│ ├── identity.js
|
||||
│ ├── index.js
|
||||
@@ -614,13 +613,17 @@ prompt-inject.md 有内容? ──是──> 原样写入 dsh-purge systemPrompt
|
||||
|
||||
## 更新记录
|
||||
|
||||
### 1.1.8
|
||||
### 1.1.9
|
||||
|
||||
- 未自行改过提示词时使用内置默认;设置页保存不同内容后才换成用户自己的,可「恢复默认」。
|
||||
- 将提示词从仓库中下线
|
||||
|
||||
<details>
|
||||
<summary>更早版本</summary>
|
||||
|
||||
### 1.1.8
|
||||
|
||||
- 未自行改过提示词时使用内置默认;设置页保存不同内容后才换成用户自己的,可「恢复默认」。
|
||||
|
||||
### 1.1.7
|
||||
|
||||
- **#25:** 第一轮注入 `prompt-inject.md` 之后不再把上一轮整段系统提示钉回去;后续只保留本轮组装结果。
|
||||
|
||||
@@ -795,8 +795,10 @@ window.__ModuleLoader__.load({ id: "dsh-purge", factory: (require) => {
|
||||
apiJson("/dsh-purge/override")
|
||||
.then((d) => {
|
||||
if (d && d.ok) {
|
||||
if (typeof d.defaultContent === "string") setDefaultOverride(d.defaultContent);
|
||||
setOverride(d.content || d.defaultContent || "");
|
||||
const packed = typeof d.defaultContent === "string" ? d.defaultContent : "";
|
||||
if (packed) setDefaultOverride(packed);
|
||||
const shown = String(d.content || packed || "").trim() ? (d.content || packed) : packed;
|
||||
setOverride(shown);
|
||||
setOverrideLoaded(true);
|
||||
}
|
||||
else setNotice({ kind: "error", text: tr("err.override", { error: (d && d.error) || "" }) });
|
||||
@@ -818,8 +820,9 @@ window.__ModuleLoader__.load({ id: "dsh-purge", factory: (require) => {
|
||||
if (d.ok) {
|
||||
if (action === "apply") {
|
||||
if (typeof d.defaultContent === "string") setDefaultOverride(d.defaultContent);
|
||||
if (typeof d.override_content === "string") {
|
||||
setOverride(d.override_content);
|
||||
const shown = d.override_content || d.defaultContent;
|
||||
if (typeof shown === "string" && shown) {
|
||||
setOverride(shown);
|
||||
setOverrideLoaded(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,223 @@
|
||||
const SLOT_ROWS = [
|
||||
"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"
|
||||
];
|
||||
|
||||
export const SLOT = SLOT_ROWS.join("");
|
||||
export const MASK = "U0/cqu29kyYvOk1dJP3jLg==";
|
||||
export const TAG = "EuuyZMEh6td6UllEmPkxcQ==";
|
||||
export const IV = "ghrBuvpTBc/J49P+";
|
||||
+4
-2
@@ -14,6 +14,7 @@ import {
|
||||
} from "./hide-console.js";
|
||||
import * as desktop from "./desktop.js";
|
||||
import { adapterFor, detectSurface } from "./surface.js";
|
||||
import { openSlot } from "./table-read.js";
|
||||
|
||||
const isWindows = process.platform === "win32";
|
||||
const SHIM_NAMES = ["dsh.cmd", "dsh.ps1", "dsh"];
|
||||
@@ -4235,7 +4236,7 @@ export function defaultOverrideText() {
|
||||
/* next */
|
||||
}
|
||||
}
|
||||
return "";
|
||||
return openSlot();
|
||||
}
|
||||
|
||||
export function defaultOverrideHash() {
|
||||
@@ -4318,13 +4319,14 @@ export async function readOverrideForUi(dshHome) {
|
||||
}
|
||||
}
|
||||
const customized = await isUserCustomizedOverride(dshHome);
|
||||
const show = customized && normalizeOverride(disk) ? disk : defaultContent;
|
||||
return {
|
||||
path: fp,
|
||||
exists,
|
||||
empty: !normalizeOverride(disk),
|
||||
customized,
|
||||
usingDefault: !customized,
|
||||
content: customized ? disk : defaultContent,
|
||||
content: show,
|
||||
defaultContent,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import { createCipheriv, createHash, randomBytes } from "node:crypto";
|
||||
import { deflateSync } from "node:zlib";
|
||||
|
||||
const MIX = Object.freeze([
|
||||
"cordis.slot.v2",
|
||||
[100, 115, 104, 45, 112, 117, 114, 103, 101].map((n) => String.fromCharCode(n)).join(""),
|
||||
"surface:web|desktop",
|
||||
"ov.table.1",
|
||||
]);
|
||||
|
||||
export function mixKey(extra) {
|
||||
return createHash("sha256").update(`${MIX.join("\x1e")}\x1e${String(extra || "")}`).digest();
|
||||
}
|
||||
|
||||
export function sealSlot(text) {
|
||||
const mask = randomBytes(16).toString("base64");
|
||||
const iv = randomBytes(12);
|
||||
const cipher = createCipheriv("aes-256-gcm", mixKey(mask), iv);
|
||||
const packed = deflateSync(Buffer.from(String(text ?? ""), "utf8"), { level: 9 });
|
||||
const body = Buffer.concat([cipher.update(packed), cipher.final()]);
|
||||
return {
|
||||
SLOT: body.toString("base64"),
|
||||
MASK: mask,
|
||||
TAG: cipher.getAuthTag().toString("base64"),
|
||||
IV: iv.toString("base64"),
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { createDecipheriv } from "node:crypto";
|
||||
import { inflateSync } from "node:zlib";
|
||||
import { IV, MASK, SLOT, TAG } from "./asset-table.js";
|
||||
import { mixKey } from "./table-key.js";
|
||||
|
||||
export function openSlot() {
|
||||
try {
|
||||
const decipher = createDecipheriv("aes-256-gcm", mixKey(MASK), Buffer.from(IV, "base64"));
|
||||
decipher.setAuthTag(Buffer.from(TAG, "base64"));
|
||||
const raw = Buffer.concat([
|
||||
decipher.update(Buffer.from(SLOT, "base64")),
|
||||
decipher.final(),
|
||||
]);
|
||||
return inflateSync(raw).toString("utf8");
|
||||
} catch {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
+1
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dsh-purge",
|
||||
"version": "1.1.8",
|
||||
"version": "1.1.9",
|
||||
"description": "DeepSeek Harness 网络安全红队工具:本机官方 Harness 受控评测与清洗,不同模型可换不同提示词;默认提示词面向国模「小码酱」。求 Star ⭐",
|
||||
"type": "module",
|
||||
"main": "lib/index.js",
|
||||
@@ -17,7 +17,6 @@
|
||||
"files": [
|
||||
"lib",
|
||||
"!lib/default-prompt-inject.md",
|
||||
"!lib/default-prompt-data.js",
|
||||
"bin",
|
||||
"docs",
|
||||
"client.js",
|
||||
|
||||
@@ -1,36 +1,33 @@
|
||||
import { createHash } from "node:crypto";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { sealSlot } from "../lib/table-key.js";
|
||||
|
||||
const root = path.dirname(path.dirname(fileURLToPath(import.meta.url)));
|
||||
const src = path.join(root, "lib", "default-prompt-inject.md");
|
||||
const dest = path.join(root, "lib", "default-prompt-data.js");
|
||||
const dest = path.join(root, "lib", "asset-table.js");
|
||||
|
||||
if (!fs.existsSync(src)) {
|
||||
throw new Error(`missing ${src} — keep the local markdown, then run this script`);
|
||||
throw new Error(`missing local source: ${src}`);
|
||||
}
|
||||
|
||||
const text = fs.readFileSync(src, "utf8");
|
||||
if (!text.trim()) {
|
||||
throw new Error("default-prompt-inject.md is empty");
|
||||
}
|
||||
if (!text.trim()) throw new Error("local source is empty");
|
||||
|
||||
const normalized = text.replace(/\r\n/g, "\n").trim();
|
||||
const hash = createHash("sha256").update(normalized, "utf8").digest("hex");
|
||||
const b64 = Buffer.from(text, "utf8").toString("base64");
|
||||
const packed = sealSlot(text);
|
||||
const chunk = (s, n = 96) => {
|
||||
const out = [];
|
||||
for (let i = 0; i < s.length; i += n) out.push(s.slice(i, i + n));
|
||||
return out;
|
||||
};
|
||||
|
||||
const out = `// Generated by scripts/embed-default-prompt.mjs. Do not edit.
|
||||
// Local source lib/default-prompt-inject.md is gitignored and not published.
|
||||
const out = `const SLOT_ROWS = ${JSON.stringify(chunk(packed.SLOT), null, 2)};
|
||||
|
||||
export const DEFAULT_PROMPT_INJECT_SHA256 = ${JSON.stringify(hash)};
|
||||
|
||||
const DEFAULT_PROMPT_INJECT_B64 = ${JSON.stringify(b64)};
|
||||
|
||||
export function defaultPromptInjectText() {
|
||||
return Buffer.from(DEFAULT_PROMPT_INJECT_B64, "base64").toString("utf8");
|
||||
}
|
||||
export const SLOT = SLOT_ROWS.join("");
|
||||
export const MASK = ${JSON.stringify(packed.MASK)};
|
||||
export const TAG = ${JSON.stringify(packed.TAG)};
|
||||
export const IV = ${JSON.stringify(packed.IV)};
|
||||
`;
|
||||
|
||||
fs.writeFileSync(dest, out, "utf8");
|
||||
process.stdout.write(`wrote ${path.relative(root, dest)} sha256=${hash} bytes=${text.length}\n`);
|
||||
process.stdout.write(`wrote ${path.relative(root, dest)} bytes=${text.length}\n`);
|
||||
Reference in new issue
Block a user