codexgpt 1.0.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.
Files changed (654) hide show
  1. package/AGENTS.example.md +20 -0
  2. package/CHANGELOG.md +342 -0
  3. package/CHATGPT_PROMPT.md +12 -0
  4. package/CLOUDFLARED_VERIFIED_INSTALL.md +94 -0
  5. package/CODEX_PROMPT.md +12 -0
  6. package/CONTRIBUTING.md +62 -0
  7. package/DOMAIN_SETUP.md +275 -0
  8. package/FAQ.md +366 -0
  9. package/FAQ_ZH.md +329 -0
  10. package/LICENSE +21 -0
  11. package/PUBLIC_LAUNCH_CHECKLIST.md +111 -0
  12. package/README.md +490 -0
  13. package/README_ZH.md +747 -0
  14. package/SECURITY.md +295 -0
  15. package/config.example.env +103 -0
  16. package/dist/access/fullAccessLease.js +148 -0
  17. package/dist/access/fullAccessLease.js.map +1 -0
  18. package/dist/access/protectedRoots.js +122 -0
  19. package/dist/access/protectedRoots.js.map +1 -0
  20. package/dist/access/rootAdmission.js +347 -0
  21. package/dist/access/rootAdmission.js.map +1 -0
  22. package/dist/analysis/cache.js +27 -0
  23. package/dist/analysis/cache.js.map +1 -0
  24. package/dist/analysis/classify.js +102 -0
  25. package/dist/analysis/classify.js.map +1 -0
  26. package/dist/analysis/extract.js +139 -0
  27. package/dist/analysis/extract.js.map +1 -0
  28. package/dist/analysis/graph.js +22 -0
  29. package/dist/analysis/graph.js.map +1 -0
  30. package/dist/analysis/impact.js +167 -0
  31. package/dist/analysis/impact.js.map +1 -0
  32. package/dist/analysis/index.js +215 -0
  33. package/dist/analysis/index.js.map +1 -0
  34. package/dist/analysis/inventory.js +51 -0
  35. package/dist/analysis/inventory.js.map +1 -0
  36. package/dist/analysis/providers.js +24 -0
  37. package/dist/analysis/providers.js.map +1 -0
  38. package/dist/analysis/rank.js +27 -0
  39. package/dist/analysis/rank.js.map +1 -0
  40. package/dist/analysis/types.js +8 -0
  41. package/dist/analysis/types.js.map +1 -0
  42. package/dist/audit/canonicalJson.js +79 -0
  43. package/dist/audit/canonicalJson.js.map +1 -0
  44. package/dist/audit/diagnostics.js +128 -0
  45. package/dist/audit/diagnostics.js.map +1 -0
  46. package/dist/audit/index.js +12 -0
  47. package/dist/audit/index.js.map +1 -0
  48. package/dist/audit/lifecycleV3.js +53 -0
  49. package/dist/audit/lifecycleV3.js.map +1 -0
  50. package/dist/audit/lifecycleV4.js +70 -0
  51. package/dist/audit/lifecycleV4.js.map +1 -0
  52. package/dist/audit/lock.js +195 -0
  53. package/dist/audit/lock.js.map +1 -0
  54. package/dist/audit/queryTool.js +120 -0
  55. package/dist/audit/queryTool.js.map +1 -0
  56. package/dist/audit/runtime.js +48 -0
  57. package/dist/audit/runtime.js.map +1 -0
  58. package/dist/audit/schemas.js +640 -0
  59. package/dist/audit/schemas.js.map +1 -0
  60. package/dist/audit/store.js +1309 -0
  61. package/dist/audit/store.js.map +1 -0
  62. package/dist/audit/transactionParticipant.js +45 -0
  63. package/dist/audit/transactionParticipant.js.map +1 -0
  64. package/dist/audit/types.js +11 -0
  65. package/dist/audit/types.js.map +1 -0
  66. package/dist/auth/audit.js +44 -0
  67. package/dist/auth/audit.js.map +1 -0
  68. package/dist/auth/authorizationStore.js +333 -0
  69. package/dist/auth/authorizationStore.js.map +1 -0
  70. package/dist/auth/challenges.js +25 -0
  71. package/dist/auth/challenges.js.map +1 -0
  72. package/dist/auth/clientStore.js +469 -0
  73. package/dist/auth/clientStore.js.map +1 -0
  74. package/dist/auth/cloudflareConfig.js +112 -0
  75. package/dist/auth/cloudflareConfig.js.map +1 -0
  76. package/dist/auth/configuration.js +167 -0
  77. package/dist/auth/configuration.js.map +1 -0
  78. package/dist/auth/credentialStore.js +65 -0
  79. package/dist/auth/credentialStore.js.map +1 -0
  80. package/dist/auth/deploymentLock.js +220 -0
  81. package/dist/auth/deploymentLock.js.map +1 -0
  82. package/dist/auth/deploymentRegistry.js +149 -0
  83. package/dist/auth/deploymentRegistry.js.map +1 -0
  84. package/dist/auth/errors.js +26 -0
  85. package/dist/auth/errors.js.map +1 -0
  86. package/dist/auth/grantStore.js +307 -0
  87. package/dist/auth/grantStore.js.map +1 -0
  88. package/dist/auth/index.js +39 -0
  89. package/dist/auth/index.js.map +1 -0
  90. package/dist/auth/keyManager.js +148 -0
  91. package/dist/auth/keyManager.js.map +1 -0
  92. package/dist/auth/localAdminSession.js +173 -0
  93. package/dist/auth/localAdminSession.js.map +1 -0
  94. package/dist/auth/metadata.js +69 -0
  95. package/dist/auth/metadata.js.map +1 -0
  96. package/dist/auth/oauthProvider.js +589 -0
  97. package/dist/auth/oauthProvider.js.map +1 -0
  98. package/dist/auth/ownerApproval.js +51 -0
  99. package/dist/auth/ownerApproval.js.map +1 -0
  100. package/dist/auth/policyIdentity.js +189 -0
  101. package/dist/auth/policyIdentity.js.map +1 -0
  102. package/dist/auth/rateLimits.js +66 -0
  103. package/dist/auth/rateLimits.js.map +1 -0
  104. package/dist/auth/recovery.js +275 -0
  105. package/dist/auth/recovery.js.map +1 -0
  106. package/dist/auth/requestContext.js +34 -0
  107. package/dist/auth/requestContext.js.map +1 -0
  108. package/dist/auth/resourceMiddleware.js +147 -0
  109. package/dist/auth/resourceMiddleware.js.map +1 -0
  110. package/dist/auth/runtimeStatus.js +51 -0
  111. package/dist/auth/runtimeStatus.js.map +1 -0
  112. package/dist/auth/schemas.js +84 -0
  113. package/dist/auth/schemas.js.map +1 -0
  114. package/dist/auth/stateStore.js +468 -0
  115. package/dist/auth/stateStore.js.map +1 -0
  116. package/dist/auth/tokenService.js +631 -0
  117. package/dist/auth/tokenService.js.map +1 -0
  118. package/dist/auth/toolSecurity.js +108 -0
  119. package/dist/auth/toolSecurity.js.map +1 -0
  120. package/dist/auth/types.js +6 -0
  121. package/dist/auth/types.js.map +1 -0
  122. package/dist/auth/windowsDpapi.js +193 -0
  123. package/dist/auth/windowsDpapi.js.map +1 -0
  124. package/dist/bashOps.js +292 -0
  125. package/dist/bashOps.js.map +1 -0
  126. package/dist/capabilitiesOps.js +412 -0
  127. package/dist/capabilitiesOps.js.map +1 -0
  128. package/dist/changesets/crypto.js +92 -0
  129. package/dist/changesets/crypto.js.map +1 -0
  130. package/dist/changesets/index.js +9 -0
  131. package/dist/changesets/index.js.map +1 -0
  132. package/dist/changesets/moveStore.js +237 -0
  133. package/dist/changesets/moveStore.js.map +1 -0
  134. package/dist/changesets/moveUndo.js +386 -0
  135. package/dist/changesets/moveUndo.js.map +1 -0
  136. package/dist/changesets/schemas.js +234 -0
  137. package/dist/changesets/schemas.js.map +1 -0
  138. package/dist/changesets/store.js +573 -0
  139. package/dist/changesets/store.js.map +1 -0
  140. package/dist/changesets/types.js +9 -0
  141. package/dist/changesets/types.js.map +1 -0
  142. package/dist/changesets/undo.js +525 -0
  143. package/dist/changesets/undo.js.map +1 -0
  144. package/dist/changesets/unifiedUndo.js +31 -0
  145. package/dist/changesets/unifiedUndo.js.map +1 -0
  146. package/dist/cliEnvironment.js +85 -0
  147. package/dist/cliEnvironment.js.map +1 -0
  148. package/dist/codexSessions.js +733 -0
  149. package/dist/codexSessions.js.map +1 -0
  150. package/dist/codexgptSupertool.js +216 -0
  151. package/dist/codexgptSupertool.js.map +1 -0
  152. package/dist/codexproSupertool.js +204 -0
  153. package/dist/codexproSupertool.js.map +1 -0
  154. package/dist/config.js +733 -0
  155. package/dist/config.js.map +1 -0
  156. package/dist/control/localApprovalClient.js +287 -0
  157. package/dist/control/localApprovalClient.js.map +1 -0
  158. package/dist/control/localApprovalServer.js +466 -0
  159. package/dist/control/localApprovalServer.js.map +1 -0
  160. package/dist/control/runtime.js +178 -0
  161. package/dist/control/runtime.js.map +1 -0
  162. package/dist/control/schemas.js +184 -0
  163. package/dist/control/schemas.js.map +1 -0
  164. package/dist/control/windowsLocalControl.js +348 -0
  165. package/dist/control/windowsLocalControl.js.map +1 -0
  166. package/dist/fsOps.js +541 -0
  167. package/dist/fsOps.js.map +1 -0
  168. package/dist/git/admission.js +26 -0
  169. package/dist/git/admission.js.map +1 -0
  170. package/dist/git/branchService.js +51 -0
  171. package/dist/git/branchService.js.map +1 -0
  172. package/dist/git/capabilities.js +143 -0
  173. package/dist/git/capabilities.js.map +1 -0
  174. package/dist/git/commitService.js +344 -0
  175. package/dist/git/commitService.js.map +1 -0
  176. package/dist/git/durableState.js +151 -0
  177. package/dist/git/durableState.js.map +1 -0
  178. package/dist/git/execution.js +451 -0
  179. package/dist/git/execution.js.map +1 -0
  180. package/dist/git/fileTransaction.js +50 -0
  181. package/dist/git/fileTransaction.js.map +1 -0
  182. package/dist/git/indexService.js +421 -0
  183. package/dist/git/indexService.js.map +1 -0
  184. package/dist/git/integrations.js +653 -0
  185. package/dist/git/integrations.js.map +1 -0
  186. package/dist/git/locks.js +287 -0
  187. package/dist/git/locks.js.map +1 -0
  188. package/dist/git/mutationContext.js +92 -0
  189. package/dist/git/mutationContext.js.map +1 -0
  190. package/dist/git/mutationJournal.js +91 -0
  191. package/dist/git/mutationJournal.js.map +1 -0
  192. package/dist/git/mutationService.js +352 -0
  193. package/dist/git/mutationService.js.map +1 -0
  194. package/dist/git/normalization.js +57 -0
  195. package/dist/git/normalization.js.map +1 -0
  196. package/dist/git/objectQuarantine.js +243 -0
  197. package/dist/git/objectQuarantine.js.map +1 -0
  198. package/dist/git/opaqueRecordStore.js +187 -0
  199. package/dist/git/opaqueRecordStore.js.map +1 -0
  200. package/dist/git/operationStore.js +287 -0
  201. package/dist/git/operationStore.js.map +1 -0
  202. package/dist/git/parsers.js +311 -0
  203. package/dist/git/parsers.js.map +1 -0
  204. package/dist/git/privateIndex.js +79 -0
  205. package/dist/git/privateIndex.js.map +1 -0
  206. package/dist/git/productionBootstrap.js +39 -0
  207. package/dist/git/productionBootstrap.js.map +1 -0
  208. package/dist/git/readService.js +846 -0
  209. package/dist/git/readService.js.map +1 -0
  210. package/dist/git/recovery.js +417 -0
  211. package/dist/git/recovery.js.map +1 -0
  212. package/dist/git/repositoryIdentity.js +611 -0
  213. package/dist/git/repositoryIdentity.js.map +1 -0
  214. package/dist/git/repositoryStore.js +237 -0
  215. package/dist/git/repositoryStore.js.map +1 -0
  216. package/dist/git/resources.js +113 -0
  217. package/dist/git/resources.js.map +1 -0
  218. package/dist/git/restoreService.js +178 -0
  219. package/dist/git/restoreService.js.map +1 -0
  220. package/dist/git/reviewToken.js +86 -0
  221. package/dist/git/reviewToken.js.map +1 -0
  222. package/dist/git/stashService.js +566 -0
  223. package/dist/git/stashService.js.map +1 -0
  224. package/dist/git/stateToken.js +139 -0
  225. package/dist/git/stateToken.js.map +1 -0
  226. package/dist/gitOps.js +147 -0
  227. package/dist/gitOps.js.map +1 -0
  228. package/dist/guard.js +608 -0
  229. package/dist/guard.js.map +1 -0
  230. package/dist/guidance/diagnostics.js +14 -0
  231. package/dist/guidance/diagnostics.js.map +1 -0
  232. package/dist/guidance/instructions.js +167 -0
  233. package/dist/guidance/instructions.js.map +1 -0
  234. package/dist/guidance/mode.js +18 -0
  235. package/dist/guidance/mode.js.map +1 -0
  236. package/dist/guidance/openaiSkillMetadata.js +29 -0
  237. package/dist/guidance/openaiSkillMetadata.js.map +1 -0
  238. package/dist/guidance/safeTextReader.js +171 -0
  239. package/dist/guidance/safeTextReader.js.map +1 -0
  240. package/dist/guidance/skillCatalog.js +70 -0
  241. package/dist/guidance/skillCatalog.js.map +1 -0
  242. package/dist/guidance/skillDiscovery.js +353 -0
  243. package/dist/guidance/skillDiscovery.js.map +1 -0
  244. package/dist/guidance/skillMetadata.js +115 -0
  245. package/dist/guidance/skillMetadata.js.map +1 -0
  246. package/dist/guidance/skillResources.js +146 -0
  247. package/dist/guidance/skillResources.js.map +1 -0
  248. package/dist/handoffOps.js +449 -0
  249. package/dist/handoffOps.js.map +1 -0
  250. package/dist/http/localAdminApp.js +203 -0
  251. package/dist/http/localAdminApp.js.map +1 -0
  252. package/dist/http/oauthMcpRuntime.js +294 -0
  253. package/dist/http/oauthMcpRuntime.js.map +1 -0
  254. package/dist/http/publicApp.js +350 -0
  255. package/dist/http/publicApp.js.map +1 -0
  256. package/dist/http/securityHeaders.js +11 -0
  257. package/dist/http/securityHeaders.js.map +1 -0
  258. package/dist/http.js +2076 -0
  259. package/dist/http.js.map +1 -0
  260. package/dist/moves/engine.js +1079 -0
  261. package/dist/moves/engine.js.map +1 -0
  262. package/dist/moves/index.js +6 -0
  263. package/dist/moves/index.js.map +1 -0
  264. package/dist/moves/planner.js +270 -0
  265. package/dist/moves/planner.js.map +1 -0
  266. package/dist/moves/recovery.js +557 -0
  267. package/dist/moves/recovery.js.map +1 -0
  268. package/dist/moves/service.js +300 -0
  269. package/dist/moves/service.js.map +1 -0
  270. package/dist/moves/types.js +11 -0
  271. package/dist/moves/types.js.map +1 -0
  272. package/dist/mutations/index.js +4 -0
  273. package/dist/mutations/index.js.map +1 -0
  274. package/dist/mutations/lifecycle.js +165 -0
  275. package/dist/mutations/lifecycle.js.map +1 -0
  276. package/dist/mutations/localService.js +163 -0
  277. package/dist/mutations/localService.js.map +1 -0
  278. package/dist/mutations/runtime.js +322 -0
  279. package/dist/mutations/runtime.js.map +1 -0
  280. package/dist/mutations/types.js +2 -0
  281. package/dist/mutations/types.js.map +1 -0
  282. package/dist/mutations/writers.js +360 -0
  283. package/dist/mutations/writers.js.map +1 -0
  284. package/dist/patchOps.js +420 -0
  285. package/dist/patchOps.js.map +1 -0
  286. package/dist/policy/approval.js +306 -0
  287. package/dist/policy/approval.js.map +1 -0
  288. package/dist/policy/audit.js +88 -0
  289. package/dist/policy/audit.js.map +1 -0
  290. package/dist/policy/authorizationFacts.js +187 -0
  291. package/dist/policy/authorizationFacts.js.map +1 -0
  292. package/dist/policy/compat.js +104 -0
  293. package/dist/policy/compat.js.map +1 -0
  294. package/dist/policy/context.js +31 -0
  295. package/dist/policy/context.js.map +1 -0
  296. package/dist/policy/enforcement.js +46 -0
  297. package/dist/policy/enforcement.js.map +1 -0
  298. package/dist/policy/evaluator.js +338 -0
  299. package/dist/policy/evaluator.js.map +1 -0
  300. package/dist/policy/executionCapabilities.js +80 -0
  301. package/dist/policy/executionCapabilities.js.map +1 -0
  302. package/dist/policy/executionResources.js +192 -0
  303. package/dist/policy/executionResources.js.map +1 -0
  304. package/dist/policy/fullAccessResources.js +23 -0
  305. package/dist/policy/fullAccessResources.js.map +1 -0
  306. package/dist/policy/hardPolicy.js +50 -0
  307. package/dist/policy/hardPolicy.js.map +1 -0
  308. package/dist/policy/identity.js +142 -0
  309. package/dist/policy/identity.js.map +1 -0
  310. package/dist/policy/integration.js +331 -0
  311. package/dist/policy/integration.js.map +1 -0
  312. package/dist/policy/pendingApprovals.js +301 -0
  313. package/dist/policy/pendingApprovals.js.map +1 -0
  314. package/dist/policy/profileStore.js +367 -0
  315. package/dist/policy/profileStore.js.map +1 -0
  316. package/dist/policy/resources.js +249 -0
  317. package/dist/policy/resources.js.map +1 -0
  318. package/dist/policy/runtime.js +713 -0
  319. package/dist/policy/runtime.js.map +1 -0
  320. package/dist/policy/schemas.js +625 -0
  321. package/dist/policy/schemas.js.map +1 -0
  322. package/dist/policy/toolPolicy.js +141 -0
  323. package/dist/policy/toolPolicy.js.map +1 -0
  324. package/dist/policy/transport.js +10 -0
  325. package/dist/policy/transport.js.map +1 -0
  326. package/dist/policy/types.js +31 -0
  327. package/dist/policy/types.js.map +1 -0
  328. package/dist/proContext.js +675 -0
  329. package/dist/proContext.js.map +1 -0
  330. package/dist/process/authority.js +18 -0
  331. package/dist/process/authority.js.map +1 -0
  332. package/dist/process/backendDiscovery.js +83 -0
  333. package/dist/process/backendDiscovery.js.map +1 -0
  334. package/dist/process/commandCompiler.js +71 -0
  335. package/dist/process/commandCompiler.js.map +1 -0
  336. package/dist/process/outputCursor.js +67 -0
  337. package/dist/process/outputCursor.js.map +1 -0
  338. package/dist/process/outputQuota.js +94 -0
  339. package/dist/process/outputQuota.js.map +1 -0
  340. package/dist/process/outputRing.js +138 -0
  341. package/dist/process/outputRing.js.map +1 -0
  342. package/dist/process/processAuditCoordinator.js +52 -0
  343. package/dist/process/processAuditCoordinator.js.map +1 -0
  344. package/dist/process/processManager.js +311 -0
  345. package/dist/process/processManager.js.map +1 -0
  346. package/dist/process/runCommand.js +332 -0
  347. package/dist/process/runCommand.js.map +1 -0
  348. package/dist/process/streamingRedactor.js +105 -0
  349. package/dist/process/streamingRedactor.js.map +1 -0
  350. package/dist/process/types.js +2 -0
  351. package/dist/process/types.js.map +1 -0
  352. package/dist/process/windowsHostClient.js +604 -0
  353. package/dist/process/windowsHostClient.js.map +1 -0
  354. package/dist/process/windowsHostProtocol.js +270 -0
  355. package/dist/process/windowsHostProtocol.js.map +1 -0
  356. package/dist/process/windowsPersistentBackend.js +263 -0
  357. package/dist/process/windowsPersistentBackend.js.map +1 -0
  358. package/dist/productionRuntime.js +907 -0
  359. package/dist/productionRuntime.js.map +1 -0
  360. package/dist/profileStore.js +231 -0
  361. package/dist/profileStore.js.map +1 -0
  362. package/dist/redact.js +124 -0
  363. package/dist/redact.js.map +1 -0
  364. package/dist/searchOps.js +186 -0
  365. package/dist/searchOps.js.map +1 -0
  366. package/dist/selfTestOps.js +786 -0
  367. package/dist/selfTestOps.js.map +1 -0
  368. package/dist/semantic/budgets.js +12 -0
  369. package/dist/semantic/budgets.js.map +1 -0
  370. package/dist/semantic/builtin/typescriptAssets.js +68 -0
  371. package/dist/semantic/builtin/typescriptAssets.js.map +1 -0
  372. package/dist/semantic/builtin/typescriptProvider.js +211 -0
  373. package/dist/semantic/builtin/typescriptProvider.js.map +1 -0
  374. package/dist/semantic/builtin/typescriptWorker.js +365 -0
  375. package/dist/semantic/builtin/typescriptWorker.js.map +1 -0
  376. package/dist/semantic/diffPreview.js +36 -0
  377. package/dist/semantic/diffPreview.js.map +1 -0
  378. package/dist/semantic/index.js +11 -0
  379. package/dist/semantic/index.js.map +1 -0
  380. package/dist/semantic/manager.js +522 -0
  381. package/dist/semantic/manager.js.map +1 -0
  382. package/dist/semantic/positions.js +86 -0
  383. package/dist/semantic/positions.js.map +1 -0
  384. package/dist/semantic/previewStore.js +276 -0
  385. package/dist/semantic/previewStore.js.map +1 -0
  386. package/dist/semantic/projectResolver.js +309 -0
  387. package/dist/semantic/projectResolver.js.map +1 -0
  388. package/dist/semantic/sourceSnapshot.js +54 -0
  389. package/dist/semantic/sourceSnapshot.js.map +1 -0
  390. package/dist/semantic/status.js +46 -0
  391. package/dist/semantic/status.js.map +1 -0
  392. package/dist/semantic/types.js +2 -0
  393. package/dist/semantic/types.js.map +1 -0
  394. package/dist/server.js +8676 -0
  395. package/dist/server.js.map +1 -0
  396. package/dist/stdio.js +64 -0
  397. package/dist/stdio.js.map +1 -0
  398. package/dist/toolCardWidget.js +2000 -0
  399. package/dist/toolCardWidget.js.map +1 -0
  400. package/dist/tools/contracts/catalog.js +111 -0
  401. package/dist/tools/contracts/catalog.js.map +1 -0
  402. package/dist/tools/contracts/index.js +8 -0
  403. package/dist/tools/contracts/index.js.map +1 -0
  404. package/dist/tools/contracts/registration.js +27 -0
  405. package/dist/tools/contracts/registration.js.map +1 -0
  406. package/dist/tools/contracts/schemas.js +11 -0
  407. package/dist/tools/contracts/schemas.js.map +1 -0
  408. package/dist/tools/contracts/types.js +2 -0
  409. package/dist/tools/contracts/types.js.map +1 -0
  410. package/dist/tools/contracts/v3.js +76 -0
  411. package/dist/tools/contracts/v3.js.map +1 -0
  412. package/dist/tools/contracts/v4.js +39 -0
  413. package/dist/tools/contracts/v4.js.map +1 -0
  414. package/dist/tools/contracts/v5.js +20 -0
  415. package/dist/tools/contracts/v5.js.map +1 -0
  416. package/dist/tools/phase3dServer.js +350 -0
  417. package/dist/tools/phase3dServer.js.map +1 -0
  418. package/dist/tools/schemas/applyPatch.js +388 -0
  419. package/dist/tools/schemas/applyPatch.js.map +1 -0
  420. package/dist/tools/schemas/bash.js +202 -0
  421. package/dist/tools/schemas/bash.js.map +1 -0
  422. package/dist/tools/schemas/closeWorkspace.js +105 -0
  423. package/dist/tools/schemas/closeWorkspace.js.map +1 -0
  424. package/dist/tools/schemas/codexContext.js +402 -0
  425. package/dist/tools/schemas/codexContext.js.map +1 -0
  426. package/dist/tools/schemas/codexSessions.js +328 -0
  427. package/dist/tools/schemas/codexSessions.js.map +1 -0
  428. package/dist/tools/schemas/codexgpt.js +1068 -0
  429. package/dist/tools/schemas/codexgpt.js.map +1 -0
  430. package/dist/tools/schemas/codexgptInventory.js +359 -0
  431. package/dist/tools/schemas/codexgptInventory.js.map +1 -0
  432. package/dist/tools/schemas/codexgptSelfTest.js +563 -0
  433. package/dist/tools/schemas/codexgptSelfTest.js.map +1 -0
  434. package/dist/tools/schemas/codexpro.js +917 -0
  435. package/dist/tools/schemas/codexpro.js.map +1 -0
  436. package/dist/tools/schemas/codexproInventory.js +352 -0
  437. package/dist/tools/schemas/codexproInventory.js.map +1 -0
  438. package/dist/tools/schemas/codexproSelfTest.js +546 -0
  439. package/dist/tools/schemas/codexproSelfTest.js.map +1 -0
  440. package/dist/tools/schemas/common.js +21 -0
  441. package/dist/tools/schemas/common.js.map +1 -0
  442. package/dist/tools/schemas/createTaskWorktree.js +51 -0
  443. package/dist/tools/schemas/createTaskWorktree.js.map +1 -0
  444. package/dist/tools/schemas/edit.js +321 -0
  445. package/dist/tools/schemas/edit.js.map +1 -0
  446. package/dist/tools/schemas/execution.js +330 -0
  447. package/dist/tools/schemas/execution.js.map +1 -0
  448. package/dist/tools/schemas/exportProContext.js +370 -0
  449. package/dist/tools/schemas/exportProContext.js.map +1 -0
  450. package/dist/tools/schemas/getTaskWorktree.js +19 -0
  451. package/dist/tools/schemas/getTaskWorktree.js.map +1 -0
  452. package/dist/tools/schemas/gitBranch.js +42 -0
  453. package/dist/tools/schemas/gitBranch.js.map +1 -0
  454. package/dist/tools/schemas/gitCommit.js +40 -0
  455. package/dist/tools/schemas/gitCommit.js.map +1 -0
  456. package/dist/tools/schemas/gitCreateBranch.js +22 -0
  457. package/dist/tools/schemas/gitCreateBranch.js.map +1 -0
  458. package/dist/tools/schemas/gitDiff.js +222 -0
  459. package/dist/tools/schemas/gitDiff.js.map +1 -0
  460. package/dist/tools/schemas/gitLog.js +41 -0
  461. package/dist/tools/schemas/gitLog.js.map +1 -0
  462. package/dist/tools/schemas/gitRestore.js +47 -0
  463. package/dist/tools/schemas/gitRestore.js.map +1 -0
  464. package/dist/tools/schemas/gitStage.js +33 -0
  465. package/dist/tools/schemas/gitStage.js.map +1 -0
  466. package/dist/tools/schemas/gitStash.js +102 -0
  467. package/dist/tools/schemas/gitStash.js.map +1 -0
  468. package/dist/tools/schemas/gitStatus.js +226 -0
  469. package/dist/tools/schemas/gitStatus.js.map +1 -0
  470. package/dist/tools/schemas/gitV4Common.js +205 -0
  471. package/dist/tools/schemas/gitV4Common.js.map +1 -0
  472. package/dist/tools/schemas/guidance.js +40 -0
  473. package/dist/tools/schemas/guidance.js.map +1 -0
  474. package/dist/tools/schemas/handoffToAgent.js +276 -0
  475. package/dist/tools/schemas/handoffToAgent.js.map +1 -0
  476. package/dist/tools/schemas/handoffToCodex.js +137 -0
  477. package/dist/tools/schemas/handoffToCodex.js.map +1 -0
  478. package/dist/tools/schemas/inspectWorkspace.js +379 -0
  479. package/dist/tools/schemas/inspectWorkspace.js.map +1 -0
  480. package/dist/tools/schemas/listTaskWorktrees.js +21 -0
  481. package/dist/tools/schemas/listTaskWorktrees.js.map +1 -0
  482. package/dist/tools/schemas/listWorkspaces.js +134 -0
  483. package/dist/tools/schemas/listWorkspaces.js.map +1 -0
  484. package/dist/tools/schemas/loadSkill.js +619 -0
  485. package/dist/tools/schemas/loadSkill.js.map +1 -0
  486. package/dist/tools/schemas/mergeTaskWorktree.js +105 -0
  487. package/dist/tools/schemas/mergeTaskWorktree.js.map +1 -0
  488. package/dist/tools/schemas/movePaths.js +175 -0
  489. package/dist/tools/schemas/movePaths.js.map +1 -0
  490. package/dist/tools/schemas/openCurrentWorkspace.js +174 -0
  491. package/dist/tools/schemas/openCurrentWorkspace.js.map +1 -0
  492. package/dist/tools/schemas/openFullAccessWorkspace.js +81 -0
  493. package/dist/tools/schemas/openFullAccessWorkspace.js.map +1 -0
  494. package/dist/tools/schemas/openWorkspace.js +193 -0
  495. package/dist/tools/schemas/openWorkspace.js.map +1 -0
  496. package/dist/tools/schemas/queryAuditEvents.js +193 -0
  497. package/dist/tools/schemas/queryAuditEvents.js.map +1 -0
  498. package/dist/tools/schemas/read.js +199 -0
  499. package/dist/tools/schemas/read.js.map +1 -0
  500. package/dist/tools/schemas/readCodexSession.js +353 -0
  501. package/dist/tools/schemas/readCodexSession.js.map +1 -0
  502. package/dist/tools/schemas/readHandoff.js +446 -0
  503. package/dist/tools/schemas/readHandoff.js.map +1 -0
  504. package/dist/tools/schemas/removeTaskWorktree.js +40 -0
  505. package/dist/tools/schemas/removeTaskWorktree.js.map +1 -0
  506. package/dist/tools/schemas/search.js +235 -0
  507. package/dist/tools/schemas/search.js.map +1 -0
  508. package/dist/tools/schemas/semantic.js +195 -0
  509. package/dist/tools/schemas/semantic.js.map +1 -0
  510. package/dist/tools/schemas/serverConfig.js +157 -0
  511. package/dist/tools/schemas/serverConfig.js.map +1 -0
  512. package/dist/tools/schemas/showChanges.js +283 -0
  513. package/dist/tools/schemas/showChanges.js.map +1 -0
  514. package/dist/tools/schemas/transactionResult.js +11 -0
  515. package/dist/tools/schemas/transactionResult.js.map +1 -0
  516. package/dist/tools/schemas/tree.js +136 -0
  517. package/dist/tools/schemas/tree.js.map +1 -0
  518. package/dist/tools/schemas/undoChangeSet.js +152 -0
  519. package/dist/tools/schemas/undoChangeSet.js.map +1 -0
  520. package/dist/tools/schemas/waitForHandoff.js +462 -0
  521. package/dist/tools/schemas/waitForHandoff.js.map +1 -0
  522. package/dist/tools/schemas/workspaceSnapshot.js +145 -0
  523. package/dist/tools/schemas/workspaceSnapshot.js.map +1 -0
  524. package/dist/tools/schemas/write.js +285 -0
  525. package/dist/tools/schemas/write.js.map +1 -0
  526. package/dist/transactions/atomicFs.js +438 -0
  527. package/dist/transactions/atomicFs.js.map +1 -0
  528. package/dist/transactions/atomicStateFile.js +190 -0
  529. package/dist/transactions/atomicStateFile.js.map +1 -0
  530. package/dist/transactions/engine.js +574 -0
  531. package/dist/transactions/engine.js.map +1 -0
  532. package/dist/transactions/index.js +12 -0
  533. package/dist/transactions/index.js.map +1 -0
  534. package/dist/transactions/installation.js +158 -0
  535. package/dist/transactions/installation.js.map +1 -0
  536. package/dist/transactions/manifestV2Store.js +96 -0
  537. package/dist/transactions/manifestV2Store.js.map +1 -0
  538. package/dist/transactions/participantRecovery.js +98 -0
  539. package/dist/transactions/participantRecovery.js.map +1 -0
  540. package/dist/transactions/recovery.js +513 -0
  541. package/dist/transactions/recovery.js.map +1 -0
  542. package/dist/transactions/schemas.js +365 -0
  543. package/dist/transactions/schemas.js.map +1 -0
  544. package/dist/transactions/stateRoot.js +63 -0
  545. package/dist/transactions/stateRoot.js.map +1 -0
  546. package/dist/transactions/types.js +11 -0
  547. package/dist/transactions/types.js.map +1 -0
  548. package/dist/transactions/workspaceLock.js +201 -0
  549. package/dist/transactions/workspaceLock.js.map +1 -0
  550. package/dist/workspaceOps.js +924 -0
  551. package/dist/workspaceOps.js.map +1 -0
  552. package/dist/worktrees/candidateWorkspace.js +566 -0
  553. package/dist/worktrees/candidateWorkspace.js.map +1 -0
  554. package/dist/worktrees/manager.js +258 -0
  555. package/dist/worktrees/manager.js.map +1 -0
  556. package/dist/worktrees/materializer.js +60 -0
  557. package/dist/worktrees/materializer.js.map +1 -0
  558. package/dist/worktrees/mergeExecute.js +498 -0
  559. package/dist/worktrees/mergeExecute.js.map +1 -0
  560. package/dist/worktrees/mergePlanStore.js +247 -0
  561. package/dist/worktrees/mergePlanStore.js.map +1 -0
  562. package/dist/worktrees/mergePrepare.js +709 -0
  563. package/dist/worktrees/mergePrepare.js.map +1 -0
  564. package/dist/worktrees/recovery.js +294 -0
  565. package/dist/worktrees/recovery.js.map +1 -0
  566. package/dist/worktrees/remove.js +296 -0
  567. package/dist/worktrees/remove.js.map +1 -0
  568. package/dist/worktrees/remover.js +57 -0
  569. package/dist/worktrees/remover.js.map +1 -0
  570. package/dist/worktrees/root.js +47 -0
  571. package/dist/worktrees/root.js.map +1 -0
  572. package/dist/worktrees/service.js +245 -0
  573. package/dist/worktrees/service.js.map +1 -0
  574. package/dist/worktrees/store.js +156 -0
  575. package/dist/worktrees/store.js.map +1 -0
  576. package/dist/worktrees/treeManifest.js +106 -0
  577. package/dist/worktrees/treeManifest.js.map +1 -0
  578. package/dist/worktrees/verificationReceipts.js +215 -0
  579. package/dist/worktrees/verificationReceipts.js.map +1 -0
  580. package/dist/worktrees/verificationTerminal.js +23 -0
  581. package/dist/worktrees/verificationTerminal.js.map +1 -0
  582. package/dist/worktrees/workspaceAuthority.js +64 -0
  583. package/dist/worktrees/workspaceAuthority.js.map +1 -0
  584. package/docs/favicon.svg +5 -0
  585. package/docs/index.html +624 -0
  586. package/docs/og.svg +52 -0
  587. package/docs/script.js +33 -0
  588. package/docs/star.svg +11 -0
  589. package/docs/styles.css +1571 -0
  590. package/docs/zh.html +428 -0
  591. package/package.json +121 -0
  592. package/scripts/analysis-cli-smoke.mjs +81 -0
  593. package/scripts/analysis-smoke.mjs +179 -0
  594. package/scripts/atomic-file.mjs +137 -0
  595. package/scripts/ci-change-classifier.mjs +59 -0
  596. package/scripts/ci-failure-summary.mjs +92 -0
  597. package/scripts/cloudflared-installer.mjs +215 -0
  598. package/scripts/cloudflared-release.mjs +63 -0
  599. package/scripts/codexgpt-entry.mjs +235 -0
  600. package/scripts/codexgpt.mjs +4987 -0
  601. package/scripts/connector-auth-output-shim.cjs +66 -0
  602. package/scripts/doctor-smoke.mjs +90 -0
  603. package/scripts/doctor.mjs +165 -0
  604. package/scripts/exact-head-ci.mjs +126 -0
  605. package/scripts/execute-handoff-smoke-platform-compat.mjs +38 -0
  606. package/scripts/execute-handoff-smoke.mjs +1117 -0
  607. package/scripts/g8-u-live-probe.mjs +208 -0
  608. package/scripts/http-smoke-compat.mjs +151 -0
  609. package/scripts/http-smoke.mjs +776 -0
  610. package/scripts/long-task-runner.mjs +1037 -0
  611. package/scripts/oauth-admin.mjs +1608 -0
  612. package/scripts/output-bounds.mjs +29 -0
  613. package/scripts/owned-temp-root.d.mts +50 -0
  614. package/scripts/owned-temp-root.mjs +567 -0
  615. package/scripts/phase-4a-smoke.mjs +36 -0
  616. package/scripts/policy-windows-spike.mjs +135 -0
  617. package/scripts/pro-apply.mjs +152 -0
  618. package/scripts/pro-bundle.mjs +121 -0
  619. package/scripts/pro-smoke.mjs +97 -0
  620. package/scripts/process-identity.mjs +67 -0
  621. package/scripts/repository-policy.mjs +166 -0
  622. package/scripts/run-and-summarize.mjs +134 -0
  623. package/scripts/run-smoke.mjs +52 -0
  624. package/scripts/run-with-cleanup.mjs +98 -0
  625. package/scripts/settings-smoke-platform-compat.mjs +85 -0
  626. package/scripts/settings-smoke.mjs +769 -0
  627. package/scripts/smoke-platform-compat.mjs +302 -0
  628. package/scripts/smoke.mjs +1180 -0
  629. package/scripts/stress-contract-compat.mjs +94 -0
  630. package/scripts/stress.mjs +882 -0
  631. package/scripts/test-domains.mjs +247 -0
  632. package/scripts/test-execution-profile-manifest.mjs +273 -0
  633. package/scripts/test-execution-profiles.mjs +147 -0
  634. package/scripts/test-performance-reporter.mjs +291 -0
  635. package/scripts/toolchain-manager.mjs +266 -0
  636. package/scripts/toolchains.json +19 -0
  637. package/scripts/windows-conpty-probe-child.mjs +82 -0
  638. package/scripts/windows-conpty-worker.ps1 +24 -0
  639. package/scripts/windows-credential-host-manifest.json +16 -0
  640. package/scripts/windows-credential-host-protocol-v1.json +16 -0
  641. package/scripts/windows-credential-host.cs +256 -0
  642. package/scripts/windows-credential-host.ps1 +26 -0
  643. package/scripts/windows-local-control-manifest.json +23 -0
  644. package/scripts/windows-local-control-spike.cs +738 -0
  645. package/scripts/windows-local-control-spike.mjs +415 -0
  646. package/scripts/windows-local-control-spike.ps1 +35 -0
  647. package/scripts/windows-local-control.cs +738 -0
  648. package/scripts/windows-local-control.ps1 +35 -0
  649. package/scripts/windows-native-api-inventory-v1.json +90 -0
  650. package/scripts/windows-process-host-manifest.json +20 -0
  651. package/scripts/windows-process-host-protocol-v1.json +59 -0
  652. package/scripts/windows-process-host.cs +2385 -0
  653. package/scripts/windows-process-host.ps1 +59 -0
  654. package/scripts/windows-realpath-shim.cjs +78 -0
