codex-chatgpt-control 0.3.0-alpha.1 → 0.5.0-alpha.1

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.
Files changed (214) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +42 -2
  3. package/contracts/v1/fixtures/backend-capabilities.json +10 -0
  4. package/contracts/v1/fixtures/command-descriptors.json +257 -6
  5. package/contracts/v1/fixtures/describe-runner-run.json +5 -2
  6. package/contracts/v1/fixtures/doctor-scenario-preflight.json +34 -2
  7. package/contracts/v1/fixtures/help-root.json +1 -1
  8. package/contracts/v1/fixtures/output-json-parse-success.json +9 -0
  9. package/contracts/v1/fixtures/run-timeout-partial.json +15 -4
  10. package/contracts/v1/fixtures/stream-in-progress.ndjson +3 -0
  11. package/contracts/v1/fixtures/stream-submitted-completed.ndjson +1 -1
  12. package/contracts/v1/fixtures/surface-chat-legacy.json +35 -0
  13. package/contracts/v1/fixtures/surface-chat-simplified.json +37 -0
  14. package/contracts/v1/fixtures/surface-sidebar-false-positive.json +29 -0
  15. package/contracts/v1/fixtures/surface-work-advanced.json +45 -0
  16. package/contracts/v1/fixtures/surface-work-basic.json +38 -0
  17. package/contracts/v1/fixtures/workflow-ask-success.json +8 -0
  18. package/contracts/v1/manifest.json +32 -1
  19. package/contracts/v1/parity-suite.json +113 -0
  20. package/contracts/v1/schemas/backend-request.schema.json +15 -0
  21. package/contracts/v1/schemas/manifest.schema.json +6 -3
  22. package/contracts/v1/schemas/surface-profile.schema.json +166 -0
  23. package/dist/codex-chatgpt-control-backend.mjs +2045 -227
  24. package/dist/codex-chatgpt-control.bundle.mjs +3817 -1960
  25. package/dist/src/backend/client.d.ts +26 -1
  26. package/dist/src/backend/client.js +23 -1
  27. package/dist/src/backend/protocol.d.ts +1 -1
  28. package/dist/src/backend/protocol.js +10 -0
  29. package/dist/src/backend/session.js +20 -0
  30. package/dist/src/browser/attach.d.ts +1 -0
  31. package/dist/src/browser/attach.js +3 -3
  32. package/dist/src/browser/page-state.js +5 -2
  33. package/dist/src/client.d.ts +31 -1
  34. package/dist/src/client.js +69 -14
  35. package/dist/src/commands/artifacts.js +1 -7
  36. package/dist/src/commands/configuration.d.ts +15 -0
  37. package/dist/src/commands/configuration.js +674 -0
  38. package/dist/src/commands/doctor.js +38 -1
  39. package/dist/src/commands/experience.d.ts +12 -0
  40. package/dist/src/commands/experience.js +288 -0
  41. package/dist/src/commands/files.js +1 -7
  42. package/dist/src/commands/messages.d.ts +2 -1
  43. package/dist/src/commands/messages.js +138 -16
  44. package/dist/src/commands/modes.js +28 -14
  45. package/dist/src/commands/registry.js +69 -7
  46. package/dist/src/commands/response-actions.js +1 -7
  47. package/dist/src/commands/sequence.js +24 -1
  48. package/dist/src/commands/session.d.ts +2 -0
  49. package/dist/src/commands/session.js +50 -1
  50. package/dist/src/commands/threads.js +1 -7
  51. package/dist/src/commands/work.d.ts +6 -0
  52. package/dist/src/commands/work.js +338 -0
  53. package/dist/src/dom/locale/am.d.ts +2 -1
  54. package/dist/src/dom/locale/am.js +2 -1
  55. package/dist/src/dom/locale/ar.d.ts +2 -1
  56. package/dist/src/dom/locale/ar.js +2 -1
  57. package/dist/src/dom/locale/bg.d.ts +2 -1
  58. package/dist/src/dom/locale/bg.js +2 -1
  59. package/dist/src/dom/locale/bn.d.ts +2 -1
  60. package/dist/src/dom/locale/bn.js +2 -1
  61. package/dist/src/dom/locale/bs.d.ts +2 -1
  62. package/dist/src/dom/locale/bs.js +2 -1
  63. package/dist/src/dom/locale/ca.d.ts +2 -1
  64. package/dist/src/dom/locale/ca.js +2 -1
  65. package/dist/src/dom/locale/cs.d.ts +2 -1
  66. package/dist/src/dom/locale/cs.js +2 -1
  67. package/dist/src/dom/locale/da.d.ts +2 -1
  68. package/dist/src/dom/locale/da.js +2 -1
  69. package/dist/src/dom/locale/de.d.ts +4 -3
  70. package/dist/src/dom/locale/de.js +4 -3
  71. package/dist/src/dom/locale/el.d.ts +2 -1
  72. package/dist/src/dom/locale/el.js +2 -1
  73. package/dist/src/dom/locale/en.d.ts +27 -2
  74. package/dist/src/dom/locale/en.js +28 -2
  75. package/dist/src/dom/locale/es-419.d.ts +2 -1
  76. package/dist/src/dom/locale/es-419.js +2 -1
  77. package/dist/src/dom/locale/es-ES.d.ts +2 -1
  78. package/dist/src/dom/locale/es-ES.js +2 -1
  79. package/dist/src/dom/locale/et.d.ts +2 -1
  80. package/dist/src/dom/locale/et.js +2 -1
  81. package/dist/src/dom/locale/fa.d.ts +2 -1
  82. package/dist/src/dom/locale/fa.js +2 -1
  83. package/dist/src/dom/locale/fi.d.ts +2 -1
  84. package/dist/src/dom/locale/fi.js +2 -1
  85. package/dist/src/dom/locale/fr-CA.d.ts +2 -1
  86. package/dist/src/dom/locale/fr-CA.js +2 -1
  87. package/dist/src/dom/locale/fr-FR.d.ts +3 -3
  88. package/dist/src/dom/locale/fr-FR.js +3 -3
  89. package/dist/src/dom/locale/gu.d.ts +2 -1
  90. package/dist/src/dom/locale/gu.js +2 -1
  91. package/dist/src/dom/locale/hi.d.ts +2 -1
  92. package/dist/src/dom/locale/hi.js +2 -1
  93. package/dist/src/dom/locale/hr.d.ts +2 -1
  94. package/dist/src/dom/locale/hr.js +2 -1
  95. package/dist/src/dom/locale/hu.d.ts +2 -1
  96. package/dist/src/dom/locale/hu.js +2 -1
  97. package/dist/src/dom/locale/hy.d.ts +2 -1
  98. package/dist/src/dom/locale/hy.js +2 -1
  99. package/dist/src/dom/locale/id.d.ts +2 -1
  100. package/dist/src/dom/locale/id.js +2 -1
  101. package/dist/src/dom/locale/index.d.ts +17 -2
  102. package/dist/src/dom/locale/index.js +65 -0
  103. package/dist/src/dom/locale/is.d.ts +2 -1
  104. package/dist/src/dom/locale/is.js +2 -1
  105. package/dist/src/dom/locale/it.d.ts +2 -1
  106. package/dist/src/dom/locale/it.js +2 -1
  107. package/dist/src/dom/locale/ja.d.ts +2 -1
  108. package/dist/src/dom/locale/ja.js +2 -1
  109. package/dist/src/dom/locale/ka.d.ts +2 -1
  110. package/dist/src/dom/locale/ka.js +2 -1
  111. package/dist/src/dom/locale/kk.d.ts +2 -1
  112. package/dist/src/dom/locale/kk.js +2 -1
  113. package/dist/src/dom/locale/kn.d.ts +2 -1
  114. package/dist/src/dom/locale/kn.js +2 -1
  115. package/dist/src/dom/locale/ko.d.ts +2 -1
  116. package/dist/src/dom/locale/ko.js +2 -1
  117. package/dist/src/dom/locale/lt.d.ts +2 -1
  118. package/dist/src/dom/locale/lt.js +2 -1
  119. package/dist/src/dom/locale/lv.d.ts +2 -1
  120. package/dist/src/dom/locale/lv.js +2 -1
  121. package/dist/src/dom/locale/mk.d.ts +2 -1
  122. package/dist/src/dom/locale/mk.js +2 -1
  123. package/dist/src/dom/locale/ml.d.ts +2 -1
  124. package/dist/src/dom/locale/ml.js +2 -1
  125. package/dist/src/dom/locale/mn.d.ts +2 -1
  126. package/dist/src/dom/locale/mn.js +2 -1
  127. package/dist/src/dom/locale/mr.d.ts +2 -1
  128. package/dist/src/dom/locale/mr.js +2 -1
  129. package/dist/src/dom/locale/ms.d.ts +2 -1
  130. package/dist/src/dom/locale/ms.js +2 -1
  131. package/dist/src/dom/locale/my.d.ts +2 -1
  132. package/dist/src/dom/locale/my.js +2 -1
  133. package/dist/src/dom/locale/nb.d.ts +2 -1
  134. package/dist/src/dom/locale/nb.js +2 -1
  135. package/dist/src/dom/locale/nl.d.ts +2 -1
  136. package/dist/src/dom/locale/nl.js +2 -1
  137. package/dist/src/dom/locale/pa.d.ts +2 -1
  138. package/dist/src/dom/locale/pa.js +2 -1
  139. package/dist/src/dom/locale/pl.d.ts +2 -1
  140. package/dist/src/dom/locale/pl.js +2 -1
  141. package/dist/src/dom/locale/pt-BR.d.ts +2 -1
  142. package/dist/src/dom/locale/pt-BR.js +2 -1
  143. package/dist/src/dom/locale/pt-PT.d.ts +2 -1
  144. package/dist/src/dom/locale/pt-PT.js +2 -1
  145. package/dist/src/dom/locale/ro.d.ts +2 -1
  146. package/dist/src/dom/locale/ro.js +2 -1
  147. package/dist/src/dom/locale/ru.d.ts +2 -1
  148. package/dist/src/dom/locale/ru.js +2 -1
  149. package/dist/src/dom/locale/sk.d.ts +2 -1
  150. package/dist/src/dom/locale/sk.js +2 -1
  151. package/dist/src/dom/locale/sl.d.ts +2 -1
  152. package/dist/src/dom/locale/sl.js +2 -1
  153. package/dist/src/dom/locale/so.d.ts +2 -1
  154. package/dist/src/dom/locale/so.js +2 -1
  155. package/dist/src/dom/locale/sq.d.ts +2 -1
  156. package/dist/src/dom/locale/sq.js +2 -1
  157. package/dist/src/dom/locale/sr.d.ts +2 -1
  158. package/dist/src/dom/locale/sr.js +2 -1
  159. package/dist/src/dom/locale/sv.d.ts +2 -1
  160. package/dist/src/dom/locale/sv.js +2 -1
  161. package/dist/src/dom/locale/sw.d.ts +2 -1
  162. package/dist/src/dom/locale/sw.js +2 -1
  163. package/dist/src/dom/locale/ta.d.ts +2 -1
  164. package/dist/src/dom/locale/ta.js +2 -1
  165. package/dist/src/dom/locale/te.d.ts +2 -1
  166. package/dist/src/dom/locale/te.js +2 -1
  167. package/dist/src/dom/locale/th.d.ts +2 -1
  168. package/dist/src/dom/locale/th.js +2 -1
  169. package/dist/src/dom/locale/tl.d.ts +4 -5
  170. package/dist/src/dom/locale/tl.js +4 -5
  171. package/dist/src/dom/locale/tr.d.ts +2 -1
  172. package/dist/src/dom/locale/tr.js +2 -1
  173. package/dist/src/dom/locale/types.d.ts +18 -1
  174. package/dist/src/dom/locale/uk.d.ts +2 -1
  175. package/dist/src/dom/locale/uk.js +2 -1
  176. package/dist/src/dom/locale/ur.d.ts +2 -1
  177. package/dist/src/dom/locale/ur.js +2 -1
  178. package/dist/src/dom/locale/vi.d.ts +2 -1
  179. package/dist/src/dom/locale/vi.js +2 -1
  180. package/dist/src/dom/locale/zh-HK.d.ts +2 -1
  181. package/dist/src/dom/locale/zh-HK.js +4 -3
  182. package/dist/src/dom/locale/zh-Hans.d.ts +2 -1
  183. package/dist/src/dom/locale/zh-Hans.js +2 -1
  184. package/dist/src/dom/locale/zh-TW.d.ts +2 -1
  185. package/dist/src/dom/locale/zh-TW.js +2 -1
  186. package/dist/src/dom/selectors.js +6 -1
  187. package/dist/src/index.d.ts +3 -0
  188. package/dist/src/index.js +3 -0
  189. package/dist/src/runner/responses.d.ts +3 -1
  190. package/dist/src/runner/responses.js +16 -1
  191. package/dist/src/runner/result.js +129 -4
  192. package/dist/src/runner/stream.d.ts +1 -1
  193. package/dist/src/runner/stream.js +6 -0
  194. package/dist/src/runner/types.d.ts +35 -1
  195. package/dist/src/safety/risk.d.ts +10 -0
  196. package/dist/src/safety/risk.js +10 -0
  197. package/dist/src/scripts/apply-intelligence-locale-captures.d.ts +6 -0
  198. package/dist/src/scripts/apply-intelligence-locale-captures.js +53 -7
  199. package/dist/src/scripts/capture-intelligence-locales.d.ts +3 -0
  200. package/dist/src/scripts/capture-intelligence-locales.js +372 -3
  201. package/dist/src/scripts/capture-surface-profile.d.ts +23 -0
  202. package/dist/src/scripts/capture-surface-profile.js +304 -0
  203. package/dist/src/scripts/live-smoke/scenarios.js +34 -1
  204. package/dist/src/scripts/live-smoke.js +1 -0
  205. package/dist/src/types.d.ts +245 -2
  206. package/package.json +3 -2
  207. package/references/2026-07-16-chat-work-surfaces.md +87 -0
  208. package/references/agents-runner.md +13 -2
  209. package/references/backend-protocol.md +15 -5
  210. package/references/language-coverage.md +40 -3
  211. package/references/localization.md +34 -6
  212. package/references/python-parity.md +11 -1
  213. package/references/responses-adapter.md +12 -1
  214. package/references/troubleshooting.md +22 -2
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const pa = {
10
10
  composerTextbox: ["ਕੁਝ ਵੀ ਪੁੱਛੋ"],
@@ -32,4 +32,5 @@ export const pa = {
32
32
  },
33
33
  signedInMarkers: ["ਨਵੀਂ ਚੈਟ", "ਚੈਟਾਂ ਖੋਜੋ", "ਹਾਲੀਆ", "ਚੈਟ ਹਿਸਟਰੀ", "ਪ੍ਰੋਜੈਕਟ", "ਕੁਝ ਵੀ ਪੁੱਛੋ"],
34
34
  responseActions: ["ਜਵਾਬ ਕਾਪੀ ਕਰੋ"],
35
+ stopControl: ["ਜਵਾਬ ਦੇਣਾ ਬੰਦ ਕਰੋ"],
35
36
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const pl: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const pl: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const pl = {
10
10
  composerTextbox: ["Zapytaj o cokolwiek"],
@@ -31,4 +31,5 @@ export const pl = {
31
31
  },
32
32
  signedInMarkers: ["Nowy czat", "Szukaj czatów", "Ostatnie", "Historia czatu", "Projekty", "Zapytaj o cokolwiek"],
33
33
  responseActions: ["Kopiuj odpowiedź"],
34
+ stopControl: ["Przerwij odpowiedź"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const ptBR: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const ptBR: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const ptBR = {
10
10
  composerTextbox: ["Pergunte alguma coisa"],
@@ -31,4 +31,5 @@ export const ptBR = {
31
31
  },
32
32
  signedInMarkers: ["Novo chat", "Buscar chats", "Recentes", "Histórico de chats", "Projetos", "Pergunte alguma coisa"],
33
33
  responseActions: ["Copiar resposta"],
34
+ stopControl: ["Parar de responder"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const ptPT: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const ptPT: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const ptPT = {
10
10
  composerTextbox: ["Pergunte qualquer coisa"],
@@ -31,4 +31,5 @@ export const ptPT = {
31
31
  },
32
32
  signedInMarkers: ["Novo chat", "Pesquisar chats", "Recentes", "Histórico de chat", "Projetos", "Pergunte qualquer coisa"],
33
33
  responseActions: ["Copiar resposta"],
34
+ stopControl: ["Parar resposta"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const ro: {
10
10
  composerTextbox: string[];
@@ -30,4 +30,5 @@ export declare const ro: {
30
30
  };
31
31
  signedInMarkers: string[];
32
32
  responseActions: string[];
33
+ stopControl: string[];
33
34
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const ro = {
10
10
  composerTextbox: ["Întreabă orice"],
@@ -30,4 +30,5 @@ export const ro = {
30
30
  },
31
31
  signedInMarkers: ["Discuție nouă", "Caută discuții", "Recente", "Istoricul discuțiilor", "Proiecte", "Întreabă orice"],
32
32
  responseActions: ["Copiază răspunsul"],
33
+ stopControl: ["Oprește răspunsul"],
33
34
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const ru: {
10
10
  composerTextbox: string[];
@@ -28,4 +28,5 @@ export declare const ru: {
28
28
  };
29
29
  signedInMarkers: string[];
30
30
  responseActions: string[];
31
+ stopControl: string[];
31
32
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const ru = {
10
10
  composerTextbox: ["Спросите ChatGPT"],
@@ -28,4 +28,5 @@ export const ru = {
28
28
  },
29
29
  signedInMarkers: ["Новый чат", "Искать чаты", "Недавнее", "История чата", "Проекты", "Спросите ChatGPT"],
30
30
  responseActions: ["Копировать ответ"],
31
+ stopControl: ["Остановить ответ"],
31
32
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const sk: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const sk: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const sk = {
10
10
  composerTextbox: ["Spýtaj sa hocičo…"],
@@ -31,4 +31,5 @@ export const sk = {
31
31
  },
32
32
  signedInMarkers: ["Nový čet", "Hľadať v četoch", "Nedávne", "História četov", "Projekty", "Spýtaj sa hocičo…"],
33
33
  responseActions: ["Kopírovať odpoveď"],
34
+ stopControl: ["Zastaviť odpoveď"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const sl: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const sl: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const sl = {
10
10
  composerTextbox: ["Vprašajte kar koli"],
@@ -31,4 +31,5 @@ export const sl = {
31
31
  },
32
32
  signedInMarkers: ["Nov klepet", "Išči po klepetih", "Nedavno", "Zgodovina klepetov", "Projekti", "Vprašajte kar koli"],
33
33
  responseActions: ["Kopiraj odgovor"],
34
+ stopControl: ["Ustavi odgovarjanje"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const so: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const so: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const so = {
10
10
  composerTextbox: ["Waydii waxkasta"],
@@ -31,4 +31,5 @@ export const so = {
31
31
  },
32
32
  signedInMarkers: ["Wada Sheekeysi cusub", "Raadi wada-sheekaysiyada", "Waxyaabihii dhawaa", "Taariikhda sheekeysiga", "Mashruucyada", "Waydii waxkasta"],
33
33
  responseActions: ["Koobiyee jawaabta"],
34
+ stopControl: ["Jooji jawaabista"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const sq: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const sq: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const sq = {
10
10
  composerTextbox: ["Pyet për çdo gjë"],
@@ -31,4 +31,5 @@ export const sq = {
31
31
  },
32
32
  signedInMarkers: ["Bisedë e re", "Kërko bisedat", "Më të fundit", "Historia e bisedës", "Projektet", "Pyet për çdo gjë"],
33
33
  responseActions: ["Kopjo përgjigjen"],
34
+ stopControl: ["Ndalo përgjigjen"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const sr: {
10
10
  composerTextbox: string[];
@@ -28,4 +28,5 @@ export declare const sr: {
28
28
  };
29
29
  signedInMarkers: string[];
30
30
  responseActions: string[];
31
+ stopControl: string[];
31
32
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const sr = {
10
10
  composerTextbox: ["Питај било шта"],
@@ -28,4 +28,5 @@ export const sr = {
28
28
  },
29
29
  signedInMarkers: ["Ново ћаскање", "Претражи ћаскања", "Скорашњи", "Историја ћаскања", "Пројекти", "Питај било шта"],
30
30
  responseActions: ["Копирај одговор"],
31
+ stopControl: ["Заустави одговарање"],
31
32
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const sv: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const sv: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const sv = {
10
10
  composerTextbox: ["Fråga vad som helst"],
@@ -31,4 +31,5 @@ export const sv = {
31
31
  },
32
32
  signedInMarkers: ["Ny chatt", "Sök i chattar", "Senaste", "Chatthistorik", "Projekt", "Fråga vad som helst"],
33
33
  responseActions: ["Kopiera svar"],
34
+ stopControl: ["Sluta svara"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const sw: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const sw: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const sw = {
10
10
  composerTextbox: ["Uliza chochote"],
@@ -31,4 +31,5 @@ export const sw = {
31
31
  },
32
32
  signedInMarkers: ["Chati mpya", "Tafuta mazungumzo", "Hivi karibuni", "Historia ya chati", "Miradi", "Uliza chochote"],
33
33
  responseActions: ["Nakili jibu"],
34
+ stopControl: ["Sitisha kujibu"],
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const ta: {
10
10
  composerTextbox: string[];
@@ -32,4 +32,5 @@ export declare const ta: {
32
32
  };
33
33
  signedInMarkers: string[];
34
34
  responseActions: string[];
35
+ stopControl: string[];
35
36
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const ta = {
10
10
  composerTextbox: ["எதையும் கேளுங்கள்"],
@@ -32,4 +32,5 @@ export const ta = {
32
32
  },
33
33
  signedInMarkers: ["புதிய அரட்டை", "அரட்டைகளைத் தேடு", "சமீபத்தியது", "அரட்டை வரலாறு", "திட்டங்கள்", "எதையும் கேளுங்கள்"],
34
34
  responseActions: ["பதிலை நகலெடுக்கலாம்"],
35
+ stopControl: ["பதிலளிப்பதை நிறுத்து"],
35
36
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const te: {
10
10
  composerTextbox: string[];
@@ -32,4 +32,5 @@ export declare const te: {
32
32
  };
33
33
  signedInMarkers: string[];
34
34
  responseActions: string[];
35
+ stopControl: string[];
35
36
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const te = {
10
10
  composerTextbox: ["ఏదైనా అడగండి"],
@@ -32,4 +32,5 @@ export const te = {
32
32
  },
33
33
  signedInMarkers: ["కొత్త చాట్", "చాట్‌లను శోధించండి", "ఇటీవలివి", "చాట్ చరిత్ర", "ప్రాజెక్ట్‌లు", "ఏదైనా అడగండి"],
34
34
  responseActions: ["ప్రతిస్పందనను కాపీ చేయండి"],
35
+ stopControl: ["సమాధానం ఇవ్వడం ఆపు"],
35
36
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const th: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const th: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const th = {
10
10
  composerTextbox: ["ถามอะไรก็ได้"],
@@ -31,4 +31,5 @@ export const th = {
31
31
  },
32
32
  signedInMarkers: ["แชตใหม่", "ค้นหาแชต", "เมื่อเร็วๆ นี้", "ประวัติการแชต", "โครงการ", "ถามอะไรก็ได้"],
33
33
  responseActions: ["คัดลอกคำตอบ"],
34
+ stopControl: ["หยุดตอบ"],
34
35
  };
@@ -2,11 +2,9 @@
2
2
  * Tagalog / Filipino (tl). Captured 2026-06-09 against a live chatgpt.com session
3
3
  * (html lang=tl, Google Translate confirmed off).
4
4
  *
5
- * Omitted because they match English case-insensitively: `modeLabels` (Instant / Medium /
6
- * High / Extra High / Pro), `deep_research` tool label ("Deep research").
7
- * Not yet captured — fall back to English + `selector_drift`: `download`, `downloadImage`,
8
- * `imageContainerHint`, `transientAssistant`, `stopControl`, and the login/captcha/rate-limit
9
- * blocker copy.
5
+ * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
+ *
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
10
8
  */
11
9
  export declare const tl: {
12
10
  composerTextbox: string[];
@@ -25,4 +23,5 @@ export declare const tl: {
25
23
  };
26
24
  signedInMarkers: string[];
27
25
  responseActions: string[];
26
+ stopControl: string[];
28
27
  };
@@ -2,11 +2,9 @@
2
2
  * Tagalog / Filipino (tl). Captured 2026-06-09 against a live chatgpt.com session
3
3
  * (html lang=tl, Google Translate confirmed off).
4
4
  *
5
- * Omitted because they match English case-insensitively: `modeLabels` (Instant / Medium /
6
- * High / Extra High / Pro), `deep_research` tool label ("Deep research").
7
- * Not yet captured — fall back to English + `selector_drift`: `download`, `downloadImage`,
8
- * `imageContainerHint`, `transientAssistant`, `stopControl`, and the login/captcha/rate-limit
9
- * blocker copy.
5
+ * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
+ *
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
10
8
  */
11
9
  export const tl = {
12
10
  composerTextbox: ["Mag-chat sa ChatGPT"],
@@ -25,4 +23,5 @@ export const tl = {
25
23
  },
26
24
  signedInMarkers: ["Bagong chat", "Maghanap sa mga chat", "Mga kamakailan", "History ng chat", "Mga proyekto", "Mag-chat sa ChatGPT"],
27
25
  responseActions: ["Kopyahin ang sagot"],
26
+ stopControl: ["Itigil ang pagsagot"],
28
27
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const tr: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const tr: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const tr = {
10
10
  composerTextbox: ["Herhangi bir şey sor"],
@@ -31,4 +31,5 @@ export const tr = {
31
31
  },
32
32
  signedInMarkers: ["Yeni sohbet", "Sohbetlerde ara", "Yakın zamandakiler", "Sohbet geçmişi", "Projeler", "Herhangi bir şey sor"],
33
33
  responseActions: ["Yanıtı kopyala"],
34
+ stopControl: ["Yanıtlamayı durdur"],
34
35
  };
@@ -11,8 +11,19 @@
11
11
  export type ModeOptionId = "latest" | "instant" | "thinking" | "extended" | "medium" | "high" | "extraHigh" | "pro";
12
12
  export type ModeOptionLabels = Record<ModeOptionId, string | readonly string[]>;
13
13
  export type ModeOptionContribution = Partial<ModeOptionLabels>;
14
+ export type ExperienceOptionId = "chat" | "work";
15
+ export type ExperienceOptionLabels = Record<ExperienceOptionId, string | readonly string[]>;
16
+ export type ExperienceOptionContribution = Partial<ExperienceOptionLabels>;
17
+ export type ConfigurationAxisLabelId = "model" | "intelligence" | "effort" | "speed" | "advanced";
18
+ export type ConfigurationAxisLabels = Record<ConfigurationAxisLabelId, string | readonly string[]>;
19
+ export type ConfigurationAxisContribution = Partial<ConfigurationAxisLabels>;
20
+ export type ConfigurationOptionId = "instant" | "light" | "medium" | "high" | "extraHigh" | "max" | "ultra" | "pro" | "standard" | "fast";
21
+ export type ConfigurationOptionLabels = Record<ConfigurationOptionId, string | readonly string[]>;
22
+ export type ConfigurationOptionContribution = Partial<ConfigurationOptionLabels>;
14
23
  export type LocaleStrings = {
15
24
  composerTextbox: string | readonly string[];
25
+ workComposerTextbox: string | readonly string[];
26
+ newWork: string | readonly string[];
16
27
  sendButton: string | readonly string[];
17
28
  searchChatsButton: string | readonly string[];
18
29
  searchChatsPlaceholder: string | readonly string[];
@@ -30,6 +41,9 @@ export type LocaleStrings = {
30
41
  modeLabels: string | readonly string[];
31
42
  modeOptions: ModeOptionLabels;
32
43
  modeOpenerExtra: string | readonly string[];
44
+ experienceOptions: ExperienceOptionLabels;
45
+ configurationAxes: ConfigurationAxisLabels;
46
+ configurationOptions: ConfigurationOptionLabels;
33
47
  threadActionMenuItems: string | readonly string[];
34
48
  threadActionPrefixes: string | readonly string[];
35
49
  tools: Record<"web_search" | "deep_research" | "create_image", string | readonly string[]>;
@@ -46,7 +60,10 @@ export type LocaleStrings = {
46
60
  * The type for non-English locale files. Every key is optional so a contributor only
47
61
  * needs to supply the strings that differ from English. `tools` is also partial.
48
62
  */
49
- export type LocaleContribution = Partial<Omit<LocaleStrings, "tools" | "modeOptions">> & {
63
+ export type LocaleContribution = Partial<Omit<LocaleStrings, "tools" | "modeOptions" | "experienceOptions" | "configurationAxes" | "configurationOptions">> & {
50
64
  modeOptions?: ModeOptionContribution;
65
+ experienceOptions?: ExperienceOptionContribution;
66
+ configurationAxes?: ConfigurationAxisContribution;
67
+ configurationOptions?: ConfigurationOptionContribution;
51
68
  tools?: Partial<Record<"web_search" | "deep_research" | "create_image", string | readonly string[]>>;
52
69
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export declare const uk: {
10
10
  composerTextbox: string[];
@@ -31,4 +31,5 @@ export declare const uk: {
31
31
  };
32
32
  signedInMarkers: string[];
33
33
  responseActions: string[];
34
+ stopControl: string[];
34
35
  };
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Some non-Intelligence surfaces may still fall back to English + `selector_drift`.
6
6
  *
7
- * Intelligence picker labels updated 2026-06-10 from a visible ChatGPT Pro session.
7
+ * Intelligence picker labels updated 2026-06-10 and stop-control labels updated 2026-06-15 from visible ChatGPT Pro sessions.
8
8
  */
9
9
  export const uk = {
10
10
  composerTextbox: ["Запитайте будь-що"],
@@ -31,4 +31,5 @@ export const uk = {
31
31
  },
32
32
  signedInMarkers: ["Новий чат", "Пошук чатів", "Нещодавні", "Історія чатів", "Проєкти", "Запитайте будь-що"],
33
33
  responseActions: ["Копіювати відповідь"],
34
+ stopControl: ["Зупинити відповідь"],
34
35
  };