clawpowers 2.2.5 → 2.2.7

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 (138) hide show
  1. package/CHANGELOG.md +186 -160
  2. package/COMPATIBILITY.md +48 -13
  3. package/KNOWN_LIMITATIONS.md +20 -19
  4. package/LICENSE +44 -44
  5. package/LICENSING.md +10 -10
  6. package/README.md +486 -462
  7. package/SECURITY.md +52 -52
  8. package/dist/index.d.ts +17 -5
  9. package/dist/index.js +187 -92
  10. package/dist/index.js.map +1 -1
  11. package/native/Cargo.lock +4927 -4927
  12. package/native/Cargo.toml +73 -73
  13. package/native/crates/canonical/Cargo.toml +24 -24
  14. package/native/crates/canonical/src/lib.rs +677 -673
  15. package/native/crates/compression/Cargo.toml +20 -20
  16. package/native/crates/compression/benches/compression_bench.rs +42 -42
  17. package/native/crates/compression/src/lib.rs +393 -393
  18. package/native/crates/evm-eth/Cargo.toml +13 -13
  19. package/native/crates/evm-eth/src/lib.rs +105 -105
  20. package/native/crates/fee/Cargo.toml +15 -15
  21. package/native/crates/fee/src/lib.rs +281 -281
  22. package/native/crates/index/Cargo.toml +16 -16
  23. package/native/crates/index/src/lib.rs +277 -277
  24. package/native/crates/policy/Cargo.toml +17 -17
  25. package/native/crates/policy/src/lib.rs +614 -614
  26. package/native/crates/security/Cargo.toml +22 -22
  27. package/native/crates/security/src/lib.rs +478 -478
  28. package/native/crates/tokens/Cargo.toml +13 -13
  29. package/native/crates/tokens/src/lib.rs +534 -534
  30. package/native/crates/verification/Cargo.toml +23 -23
  31. package/native/crates/verification/src/lib.rs +333 -333
  32. package/native/crates/wallet/Cargo.toml +20 -20
  33. package/native/crates/wallet/src/lib.rs +261 -261
  34. package/native/crates/x402/Cargo.toml +30 -30
  35. package/native/crates/x402/src/lib.rs +423 -423
  36. package/native/ffi/Cargo.toml +34 -34
  37. package/native/ffi/build.rs +4 -4
  38. package/native/ffi/src/lib.rs +352 -352
  39. package/native/ffi/tests/integration.rs +354 -354
  40. package/native/pyo3/Cargo.toml +26 -26
  41. package/native/pyo3/pyproject.toml +16 -16
  42. package/native/pyo3/src/lib.rs +407 -407
  43. package/native/pyo3/tests/test_smoke.py +180 -180
  44. package/native/wasm/Cargo.toml +47 -44
  45. package/native/wasm/pkg/.gitignore +6 -6
  46. package/native/wasm/pkg/clawpowers_wasm.d.ts +208 -208
  47. package/native/wasm/pkg/clawpowers_wasm.js +872 -872
  48. package/native/wasm/pkg/clawpowers_wasm_bg.wasm.d.ts +40 -40
  49. package/native/wasm/pkg/package.json +16 -16
  50. package/native/wasm/pkg-node/clawpowers_wasm.d.ts +143 -143
  51. package/native/wasm/pkg-node/clawpowers_wasm.js +798 -798
  52. package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm.d.ts +40 -40
  53. package/native/wasm/pkg-node/package.json +12 -12
  54. package/native/wasm/src/lib.rs +433 -433
  55. package/package.json +13 -8
  56. package/scripts/build-wasm.mjs +59 -0
  57. package/scripts/generate_hermes_wrappers.py +211 -0
  58. package/scripts/hermes_wrapper_overrides.json +184 -0
  59. package/scripts/run-python-script.mjs +48 -0
  60. package/scripts/verify-consumer-install.mjs +109 -0
  61. package/scripts/verify-wasm-artifacts.mjs +26 -3
  62. package/scripts/verify_hermes_wrappers.py +154 -0
  63. package/skill.json +20 -0
  64. package/skills/1password/SKILL.md +34 -0
  65. package/skills/README.md +44 -0
  66. package/skills/agent-nexus-2/SKILL.md +34 -0
  67. package/skills/apple-notes/SKILL.md +34 -0
  68. package/skills/apple-reminders/SKILL.md +34 -0
  69. package/skills/autoresearch/SKILL.md +43 -0
  70. package/skills/bear-notes/SKILL.md +34 -0
  71. package/skills/blogwatcher/SKILL.md +34 -0
  72. package/skills/blucli/SKILL.md +34 -0
  73. package/skills/bluebubbles/SKILL.md +34 -0
  74. package/skills/business-strategy/SKILL.md +41 -0
  75. package/skills/camsnap/SKILL.md +34 -0
  76. package/skills/canvas/SKILL.md +34 -0
  77. package/skills/clawhub/SKILL.md +34 -0
  78. package/skills/coding-agent/SKILL.md +34 -0
  79. package/skills/coding-discipline.skill/SKILL.md +34 -0
  80. package/skills/content-writer/SKILL.md +41 -0
  81. package/skills/discord/SKILL.md +34 -0
  82. package/skills/eightctl/SKILL.md +34 -0
  83. package/skills/execution-validation.skill/SKILL.md +34 -0
  84. package/skills/gemini/SKILL.md +34 -0
  85. package/skills/gh-issues/SKILL.md +34 -0
  86. package/skills/gifgrep/SKILL.md +34 -0
  87. package/skills/github/SKILL.md +41 -0
  88. package/skills/gog/SKILL.md +34 -0
  89. package/skills/goplaces/SKILL.md +34 -0
  90. package/skills/healthcheck/SKILL.md +34 -0
  91. package/skills/himalaya/SKILL.md +34 -0
  92. package/skills/humanize/SKILL.md +41 -0
  93. package/skills/imsg/SKILL.md +34 -0
  94. package/skills/itp/SKILL.md +112 -0
  95. package/skills/mcporter/SKILL.md +34 -0
  96. package/skills/model-usage/SKILL.md +34 -0
  97. package/skills/nano-pdf/SKILL.md +34 -0
  98. package/skills/node-connect/SKILL.md +34 -0
  99. package/skills/notion/SKILL.md +34 -0
  100. package/skills/obsidian/SKILL.md +34 -0
  101. package/skills/openai-whisper/SKILL.md +34 -0
  102. package/skills/openai-whisper-api/SKILL.md +34 -0
  103. package/skills/openhue/SKILL.md +34 -0
  104. package/skills/oracle/SKILL.md +34 -0
  105. package/skills/ordercli/SKILL.md +34 -0
  106. package/skills/peekaboo/SKILL.md +34 -0
  107. package/skills/polyclaw/SKILL.md +34 -0
  108. package/skills/prospector/SKILL.md +41 -0
  109. package/skills/rsi.skill/SKILL.md +34 -0
  110. package/skills/sag/SKILL.md +34 -0
  111. package/skills/security/SKILL.md +41 -0
  112. package/skills/session-logs/SKILL.md +34 -0
  113. package/skills/sherpa-onnx-tts/SKILL.md +34 -0
  114. package/skills/skill-creator/SKILL.md +34 -0
  115. package/skills/slack/SKILL.md +34 -0
  116. package/skills/songsee/SKILL.md +34 -0
  117. package/skills/sonoscli/SKILL.md +34 -0
  118. package/skills/spotify-player/SKILL.md +34 -0
  119. package/skills/strykr-prism/SKILL.md +41 -0
  120. package/skills/summarize/SKILL.md +34 -0
  121. package/skills/taskbridge/SKILL.md +34 -0
  122. package/skills/things-mac/SKILL.md +34 -0
  123. package/skills/tmux/SKILL.md +34 -0
  124. package/skills/trello/SKILL.md +34 -0
  125. package/skills/validator-agent/SKILL.md +41 -0
  126. package/skills/video-frames/SKILL.md +34 -0
  127. package/skills/voice-call/SKILL.md +34 -0
  128. package/skills/wacli/SKILL.md +34 -0
  129. package/skills/weather/SKILL.md +34 -0
  130. package/skills/webmcp-payments/SKILL.md +41 -0
  131. package/skills/xurl/SKILL.md +34 -0
  132. package/src/skills/catalog.ts +435 -435
  133. package/src/skills/executor.ts +56 -56
  134. package/src/skills/index.ts +3 -3
  135. package/src/skills/itp/SKILL.md +112 -112
  136. package/src/skills/loader.ts +262 -193
  137. package/native/ffi/index.node +0 -0
  138. package/native/wasm/pkg-node/.gitignore +0 -6
