@ycodium-ai/plugin-redteam-model 0.0.0-stage → 0.2.2944
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 +51 -2
- package/assets/icon.svg +6 -0
- package/assets/ui.js +108 -0
- package/dist/index.js +1041 -0
- package/locales/en.json +170 -0
- package/locales/zh-CN.json +143 -0
- package/package.json +81 -3
- package/skills/redteam-model/SKILL.md +19 -0
package/locales/en.json
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"loading": "Loading the mode manager.",
|
|
4
|
+
"empty": "The mode manager is not available yet.",
|
|
5
|
+
"source": "Mode manager",
|
|
6
|
+
"installed": "Installed",
|
|
7
|
+
"absent": "Not installed"
|
|
8
|
+
},
|
|
9
|
+
"settings": {
|
|
10
|
+
"title": "Modes",
|
|
11
|
+
"lead": "Deploy the ten presets, install the modules this package is allowed to run, and keep the report gate closed until authorization is recorded. The executor keeps the model connection. This page stores no endpoint and no key.",
|
|
12
|
+
"deploy": "Deploy modes",
|
|
13
|
+
"deploying": "Deploying…",
|
|
14
|
+
"remove": "Remove modes",
|
|
15
|
+
"repair": "Repair",
|
|
16
|
+
"deployed": "Deployed",
|
|
17
|
+
"notDeployed": "Not deployed",
|
|
18
|
+
"routing": "Model routing stays on the executor. Choosing a mode does not switch provider, endpoint, or credential.",
|
|
19
|
+
"probeHold": "Probe held",
|
|
20
|
+
"probeAllow": "Probe allowed",
|
|
21
|
+
"denial": "Last refusal",
|
|
22
|
+
"noDenial": "No tool has been refused yet.",
|
|
23
|
+
"modes": "Mode roster",
|
|
24
|
+
"modules": "Runtime modules",
|
|
25
|
+
"install": "Install",
|
|
26
|
+
"update": "Update",
|
|
27
|
+
"uninstall": "Uninstall",
|
|
28
|
+
"withheldNote": "Withheld modules stay unavailable. Installing one records a failure and does not add their behavior.",
|
|
29
|
+
"mcpNote": "The studio module only records that a server list was requested. It does not mount a server.",
|
|
30
|
+
"hostPluginsTitle": "Install and uninstall plugins",
|
|
31
|
+
"hostPluginsLead": "This page does not install or uninstall plugins. Open the Plugins page to do that.",
|
|
32
|
+
"hostPluginsAction": "Open Plugins",
|
|
33
|
+
"operations": "Operation log",
|
|
34
|
+
"noOperations": "No operations yet. A restart marks a running operation as interrupted.",
|
|
35
|
+
"limitsTitle": "Host limits",
|
|
36
|
+
"limitBundle": "One package installs one plugin. This manager does not ship seventeen child packages, and it does not split a host plane from a preset plane.",
|
|
37
|
+
"limitIsolate": "A preset does not hide tools from the tool list. The guard refuses a call before it runs.",
|
|
38
|
+
"limitSection": "The standing prompt section is on every session and stays mode-agnostic. The mode envelope is added only when route boost is installed and that session recorded a mode.",
|
|
39
|
+
"limitList": "Preset names in the host picker are a single English label.",
|
|
40
|
+
"limitEvents": "The manager hears thread.created. It does not read executor frames.",
|
|
41
|
+
"limitFollowup": "The reminder is a user turn you start from this session. Nothing is sent on its own.",
|
|
42
|
+
"limitSubagent": "This package does not register a subagent provider.",
|
|
43
|
+
"limitScanner": "Scanner programs, audit runners, and shell desks are withheld. Nothing is spawned.",
|
|
44
|
+
"limitPicker": "A mode can be chosen only before the first turn.",
|
|
45
|
+
"limitTurn": "The first turn can start before the created event is stored. The preset prefix still applies. The envelope may wait until the next turn.",
|
|
46
|
+
"limitRefresh": "A phone drops a preset id it cannot see yet. Deploy the modes, then choose again after the preset list refreshes."
|
|
47
|
+
},
|
|
48
|
+
"op": {
|
|
49
|
+
"running": "Running",
|
|
50
|
+
"succeeded": "Succeeded",
|
|
51
|
+
"failed": "Failed"
|
|
52
|
+
},
|
|
53
|
+
"group": {
|
|
54
|
+
"general": "General",
|
|
55
|
+
"professional": "Professional"
|
|
56
|
+
},
|
|
57
|
+
"plane": {
|
|
58
|
+
"host": "Host plane",
|
|
59
|
+
"preset": "Preset plane"
|
|
60
|
+
},
|
|
61
|
+
"availability": {
|
|
62
|
+
"active": "Active",
|
|
63
|
+
"withheld": "Withheld",
|
|
64
|
+
"record": "Record only"
|
|
65
|
+
},
|
|
66
|
+
"phase": {
|
|
67
|
+
"authorization": "Authorization",
|
|
68
|
+
"scope": "Scope",
|
|
69
|
+
"evidence": "Evidence",
|
|
70
|
+
"report": "Report"
|
|
71
|
+
},
|
|
72
|
+
"mode": {
|
|
73
|
+
"redteam": { "name": "Researcher", "detail": "General session. Gates are optional." },
|
|
74
|
+
"pentest": {
|
|
75
|
+
"name": "Assessment",
|
|
76
|
+
"detail": "Authorized review with the four gates required."
|
|
77
|
+
},
|
|
78
|
+
"code-audit": {
|
|
79
|
+
"name": "Code review",
|
|
80
|
+
"detail": "Source review with the four gates required."
|
|
81
|
+
},
|
|
82
|
+
"binary-analysis": {
|
|
83
|
+
"name": "Binary review",
|
|
84
|
+
"detail": "Binary review with the four gates required."
|
|
85
|
+
},
|
|
86
|
+
"attack-defense": {
|
|
87
|
+
"name": "Exercise",
|
|
88
|
+
"detail": "Authorized exercise with the four gates required."
|
|
89
|
+
},
|
|
90
|
+
"av-evasion": {
|
|
91
|
+
"name": "Detection review",
|
|
92
|
+
"detail": "Detection review. No evasion steps, payloads, or refusal bypass."
|
|
93
|
+
},
|
|
94
|
+
"incident-response": {
|
|
95
|
+
"name": "Incident review",
|
|
96
|
+
"detail": "Incident review with the four gates required."
|
|
97
|
+
},
|
|
98
|
+
"cloud-security": {
|
|
99
|
+
"name": "Cloud review",
|
|
100
|
+
"detail": "Cloud review with the four gates required."
|
|
101
|
+
},
|
|
102
|
+
"ctf-solver": {
|
|
103
|
+
"name": "Puzzle workspace",
|
|
104
|
+
"detail": "Puzzle workspace with the four gates required."
|
|
105
|
+
},
|
|
106
|
+
"asset-mapping": {
|
|
107
|
+
"name": "Asset inventory",
|
|
108
|
+
"detail": "Inventory workflow with the four gates required."
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"module": {
|
|
112
|
+
"stage-gate": "Stage gate",
|
|
113
|
+
"route-boost": "Route boost",
|
|
114
|
+
"sec-enforce": "Report enforcement",
|
|
115
|
+
"refusal-guard": "Refusal bypass",
|
|
116
|
+
"trace-vault": "Trace vault",
|
|
117
|
+
"auto-advance": "Reminder",
|
|
118
|
+
"product-subagents": "Subagents",
|
|
119
|
+
"mcp-studio": "Server list",
|
|
120
|
+
"results": "Results",
|
|
121
|
+
"hunter": "Verification",
|
|
122
|
+
"campaign-memory": "Session notes",
|
|
123
|
+
"mode-group": "Mode groups",
|
|
124
|
+
"session-pulse": "Session pulse",
|
|
125
|
+
"coverage": "Coverage",
|
|
126
|
+
"scanner-tools": "Scanners",
|
|
127
|
+
"semgrep-audit": "Source audit runner",
|
|
128
|
+
"shell-desk": "Shell desk"
|
|
129
|
+
},
|
|
130
|
+
"hero": {
|
|
131
|
+
"title": "Choose a mode",
|
|
132
|
+
"lead": "The general mode sits on top. Professional modes open from the button, including on a touch screen.",
|
|
133
|
+
"deployFirst": "Deploy the modes in Settings before choosing one.",
|
|
134
|
+
"professional": "Professional modes",
|
|
135
|
+
"hideProfessional": "Hide professional modes",
|
|
136
|
+
"selected": "Selected for the first turn.",
|
|
137
|
+
"clear": "Clear",
|
|
138
|
+
"unwired": "This app cannot apply the choice from the preset seat.",
|
|
139
|
+
"readOnly": "The first turn has started, so the mode stays as it was."
|
|
140
|
+
},
|
|
141
|
+
"session": {
|
|
142
|
+
"title": "Workflow gates",
|
|
143
|
+
"empty": "Open a session to see its gates.",
|
|
144
|
+
"noMode": "No mode recorded",
|
|
145
|
+
"phase": "Phase",
|
|
146
|
+
"goal": "Goal",
|
|
147
|
+
"noGoal": "No goal stored.",
|
|
148
|
+
"progress": "Progress",
|
|
149
|
+
"authorization": "Record authorization",
|
|
150
|
+
"authorizationDone": "Authorization recorded",
|
|
151
|
+
"authorizationHint": "Write down that this session is authorized. Later gates stay closed until this is recorded.",
|
|
152
|
+
"report": "Open report gate",
|
|
153
|
+
"reportOpen": "Report gate open",
|
|
154
|
+
"reportClosed": "Report gate closed",
|
|
155
|
+
"reportHint": "Open this after authorization. It is not the first step when no gates are recorded.",
|
|
156
|
+
"reminder": "Send reminder",
|
|
157
|
+
"reminderHint": "Queue a reminder you send yourself. Nothing goes out on its own.",
|
|
158
|
+
"actionsLead": "Start with authorization. The report gate is the later step.",
|
|
159
|
+
"denials": "Refusals",
|
|
160
|
+
"noDenials": "No refusal on this session.",
|
|
161
|
+
"notes": "Notes",
|
|
162
|
+
"noNotes": "No notes yet.",
|
|
163
|
+
"coverage": "Coverage"
|
|
164
|
+
},
|
|
165
|
+
"header": {
|
|
166
|
+
"progress": "Gates",
|
|
167
|
+
"denials": "Refusals",
|
|
168
|
+
"empty": "No session"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"loading": "正在加载模式管理器。",
|
|
4
|
+
"empty": "模式管理器还不可用。",
|
|
5
|
+
"source": "模式管理器",
|
|
6
|
+
"installed": "已安装",
|
|
7
|
+
"absent": "未安装"
|
|
8
|
+
},
|
|
9
|
+
"settings": {
|
|
10
|
+
"title": "模式",
|
|
11
|
+
"lead": "部署十个预设,安装本包允许运行的模块,并在记录授权之前保持报告门关闭。模型连接留在执行器上。这一页不保存端点,也不保存密钥。",
|
|
12
|
+
"deploy": "部署模式",
|
|
13
|
+
"deploying": "正在部署…",
|
|
14
|
+
"remove": "移除模式",
|
|
15
|
+
"repair": "修复",
|
|
16
|
+
"deployed": "已部署",
|
|
17
|
+
"notDeployed": "未部署",
|
|
18
|
+
"routing": "模型路由留在执行器上。选择模式不会切换提供方、端点或凭据。",
|
|
19
|
+
"probeHold": "探针保持拦截",
|
|
20
|
+
"probeAllow": "探针已放行",
|
|
21
|
+
"denial": "最近一次拒绝",
|
|
22
|
+
"noDenial": "还没有工具被拒绝。",
|
|
23
|
+
"modes": "模式名册",
|
|
24
|
+
"modules": "运行时模块",
|
|
25
|
+
"install": "安装",
|
|
26
|
+
"update": "更新",
|
|
27
|
+
"uninstall": "卸载",
|
|
28
|
+
"withheldNote": "暂不提供的模块保持不可用。安装它们只会记下失败,不会带上那些行为。",
|
|
29
|
+
"mcpNote": "服务列表模块只记录曾经请求过一份列表。它不会挂载服务。",
|
|
30
|
+
"hostPluginsTitle": "安装和卸载插件",
|
|
31
|
+
"hostPluginsLead": "这一页不安装、也不卸载插件。要安装或卸载,打开插件页。",
|
|
32
|
+
"hostPluginsAction": "打开插件页",
|
|
33
|
+
"operations": "操作日志",
|
|
34
|
+
"noOperations": "还没有操作。重启会把仍在进行的操作记成中断。",
|
|
35
|
+
"limitsTitle": "宿主限制",
|
|
36
|
+
"limitBundle": "一次安装只装一个插件。这个管理器不附带十七个子包,也不把宿主平面和预设平面拆开。",
|
|
37
|
+
"limitIsolate": "预设不会从工具列表里藏起工具。守卫在调用执行前拒绝。",
|
|
38
|
+
"limitSection": "常驻提示段出现在每个会话上,而且不写具体模式。只有安装了路由增强、并且该会话记下了模式时,才会加上模式信封。",
|
|
39
|
+
"limitList": "宿主选择器里的预设名是一条英文标签。",
|
|
40
|
+
"limitEvents": "管理器听 thread.created。它不读执行器帧。",
|
|
41
|
+
"limitFollowup": "提醒是你在这个会话里发出的一轮用户消息。没有任何内容会自己送出。",
|
|
42
|
+
"limitSubagent": "这个包不注册子代理提供者。",
|
|
43
|
+
"limitScanner": "扫描程序、审计运行器和外壳台暂不提供。不会拉起任何程序。",
|
|
44
|
+
"limitPicker": "模式只能在第一轮之前选择。",
|
|
45
|
+
"limitTurn": "第一轮可能在创建事件落盘之前开始。预设前缀仍然生效。信封可能要到下一轮才出现。",
|
|
46
|
+
"limitRefresh": "手机在还看不到某个预设 id 时会丢掉它。先部署模式,等预设列表刷新后再选一次。"
|
|
47
|
+
},
|
|
48
|
+
"op": {
|
|
49
|
+
"running": "进行中",
|
|
50
|
+
"succeeded": "已成功",
|
|
51
|
+
"failed": "已失败"
|
|
52
|
+
},
|
|
53
|
+
"group": {
|
|
54
|
+
"general": "通用",
|
|
55
|
+
"professional": "专业"
|
|
56
|
+
},
|
|
57
|
+
"plane": {
|
|
58
|
+
"host": "宿主平面",
|
|
59
|
+
"preset": "预设平面"
|
|
60
|
+
},
|
|
61
|
+
"availability": {
|
|
62
|
+
"active": "可用",
|
|
63
|
+
"withheld": "暂不提供",
|
|
64
|
+
"record": "仅记录"
|
|
65
|
+
},
|
|
66
|
+
"phase": {
|
|
67
|
+
"authorization": "授权",
|
|
68
|
+
"scope": "范围",
|
|
69
|
+
"evidence": "证据",
|
|
70
|
+
"report": "报告"
|
|
71
|
+
},
|
|
72
|
+
"mode": {
|
|
73
|
+
"redteam": { "name": "研究员", "detail": "通用会话。门是可选的。" },
|
|
74
|
+
"pentest": { "name": "评估", "detail": "已授权的复核,四道门都要过。" },
|
|
75
|
+
"code-audit": { "name": "代码复核", "detail": "源码复核,四道门都要过。" },
|
|
76
|
+
"binary-analysis": { "name": "二进制复核", "detail": "二进制复核,四道门都要过。" },
|
|
77
|
+
"attack-defense": { "name": "演习", "detail": "已授权的演习,四道门都要过。" },
|
|
78
|
+
"av-evasion": { "name": "检测复核", "detail": "检测复核。不包含规避步骤、载荷或绕过拒绝。" },
|
|
79
|
+
"incident-response": { "name": "事件复核", "detail": "事件复核,四道门都要过。" },
|
|
80
|
+
"cloud-security": { "name": "云复核", "detail": "云复核,四道门都要过。" },
|
|
81
|
+
"ctf-solver": { "name": "谜题工作区", "detail": "谜题工作区,四道门都要过。" },
|
|
82
|
+
"asset-mapping": { "name": "资产盘点", "detail": "盘点流程,四道门都要过。" }
|
|
83
|
+
},
|
|
84
|
+
"module": {
|
|
85
|
+
"stage-gate": "阶段门",
|
|
86
|
+
"route-boost": "路由增强",
|
|
87
|
+
"sec-enforce": "报告门执行",
|
|
88
|
+
"refusal-guard": "绕过拒绝",
|
|
89
|
+
"trace-vault": "痕迹库",
|
|
90
|
+
"auto-advance": "提醒",
|
|
91
|
+
"product-subagents": "子代理",
|
|
92
|
+
"mcp-studio": "服务列表",
|
|
93
|
+
"results": "结果",
|
|
94
|
+
"hunter": "核验",
|
|
95
|
+
"campaign-memory": "会话笔记",
|
|
96
|
+
"mode-group": "模式分组",
|
|
97
|
+
"session-pulse": "会话脉搏",
|
|
98
|
+
"coverage": "覆盖",
|
|
99
|
+
"scanner-tools": "扫描器",
|
|
100
|
+
"semgrep-audit": "源码审计运行器",
|
|
101
|
+
"shell-desk": "外壳台"
|
|
102
|
+
},
|
|
103
|
+
"hero": {
|
|
104
|
+
"title": "选择模式",
|
|
105
|
+
"lead": "通用模式放在最上面。专业模式要点按钮才展开,触摸屏也一样。",
|
|
106
|
+
"deployFirst": "先在设置里部署模式,再选择。",
|
|
107
|
+
"professional": "专业模式",
|
|
108
|
+
"hideProfessional": "收起专业模式",
|
|
109
|
+
"selected": "已选作第一轮的模式。",
|
|
110
|
+
"clear": "清除",
|
|
111
|
+
"unwired": "这个应用不能从预设座位应用这次选择。",
|
|
112
|
+
"readOnly": "第一轮已经开始,模式保持原样。"
|
|
113
|
+
},
|
|
114
|
+
"session": {
|
|
115
|
+
"title": "流程门",
|
|
116
|
+
"empty": "打开一个会话才能看到它的门。",
|
|
117
|
+
"noMode": "还没有记下模式",
|
|
118
|
+
"phase": "阶段",
|
|
119
|
+
"goal": "目标",
|
|
120
|
+
"noGoal": "还没有存下目标。",
|
|
121
|
+
"progress": "进度",
|
|
122
|
+
"authorization": "记录授权",
|
|
123
|
+
"authorizationDone": "已记录授权",
|
|
124
|
+
"authorizationHint": "先记下这个会话已经获得授权。这一步没记下之前,后面的门保持关闭。",
|
|
125
|
+
"report": "打开报告门",
|
|
126
|
+
"reportOpen": "报告门已开",
|
|
127
|
+
"reportClosed": "报告门关闭",
|
|
128
|
+
"reportHint": "授权记下之后再开这一门。一门都还没记下时,它不是第一步。",
|
|
129
|
+
"reminder": "发送提醒",
|
|
130
|
+
"reminderHint": "排一条你自己发出的提醒。不会自动送出。",
|
|
131
|
+
"actionsLead": "从记录授权开始。报告门是后面的步骤。",
|
|
132
|
+
"denials": "拒绝",
|
|
133
|
+
"noDenials": "这个会话上没有拒绝。",
|
|
134
|
+
"notes": "笔记",
|
|
135
|
+
"noNotes": "还没有笔记。",
|
|
136
|
+
"coverage": "覆盖"
|
|
137
|
+
},
|
|
138
|
+
"header": {
|
|
139
|
+
"progress": "门",
|
|
140
|
+
"denials": "拒绝",
|
|
141
|
+
"empty": "没有会话"
|
|
142
|
+
}
|
|
143
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,84 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycodium-ai/plugin-redteam-model",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.2.2944",
|
|
4
|
+
"description": "Deploys ten session modes, a gate rail, and a tool guard. The executor keeps the model connection.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"redteam-model",
|
|
7
|
+
"ycodium",
|
|
8
|
+
"ycodium-plugin"
|
|
9
|
+
],
|
|
10
|
+
"license": "UNLICENSED",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"assets",
|
|
14
|
+
"skills",
|
|
15
|
+
"locales",
|
|
16
|
+
"README.md"
|
|
17
|
+
],
|
|
18
|
+
"type": "module",
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/react": "~19.2.14",
|
|
24
|
+
"esbuild": "0.28.1",
|
|
25
|
+
"react": "19.2.6",
|
|
26
|
+
"typescript": "~6.0.3",
|
|
27
|
+
"vite-plus": "0.2.2",
|
|
28
|
+
"@ycodium/contracts": "0.0.33",
|
|
29
|
+
"@ycodium-ai/plugin-api": "0.2.2944"
|
|
30
|
+
},
|
|
31
|
+
"ycodium": {
|
|
32
|
+
"plugin": "./dist/index.js",
|
|
33
|
+
"displayName": "Mode manager",
|
|
34
|
+
"description": "Deploys ten session modes, a gate rail, and a tool guard. The executor keeps the model connection.",
|
|
35
|
+
"icon": "./assets/icon.svg",
|
|
36
|
+
"permissions": [
|
|
37
|
+
{
|
|
38
|
+
"kind": "systemPrompt"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"kind": "tools.guard"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"kind": "agentPresets"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"kind": "sessionProjection"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"kind": "threads.user"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"kind": "commands.dispatch",
|
|
54
|
+
"commands": [
|
|
55
|
+
"thread.turn.start"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"kind": "ui.seats",
|
|
60
|
+
"seats": [
|
|
61
|
+
"settings.section",
|
|
62
|
+
"conversation.hero.agentPreset",
|
|
63
|
+
"conversation.view",
|
|
64
|
+
"conversation.session.header.actions"
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"skills": [
|
|
69
|
+
{
|
|
70
|
+
"dir": "./skills/redteam-model",
|
|
71
|
+
"files": []
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"ui": {
|
|
75
|
+
"assets": "./assets",
|
|
76
|
+
"entry": "ui.js"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"scripts": {
|
|
80
|
+
"build": "node build.mjs",
|
|
81
|
+
"typecheck": "tsgo --noEmit && tsgo --noEmit -p tsconfig.ui.json",
|
|
82
|
+
"test": "vp test run"
|
|
83
|
+
}
|
|
6
84
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: redteam-model
|
|
3
|
+
description: How to use the mode manager tools for gates, a short goal, progress, a report gate, a harmless probe, and a note. Load when the user message names one of those tools.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Mode manager
|
|
7
|
+
|
|
8
|
+
The mode manager records workflow gates. It does not describe a procedure.
|
|
9
|
+
|
|
10
|
+
Tools, when the matching module is installed:
|
|
11
|
+
|
|
12
|
+
- `redteam-model_gates_list` lists authorization, scope, evidence, and report.
|
|
13
|
+
- `redteam-model_operation_goal` stores a short label.
|
|
14
|
+
- `redteam-model_operation_progress` stores done and total counts.
|
|
15
|
+
- `redteam-model_publish` opens the report gate only after authorization is recorded. A guard can refuse it first.
|
|
16
|
+
- `redteam-model_probe` is a harmless call. It may be held.
|
|
17
|
+
- `redteam-model_ledger_note` appends a short note.
|
|
18
|
+
|
|
19
|
+
Do not invent steps, payloads, or a bypass. If a tool returns an error, stop and say which module or gate is missing.
|