kevlar-4u 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -58
- package/dist/__tests__/createPersonaTool.test.js +47 -28
- package/dist/__tests__/createPersonaTool.test.js.map +1 -1
- package/dist/__tests__/createPersonaWizard.test.js +3 -3
- package/dist/__tests__/createPersonaWizard.test.js.map +1 -1
- package/dist/__tests__/deletePersonaWizard.test.js +16 -23
- package/dist/__tests__/deletePersonaWizard.test.js.map +1 -1
- package/dist/__tests__/e2e.test.js +20 -36
- package/dist/__tests__/e2e.test.js.map +1 -1
- package/dist/__tests__/execution.test.js +16 -23
- package/dist/__tests__/execution.test.js.map +1 -1
- package/dist/__tests__/focusTopicTransform.test.d.ts +2 -0
- package/dist/__tests__/focusTopicTransform.test.d.ts.map +1 -0
- package/dist/__tests__/focusTopicTransform.test.js +48 -0
- package/dist/__tests__/focusTopicTransform.test.js.map +1 -0
- package/dist/__tests__/kevlarPrd.test.d.ts +2 -0
- package/dist/__tests__/kevlarPrd.test.d.ts.map +1 -0
- package/dist/__tests__/kevlarPrd.test.js +108 -0
- package/dist/__tests__/kevlarPrd.test.js.map +1 -0
- package/dist/__tests__/listPersonasTool.test.js +21 -30
- package/dist/__tests__/listPersonasTool.test.js.map +1 -1
- package/dist/__tests__/parser.test.js +116 -122
- package/dist/__tests__/parser.test.js.map +1 -1
- package/dist/__tests__/reviewContentWizard.test.js +195 -24
- package/dist/__tests__/reviewContentWizard.test.js.map +1 -1
- package/dist/dao/IRuleRepository.d.ts +37 -0
- package/dist/dao/IRuleRepository.d.ts.map +1 -0
- package/dist/dao/IRuleRepository.js +2 -0
- package/dist/dao/IRuleRepository.js.map +1 -0
- package/dist/dao/LocalJsonRuleRepository.d.ts +28 -0
- package/dist/dao/LocalJsonRuleRepository.d.ts.map +1 -0
- package/dist/dao/LocalJsonRuleRepository.js +195 -0
- package/dist/dao/LocalJsonRuleRepository.js.map +1 -0
- package/dist/dao/index.d.ts +4 -0
- package/dist/dao/index.d.ts.map +1 -0
- package/dist/dao/index.js +2 -0
- package/dist/dao/index.js.map +1 -0
- package/dist/dao/types.d.ts +68 -0
- package/dist/dao/types.d.ts.map +1 -0
- package/dist/dao/types.js +2 -0
- package/dist/dao/types.js.map +1 -0
- package/dist/execution/aggregator.d.ts +3 -0
- package/dist/execution/aggregator.d.ts.map +1 -1
- package/dist/execution/aggregator.js +46 -17
- package/dist/execution/aggregator.js.map +1 -1
- package/dist/execution/base.d.ts +3 -0
- package/dist/execution/base.d.ts.map +1 -1
- package/dist/execution/config.d.ts +8 -0
- package/dist/execution/config.d.ts.map +1 -1
- package/dist/execution/config.js +2 -0
- package/dist/execution/config.js.map +1 -1
- package/dist/execution/dimensions.d.ts +155 -0
- package/dist/execution/dimensions.d.ts.map +1 -0
- package/dist/execution/dimensions.js +1194 -0
- package/dist/execution/dimensions.js.map +1 -0
- package/dist/execution/focusTopicTransform.d.ts +32 -0
- package/dist/execution/focusTopicTransform.d.ts.map +1 -0
- package/dist/execution/focusTopicTransform.js +208 -0
- package/dist/execution/focusTopicTransform.js.map +1 -0
- package/dist/execution/index.d.ts.map +1 -1
- package/dist/execution/index.js +3 -0
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/modes/direct_api.d.ts +19 -0
- package/dist/execution/modes/direct_api.d.ts.map +1 -1
- package/dist/execution/modes/direct_api.js +16 -7
- package/dist/execution/modes/direct_api.js.map +1 -1
- package/dist/execution/modes/orchestration.d.ts.map +1 -1
- package/dist/execution/modes/orchestration.js +126 -15
- package/dist/execution/modes/orchestration.js.map +1 -1
- package/dist/execution/modes/sampling.d.ts.map +1 -1
- package/dist/execution/modes/sampling.js +8 -6
- package/dist/execution/modes/sampling.js.map +1 -1
- package/dist/execution/parallel.d.ts +14 -1
- package/dist/execution/parallel.d.ts.map +1 -1
- package/dist/execution/parallel.js +91 -6
- package/dist/execution/parallel.js.map +1 -1
- package/dist/execution/riskPrompt.d.ts +4 -0
- package/dist/execution/riskPrompt.d.ts.map +1 -0
- package/dist/execution/riskPrompt.js +50 -0
- package/dist/execution/riskPrompt.js.map +1 -0
- package/dist/execution/rstParser.d.ts +47 -0
- package/dist/execution/rstParser.d.ts.map +1 -0
- package/dist/execution/rstParser.js +367 -0
- package/dist/execution/rstParser.js.map +1 -0
- package/dist/execution/rstRecommender.d.ts +48 -0
- package/dist/execution/rstRecommender.d.ts.map +1 -0
- package/dist/execution/rstRecommender.js +277 -0
- package/dist/execution/rstRecommender.js.map +1 -0
- package/dist/i18n/create-persona-wizard-i18n.d.ts +31 -0
- package/dist/i18n/create-persona-wizard-i18n.d.ts.map +1 -0
- package/dist/i18n/create-persona-wizard-i18n.js +265 -0
- package/dist/i18n/create-persona-wizard-i18n.js.map +1 -0
- package/dist/i18n/dimensions-i18n.d.ts +14 -0
- package/dist/i18n/dimensions-i18n.d.ts.map +1 -0
- package/dist/i18n/dimensions-i18n.js +56 -0
- package/dist/i18n/dimensions-i18n.js.map +1 -0
- package/dist/i18n/errors-i18n.d.ts +10 -0
- package/dist/i18n/errors-i18n.d.ts.map +1 -0
- package/dist/i18n/errors-i18n.js +34 -0
- package/dist/i18n/errors-i18n.js.map +1 -0
- package/dist/i18n/index.d.ts +16 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +58 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/tools-i18n.d.ts +14 -0
- package/dist/i18n/tools-i18n.d.ts.map +1 -0
- package/dist/i18n/tools-i18n.js +45 -0
- package/dist/i18n/tools-i18n.js.map +1 -0
- package/dist/i18n/wizard-i18n.d.ts +32 -0
- package/dist/i18n/wizard-i18n.d.ts.map +1 -0
- package/dist/i18n/wizard-i18n.js +99 -0
- package/dist/i18n/wizard-i18n.js.map +1 -0
- package/dist/renderers/buildStructuredPreAuditSummary.d.ts +8 -0
- package/dist/renderers/buildStructuredPreAuditSummary.d.ts.map +1 -0
- package/dist/renderers/buildStructuredPreAuditSummary.js +27 -0
- package/dist/renderers/buildStructuredPreAuditSummary.js.map +1 -0
- package/dist/renderers/index.d.ts +5 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/index.js +4 -0
- package/dist/renderers/index.js.map +1 -0
- package/dist/renderers/normalizeRiskFinding.d.ts +3 -0
- package/dist/renderers/normalizeRiskFinding.d.ts.map +1 -0
- package/dist/renderers/normalizeRiskFinding.js +14 -0
- package/dist/renderers/normalizeRiskFinding.js.map +1 -0
- package/dist/renderers/renderPreAuditSummary.d.ts +3 -0
- package/dist/renderers/renderPreAuditSummary.d.ts.map +1 -0
- package/dist/renderers/renderPreAuditSummary.js +42 -0
- package/dist/renderers/renderPreAuditSummary.js.map +1 -0
- package/dist/renderers/types.d.ts +34 -0
- package/dist/renderers/types.d.ts.map +1 -0
- package/dist/renderers/types.js +2 -0
- package/dist/renderers/types.js.map +1 -0
- package/dist/tools/createPersonaTool.d.ts +5 -2
- package/dist/tools/createPersonaTool.d.ts.map +1 -1
- package/dist/tools/createPersonaTool.js +51 -26
- package/dist/tools/createPersonaTool.js.map +1 -1
- package/dist/tools/createPersonaWizardTool.d.ts.map +1 -1
- package/dist/tools/createPersonaWizardTool.js +698 -235
- package/dist/tools/createPersonaWizardTool.js.map +1 -1
- package/dist/tools/deletePersonaTool.d.ts.map +1 -1
- package/dist/tools/deletePersonaTool.js +8 -17
- package/dist/tools/deletePersonaTool.js.map +1 -1
- package/dist/tools/helpTool.d.ts.map +1 -1
- package/dist/tools/helpTool.js +3 -41
- package/dist/tools/helpTool.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/languageTool.d.ts +7 -0
- package/dist/tools/languageTool.d.ts.map +1 -0
- package/dist/tools/languageTool.js +54 -0
- package/dist/tools/languageTool.js.map +1 -0
- package/dist/tools/listPersonasTool.d.ts.map +1 -1
- package/dist/tools/listPersonasTool.js +26 -17
- package/dist/tools/listPersonasTool.js.map +1 -1
- package/dist/tools/reviewContentWizardTool.d.ts.map +1 -1
- package/dist/tools/reviewContentWizardTool.js +865 -222
- package/dist/tools/reviewContentWizardTool.js.map +1 -1
- package/dist/tools/reviewTool.d.ts +3 -0
- package/dist/tools/reviewTool.d.ts.map +1 -1
- package/dist/tools/reviewTool.js +4 -1
- package/dist/tools/reviewTool.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +2 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/parser.d.ts +48 -2
- package/dist/utils/parser.d.ts.map +1 -1
- package/dist/utils/parser.js +272 -130
- package/dist/utils/parser.js.map +1 -1
- package/package.json +22 -7
- package/skills/auditors.json +91 -0
- package/skills/rules.json +16 -0
- package/skills/tmp/wizard-review-06cyfy55_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-0bp8nsap_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-0f9fl4yg_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-0ogx1wb0_review_wizard.json +117 -0
- package/skills/tmp/wizard-review-0syhetgl_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-1hrqvy6m_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-1rjya1oi_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-2598m0v6_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-2f8iwkkt_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-30gqoa6k_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-42hj1eim_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-51f4jqtz_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-5ffz7zvj_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-5mgwzmzu_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-69oc4sih_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-6e6snpcg_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-6rcfso7c_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-7boabjwe_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-7feoy82w_review_wizard.json +89 -0
- package/skills/tmp/wizard-review-7z7gokd8_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-899k8jw3_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-8p55cbhg_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-9d57e5d4_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-9kga57z5_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-akhvy50k_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-amg123hp_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-biiovl7d_review_wizard.json +161 -0
- package/skills/tmp/wizard-review-bqlhhr7t_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-cz6py1tj_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-djqawy2u_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-e6dz0vss_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-eavox37t_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-ei2vvb15_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-ek0iioha_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-epvji0l8_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-f21aajoy_review_wizard.json +89 -0
- package/skills/tmp/wizard-review-gfi260z3_review_wizard.json +89 -0
- package/skills/tmp/wizard-review-lrolkvl2_review_wizard.json +92 -0
- package/skills/tmp/wizard-review-mpx4hahp_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-o0ec25eu_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-o4ghwnen_review_wizard.json +89 -0
- package/skills/tmp/wizard-review-o7b4jrvw_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-odt3xr9f_review_wizard.json +89 -0
- package/skills/tmp/wizard-review-ozf7vava_review_wizard.json +103 -0
- package/skills/tmp/wizard-review-pdwnw57x_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-qbtwnipl_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-r4aun0um_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-rhrx9nkc_review_wizard.json +71 -0
- package/skills/tmp/wizard-review-rs4u8iod_review_wizard.json +153 -0
- package/skills/tmp/wizard-review-se76fipi_review_wizard.json +83 -0
- package/skills/tmp/wizard-review-tefpu26m_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-u0mxjjbj_review_wizard.json +125 -0
- package/skills/tmp/wizard-review-v9ptn2at_review_wizard.json +21 -0
- package/skills/tmp/wizard-review-z09wonpe_review_wizard.json +83 -0
- package/skills/wechat_official.json +61 -0
- package/skills/xiaohongshu.json +116 -0
- package/skills/zhihu.json +34 -0
- package/README.ja.md +0 -348
- package/README.ko.md +0 -348
- package/README.zh.md +0 -348
- package/skills/tmp/wizard-create-3mk79v9g_draft.json +0 -35
- package/skills/tmp/wizard-create-3mk79v9g_wizard.json +0 -35
- package/skills/tmp/wizard-create-yilbwzz6_draft.json +0 -35
- package/skills/tmp/wizard-create-yilbwzz6_wizard.json +0 -35
- package/skills/wechat_official/wechat_official.md +0 -26
- package/skills/wechat_official/wechat_official_1.md +0 -31
- package/skills/xiaohongshu/xiaohongshu.md +0 -26
- package/skills/xiaohongshu/xiaohongshu_1.md +0 -29
- package/skills/xiaohongshu/xiaohongshu_2.md +0 -34
- package/skills/xiaohongshu/xiaohongshu_3.md +0 -30
- package/skills/zhihu/zhihu.md +0 -34
package/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Kevlar-4u — Comment Section Simulator
|
|
2
2
|
|
|
3
3
|