@@ -0,0 +1,275 @@
1
+ # CodexGPT: Windows + Cloudflare Tunnel + Custom Domain
2
+
3
+ This guide describes the preferred self-hosted deployment for CodexGPT:
4
+
5
+ ```text
6
+ ChatGPT
7
+ -> HTTPS
8
+ mcp.example.com
9
+ -> Cloudflare DNS / TLS / Tunnel
10
+ 127.0.0.1:8787
11
+ -> CodexGPT
12
+ -> one local repository
13
+ ```
14
+
15
+ The design does not require WSL or a third-party Remote MCP relay. Cloudflare provides DNS, TLS, and inbound tunnel transport only. Authorization and workspace policy remain enforced by CodexGPT on the Windows machine.
16
+
17
+ ## Security properties
18
+
19
+ The recommended deployment has these properties:
20
+
21
+ - CodexGPT listens on `127.0.0.1`, not a LAN or public interface.
22
+ - `cloudflared` creates an outbound connection to Cloudflare.
23
+ - TCP port 8787 is not opened on the router or exposed directly through Windows Firewall.
24
+ - ChatGPT uses a stable HTTPS hostname such as `mcp.example.com`.
25
+ - The `/mcp` endpoint requires a CodexGPT token.
26
+ - The Cloudflare Tunnel credential and CodexGPT MCP token are separate secrets.
27
+ - The ingress configuration has a final deny rule.
28
+ - Logs and screenshots must not contain the complete tokenized Server URL.
29
+
30
+ Cloudflare Tunnel does not replace CodexGPT authorization, permission profiles, local approvals, or operating-system isolation. Safe Bash is a command filter, not a sandbox.
31
+
32
+ ## Requirements
33
+
34
+ - A domain managed by Cloudflare DNS
35
+ - Windows 10 or Windows 11
36
+ - Node.js 20+
37
+ - CodexGPT installed globally
38
+ - `cloudflared` installed by CodexGPT or available on `PATH`
39
+
40
+ ```powershell
41
+ npm install -g codexgpt
42
+ codexgpt install-cloudflared
43
+ codexgpt doctor
44
+ ```
45
+
46
+ CodexGPT installs the verified `cloudflared.exe` under `%USERPROFILE%\.codexgpt\bin` for the supported default path.
47
+
48
+ ## Option A: locally managed named tunnel
49
+
50
+ This path stores a tunnel credentials JSON file on the local machine.
51
+
52
+ ### 1. Authenticate Cloudflare
53
+
54
+ ```powershell
55
+ cloudflared tunnel login
56
+ ```
57
+
58
+ A browser opens. Select the Cloudflare zone that contains your domain.
59
+
60
+ ### 2. Create the tunnel
61
+
62
+ ```powershell
63
+ cloudflared tunnel create codexgpt
64
+ ```
65
+
66
+ Record the tunnel UUID printed by `cloudflared`.
67
+
68
+ ### 3. Route DNS
69
+
70
+ ```powershell
71
+ cloudflared tunnel route dns codexgpt mcp.example.com
72
+ ```
73
+
74
+ Use a dedicated subdomain. Do not use the apex domain for the MCP endpoint.
75
+
76
+ ### 4. Create the Cloudflare configuration
77
+
78
+ Create `%USERPROFILE%\.cloudflared\config.yml`:
79
+
80
+ ```yaml
81
+ tunnel: YOUR-TUNNEL-UUID
82
+ credentials-file: C:\Users\YOUR-NAME\.cloudflared\YOUR-TUNNEL-UUID.json
83
+
84
+ ingress:
85
+ - hostname: mcp.example.com
86
+ service: http://127.0.0.1:8787
87
+ originRequest:
88
+ httpHostHeader: mcp.example.com
89
+ connectTimeout: 10s
90
+ noHappyEyeballs: false
91
+ - service: http_status:404
92
+ ```
93
+
94
+ The final `http_status:404` rule is mandatory. It prevents unmatched hostnames from being forwarded to the local service.
95
+
96
+ Validate the configuration:
97
+
98
+ ```powershell
99
+ cloudflared tunnel ingress validate
100
+ cloudflared tunnel ingress rule https://mcp.example.com/mcp
101
+ ```
102
+
103
+ ### 5. Start CodexGPT
104
+
105
+ Generate a long random CodexGPT token. One PowerShell option is:
106
+
107
+ ```powershell
108
+ $bytes = New-Object byte[] 32
109
+ [System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
110
+ $token = [Convert]::ToHexString($bytes).ToLowerInvariant()
111
+ ```
112
+
113
+ Start the stable endpoint:
114
+
115
+ ```powershell
116
+ codexgpt stable `
117
+ --root D:\Dev\your-repo `
118
+ --hostname mcp.example.com `
119
+ --tunnel-name codexgpt `
120
+ --cloudflare-config "$env:USERPROFILE\.cloudflared\config.yml" `
121
+ --token $token `
122
+ --bash safe
123
+ ```
124
+
125
+ CodexGPT binds the origin to loopback by default. Do not pass `--host 0.0.0.0` for this deployment.
126
+
127
+ ### 6. Add the connection to ChatGPT
128
+
129
+ CodexGPT attempts to copy a complete URL similar to the following, but keeps the credential-bearing URL out of startup logs by default:
130
+
131
+ ```text
132
+ https://mcp.example.com/mcp?codexgpt_token=...
133
+ ```
134
+
135
+ If clipboard integration is unavailable, press `u` in the CodexGPT terminal to display the secret URL explicitly.
136
+
137
+ In ChatGPT Developer Mode, create the Plugin/App connection with:
138
+
139
+ ```text
140
+ Name: CodexGPT
141
+ Connection: Server URL
142
+ Server URL: paste the complete copied URL
143
+ Authentication: No Authentication / None
144
+ ```
145
+
146
+ The current personal compatibility flow authenticates through the query credential in the complete Server URL. Do not remove the query string, share it, publish it, commit it, or place it in issue reports. Treat browser history, clipboard contents, screenshots, logs, and copied links as possible exposure paths.
147
+
148
+ ## Option B: dashboard-managed tunnel token
149
+
150
+ Cloudflare can also provide a connector token from the dashboard. Store that token in a local file rather than a command line or saved CodexGPT profile.
151
+
152
+ Create the secret file:
153
+
154
+ ```powershell
155
+ $dir = Join-Path $env:USERPROFILE ".codexgpt"
156
+ New-Item -ItemType Directory -Force -Path $dir | Out-Null
157
+ notepad (Join-Path $dir "cloudflare-tunnel-token")
158
+ ```
159
+
160
+ Put only the Cloudflare connector token in the file. Then start:
161
+
162
+ ```powershell
163
+ codexgpt stable `
164
+ --root D:\Dev\your-repo `
165
+ --hostname mcp.example.com `
166
+ --cloudflare-token-file "$env:USERPROFILE\.codexgpt\cloudflare-tunnel-token" `
167
+ --token <long-random-codexgpt-token> `
168
+ --bash safe
169
+ ```
170
+
171
+ Do not confuse the credentials:
172
+
173
+ ```text
174
+ Cloudflare Tunnel credential authorizes cloudflared to connect the machine to Cloudflare.
175
+ CodexGPT MCP token authorizes requests reaching the local /mcp endpoint.
176
+ ```
177
+
178
+ ## Host-header and DNS-rebinding controls
179
+
180
+ Use all of these controls together:
181
+
182
+ 1. Keep CodexGPT bound to `127.0.0.1`.
183
+ 2. Configure one exact Cloudflare ingress hostname.
184
+ 3. Add the final `http_status:404` ingress rule.
185
+ 4. Set `originRequest.httpHostHeader` to the expected public hostname.
186
+ 5. Do not create wildcard DNS records pointing at the tunnel.
187
+ 6. Do not allow arbitrary user-supplied hostnames in wrapper scripts or saved profiles.
188
+ 7. Keep the CodexGPT token mandatory even when Cloudflare Access is also used.
189
+
190
+ Cloudflare Access may be useful as an additional layer, but it must be tested against the ChatGPT connector flow before being made mandatory. It does not replace the CodexGPT token or local authorization.
191
+
192
+ ## Token rotation
193
+
194
+ ### Rotate the CodexGPT token
195
+
196
+ 1. Stop CodexGPT.
197
+ 2. Generate a new random token.
198
+ 3. Restart CodexGPT with the new `--token` value.
199
+ 4. Replace the complete Server URL in ChatGPT.
200
+ 5. Remove the old URL from notes, browser history where practical, screenshots, clipboard managers, and shell history.
201
+
202
+ A stable hostname does not make the old token valid after rotation.
203
+
204
+ ### Rotate the Cloudflare Tunnel credential
205
+
206
+ Rotate or recreate the tunnel credential through Cloudflare, update the local credentials JSON or token file, and restart `cloudflared`/CodexGPT. This does not rotate the CodexGPT MCP token.
207
+
208
+ ## Logging rules
209
+
210
+ - Do not use the complete tokenized URL in documentation, screenshots, issues, PR descriptions, or shell transcripts.
211
+ - Prefer `codexgpt doctor` and redacted status output for diagnostics.
212
+ - Enable `--log-requests` only for bounded troubleshooting; supported output is redacted, but logs should still be treated as sensitive.
213
+ - Never enable shell tracing around commands containing tokens.
214
+ - Prefer token files for persistent Cloudflare connector credentials.
215
+ - Do not store raw tunnel tokens in workspace profiles or Git repositories.
216
+
217
+ ## Windows Firewall and router
218
+
219
+ No inbound firewall or router rule is required. Confirm that port 8787 is loopback-only:
220
+
221
+ ```powershell
222
+ Get-NetTCPConnection -LocalPort 8787 -State Listen |
223
+ Select-Object LocalAddress, LocalPort, OwningProcess
224
+ ```
225
+
226
+ The expected local address is `127.0.0.1` or `::1`. A listener on `0.0.0.0`, a LAN address, or `[::]` is outside the recommended deployment.
227
+
228
+ ## Verification
229
+
230
+ Run local diagnostics:
231
+
232
+ ```powershell
233
+ codexgpt doctor
234
+ ```
235
+
236
+ Check the tunnel:
237
+
238
+ ```powershell
239
+ cloudflared tunnel info codexgpt
240
+ cloudflared tunnel ingress validate
241
+ ```
242
+
243
+ Test the public health endpoint without printing the MCP token:
244
+
245
+ ```powershell
246
+ Invoke-WebRequest https://mcp.example.com/healthz
247
+ ```
248
+
249
+ Then use `codexgpt connection-test --root D:\Dev\your-repo` when ChatGPT cannot create or call the connection. Connection-test disables writes, Bash, and tool cards while preserving request-arrival diagnostics.
250
+
251
+ ## Operational checklist
252
+
253
+ Before daily use:
254
+
255
+ - The intended repository path is correct.
256
+ - CodexGPT is bound to loopback.
257
+ - The named tunnel uses the exact hostname.
258
+ - The final ingress deny rule is present.
259
+ - The complete ChatGPT Server URL contains the current CodexGPT token.
260
+ - Bash mode matches the repository trust level.
261
+ - `--no-bash` is used for untrusted repositories.
262
+ - Advanced V3/V4 contracts are enabled only with their required policy, audit, permission-profile, and local-approval controls.
263
+
264
+ ## Other URL modes
265
+
266
+ CodexGPT also supports:
267
+
268
+ ```text
269
+ codexgpt start --tunnel cloudflare disposable quick tunnel
270
+ codexgpt ngrok --hostname name.ngrok-free.dev stable ngrok hostname
271
+ codexgpt tailscale --hostname device.tailnet.ts.net
272
+ codexgpt start --tunnel none local-only HTTP
273
+ ```
274
+
275
+ For the stated self-hosted Windows requirement, the named Cloudflare Tunnel with a custom subdomain is the preferred path.
package/FAQ.md ADDED
@@ -0,0 +1,366 @@
1
+ # CodexGPT FAQ
2
+
3
+ ## Which ChatGPT account should I use?
4
+
5
+ Use a ChatGPT account whose current UI exposes Apps, Developer Mode, or the connection-management page. Availability can vary with account, workspace policy, and rollout; use the current ChatGPT UI as the source of truth.
6
+
7
+ CodexGPT does not unlock Developer Mode, unlock models, bypass account limits, or provide account access. It connects to the ChatGPT app surface your account already has.
8
+
9
+ Account access and model tool support are separate. An eligible account can have Apps / Developer Mode, while a specific model surface may still be unable to call connectors or MCP tools directly. If CodexGPT actions are unavailable in that chat, use another tool-capable ChatGPT surface or the Pro context fallback for that session.
10
+
11
+ ## How is CodexGPT different from generic workspace bridges?
12
+
13
+ They can look similar at the transport layer because both use a local MCP-style bridge and a workspace root.
14
+
15
+ CodexGPT is more focused: it is built around one clear product loop for ChatGPT users:
16
+
17
+ ```text
18
+ install -> setup in one repo -> paste Server URL into ChatGPT -> inspect/edit/verify/review that repo
19
+ ```
20
+
21
+ The main differences are:
22
+
23
+ - CodexGPT is ChatGPT Developer Mode first, not a generic workspace bridge.
24
+ - Bash, write/edit, tool mode, Codex session reads, and handoff execution are separate safety controls.
25
+ - Durable context is repo-backed through `AGENTS.md` and `.ai-bridge/*`, so important project memory stays reviewable in files.
26
+ - The normal workflow emphasizes compact cards, diffs, `show_changes`, smoke tests, and handoff status files.
27
+ - CodexGPT keeps a strict boundary: no model proxying, account pooling, third-party Pro site scraping, quota bypassing, or OS sandbox claims.
28
+
29
+ CodexGPT connects ChatGPT to a user-approved local repository over MCP. Repository access, command permissions, and change review remain explicit.
30
+
31
+ ## What does Repository Analysis understand?
32
+
33
+ Repository Analysis builds a local repository map from bounded, inspectable evidence:
34
+
35
+ - project and package manifests
36
+ - source/test/config/documentation paths
37
+ - common declarations, imports, includes, and internal module relationships
38
+ - Git changes and existing project verification scripts
39
+
40
+ It supports TypeScript/JavaScript, Python, Go, Rust, Swift, Java, C#, C, and C++ declaration patterns. Unsupported languages still participate in safe inventory and lexical search.
41
+
42
+ Relationships are labeled `exact`, `strong`, or `inferred`. The repository map does not replace a compiler or language server. CodexGPT does not require a language server, daemon, embedding service, or vector database.
43
+
44
+ Analysis is process-local and cached by a bounded workspace fingerprint. Direct CodexGPT writes, edits, and patches invalidate that cache. If limits are reached, results say `partial` and retain normal tree/search/read/review fallback behavior.
45
+
46
+ Set `CODEXGPT_ANALYSIS=0` to disable this layer while keeping the standard file, search, Git, and review tools available.
47
+
48
+ Terminal users can inspect the same facts without ChatGPT:
49
+
50
+ ```bash
51
+ codexgpt inspect --json
52
+ codexgpt review --json
53
+ ```
54
+
55
+ ## What is the `codexgpt` supertool?
56
+
57
+ Note: this FAQ follows GitHub `main`. Check the npm badge/version before assuming a `main` feature is in `codexgpt@latest`.
58
+
59
+ `codexgpt` is a stable wrapper tool for advanced setups. It accepts:
60
+
61
+ ```json
62
+ { "action": "search", "args": { "query": "needle", "path": "src" } }
63
+ ```
64
+
65
+ Call it with `action=list_actions` to see what the current server mode actually allows. It cannot call tools that are hidden by `--tool-mode`, `--no-bash`, or non-workspace write mode.
66
+
67
+ Use explicit tools such as `read`, `search`, `edit`, `bash`, and `show_changes` for normal work. Use the supertool when ChatGPT connector caching, custom workflows, or stable wrapper-style integrations matter more than separate visible tool descriptors.
68
+
69
+ ## How do project guidance and Skills work?
70
+
71
+ Normal `standard` mode enables project guidance by default. Workspace open returns bounded root `AGENTS.md` text and a compact catalog of workspace Skills that are eligible for implicit use. Before the first mutation, and again after switching to another subtree, ChatGPT should call `codex_context(target_path)` to obtain the exact root-to-target instruction chain and target-scoped Skill catalog.
72
+
73
+ A matching Skill is loaded lazily and remains instruction text only. Skill scripts do not run automatically, declared dependencies are not installed or treated as verified, and neither AGENTS nor Skills can enable tools, widen roots, approve mutations, or bypass Policy, Approval, Audit, blocked paths, or execution modes. User/plugin Skills remain excluded unless a call explicitly opts into global discovery.
74
+
75
+ `--tool-mode minimal` does not expose `codex_context`. When guidance mode is omitted, minimal mode therefore uses the exact `legacy` compatibility projection; explicitly requesting `CODEXGPT_GUIDANCE_MODE=standard` with minimal mode fails at startup. Apps created before the Phase 6 tool update may need one **Scan Tools** refresh or recreation.
76
+
77
+ ## What is the recommended install path?
78
+
79
+ Install globally once:
80
+
81
+ ```bash
82
+ npm install -g codexgpt
83
+ ```
84
+
85
+ Then run setup from the repo you want ChatGPT to work on:
86
+
87
+ ```bash
88
+ codexgpt setup
89
+ ```
90
+
91
+ After setup, daily startup from that same repo is:
92
+
93
+ ```bash
94
+ codexgpt start
95
+ ```
96
+
97
+ `npx codexgpt@latest start` still works as a no-install fallback, but the global install is easier for normal users.
98
+
99
+ ## What do I enable in ChatGPT?
100
+
101
+ Open ChatGPT's current Apps/Plugins connection-management page. If the UI offers Developer Mode, enable it:
102
+
103
+ ```text
104
+ Settings -> Plugins / Apps -> + / Create
105
+ ```
106
+
107
+ When creating the plugin, use the supported personal ChatGPT compatibility flow:
108
+
109
+ ```text
110
+ Name: CodexGPT
111
+ Description: Local workspace bridge for ChatGPT coding
112
+ Connection: Server URL
113
+ Server URL: paste the complete URL copied by CodexGPT, including codexgpt_token
114
+ Authentication: No Authentication / None (if shown)
115
+ ```
116
+
117
+ The complete Server URL contains the query-token credential. Treat it as a password-equivalent secret because it can leak through browser history, clipboard contents, screenshots, logs, and copied links. Do not share, publish, or commit it. The unreleased source checkout now includes locally verified Phase 8 Tasks 8A1–8A9, live Gate G8-U Journeys U2–U7, and local G8-X through a separate OAuth App and token-free URL; exact-head CI and publication remain incomplete. This section documents only the retained Legacy compatibility App. Do not mix the two Apps or replace either flow with manual static-Bearer configuration.
118
+
119
+ ## Should CSP stay enabled?
120
+
121
+ If the Developer Mode page displays an Enforce CSP toggle, keep it enabled.
122
+
123
+ CodexGPT widgets are built for the CSP-enabled path. They do not need unrestricted network access, external fonts, remote scripts, iframes, or third-party images.
124
+
125
+ ## Does CodexGPT bypass rate limits?
126
+
127
+ No.
128
+
129
+ CodexGPT does not bypass, avoid, increase, pool, resell, or modify ChatGPT, Codex, OpenAI, or third-party model limits. Every request still runs through the user's own ChatGPT session and whatever limits that account has.
130
+
131
+ The useful part is that Codex and ChatGPT are different product surfaces. If one workflow is unavailable and another product surface you already have access to is still available, CodexGPT lets you work against the same local repo without changing either product's limits.
132
+
133
+ ## Can CodexGPT use GPT-5.5?
134
+
135
+ Only if your ChatGPT account already exposes that exact model, or a similar stronger model, in the ChatGPT web product surface you are using, and that model surface can call Developer Mode apps.
136
+
137
+ Some GPT-5.5 Pro or other model surfaces may not expose app actions in a given chat. If CodexGPT actions are unavailable there, CodexGPT cannot make that request reach the local server. CodexGPT does not provide, proxy, resell, or unlock models. It gives compatible ChatGPT sessions local repo tools.
138
+
139
+ For models that cannot call tools, generate a repo context bundle instead:
140
+
141
+ ```bash
142
+ codexgpt pro-bundle --root /path/to/repo --copy
143
+ ```
144
+
145
+ ## What can ChatGPT see through CodexGPT?
146
+
147
+ ChatGPT can see explicit workspace context exposed by tools:
148
+
149
+ - `AGENTS.md`
150
+ - `.ai-bridge` plans and status files
151
+ - git status
152
+ - git diff
153
+ - selected source files
154
+ - file tree and search results
155
+
156
+ It cannot read hidden Codex runtime memory or anything outside the allowed workspace unless you explicitly allow that root.
157
+
158
+ ## What can ChatGPT edit?
159
+
160
+ In normal coding mode, ChatGPT can write and exact-edit files inside the configured workspace.
161
+
162
+ Safety defaults block common sensitive paths:
163
+
164
+ - `.env`
165
+ - private keys
166
+ - `.git`
167
+ - `node_modules`
168
+ - generated build/cache folders
169
+ - symlink escapes
170
+ - paths outside the workspace
171
+
172
+ Use handoff mode if you want ChatGPT to write a plan only and let Codex execute locally. In handoff mode, generic `write` and `edit` tools are not advertised to ChatGPT.
173
+
174
+ Use `CODEXGPT_WRITE_MODE=off` when you want direct `write` and `edit` tools removed from the advertised MCP tool list while still allowing bounded handoff/context files.
175
+
176
+ ## Are workspace IDs shared across ChatGPT sessions?
177
+
178
+ No. A `workspace_id` is now a random opaque handle owned by one MCP server session: one HTTP transport session, or one STDIO process session. Opening the same root inside the same active session reuses that session's handle, but another session receives a different handle and cannot use or list the first session's workspaces.
179
+
180
+ Use `close_workspace` to invalidate a handle immediately. Reopening the root creates a new handle. Idle handles expire after `CODEXGPT_WORKSPACE_TTL_MS`; the default is the HTTP session TTL, normally 30 minutes, and successful use refreshes the idle deadline.
181
+
182
+ For one compatibility cycle, an omitted `workspace_id` still selects only that session's configured default root. It does not restore cross-session sharing.
183
+
184
+ ## Can CodexGPT bind bash to a specific session id?
185
+
186
+ CodexGPT cannot attach to, read, or execute inside a specific Codex app conversation or terminal session.
187
+
188
+ The MCP `bash` tool runs from the CodexGPT server process you started for the configured workspace. MCP session ids are HTTP transport state between ChatGPT and CodexGPT; they are not Codex conversation ids.
189
+
190
+ What CodexGPT can do is require a matching local bash session label before it runs shell commands:
191
+
192
+ ```bash
193
+ codexgpt start --bash-session main --require-bash-session
194
+ ```
195
+
196
+ Then `bash` calls must include `session_id: "main"`. This helps avoid accidental shell execution in the wrong CodexGPT terminal, but it is not remote control of an existing Codex app chat.
197
+
198
+ CodexGPT can list local Codex session ids and titles when you explicitly opt in:
199
+
200
+ ```bash
201
+ codexgpt start --codex-sessions metadata
202
+ ```
203
+
204
+ This reads local Codex JSONL history under `~/.codex/sessions` and `~/.codex/archived_sessions` and returns metadata plus `codex resume <session-id>` commands. Use `--codex-sessions read` only if you also want bounded transcript reads. It does not attach to a live Codex app conversation.
205
+
206
+ If you do not want ChatGPT to trigger shell commands while you work in Codex, start CodexGPT with bash disabled:
207
+
208
+ ```bash
209
+ codexgpt start --no-bash
210
+ ```
211
+
212
+ This removes the `bash` MCP tool from the advertised tool list. ChatGPT can still use non-bash CodexGPT tools such as workspace open, read, search, and show_changes. Direct `write`/`edit` are advertised only in workspace write mode.
213
+
214
+ If you only want ChatGPT to plan and leave execution to Codex or another local agent:
215
+
216
+ ```bash
217
+ codexgpt start --mode handoff --no-bash
218
+ ```
219
+
220
+ ## Which tunnel should I choose?
221
+
222
+ Use this rule:
223
+
224
+ ```text
225
+ Fast demo: Cloudflare quick tunnel
226
+ Recommended stable URL: ngrok free dev domain
227
+ Custom domain: Cloudflare named tunnel
228
+ Tailnet users: Tailscale Funnel
229
+ No public tunnel: local-only mode, only for clients that can reach localhost
230
+ ```
231
+
232
+ Cloudflare quick tunnel URLs change on restart. If you put a quick-mode URL into ChatGPT, you must edit the ChatGPT app Server URL every time you restart the tunnel.
233
+
234
+ For most users, the better path is a free ngrok dev domain. Create a free ngrok account, find your assigned dev domain under Universal Gateway -> Domains, and save that hostname during `codexgpt setup`.
235
+
236
+ If you own a domain, use Cloudflare named tunnels and route DNS to a hostname like `codexgpt.example.com`.
237
+
238
+ ## Why does ChatGPT show “Something went wrong” when I create a connector?
239
+
240
+ Usually ChatGPT could not reach the public MCP URL. A generated `trycloudflare.com` URL is not proof that `cloudflared` stayed connected.
241
+
242
+ Run the connection test:
243
+
244
+ ```bash
245
+ codexgpt connection-test --root /path/to/repo
246
+ ```
247
+
248
+ This keeps `read`, `tree`, `search`, and `load_skill`, but disables file writes,
249
+ bash, and tool cards. In ChatGPT, create the development plugin under
250
+ `Settings -> Plugins`, paste the complete Server URL including its `codexgpt_token`
251
+ query string, and, if shown, choose `Authentication: No Authentication / None`.
252
+
253
+ The terminal output separates the failure boundary:
254
+
255
+ - No `POST /mcp received`: the request did not reach CodexGPT. Check the ChatGPT Plugins page and the tunnel.
256
+ - `POST /mcp -> 401`: the complete URL was not used, the query token was removed, or the credential no longer matches the running CodexGPT process.
257
+ - `POST /mcp -> 2xx`: ChatGPT reached CodexGPT and the MCP endpoint responded.
258
+
259
+ Keep CodexGPT running while testing. A Cloudflare quick-tunnel URL changes on every restart. If Cloudflare returns `530` / `Error 1033`, check DNS or proxy-client DNS handling on the machine running `cloudflared`.
260
+
261
+ ChatGPT now manages development apps under Plugins. The browser error `Failed to execute 'removeChild' on 'Node'` occurs in the ChatGPT page, before CodexGPT can handle an MCP request. Remove or recreate the stale plugin entry from the Plugins page, then retry with the current URL. CodexGPT cannot repair that browser-side entry.
262
+
263
+ Official references:
264
+
265
+ - OpenAI: connect an MCP server to ChatGPT: https://developers.openai.com/apps-sdk/deploy/connect-chatgpt
266
+ - OpenAI: MCP server authentication: https://developers.openai.com/apps-sdk/build/auth
267
+ - ngrok dev domains: https://ngrok.com/docs/universal-gateway/domains
268
+ - Cloudflare Tunnel routing: https://developers.cloudflare.com/tunnel/routing/
269
+ - Cloudflare Tunnel DNS records: https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/routing-to-tunnel/dns/
270
+
271
+ ## Can I use the same ChatGPT app URL every day?
272
+
273
+ Yes, if you use a stable hostname.
274
+
275
+ Recommended simple path:
276
+
277
+ ```bash
278
+ codexgpt setup
279
+ # choose ngrok
280
+ # enter your ngrok free dev domain
281
+ ```
282
+
283
+ After that:
284
+
285
+ ```bash
286
+ codexgpt start
287
+ ```
288
+
289
+ The same hostname and CodexGPT token are reused for that workspace. Keep the complete credential-bearing Server URL private, and replace it in ChatGPT whenever you rotate the token.
290
+
291
+ ## What if I run CodexGPT in two repos at once?
292
+
293
+ Use different local ports and different tunnel hostnames.
294
+
295
+ Example:
296
+
297
+ ```text
298
+ repo A: port 8787, hostname A
299
+ repo B: port 8788, hostname B
300
+ ```
301
+
302
+ Run `codexgpt setup` in each repo and save a profile per workspace.
303
+
304
+ ## Why not use codexgpt.github.io?
305
+
306
+ GitHub Pages gives `owner.github.io` only to the GitHub user or organization named `owner`.
307
+
308
+ The `codexgpt` GitHub username already exists, so this repo cannot use `codexgpt.github.io` from the `rebel0789` account.
309
+
310
+ The clean GitHub Pages URL for this project is:
311
+
312
+ ```text
313
+ https://rebel0789.github.io/codexgpt/
314
+ ```
315
+
316
+ ## Is CodexGPT production safe?
317
+
318
+ CodexGPT is a local developer bridge, not an OS sandbox.
319
+
320
+ Use it with repos you trust. Keep token auth enabled for public tunnels. Keep safe bash on unless you know why you need full bash. Read [SECURITY.md](SECURITY.md) before exposing it through a public tunnel.
321
+
322
+ ## Where are saved settings stored?
323
+
324
+ CodexGPT stores local state under `~/.codexgpt` by default. On Windows that is usually `C:\Users\<you>\.codexgpt`.
325
+
326
+ Workspace profiles are JSON files saved under:
327
+
328
+ ```text
329
+ ~/.codexgpt/profiles/
330
+ ```
331
+
332
+ Current runtime connection files are saved under:
333
+
334
+ ```text
335
+ ~/.codexgpt/runtime/
336
+ ```
337
+
338
+ Strict Policy Kernel Permission Profiles are saved under:
339
+
340
+ ```text
341
+ ~/.codexgpt/permissions/
342
+ ```
343
+
344
+ When shared-secret Policy identities are used, CodexGPT keeps an installation-local HMAC key at `~/.codexgpt/policy/identity-hmac.key`. Treat it as private local state: do not share or hand-edit it. Replacing it changes future credential references.
345
+
346
+ Set `CODEXGPT_HOME` to move the complete CodexGPT state directory.
347
+
348
+ Use:
349
+
350
+ ```bash
351
+ codexgpt settings
352
+ codexgpt settings list
353
+ codexgpt settings delete --yes
354
+ ```
355
+
356
+ Saved tokens are redacted when profiles are displayed.
357
+
358
+ ## What are `legacy`, `shadow`, and `enforce` Policy Kernel modes?
359
+
360
+ `legacy` is the migration-cycle default and preserves the existing execution path. `shadow` preserves that path while calculating only redacted comparison decisions. `enforce` makes the compiled Policy Kernel authoritative and fails closed when policy or required enforcement facts are unavailable.
361
+
362
+ Contracts V1 and V2 keep the original restrictive behavior and never create pending approvals. Explicit Contract V3 adds a local-only approval CLI for confirmed roots and trusted-code Windows process execution; the remote MCP client cannot approve its own request. `full_access` still has the ambient authority of the current Windows user and is not a sandbox. The reserved `workspace` profile remains unavailable because the AppContainer/LPAC isolation gate did not pass.
363
+
364
+ Permission Profiles are strict local JSON files under `~/.codexgpt/permissions/`. They are separate from saved runtime connection profiles. `toolMode` changes discovery only and does not expand a Permission Profile, hard policy, identity scope, or enforcement capability. See the Contract V3 section in [README.md](README.md) for the activation and local approval flow.
365
+
366
+ Rollback during this migration cycle may return to reviewed `legacy` behavior, the generated compatibility profile, or a narrower read-only profile. A Policy Kernel startup or profile error never falls through to unguarded execution.