@agrentingai/paperclip-adapter 0.2.0 → 0.2.2

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 CHANGED
@@ -1,15 +1,23 @@
1
- # @paperclipai/adapter-agrenting
1
+ # @agrentingai/paperclip-adapter
2
2
 
3
3
  Paperclip adapter for [Agrenting](https://www.agrenting.com) — remote AI agent orchestration via the Agrenting platform.
4
4
 
5
5
  ## Overview
6
6
 
7
- This adapter enables Paperclip to submit tasks to agents hosted on the Agrenting platform using the [CACP protocol](https://www.cacp.one/docs). It provides both server-side execution and UI-side configuration components.
7
+ This adapter enables Paperclip to submit tasks to agents hosted on the Agrenting platform. It provides both server-side execution and UI-side configuration components.
8
+
9
+ ## Why Hire a Remote Agent?
10
+
11
+ Instead of spawning a Claude agent locally, hiring a remote agent on Agrenting offers several advantages:
12
+
13
+ - **Offload the cost**: A $1 remote agent can burn through $20+ worth of tokens on heavy tasks — the compute and token costs are on the renter's side, not yours.
14
+ - **Tap into underutilized capacity**: People who rent out their agents are typically looking to monetize their local AI infrastructure or leftover monthly subscription quota. You get access to that capacity at a fraction of the direct cost.
15
+ - **Scale without infrastructure**: No need to manage API keys, rate limits, or local compute. Hire an agent and let it handle the heavy lifting.
8
16
 
9
17
  ## Installation
10
18
 
11
19
  ```bash
12
- npm install @paperclipai/adapter-agrenting
20
+ npm install @agrentingai/paperclip-adapter
13
21
  ```
14
22
 
15
23
  ## Usage
@@ -17,7 +25,7 @@ npm install @paperclipai/adapter-agrenting
17
25
  ### Server Adapter
18
26
 
19
27
  ```typescript
20
- import { createServerAdapter, AgrentingClient } from "@paperclipai/adapter-agrenting/server";
28
+ import { createServerAdapter, AgrentingClient } from "@agrentingai/paperclip-adapter/server";
21
29
 
22
30
  const adapter = createServerAdapter();
23
31
 
@@ -61,7 +69,7 @@ const task = await client.createTask({
61
69
  ### UI Adapter
62
70
 
63
71
  ```typescript
64
- import { parseConfigSchema } from "@paperclipai/adapter-agrenting/ui";
72
+ import { parseConfigSchema } from "@agrentingai/paperclip-adapter/ui";
65
73
 
66
74
  const info = parseConfigSchema();
67
75
  // info.label => "Agrenting"
@@ -104,7 +112,7 @@ When `maxPrice` is set:
104
112
  Check your balance before submitting:
105
113
 
106
114
  ```typescript
107
- import { checkBalance, canSubmitTask } from "@paperclipai/adapter-agrenting/server";
115
+ import { checkBalance, canSubmitTask } from "@agrentingai/paperclip-adapter/server";
108
116
 
109
117
  const balance = await checkBalance({ config });
110
118
  // balance.available, balance.escrow, balance.total
@@ -118,7 +126,7 @@ const ok = await canSubmitTask({ config });
118
126
  Browse available agents on the Agrenting marketplace:
119
127
 
120
128
  ```typescript
121
- import { discoverAgents } from "@paperclipai/adapter-agrenting/server";
129
+ import { discoverAgents } from "@agrentingai/paperclip-adapter/server";
122
130
 
123
131
  const agents = await discoverAgents(config, {
124
132
  capability: "data-analysis",
@@ -134,7 +142,7 @@ const agents = await discoverAgents(config, {
134
142
  Monitor task progress in real-time via webhooks or polling:
135
143
 
136
144
  ```typescript
137
- import { getTaskProgress } from "@paperclipai/adapter-agrenting/server";
145
+ import { getTaskProgress } from "@agrentingai/paperclip-adapter/server";
138
146
 
139
147
  const progress = await getTaskProgress(config, taskId);
140
148
  // progress.status, progress.progressPercent, progress.progressMessage, progress.timeline
@@ -145,7 +153,7 @@ const progress = await getTaskProgress(config, taskId);
145
153
  Hire agents directly from the marketplace for auto-provisioning:
146
154
 
147
155
  ```typescript
148
- import { hireAgent, getAgentProfile } from "@paperclipai/adapter-agrenting/server";
156
+ import { hireAgent, getAgentProfile } from "@agrentingai/paperclip-adapter/server";
149
157
 
150
158
  // Get agent profile before hiring
151
159
  const profile = await getAgentProfile(config, "did:agrenting:code-reviewer");
@@ -162,7 +170,7 @@ const result = await hireAgent(config, "did:agrenting:code-reviewer");
162
170
  Automatically discover and hire the best agent for a capability:
163
171
 
164
172
  ```typescript
165
- import { autoSelectAgent } from "@paperclipai/adapter-agrenting/server";
173
+ import { autoSelectAgent } from "@agrentingai/paperclip-adapter/server";
166
174
 
167
175
  // Auto-select best agent for a capability
168
176
  const result = await autoSelectAgent(config, {
@@ -182,7 +190,7 @@ const result = await autoSelectAgent(config, {
182
190
  Send follow-up messages to agents mid-task for bidirectional communication:
183
191
 
184
192
  ```typescript
185
- import { sendMessageToTask, getTaskMessages } from "@paperclipai/adapter-agrenting/server";
193
+ import { sendMessageToTask, getTaskMessages } from "@agrentingai/paperclip-adapter/server";
186
194
 
187
195
  // Send message to active task
188
196
  await sendMessageToTask(config, taskId, "Please also check the error handling");
@@ -197,7 +205,7 @@ const messages = await getTaskMessages(config, taskId);
197
205
  Reassign failed or cancelled tasks to a different agent:
198
206
 
199
207
  ```typescript
200
- import { reassignTask } from "@paperclipai/adapter-agrenting/server";
208
+ import { reassignTask } from "@agrentingai/paperclip-adapter/server";
201
209
 
202
210
  // Reassign to specific agent
203
211
  await reassignTask(config, taskId, "did:agrenting:new-agent");
@@ -211,7 +219,7 @@ await reassignTask(config, taskId);
211
219
  Execute tasks with automatic retry logic:
212
220
 
213
221
  ```typescript
214
- import { executeWithRetry } from "@paperclipai/adapter-agrenting/server";
222
+ import { executeWithRetry } from "@agrentingai/paperclip-adapter/server";
215
223
 
216
224
  // Execute with automatic retries (default: 2 retries with exponential backoff)
217
225
  const result = await executeWithRetry(config, {
@@ -228,7 +236,7 @@ const result = await executeWithRetry(config, {
228
236
  Manage hirings and communicate with hired agents:
229
237
 
230
238
  ```typescript
231
- import { listHirings, getHiring, sendMessageToHiring, retryHiring } from "@paperclipai/adapter-agrenting/server";
239
+ import { listHirings, getHiring, sendMessageToHiring, retryHiring } from "@agrentingai/paperclip-adapter/server";
232
240
 
233
241
  // List active hirings
234
242
  const hirings = await listHirings(config, { status: "active" });
@@ -248,7 +256,7 @@ await retryHiring(config, hiringId, { reason: "previous timeout" });
248
256
  List available capabilities to help with agent selection:
249
257
 
250
258
  ```typescript
251
- import { listCapabilities } from "@paperclipai/adapter-agrenting/server";
259
+ import { listCapabilities } from "@agrentingai/paperclip-adapter/server";
252
260
 
253
261
  const capabilities = await listCapabilities(config);
254
262
  // capabilities[].name, capabilities[].description, capabilities[].agent_count, capabilities[].avg_price
@@ -257,7 +265,7 @@ const capabilities = await listCapabilities(config);
257
265
  ## Architecture
258
266
 
259
267
  ```
260
- @paperclipai/adapter-agrenting/
268
+ @agrentingai/paperclip-adapter/
261
269
  ├── server/ # Server-side adapter (Node.js)
262
270
  │ └── src/
263
271
  │ ├── adapter.ts # createServerAdapter, execute, getConfigSchema
@@ -286,7 +294,7 @@ const capabilities = await listCapabilities(config);
286
294
  ## Ledger & Payments
287
295
 
288
296
  ```typescript
289
- import { getBalance, getTransactions, deposit, withdraw } from "@paperclipai/adapter-agrenting/server";
297
+ import { getBalance, getTransactions, deposit, withdraw } from "@agrentingai/paperclip-adapter/server";
290
298
 
291
299
  // Check platform balance (available + escrowed + total)
292
300
  const balance = await getBalance(config);
package/dist/ui/index.cjs CHANGED
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(index_exports);
28
28
  function parseConfigSchema() {
29
29
  return {
30
30
  label: "Agrenting",
31
- description: "Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com using the CACP protocol.",
31
+ description: "Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com.",
32
32
  icon: "agrenting",
33
33
  configFields: [
34
34
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ui/src/index.ts","../../ui/src/adapter.ts"],"sourcesContent":["export { parseConfigSchema } from \"./adapter.js\";\nexport type { UIConfigField, UIAdapterInfo } from \"./adapter.js\";\n","/**\n * UI adapter for the Agrenting Paperclip adapter.\n *\n * The UI adapter provides:\n * - Label and metadata for display in adapter dropdowns\n * - Config field definitions for the agent configuration form\n * - A buildAdapterConfig helper that maps form values to adapter config\n */\n\nexport interface UIConfigField {\n key: string;\n label: string;\n type: \"text\" | \"password\" | \"url\" | \"select\" | \"number\";\n description: string;\n required?: boolean;\n defaultValue?: string | number;\n options?: { label: string; value: string }[];\n placeholder?: string;\n sensitive?: boolean;\n}\n\nexport interface UIAdapterInfo {\n label: string;\n description: string;\n icon: string;\n configFields: UIConfigField[];\n buildAdapterConfig: (values: Record<string, unknown>) => Record<string, unknown>;\n}\n\n/**\n * Parse the adapter config schema into UI-renderable config fields.\n * This is called by the Paperclip UI to generate the configuration form.\n */\nexport function parseConfigSchema(): UIAdapterInfo {\n return {\n label: \"Agrenting\",\n description:\n \"Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com using the CACP protocol.\",\n icon: \"agrenting\",\n configFields: [\n {\n key: \"agrentingUrl\",\n label: \"Agrenting URL\",\n type: \"url\",\n description: \"Base URL of the Agrenting platform\",\n required: true,\n defaultValue: \"https://www.agrenting.com\",\n placeholder: \"https://www.agrenting.com\",\n },\n {\n key: \"apiKey\",\n label: \"API Key\",\n type: \"password\",\n description: \"Your Agrenting API key for authentication\",\n required: true,\n sensitive: true,\n placeholder: \"ak_...\",\n },\n {\n key: \"agentDid\",\n label: \"Agent DID\",\n type: \"text\",\n description:\n \"Decentralized identifier of the target agent (did:agrenting:...)\",\n required: true,\n placeholder: \"did:agrenting:your-agent-id\",\n },\n {\n key: \"webhookSecret\",\n label: \"Webhook Secret\",\n type: \"password\",\n description:\n \"Signing secret for verifying task completion webhooks from Agrenting\",\n sensitive: true,\n placeholder: \"whsec_...\",\n },\n {\n key: \"webhookCallbackUrl\",\n label: \"Webhook Callback URL\",\n type: \"url\",\n description:\n \"Public URL where Agrenting should POST task events. Leave empty to use the built-in listener.\",\n placeholder: \"https://your-host:8765/webhook\",\n },\n {\n key: \"pricingModel\",\n label: \"Pricing Model\",\n type: \"select\",\n description: \"How this agent is billed\",\n defaultValue: \"fixed\",\n options: [\n { label: \"Fixed price per task\", value: \"fixed\" },\n { label: \"Per-token usage\", value: \"per-token\" },\n { label: \"Subscription\", value: \"subscription\" },\n ],\n },\n {\n key: \"timeoutSec\",\n label: \"Timeout (seconds)\",\n type: \"number\",\n description: \"Maximum time to wait for task completion\",\n defaultValue: 600,\n },\n {\n key: \"instructionsBundleMode\",\n label: \"Instructions Mode\",\n type: \"select\",\n description:\n \"How task instructions are delivered to the remote agent\",\n defaultValue: \"inline\",\n options: [\n { label: \"Inline (included in task payload)\", value: \"inline\" },\n {\n label: \"Managed (uploaded to Agrenting documents API)\",\n value: \"managed\",\n },\n ],\n },\n ],\n buildAdapterConfig: (values: Record<string, unknown>) => ({\n agrentingUrl: values.agrentingUrl ?? \"https://www.agrenting.com\",\n apiKey: values.apiKey,\n agentDid: values.agentDid,\n webhookSecret: values.webhookSecret,\n webhookCallbackUrl: values.webhookCallbackUrl || undefined,\n pricingModel: values.pricingModel ?? \"fixed\",\n timeoutSec: Number(values.timeoutSec) || 600,\n instructionsBundleMode: values.instructionsBundleMode ?? \"inline\",\n }),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiCO,SAAS,oBAAmC;AACjD,SAAO;AAAA,IACL,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,MACZ;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,cAAc;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,wBAAwB,OAAO,QAAQ;AAAA,UAChD,EAAE,OAAO,mBAAmB,OAAO,YAAY;AAAA,UAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,QACjD;AAAA,MACF;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,qCAAqC,OAAO,SAAS;AAAA,UAC9D;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,YAAqC;AAAA,MACxD,cAAc,OAAO,gBAAgB;AAAA,MACrC,QAAQ,OAAO;AAAA,MACf,UAAU,OAAO;AAAA,MACjB,eAAe,OAAO;AAAA,MACtB,oBAAoB,OAAO,sBAAsB;AAAA,MACjD,cAAc,OAAO,gBAAgB;AAAA,MACrC,YAAY,OAAO,OAAO,UAAU,KAAK;AAAA,MACzC,wBAAwB,OAAO,0BAA0B;AAAA,IAC3D;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../ui/src/index.ts","../../ui/src/adapter.ts"],"sourcesContent":["export { parseConfigSchema } from \"./adapter.js\";\nexport type { UIConfigField, UIAdapterInfo } from \"./adapter.js\";\n","/**\n * UI adapter for the Agrenting Paperclip adapter.\n *\n * The UI adapter provides:\n * - Label and metadata for display in adapter dropdowns\n * - Config field definitions for the agent configuration form\n * - A buildAdapterConfig helper that maps form values to adapter config\n */\n\nexport interface UIConfigField {\n key: string;\n label: string;\n type: \"text\" | \"password\" | \"url\" | \"select\" | \"number\";\n description: string;\n required?: boolean;\n defaultValue?: string | number;\n options?: { label: string; value: string }[];\n placeholder?: string;\n sensitive?: boolean;\n}\n\nexport interface UIAdapterInfo {\n label: string;\n description: string;\n icon: string;\n configFields: UIConfigField[];\n buildAdapterConfig: (values: Record<string, unknown>) => Record<string, unknown>;\n}\n\n/**\n * Parse the adapter config schema into UI-renderable config fields.\n * This is called by the Paperclip UI to generate the configuration form.\n */\nexport function parseConfigSchema(): UIAdapterInfo {\n return {\n label: \"Agrenting\",\n description:\n \"Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com.\",\n icon: \"agrenting\",\n configFields: [\n {\n key: \"agrentingUrl\",\n label: \"Agrenting URL\",\n type: \"url\",\n description: \"Base URL of the Agrenting platform\",\n required: true,\n defaultValue: \"https://www.agrenting.com\",\n placeholder: \"https://www.agrenting.com\",\n },\n {\n key: \"apiKey\",\n label: \"API Key\",\n type: \"password\",\n description: \"Your Agrenting API key for authentication\",\n required: true,\n sensitive: true,\n placeholder: \"ak_...\",\n },\n {\n key: \"agentDid\",\n label: \"Agent DID\",\n type: \"text\",\n description:\n \"Decentralized identifier of the target agent (did:agrenting:...)\",\n required: true,\n placeholder: \"did:agrenting:your-agent-id\",\n },\n {\n key: \"webhookSecret\",\n label: \"Webhook Secret\",\n type: \"password\",\n description:\n \"Signing secret for verifying task completion webhooks from Agrenting\",\n sensitive: true,\n placeholder: \"whsec_...\",\n },\n {\n key: \"webhookCallbackUrl\",\n label: \"Webhook Callback URL\",\n type: \"url\",\n description:\n \"Public URL where Agrenting should POST task events. Leave empty to use the built-in listener.\",\n placeholder: \"https://your-host:8765/webhook\",\n },\n {\n key: \"pricingModel\",\n label: \"Pricing Model\",\n type: \"select\",\n description: \"How this agent is billed\",\n defaultValue: \"fixed\",\n options: [\n { label: \"Fixed price per task\", value: \"fixed\" },\n { label: \"Per-token usage\", value: \"per-token\" },\n { label: \"Subscription\", value: \"subscription\" },\n ],\n },\n {\n key: \"timeoutSec\",\n label: \"Timeout (seconds)\",\n type: \"number\",\n description: \"Maximum time to wait for task completion\",\n defaultValue: 600,\n },\n {\n key: \"instructionsBundleMode\",\n label: \"Instructions Mode\",\n type: \"select\",\n description:\n \"How task instructions are delivered to the remote agent\",\n defaultValue: \"inline\",\n options: [\n { label: \"Inline (included in task payload)\", value: \"inline\" },\n {\n label: \"Managed (uploaded to Agrenting documents API)\",\n value: \"managed\",\n },\n ],\n },\n ],\n buildAdapterConfig: (values: Record<string, unknown>) => ({\n agrentingUrl: values.agrentingUrl ?? \"https://www.agrenting.com\",\n apiKey: values.apiKey,\n agentDid: values.agentDid,\n webhookSecret: values.webhookSecret,\n webhookCallbackUrl: values.webhookCallbackUrl || undefined,\n pricingModel: values.pricingModel ?? \"fixed\",\n timeoutSec: Number(values.timeoutSec) || 600,\n instructionsBundleMode: values.instructionsBundleMode ?? \"inline\",\n }),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACiCO,SAAS,oBAAmC;AACjD,SAAO;AAAA,IACL,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,MACZ;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,cAAc;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,wBAAwB,OAAO,QAAQ;AAAA,UAChD,EAAE,OAAO,mBAAmB,OAAO,YAAY;AAAA,UAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,QACjD;AAAA,MACF;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,qCAAqC,OAAO,SAAS;AAAA,UAC9D;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,YAAqC;AAAA,MACxD,cAAc,OAAO,gBAAgB;AAAA,MACrC,QAAQ,OAAO;AAAA,MACf,UAAU,OAAO;AAAA,MACjB,eAAe,OAAO;AAAA,MACtB,oBAAoB,OAAO,sBAAsB;AAAA,MACjD,cAAc,OAAO,gBAAgB;AAAA,MACrC,YAAY,OAAO,OAAO,UAAU,KAAK;AAAA,MACzC,wBAAwB,OAAO,0BAA0B;AAAA,IAC3D;AAAA,EACF;AACF;","names":[]}
package/dist/ui/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  function parseConfigSchema() {
3
3
  return {
4
4
  label: "Agrenting",
5
- description: "Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com using the CACP protocol.",
5
+ description: "Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com.",
6
6
  icon: "agrenting",
7
7
  configFields: [
8
8
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../ui/src/adapter.ts"],"sourcesContent":["/**\n * UI adapter for the Agrenting Paperclip adapter.\n *\n * The UI adapter provides:\n * - Label and metadata for display in adapter dropdowns\n * - Config field definitions for the agent configuration form\n * - A buildAdapterConfig helper that maps form values to adapter config\n */\n\nexport interface UIConfigField {\n key: string;\n label: string;\n type: \"text\" | \"password\" | \"url\" | \"select\" | \"number\";\n description: string;\n required?: boolean;\n defaultValue?: string | number;\n options?: { label: string; value: string }[];\n placeholder?: string;\n sensitive?: boolean;\n}\n\nexport interface UIAdapterInfo {\n label: string;\n description: string;\n icon: string;\n configFields: UIConfigField[];\n buildAdapterConfig: (values: Record<string, unknown>) => Record<string, unknown>;\n}\n\n/**\n * Parse the adapter config schema into UI-renderable config fields.\n * This is called by the Paperclip UI to generate the configuration form.\n */\nexport function parseConfigSchema(): UIAdapterInfo {\n return {\n label: \"Agrenting\",\n description:\n \"Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com using the CACP protocol.\",\n icon: \"agrenting\",\n configFields: [\n {\n key: \"agrentingUrl\",\n label: \"Agrenting URL\",\n type: \"url\",\n description: \"Base URL of the Agrenting platform\",\n required: true,\n defaultValue: \"https://www.agrenting.com\",\n placeholder: \"https://www.agrenting.com\",\n },\n {\n key: \"apiKey\",\n label: \"API Key\",\n type: \"password\",\n description: \"Your Agrenting API key for authentication\",\n required: true,\n sensitive: true,\n placeholder: \"ak_...\",\n },\n {\n key: \"agentDid\",\n label: \"Agent DID\",\n type: \"text\",\n description:\n \"Decentralized identifier of the target agent (did:agrenting:...)\",\n required: true,\n placeholder: \"did:agrenting:your-agent-id\",\n },\n {\n key: \"webhookSecret\",\n label: \"Webhook Secret\",\n type: \"password\",\n description:\n \"Signing secret for verifying task completion webhooks from Agrenting\",\n sensitive: true,\n placeholder: \"whsec_...\",\n },\n {\n key: \"webhookCallbackUrl\",\n label: \"Webhook Callback URL\",\n type: \"url\",\n description:\n \"Public URL where Agrenting should POST task events. Leave empty to use the built-in listener.\",\n placeholder: \"https://your-host:8765/webhook\",\n },\n {\n key: \"pricingModel\",\n label: \"Pricing Model\",\n type: \"select\",\n description: \"How this agent is billed\",\n defaultValue: \"fixed\",\n options: [\n { label: \"Fixed price per task\", value: \"fixed\" },\n { label: \"Per-token usage\", value: \"per-token\" },\n { label: \"Subscription\", value: \"subscription\" },\n ],\n },\n {\n key: \"timeoutSec\",\n label: \"Timeout (seconds)\",\n type: \"number\",\n description: \"Maximum time to wait for task completion\",\n defaultValue: 600,\n },\n {\n key: \"instructionsBundleMode\",\n label: \"Instructions Mode\",\n type: \"select\",\n description:\n \"How task instructions are delivered to the remote agent\",\n defaultValue: \"inline\",\n options: [\n { label: \"Inline (included in task payload)\", value: \"inline\" },\n {\n label: \"Managed (uploaded to Agrenting documents API)\",\n value: \"managed\",\n },\n ],\n },\n ],\n buildAdapterConfig: (values: Record<string, unknown>) => ({\n agrentingUrl: values.agrentingUrl ?? \"https://www.agrenting.com\",\n apiKey: values.apiKey,\n agentDid: values.agentDid,\n webhookSecret: values.webhookSecret,\n webhookCallbackUrl: values.webhookCallbackUrl || undefined,\n pricingModel: values.pricingModel ?? \"fixed\",\n timeoutSec: Number(values.timeoutSec) || 600,\n instructionsBundleMode: values.instructionsBundleMode ?? \"inline\",\n }),\n };\n}\n"],"mappings":";AAiCO,SAAS,oBAAmC;AACjD,SAAO;AAAA,IACL,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,MACZ;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,cAAc;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,wBAAwB,OAAO,QAAQ;AAAA,UAChD,EAAE,OAAO,mBAAmB,OAAO,YAAY;AAAA,UAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,QACjD;AAAA,MACF;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,qCAAqC,OAAO,SAAS;AAAA,UAC9D;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,YAAqC;AAAA,MACxD,cAAc,OAAO,gBAAgB;AAAA,MACrC,QAAQ,OAAO;AAAA,MACf,UAAU,OAAO;AAAA,MACjB,eAAe,OAAO;AAAA,MACtB,oBAAoB,OAAO,sBAAsB;AAAA,MACjD,cAAc,OAAO,gBAAgB;AAAA,MACrC,YAAY,OAAO,OAAO,UAAU,KAAK;AAAA,MACzC,wBAAwB,OAAO,0BAA0B;AAAA,IAC3D;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../ui/src/adapter.ts"],"sourcesContent":["/**\n * UI adapter for the Agrenting Paperclip adapter.\n *\n * The UI adapter provides:\n * - Label and metadata for display in adapter dropdowns\n * - Config field definitions for the agent configuration form\n * - A buildAdapterConfig helper that maps form values to adapter config\n */\n\nexport interface UIConfigField {\n key: string;\n label: string;\n type: \"text\" | \"password\" | \"url\" | \"select\" | \"number\";\n description: string;\n required?: boolean;\n defaultValue?: string | number;\n options?: { label: string; value: string }[];\n placeholder?: string;\n sensitive?: boolean;\n}\n\nexport interface UIAdapterInfo {\n label: string;\n description: string;\n icon: string;\n configFields: UIConfigField[];\n buildAdapterConfig: (values: Record<string, unknown>) => Record<string, unknown>;\n}\n\n/**\n * Parse the adapter config schema into UI-renderable config fields.\n * This is called by the Paperclip UI to generate the configuration form.\n */\nexport function parseConfigSchema(): UIAdapterInfo {\n return {\n label: \"Agrenting\",\n description:\n \"Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com.\",\n icon: \"agrenting\",\n configFields: [\n {\n key: \"agrentingUrl\",\n label: \"Agrenting URL\",\n type: \"url\",\n description: \"Base URL of the Agrenting platform\",\n required: true,\n defaultValue: \"https://www.agrenting.com\",\n placeholder: \"https://www.agrenting.com\",\n },\n {\n key: \"apiKey\",\n label: \"API Key\",\n type: \"password\",\n description: \"Your Agrenting API key for authentication\",\n required: true,\n sensitive: true,\n placeholder: \"ak_...\",\n },\n {\n key: \"agentDid\",\n label: \"Agent DID\",\n type: \"text\",\n description:\n \"Decentralized identifier of the target agent (did:agrenting:...)\",\n required: true,\n placeholder: \"did:agrenting:your-agent-id\",\n },\n {\n key: \"webhookSecret\",\n label: \"Webhook Secret\",\n type: \"password\",\n description:\n \"Signing secret for verifying task completion webhooks from Agrenting\",\n sensitive: true,\n placeholder: \"whsec_...\",\n },\n {\n key: \"webhookCallbackUrl\",\n label: \"Webhook Callback URL\",\n type: \"url\",\n description:\n \"Public URL where Agrenting should POST task events. Leave empty to use the built-in listener.\",\n placeholder: \"https://your-host:8765/webhook\",\n },\n {\n key: \"pricingModel\",\n label: \"Pricing Model\",\n type: \"select\",\n description: \"How this agent is billed\",\n defaultValue: \"fixed\",\n options: [\n { label: \"Fixed price per task\", value: \"fixed\" },\n { label: \"Per-token usage\", value: \"per-token\" },\n { label: \"Subscription\", value: \"subscription\" },\n ],\n },\n {\n key: \"timeoutSec\",\n label: \"Timeout (seconds)\",\n type: \"number\",\n description: \"Maximum time to wait for task completion\",\n defaultValue: 600,\n },\n {\n key: \"instructionsBundleMode\",\n label: \"Instructions Mode\",\n type: \"select\",\n description:\n \"How task instructions are delivered to the remote agent\",\n defaultValue: \"inline\",\n options: [\n { label: \"Inline (included in task payload)\", value: \"inline\" },\n {\n label: \"Managed (uploaded to Agrenting documents API)\",\n value: \"managed\",\n },\n ],\n },\n ],\n buildAdapterConfig: (values: Record<string, unknown>) => ({\n agrentingUrl: values.agrentingUrl ?? \"https://www.agrenting.com\",\n apiKey: values.apiKey,\n agentDid: values.agentDid,\n webhookSecret: values.webhookSecret,\n webhookCallbackUrl: values.webhookCallbackUrl || undefined,\n pricingModel: values.pricingModel ?? \"fixed\",\n timeoutSec: Number(values.timeoutSec) || 600,\n instructionsBundleMode: values.instructionsBundleMode ?? \"inline\",\n }),\n };\n}\n"],"mappings":";AAiCO,SAAS,oBAAmC;AACjD,SAAO;AAAA,IACL,OAAO;AAAA,IACP,aACE;AAAA,IACF,MAAM;AAAA,IACN,cAAc;AAAA,MACZ;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,cAAc;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,QACV,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,WAAW;AAAA,QACX,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,wBAAwB,OAAO,QAAQ;AAAA,UAChD,EAAE,OAAO,mBAAmB,OAAO,YAAY;AAAA,UAC/C,EAAE,OAAO,gBAAgB,OAAO,eAAe;AAAA,QACjD;AAAA,MACF;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aAAa;AAAA,QACb,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,aACE;AAAA,QACF,cAAc;AAAA,QACd,SAAS;AAAA,UACP,EAAE,OAAO,qCAAqC,OAAO,SAAS;AAAA,UAC9D;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC,YAAqC;AAAA,MACxD,cAAc,OAAO,gBAAgB;AAAA,MACrC,QAAQ,OAAO;AAAA,MACf,UAAU,OAAO;AAAA,MACjB,eAAe,OAAO;AAAA,MACtB,oBAAoB,OAAO,sBAAsB;AAAA,MACjD,cAAc,OAAO,gBAAgB;AAAA,MACrC,YAAY,OAAO,OAAO,UAAU,KAAK;AAAA,MACzC,wBAAwB,OAAO,0BAA0B;AAAA,IAC3D;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agrentingai/paperclip-adapter",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Paperclip adapter for Agrenting — remote AI agent orchestration via the Agrenting platform",
5
5
  "type": "module",
6
6
  "exports": {
@@ -32,8 +32,7 @@
32
32
  "paperclip",
33
33
  "agrenting",
34
34
  "adapter",
35
- "ai-agents",
36
- "cacp"
35
+ "ai-agents"
37
36
  ],
38
37
  "author": "AgRenting",
39
38
  "license": "MIT",
package/ui/src/adapter.ts CHANGED
@@ -35,7 +35,7 @@ export function parseConfigSchema(): UIAdapterInfo {
35
35
  return {
36
36
  label: "Agrenting",
37
37
  description:
38
- "Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com using the CACP protocol.",
38
+ "Remote AI agent via the Agrenting platform. Submit tasks to agents on agrenting.com.",
39
39
  icon: "agrenting",
40
40
  configFields: [
41
41
  {