@wiimdy/openfunderse 0.1.2 → 0.1.3

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
@@ -40,13 +40,11 @@ npx @wiimdy/openfunderse@latest install openfunderse \
40
40
  # initialize bot env + fresh Monad wallet (strategy)
41
41
  npx @wiimdy/openfunderse@latest bot-init \
42
42
  --skill-name strategy \
43
- --env-path .env.strategy \
44
43
  --yes
45
44
 
46
45
  # initialize participant bot env + wallet
47
46
  npx @wiimdy/openfunderse@latest bot-init \
48
47
  --skill-name participant \
49
- --env-path .env.participant \
50
48
  --yes
51
49
  ```
52
50
 
@@ -56,7 +54,7 @@ npx @wiimdy/openfunderse@latest bot-init \
56
54
  - Pack metadata/prompts are copied into `$CODEX_HOME/packs/<pack-name>`.
57
55
  - Use `--force` to overwrite existing installed skills.
58
56
  - `--with-runtime` installs `@wiimdy/openfunderse-agents` into the current project (`package.json` required).
59
- - Env scaffold generation is enabled by default (default path: `.env.openfunderse`).
57
+ - Env scaffold generation is enabled by default (default path: `.env`).
60
58
  - `--env-profile` controls scaffold scope: `strategy` | `participant` | `all` (auto-selected by pack when omitted).
61
59
  - Use `--no-init-env` to skip env scaffold generation.
62
60
  - `--env-path` sets a custom env scaffold path.
@@ -66,6 +64,7 @@ npx @wiimdy/openfunderse@latest bot-init \
66
64
  - Prefer `--env-path` (Node 20+ reserves `--env-file` as a runtime flag).
67
65
  - `bot-init` uses `cast wallet new --json` (Foundry) to generate a new wallet for Monad testnet.
68
66
  - `bot-init` infers role from `--skill-name`, `--env-path`, or `--wallet-name` when `--role` is omitted.
67
+ - `bot-init` writes to `.env` by default. Use `--env-path` to split strategy/participant env files.
69
68
  - It also infers from active skill env hints (`OPENCLAW_SKILL_KEY`, `OPENCLAW_ACTIVE_SKILL`, `SKILL_KEY`, `SKILL_NAME`).
70
69
  - `bot-init` writes role-specific key fields:
71
70
  - `strategy`: `STRATEGY_PRIVATE_KEY`, `BOT_ADDRESS`
@@ -79,8 +79,8 @@ Examples:
79
79
  openfunderse install openfunderse --with-runtime
80
80
  openfunderse install openfunderse-strategy --with-runtime
81
81
  openfunderse install openfunderse --codex-home /tmp/codex-home
82
- openfunderse bot-init --env-path .env.participant --wallet-name participant-bot --yes
83
- openfunderse bot-init --skill-name strategy --env-path .env.strategy --force
82
+ openfunderse bot-init --skill-name participant --wallet-name participant-bot --yes
83
+ openfunderse bot-init --skill-name strategy --force
84
84
  `);
85
85
  }
86
86
 
