dexe-mcp 0.1.5 → 0.2.0

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.
Files changed (89) hide show
  1. package/.mcp.example.json +12 -2
  2. package/CHANGELOG.md +33 -0
  3. package/FUTURE.md +26 -5
  4. package/README.md +80 -195
  5. package/dist/config.d.ts +10 -0
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +24 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/lib/addresses.d.ts +57 -0
  10. package/dist/lib/addresses.d.ts.map +1 -0
  11. package/dist/lib/addresses.js +83 -0
  12. package/dist/lib/addresses.js.map +1 -0
  13. package/dist/lib/calldata.d.ts +32 -0
  14. package/dist/lib/calldata.d.ts.map +1 -0
  15. package/dist/lib/calldata.js +28 -0
  16. package/dist/lib/calldata.js.map +1 -0
  17. package/dist/lib/govEnums.d.ts +12 -0
  18. package/dist/lib/govEnums.d.ts.map +1 -0
  19. package/dist/lib/govEnums.js +35 -0
  20. package/dist/lib/govEnums.js.map +1 -0
  21. package/dist/lib/ipfs.d.ts +60 -0
  22. package/dist/lib/ipfs.d.ts.map +1 -0
  23. package/dist/lib/ipfs.js +167 -0
  24. package/dist/lib/ipfs.js.map +1 -0
  25. package/dist/lib/multicall.d.ts +33 -0
  26. package/dist/lib/multicall.d.ts.map +1 -0
  27. package/dist/lib/multicall.js +46 -0
  28. package/dist/lib/multicall.js.map +1 -0
  29. package/dist/lib/proposalCatalog.d.ts +45 -0
  30. package/dist/lib/proposalCatalog.d.ts.map +1 -0
  31. package/dist/lib/proposalCatalog.js +416 -0
  32. package/dist/lib/proposalCatalog.js.map +1 -0
  33. package/dist/lib/subgraph.d.ts +15 -0
  34. package/dist/lib/subgraph.d.ts.map +1 -0
  35. package/dist/lib/subgraph.js +37 -0
  36. package/dist/lib/subgraph.js.map +1 -0
  37. package/dist/tools/dao.d.ts +4 -0
  38. package/dist/tools/dao.d.ts.map +1 -0
  39. package/dist/tools/dao.js +242 -0
  40. package/dist/tools/dao.js.map +1 -0
  41. package/dist/tools/daoDeploy.d.ts +4 -0
  42. package/dist/tools/daoDeploy.d.ts.map +1 -0
  43. package/dist/tools/daoDeploy.js +323 -0
  44. package/dist/tools/daoDeploy.js.map +1 -0
  45. package/dist/tools/index.d.ts.map +1 -1
  46. package/dist/tools/index.js +24 -0
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/tools/ipfs.d.ts +6 -0
  49. package/dist/tools/ipfs.d.ts.map +1 -0
  50. package/dist/tools/ipfs.js +310 -0
  51. package/dist/tools/ipfs.js.map +1 -0
  52. package/dist/tools/proposal.d.ts +4 -0
  53. package/dist/tools/proposal.d.ts.map +1 -0
  54. package/dist/tools/proposal.js +199 -0
  55. package/dist/tools/proposal.js.map +1 -0
  56. package/dist/tools/proposalBuild.d.ts +4 -0
  57. package/dist/tools/proposalBuild.d.ts.map +1 -0
  58. package/dist/tools/proposalBuild.js +357 -0
  59. package/dist/tools/proposalBuild.js.map +1 -0
  60. package/dist/tools/proposalBuildComplex.d.ts +4 -0
  61. package/dist/tools/proposalBuildComplex.d.ts.map +1 -0
  62. package/dist/tools/proposalBuildComplex.js +700 -0
  63. package/dist/tools/proposalBuildComplex.js.map +1 -0
  64. package/dist/tools/proposalBuildInternal.d.ts +4 -0
  65. package/dist/tools/proposalBuildInternal.d.ts.map +1 -0
  66. package/dist/tools/proposalBuildInternal.js +211 -0
  67. package/dist/tools/proposalBuildInternal.js.map +1 -0
  68. package/dist/tools/proposalBuildMore.d.ts +4 -0
  69. package/dist/tools/proposalBuildMore.d.ts.map +1 -0
  70. package/dist/tools/proposalBuildMore.js +436 -0
  71. package/dist/tools/proposalBuildMore.js.map +1 -0
  72. package/dist/tools/proposalBuildOffchain.d.ts +4 -0
  73. package/dist/tools/proposalBuildOffchain.d.ts.map +1 -0
  74. package/dist/tools/proposalBuildOffchain.js +386 -0
  75. package/dist/tools/proposalBuildOffchain.js.map +1 -0
  76. package/dist/tools/read.d.ts +4 -0
  77. package/dist/tools/read.d.ts.map +1 -0
  78. package/dist/tools/read.js +353 -0
  79. package/dist/tools/read.js.map +1 -0
  80. package/dist/tools/vote.d.ts +4 -0
  81. package/dist/tools/vote.d.ts.map +1 -0
  82. package/dist/tools/vote.js +196 -0
  83. package/dist/tools/vote.js.map +1 -0
  84. package/dist/tools/voteBuild.d.ts +4 -0
  85. package/dist/tools/voteBuild.d.ts.map +1 -0
  86. package/dist/tools/voteBuild.js +563 -0
  87. package/dist/tools/voteBuild.js.map +1 -0
  88. package/package.json +9 -4
  89. package/PLAN.md +0 -132
