praxis-agent 0.50.0 → 0.51.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.
package/README.md CHANGED
@@ -215,8 +215,10 @@ troubleshooting. Run `praxis --help` for the authoritative command surface.
215
215
  disconnect recovery that never replays an already-dispatched call. Default
216
216
  tool selection defers `mcp__*` schemas behind a turn-scoped `ToolSearch`;
217
217
  each query activates at most eight deterministic matches for the next model
218
- request. Explicit concrete `--tools` selections load selected tools directly, while
219
- `--disallowedTools ToolSearch` restores the complete tool list.
218
+ request, and published MCP tool descriptions are capped at 2,048 Unicode
219
+ code points. Explicit concrete `--tools` selections load selected tools
220
+ directly, while `--disallowedTools ToolSearch` restores the complete tool
221
+ list.
220
222
  - **Provider-neutral models** — native Provider Registry/Vault routing, API
221
223
  adapters, an experimental Codex OAuth adapter, explicit capability checks,
222
224
  separate per-attempt connect, byte-idle, and absolute-total timeouts, typed
@@ -21,6 +21,10 @@ function sanitizeMcpUnicode(value) {
21
21
  .replace(/[\p{Cf}\p{Co}\p{Cn}]/gu, '')
22
22
  .replace(/[\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF\uE000-\uF8FF]/gu, '');
23
23
  }
24
+ const MAX_MCP_TOOL_DESCRIPTION_CODE_POINTS = 2_048;
25
+ function capMcpToolDescription(value) {
26
+ return [...value].slice(0, MAX_MCP_TOOL_DESCRIPTION_CODE_POINTS).join('');
27
+ }
24
28
  const MAX_RESOURCE_BYTES = 25 * 1024 * 1024;
25
29
  const NO_MCP_RESOURCES = 'No resources found. MCP servers may still provide tools even if they have no resources.';
26
30
  const MCP_RESOURCE_TOOL_DEFINITIONS = [
@@ -1250,7 +1254,7 @@ export class ClaudeMcpToolRegistry {
1250
1254
  sensitiveValues,
1251
1255
  definition: {
1252
1256
  name,
1253
- description: redactSensitiveText(tool.description ?? `MCP tool ${tool.name} from ${serverName}`, sensitiveValues),
1257
+ description: capMcpToolDescription(redactSensitiveText(tool.description ?? `MCP tool ${tool.name} from ${serverName}`, sensitiveValues)),
1254
1258
  inputSchema: redactSensitiveValue(tool.inputSchema, sensitiveValues),
1255
1259
  },
1256
1260
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "praxis-agent",
3
- "version": "0.50.0",
3
+ "version": "0.51.0",
4
4
  "description": "Local-first, single-user general agent for the command line.",
5
5
  "license": "MIT",
6
6
  "author": "wuqisen",