@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 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.
@@ -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
+ }