@@ -0,0 +1,416 @@
1
+ export const PROPOSAL_CATALOG = [
2
+ // ---------- External (on-chain, call GovPool.createProposal, needs IPFS) ----------
3
+ {
4
+ id: "external.modify_dao_profile",
5
+ category: "external",
6
+ name: "Modify DAO Profile",
7
+ formPath: "src/forms/createProposal/external/ModifyDaoProfileForm",
8
+ effect: "Update DAO descriptionURL pointer",
9
+ target: "GovPool.editDescriptionURL(string)",
10
+ needsIpfs: true,
11
+ gating: [],
12
+ mcpTool: "dexe_proposal_build_modify_dao_profile",
13
+ implemented: true,
14
+ },
15
+ {
16
+ id: "external.change_voting_settings",
17
+ category: "external",
18
+ name: "Change Voting Settings",
19
+ formPath: "src/forms/createProposal/external/ChangeVotingSettingsForm",
20
+ effect: "Add or edit ProposalSettings on GovSettings (quorum, duration, etc.)",
21
+ target: "GovSettings.addSettings / editSettings (encoded as actionsOnFor)",
22
+ needsIpfs: true,
23
+ gating: [],
24
+ mcpTool: "dexe_proposal_build_change_voting_settings",
25
+ implemented: true,
26
+ },
27
+ {
28
+ id: "external.token_distribution",
29
+ category: "external",
30
+ name: "Token Distribution",
31
+ formPath: "src/forms/createProposal/external/TokenDistributionForm",
32
+ effect: "Distribute tokens via DistributionProposal.execute(proposalId, token, amount)",
33
+ target: "DistributionProposal.execute(uint256,address,uint256)",
34
+ needsIpfs: true,
35
+ gating: [],
36
+ mcpTool: "dexe_proposal_build_token_distribution",
37
+ implemented: true,
38
+ },
39
+ {
40
+ id: "external.token_sale",
41
+ category: "external",
42
+ name: "Token Sale (create tier)",
43
+ formPath: "src/forms/createProposal/external/TokenSaleForm",
44
+ effect: "Launch a new token sale tier",
45
+ target: "TokenSaleProposal.createTiers(ITier[])",
46
+ needsIpfs: true,
47
+ gating: [],
48
+ mcpTool: "dexe_proposal_build_token_sale",
49
+ implemented: true,
50
+ },
51
+ {
52
+ id: "external.token_transfer",
53
+ category: "external",
54
+ name: "Token Transfer (treasury → address)",
55
+ formPath: "src/forms/createProposal/external/TokenTransferForm",
56
+ effect: "Transfer ERC20 from DAO treasury to a single recipient",
57
+ target: "ERC20.transfer (as actionsOnFor on the token contract)",
58
+ needsIpfs: true,
59
+ gating: [],
60
+ mcpTool: "dexe_proposal_build_token_transfer",
61
+ implemented: true,
62
+ },
63
+ {
64
+ id: "external.token_sale_recover",
65
+ category: "external",
66
+ name: "Recover Token Sale",
67
+ formPath: "src/forms/createProposal/external/TokenSaleRecoverForm",
68
+ effect: "Recover unsold tokens from tiers",
69
+ target: "TokenSaleProposal.recover(uint256[] tierIds)",
70
+ needsIpfs: true,
71
+ gating: [],
72
+ mcpTool: "dexe_proposal_build_token_sale_recover",
73
+ implemented: true,
74
+ },
75
+ {
76
+ id: "external.withdraw_treasury",
77
+ category: "external",
78
+ name: "Withdraw from Treasury",
79
+ formPath: "src/forms/createProposal/external/WithdrawForm",
80
+ effect: "Withdraw native or ERC20 from DAO treasury",
81
+ target: "GovPool.withdraw(receiver, amount, nftIds) — treasury lives on GovPool itself",
82
+ needsIpfs: true,
83
+ gating: [],
84
+ mcpTool: "dexe_proposal_build_withdraw_treasury",
85
+ implemented: true,
86
+ },
87
+ {
88
+ id: "external.manage_validators",
89
+ category: "external",
90
+ name: "Manage Validators (add/remove/balance)",
91
+ formPath: "src/forms/createProposal/external/ManageValidatorsForm",
92
+ effect: "Direct call to GovValidators.changeBalances(balances, users). Set balance=0 to remove.",
93
+ target: "GovValidators.changeBalances(uint256[], address[])",
94
+ needsIpfs: true,
95
+ gating: [],
96
+ mcpTool: "dexe_proposal_build_manage_validators",
97
+ implemented: true,
98
+ },
99
+ {
100
+ id: "external.delegate_tokens_to_expert",
101
+ category: "external",
102
+ name: "Delegate Tokens to Expert",
103
+ formPath: "src/forms/createProposal/external/DelegateOrRevokeTokensForm",
104
+ effect: "Delegate DAO treasury tokens/NFTs to an expert address",
105
+ target: "GovPool.delegateTreasury(delegatee, amount, nftIds)",
106
+ needsIpfs: true,
107
+ gating: ["expert"],
108
+ mcpTool: "dexe_proposal_build_delegate_to_expert",
109
+ implemented: true,
110
+ },
111
+ {
112
+ id: "external.revoke_tokens_from_expert",
113
+ category: "external",
114
+ name: "Revoke Tokens from Expert",
115
+ formPath: "src/forms/createProposal/external/DelegateOrRevokeTokensForm",
116
+ effect: "Undelegate treasury tokens/NFTs from an expert",
117
+ target: "GovPool.undelegateTreasury(delegatee, amount, nftIds)",
118
+ needsIpfs: true,
119
+ gating: ["expert"],
120
+ mcpTool: "dexe_proposal_build_revoke_from_expert",
121
+ implemented: true,
122
+ },
123
+ {
124
+ id: "external.validators_allocation",
125
+ category: "external",
126
+ name: "Validators Allocation",
127
+ formPath: "src/forms/createProposal/external/ValidatorsAllocationForm",
128
+ effect: "Reallocate validator stake weights (use manage_validators wrapper)",
129
+ target: "GovValidators.changeBalances",
130
+ needsIpfs: true,
131
+ gating: ["validator"],
132
+ mcpTool: "dexe_proposal_build_manage_validators",
133
+ implemented: true,
134
+ },
135
+ {
136
+ id: "external.add_local_expert",
137
+ category: "external",
138
+ name: "Add Local Expert",
139
+ formPath: "src/forms/createProposal/external/ExpertApplicationForm",
140
+ effect: "Grant local-expert role to an address (mint ExpertNft)",
141
+ target: "ExpertNft.mint(address, uri) — scope='local'",
142
+ needsIpfs: true,
143
+ gating: ["expert"],
144
+ mcpTool: "dexe_proposal_build_add_expert",
145
+ implemented: true,
146
+ },
147
+ {
148
+ id: "external.add_global_expert",
149
+ category: "external",
150
+ name: "Add Global Expert",
151
+ formPath: "src/forms/createProposal/external/ExpertApplicationForm",
152
+ effect: "Grant global-expert role (DeXe-wide)",
153
+ target: "DeXeExpertNft.mint(address, uri) — scope='global'",
154
+ needsIpfs: true,
155
+ gating: ["expert"],
156
+ mcpTool: "dexe_proposal_build_add_expert",
157
+ implemented: true,
158
+ },
159
+ {
160
+ id: "external.remove_local_expert",
161
+ category: "external",
162
+ name: "Remove Local Expert",
163
+ formPath: "src/forms/createProposal/external/ExpertRemovalForm",
164
+ effect: "Revoke local-expert role (burn ExpertNft)",
165
+ target: "ExpertNft.burn(address) — scope='local'",
166
+ needsIpfs: true,
167
+ gating: ["expert"],
168
+ mcpTool: "dexe_proposal_build_remove_expert",
169
+ implemented: true,
170
+ },
171
+ {
172
+ id: "external.remove_global_expert",
173
+ category: "external",
174
+ name: "Remove Global Expert",
175
+ formPath: "src/forms/createProposal/external/ExpertRemovalForm",
176
+ effect: "Revoke global-expert role (burn DeXeExpertNft)",
177
+ target: "DeXeExpertNft.burn(address) — scope='global'",
178
+ needsIpfs: true,
179
+ gating: ["expert"],
180
+ mcpTool: "dexe_proposal_build_remove_expert",
181
+ implemented: true,
182
+ },
183
+ {
184
+ id: "external.reward_multiplier",
185
+ category: "external",
186
+ name: "Reward Multiplier (set address / set URI / mint)",
187
+ formPath: "src/forms/createProposal/external/RewardMultiplierForm",
188
+ effect: "Manage reward-multiplier NFT (3 modes)",
189
+ target: "GovPool.setNftMultiplierAddress / ERC721Multiplier.setURI / .mint",
190
+ needsIpfs: true,
191
+ gating: ["expert"],
192
+ mcpTool: "dexe_proposal_build_reward_multiplier",
193
+ implemented: true,
194
+ },
195
+ {
196
+ id: "external.apply_to_dao",
197
+ category: "external",
198
+ name: "Apply to DAO",
199
+ formPath: "src/forms/createProposal/external/ApplyToDaoForm",
200
+ effect: "Grant tokens from DAO treasury (transfer + optional mint for shortfall)",
201
+ target: "ERC20.transfer [+ ERC20Gov.mint if needed]",
202
+ needsIpfs: true,
203
+ gating: [],
204
+ mcpTool: "dexe_proposal_build_apply_to_dao",
205
+ implemented: true,
206
+ },
207
+ {
208
+ id: "external.blacklist",
209
+ category: "external",
210
+ name: "Blacklist Management",
211
+ formPath: "src/forms/createProposal/external/BlacklistManagementForm",
212
+ effect: "Add/remove addresses from ERC20Gov blacklist (1-2 actions)",
213
+ target: "ERC20Gov.blacklist(address[], bool)",
214
+ needsIpfs: true,
215
+ gating: [],
216
+ mcpTool: "dexe_proposal_build_blacklist",
217
+ implemented: true,
218
+ },
219
+ {
220
+ id: "external.custom_abi",
221
+ category: "external",
222
+ name: "Arbitrary Contract Call (ABI)",
223
+ formPath: "src/forms/createProposal/external/AbiForm",
224
+ effect: "User supplies target + method + args; we ABI-encode",
225
+ target: "Any contract (user-specified)",
226
+ needsIpfs: true,
227
+ gating: [],
228
+ mcpTool: "dexe_proposal_build_custom_abi",
229
+ implemented: true,
230
+ },
231
+ {
232
+ id: "external.manual_calldata",
233
+ category: "external",
234
+ name: "Manual Calldata Entry",
235
+ formPath: "src/forms/createProposal/external/ManualForm",
236
+ effect: "Raw {target, callData, value}[] — no encoding",
237
+ target: "Any",
238
+ needsIpfs: true,
239
+ gating: [],
240
+ mcpTool: "dexe_proposal_build_external",
241
+ implemented: true,
242
+ },
243
+ {
244
+ id: "external.new_proposal_type",
245
+ category: "external",
246
+ name: "Create Custom Proposal Type (settings template)",
247
+ formPath: "src/forms/createProposal/external/NewProposalTypeForm",
248
+ effect: "Register new ProposalSettings + executor binding (2 actions)",
249
+ target: "GovSettings.addSettings + GovSettings.changeExecutors",
250
+ needsIpfs: true,
251
+ gating: [],
252
+ mcpTool: "dexe_proposal_build_new_proposal_type",
253
+ implemented: true,
254
+ },
255
+ {
256
+ id: "external.change_math_model",
257
+ category: "external",
258
+ name: "Change Proposal Math Model",
259
+ formPath: "src/forms/createProposal/external/ChangeMathModelForm",
260
+ effect: "Swap voting-power math contract (linear / polynomial / custom)",
261
+ target: "GovPool.changeVotePower(address)",
262
+ needsIpfs: true,
263
+ gating: [],
264
+ mcpTool: "dexe_proposal_build_change_math_model",
265
+ implemented: true,
266
+ },
267
+ {
268
+ id: "external.enable_staking",
269
+ category: "external",
270
+ name: "Enable Staking",
271
+ formPath: "src/forms/createProposal/external/EnableStakingForm",
272
+ effect: "Frontend routes this via `new_proposal_type` — register settings + bind StakingProposal executor",
273
+ target: "GovSettings.addSettings + changeExecutors (via new_proposal_type)",
274
+ needsIpfs: true,
275
+ gating: [],
276
+ mcpTool: "dexe_proposal_build_new_proposal_type",
277
+ implemented: true,
278
+ },
279
+ {
280
+ id: "external.create_staking_tier",
281
+ category: "external",
282
+ name: "Create Staking",
283
+ formPath: "src/forms/createProposal/external/CreateStakingTierForm",
284
+ effect: "Create a staking pool (reward token + duration)",
285
+ target: "StakingProposal.createStaking(address,uint256,uint256,uint256,string)",
286
+ needsIpfs: true,
287
+ gating: [],
288
+ mcpTool: "dexe_proposal_build_create_staking_tier",
289
+ implemented: true,
290
+ },
291
+ // ---------- Internal (GovValidators.createInternalProposal) ----------
292
+ {
293
+ id: "internal.change_validator_balances",
294
+ category: "internal",
295
+ name: "Change Validator Balances",
296
+ formPath: "src/forms/createProposal/internal/ManageValidatorsForm",
297
+ effect: "Directly change validator stake amounts (type 0). Set balance=0 to remove.",
298
+ target: "GovValidators.createInternalProposal(type=0, url, data) — data=changeBalances(balances,users)",
299
+ needsIpfs: true,
300
+ gating: ["validator"],
301
+ mcpTool: "dexe_proposal_build_change_validator_balances",
302
+ implemented: true,
303
+ },
304
+ {
305
+ id: "internal.change_validator_settings",
306
+ category: "internal",
307
+ name: "Change Validator Settings",
308
+ formPath: "src/forms/createProposal/internal/ChangeVotingSettingsForm",
309
+ effect: "Change validator voting duration / executionDelay / quorum (type 1)",
310
+ target: "GovValidators.createInternalProposal(type=1, url, data) — data=changeSettings(duration,executionDelay,quorum)",
311
+ needsIpfs: true,
312
+ gating: ["validator"],
313
+ mcpTool: "dexe_proposal_build_change_validator_settings",
314
+ implemented: true,
315
+ },
316
+ {
317
+ id: "internal.monthly_withdraw",
318
+ category: "internal",
319
+ name: "Monthly Validator Withdraw",
320
+ formPath: "src/forms/createProposal/internal/MonthlyWithdrawForm",
321
+ effect: "Pay validators from treasury (multi-token supported) (type 2)",
322
+ target: "GovValidators.createInternalProposal(type=2, url, data) — data=monthlyWithdraw(tokens[],amounts[],destination)",
323
+ needsIpfs: true,
324
+ gating: ["validator"],
325
+ mcpTool: "dexe_proposal_build_monthly_withdraw",
326
+ implemented: true,
327
+ },
328
+ {
329
+ id: "internal.offchain_proposal",
330
+ category: "internal",
331
+ name: "Off-chain Internal Proposal (validators vote on off-chain result)",
332
+ formPath: "src/forms/createProposal/internal/EmptyTxForm",
333
+ effect: "Validators vote to attest an off-chain result (type 3, empty data bytes)",
334
+ target: "GovValidators.createInternalProposal(type=3, url, 0x)",
335
+ needsIpfs: true,
336
+ gating: ["validator"],
337
+ mcpTool: "dexe_proposal_build_offchain_internal_proposal",
338
+ implemented: true,
339
+ },
340
+ // ---------- Off-chain (DeXe backend API, no on-chain tx) ----------
341
+ {
342
+ id: "offchain.single_option",
343
+ category: "offchain",
344
+ name: "Single-option Off-chain Voting",
345
+ formPath: "src/forms/createProposal/offchain/TypedProposaForm",
346
+ effect: "Pick one of N options, tallied off-chain",
347
+ target: "POST /integrations/voting/proposals (voting_type=one_of)",
348
+ needsIpfs: false,
349
+ gating: [],
350
+ mcpTool: "dexe_proposal_build_offchain_single_option",
351
+ implemented: true,
352
+ },
353
+ {
354
+ id: "offchain.multi_option",
355
+ category: "offchain",
356
+ name: "Multi-option Off-chain Voting",
357
+ formPath: "src/forms/createProposal/offchain/TypedProposaForm",
358
+ effect: "Pick any subset of N options",
359
+ target: "POST /integrations/voting/proposals (voting_type=multiple_of)",
360
+ needsIpfs: false,
361
+ gating: [],
362
+ mcpTool: "dexe_proposal_build_offchain_multi_option",
363
+ implemented: true,
364
+ },
365
+ {
366
+ id: "offchain.for_against",
367
+ category: "offchain",
368
+ name: "For/Against Off-chain Voting",
369
+ formPath: "src/forms/createProposal/offchain/TypedProposaForm",
370
+ effect: "Binary vote (default labels: For / Against)",
371
+ target: "POST /integrations/voting/proposals (voting_type=for_against)",
372
+ needsIpfs: false,
373
+ gating: [],
374
+ mcpTool: "dexe_proposal_build_offchain_for_against",
375
+ implemented: true,
376
+ },
377
+ {
378
+ id: "offchain.change_voting_settings",
379
+ category: "offchain",
380
+ name: "Change Off-chain Voting Settings",
381
+ formPath: "src/forms/createProposal/offchain/ChangeVotingSettingsForm",
382
+ effect: "Update DAO-wide off-chain voting parameters",
383
+ target: "POST /integrations/voting/proposals (attributes.type=edit_proposal_type)",
384
+ needsIpfs: false,
385
+ gating: [],
386
+ mcpTool: "dexe_proposal_build_offchain_settings",
387
+ implemented: true,
388
+ },
389
+ {
390
+ id: "offchain.new_template",
391
+ category: "offchain",
392
+ name: "Save Voting Template",
393
+ formPath: "src/forms/createProposal/offchain/NewTemplateForm",
394
+ effect: "Persist a reusable voting-template record",
395
+ target: "POST /integrations/voting/proposals (attributes.type=create_proposal_type)",
396
+ needsIpfs: false,
397
+ gating: [],
398
+ mcpTool: "dexe_proposal_build_offchain_settings",
399
+ implemented: true,
400
+ },
401
+ ];
402
+ /** Metadata JSON shape used by the frontend for every external proposal. */
403
+ export const EXTERNAL_METADATA_SHAPE = {
404
+ proposalName: "string (required)",
405
+ proposalDescription: "string (required, markdown/slate)",
406
+ category: "string (e.g. 'Token Transfer', 'Manage Validators')",
407
+ isMeta: "boolean (default false)",
408
+ changes: "object (type-specific structured payload for indexing, optional)",
409
+ };
410
+ export const INTERNAL_METADATA_SHAPE = {
411
+ proposalName: "string (required)",
412
+ proposalDescription: "string",
413
+ category: "string (ValidatorBalances | ValidatorSettings | MonthlyWithdraw | Offchain)",
414
+ changes: "object (type-specific)",
415
+ };
416
+ //# sourceMappingURL=proposalCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposalCatalog.js","sourceRoot":"","sources":["../../src/lib/proposalCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Minimal GraphQL fetcher for The Graph subgraphs. Uses global `fetch` (Node
3
+ * 18+). We avoid `graphql-request` as a dep for now — the calls we make are
4
+ * simple enough.
5
+ */
6
+ export interface GqlResponse<T> {
7
+ data?: T;
8
+ errors?: Array<{
9
+ message: string;
10
+ }>;
11
+ }
12
+ export declare function gqlRequest<T>(endpoint: string, query: string, variables?: Record<string, unknown>): Promise<T>;
13
+ /** Ported from frontend `/src/gql/interactions.ts`. */
14
+ export declare const VOTES_BY_PROPOSAL_QUERY = "\n query VotesByProposal($pool: Bytes!, $proposalId: BigInt!, $first: Int!, $skip: Int!) {\n votes(\n where: { pool: $pool, proposalId: $proposalId }\n first: $first\n skip: $skip\n orderBy: timestamp\n orderDirection: desc\n ) {\n id\n voter\n isVoteFor\n totalRawVoted\n timestamp\n transactionHash\n }\n }\n";
15
+ //# sourceMappingURL=subgraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../../src/lib/subgraph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC;AAED,wBAAsB,UAAU,CAAC,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED,uDAAuD;AACvD,eAAO,MAAM,uBAAuB,6XAiBnC,CAAC"}
@@ -0,0 +1,37 @@
1
+ export async function gqlRequest(endpoint, query, variables) {
2
+ const res = await fetch(endpoint, {
3
+ method: "POST",
4
+ headers: { "Content-Type": "application/json" },
5
+ body: JSON.stringify({ query, variables }),
6
+ });
7
+ if (!res.ok) {
8
+ throw new Error(`Subgraph HTTP ${res.status} ${res.statusText}`);
9
+ }
10
+ const body = (await res.json());
11
+ if (body.errors?.length) {
12
+ throw new Error(`Subgraph errors: ${body.errors.map((e) => e.message).join("; ")}`);
13
+ }
14
+ if (!body.data)
15
+ throw new Error("Subgraph returned empty data");
16
+ return body.data;
17
+ }
18
+ /** Ported from frontend `/src/gql/interactions.ts`. */
19
+ export const VOTES_BY_PROPOSAL_QUERY = /* GraphQL */ `
20
+ query VotesByProposal($pool: Bytes!, $proposalId: BigInt!, $first: Int!, $skip: Int!) {
21
+ votes(
22
+ where: { pool: $pool, proposalId: $proposalId }
23
+ first: $first
24
+ skip: $skip
25
+ orderBy: timestamp
26
+ orderDirection: desc
27
+ ) {
28
+ id
29
+ voter
30
+ isVoteFor
31
+ totalRawVoted
32
+ timestamp
33
+ transactionHash
34
+ }
35
+ }
36
+ `;
37
+ //# sourceMappingURL=subgraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/lib/subgraph.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,KAAa,EACb,SAAmC;IAEnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAC3C,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;CAiBpD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolContext } from "./context.js";
3
+ export declare function registerDaoTools(server: McpServer, ctx: ToolContext): void;
4
+ //# sourceMappingURL=dao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dao.d.ts","sourceRoot":"","sources":["../../src/tools/dao.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAwBhD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAe1E"}