@@ -342,7 +342,7 @@ async function writeEnvScaffold(options) {
342
342
  const profile = normalizeEnvProfile(rawProfile);
343
343
  const envTarget = options.envFile
344
344
  ? path.resolve(options.envFile)
345
- : path.join(runtimeDir, ".env.openfunderse");
345
+ : path.join(runtimeDir, ".env");
346
346
 
347
347
  const alreadyExists = existsSync(envTarget);
348
348
  if (alreadyExists && !options.force) {
@@ -369,7 +369,7 @@ async function writeEnvScaffold(options) {
369
369
  }
370
370
 
371
371
  function defaultEnvPathForRole(role) {
372
- return path.join(process.cwd(), `.env.${role}`);
372
+ return path.join(process.cwd(), ".env");
373
373
  }
374
374
 
375
375
  function readAssignedEnvValue(content, key) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wiimdy/openfunderse",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Install OpenFunderse skill packs into Codex",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,13 +2,8 @@
2
2
  "name": "openfunderse-agent-pack",
3
3
  "version": "0.1.0",
4
4
  "installCommand": "npx @wiimdy/openfunderse@latest install openfunderse --with-runtime",
5
- "description": "Scaffold manifest for future MoltBot skills/prompts packaging.",
5
+ "description": "Unified OpenFunderse pack with strategy + participant skills.",
6
6
  "bundles": [
7
- {
8
- "id": "clawbot-core",
9
- "skill": "skills/clawbot-core/SKILL.md",
10
- "prompt": "prompts/core/system.md"
11
- },
12
7
  {
13
8
  "id": "strategy",
14
9
  "skill": "skills/openfunderse-strategy/SKILL.md",
@@ -18,11 +13,6 @@
18
13
  "id": "participant",
19
14
  "skill": "skills/openfunderse-participant/SKILL.md",
20
15
  "prompt": "prompts/participant/system.md"
21
- },
22
- {
23
- "id": "relayer",
24
- "skill": "skills/relayer/SKILL.md",
25
- "prompt": "prompts/relayer/system.md"
26
16
  }
27
17
  ],
28
18
  "todo": [
@@ -3,6 +3,7 @@ name: openfunderse-participant
3
3
  description: Participant MoltBot for data mining (claims) and cross-verification (attestations)
4
4
  metadata:
5
5
  openclaw:
6
+ installCommand: npx @wiimdy/openfunderse@latest install openfunderse-participant --with-runtime
6
7
  requires:
7
8
  env:
8
9
  - RELAYER_URL
@@ -24,12 +25,36 @@ The Participant MoltBot is responsible for mining data claims from specified sou
24
25
 
25
26
  ## Quick Start (ClawHub Users)
26
27
 
27
- Install the skill first:
28
+ 1) Install the skill:
28
29
 
29
30
  ```bash
30
31
  npx clawhub@latest install openfunderse-participant
31
32
  ```
32
33
 
34
+ 2) Install runtime + generate env scaffold:
35
+
36
+ ```bash
37
+ npx @wiimdy/openfunderse@latest install openfunderse-participant --with-runtime
38
+ ```
39
+
40
+ 3) Rotate the temporary bootstrap key and write a fresh participant wallet to env:
41
+
42
+ ```bash
43
+ npx @wiimdy/openfunderse@latest bot-init \
44
+ --skill-name participant \
45
+ --yes
46
+ ```
47
+
48
+ 4) Load env for the current shell:
49
+
50
+ ```bash
51
+ set -a; source .env; set +a
52
+ ```
53
+
54
+ Note:
55
+ - The scaffold includes a temporary public key placeholder by default.
56
+ - Always run `bot-init` before funding or running production actions.
57
+
33
58
  ## Credential Scope
34
59
 
35
60
  - `PARTICIPANT_PRIVATE_KEY` (or runtime fallback key) is used only for claim-attestation signing.
@@ -5,6 +5,7 @@ always: false
5
5
  disable-model-invocation: false
6
6
  metadata:
7
7
  openclaw:
8
+ installCommand: npx @wiimdy/openfunderse@latest install openfunderse-strategy --with-runtime
8
9
  requires:
9
10
  env:
10
11
  - RELAYER_URL
@@ -46,41 +47,35 @@ In runtime, use `proposeIntentAndSubmit` to build a canonical proposal first, th
46
47
 
47
48
  ## Quick Start (ClawHub Users)
48
49
 
49
- Install the skill first:
50
+ 1) Install the skill:
50
51
 
51
52
  ```bash
52
53
  npx clawhub@latest install openfunderse-strategy
53
54
  ```
54
55
 
55
- This skill is instruction-only. You need the runtime package:
56
+ 2) Install runtime + generate env scaffold:
56
57
 
57
58
  ```bash
58
- npm init -y && npm i @wiimdy/openfunderse-agents@0.1.1 --ignore-scripts
59
+ npx @wiimdy/openfunderse@latest install openfunderse-strategy --with-runtime
59
60
  ```
60
61
 
61
- Create editable env scaffold in one line:
62
+ 3) Rotate the temporary bootstrap key and write a fresh strategy wallet to env:
62
63
 
63
64
  ```bash
64
- cp node_modules/@wiimdy/openfunderse-agents/.env.strategy.example .env.openfunderse
65
+ npx @wiimdy/openfunderse@latest bot-init \
66
+ --skill-name strategy \
67
+ --yes
65
68
  ```
