@totalreclaw/totalreclaw 3.3.12-rc.22 → 3.3.12-rc.23
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/SKILL.md +1 -1
- package/dist/subgraph-store.js +22 -5
- package/dist/tr-cli.js +1 -1
- package/package.json +2 -2
- package/skill.json +1 -1
- package/subgraph-store.ts +22 -5
- package/tr-cli.ts +1 -1
package/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: totalreclaw
|
|
3
3
|
description: "End-to-end encrypted, decentralized memory for OpenClaw. A native kind:memory provider — recall is automatic via memory_search/memory_get, and facts are captured in the background. Trigger on 'install TotalReclaw', 'set up TotalReclaw', 'restore my recovery phrase', any recall request ('what do you remember about me', 'what's my X'), AND any explicit remember request ('remember X', 'save X')."
|
|
4
|
-
version: 3.3.12-rc.
|
|
4
|
+
version: 3.3.12-rc.23
|
|
5
5
|
author: TotalReclaw Team
|
|
6
6
|
license: MIT
|
|
7
7
|
homepage: https://totalreclaw.xyz
|
package/dist/subgraph-store.js
CHANGED
|
@@ -359,8 +359,17 @@ async function submitFactOnChainLocked(protobufPayload, config, eoa, sender) {
|
|
|
359
359
|
return rpcWithRetry({ url: bundlerUrl, headers, method, params });
|
|
360
360
|
}
|
|
361
361
|
const entryPoint = config.entryPointAddress || getWasm().getEntryPointAddress();
|
|
362
|
-
// 2. Encode calldata (SimpleAccount.execute → DataEdge
|
|
363
|
-
|
|
362
|
+
// 2. Encode calldata (SimpleAccount.execute → DataEdge).
|
|
363
|
+
// Target the resolved DataEdge address (env → relay billing → WASM default,
|
|
364
|
+
// per getSubgraphConfig / #462) so writes land on the SAME contract the
|
|
365
|
+
// relay reads from. The legacy `encodeSingleCall` bakes the PROD DataEdge,
|
|
366
|
+
// which stranded staging writes on prod (#460). Guard: an empty address
|
|
367
|
+
// (config built without getSubgraphConfig) falls back to the legacy encoder
|
|
368
|
+
// — behavior-identical to before, and avoids `encodeSingleCallTo` throwing
|
|
369
|
+
// on a bad address.
|
|
370
|
+
const calldataBytes = config.dataEdgeAddress
|
|
371
|
+
? getWasm().encodeSingleCallTo(protobufPayload, config.dataEdgeAddress)
|
|
372
|
+
: getWasm().encodeSingleCall(protobufPayload);
|
|
364
373
|
const callData = `0x${Buffer.from(calldataBytes).toString('hex')}`;
|
|
365
374
|
// 3. Get gas prices from Pimlico
|
|
366
375
|
const gasPrices = await rpc('pimlico_getUserOperationGasPrice', []);
|
|
@@ -541,10 +550,18 @@ async function submitFactBatchOnChainLocked(protobufPayloads, config, eoa, sende
|
|
|
541
550
|
return rpcWithRetry({ url: bundlerUrl, headers, method, params });
|
|
542
551
|
}
|
|
543
552
|
const entryPoint = config.entryPointAddress || getWasm().getEntryPointAddress();
|
|
544
|
-
// Encode batch calldata (SimpleAccount.executeBatch)
|
|
545
|
-
// encodeBatchCall
|
|
553
|
+
// Encode batch calldata (SimpleAccount.executeBatch).
|
|
554
|
+
// encodeBatchCall{,To} expect a JSON array of hex-encoded payload strings.
|
|
555
|
+
// Target the resolved DataEdge address (env → relay billing → WASM default,
|
|
556
|
+
// per getSubgraphConfig / #462) so writes land on the SAME contract the
|
|
557
|
+
// relay reads from — the legacy `encodeBatchCall` bakes the PROD DataEdge and
|
|
558
|
+
// stranded staging writes on prod (#460). Guard: empty address → legacy
|
|
559
|
+
// encoder (behavior-identical; avoids `encodeBatchCallTo` throwing).
|
|
546
560
|
const payloadsHex = protobufPayloads.map(p => p.toString('hex'));
|
|
547
|
-
const
|
|
561
|
+
const payloadsJson = JSON.stringify(payloadsHex);
|
|
562
|
+
const calldataBytes = config.dataEdgeAddress
|
|
563
|
+
? getWasm().encodeBatchCallTo(payloadsJson, config.dataEdgeAddress)
|
|
564
|
+
: getWasm().encodeBatchCall(payloadsJson);
|
|
548
565
|
const callData = `0x${Buffer.from(calldataBytes).toString('hex')}`;
|
|
549
566
|
// Get gas prices
|
|
550
567
|
const gasPrices = await rpc('pimlico_getUserOperationGasPrice', []);
|
package/dist/tr-cli.js
CHANGED
|
@@ -51,7 +51,7 @@ const STATE_PATH = CONFIG.onboardingStatePath;
|
|
|
51
51
|
// Auto-synced by skill/scripts/sync-version.mjs from skill/plugin/package.json::version.
|
|
52
52
|
// Do not edit by hand — running tests will catch drift but the publish workflow
|
|
53
53
|
// rewrites this constant at the start of every npm/ClawHub publish.
|
|
54
|
-
const PLUGIN_VERSION = '3.3.12-rc.
|
|
54
|
+
const PLUGIN_VERSION = '3.3.12-rc.23';
|
|
55
55
|
function die(msg, code = 1) {
|
|
56
56
|
process.stderr.write(`tr: ${msg}\n`);
|
|
57
57
|
process.exit(code);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@totalreclaw/totalreclaw",
|
|
3
|
-
"version": "3.3.12-rc.
|
|
3
|
+
"version": "3.3.12-rc.23",
|
|
4
4
|
"description": "End-to-end encrypted, agent-portable memory for OpenClaw and any LLM-agent runtime. XChaCha20-Poly1305 with protobuf v4 + on-chain Memory Taxonomy v1 (claim / preference / directive / commitment / episode / summary).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "rm -rf dist && tsc -p tsconfig.json --noCheck",
|
|
70
70
|
"verify-tarball": "node ../scripts/verify-tarball.mjs",
|
|
71
|
-
"test": "npx tsx batch-gate.test.ts && npx tsx manifest-shape.test.ts && npx tsx config-schema.test.ts && npx tsx config.test.ts && npx tsx relay-headers.test.ts && npx tsx scope-address-visible.test.ts && npx tsx llm-profile-reader.test.ts && npx tsx llm-client.test.ts && npx tsx llm-client-retry.test.ts && npx tsx llm-client-json-mode.test.ts && npx tsx gateway-url.test.ts && npx tsx retype-setscope.test.ts && npx tsx tool-gating.test.ts && npx tsx onboarding-noninteractive.test.ts && npx tsx pair-cli-json.test.ts && npx tsx pair-qr.test.ts && npx tsx pair-remote-client.test.ts && npx tsx pair-http.test.ts && npx tsx pair-http-route-registration.test.ts && npx tsx pair-http-init.test.ts && npx tsx qa-bug-report.test.ts && npx tsx nonce-serialization.test.ts && npx tsx initcode-lifecycle.test.ts && npx tsx phrase-safety-registry.test.ts && npx tsx test_issue_92_onnx_download_ux.test.ts && npx tsx onboard-pair-only.test.ts && npx tsx import-state.test.ts && npx tsx import-time-smoke.test.ts && npx tsx install-staging-cleanup.test.ts && npx tsx partial-install-detection.test.ts && npx tsx install-reload-idempotency.test.ts && npx tsx skill-register.test.ts && npx tsx json-stdout-cleanliness.test.ts && npx tsx url-binding.test.ts && npx tsx fs-helpers.test.ts && npx tsx pair-cli-default-mode.test.ts && npx tsx embedding-fallback-tag.test.ts && npx tsx staging-banner-gate.test.ts && npx tsx restart-auth.test.ts && npx tsx inbound-user-tracker.test.ts && npx tsx register-command-name.test.ts && npx tsx skill-md-native.test.ts &&npx tsx tr-cli-json-output.test.ts && npx tsx import-upgrade-cli.test.ts && npx tsx cli-registercli-scope.test.ts && npx tsx postinstall-validate.test.ts && npx tsx credential-provider.test.ts && npx tsx memory-runtime.test.ts && npx tsx tools.test.ts && npx tsx register-native.test.ts && npx tsx relay.test.ts && npx tsx vault-crypto.test.ts && npx tsx entry-env.test.ts && npx tsx trajectory-poller.test.ts && npx tsx billing-cache.test.ts",
|
|
71
|
+
"test": "npx tsx batch-gate.test.ts && npx tsx manifest-shape.test.ts && npx tsx config-schema.test.ts && npx tsx config.test.ts && npx tsx relay-headers.test.ts && npx tsx scope-address-visible.test.ts && npx tsx llm-profile-reader.test.ts && npx tsx llm-client.test.ts && npx tsx llm-client-retry.test.ts && npx tsx llm-client-json-mode.test.ts && npx tsx gateway-url.test.ts && npx tsx retype-setscope.test.ts && npx tsx tool-gating.test.ts && npx tsx onboarding-noninteractive.test.ts && npx tsx pair-cli-json.test.ts && npx tsx pair-qr.test.ts && npx tsx pair-remote-client.test.ts && npx tsx pair-http.test.ts && npx tsx pair-http-route-registration.test.ts && npx tsx pair-http-init.test.ts && npx tsx qa-bug-report.test.ts && npx tsx nonce-serialization.test.ts && npx tsx initcode-lifecycle.test.ts && npx tsx phrase-safety-registry.test.ts && npx tsx test_issue_92_onnx_download_ux.test.ts && npx tsx onboard-pair-only.test.ts && npx tsx import-state.test.ts && npx tsx import-time-smoke.test.ts && npx tsx install-staging-cleanup.test.ts && npx tsx partial-install-detection.test.ts && npx tsx install-reload-idempotency.test.ts && npx tsx skill-register.test.ts && npx tsx json-stdout-cleanliness.test.ts && npx tsx url-binding.test.ts && npx tsx fs-helpers.test.ts && npx tsx pair-cli-default-mode.test.ts && npx tsx embedding-fallback-tag.test.ts && npx tsx staging-banner-gate.test.ts && npx tsx restart-auth.test.ts && npx tsx inbound-user-tracker.test.ts && npx tsx register-command-name.test.ts && npx tsx skill-md-native.test.ts &&npx tsx tr-cli-json-output.test.ts && npx tsx import-upgrade-cli.test.ts && npx tsx cli-registercli-scope.test.ts && npx tsx postinstall-validate.test.ts && npx tsx credential-provider.test.ts && npx tsx memory-runtime.test.ts && npx tsx tools.test.ts && npx tsx register-native.test.ts && npx tsx relay.test.ts && npx tsx vault-crypto.test.ts && npx tsx entry-env.test.ts && npx tsx trajectory-poller.test.ts && npx tsx billing-cache.test.ts && npx tsx dataedge-write-target.test.ts",
|
|
72
72
|
"smoke:dist": "npx tsx dist-esm-smoke.test.ts",
|
|
73
73
|
"check-scanner": "node ../scripts/check-scanner.mjs",
|
|
74
74
|
"check-version-drift": "node ../scripts/check-version-drift.mjs",
|
package/skill.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "totalreclaw",
|
|
3
|
-
"version": "3.3.12-rc.
|
|
3
|
+
"version": "3.3.12-rc.23",
|
|
4
4
|
"description": "End-to-end encrypted memory for AI agents — portable, yours forever. XChaCha20-Poly1305 E2EE: server never sees plaintext.",
|
|
5
5
|
"author": "TotalReclaw Team",
|
|
6
6
|
"license": "MIT",
|
package/subgraph-store.ts
CHANGED
|
@@ -447,8 +447,17 @@ async function submitFactOnChainLocked(
|
|
|
447
447
|
|
|
448
448
|
const entryPoint = config.entryPointAddress || getWasm().getEntryPointAddress();
|
|
449
449
|
|
|
450
|
-
// 2. Encode calldata (SimpleAccount.execute → DataEdge
|
|
451
|
-
|
|
450
|
+
// 2. Encode calldata (SimpleAccount.execute → DataEdge).
|
|
451
|
+
// Target the resolved DataEdge address (env → relay billing → WASM default,
|
|
452
|
+
// per getSubgraphConfig / #462) so writes land on the SAME contract the
|
|
453
|
+
// relay reads from. The legacy `encodeSingleCall` bakes the PROD DataEdge,
|
|
454
|
+
// which stranded staging writes on prod (#460). Guard: an empty address
|
|
455
|
+
// (config built without getSubgraphConfig) falls back to the legacy encoder
|
|
456
|
+
// — behavior-identical to before, and avoids `encodeSingleCallTo` throwing
|
|
457
|
+
// on a bad address.
|
|
458
|
+
const calldataBytes = config.dataEdgeAddress
|
|
459
|
+
? getWasm().encodeSingleCallTo(protobufPayload, config.dataEdgeAddress)
|
|
460
|
+
: getWasm().encodeSingleCall(protobufPayload);
|
|
452
461
|
const callData = `0x${Buffer.from(calldataBytes).toString('hex')}`;
|
|
453
462
|
|
|
454
463
|
// 3. Get gas prices from Pimlico
|
|
@@ -659,10 +668,18 @@ async function submitFactBatchOnChainLocked(
|
|
|
659
668
|
}
|
|
660
669
|
const entryPoint = config.entryPointAddress || getWasm().getEntryPointAddress();
|
|
661
670
|
|
|
662
|
-
// Encode batch calldata (SimpleAccount.executeBatch)
|
|
663
|
-
// encodeBatchCall
|
|
671
|
+
// Encode batch calldata (SimpleAccount.executeBatch).
|
|
672
|
+
// encodeBatchCall{,To} expect a JSON array of hex-encoded payload strings.
|
|
673
|
+
// Target the resolved DataEdge address (env → relay billing → WASM default,
|
|
674
|
+
// per getSubgraphConfig / #462) so writes land on the SAME contract the
|
|
675
|
+
// relay reads from — the legacy `encodeBatchCall` bakes the PROD DataEdge and
|
|
676
|
+
// stranded staging writes on prod (#460). Guard: empty address → legacy
|
|
677
|
+
// encoder (behavior-identical; avoids `encodeBatchCallTo` throwing).
|
|
664
678
|
const payloadsHex = protobufPayloads.map(p => p.toString('hex'));
|
|
665
|
-
const
|
|
679
|
+
const payloadsJson = JSON.stringify(payloadsHex);
|
|
680
|
+
const calldataBytes = config.dataEdgeAddress
|
|
681
|
+
? getWasm().encodeBatchCallTo(payloadsJson, config.dataEdgeAddress)
|
|
682
|
+
: getWasm().encodeBatchCall(payloadsJson);
|
|
666
683
|
const callData = `0x${Buffer.from(calldataBytes).toString('hex')}`;
|
|
667
684
|
|
|
668
685
|
// Get gas prices
|
package/tr-cli.ts
CHANGED
|
@@ -68,7 +68,7 @@ const STATE_PATH = CONFIG.onboardingStatePath;
|
|
|
68
68
|
// Auto-synced by skill/scripts/sync-version.mjs from skill/plugin/package.json::version.
|
|
69
69
|
// Do not edit by hand — running tests will catch drift but the publish workflow
|
|
70
70
|
// rewrites this constant at the start of every npm/ClawHub publish.
|
|
71
|
-
const PLUGIN_VERSION = '3.3.12-rc.
|
|
71
|
+
const PLUGIN_VERSION = '3.3.12-rc.23';
|
|
72
72
|
|
|
73
73
|
function die(msg: string, code = 1): never {
|
|
74
74
|
process.stderr.write(`tr: ${msg}\n`);
|