@bopen-io/clawnet-plugin 0.0.1
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 +33 -0
- package/dist/manifest.js +144 -0
- package/dist/manifest.js.map +7 -0
- package/dist/ui/index.js +1373 -0
- package/dist/ui/index.js.map +7 -0
- package/dist/worker.js +6912 -0
- package/dist/worker.js.map +7 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# ClawNet
|
|
2
|
+
|
|
3
|
+
Agent marketplace bridge: browse, search, and hire agents from the ClawNet registry with trust-gated attestations
|
|
4
|
+
|
|
5
|
+
## Development
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm install
|
|
9
|
+
pnpm dev # watch builds
|
|
10
|
+
pnpm dev:ui # local dev server with hot-reload events
|
|
11
|
+
pnpm test
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
This scaffold snapshots `@paperclipai/plugin-sdk` and `@paperclipai/shared` from a local Paperclip checkout at:
|
|
15
|
+
|
|
16
|
+
`/Users/satchmo/code/paperclip/packages/plugins/sdk`
|
|
17
|
+
|
|
18
|
+
The packed tarballs live in `.paperclip-sdk/` for local development. Before publishing this plugin, switch those dependencies to published package versions once they are available on npm.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Install Into Paperclip
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
curl -X POST http://127.0.0.1:3100/api/plugins/install \
|
|
26
|
+
-H "Content-Type: application/json" \
|
|
27
|
+
-d '{"packageName":"/Users/satchmo/code/clawnet-plugin","isLocalPath":true}'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Build Options
|
|
31
|
+
|
|
32
|
+
- `pnpm build` uses esbuild presets from `@paperclipai/plugin-sdk/bundlers`.
|
|
33
|
+
- `pnpm build:rollup` uses rollup presets from the same SDK.
|
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_CONFIG,
|
|
3
|
+
EXPORT_NAMES,
|
|
4
|
+
JOB_KEYS,
|
|
5
|
+
PAGE_ROUTE,
|
|
6
|
+
PLUGIN_ID,
|
|
7
|
+
PLUGIN_VERSION,
|
|
8
|
+
SLOT_IDS,
|
|
9
|
+
TOOL_NAMES
|
|
10
|
+
} from "./constants.js";
|
|
11
|
+
const manifest = {
|
|
12
|
+
id: PLUGIN_ID,
|
|
13
|
+
apiVersion: 1,
|
|
14
|
+
version: PLUGIN_VERSION,
|
|
15
|
+
displayName: "ClawNet",
|
|
16
|
+
description: "Agent marketplace bridge: browse, search, and hire agents from the ClawNet registry with trust-gated attestations",
|
|
17
|
+
author: "bOpen",
|
|
18
|
+
categories: ["connector"],
|
|
19
|
+
capabilities: [
|
|
20
|
+
"agents.read",
|
|
21
|
+
"plugin.state.read",
|
|
22
|
+
"plugin.state.write",
|
|
23
|
+
"events.subscribe",
|
|
24
|
+
"jobs.schedule",
|
|
25
|
+
"http.outbound",
|
|
26
|
+
"secrets.read-ref",
|
|
27
|
+
"agent.tools.register",
|
|
28
|
+
"ui.dashboardWidget.register",
|
|
29
|
+
"ui.page.register",
|
|
30
|
+
"ui.sidebar.register",
|
|
31
|
+
"instance.settings.register"
|
|
32
|
+
],
|
|
33
|
+
entrypoints: {
|
|
34
|
+
worker: "./dist/worker.js",
|
|
35
|
+
ui: "./dist/ui"
|
|
36
|
+
},
|
|
37
|
+
instanceConfigSchema: {
|
|
38
|
+
type: "object",
|
|
39
|
+
properties: {
|
|
40
|
+
clawnetApiUrl: {
|
|
41
|
+
type: "string",
|
|
42
|
+
title: "ClawNet API URL",
|
|
43
|
+
default: DEFAULT_CONFIG.clawnetApiUrl
|
|
44
|
+
},
|
|
45
|
+
clawnetApiKey: {
|
|
46
|
+
type: "string",
|
|
47
|
+
title: "ClawNet API Key",
|
|
48
|
+
format: "secret-ref"
|
|
49
|
+
},
|
|
50
|
+
syncIntervalMinutes: {
|
|
51
|
+
type: "number",
|
|
52
|
+
title: "Sync Interval (minutes)",
|
|
53
|
+
default: DEFAULT_CONFIG.syncIntervalMinutes
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
jobs: [
|
|
58
|
+
{
|
|
59
|
+
jobKey: JOB_KEYS.sync,
|
|
60
|
+
displayName: "ClawNet Registry Sync",
|
|
61
|
+
description: "Pulls agents and skills from the ClawNet registry into plugin state.",
|
|
62
|
+
schedule: "*/15 * * * *"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
tools: [
|
|
66
|
+
{
|
|
67
|
+
name: TOOL_NAMES.agentLookup,
|
|
68
|
+
displayName: "ClawNet Agent Lookup",
|
|
69
|
+
description: "Look up a ClawNet agent by slug and return its profile, trust score, skills, and attestations.",
|
|
70
|
+
parametersSchema: {
|
|
71
|
+
type: "object",
|
|
72
|
+
properties: {
|
|
73
|
+
slug: {
|
|
74
|
+
type: "string",
|
|
75
|
+
description: "The ClawNet agent slug to look up."
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
required: ["slug"]
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: TOOL_NAMES.skillSearch,
|
|
83
|
+
displayName: "ClawNet Skill Search",
|
|
84
|
+
description: "Search available skills from the ClawNet registry by keyword or category.",
|
|
85
|
+
parametersSchema: {
|
|
86
|
+
type: "object",
|
|
87
|
+
properties: {
|
|
88
|
+
query: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: "Search query for skill name, description, or tags."
|
|
91
|
+
},
|
|
92
|
+
category: {
|
|
93
|
+
type: "string",
|
|
94
|
+
description: "Optional category filter."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
required: ["query"]
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: TOOL_NAMES.fleetOverview,
|
|
102
|
+
displayName: "ClawNet Fleet Overview",
|
|
103
|
+
description: "Return a summary of all ClawNet agents including count, status breakdown, and top skills.",
|
|
104
|
+
parametersSchema: {
|
|
105
|
+
type: "object",
|
|
106
|
+
properties: {}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
ui: {
|
|
111
|
+
slots: [
|
|
112
|
+
{
|
|
113
|
+
type: "dashboardWidget",
|
|
114
|
+
id: SLOT_IDS.dashboardWidget,
|
|
115
|
+
displayName: "ClawNet Fleet",
|
|
116
|
+
exportName: EXPORT_NAMES.dashboardWidget
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: "page",
|
|
120
|
+
id: SLOT_IDS.page,
|
|
121
|
+
displayName: "ClawNet Marketplace",
|
|
122
|
+
exportName: EXPORT_NAMES.page,
|
|
123
|
+
routePath: PAGE_ROUTE
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: "sidebar",
|
|
127
|
+
id: SLOT_IDS.sidebar,
|
|
128
|
+
displayName: "ClawNet",
|
|
129
|
+
exportName: EXPORT_NAMES.sidebar
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: "settingsPage",
|
|
133
|
+
id: SLOT_IDS.settingsPage,
|
|
134
|
+
displayName: "ClawNet Settings",
|
|
135
|
+
exportName: EXPORT_NAMES.settingsPage
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
var manifest_default = manifest;
|
|
141
|
+
export {
|
|
142
|
+
manifest_default as default
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/manifest.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PaperclipPluginManifestV1 } from \"@paperclipai/plugin-sdk\";\nimport {\n DEFAULT_CONFIG,\n EXPORT_NAMES,\n JOB_KEYS,\n PAGE_ROUTE,\n PLUGIN_ID,\n PLUGIN_VERSION,\n SLOT_IDS,\n TOOL_NAMES,\n} from \"./constants.js\";\n\nconst manifest: PaperclipPluginManifestV1 = {\n id: PLUGIN_ID,\n apiVersion: 1,\n version: PLUGIN_VERSION,\n displayName: \"ClawNet\",\n description:\n \"Agent marketplace bridge: browse, search, and hire agents from the ClawNet registry with trust-gated attestations\",\n author: \"bOpen\",\n categories: [\"connector\"],\n capabilities: [\n \"agents.read\",\n \"plugin.state.read\",\n \"plugin.state.write\",\n \"events.subscribe\",\n \"jobs.schedule\",\n \"http.outbound\",\n \"secrets.read-ref\",\n \"agent.tools.register\",\n \"ui.dashboardWidget.register\",\n \"ui.page.register\",\n \"ui.sidebar.register\",\n \"instance.settings.register\",\n ],\n entrypoints: {\n worker: \"./dist/worker.js\",\n ui: \"./dist/ui\",\n },\n instanceConfigSchema: {\n type: \"object\",\n properties: {\n clawnetApiUrl: {\n type: \"string\",\n title: \"ClawNet API URL\",\n default: DEFAULT_CONFIG.clawnetApiUrl,\n },\n clawnetApiKey: {\n type: \"string\",\n title: \"ClawNet API Key\",\n format: \"secret-ref\",\n },\n syncIntervalMinutes: {\n type: \"number\",\n title: \"Sync Interval (minutes)\",\n default: DEFAULT_CONFIG.syncIntervalMinutes,\n },\n },\n },\n jobs: [\n {\n jobKey: JOB_KEYS.sync,\n displayName: \"ClawNet Registry Sync\",\n description:\n \"Pulls agents and skills from the ClawNet registry into plugin state.\",\n schedule: \"*/15 * * * *\",\n },\n ],\n tools: [\n {\n name: TOOL_NAMES.agentLookup,\n displayName: \"ClawNet Agent Lookup\",\n description:\n \"Look up a ClawNet agent by slug and return its profile, trust score, skills, and attestations.\",\n parametersSchema: {\n type: \"object\",\n properties: {\n slug: {\n type: \"string\",\n description: \"The ClawNet agent slug to look up.\",\n },\n },\n required: [\"slug\"],\n },\n },\n {\n name: TOOL_NAMES.skillSearch,\n displayName: \"ClawNet Skill Search\",\n description:\n \"Search available skills from the ClawNet registry by keyword or category.\",\n parametersSchema: {\n type: \"object\",\n properties: {\n query: {\n type: \"string\",\n description: \"Search query for skill name, description, or tags.\",\n },\n category: {\n type: \"string\",\n description: \"Optional category filter.\",\n },\n },\n required: [\"query\"],\n },\n },\n {\n name: TOOL_NAMES.fleetOverview,\n displayName: \"ClawNet Fleet Overview\",\n description:\n \"Return a summary of all ClawNet agents including count, status breakdown, and top skills.\",\n parametersSchema: {\n type: \"object\",\n properties: {},\n },\n },\n ],\n ui: {\n slots: [\n {\n type: \"dashboardWidget\",\n id: SLOT_IDS.dashboardWidget,\n displayName: \"ClawNet Fleet\",\n exportName: EXPORT_NAMES.dashboardWidget,\n },\n {\n type: \"page\",\n id: SLOT_IDS.page,\n displayName: \"ClawNet Marketplace\",\n exportName: EXPORT_NAMES.page,\n routePath: PAGE_ROUTE,\n },\n {\n type: \"sidebar\",\n id: SLOT_IDS.sidebar,\n displayName: \"ClawNet\",\n exportName: EXPORT_NAMES.sidebar,\n },\n {\n type: \"settingsPage\",\n id: SLOT_IDS.settingsPage,\n displayName: \"ClawNet Settings\",\n exportName: EXPORT_NAMES.settingsPage,\n },\n ],\n },\n};\n\nexport default manifest;\n"],
|
|
5
|
+
"mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,MAAM,WAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,aACE;AAAA,EACF,QAAQ;AAAA,EACR,YAAY,CAAC,WAAW;AAAA,EACxB,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,QAAQ;AAAA,IACR,IAAI;AAAA,EACN;AAAA,EACA,sBAAsB;AAAA,IACpB,MAAM;AAAA,IACN,YAAY;AAAA,MACV,eAAe;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,eAAe;AAAA,MAC1B;AAAA,MACA,eAAe;AAAA,QACb,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,MACV;AAAA,MACA,qBAAqB;AAAA,QACnB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS,eAAe;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,QAAQ,SAAS;AAAA,MACjB,aAAa;AAAA,MACb,aACE;AAAA,MACF,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,aAAa;AAAA,MACb,aACE;AAAA,MACF,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,YAAY;AAAA,UACV,MAAM;AAAA,YACJ,MAAM;AAAA,YACN,aAAa;AAAA,UACf;AAAA,QACF;AAAA,QACA,UAAU,CAAC,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,aAAa;AAAA,MACb,aACE;AAAA,MACF,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,YAAY;AAAA,UACV,OAAO;AAAA,YACL,MAAM;AAAA,YACN,aAAa;AAAA,UACf;AAAA,UACA,UAAU;AAAA,YACR,MAAM;AAAA,YACN,aAAa;AAAA,UACf;AAAA,QACF;AAAA,QACA,UAAU,CAAC,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,IACA;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,aAAa;AAAA,MACb,aACE;AAAA,MACF,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,YAAY,CAAC;AAAA,MACf;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI;AAAA,IACF,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,IAAI,SAAS;AAAA,QACb,aAAa;AAAA,QACb,YAAY,aAAa;AAAA,MAC3B;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI,SAAS;AAAA,QACb,aAAa;AAAA,QACb,YAAY,aAAa;AAAA,QACzB,WAAW;AAAA,MACb;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI,SAAS;AAAA,QACb,aAAa;AAAA,QACb,YAAY,aAAa;AAAA,MAC3B;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI,SAAS;AAAA,QACb,aAAa;AAAA,QACb,YAAY,aAAa;AAAA,MAC3B;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|