@@ -1,40 +1,40 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- export const memory: WebAssembly.Memory;
4
- export const __wbg_wasmcanonicalstore_free: (a: number, b: number) => void;
5
- export const approximateDistance: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
6
- export const calculateFee: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: bigint) => [number, number, number, number];
7
- export const compressVector: (a: number, b: number, c: number) => [number, number, number, number];
8
- export const computeKeccak256: (a: number, b: number) => [number, number];
9
- export const computeSha256: (a: number, b: number) => [number, number];
10
- export const decompressVector: (a: number, b: number, c: number) => [number, number, number, number];
11
- export const deriveEthereumAddress: (a: number, b: number) => [number, number, number, number];
12
- export const derivePublicKey: (a: number, b: number) => [number, number, number, number];
13
- export const evaluateWriteFirewall: (a: number, b: number) => [number, number, number, number];
14
- export const getAvailableModules: () => [number, number];
15
- export const getDefaultTokenRegistry: () => [number, number, number, number];
16
- export const getVersion: () => [number, number];
17
- export const signEcdsa: (a: number, b: number, c: number, d: number) => [number, number, number, number];
18
- export const tokenAmountAdd: (a: number, b: number, c: number, d: number) => [number, number, number, number];
19
- export const tokenAmountFromHuman: (a: number, b: number) => [number, number, number, number];
20
- export const tokenAmountMulBps: (a: number, b: number, c: bigint) => [number, number, number, number];
21
- export const tokenAmountSub: (a: number, b: number, c: number, d: number) => [number, number, number, number];
22
- export const tokenAmountToHuman: (a: number, b: number) => [number, number, number];
23
- export const verifyEcdsa: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
24
- export const wasmcanonicalstore_exportJson: (a: number) => [number, number, number, number];
25
- export const wasmcanonicalstore_get: (a: number, b: number, c: number) => [number, number, number, number];
26
- export const wasmcanonicalstore_getByHash: (a: number, b: number, c: number) => [number, number, number, number];
27
- export const wasmcanonicalstore_importJson: (a: number, b: number, c: number) => [number, number, number];
28
- export const wasmcanonicalstore_insert: (a: number, b: number, c: number) => [number, number, number, number];
29
- export const wasmcanonicalstore_new: () => [number, number, number];
30
- export const wasmcanonicalstore_queryNamespace: (a: number, b: number, c: number, d: number) => [number, number, number, number];
31
- export const wasmcanonicalstore_softDelete: (a: number, b: number, c: number) => [number, number, number];
32
- export const wasmcanonicalstore_verifyIntegrity: (a: number, b: number, c: number) => [number, number, number];
33
- export const __wbindgen_exn_store: (a: number) => void;
34
- export const __externref_table_alloc: () => number;
35
- export const __wbindgen_externrefs: WebAssembly.Table;
36
- export const __wbindgen_malloc: (a: number, b: number) => number;
37
- export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
38
- export const __externref_table_dealloc: (a: number) => void;
39
- export const __wbindgen_free: (a: number, b: number, c: number) => void;
40
- export const __wbindgen_start: () => void;
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export const memory: WebAssembly.Memory;
4
+ export const __wbg_wasmcanonicalstore_free: (a: number, b: number) => void;
5
+ export const approximateDistance: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
6
+ export const calculateFee: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: bigint) => [number, number, number, number];
7
+ export const compressVector: (a: number, b: number, c: number) => [number, number, number, number];
8
+ export const computeKeccak256: (a: number, b: number) => [number, number];
9
+ export const computeSha256: (a: number, b: number) => [number, number];
10
+ export const decompressVector: (a: number, b: number, c: number) => [number, number, number, number];
11
+ export const deriveEthereumAddress: (a: number, b: number) => [number, number, number, number];
12
+ export const derivePublicKey: (a: number, b: number) => [number, number, number, number];
13
+ export const evaluateWriteFirewall: (a: number, b: number) => [number, number, number, number];
14
+ export const getAvailableModules: () => [number, number];
15
+ export const getDefaultTokenRegistry: () => [number, number, number, number];
16
+ export const getVersion: () => [number, number];
17
+ export const signEcdsa: (a: number, b: number, c: number, d: number) => [number, number, number, number];
18
+ export const tokenAmountAdd: (a: number, b: number, c: number, d: number) => [number, number, number, number];
19
+ export const tokenAmountFromHuman: (a: number, b: number) => [number, number, number, number];
20
+ export const tokenAmountMulBps: (a: number, b: number, c: bigint) => [number, number, number, number];
21
+ export const tokenAmountSub: (a: number, b: number, c: number, d: number) => [number, number, number, number];
22
+ export const tokenAmountToHuman: (a: number, b: number) => [number, number, number];
23
+ export const verifyEcdsa: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
24
+ export const wasmcanonicalstore_exportJson: (a: number) => [number, number, number, number];
25
+ export const wasmcanonicalstore_get: (a: number, b: number, c: number) => [number, number, number, number];
26
+ export const wasmcanonicalstore_getByHash: (a: number, b: number, c: number) => [number, number, number, number];
27
+ export const wasmcanonicalstore_importJson: (a: number, b: number, c: number) => [number, number, number];
28
+ export const wasmcanonicalstore_insert: (a: number, b: number, c: number) => [number, number, number, number];
29
+ export const wasmcanonicalstore_new: () => [number, number, number];
30
+ export const wasmcanonicalstore_queryNamespace: (a: number, b: number, c: number, d: number) => [number, number, number, number];
31
+ export const wasmcanonicalstore_softDelete: (a: number, b: number, c: number) => [number, number, number];
32
+ export const wasmcanonicalstore_verifyIntegrity: (a: number, b: number, c: number) => [number, number, number];
33
+ export const __wbindgen_exn_store: (a: number) => void;
34
+ export const __externref_table_alloc: () => number;
35
+ export const __wbindgen_externrefs: WebAssembly.Table;
36
+ export const __wbindgen_malloc: (a: number, b: number) => number;
37
+ export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
38
+ export const __externref_table_dealloc: (a: number) => void;
39
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
40
+ export const __wbindgen_start: () => void;
@@ -1,17 +1,17 @@
1
- {
2
- "name": "clawpowers-wasm",
3
- "type": "module",
4
- "description": "WASM bindings for ClawPowers core — tokens, fees, policy, compression, index, canonical, verification, security",
5
- "version": "0.1.0",
6
- "license": "BUSL-1.1",
7
- "files": [
8
- "clawpowers_wasm_bg.wasm",
9
- "clawpowers_wasm.js",
10
- "clawpowers_wasm.d.ts"
11
- ],
12
- "main": "clawpowers_wasm.js",
13
- "types": "clawpowers_wasm.d.ts",
14
- "sideEffects": [
15
- "./snippets/*"
16
- ]
1
+ {
2
+ "name": "clawpowers-wasm",
3
+ "type": "module",
4
+ "description": "WASM bindings for ClawPowers core — tokens, fees, policy, compression, index, canonical, verification, security",
5
+ "version": "0.1.0",
6
+ "license": "BUSL-1.1",
7
+ "files": [
8
+ "clawpowers_wasm_bg.wasm",
9
+ "clawpowers_wasm.js",
10
+ "clawpowers_wasm.d.ts"
11
+ ],
12
+ "main": "clawpowers_wasm.js",
13
+ "types": "clawpowers_wasm.d.ts",
14
+ "sideEffects": [
15
+ "./snippets/*"
16
+ ]
17
17
  }
@@ -1,143 +1,143 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
-
4
- /**
5
- * Opaque handle to an in-memory CanonicalStore.
6
- */
7
- export class WasmCanonicalStore {
8
- free(): void;
9
- [Symbol.dispose](): void;
10
- /**
11
- * Export all records as JSON for IndexedDB persistence.
12
- */
13
- exportJson(): string;
14
- /**
15
- * Get a record by UUID. Returns JSON or null.
16
- */
17
- get(id: string): string | undefined;
18
- /**
19
- * Get a record by content hash. Returns JSON or null.
20
- */
21
- getByHash(hash: string): string | undefined;
22
- /**
23
- * Import records from JSON (e.g., loaded from IndexedDB).
24
- */
25
- importJson(json: string): number;
26
- /**
27
- * Insert a record. Input: JSON with {namespace, content, metadata, provenance}.
28
- * Returns the record UUID as a string.
29
- */
30
- insert(json: string): string;
31
- /**
32
- * Create a new in-memory canonical store.
33
- */
34
- constructor();
35
- /**
36
- * Query records by namespace. Returns JSON array.
37
- */
38
- queryNamespace(namespace: string, limit: number): string;
39
- /**
40
- * Soft-delete a record. Returns true if the record existed.
41
- */
42
- softDelete(id: string): boolean;
43
- /**
44
- * Verify record integrity. Returns true if hash matches.
45
- */
46
- verifyIntegrity(id: string): boolean;
47
- }
48
-
49
- /**
50
- * Compute approximate distance between two CompressedVector JSONs.
51
- */
52
- export function approximateDistance(a_json: string, b_json: string, dimensions: number): number;
53
-
54
- /**
55
- * Calculate a transaction fee.
56
- * Returns JSON: `{"gross_amount": ..., "fee_amount": ..., "net_amount": ...}`
57
- */
58
- export function calculateFee(amount_json: string, fee_type: string, tx_fee_bps?: bigint | null, swap_fee_bps?: bigint | null): string;
59
-
60
- /**
61
- * Compress a float32 vector. Input: JSON array of f32. Output: CompressedVector JSON.
62
- */
63
- export function compressVector(vector_json: string, dimensions: number): string;
64
-
65
- /**
66
- * Compute Keccak-256 hash of raw bytes (EVM-compatible). Returns `0x` + 64 hex chars.
67
- */
68
- export function computeKeccak256(bytes: Uint8Array): string;
69
-
70
- /**
71
- * Compute SHA-256 hash of content string.
72
- */
73
- export function computeSha256(content: string): string;
74
-
75
- /**
76
- * Decompress a CompressedVector JSON back to a float32 array JSON.
77
- */
78
- export function decompressVector(compressed_json: string, dimensions: number): string;
79
-
80
- /**
81
- * Ethereum address from 32-byte secp256k1 private key (`0x` + 20 bytes, EIP-55 checksum).
82
- */
83
- export function deriveEthereumAddress(private_key: Uint8Array): string;
84
-
85
- /**
86
- * Uncompressed public key: 64 bytes (x || y), no `0x04` prefix.
87
- */
88
- export function derivePublicKey(private_key: Uint8Array): Uint8Array;
89
-
90
- /**
91
- * Evaluate a write request against a firewall.
92
- * Input JSON: {namespace, content, trust_level, source, allowed_namespaces?, blocked_patterns?, max_content_length?}
93
- * Returns JSON: {"decision": "allow"|"deny"|"sanitize", "reason"?: ..., "sanitized"?: ...}
94
- */
95
- export function evaluateWriteFirewall(json: string): string;
96
-
97
- /**
98
- * Returns a list of modules available in this WASM build.
99
- */
100
- export function getAvailableModules(): string;
101
-
102
- /**
103
- * Get the default token registry as JSON.
104
- */
105
- export function getDefaultTokenRegistry(): string;
106
-
107
- /**
108
- * Returns the version and build info.
109
- */
110
- export function getVersion(): string;
111
-
112
- /**
113
- * ECDSA sign 32-byte message hash → 65 bytes (r || s || recovery_id).
114
- */
115
- export function signEcdsa(private_key: Uint8Array, message_hash: Uint8Array): Uint8Array;
116
-
117
- /**
118
- * Add two TokenAmount JSONs. Returns the sum as JSON.
119
- */
120
- export function tokenAmountAdd(a_json: string, b_json: string): string;
121
-
122
- /**
123
- * Create a TokenAmount from a human-readable f64 value and decimal count.
124
- * Returns JSON: `{"raw": "...", "decimals": N}`
125
- */
126
- export function tokenAmountFromHuman(human: number, decimals: number): string;
127
-
128
- /**
129
- * Multiply a TokenAmount by basis points. Returns result as JSON.
130
- */
131
- export function tokenAmountMulBps(json: string, bps: bigint): string;
132
-
133
- /**
134
- * Subtract two TokenAmount JSONs. Returns the difference as JSON.
135
- */
136
- export function tokenAmountSub(a_json: string, b_json: string): string;
137
-
138
- /**
139
- * Convert a TokenAmount JSON back to a human-readable f64.
140
- */
141
- export function tokenAmountToHuman(json: string): number;
142
-
143
- export function verifyEcdsa(public_key: Uint8Array, message_hash: Uint8Array, signature: Uint8Array): boolean;
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ /**
5
+ * Opaque handle to an in-memory CanonicalStore.
6
+ */
7
+ export class WasmCanonicalStore {
8
+ free(): void;
9
+ [Symbol.dispose](): void;
10
+ /**
11
+ * Export all records as JSON for IndexedDB persistence.
12
+ */
13
+ exportJson(): string;
14
+ /**
15
+ * Get a record by UUID. Returns JSON or null.
16
+ */
17
+ get(id: string): string | undefined;
18
+ /**
19
+ * Get a record by content hash. Returns JSON or null.
20
+ */
21
+ getByHash(hash: string): string | undefined;
22
+ /**
23
+ * Import records from JSON (e.g., loaded from IndexedDB).
24
+ */
25
+ importJson(json: string): number;
26
+ /**
27
+ * Insert a record. Input: JSON with {namespace, content, metadata, provenance}.
28
+ * Returns the record UUID as a string.
29
+ */
30
+ insert(json: string): string;
31
+ /**
32
+ * Create a new in-memory canonical store.
33
+ */
34
+ constructor();
35
+ /**
36
+ * Query records by namespace. Returns JSON array.
37
+ */
38
+ queryNamespace(namespace: string, limit: number): string;
39
+ /**
40
+ * Soft-delete a record. Returns true if the record existed.
41
+ */
42
+ softDelete(id: string): boolean;
43
+ /**
44
+ * Verify record integrity. Returns true if hash matches.
45
+ */
46
+ verifyIntegrity(id: string): boolean;
47
+ }
48
+
49
+ /**
50
+ * Compute approximate distance between two CompressedVector JSONs.
51
+ */
52
+ export function approximateDistance(a_json: string, b_json: string, dimensions: number): number;
53
+
54
+ /**
55
+ * Calculate a transaction fee.
56
+ * Returns JSON: `{"gross_amount": ..., "fee_amount": ..., "net_amount": ...}`
57
+ */
58
+ export function calculateFee(amount_json: string, fee_type: string, tx_fee_bps?: bigint | null, swap_fee_bps?: bigint | null): string;
59
+
60
+ /**
61
+ * Compress a float32 vector. Input: JSON array of f32. Output: CompressedVector JSON.
62
+ */
63
+ export function compressVector(vector_json: string, dimensions: number): string;
64
+
65
+ /**
66
+ * Compute Keccak-256 hash of raw bytes (EVM-compatible). Returns `0x` + 64 hex chars.
67
+ */
68
+ export function computeKeccak256(bytes: Uint8Array): string;
69
+
70
+ /**
71
+ * Compute SHA-256 hash of content string.
72
+ */
73
+ export function computeSha256(content: string): string;
74
+
75
+ /**
76
+ * Decompress a CompressedVector JSON back to a float32 array JSON.
77
+ */
78
+ export function decompressVector(compressed_json: string, dimensions: number): string;
79
+
80
+ /**
81
+ * Ethereum address from 32-byte secp256k1 private key (`0x` + 20 bytes, EIP-55 checksum).
82
+ */
83
+ export function deriveEthereumAddress(private_key: Uint8Array): string;
84
+
85
+ /**
86
+ * Uncompressed public key: 64 bytes (x || y), no `0x04` prefix.
87
+ */
88
+ export function derivePublicKey(private_key: Uint8Array): Uint8Array;
89
+
90
+ /**
91
+ * Evaluate a write request against a firewall.
92
+ * Input JSON: {namespace, content, trust_level, source, allowed_namespaces?, blocked_patterns?, max_content_length?}
93
+ * Returns JSON: {"decision": "allow"|"deny"|"sanitize", "reason"?: ..., "sanitized"?: ...}
94
+ */
95
+ export function evaluateWriteFirewall(json: string): string;
96
+
97
+ /**
98
+ * Returns a list of modules available in this WASM build.
99
+ */
100
+ export function getAvailableModules(): string;
101
+
102
+ /**
103
+ * Get the default token registry as JSON.
104
+ */
105
+ export function getDefaultTokenRegistry(): string;
106
+
107
+ /**
108
+ * Returns the version and build info.
109
+ */
110
+ export function getVersion(): string;
111
+
112
+ /**
113
+ * ECDSA sign 32-byte message hash → 65 bytes (r || s || recovery_id).
114
+ */
115
+ export function signEcdsa(private_key: Uint8Array, message_hash: Uint8Array): Uint8Array;
116
+
117
+ /**
118
+ * Add two TokenAmount JSONs. Returns the sum as JSON.
119
+ */
120
+ export function tokenAmountAdd(a_json: string, b_json: string): string;
121
+
122
+ /**
123
+ * Create a TokenAmount from a human-readable f64 value and decimal count.
124
+ * Returns JSON: `{"raw": "...", "decimals": N}`
125
+ */
126
+ export function tokenAmountFromHuman(human: number, decimals: number): string;
127
+
128
+ /**
129
+ * Multiply a TokenAmount by basis points. Returns result as JSON.
130
+ */
131
+ export function tokenAmountMulBps(json: string, bps: bigint): string;
132
+
133
+ /**
134
+ * Subtract two TokenAmount JSONs. Returns the difference as JSON.
135
+ */
136
+ export function tokenAmountSub(a_json: string, b_json: string): string;
137
+
138
+ /**
139
+ * Convert a TokenAmount JSON back to a human-readable f64.
140
+ */
141
+ export function tokenAmountToHuman(json: string): number;
142
+
143
+ export function verifyEcdsa(public_key: Uint8Array, message_hash: Uint8Array, signature: Uint8Array): boolean;