Commit 6c885f8
authored
fix(http): substitute path parameters only by their whole name (#7914)
* fix(http): substitute path parameters only by their whole name
The HTTP request tool replaced each path parameter with a plain string
replace of `:${key}` over the whole URL. An empty key stripped the colon
from the scheme, so `https://host` became `https//host` and the request
was refused as not absolute; a numeric key rewrote the port into the host;
and `:id` matched inside `:idx`. Models occasionally send an empty
path-parameter entry, which made agent API tool calls fail intermittently.
Substitute a key only when it starts like a JavaScript identifier, as
path-to-regexp defines `:name` parameters, and end each placeholder where
an identifier ends.
* fix(http): prefer the longest path parameter key and accept Unicode identifiers1 parent 59a364a commit 6c885f8
2 files changed
Lines changed: 70 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
73 | 110 | | |
74 | 111 | | |
75 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
84 | 116 | | |
85 | 117 | | |
86 | 118 | | |
| |||
98 | 130 | | |
99 | 131 | | |
100 | 132 | | |
101 | | - | |
102 | | - | |
103 | | - | |
| 133 | + | |
104 | 134 | | |
105 | 135 | | |
106 | 136 | | |
| |||
0 commit comments