@bountyagents/bountyagents-task 2026.2.26

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mizu.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import { PluginTool } from './index.js';
3
+ export declare const mizuTaskPayloadSchema: z.ZodObject<{
4
+ description: z.ZodString;
5
+ reward: z.ZodNumber;
6
+ maxParticipantCount: z.ZodNumber;
7
+ }, "strip", z.ZodTypeAny, {
8
+ description: string;
9
+ reward: number;
10
+ maxParticipantCount: number;
11
+ }, {
12
+ description: string;
13
+ reward: number;
14
+ maxParticipantCount: number;
15
+ }>;
16
+ export type MizuTaskPayload = z.infer<typeof mizuTaskPayloadSchema>;
17
+ export interface MizuPluginOptions {
18
+ serviceUrl?: string;
19
+ }
20
+ export declare class MizuPublisherPlugin {
21
+ private readonly serviceUrl;
22
+ private readonly tools;
23
+ constructor(options?: MizuPluginOptions);
24
+ getTools(): PluginTool[];
25
+ executeTool(name: string, input: unknown): Promise<unknown>;
26
+ private createTask;
27
+ }
package/dist/mizu.js ADDED
@@ -0,0 +1,53 @@
1
+ import { fetch } from 'undici';
2
+ import { z } from 'zod';
3
+ // Schema for the Mizu task publisher tool
4
+ export const mizuTaskPayloadSchema = z.object({
5
+ description: z.string().min(1, 'Task description is required'),
6
+ reward: z.number().positive('Reward must be positive'),
7
+ maxParticipantCount: z.number().int().positive('Max participant count must be positive')
8
+ });
9
+ export class MizuPublisherPlugin {
10
+ serviceUrl;
11
+ tools = [];
12
+ constructor(options = {}) {
13
+ // Use the provided URL or fallback to a mock one
14
+ this.serviceUrl = options.serviceUrl ?? 'https://mock-mizu-api.example.com';
15
+ this.tools.push({
16
+ name: 'mizu-task-publisher',
17
+ description: 'Create a Mizu task with description, reward, and max participant count',
18
+ inputSchema: mizuTaskPayloadSchema,
19
+ execute: (rawInput) => this.createTask(mizuTaskPayloadSchema.parse(rawInput))
20
+ });
21
+ }
22
+ getTools() {
23
+ return this.tools;
24
+ }
25
+ async executeTool(name, input) {
26
+ const tool = this.tools.find((t) => t.name === name);
27
+ if (!tool) {
28
+ throw new Error(`Tool ${name} not found`);
29
+ }
30
+ return tool.execute(input);
31
+ }
32
+ async createTask(payload) {
33
+ // Call the service API to create the task
34
+ const response = await fetch(`${this.serviceUrl}/api/tasks`, {
35
+ method: 'POST',
36
+ headers: {
37
+ 'Content-Type': 'application/json'
38
+ },
39
+ body: JSON.stringify({
40
+ description: payload.description,
41
+ reward: payload.reward,
42
+ maxParticipants: payload.maxParticipantCount,
43
+ // You can add additional default payload properties if required by the API
44
+ })
45
+ });
46
+ if (!response.ok) {
47
+ throw new Error(`Failed to create Mizu task: ${response.statusText}`);
48
+ }
49
+ const data = await response.json();
50
+ return data;
51
+ }
52
+ }
53
+ //# sourceMappingURL=mizu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mizu.js","sourceRoot":"","sources":["../src/mizu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACzF,CAAC,CAAC;AAQH,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAS;IACnB,KAAK,GAAiB,EAAE,CAAC;IAE1C,YAAY,UAA6B,EAAE;QACzC,iDAAiD;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mCAAmC,CAAC;QAE5E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,wEAAwE;YACrF,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACvF,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,KAAc;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAwB;QAC/C,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,YAAY,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,mBAAmB;gBAC5C,2EAA2E;aAC5E,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import { PluginTool } from './index.js';
3
+ export declare const mizuTaskPayloadSchema: z.ZodObject<{
4
+ description: z.ZodString;
5
+ reward: z.ZodNumber;
6
+ maxParticipantCount: z.ZodNumber;
7
+ }, "strip", z.ZodTypeAny, {
8
+ description: string;
9
+ reward: number;
10
+ maxParticipantCount: number;
11
+ }, {
12
+ description: string;
13
+ reward: number;
14
+ maxParticipantCount: number;
15
+ }>;
16
+ export type MizuTaskPayload = z.infer<typeof mizuTaskPayloadSchema>;
17
+ export interface MizuPluginOptions {
18
+ serviceUrl?: string;
19
+ }
20
+ export declare class MizuPublisherPlugin {
21
+ private readonly serviceUrl;
22
+ private readonly tools;
23
+ constructor(options?: MizuPluginOptions);
24
+ getTools(): PluginTool[];
25
+ executeTool(name: string, input: unknown): Promise<unknown>;
26
+ private createTask;
27
+ }
@@ -0,0 +1,53 @@
1
+ import { fetch } from 'undici';
2
+ import { z } from 'zod';
3
+ // Schema for the Mizu task publisher tool
4
+ export const mizuTaskPayloadSchema = z.object({
5
+ description: z.string().min(1, 'Task description is required'),
6
+ reward: z.number().positive('Reward must be positive'),
7
+ maxParticipantCount: z.number().int().positive('Max participant count must be positive')
8
+ });
9
+ export class MizuPublisherPlugin {
10
+ serviceUrl;
11
+ tools = [];
12
+ constructor(options = {}) {
13
+ // Use the provided URL or fallback to a mock one
14
+ this.serviceUrl = options.serviceUrl ?? 'https://mock-mizu-api.example.com';
15
+ this.tools.push({
16
+ name: 'mizu-task-publisher',
17
+ description: 'Create a Mizu task with description, reward, and max participant count',
18
+ inputSchema: mizuTaskPayloadSchema,
19
+ execute: (rawInput) => this.createTask(mizuTaskPayloadSchema.parse(rawInput))
20
+ });
21
+ }
22
+ getTools() {
23
+ return this.tools;
24
+ }
25
+ async executeTool(name, input) {
26
+ const tool = this.tools.find((t) => t.name === name);
27
+ if (!tool) {
28
+ throw new Error(`Tool ${name} not found`);
29
+ }
30
+ return tool.execute(input);
31
+ }
32
+ async createTask(payload) {
33
+ // Call the service API to create the task
34
+ const response = await fetch(`${this.serviceUrl}/api/tasks`, {
35
+ method: 'POST',
36
+ headers: {
37
+ 'Content-Type': 'application/json'
38
+ },
39
+ body: JSON.stringify({
40
+ description: payload.description,
41
+ reward: payload.reward,
42
+ maxParticipants: payload.maxParticipantCount,
43
+ // You can add additional default payload properties if required by the API
44
+ })
45
+ });
46
+ if (!response.ok) {
47
+ throw new Error(`Failed to create Mizu task: ${response.statusText}`);
48
+ }
49
+ const data = await response.json();
50
+ return data;
51
+ }
52
+ }
53
+ //# sourceMappingURL=mizuPublisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mizuPublisher.js","sourceRoot":"","sources":["../src/mizuPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACzF,CAAC,CAAC;AAQH,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAS;IACnB,KAAK,GAAiB,EAAE,CAAC;IAE1C,YAAY,UAA6B,EAAE;QACzC,iDAAiD;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mCAAmC,CAAC;QAE5E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,wEAAwE;YACrF,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACvF,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,KAAc;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAwB;QAC/C,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,YAAY,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,mBAAmB;gBAC5C,2EAA2E;aAC5E,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { Address, Hex } from 'viem';
2
+ export interface Signer {
3
+ readonly address: Address;
4
+ signMessage(message: string): Promise<Hex>;
5
+ signDigest(digest: Hex): Promise<Hex>;
6
+ }
7
+ export declare class PrivateKeySigner implements Signer {
8
+ private readonly account;
9
+ constructor(privateKey: Hex);
10
+ get address(): Address;
11
+ signMessage(message: string): Promise<Hex>;
12
+ signDigest(digest: Hex): Promise<Hex>;
13
+ }
@@ -0,0 +1,26 @@
1
+ import { hexToBytes } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ export class PrivateKeySigner {
4
+ account;
5
+ constructor(privateKey) {
6
+ this.account = privateKeyToAccount(privateKey);
7
+ }
8
+ get address() {
9
+ return this.account.address;
10
+ }
11
+ signMessage(message) {
12
+ const signMessageFn = this.account.signMessage;
13
+ if (!signMessageFn) {
14
+ throw new Error('Account does not support signMessage');
15
+ }
16
+ return signMessageFn({ message });
17
+ }
18
+ signDigest(digest) {
19
+ const signMessageFn = this.account.signMessage;
20
+ if (!signMessageFn) {
21
+ throw new Error('Account does not support signDigest');
22
+ }
23
+ return signMessageFn({ message: { raw: hexToBytes(digest) } });
24
+ }
25
+ }
26
+ //# sourceMappingURL=signers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signers.js","sourceRoot":"","sources":["../src/signers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAQpD,MAAM,OAAO,gBAAgB;IACV,OAAO,CAAU;IAElC,YAAY,UAAe;QACzB,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,MAAW;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { CancelTaskPayload, CreateTaskPayload, DecisionPayload, FundTaskPayload, SettleTaskPayload, SubmitResponsePayload, TaskResponsesQueryPayload, WorkerResponsesQueryPayload } from './types.js';
2
+ type JsonValue = string | number | boolean | null | JsonValue[] | {
3
+ [key: string]: JsonValue;
4
+ };
5
+ type CanonicalInput = JsonValue | Record<string, unknown> | undefined;
6
+ export declare const canonicalStringify: (payload: CanonicalInput) => string;
7
+ export declare const taskSignaturePayload: (input: CreateTaskPayload) => string;
8
+ export declare const taskFundSignaturePayload: (input: FundTaskPayload) => string;
9
+ export declare const responseSignaturePayload: (input: SubmitResponsePayload) => string;
10
+ export declare const decisionSignaturePayload: (input: DecisionPayload) => string;
11
+ export declare const cancelTaskSignaturePayload: (input: CancelTaskPayload) => string;
12
+ export declare const taskSettleSignaturePayload: (input: SettleTaskPayload & {
13
+ workerAddress: string;
14
+ }) => string;
15
+ export declare const taskResponsesQuerySignaturePayload: (input: TaskResponsesQueryPayload & {
16
+ ownerAddress: string;
17
+ }) => string;
18
+ export declare const workerResponsesQuerySignaturePayload: (input: WorkerResponsesQueryPayload & {
19
+ workerAddress: string;
20
+ }) => string;
21
+ export {};
@@ -0,0 +1,72 @@
1
+ const canonicalize = (value) => {
2
+ if (value === null || value === undefined) {
3
+ return null;
4
+ }
5
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
6
+ return value;
7
+ }
8
+ if (Array.isArray(value)) {
9
+ return value.map((item) => canonicalize(item));
10
+ }
11
+ const entries = Object.entries(value)
12
+ .filter(([, v]) => v !== undefined)
13
+ .sort(([a], [b]) => a.localeCompare(b));
14
+ const normalized = {};
15
+ for (const [key, val] of entries) {
16
+ normalized[key] = canonicalize(val);
17
+ }
18
+ return normalized;
19
+ };
20
+ export const canonicalStringify = (payload) => JSON.stringify(canonicalize(payload));
21
+ export const taskSignaturePayload = (input) => canonicalStringify({
22
+ kind: 'task:create',
23
+ title: input.title,
24
+ content: input.content,
25
+ id: input.id
26
+ });
27
+ export const taskFundSignaturePayload = (input) => canonicalStringify({
28
+ kind: 'task:fund',
29
+ taskId: input.taskId,
30
+ price: input.price,
31
+ token: input.token
32
+ });
33
+ export const responseSignaturePayload = (input) => canonicalStringify({
34
+ kind: 'task:response',
35
+ taskId: input.taskId,
36
+ payload: input.payload,
37
+ id: input.id ?? null
38
+ });
39
+ export const decisionSignaturePayload = (input) => canonicalStringify({
40
+ kind: 'task:decision',
41
+ responseId: input.responseId,
42
+ workerAddress: input.workerAddress,
43
+ price: input.price,
44
+ status: input.status,
45
+ settlementSignature: input.settlementSignature ?? null
46
+ });
47
+ export const cancelTaskSignaturePayload = (input) => canonicalStringify({
48
+ kind: 'task:cancel',
49
+ taskId: input.taskId
50
+ });
51
+ export const taskSettleSignaturePayload = (input) => canonicalStringify({
52
+ kind: 'task:settle',
53
+ taskId: input.taskId,
54
+ responseId: input.responseId,
55
+ workerAddress: input.workerAddress
56
+ });
57
+ export const taskResponsesQuerySignaturePayload = (input) => canonicalStringify({
58
+ kind: 'task:response:query',
59
+ taskId: input.taskId,
60
+ ownerAddress: input.ownerAddress,
61
+ workerAddress: input.workerAddress ?? null,
62
+ pageSize: input.pageSize ?? 50,
63
+ pageNum: input.pageNum ?? 0
64
+ });
65
+ export const workerResponsesQuerySignaturePayload = (input) => canonicalStringify({
66
+ kind: 'worker:response:query',
67
+ workerAddress: input.workerAddress,
68
+ taskId: input.taskId ?? null,
69
+ pageSize: input.pageSize ?? 50,
70
+ pageNum: input.pageNum ?? 0
71
+ });
72
+ //# sourceMappingURL=signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../src/signing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ import { PluginTool } from './index.js';
3
+ export declare const mizuTaskPayloadSchema: z.ZodObject<{
4
+ description: z.ZodString;
5
+ reward: z.ZodNumber;
6
+ maxParticipantCount: z.ZodNumber;
7
+ }, "strip", z.ZodTypeAny, {
8
+ description: string;
9
+ reward: number;
10
+ maxParticipantCount: number;
11
+ }, {
12
+ description: string;
13
+ reward: number;
14
+ maxParticipantCount: number;
15
+ }>;
16
+ export type MizuTaskPayload = z.infer<typeof mizuTaskPayloadSchema>;
17
+ export interface MizuPluginOptions {
18
+ serviceUrl?: string;
19
+ }
20
+ export declare class MizuPublisherPlugin {
21
+ private readonly serviceUrl;
22
+ private readonly tools;
23
+ constructor(options?: MizuPluginOptions);
24
+ getTools(): PluginTool[];
25
+ executeTool(name: string, input: unknown): Promise<unknown>;
26
+ private createTask;
27
+ }
@@ -0,0 +1,53 @@
1
+ import { fetch } from 'undici';
2
+ import { z } from 'zod';
3
+ // Schema for the Mizu task publisher tool
4
+ export const mizuTaskPayloadSchema = z.object({
5
+ description: z.string().min(1, 'Task description is required'),
6
+ reward: z.number().positive('Reward must be positive'),
7
+ maxParticipantCount: z.number().int().positive('Max participant count must be positive')
8
+ });
9
+ export class MizuPublisherPlugin {
10
+ serviceUrl;
11
+ tools = [];
12
+ constructor(options = {}) {
13
+ // Use the provided URL or fallback to a mock one
14
+ this.serviceUrl = options.serviceUrl ?? 'https://mock-mizu-api.example.com';
15
+ this.tools.push({
16
+ name: 'mizu-task-publisher',
17
+ description: 'Create a Mizu task with description, reward, and max participant count',
18
+ inputSchema: mizuTaskPayloadSchema,
19
+ execute: (rawInput) => this.createTask(mizuTaskPayloadSchema.parse(rawInput))
20
+ });
21
+ }
22
+ getTools() {
23
+ return this.tools;
24
+ }
25
+ async executeTool(name, input) {
26
+ const tool = this.tools.find((t) => t.name === name);
27
+ if (!tool) {
28
+ throw new Error(`Tool ${name} not found`);
29
+ }
30
+ return tool.execute(input);
31
+ }
32
+ async createTask(payload) {
33
+ // Call the service API to create the task
34
+ const response = await fetch(`${this.serviceUrl}/api/tasks`, {
35
+ method: 'POST',
36
+ headers: {
37
+ 'Content-Type': 'application/json'
38
+ },
39
+ body: JSON.stringify({
40
+ description: payload.description,
41
+ reward: payload.reward,
42
+ maxParticipants: payload.maxParticipantCount,
43
+ // You can add additional default payload properties if required by the API
44
+ })
45
+ });
46
+ if (!response.ok) {
47
+ throw new Error(`Failed to create Mizu task: ${response.statusText}`);
48
+ }
49
+ const data = await response.json();
50
+ return data;
51
+ }
52
+ }
53
+ //# sourceMappingURL=taskPublisher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskPublisher.js","sourceRoot":"","sources":["../src/taskPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACzF,CAAC,CAAC;AAQH,MAAM,OAAO,mBAAmB;IACb,UAAU,CAAS;IACnB,KAAK,GAAiB,EAAE,CAAC;IAE1C,YAAY,UAA6B,EAAE;QACzC,iDAAiD;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mCAAmC,CAAC;QAE5E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,wEAAwE;YACrF,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,CAAC,QAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACvF,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,KAAc;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAwB;QAC/C,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,YAAY,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,mBAAmB;gBAC5C,2EAA2E;aAC5E,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export interface ParsedTokenIdentifier {
2
+ network: string;
3
+ address: `0x${string}`;
4
+ }
5
+ export declare const parseTokenIdentifier: (token: string) => ParsedTokenIdentifier;
package/dist/token.js ADDED
@@ -0,0 +1,12 @@
1
+ import { getAddress } from 'viem';
2
+ export const parseTokenIdentifier = (token) => {
3
+ const [networkRaw, address] = token.split(':');
4
+ if (!networkRaw || !address) {
5
+ throw new Error('Invalid token identifier');
6
+ }
7
+ return {
8
+ network: networkRaw.toLowerCase(),
9
+ address: getAddress(address)
10
+ };
11
+ };
12
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAOlC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAyB,EAAE;IAC3E,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,WAAW,EAAE;QACjC,OAAO,EAAE,UAAU,CAAC,OAAwB,CAAC;KAC9C,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,187 @@
1
+ import { z } from 'zod';
2
+ declare const addressSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `0x${string}`, string>;
3
+ export declare const createTaskPayloadSchema: z.ZodObject<{
4
+ id: z.ZodString;
5
+ title: z.ZodString;
6
+ content: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ id: string;
9
+ title: string;
10
+ content: string;
11
+ }, {
12
+ id: string;
13
+ title: string;
14
+ content: string;
15
+ }>;
16
+ export declare const fundTaskPayloadSchema: z.ZodObject<{
17
+ taskId: z.ZodString;
18
+ price: z.ZodEffects<z.ZodString, string, string>;
19
+ token: z.ZodString;
20
+ }, "strip", z.ZodTypeAny, {
21
+ taskId: string;
22
+ price: string;
23
+ token: string;
24
+ }, {
25
+ taskId: string;
26
+ price: string;
27
+ token: string;
28
+ }>;
29
+ export declare const submitResponsePayloadSchema: z.ZodObject<{
30
+ id: z.ZodOptional<z.ZodString>;
31
+ taskId: z.ZodString;
32
+ payload: z.ZodString;
33
+ }, "strip", z.ZodTypeAny, {
34
+ taskId: string;
35
+ payload: string;
36
+ id?: string | undefined;
37
+ }, {
38
+ taskId: string;
39
+ payload: string;
40
+ id?: string | undefined;
41
+ }>;
42
+ export declare const decisionPayloadSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
43
+ responseId: z.ZodString;
44
+ workerAddress: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `0x${string}`, string>;
45
+ price: z.ZodString;
46
+ status: z.ZodEnum<["pending", "approved", "rejected"]>;
47
+ settlementSignature: z.ZodOptional<z.ZodString>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ status: "pending" | "approved" | "rejected";
50
+ price: string;
51
+ responseId: string;
52
+ workerAddress: `0x${string}`;
53
+ settlementSignature?: string | undefined;
54
+ }, {
55
+ status: "pending" | "approved" | "rejected";
56
+ price: string;
57
+ responseId: string;
58
+ workerAddress: string;
59
+ settlementSignature?: string | undefined;
60
+ }>, {
61
+ status: "pending" | "approved" | "rejected";
62
+ price: string;
63
+ responseId: string;
64
+ workerAddress: `0x${string}`;
65
+ settlementSignature?: string | undefined;
66
+ }, {
67
+ status: "pending" | "approved" | "rejected";
68
+ price: string;
69
+ responseId: string;
70
+ workerAddress: string;
71
+ settlementSignature?: string | undefined;
72
+ }>, {
73
+ status: "pending" | "approved" | "rejected";
74
+ price: string;
75
+ responseId: string;
76
+ workerAddress: `0x${string}`;
77
+ settlementSignature?: string | undefined;
78
+ }, {
79
+ status: "pending" | "approved" | "rejected";
80
+ price: string;
81
+ responseId: string;
82
+ workerAddress: string;
83
+ settlementSignature?: string | undefined;
84
+ }>;
85
+ export declare const cancelTaskPayloadSchema: z.ZodObject<{
86
+ taskId: z.ZodString;
87
+ }, "strip", z.ZodTypeAny, {
88
+ taskId: string;
89
+ }, {
90
+ taskId: string;
91
+ }>;
92
+ export declare const settleTaskPayloadSchema: z.ZodObject<{
93
+ taskId: z.ZodString;
94
+ responseId: z.ZodString;
95
+ }, "strip", z.ZodTypeAny, {
96
+ taskId: string;
97
+ responseId: string;
98
+ }, {
99
+ taskId: string;
100
+ responseId: string;
101
+ }>;
102
+ export declare const taskQueryPayloadSchema: z.ZodObject<{
103
+ filter: z.ZodDefault<z.ZodObject<{
104
+ publisher: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `0x${string}`, string>>;
105
+ created_at: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
106
+ status: z.ZodOptional<z.ZodEnum<["finished", "draft", "active", "closed"]>>;
107
+ minPrice: z.ZodOptional<z.ZodNumber>;
108
+ keyword: z.ZodOptional<z.ZodString>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ status?: "finished" | "draft" | "active" | "closed" | undefined;
111
+ publisher?: `0x${string}` | undefined;
112
+ created_at?: [number, number] | undefined;
113
+ minPrice?: number | undefined;
114
+ keyword?: string | undefined;
115
+ }, {
116
+ status?: "finished" | "draft" | "active" | "closed" | undefined;
117
+ publisher?: string | undefined;
118
+ created_at?: [number, number] | undefined;
119
+ minPrice?: number | undefined;
120
+ keyword?: string | undefined;
121
+ }>>;
122
+ sortBy: z.ZodDefault<z.ZodOptional<z.ZodEnum<["price", "created_at"]>>>;
123
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
124
+ pageNum: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ filter: {
127
+ status?: "finished" | "draft" | "active" | "closed" | undefined;
128
+ publisher?: `0x${string}` | undefined;
129
+ created_at?: [number, number] | undefined;
130
+ minPrice?: number | undefined;
131
+ keyword?: string | undefined;
132
+ };
133
+ sortBy: "price" | "created_at";
134
+ pageSize: number;
135
+ pageNum: number;
136
+ }, {
137
+ filter?: {
138
+ status?: "finished" | "draft" | "active" | "closed" | undefined;
139
+ publisher?: string | undefined;
140
+ created_at?: [number, number] | undefined;
141
+ minPrice?: number | undefined;
142
+ keyword?: string | undefined;
143
+ } | undefined;
144
+ sortBy?: "price" | "created_at" | undefined;
145
+ pageSize?: number | undefined;
146
+ pageNum?: number | undefined;
147
+ }>;
148
+ export declare const taskResponsesQueryPayloadSchema: z.ZodObject<{
149
+ taskId: z.ZodString;
150
+ workerAddress: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `0x${string}`, string>>;
151
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
152
+ pageNum: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
153
+ }, "strip", z.ZodTypeAny, {
154
+ taskId: string;
155
+ pageSize: number;
156
+ pageNum: number;
157
+ workerAddress?: `0x${string}` | undefined;
158
+ }, {
159
+ taskId: string;
160
+ workerAddress?: string | undefined;
161
+ pageSize?: number | undefined;
162
+ pageNum?: number | undefined;
163
+ }>;
164
+ export declare const workerResponsesQueryPayloadSchema: z.ZodObject<{
165
+ taskId: z.ZodOptional<z.ZodString>;
166
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
167
+ pageNum: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ pageSize: number;
170
+ pageNum: number;
171
+ taskId?: string | undefined;
172
+ }, {
173
+ taskId?: string | undefined;
174
+ pageSize?: number | undefined;
175
+ pageNum?: number | undefined;
176
+ }>;
177
+ export type AddressString = z.infer<typeof addressSchema>;
178
+ export type CreateTaskPayload = z.infer<typeof createTaskPayloadSchema>;
179
+ export type FundTaskPayload = z.infer<typeof fundTaskPayloadSchema>;
180
+ export type SubmitResponsePayload = z.infer<typeof submitResponsePayloadSchema>;
181
+ export type DecisionPayload = z.infer<typeof decisionPayloadSchema>;
182
+ export type CancelTaskPayload = z.infer<typeof cancelTaskPayloadSchema>;
183
+ export type SettleTaskPayload = z.infer<typeof settleTaskPayloadSchema>;
184
+ export type TaskQueryPayload = z.infer<typeof taskQueryPayloadSchema>;
185
+ export type TaskResponsesQueryPayload = z.infer<typeof taskResponsesQueryPayloadSchema>;
186
+ export type WorkerResponsesQueryPayload = z.infer<typeof workerResponsesQueryPayloadSchema>;
187
+ export {};