@pi-harness/pi-harness 0.1.46 → 0.1.48
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/apps/web/dist/assets/{index-DE7mHG4Q.js → index-B3lD1WQN.js} +1 -1
- package/apps/web/dist/assets/{index-Dg7joYCK.css → index-BTIJBvkA.css} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/apps/web/package.json +1 -1
- package/apps/web/src/style.css +9 -3
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-bridge.json +2 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +2 -2
- package/node_modules/@pi-harness/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
- package/node_modules/@pi-harness/api-gateway/package.json +1 -1
- package/node_modules/@pi-harness/cli/package.json +1 -1
- package/node_modules/@pi-harness/host-webserver/package.json +1 -1
- package/node_modules/@pi-harness/web-app/package.json +1 -1
- package/package.json +6 -6
- package/packages/api-gateway/dist/marketplace-entries/official/anchored-standard.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/browser-session.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/obsidian-sync.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/plugin-stars.json +1 -2
- package/packages/api-gateway/dist/marketplace-entries/official/prompt-library.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/session-bridge.json +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/session-compare.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/skill-catalog.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/sql-lens.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/synapse.json +1 -1
- package/packages/api-gateway/dist/marketplace-entries/official/telemetry-blocker.json +2 -2
- package/packages/api-gateway/dist/marketplace-entries/official/workspace-search.json +1 -1
- package/packages/api-gateway/package.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/anchored-standard.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/browser-session.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/obsidian-sync.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/plugin-stars.json +1 -2
- package/packages/api-gateway/src/marketplace-entries/official/prompt-library.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/session-bridge.json +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/session-compare.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/skill-catalog.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/sql-lens.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/synapse.json +1 -1
- package/packages/api-gateway/src/marketplace-entries/official/telemetry-blocker.json +2 -2
- package/packages/api-gateway/src/marketplace-entries/official/workspace-search.json +1 -1
- package/packages/api-gateway/test/marketplace.test.ts +31 -3
- package/packages/bundle-web-app/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/host-webserver/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"packageName": "@pi-harness/plugin-telemetry-blocker",
|
|
4
4
|
"version": "0.1.30",
|
|
5
5
|
"name": "Telemetry Blocker",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "丢弃本地 piTelemetry 服务调用并统计事件总线观察;不保存事件属性,不拦截网络流量,也不阻止其他监听器。",
|
|
7
7
|
"author": "Pi Harness",
|
|
8
8
|
"repository": "https://github.com/pi-harness/pi-harness",
|
|
9
9
|
"license": "MIT",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"label": "安全"
|
|
15
15
|
},
|
|
16
16
|
"capabilities": ["read-only"],
|
|
17
|
-
"hooks": ["
|
|
17
|
+
"hooks": ["本地遥测服务", "事件总线观察", "插件面板"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-telemetry-blocker",
|
|
20
20
|
"config": {}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-harness/pi-harness",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.48",
|
|
4
4
|
"homepage": "https://github.com/pi-harness/pi-harness#readme",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/pi-harness/pi-harness/issues"
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
"@earendil-works/pi-agent-core": "0.84.4",
|
|
59
59
|
"@earendil-works/pi-ai": "0.84.4",
|
|
60
60
|
"@earendil-works/pi-coding-agent": "0.84.4",
|
|
61
|
-
"@pi-harness/api-gateway": "0.1.
|
|
62
|
-
"@pi-harness/cli": "0.1.
|
|
63
|
-
"@pi-harness/core": "^0.1.
|
|
64
|
-
"@pi-harness/host-webserver": "0.1.
|
|
65
|
-
"@pi-harness/web-app": "0.1.
|
|
61
|
+
"@pi-harness/api-gateway": "0.1.48",
|
|
62
|
+
"@pi-harness/cli": "0.1.48",
|
|
63
|
+
"@pi-harness/core": "^0.1.48",
|
|
64
|
+
"@pi-harness/host-webserver": "0.1.48",
|
|
65
|
+
"@pi-harness/web-app": "0.1.48",
|
|
66
66
|
"semver": "7.8.5"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"packageName": "@pi-harness/plugin-plugin-stars",
|
|
4
4
|
"version": "0.1.30",
|
|
5
5
|
"name": "Plugin Stars",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "显式配置 raw.githubusercontent.com 上的 Pi Harness 榜单后只读检索;输入受限、校验严格、可取消,失败保留上次成功结果。",
|
|
7
7
|
"author": "Pi Harness",
|
|
8
8
|
"repository": "https://github.com/pi-harness/pi-harness",
|
|
9
9
|
"license": "MIT",
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-plugin-stars",
|
|
20
20
|
"config": {
|
|
21
|
-
"sourceUrl": "https://raw.githubusercontent.com/ywsldxk/dsh-plugin-stars/main/data/plugins.json",
|
|
22
21
|
"limit": 10,
|
|
23
22
|
"timeoutMs": 15000
|
|
24
23
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "session-bridge",
|
|
3
3
|
"packageName": "@pi-harness/plugin-session-bridge",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.31",
|
|
5
5
|
"name": "Session Bridge",
|
|
6
6
|
"description": "预览并导出会话交接包;导入需要确认,包体经过严格校验并防重复注入。",
|
|
7
7
|
"author": "Pi Harness",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["session-data", "writes-files"],
|
|
17
17
|
"hooks": ["会话桥接工具", "当前会话管理器", "自定义上下文消息", "插件面板"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-session-bridge",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"packageName": "@pi-harness/plugin-telemetry-blocker",
|
|
4
4
|
"version": "0.1.30",
|
|
5
5
|
"name": "Telemetry Blocker",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "丢弃本地 piTelemetry 服务调用并统计事件总线观察;不保存事件属性,不拦截网络流量,也不阻止其他监听器。",
|
|
7
7
|
"author": "Pi Harness",
|
|
8
8
|
"repository": "https://github.com/pi-harness/pi-harness",
|
|
9
9
|
"license": "MIT",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"label": "安全"
|
|
15
15
|
},
|
|
16
16
|
"capabilities": ["read-only"],
|
|
17
|
-
"hooks": ["
|
|
17
|
+
"hooks": ["本地遥测服务", "事件总线观察", "插件面板"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-telemetry-blocker",
|
|
20
20
|
"config": {}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"packageName": "@pi-harness/plugin-plugin-stars",
|
|
4
4
|
"version": "0.1.30",
|
|
5
5
|
"name": "Plugin Stars",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "显式配置 raw.githubusercontent.com 上的 Pi Harness 榜单后只读检索;输入受限、校验严格、可取消,失败保留上次成功结果。",
|
|
7
7
|
"author": "Pi Harness",
|
|
8
8
|
"repository": "https://github.com/pi-harness/pi-harness",
|
|
9
9
|
"license": "MIT",
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-plugin-stars",
|
|
20
20
|
"config": {
|
|
21
|
-
"sourceUrl": "https://raw.githubusercontent.com/ywsldxk/dsh-plugin-stars/main/data/plugins.json",
|
|
22
21
|
"limit": 10,
|
|
23
22
|
"timeoutMs": 15000
|
|
24
23
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "session-bridge",
|
|
3
3
|
"packageName": "@pi-harness/plugin-session-bridge",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.31",
|
|
5
5
|
"name": "Session Bridge",
|
|
6
6
|
"description": "预览并导出会话交接包;导入需要确认,包体经过严格校验并防重复注入。",
|
|
7
7
|
"author": "Pi Harness",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"id": "workflow",
|
|
14
14
|
"label": "工作流"
|
|
15
15
|
},
|
|
16
|
-
"capabilities": ["
|
|
16
|
+
"capabilities": ["session-data", "writes-files"],
|
|
17
17
|
"hooks": ["会话桥接工具", "当前会话管理器", "自定义上下文消息", "插件面板"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-session-bridge",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"packageName": "@pi-harness/plugin-telemetry-blocker",
|
|
4
4
|
"version": "0.1.30",
|
|
5
5
|
"name": "Telemetry Blocker",
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "丢弃本地 piTelemetry 服务调用并统计事件总线观察;不保存事件属性,不拦截网络流量,也不阻止其他监听器。",
|
|
7
7
|
"author": "Pi Harness",
|
|
8
8
|
"repository": "https://github.com/pi-harness/pi-harness",
|
|
9
9
|
"license": "MIT",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"label": "安全"
|
|
15
15
|
},
|
|
16
16
|
"capabilities": ["read-only"],
|
|
17
|
-
"hooks": ["
|
|
17
|
+
"hooks": ["本地遥测服务", "事件总线观察", "插件面板"],
|
|
18
18
|
"profile": {
|
|
19
19
|
"name": "@pi-harness/plugin-telemetry-blocker",
|
|
20
20
|
"config": {}
|
|
@@ -12,6 +12,28 @@ import {
|
|
|
12
12
|
} from "../src/marketplace.js";
|
|
13
13
|
|
|
14
14
|
describe("plugin marketplace registry", () => {
|
|
15
|
+
test("describes reverse skill as text inspection without file loading or activation", () => {
|
|
16
|
+
const plugin = MARKETPLACE_PLUGINS.find((item) => item.id === "reverse-skill");
|
|
17
|
+
expect(plugin?.capabilities).toEqual(["read-only"]);
|
|
18
|
+
expect(plugin?.description).toContain("不读取文件");
|
|
19
|
+
expect(plugin?.description).toContain("不自动激活");
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test("describes the tracked diff reviewer without claiming large-file detection", () => {
|
|
23
|
+
const description = MARKETPLACE_PLUGINS.find((plugin) => plugin.id === "reviewer-bot")?.description;
|
|
24
|
+
expect(description).toContain("HEAD");
|
|
25
|
+
expect(description).toContain("已跟踪");
|
|
26
|
+
expect(description).toContain("空白");
|
|
27
|
+
expect(description).toContain("TODO/FIXME");
|
|
28
|
+
expect(description).not.toContain("超大文件");
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test("discloses command execution for the composed change gate", () => {
|
|
32
|
+
const gate = MARKETPLACE_PLUGINS.find((plugin) => plugin.id === "change-verifier");
|
|
33
|
+
expect(gate?.capabilities).toContain("runs-commands");
|
|
34
|
+
expect(gate?.capabilities).not.toContain("read-only");
|
|
35
|
+
});
|
|
36
|
+
|
|
15
37
|
test.each(MARKETPLACE_PLUGINS)(
|
|
16
38
|
"imports $id from its published package entry point",
|
|
17
39
|
async (plugin) => {
|
|
@@ -37,11 +59,10 @@ describe("plugin marketplace registry", () => {
|
|
|
37
59
|
const official = new Map(MARKETPLACE_PLUGINS.filter((plugin) => plugin.source === "official").map((plugin) => [plugin.id, plugin]));
|
|
38
60
|
expect(official.get("agent-teams")?.category.id).toBe("workflow");
|
|
39
61
|
expect(official.get("plugin-stars")?.category.id).toBe("discovery");
|
|
40
|
-
expect(official.get("plugin-stars")?.description).toMatch(
|
|
62
|
+
expect(official.get("plugin-stars")?.description).toMatch(/显式配置.*raw\.githubusercontent\.com.*失败保留/u);
|
|
41
63
|
expect(official.get("plugin-stars")?.capabilities).toEqual(["network-access"]);
|
|
42
64
|
expect(official.get("plugin-stars")?.hooks).toEqual(["榜单搜索工具", "GitHub 原始快照", "插件面板"]);
|
|
43
65
|
expect(official.get("plugin-stars")?.profile.config).toEqual({
|
|
44
|
-
sourceUrl: "https://raw.githubusercontent.com/ywsldxk/dsh-plugin-stars/main/data/plugins.json",
|
|
45
66
|
limit: 10,
|
|
46
67
|
timeoutMs: 15_000,
|
|
47
68
|
});
|
|
@@ -51,8 +72,11 @@ describe("plugin marketplace registry", () => {
|
|
|
51
72
|
expect(official.get("vision-toolkit")?.hooks).toEqual(["图像元数据工具", "工作区访问", "插件面板"]);
|
|
52
73
|
expect(official.get("vision-toolkit")?.profile.config).toEqual({});
|
|
53
74
|
expect(official.get("session-bridge")?.category.id).toBe("workflow");
|
|
75
|
+
expect(official.get("plugin-radar")?.description).toContain("GitHub");
|
|
76
|
+
expect(official.get("plugin-radar")?.description).toContain("未验证可安装性");
|
|
77
|
+
expect(official.get("plugin-radar")?.hooks).toEqual(["GitHub Topic 搜索", "插件面板"]);
|
|
54
78
|
expect(official.get("session-bridge")?.description).toMatch(/预览.*导出.*导入需要确认.*严格校验.*防重复注入/u);
|
|
55
|
-
expect(official.get("session-bridge")?.capabilities).toEqual(["
|
|
79
|
+
expect(official.get("session-bridge")?.capabilities).toEqual(["session-data", "writes-files"]);
|
|
56
80
|
expect(official.get("session-bridge")?.hooks).toEqual(["会话桥接工具", "当前会话管理器", "自定义上下文消息", "插件面板"]);
|
|
57
81
|
expect(official.get("session-bridge")?.profile.config).toEqual({});
|
|
58
82
|
expect(official.get("skill-guard")?.category.id).toBe("security");
|
|
@@ -106,6 +130,8 @@ describe("plugin marketplace registry", () => {
|
|
|
106
130
|
expect(official.get("reviewer-bot")?.category.id).toBe("workflow");
|
|
107
131
|
expect(official.get("auto-mode")?.category.id).toBe("security");
|
|
108
132
|
expect(official.get("plan-execute")?.category.id).toBe("workflow");
|
|
133
|
+
expect(official.get("plan-execute")?.capabilities).toEqual(["session-data", "writes-files"]);
|
|
134
|
+
expect(official.get("plan-execute")?.description).toMatch(/保存.*恢复/u);
|
|
109
135
|
expect(official.get("canvas-draw")?.category.id).toBe("multimodal");
|
|
110
136
|
expect(official.get("canvas-draw")?.description).toMatch(/Mermaid 流程图源码/u);
|
|
111
137
|
expect(official.get("canvas-draw")?.hooks).toEqual(["插件面板"]);
|
|
@@ -182,6 +208,8 @@ describe("plugin marketplace registry", () => {
|
|
|
182
208
|
expect(official.get("fail-logger")?.hooks).toEqual(["插件错误", "运行结束", "压缩结束", "插件面板"]);
|
|
183
209
|
expect(official.get("genui")?.description).toMatch(/文本、标签和进度条.*纯文本/u);
|
|
184
210
|
expect(official.get("genui")?.capabilities).toEqual(["read-only"]);
|
|
211
|
+
expect(official.get("telemetry-blocker")?.description).toContain("不拦截网络流量");
|
|
212
|
+
expect(official.get("telemetry-blocker")?.hooks).toEqual(["本地遥测服务", "事件总线观察", "插件面板"]);
|
|
185
213
|
expect(official.get("genui")?.hooks).toEqual(["GenUI 渲染工具", "插件面板"]);
|
|
186
214
|
expect(official.get("plugin-dev")?.category.id).toBe("developer");
|
|
187
215
|
expect(official.get("plugin-dev")?.description).toMatch(/推迟.*agent 空闲.*只允许一个重载.*本机开发/u);
|