| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 34da804 commit 9c13626
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -21,8 +21,3 @@ extensions: | |||
| 21 | 21 | - ["@openai/agents", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"] | |
| 22 | 22 | - ["@openai/guardrails", "Member[tool].Argument[0].Member[description]", "system-prompt-injection"] | |
| 23 | 23 | - ["@openai/guardrails", "Member[GuardrailAgent].Member[create].Argument[2]", "system-prompt-injection"] | |
| 24 | - - ["openai.Client", "Member[responses].Member[create].Argument[0].Member[input]", "user-prompt-injection"] | ||
| 25 | - - ["openai.Client", "Member[completions].Member[create].Argument[0].Member[prompt]", "user-prompt-injection"] | ||
| 26 | - - ["openai.Client", "Member[images].Member[generate,edit].Argument[0].Member[prompt]", "user-prompt-injection"] | ||
| 27 | - - ["openai.Client", "Member[embeddings].Member[create].Argument[0].Member[input]", "user-prompt-injection"] | ||
| 28 | - - ["openai.Client", "Member[audio].Member[transcriptions,translations].Member[create].Argument[0].Member[prompt]", "user-prompt-injection"] | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,18 +16,6 @@ private predicate isSystemOrDevMessage(API::Node msg) { | |||
| 16 | 16 | msg.getMember("role").asSink().mayHaveStringValue(["system", "developer", "assistant"]) | |
| 17 | 17 | } | |
| 18 | 18 | ||
| 19 | - module OpenAIGuardrails { | ||
| 20 | - /** Gets a reference to the `GuardrailsOpenAI` class. */ | ||
| 21 | - API::Node classRef() { | ||
| 22 | - result = API::moduleImport("@openai/guardrails") | ||
| 23 | - } | ||
| 24 | - | ||
| 25 | - API::Node getSanitizerNode() { | ||
| 26 | - // checkPlainText(userInput, bundle) or runGuardrails(userInput, bundle) | ||
| 27 | - result = classRef().getMember(["checkPlainText", "runGuardrails"]) | ||
| 28 | - } | ||
| 29 | - } | ||
| 30 | - | ||
| 31 | 19 | module OpenAI { | |
| 32 | 20 | /** Gets a reference to all OpenAI client instances. */ | |
| 33 | 21 | private API::Node allClients() { | |
@@ -43,6 +31,33 @@ module OpenAI { | |||
| 43 | 31 | .getPromised() | |
| 44 | 32 | } | |
| 45 | 33 | ||
| 34 | + /** Gets a guarded client that is clearly configured without input guardrails. */ | ||
| 35 | + private API::Node unprotectedGuardedClient() { | ||
| 36 | + exists(API::Node createCall | | ||
| 37 | + createCall = | ||
| 38 | + API::moduleImport("@openai/guardrails") | ||
| 39 | + .getMember(["GuardrailsOpenAI", "GuardrailsAzureOpenAI"]) | ||
| 40 | + .getMember("create") and | ||
| 41 | + result = createCall.getReturn().getPromised() and | ||
| 42 | + exists(createCall.getParameter(0).getMember("version")) and | ||
| 43 | + not exists( | ||
| 44 | + createCall.getParameter(0).getMember("input").getMember("guardrails").getArrayElement() | ||
| 45 | + ) and | ||
| 46 | + not exists( | ||
| 47 | + createCall.getParameter(0).getMember("pre_flight").getMember("guardrails").getArrayElement() | ||
| 48 | + ) | ||
| 49 | + ) | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + /** Gets a reference to all clients without input guardrails. */ | ||
| 53 | + private API::Node clientsNoGuardrails() { | ||
| 54 | + result = API::moduleImport("openai").getInstance() | ||
| 55 | + or | ||
| 56 | + result = API::moduleImport("openai").getMember(["OpenAI", "AzureOpenAI"]).getInstance() | ||
| 57 | + or | ||
| 58 | + result = unprotectedGuardedClient() | ||
| 59 | + } | ||
| 60 | + | ||
| 46 | 61 | /** | |
| 47 | 62 | * Gets role-filtered system/developer/assistant message sinks. | |
| 48 | 63 | * These require checking a sibling `role` property and cannot be expressed in MaD. | |
@@ -100,10 +115,18 @@ module OpenAI { | |||
| 100 | 115 | * These require checking a sibling `role` property and cannot be expressed in MaD. | |
| 101 | 116 | */ | |
| 102 | 117 | API::Node getUserPromptNode() { | |
| 118 | + // responses.create({ input: "string" }) | ||
| 119 | + result = | ||
| 120 | + clientsNoGuardrails() | ||
| 121 | + .getMember("responses") | ||
| 122 | + .getMember("create") | ||
| 123 | + .getParameter(0) | ||
| 124 | + .getMember("input") | ||
| 125 | + or | ||
| 103 | 126 | // responses.create({ input: [{ role: "user", content: ... }] }) | |
| 104 | 127 | exists(API::Node msg | | |
| 105 | 128 | msg = | |
| 106 | - allClients() | ||
| 129 | + clientsNoGuardrails() | ||
| 107 | 130 | .getMember("responses") | |
| 108 | 131 | .getMember("create") | |
| 109 | 132 | .getParameter(0) | |
@@ -117,7 +140,7 @@ module OpenAI { | |||
| 117 | 140 | // chat.completions.create({ messages: [{ role: "user", content: ... }] }) | |
| 118 | 141 | exists(API::Node msg, API::Node content | | |
| 119 | 142 | msg = | |
| 120 | - allClients() | ||
| 143 | + clientsNoGuardrails() | ||
| 121 | 144 | .getMember("chat") | |
| 122 | 145 | .getMember("completions") | |
| 123 | 146 | .getMember("create") | |
@@ -132,10 +155,34 @@ module OpenAI { | |||
| 132 | 155 | result = content.getArrayElement().getMember("text") | |
| 133 | 156 | ) | |
| 134 | 157 | or | |
| 158 | + // Legacy completions API: completions.create({ prompt: ... }) | ||
| 159 | + result = | ||
| 160 | + clientsNoGuardrails() | ||
| 161 | + .getMember("completions") | ||
| 162 | + .getMember("create") | ||
| 163 | + .getParameter(0) | ||
| 164 | + .getMember("prompt") | ||
| 165 | + or | ||
| 166 | + // images.generate({ prompt: ... }) and images.edit({ prompt: ... }) | ||
| 167 | + result = | ||
| 168 | + clientsNoGuardrails() | ||
| 169 | + .getMember("images") | ||
| 170 | + .getMember(["generate", "edit"]) | ||
| 171 | + .getParameter(0) | ||
| 172 | + .getMember("prompt") | ||
| 173 | + or | ||
| 174 | + // embeddings.create({ input: ... }) | ||
| 175 | + result = | ||
| 176 | + clientsNoGuardrails() | ||
| 177 | + .getMember("embeddings") | ||
| 178 | + .getMember("create") | ||
| 179 | + .getParameter(0) | ||
| 180 | + .getMember("input") | ||
| 181 | + or | ||
| 135 | 182 | // beta.threads.messages.create(threadId, { role: "user", content: ... }) | |
| 136 | 183 | exists(API::Node msg | | |
| 137 | 184 | msg = | |
| 138 | - allClients() | ||
| 185 | + clientsNoGuardrails() | ||
| 139 | 186 | .getMember("beta") | |
| 140 | 187 | .getMember("threads") | |
| 141 | 188 | .getMember("messages") | |
@@ -145,6 +192,15 @@ module OpenAI { | |||
| 145 | 192 | | | |
| 146 | 193 | result = msg.getMember("content") | |
| 147 | 194 | ) | |
| 195 | + or | ||
| 196 | + // audio.transcriptions/translations.create({ prompt: ... }) | ||
| 197 | + result = | ||
| 198 | + clientsNoGuardrails() | ||
| 199 | + .getMember("audio") | ||
| 200 | + .getMember(["transcriptions", "translations"]) | ||
| 201 | + .getMember("create") | ||
| 202 | + .getParameter(0) | ||
| 203 | + .getMember("prompt") | ||
| 148 | 204 | } | |
| 149 | 205 | } | |
| 150 | 206 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -9,20 +9,20 @@ edges | |||
| 9 | 9 | | gemini_user_test.js:8:9:8:17 | userInput | gemini_user_test.js:51:13:51:21 | userInput | provenance | | | |
| 10 | 10 | | gemini_user_test.js:8:9:8:17 | userInput | gemini_user_test.js:58:13:58:21 | userInput | provenance | | | |
| 11 | 11 | | gemini_user_test.js:8:21:8:39 | req.query.userInput | gemini_user_test.js:8:9:8:17 | userInput | provenance | | | |
| 12 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:24:12:24:20 | userInput | provenance | | | ||
| 13 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:33:18:33:26 | userInput | provenance | | | ||
| 14 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:44:18:44:26 | userInput | provenance | | | ||
| 15 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:58:19:58:27 | userInput | provenance | | | ||
| 16 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:68:13:68:21 | userInput | provenance | | | ||
| 17 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:73:13:73:21 | userInput | provenance | | | ||
| 18 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:77:13:77:21 | userInput | provenance | | | ||
| 19 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:83:12:83:20 | userInput | provenance | | | ||
| 20 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:90:13:90:21 | userInput | provenance | | | ||
| 21 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:96:13:96:21 | userInput | provenance | | | ||
| 22 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:102:14:102:22 | userInput | provenance | | | ||
| 23 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:108:12:108:20 | userInput | provenance | | | ||
| 24 | - | openai_user_test.js:16:9:16:17 | userInput | openai_user_test.js:155:12:155:20 | userInput | provenance | | | ||
| 25 | - | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:16:9:16:17 | userInput | provenance | | | ||
| 12 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:22:12:22:20 | userInput | provenance | | | ||
| 13 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:31:18:31:26 | userInput | provenance | | | ||
| 14 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:42:18:42:26 | userInput | provenance | | | ||
| 15 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:56:19:56:27 | userInput | provenance | | | ||
| 16 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:66:13:66:21 | userInput | provenance | | | ||
| 17 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:71:13:71:21 | userInput | provenance | | | ||
| 18 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:75:13:75:21 | userInput | provenance | | | ||
| 19 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:81:12:81:20 | userInput | provenance | | | ||
| 20 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:88:13:88:21 | userInput | provenance | | | ||
| 21 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:94:13:94:21 | userInput | provenance | | | ||
| 22 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:100:14:100:22 | userInput | provenance | | | ||
| 23 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:106:12:106:20 | userInput | provenance | | | ||
| 24 | + | openai_user_test.js:14:9:14:17 | userInput | openai_user_test.js:153:12:153:20 | userInput | provenance | | | ||
| 25 | + | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:14:9:14:17 | userInput | provenance | | | ||
| 26 | 26 | nodes | |
| 27 | 27 | | anthropic_user_test.js:8:9:8:17 | userInput | semmle.label | userInput | | |
| 28 | 28 | | anthropic_user_test.js:8:21:8:39 | req.query.userInput | semmle.label | req.query.userInput | | |
@@ -36,21 +36,21 @@ nodes | |||
| 36 | 36 | | gemini_user_test.js:44:13:44:21 | userInput | semmle.label | userInput | | |
| 37 | 37 | | gemini_user_test.js:51:13:51:21 | userInput | semmle.label | userInput | | |
| 38 | 38 | | gemini_user_test.js:58:13:58:21 | userInput | semmle.label | userInput | | |
| 39 | - | openai_user_test.js:16:9:16:17 | userInput | semmle.label | userInput | | ||
| 40 | - | openai_user_test.js:16:21:16:39 | req.query.userInput | semmle.label | req.query.userInput | | ||
| 41 | - | openai_user_test.js:24:12:24:20 | userInput | semmle.label | userInput | | ||
| 42 | - | openai_user_test.js:33:18:33:26 | userInput | semmle.label | userInput | | ||
| 43 | - | openai_user_test.js:44:18:44:26 | userInput | semmle.label | userInput | | ||
| 44 | - | openai_user_test.js:58:19:58:27 | userInput | semmle.label | userInput | | ||
| 45 | - | openai_user_test.js:68:13:68:21 | userInput | semmle.label | userInput | | ||
| 46 | - | openai_user_test.js:73:13:73:21 | userInput | semmle.label | userInput | | ||
| 47 | - | openai_user_test.js:77:13:77:21 | userInput | semmle.label | userInput | | ||
| 48 | - | openai_user_test.js:83:12:83:20 | userInput | semmle.label | userInput | | ||
| 49 | - | openai_user_test.js:90:13:90:21 | userInput | semmle.label | userInput | | ||
| 50 | - | openai_user_test.js:96:13:96:21 | userInput | semmle.label | userInput | | ||
| 51 | - | openai_user_test.js:102:14:102:22 | userInput | semmle.label | userInput | | ||
| 52 | - | openai_user_test.js:108:12:108:20 | userInput | semmle.label | userInput | | ||
| 53 | - | openai_user_test.js:155:12:155:20 | userInput | semmle.label | userInput | | ||
| 39 | + | openai_user_test.js:14:9:14:17 | userInput | semmle.label | userInput | | ||
| 40 | + | openai_user_test.js:14:21:14:39 | req.query.userInput | semmle.label | req.query.userInput | | ||
| 41 | + | openai_user_test.js:22:12:22:20 | userInput | semmle.label | userInput | | ||
| 42 | + | openai_user_test.js:31:18:31:26 | userInput | semmle.label | userInput | | ||
| 43 | + | openai_user_test.js:42:18:42:26 | userInput | semmle.label | userInput | | ||
| 44 | + | openai_user_test.js:56:19:56:27 | userInput | semmle.label | userInput | | ||
| 45 | + | openai_user_test.js:66:13:66:21 | userInput | semmle.label | userInput | | ||
| 46 | + | openai_user_test.js:71:13:71:21 | userInput | semmle.label | userInput | | ||
| 47 | + | openai_user_test.js:75:13:75:21 | userInput | semmle.label | userInput | | ||
| 48 | + | openai_user_test.js:81:12:81:20 | userInput | semmle.label | userInput | | ||
| 49 | + | openai_user_test.js:88:13:88:21 | userInput | semmle.label | userInput | | ||
| 50 | + | openai_user_test.js:94:13:94:21 | userInput | semmle.label | userInput | | ||
| 51 | + | openai_user_test.js:100:14:100:22 | userInput | semmle.label | userInput | | ||
| 52 | + | openai_user_test.js:106:12:106:20 | userInput | semmle.label | userInput | | ||
| 53 | + | openai_user_test.js:153:12:153:20 | userInput | semmle.label | userInput | | ||
| 54 | 54 | subpaths | |
| 55 | 55 | #select | |
| 56 | 56 | | anthropic_user_test.js:18:18:18:26 | userInput | anthropic_user_test.js:8:21:8:39 | req.query.userInput | anthropic_user_test.js:18:18:18:26 | userInput | This prompt construction depends on a $@. | anthropic_user_test.js:8:21:8:39 | req.query.userInput | user-provided value | | |
@@ -61,16 +61,16 @@ subpaths | |||
| 61 | 61 | | gemini_user_test.js:44:13:44:21 | userInput | gemini_user_test.js:8:21:8:39 | req.query.userInput | gemini_user_test.js:44:13:44:21 | userInput | This prompt construction depends on a $@. | gemini_user_test.js:8:21:8:39 | req.query.userInput | user-provided value | | |
| 62 | 62 | | gemini_user_test.js:51:13:51:21 | userInput | gemini_user_test.js:8:21:8:39 | req.query.userInput | gemini_user_test.js:51:13:51:21 | userInput | This prompt construction depends on a $@. | gemini_user_test.js:8:21:8:39 | req.query.userInput | user-provided value | | |
| 63 | 63 | | gemini_user_test.js:58:13:58:21 | userInput | gemini_user_test.js:8:21:8:39 | req.query.userInput | gemini_user_test.js:58:13:58:21 | userInput | This prompt construction depends on a $@. | gemini_user_test.js:8:21:8:39 | req.query.userInput | user-provided value | | |
| 64 | - | openai_user_test.js:24:12:24:20 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:24:12:24:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 65 | - | openai_user_test.js:33:18:33:26 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:33:18:33:26 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 66 | - | openai_user_test.js:44:18:44:26 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:44:18:44:26 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 67 | - | openai_user_test.js:58:19:58:27 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:58:19:58:27 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 68 | - | openai_user_test.js:68:13:68:21 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:68:13:68:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 69 | - | openai_user_test.js:73:13:73:21 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:73:13:73:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 70 | - | openai_user_test.js:77:13:77:21 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:77:13:77:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 71 | - | openai_user_test.js:83:12:83:20 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:83:12:83:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 72 | - | openai_user_test.js:90:13:90:21 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:90:13:90:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 73 | - | openai_user_test.js:96:13:96:21 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:96:13:96:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 74 | - | openai_user_test.js:102:14:102:22 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:102:14:102:22 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 75 | - | openai_user_test.js:108:12:108:20 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:108:12:108:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 76 | - | openai_user_test.js:155:12:155:20 | userInput | openai_user_test.js:16:21:16:39 | req.query.userInput | openai_user_test.js:155:12:155:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:16:21:16:39 | req.query.userInput | user-provided value | | ||
| 64 | + | openai_user_test.js:22:12:22:20 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:22:12:22:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 65 | + | openai_user_test.js:31:18:31:26 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:31:18:31:26 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 66 | + | openai_user_test.js:42:18:42:26 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:42:18:42:26 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 67 | + | openai_user_test.js:56:19:56:27 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:56:19:56:27 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 68 | + | openai_user_test.js:66:13:66:21 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:66:13:66:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 69 | + | openai_user_test.js:71:13:71:21 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:71:13:71:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 70 | + | openai_user_test.js:75:13:75:21 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:75:13:75:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 71 | + | openai_user_test.js:81:12:81:20 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:81:12:81:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 72 | + | openai_user_test.js:88:13:88:21 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:88:13:88:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 73 | + | openai_user_test.js:94:13:94:21 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:94:13:94:21 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 74 | + | openai_user_test.js:100:14:100:22 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:100:14:100:22 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 75 | + | openai_user_test.js:106:12:106:20 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:106:12:106:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| 76 | + | openai_user_test.js:153:12:153:20 | userInput | openai_user_test.js:14:21:14:39 | req.query.userInput | openai_user_test.js:153:12:153:20 | userInput | This prompt construction depends on a $@. | openai_user_test.js:14:21:14:39 | req.query.userInput | user-provided value | | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments