@thirdfy/agent-cli 0.2.68 → 0.2.69
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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to `@thirdfy/agent-cli` are documented here. The format is b
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.2.69] - 2026-09-16
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Managed `agent_wallet` reads do not fall back to `/execute-intent` on `PARAMS_SCHEMA_INVALID` / unknown-key. Fallback stays limited to `does not support execute rail`. Matches `thirdfy-mcp` **0.0.119**. Pin: `test/agent-wallet-readonly-fallback.test.cjs`.
|
|
12
|
+
|
|
7
13
|
## [0.2.68] - 2026-09-16
|
|
8
14
|
|
|
9
15
|
### Fixed
|
package/README.md
CHANGED
|
@@ -40,10 +40,10 @@ Run without global install:
|
|
|
40
40
|
npx @thirdfy/agent-cli --help
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
## What's new in v0.2.
|
|
43
|
+
## What's new in v0.2.69
|
|
44
44
|
|
|
45
|
-
-
|
|
46
|
-
-
|
|
45
|
+
- Managed `agent_wallet` reads keep `/execute` errors such as Avantis `get_avantis_price` unknown `symbols`. They do not fall back to an empty execute-intent queue.
|
|
46
|
+
- Execute-intent fallback stays limited to `does not support execute rail`.
|
|
47
47
|
- See [CHANGELOG.md](./CHANGELOG.md) and GitHub Releases for older versions.
|
|
48
48
|
|
|
49
49
|
## Quick start
|
package/package.json
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Managed `agent_wallet` reads prefer `/execute`. Execute-intent is only a fallback when that
|
|
3
|
+
* rail rejects the action (`does not support execute rail`). Schema failures must not fall back
|
|
4
|
+
* to an empty queued execute-intent envelope.
|
|
5
|
+
*
|
|
6
|
+
* Keep in sync with `thirdfy-mcp` `src/lib/managedReadExecuteRail.ts`.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const EXECUTE_RAIL_UNSUPPORTED_FRAGMENT = 'does not support execute rail';
|
|
10
|
+
|
|
11
|
+
export function managedReadExecuteErrorText(data) {
|
|
12
|
+
return String(data?.error || data?.message || data?.code || data?.blockedReason || '').toLowerCase();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function shouldFallbackManagedReadToExecuteIntent({ isReadOnly, errorText } = {}) {
|
|
16
|
+
if (!isReadOnly) return false;
|
|
17
|
+
const err = String(errorText || '').toLowerCase();
|
|
18
|
+
if (err.includes('params_schema_invalid') || err.includes('invalid paramsschema') || err.includes('unknown key')) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return err.includes(EXECUTE_RAIL_UNSUPPORTED_FRAGMENT);
|
|
22
|
+
}
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
import { apiGet, apiPost } from '../../core/http.mjs';
|
|
13
13
|
import { withActionTimeout } from '../../core/actionTimeouts.mjs';
|
|
14
14
|
import { isReadOnlyResolvedAction } from '../../core/readOnlyActions.mjs';
|
|
15
|
+
import { shouldFallbackManagedReadToExecuteIntent } from './managedReadExecuteRail.mjs';
|
|
15
16
|
import { createRequire } from 'module';
|
|
16
17
|
|
|
17
18
|
const require = createRequire(import.meta.url);
|
|
@@ -85,9 +86,10 @@ function isReadOnlyAction(resolved) {
|
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
function shouldFallbackAgentWalletToExecuteIntent(resolved, response) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
return shouldFallbackManagedReadToExecuteIntent({
|
|
90
|
+
isReadOnly: isReadOnlyAction(resolved),
|
|
91
|
+
errorText: String(response?.error || response?.message || response?.code || response?.blockedReason || ''),
|
|
92
|
+
});
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
// Managed /execute often returns provider payloads as JSON strings under data.result. Pack parsers
|