66
69
 
67
- Verify source before install (recommended):
70
+ 4) Load env for the current shell:
68
71
 
69
72
  ```bash
70
- npm view @wiimdy/openfunderse-agents@0.1.1 repository.url homepage dist.integrity
73
+ set -a; source .env; set +a
71
74
  ```
72
75
 
73
- Then configure env and run commands from:
74
-
75
- - `packages/agents/.env.strategy.example`
76
- - `packages/agents/README.md`
77
-
78
- Runtime sources:
79
-
80
- - npm package: `https://www.npmjs.com/package/@wiimdy/openfunderse-agents`
81
- - repository: `https://github.com/wiimdy/openfunderse/tree/main/packages/agents`
82
-
83
- Do not use `@latest` in production; pin an explicit version and keep lockfile reviewed.
76
+ Note:
77
+ - The scaffold includes a temporary public key placeholder by default.
78
+ - Always run `bot-init` before funding or running production actions.
84
79
 
85
80
  ## Credential Scope
86
81
 
@@ -3,6 +3,7 @@ name: openfunderse-participant
3
3
  description: Participant MoltBot for data mining (claims) and cross-verification (attestations)
4
4
  metadata:
5
5
  openclaw:
6
+ installCommand: npx @wiimdy/openfunderse@latest install openfunderse-participant --with-runtime
6
7
  requires:
7
8
  env:
8
9
  - RELAYER_URL
@@ -24,12 +25,36 @@ The Participant MoltBot is responsible for mining data claims from specified sou
24
25
 
25
26
  ## Quick Start (ClawHub Users)
26
27
 
27
- Install the skill first:
28
+ 1) Install the skill:
28
29
 
29
30
  ```bash
30
31
  npx clawhub@latest install openfunderse-participant
31
32
  ```
32
33
 
34
+ 2) Install runtime + generate env scaffold:
35
+
36
+ ```bash
37
+ npx @wiimdy/openfunderse@latest install openfunderse-participant --with-runtime
38
+ ```
39
+
40
+ 3) Rotate the temporary bootstrap key and write a fresh participant wallet to env:
41
+
42
+ ```bash
43
+ npx @wiimdy/openfunderse@latest bot-init \
44
+ --skill-name participant \
45
+ --yes
46
+ ```
47
+
48
+ 4) Load env for the current shell:
49
+
50
+ ```bash
51
+ set -a; source .env; set +a
52
+ ```
53
+
54
+ Note:
55
+ - The scaffold includes a temporary public key placeholder by default.
56
+ - Always run `bot-init` before funding or running production actions.
57
+
33
58
  ## Credential Scope
34
59
 
35
60
  - `PARTICIPANT_PRIVATE_KEY` (or runtime fallback key) is used only for claim-attestation signing.
@@ -5,6 +5,7 @@ always: false
5
5
  disable-model-invocation: false
6
6
  metadata:
7
7
  openclaw:
8
+ installCommand: npx @wiimdy/openfunderse@latest install openfunderse-strategy --with-runtime
8
9
  requires:
9
10
  env:
10
11
  - RELAYER_URL
@@ -46,41 +47,35 @@ In runtime, use `proposeIntentAndSubmit` to build a canonical proposal first, th
46
47
 
47
48
  ## Quick Start (ClawHub Users)
48
49
 
49
- Install the skill first:
50
+ 1) Install the skill:
50
51
 
51
52
  ```bash
52
53
  npx clawhub@latest install openfunderse-strategy
53
54
  ```
54
55
 
55
- This skill is instruction-only. You need the runtime package:
56
+ 2) Install runtime + generate env scaffold:
56
57
 
57
58
  ```bash
58
- npm init -y && npm i @wiimdy/openfunderse-agents@0.1.1 --ignore-scripts
59
+ npx @wiimdy/openfunderse@latest install openfunderse-strategy --with-runtime
59
60
  ```
60
61
 
61
- Create editable env scaffold in one line:
62
+ 3) Rotate the temporary bootstrap key and write a fresh strategy wallet to env:
62
63
 