|
|
4
|
-

|
|
5
5
|

|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
🌐 [English](README.md) · [中文](README.zh.md) · [日本語](README.ja.md) · [한국어](README.ko.md)
|
|
8
|
+
🌐 [English](README.md) · [中文](docs/README.zh.md) · [日本語](docs/README.ja.md) · [한국어](docs/README.ko.md)
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -23,6 +23,16 @@ And most platforms don't offer a real **A/B test**. Once content goes live, by t
|
|
|
23
23
|
|
|
24
24
|
**Kevlar-4u helps you surface these problems before you hit publish.**
|
|
25
25
|
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## License
|
|
29
|
+
|
|
30
|
+
Kevlar-4u's core local features are open-sourced under the **AGPLv3** license.
|
|
31
|
+
|
|
32
|
+
Cloud-based risk word cloud services, paid rule synchronization, and advanced features are **proprietary commercial services**.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
26
36
|
## Who needs Kevlar
|
|
27
37
|
|
|
28
38
|
**Indie developers** / **Content creators** / **Product teams** / **PR teams** / Heavy users of X, Reddit, V2EX, Hacker News / Anyone who wants to improve content quality and reach
|
|
@@ -35,15 +45,15 @@ And most platforms don't offer a real **A/B test**. Once content goes live, by t
|
|
|
35
45
|
|
|
36
46
|
Break out of the single-AI perspective with comprehensive persona customization:
|
|
37
47
|
|
|
38
|
-
- **Core attributes**: Age, interests, personality,
|
|
48
|
+
- **Core attributes**: Age, interests, personality, tone of voice.
|
|
49
|
+
- **RST (Reaction Simulation Taxonomy)**: Four-layer internet reaction simulation — choose an archetype (e.g., "Anti-Marketing Detector"), content sensitivity triggers, regional cultural context, and platform culture. The system simulates how real internet users react, not just how reviewers evaluate.
|
|
39
50
|
- **Cognition & relationship**: Define blind spots (e.g., domain-specific biases) and social relationship with the author (e.g., a strict mentor, a radical opponent).
|
|
40
|
-
- **
|
|
51
|
+
- **Natural language creation**: Describe your ideal reviewer in plain text (e.g., "a cynical HN user who hates buzzwords"), and the system auto-parses it into a full RST configuration.
|
|
41
52
|
|
|
42
|
-
### 2.
|
|
53
|
+
### 2. Two-Stage Review Pipeline
|
|
43
54
|
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **Multi-dimensional collision**: Triggers differentiated comments and feedback from diverse stances and professional perspectives.
|
|
55
|
+
- **Stage 1 — System Pre-audit**: Five specialized system auditors scan content for compliance, context distortion, network culture risks, factual errors, and social risk — producing a structured findings report.
|
|
56
|
+
- **Stage 2 — RST Review**: User-created reviewers with RST personalities receive **Focus Topics** (filtered + translated from pre-audit findings) and produce authentic user reactions, not dimension-scored reports.
|
|
47
57
|
|
|
48
58
|
---
|
|
49
59
|
|
|
@@ -103,43 +113,45 @@ Low-level direct tools (suitable for automation scripts):
|
|
|
103
113
|
|
|
104
114
|
### Content Review Flow
|
|
105
115
|
|
|
106
|
-
`review_content_wizard` chains "
|
|
116
|
+
`review_content_wizard` chains "pre-audit, reviewer selection, Focus Topic transformation, RST review" into a stable flow.
|
|
107
117
|
|
|
108
118
|
```mermaid
|
|
109
119
|
flowchart TD
|
|
110
|
-
A["Submit content
|
|
111
|
-
B
|
|
112
|
-
C
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
K -->|No| I
|
|
120
|
+
A["Submit content"] --> B["Stage 1: System Pre-audit"]
|
|
121
|
+
B --> C["5 system auditors scan in parallel"]
|
|
122
|
+
C --> D["Raw findings report"]
|
|
123
|
+
D --> E{"Any user personas?"}
|
|
124
|
+
E -->|No| F["Prompt to create persona, save state"]
|
|
125
|
+
F -.->|"Same sessionId"| E
|
|
126
|
+
E -->|Yes| G["Select reviewers (RST recommended or manual)"]
|
|
127
|
+
G --> H["Focus Topic transformation"]
|
|
128
|
+
H --> I["Filter findings by reviewer's RST triggers"]
|
|
129
|
+
I --> J["Translate to natural-language prompts"]
|
|
130
|
+
J --> K["Stage 2: RST Review"]
|
|
131
|
+
K --> L["Each reviewer produces authentic user reaction"]
|
|
132
|
+
L --> M["Aggregated report"]
|
|
124
133
|
```
|
|
125
134
|
|
|
126
135
|
### Creating a Reviewer Persona
|
|
127
136
|
|
|
128
|
-
`create_persona_wizard` guides you through persona creation
|
|
137
|
+
`create_persona_wizard` guides you through persona creation with RST support.
|
|
129
138
|
|
|
130
139
|
```mermaid
|
|
131
140
|
flowchart LR
|
|
132
141
|
A["Age range"] --> B["Interests"]
|
|
133
142
|
B --> C["Personality traits"]
|
|
134
143
|
C --> D["Tone of voice"]
|
|
135
|
-
D --> E["
|
|
144
|
+
D --> E["Platform"]
|
|
136
145
|
E --> F["Author relation"]
|
|
137
|
-
F --> G["
|
|
138
|
-
G
|
|
139
|
-
|
|
146
|
+
F --> G["Perspective / RST archetype"]
|
|
147
|
+
G --> H["Final confirmation & preview"]
|
|
148
|
+
H -->|Confirm| I["Save persona"]
|
|
149
|
+
H -->|Edit| G
|
|
140
150
|
```
|
|
141
151
|
|
|
142
|
-
|
|
152
|
+
You can select a traditional perspective preset (9 options) or an **RST archetype** (8 options). RST archetypes auto-configure triggers, regional context, and platform culture. You can also describe your ideal reviewer in natural language (e.g., "a skeptical tech user on HN") and the system will parse it into a full RST config.
|
|
153
|
+
|
|
154
|
+
After creation, Kevlar-4u automatically infers the cultural background, blind spots, and behavior hints, saving them to `skills/*.json` (routed by platform tag — see [Architecture](#architecture-overview)).
|
|
143
155
|
|
|
144
156
|
---
|
|
145
157
|
|
|
@@ -246,7 +258,7 @@ flowchart TD
|
|
|
246
258
|
Tools --> Wizards["Server-side State Machine Wizards"]
|
|
247
259
|
Tools --> Execution["Multi-mode Execution Layer"]
|
|
248
260
|
Wizards --> Tmp["skills/tmp Session State"]
|
|
249
|
-
Execution --> Personas["skills/*.
|
|
261
|
+
Execution --> Personas["skills/*.json Personas & Rules"]
|
|
250
262
|
Execution --> Report["Structured Review Report"]
|
|
251
263
|
```
|
|
252
264
|
|
|
@@ -263,13 +275,22 @@ Design principles:
|
|
|
263
275
|
kevlar-4u/
|
|
264
276
|
├── config/
|
|
265
277
|
│ └── mcp-config.json # MCP client config template
|
|
266
|
-
├── docs/ # Architecture
|
|
278
|
+
├── docs/ # Architecture decisions, ADRs, audit reports
|
|
279
|
+
├── schedule/ # RST design docs & phase logs
|
|
280
|
+
│ ├── RST-ARCHITECTURE.md # RST four-layer architecture
|
|
281
|
+
│ ├── RST-需求文档.md # RST requirements
|
|
282
|
+
│ └── RST-PHASE-LOG.md # RST implementation phase log
|
|
267
283
|
├── scripts/ # Install & config scripts
|
|
268
284
|
│ ├── cli.ts # Interactive install CLI
|
|
269
285
|
│ ├── registry.ts # MCP client detection
|
|
270
286
|
│ └── setup.ts # Zero-config setup script
|
|
271
287
|
├── skills/ # Reviewer persona library
|
|
272
|
-
│ ├──
|
|
288
|
+
│ ├── auditors.json # System auditors (pre-screening)
|
|
289
|
+
│ ├── xiaohongshu.json # Platform: 小红书
|
|
290
|
+
│ ├── zhihu.json # Platform: 知乎
|
|
291
|
+
│ ├── wechat_official.json # Platform: 微信公众号
|
|
292
|
+
│ ├── rules.json # Semantic risk rules (DAO layer)
|
|
293
|
+
│ ├── _template.md # (Legacy) Persona reference template
|
|
273
294
|
│ └── tmp/ # Runtime wizard session state
|
|
274
295
|
├── src/
|
|
275
296
|
│ ├── index.ts # stdio server entry
|
|
@@ -283,7 +304,11 @@ kevlar-4u/
|
|
|
283
304
|
│ │ ├── aggregator.ts # Review report aggregation
|
|
284
305
|
│ │ ├── limiter.ts # Concurrency limiting & retry
|
|
285
306
|
│ │ ├── lock.ts # Review lock
|
|
286
|
-
│ │ ├── parallel.ts # Shared parallel execution
|
|
307
|
+
│ │ ├── parallel.ts # Shared parallel execution + RST prompt builder
|
|
308
|
+
│ │ ├── dimensions.ts # Review dimensions + RST four-layer definitions
|
|
309
|
+
│ │ ├── focusTopicTransform.ts # Focus Topic filter + translate pipeline
|
|
310
|
+
│ │ ├── rstParser.ts # Natural language → RST config parser
|
|
311
|
+
│ │ ├── rstRecommender.ts # RST-based persona recommendation engine
|
|
287
312
|
│ │ └── modes/
|
|
288
313
|
│ │ ├── orchestration.ts
|
|
289
314
|
│ │ ├── sampling.ts
|
|
@@ -292,7 +317,7 @@ kevlar-4u/
|
|
|
292
317
|
│ │ ├── index.ts # Tool registry
|
|
293
318
|
│ │ ├── listPersonasTool.ts
|
|
294
319
|
│ │ ├── createPersonaTool.ts # Create persona + draft management
|
|
295
|
-
│ │ ├── createPersonaWizardTool.ts
|
|
320
|
+
│ │ ├── createPersonaWizardTool.ts # Wizard with RST archetype selection
|
|
296
321
|
│ │ ├── deletePersonaTool.ts
|
|
297
322
|
│ │ ├── deletePersonaWizardTool.ts
|
|
298
323
|
│ │ ├── reviewTool.ts
|
|
@@ -301,12 +326,17 @@ kevlar-4u/
|
|
|
301
326
|
│ │ ├── configureWizardTool.ts
|
|
302
327
|
│ │ ├── getModesTool.ts
|
|
303
328
|
│ │ └── helpTool.ts
|
|
329
|
+
│ ├── dao/ # Data Access Layer
|
|
330
|
+
│ │ ├── IRuleRepository.ts # Rule repository interface
|
|
331
|
+
│ │ ├── LocalJsonRuleRepository.ts # Local JSON implementation
|
|
332
|
+
│ │ ├── index.ts # DAO entry point
|
|
333
|
+
│ │ └── types.ts # Rule data types
|
|
304
334
|
│ ├── prompts/
|
|
305
335
|
│ │ └── reviewDispatcherPrompt.ts # Internal design reference
|
|
306
336
|
│ └── utils/
|
|
307
337
|
│ ├── errors.ts # Error codes & formatting
|
|
308
338
|
│ ├── logger.ts # Structured logging
|
|
309
|
-
│ ├── parser.ts #
|
|
339
|
+
│ ├── parser.ts # Multi-file JSON persona parsing & writing
|
|
310
340
|
│ ├── sanitize.ts # Credential scanning, prompt boundary handling
|
|
311
341
|
│ └── ...
|
|
312
342
|
└── package.json
|
|
@@ -314,36 +344,79 @@ kevlar-4u/
|
|
|
314
344
|
|
|
315
345
|
---
|
|
316
346
|
|
|
317
|
-
##
|
|
347
|
+
## Data Storage
|
|
318
348
|
|
|
319
|
-
|
|
349
|
+
### Personas
|
|
320
350
|
|
|
321
|
-
|
|
351
|
+
Personas are stored in **multi-file JSON** format under `skills/`. Each persona file contains a `version`, `last_updated`, and `personas` map:
|
|
322
352
|
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
353
|
+
```json
|
|
354
|
+
{
|
|
355
|
+
"version": "1.0.0",
|
|
356
|
+
"last_updated": "2026-05-28",
|
|
357
|
+
"personas": {
|
|
358
|
+
"analytical_zhihu": {
|
|
359
|
+
"meta": {
|
|
360
|
+
"id": "analytical_zhihu",
|
|
361
|
+
"name": "理性知乎人",
|
|
362
|
+
"tags": ["知乎", "理性分析"],
|
|
363
|
+
"tone": ["专业", "严谨"],
|
|
364
|
+
"dimensionBias": {
|
|
365
|
+
"entries": [
|
|
366
|
+
{ "dimension": "information_gap", "weight": "focus" },
|
|
367
|
+
{ "dimension": "differentiation", "weight": "focus" }
|
|
368
|
+
]
|
|
369
|
+
},
|
|
370
|
+
"rst": {
|
|
371
|
+
"archetypes": ["technical_reviewer"],
|
|
372
|
+
"triggers": ["ai_writing", "overhyped", "data_credibility"],
|
|
373
|
+
"regionalPack": "china",
|
|
374
|
+
"platformCulture": "zhihu"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"systemPrompt": "你是一位活跃在知乎的用户..."
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
Files are routed by tag:
|
|
384
|
+
|
|
385
|
+
| Tag | Target File | Purpose |
|
|
386
|
+
| --- | --- | --- |
|
|
387
|
+
| `system_auditor` | `auditors.json` | System pre-screening auditors |
|
|
388
|
+
| `"小红书"` | `xiaohongshu.json` | Platform-specific user personas |
|
|
389
|
+
| `"知乎"` | `zhihu.json` | Platform-specific user personas |
|
|
390
|
+
| *(unknown)* | `fallback.json` | Catch-all for unrecognised platforms |
|
|
391
|
+
|
|
392
|
+
New persona files are auto-detected at startup via content sniffing (presence of a `personas` key). Adding a new platform requires only placing a JSON file in `skills/`.
|
|
393
|
+
|
|
394
|
+
### Rules
|
|
333
395
|
|
|
334
|
-
|
|
335
|
-
Interests:
|
|
336
|
-
Platforms:
|
|
337
|
-
Personality traits:
|
|
338
|
-
- Trait → Behavior
|
|
396
|
+
Semantic risk rules live in `skills/rules.json` and are accessed through the DAO layer (`src/dao/`):
|
|
339
397
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"version": "1.0.0",
|
|
401
|
+
"categories": {
|
|
402
|
+
"food": {
|
|
403
|
+
"enabled": true,
|
|
404
|
+
"associative_map": [
|
|
405
|
+
{
|
|
406
|
+
"root": "不新鲜",
|
|
407
|
+
"variants": ["食材不新鲜", "东西不新鲜"],
|
|
408
|
+
"misinterpret_direction": "可能被误解为食品安全问题",
|
|
409
|
+
"severity": "medium"
|
|
410
|
+
}
|
|
411
|
+
]
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
344
415
|
```
|
|
345
416
|
|
|
346
|
-
|
|
417
|
+
### Creating Personas
|
|
418
|
+
|
|
419
|
+
Use the `create_persona_wizard` tool — it guides you through age, interests, traits, tone, platform, author relation, and **RST archetype selection**. You can also describe your ideal reviewer in natural language (e.g., "a sarcastic tech user on Hacker News who hates marketing fluff") and the system will auto-parse it into a full RST configuration. The persona is automatically saved to the correct platform JSON file. No manual file editing is needed.
|
|
347
420
|
|
|
348
421
|
---
|
|
349
422
|
|
|
@@ -4,7 +4,7 @@ import * as fs from "fs";
|
|
|
4
4
|
import * as path from "path";
|
|
5
5
|
import * as os from "os";
|
|
6
6
|
import { generateIdFromDraft, getSubDirFromDraft, applyDedup, handleSaveDraft, handleUpdatePersonaDraft, handleDeletePersonaDraft, handleCreatePersona, } from "../tools/createPersonaTool.js";
|
|
7
|
-
import { invalidatePersonasCache } from "../utils/parser.js";
|
|
7
|
+
import { loadAllPersonas, invalidatePersonasCache } from "../utils/parser.js";
|
|
8
8
|
let tmpDir;
|
|
9
9
|
let skillsDir;
|
|
10
10
|
beforeEach(() => {
|
|
@@ -74,20 +74,25 @@ describe("getSubDirFromDraft", () => {
|
|
|
74
74
|
});
|
|
75
75
|
// ── applyDedup ───────────────────────────────────────────────────────────
|
|
76
76
|
describe("applyDedup", () => {
|
|
77
|
-
it("returns baseId when no conflict", () => {
|
|
78
|
-
assert.equal(applyDedup(skillsDir, "my_persona"), "my_persona");
|
|
79
|
-
});
|
|
80
|
-
it("appends _1, _2 when conflicts exist", () => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
it("returns baseId when no conflict", async () => {
|
|
78
|
+
assert.equal(await applyDedup(skillsDir, "my_persona"), "my_persona");
|
|
79
|
+
});
|
|
80
|
+
it("appends _1, _2 when conflicts exist in persona files", async () => {
|
|
81
|
+
// Create fallback.json with existing IDs
|
|
82
|
+
const personasPath = path.join(skillsDir, "fallback.json");
|
|
83
|
+
fs.writeFileSync(personasPath, JSON.stringify({
|
|
84
|
+
version: "1.0.0",
|
|
85
|
+
last_updated: "2026-05-28",
|
|
86
|
+
personas: {
|
|
87
|
+
my_persona: { meta: { id: "my_persona" }, systemPrompt: "" },
|
|
88
|
+
my_persona_1: { meta: { id: "my_persona_1" }, systemPrompt: "" },
|
|
89
|
+
},
|
|
90
|
+
}), "utf-8");
|
|
91
|
+
const id = await applyDedup(skillsDir, "my_persona");
|
|
84
92
|
assert.equal(id, "my_persona_2");
|
|
85
93
|
});
|
|
86
|
-
it("
|
|
87
|
-
|
|
88
|
-
fs.writeFileSync(path.join(skillsDir, "testdir", "foo.md"), "", "utf-8");
|
|
89
|
-
const id = applyDedup(skillsDir, "foo", "testdir");
|
|
90
|
-
assert.equal(id, "foo_1");
|
|
94
|
+
it("handles empty persona files gracefully", async () => {
|
|
95
|
+
assert.equal(await applyDedup(skillsDir, "foo"), "foo");
|
|
91
96
|
});
|
|
92
97
|
});
|
|
93
98
|
// ── handleSaveDraft ─────────────────────────────────────────────────────
|
|
@@ -190,7 +195,7 @@ describe("handleDeletePersonaDraft", () => {
|
|
|
190
195
|
});
|
|
191
196
|
// ── handleCreatePersona ─────────────────────────────────────────────────
|
|
192
197
|
describe("handleCreatePersona", () => {
|
|
193
|
-
it("creates persona with provided id", async () => {
|
|
198
|
+
it("creates persona with provided id in platform file", async () => {
|
|
194
199
|
const result = await handleCreatePersona(skillsDir, tmpDir, {
|
|
195
200
|
name: "测试读者",
|
|
196
201
|
id: "test_reader",
|
|
@@ -198,7 +203,11 @@ describe("handleCreatePersona", () => {
|
|
|
198
203
|
tags: ["小红书"],
|
|
199
204
|
});
|
|
200
205
|
assert.ok(result.content[0].text.includes("测试读者"));
|
|
201
|
-
|
|
206
|
+
const personas = await loadAllPersonas(skillsDir);
|
|
207
|
+
assert.ok(personas.some(p => p.meta.id === "test_reader"));
|
|
208
|
+
// Verify it's stored in the correct platform file, not as .md
|
|
209
|
+
assert.ok(fs.existsSync(path.join(skillsDir, "xiaohongshu.json")));
|
|
210
|
+
assert.ok(!fs.existsSync(path.join(skillsDir, "test_reader.md")));
|
|
202
211
|
});
|
|
203
212
|
it("generates id from draft when no id provided", async () => {
|
|
204
213
|
const filePath = path.join(tmpDir, "my-session_draft.json");
|
|
@@ -217,10 +226,11 @@ describe("handleCreatePersona", () => {
|
|
|
217
226
|
sessionId: "my-session",
|
|
218
227
|
});
|
|
219
228
|
assert.ok(result.content[0].text.includes("理性知乎人"));
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
const
|
|
223
|
-
assert.ok(
|
|
229
|
+
// Verifies it's stored in platform file (no subdirectory)
|
|
230
|
+
const personas = await loadAllPersonas(skillsDir);
|
|
231
|
+
const persona = personas.find(p => p.meta.name === "理性知乎人");
|
|
232
|
+
assert.ok(persona);
|
|
233
|
+
assert.equal(persona.meta.tags.includes("知乎"), true);
|
|
224
234
|
});
|
|
225
235
|
it("returns error when draft is incomplete", async () => {
|
|
226
236
|
const filePath = path.join(tmpDir, "bad-session_draft.json");
|
|
@@ -245,8 +255,16 @@ describe("handleCreatePersona", () => {
|
|
|
245
255
|
assert.ok(result.isError);
|
|
246
256
|
assert.ok(result.content[0].text.includes("名称格式不合法"));
|
|
247
257
|
});
|
|
248
|
-
it("applies dedup when id conflicts", async () => {
|
|
249
|
-
|
|
258
|
+
it("applies dedup when id conflicts in persona files", async () => {
|
|
259
|
+
// Pre-create a persona in fallback.json
|
|
260
|
+
const personasPath = path.join(skillsDir, "fallback.json");
|
|
261
|
+
fs.writeFileSync(personasPath, JSON.stringify({
|
|
262
|
+
version: "1.0.0",
|
|
263
|
+
last_updated: "2026-05-28",
|
|
264
|
+
personas: {
|
|
265
|
+
my_persona: { meta: { id: "my_persona", name: "existing" }, systemPrompt: "" },
|
|
266
|
+
},
|
|
267
|
+
}), "utf-8");
|
|
250
268
|
const result = await handleCreatePersona(skillsDir, tmpDir, {
|
|
251
269
|
name: "my_persona",
|
|
252
270
|
description: "dedup test",
|
|
@@ -254,8 +272,6 @@ describe("handleCreatePersona", () => {
|
|
|
254
272
|
});
|
|
255
273
|
const text = result.content.map(c => c.text).join("\n");
|
|
256
274
|
assert.ok(text.includes("my_persona"));
|
|
257
|
-
const files = fs.readdirSync(skillsDir);
|
|
258
|
-
assert.equal(files.filter(f => f.startsWith("my_persona")).length, 2);
|
|
259
275
|
});
|
|
260
276
|
it("falls back to random id when name is empty", async () => {
|
|
261
277
|
const result = await handleCreatePersona(skillsDir, tmpDir, {
|
|
@@ -266,7 +282,7 @@ describe("handleCreatePersona", () => {
|
|
|
266
282
|
const text = result.content.map(c => c.text).join("\n");
|
|
267
283
|
assert.ok(text.includes("已成功创建"));
|
|
268
284
|
});
|
|
269
|
-
it("creates persona from draft
|
|
285
|
+
it("creates persona from draft in platform file (no subdirectory)", async () => {
|
|
270
286
|
const filePath = path.join(tmpDir, "sub-session_draft.json");
|
|
271
287
|
fs.writeFileSync(filePath, JSON.stringify({
|
|
272
288
|
sessionId: "sub-session",
|
|
@@ -283,10 +299,13 @@ describe("handleCreatePersona", () => {
|
|
|
283
299
|
sessionId: "sub-session",
|
|
284
300
|
});
|
|
285
301
|
assert.ok(result.content[0].text.includes("美妆种草机"));
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
const
|
|
289
|
-
assert.ok(
|
|
302
|
+
// Verify persona is stored in platform file, not in a subdirectory
|
|
303
|
+
const personas = await loadAllPersonas(skillsDir);
|
|
304
|
+
const persona = personas.find(p => p.meta.name === "美妆种草机");
|
|
305
|
+
assert.ok(persona);
|
|
306
|
+
assert.equal(persona.meta.tags.includes("小红书"), true);
|
|
307
|
+
// No subdirectory should be created
|
|
308
|
+
assert.ok(!fs.existsSync(path.join(skillsDir, "xiaohongshu")));
|
|
290
309
|
});
|
|
291
310
|
});
|
|
292
311
|
//# sourceMappingURL=createPersonaTool.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPersonaTool.test.js","sourceRoot":"","sources":["../../src/__tests__/createPersonaTool.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createPersonaTool.test.js","sourceRoot":"","sources":["../../src/__tests__/createPersonaTool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,12 +98,12 @@ describe("handleCreatePersonaWizard fallback state machine", () => {
|
|
|
98
98
|
sessionId,
|
|
99
99
|
userMessage: "已关注",
|
|
100
100
|
});
|
|
101
|
-
assert.ok(textOf(relationRecorded).includes("currentStep:
|
|
102
|
-
const
|
|
101
|
+
assert.ok(textOf(relationRecorded).includes("currentStep: perspective"));
|
|
102
|
+
const perspectiveRecorded = await handleCreatePersonaWizard(skillsDir, tmpDir, {
|
|
103
103
|
sessionId,
|
|
104
104
|
userMessage: "4",
|
|
105
105
|
});
|
|
106
|
-
assert.ok(textOf(
|
|
106
|
+
assert.ok(textOf(perspectiveRecorded).includes("currentStep: finalConfirm"));
|
|
107
107
|
const modified = await handleCreatePersonaWizard(skillsDir, tmpDir, {
|
|
108
108
|
sessionId,
|
|
109
109
|
userMessage: "年龄段改成30-35岁",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPersonaWizard.test.js","sourceRoot":"","sources":["../../src/__tests__/createPersonaWizard.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createPersonaWizard.test.js","sourceRoot":"","sources":["../../src/__tests__/createPersonaWizard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import * as fs from "fs";
|
|
|
4
4
|
import * as path from "path";
|
|
5
5
|
import * as os from "os";
|
|
6
6
|
import { handleDeletePersonaWizard } from "../tools/deletePersonaWizardTool.js";
|
|
7
|
-
import { invalidatePersonasCache } from "../utils/parser.js";
|
|
7
|
+
import { writePersonaFile, invalidatePersonasCache, loadPersonaById } from "../utils/parser.js";
|
|
8
8
|
let skillsDir;
|
|
9
9
|
let tmpDir;
|
|
10
10
|
beforeEach(() => {
|
|
@@ -24,28 +24,21 @@ function extractSessionId(text) {
|
|
|
24
24
|
assert.ok(match, `expected sessionId in response: ${text}`);
|
|
25
25
|
return match[1];
|
|
26
26
|
}
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
" - test",
|
|
38
|
-
`description: ${name} 的测试描述`,
|
|
39
|
-
"---",
|
|
40
|
-
"性格特质:直接。常用平台:小红书。盲区:无特定盲区。",
|
|
41
|
-
].join("\n");
|
|
42
|
-
fs.writeFileSync(filePath, file, "utf-8");
|
|
27
|
+
async function personaExists(id) {
|
|
28
|
+
const persona = await loadPersonaById(skillsDir, id);
|
|
29
|
+
return persona !== null;
|
|
30
|
+
}
|
|
31
|
+
async function writePersona(id, name) {
|
|
32
|
+
const meta = {
|
|
33
|
+
id, name, name_en: "Test Persona", version: "1.0.0", author: "ai-generated",
|
|
34
|
+
tags: ["test"], description: `${name} 的测试描述`,
|
|
35
|
+
};
|
|
36
|
+
await writePersonaFile(skillsDir, meta, "性格特质:直接。常用平台:小红书。盲区:无特定盲区。");
|
|
43
37
|
invalidatePersonasCache();
|
|
44
|
-
return filePath;
|
|
45
38
|
}
|
|
46
39
|
describe("handleDeletePersonaWizard", () => {
|
|
47
40
|
it("binds the selected persona to a session and does not delete before explicit confirmation", async () => {
|
|
48
|
-
|
|
41
|
+
await writePersona("visual_reader", "视觉读者");
|
|
49
42
|
const result = await handleDeletePersonaWizard(skillsDir, tmpDir, {
|
|
50
43
|
userMessage: "删除视觉读者",
|
|
51
44
|
});
|
|
@@ -53,10 +46,10 @@ describe("handleDeletePersonaWizard", () => {
|
|
|
53
46
|
assert.ok(text.includes("视觉读者"));
|
|
54
47
|
assert.ok(text.includes("确认删除"));
|
|
55
48
|
assert.ok(text.includes("currentStep: confirmDelete"));
|
|
56
|
-
assert.ok(
|
|
49
|
+
assert.ok(await personaExists("visual_reader"));
|
|
57
50
|
});
|
|
58
51
|
it("deletes only after the user confirms the bound persona name", async () => {
|
|
59
|
-
|
|
52
|
+
await writePersona("visual_reader", "视觉读者");
|
|
60
53
|
const started = await handleDeletePersonaWizard(skillsDir, tmpDir, {
|
|
61
54
|
userMessage: "删除视觉读者",
|
|
62
55
|
});
|
|
@@ -66,13 +59,13 @@ describe("handleDeletePersonaWizard", () => {
|
|
|
66
59
|
userMessage: "确认删除别的角色",
|
|
67
60
|
});
|
|
68
61
|
assert.ok(textOf(wrongConfirm).includes("请回复完整确认语"));
|
|
69
|
-
assert.ok(
|
|
62
|
+
assert.ok(await personaExists("visual_reader"));
|
|
70
63
|
const deleted = await handleDeletePersonaWizard(skillsDir, tmpDir, {
|
|
71
64
|
sessionId,
|
|
72
65
|
userMessage: "确认删除视觉读者",
|
|
73
66
|
});
|
|
74
67
|
assert.ok(textOf(deleted).includes("已删除"));
|
|
75
|
-
assert.ok(!
|
|
68
|
+
assert.ok(!(await personaExists("visual_reader")));
|
|
76
69
|
});
|
|
77
70
|
});
|
|
78
71
|
//# sourceMappingURL=deletePersonaWizard.test.js.map
|