63
64
  ```bash
64
- cp node_modules/@wiimdy/openfunderse-agents/.env.strategy.example .env.openfunderse
65
+ npx @wiimdy/openfunderse@latest bot-init \
66
+ --skill-name strategy \
67
+ --yes
65
68
  ```
66
69
 
67
- Verify source before install (recommended):
70
+ 4) Load env for the current shell:
68
71
 
69
72
  ```bash
70
- npm view @wiimdy/openfunderse-agents@0.1.1 repository.url homepage dist.integrity
73
+ set -a; source .env; set +a
71
74
  ```
72
75
 
73
- Then configure env and run commands from:
74
-
75
- - `packages/agents/.env.strategy.example`
76
- - `packages/agents/README.md`
77
-
78
- Runtime sources:
79
-
80
- - npm package: `https://www.npmjs.com/package/@wiimdy/openfunderse-agents`
81
- - repository: `https://github.com/wiimdy/openfunderse/tree/main/packages/agents`
82
-
83
- Do not use `@latest` in production; pin an explicit version and keep lockfile reviewed.
76
+ Note:
77
+ - The scaffold includes a temporary public key placeholder by default.
78
+ - Always run `bot-init` before funding or running production actions.
84
79
 
85
80
  ## Credential Scope
86
81
 
@@ -1,25 +0,0 @@
1
- # ClawBot Core System Prompt
2
-
3
- You are ClawBot Core.
4
-
5
- ## Role routing
6
- - If `role=strategy`, perform strategy lifecycle actions.
7
- - If `role=participant`, perform participant claim lifecycle actions.
8
-
9
- ## Strategy priority
10
- 1. Read relayer state and verify threshold readiness.
11
- 2. Build/validate intent from finalized snapshot only.
12
- 3. Use onchain attest/execute paths only when preconditions pass.
13
- 4. Ack onchain result back to relayer.
14
-
15
- ## Participant priority
16
- 1. Mine deterministic claim payload.
17
- 2. Verify reproducibility before PASS.
18
- 3. Submit canonical claim payload.
19
- 4. Sign/submit attestation with correct EIP-712 domain.
20
-
21
- ## Hard rules
22
- - No secret leakage.
23
- - No fabricated data.
24
- - No bypass of SDK canonical hashing/signing paths.
25
- - Return structured JSON outputs.
@@ -1,14 +0,0 @@
1
- # Relayer System Prompt
2
-
3
- You are the relayer orchestration assistant for Openfunderse.
4
-
5
- ## Objective
6
- - Validate fund/bot authorization boundaries.
7
- - Route claims, attestations, and intent submissions safely.
8
- - Surface deterministic errors and retryable states clearly.
9
-
10
- ## Hard rules
11
- - Enforce bot scope and fund role checks on every write endpoint.
12
- - Reject malformed payloads and bigint/string mismatches.
13
- - Never bypass allowlist, threshold, or signature verification steps.
14
- - Keep API responses structured and machine-consumable.
@@ -1,157 +0,0 @@
1
- ---
2
- name: clawbot-core
3
- description: Unified ClawBot skill for strategy and participant actions over relayer and onchain contracts.
4
- version: 1.0.0
5
- metadata:
6
- openclaw:
7
- requires:
8
- env:
9
- - RELAYER_URL
10
- - BOT_ID
11
- - BOT_API_KEY
12
- - FUND_ID
13
- - RPC_URL
14
- - CHAIN_ID
15
- bins:
16
- - node
17
- - npm
18
- primaryEnv: RELAYER_URL
19
- skillKey: clawbot-core
20
- ---
21
-
22
- # ClawBot Core Skill
23
-
24
- Unified runtime entrypoint:
25
- - `npm run clawbot:run -w @claw/agents -- --role <strategy|participant> --action <action> ...`
26
-
27
- ## Global Input Contract
28
- ```json
29
- {
30
- "role": "strategy | participant",
31
- "action": "string",
32
- "params": {
33
- "fundId": "string",
34
- "...": "action specific"
35
- }
36
- }
37
- ```
38
-
39
- ## Strategy Actions
40
-
41
- ### `propose_intent`
42
- CLI mapping: `strategy-propose`
43
- ```json
44
- {
45
- "fundId": "string",
46
- "intentFile": "/path/intent.json",
47
- "executionRouteFile": "/path/route.json",
48
- "maxNotional": "optional bigint",
49
- "intentUri": "optional string"
50
- }
51
- ```
52
-
53
- Intent JSON schema:
54
- ```json
55
- {
56
- "intentVersion": "V1",
57
- "vault": "0x...",
58
- "action": "BUY | SELL",
59
- "tokenIn": "0x...",
60
- "tokenOut": "0x...",
61
- "amountIn": "bigint string",
62
- "minAmountOut": "bigint string",
63
- "deadline": "unix seconds string",
64
- "maxSlippageBps": "bigint string",
65
- "snapshotHash": "0x<32bytes>"
66
- }
67
- ```
68
-
69
- Execution route JSON schema:
70
- ```json
71
- {
72
- "tokenIn": "0x...",
73
- "tokenOut": "0x...",
74
- "quoteAmountOut": "bigint string",
75
- "minAmountOut": "bigint string",
76
- "adapter": "0x...",
77
- "adapterData": "0x..."
78
- }
79
- ```
80
-
81
- ### `dry_run_intent_execution`
82
- CLI mapping: `strategy-dry-run-intent`
83
- ```json
84
- {
85
- "intentHash": "0x<32bytes>",
86
- "intentFile": "/path/intent.json",
87
- "executionRouteFile": "/path/route.json",
88
- "coreAddress": "optional 0x..., defaults CLAW_CORE_ADDRESS"
89
- }
90
- ```
91
- Output includes:
92
- - `pass` boolean
93
- - full `dryRun` struct from `ClawCore.dryRunIntentExecution`
94
-
95
- ### `attest_intent_onchain`
96
- CLI mapping: `strategy-attest-onchain`
97
- Required params:
98
- ```json
99
- { "fundId": "string", "intentHash": "0x<32bytes>" }
100
- ```
101
-
102
- ### `execute_intent_onchain`
103
- CLI mapping: `strategy-execute-ready`
104
- Required params:
105
- ```json
106
- { "fundId": "string" }
107
- ```
108
-
109
- ## Participant Actions
110
-
111
- ### `mine_claim`
112
- CLI mapping: `participant-mine`
113
- ```json
114
- {
115
- "fundId": "string",
116
- "epochId": 1,
117
- "sourceRef": "https://...",
118
- "tokenAddress": "0x..."
119
- }
120
- ```
121
-
122
- ### `verify_claim`
123
- CLI mapping: `participant-verify`
124
- ```json
125
- {
126
- "claimFile": "/path/claim.json",
127
- "reproducible": false,
128
- "maxDataAgeSeconds": 300
129
- }
130
- ```
131
-
132
- ### `submit_claim`
133
- CLI mapping: `participant-submit`
134
- ```json
135
- {
136
- "claimFile": "/path/claim.json",
137
- "submit": true
138
- }
139
- ```
140
-
141
- ### `attest_claim`
142
- CLI mapping: `participant-attest`
143
- ```json
144
- {
145
- "fundId": "string",
146
- "epochId": 1,
147
- "claimHash": "0x<32bytes>",
148
- "submit": true
149
- }
150
- ```
151
-
152
- ## Safety Rules
153
- 1. Fail closed when relayer auth/scope/role checks fail.
154
- 2. Never bypass SDK canonical hashing and EIP-712 signing.
155
- 3. Use `dry_run_intent_execution` before execute in production flows.
156
- 4. Keep role separation in API auth even if crawler/verifier share one wallet.
157
- 5. For participant submit/attest, require explicit submit gating (`--submit` + `PARTICIPANT_AUTO_SUBMIT=true`).
@@ -1,10 +0,0 @@
1
- # Relayer Skill
2
-
3
- Purpose:
4
- - Define relayer-support MoltBot behavior for submission orchestration.
5
-
6
- Responsibilities:
7
- - Validate bot scope and fund-role authorization for every write call.
8
- - Orchestrate claim/intent submission pipelines with deterministic retry policy.
9
- - Enforce nonce/expiry constraints and surface retryable vs terminal errors.
10
- - Emit operator-friendly status with request IDs and subject hashes.