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.
- package/AGENTS.example.md +20 -0
- package/CHANGELOG.md +342 -0
- package/CHATGPT_PROMPT.md +12 -0
- package/CLOUDFLARED_VERIFIED_INSTALL.md +94 -0
- package/CODEX_PROMPT.md +12 -0
- package/CONTRIBUTING.md +62 -0
- package/DOMAIN_SETUP.md +275 -0
- package/FAQ.md +366 -0
- package/FAQ_ZH.md +329 -0
- package/LICENSE +21 -0
- package/PUBLIC_LAUNCH_CHECKLIST.md +111 -0
- package/README.md +490 -0
- package/README_ZH.md +747 -0
- package/SECURITY.md +295 -0
- package/config.example.env +103 -0
- package/dist/access/fullAccessLease.js +148 -0
- package/dist/access/fullAccessLease.js.map +1 -0
- package/dist/access/protectedRoots.js +122 -0
- package/dist/access/protectedRoots.js.map +1 -0
- package/dist/access/rootAdmission.js +347 -0
- package/dist/access/rootAdmission.js.map +1 -0
- package/dist/analysis/cache.js +27 -0
- package/dist/analysis/cache.js.map +1 -0
- package/dist/analysis/classify.js +102 -0
- package/dist/analysis/classify.js.map +1 -0
- package/dist/analysis/extract.js +139 -0
- package/dist/analysis/extract.js.map +1 -0
- package/dist/analysis/graph.js +22 -0
- package/dist/analysis/graph.js.map +1 -0
- package/dist/analysis/impact.js +167 -0
- package/dist/analysis/impact.js.map +1 -0
- package/dist/analysis/index.js +215 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/inventory.js +51 -0
- package/dist/analysis/inventory.js.map +1 -0
- package/dist/analysis/providers.js +24 -0
- package/dist/analysis/providers.js.map +1 -0
- package/dist/analysis/rank.js +27 -0
- package/dist/analysis/rank.js.map +1 -0
- package/dist/analysis/types.js +8 -0
- package/dist/analysis/types.js.map +1 -0
- package/dist/audit/canonicalJson.js +79 -0
- package/dist/audit/canonicalJson.js.map +1 -0
- package/dist/audit/diagnostics.js +128 -0
- package/dist/audit/diagnostics.js.map +1 -0
- package/dist/audit/index.js +12 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/lifecycleV3.js +53 -0
- package/dist/audit/lifecycleV3.js.map +1 -0
- package/dist/audit/lifecycleV4.js +70 -0
- package/dist/audit/lifecycleV4.js.map +1 -0
- package/dist/audit/lock.js +195 -0
- package/dist/audit/lock.js.map +1 -0
- package/dist/audit/queryTool.js +120 -0
- package/dist/audit/queryTool.js.map +1 -0
- package/dist/audit/runtime.js +48 -0
- package/dist/audit/runtime.js.map +1 -0
- package/dist/audit/schemas.js +640 -0
- package/dist/audit/schemas.js.map +1 -0
- package/dist/audit/store.js +1309 -0
- package/dist/audit/store.js.map +1 -0
- package/dist/audit/transactionParticipant.js +45 -0
- package/dist/audit/transactionParticipant.js.map +1 -0
- package/dist/audit/types.js +11 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/auth/audit.js +44 -0
- package/dist/auth/audit.js.map +1 -0
- package/dist/auth/authorizationStore.js +333 -0
- package/dist/auth/authorizationStore.js.map +1 -0
- package/dist/auth/challenges.js +25 -0
- package/dist/auth/challenges.js.map +1 -0
- package/dist/auth/clientStore.js +469 -0
- package/dist/auth/clientStore.js.map +1 -0
- package/dist/auth/cloudflareConfig.js +112 -0
- package/dist/auth/cloudflareConfig.js.map +1 -0
- package/dist/auth/configuration.js +167 -0
- package/dist/auth/configuration.js.map +1 -0
- package/dist/auth/credentialStore.js +65 -0
- package/dist/auth/credentialStore.js.map +1 -0
- package/dist/auth/deploymentLock.js +220 -0
- package/dist/auth/deploymentLock.js.map +1 -0
- package/dist/auth/deploymentRegistry.js +149 -0
- package/dist/auth/deploymentRegistry.js.map +1 -0
- package/dist/auth/errors.js +26 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/grantStore.js +307 -0
- package/dist/auth/grantStore.js.map +1 -0
- package/dist/auth/index.js +39 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/keyManager.js +148 -0
- package/dist/auth/keyManager.js.map +1 -0
- package/dist/auth/localAdminSession.js +173 -0
- package/dist/auth/localAdminSession.js.map +1 -0
- package/dist/auth/metadata.js +69 -0
- package/dist/auth/metadata.js.map +1 -0
- package/dist/auth/oauthProvider.js +589 -0
- package/dist/auth/oauthProvider.js.map +1 -0
- package/dist/auth/ownerApproval.js +51 -0
- package/dist/auth/ownerApproval.js.map +1 -0
- package/dist/auth/policyIdentity.js +189 -0
- package/dist/auth/policyIdentity.js.map +1 -0
- package/dist/auth/rateLimits.js +66 -0
- package/dist/auth/rateLimits.js.map +1 -0
- package/dist/auth/recovery.js +275 -0
- package/dist/auth/recovery.js.map +1 -0
- package/dist/auth/requestContext.js +34 -0
- package/dist/auth/requestContext.js.map +1 -0
- package/dist/auth/resourceMiddleware.js +147 -0
- package/dist/auth/resourceMiddleware.js.map +1 -0
- package/dist/auth/runtimeStatus.js +51 -0
- package/dist/auth/runtimeStatus.js.map +1 -0
- package/dist/auth/schemas.js +84 -0
- package/dist/auth/schemas.js.map +1 -0
- package/dist/auth/stateStore.js +468 -0
- package/dist/auth/stateStore.js.map +1 -0
- package/dist/auth/tokenService.js +631 -0
- package/dist/auth/tokenService.js.map +1 -0
- package/dist/auth/toolSecurity.js +108 -0
- package/dist/auth/toolSecurity.js.map +1 -0
- package/dist/auth/types.js +6 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/auth/windowsDpapi.js +193 -0
- package/dist/auth/windowsDpapi.js.map +1 -0
- package/dist/bashOps.js +292 -0
- package/dist/bashOps.js.map +1 -0
- package/dist/capabilitiesOps.js +412 -0
- package/dist/capabilitiesOps.js.map +1 -0
- package/dist/changesets/crypto.js +92 -0
- package/dist/changesets/crypto.js.map +1 -0
- package/dist/changesets/index.js +9 -0
- package/dist/changesets/index.js.map +1 -0
- package/dist/changesets/moveStore.js +237 -0
- package/dist/changesets/moveStore.js.map +1 -0
- package/dist/changesets/moveUndo.js +386 -0
- package/dist/changesets/moveUndo.js.map +1 -0
- package/dist/changesets/schemas.js +234 -0
- package/dist/changesets/schemas.js.map +1 -0
- package/dist/changesets/store.js +573 -0
- package/dist/changesets/store.js.map +1 -0
- package/dist/changesets/types.js +9 -0
- package/dist/changesets/types.js.map +1 -0
- package/dist/changesets/undo.js +525 -0
- package/dist/changesets/undo.js.map +1 -0
- package/dist/changesets/unifiedUndo.js +31 -0
- package/dist/changesets/unifiedUndo.js.map +1 -0
- package/dist/cliEnvironment.js +85 -0
- package/dist/cliEnvironment.js.map +1 -0
- package/dist/codexSessions.js +733 -0
- package/dist/codexSessions.js.map +1 -0
- package/dist/codexgptSupertool.js +216 -0
- package/dist/codexgptSupertool.js.map +1 -0
- package/dist/codexproSupertool.js +204 -0
- package/dist/codexproSupertool.js.map +1 -0
- package/dist/config.js +733 -0
- package/dist/config.js.map +1 -0
- package/dist/control/localApprovalClient.js +287 -0
- package/dist/control/localApprovalClient.js.map +1 -0
- package/dist/control/localApprovalServer.js +466 -0
- package/dist/control/localApprovalServer.js.map +1 -0
- package/dist/control/runtime.js +178 -0
- package/dist/control/runtime.js.map +1 -0
- package/dist/control/schemas.js +184 -0
- package/dist/control/schemas.js.map +1 -0
- package/dist/control/windowsLocalControl.js +348 -0
- package/dist/control/windowsLocalControl.js.map +1 -0
- package/dist/fsOps.js +541 -0
- package/dist/fsOps.js.map +1 -0
- package/dist/git/admission.js +26 -0
- package/dist/git/admission.js.map +1 -0
- package/dist/git/branchService.js +51 -0
- package/dist/git/branchService.js.map +1 -0
- package/dist/git/capabilities.js +143 -0
- package/dist/git/capabilities.js.map +1 -0
- package/dist/git/commitService.js +344 -0
- package/dist/git/commitService.js.map +1 -0
- package/dist/git/durableState.js +151 -0
- package/dist/git/durableState.js.map +1 -0
- package/dist/git/execution.js +451 -0
- package/dist/git/execution.js.map +1 -0
- package/dist/git/fileTransaction.js +50 -0
- package/dist/git/fileTransaction.js.map +1 -0
- package/dist/git/indexService.js +421 -0
- package/dist/git/indexService.js.map +1 -0
- package/dist/git/integrations.js +653 -0
- package/dist/git/integrations.js.map +1 -0
- package/dist/git/locks.js +287 -0
- package/dist/git/locks.js.map +1 -0
- package/dist/git/mutationContext.js +92 -0
- package/dist/git/mutationContext.js.map +1 -0
- package/dist/git/mutationJournal.js +91 -0
- package/dist/git/mutationJournal.js.map +1 -0
- package/dist/git/mutationService.js +352 -0
- package/dist/git/mutationService.js.map +1 -0
- package/dist/git/normalization.js +57 -0
- package/dist/git/normalization.js.map +1 -0
- package/dist/git/objectQuarantine.js +243 -0
- package/dist/git/objectQuarantine.js.map +1 -0
- package/dist/git/opaqueRecordStore.js +187 -0
- package/dist/git/opaqueRecordStore.js.map +1 -0
- package/dist/git/operationStore.js +287 -0
- package/dist/git/operationStore.js.map +1 -0
- package/dist/git/parsers.js +311 -0
- package/dist/git/parsers.js.map +1 -0
- package/dist/git/privateIndex.js +79 -0
- package/dist/git/privateIndex.js.map +1 -0
- package/dist/git/productionBootstrap.js +39 -0
- package/dist/git/productionBootstrap.js.map +1 -0
- package/dist/git/readService.js +846 -0
- package/dist/git/readService.js.map +1 -0
- package/dist/git/recovery.js +417 -0
- package/dist/git/recovery.js.map +1 -0
- package/dist/git/repositoryIdentity.js +611 -0
- package/dist/git/repositoryIdentity.js.map +1 -0
- package/dist/git/repositoryStore.js +237 -0
- package/dist/git/repositoryStore.js.map +1 -0
- package/dist/git/resources.js +113 -0
- package/dist/git/resources.js.map +1 -0
- package/dist/git/restoreService.js +178 -0
- package/dist/git/restoreService.js.map +1 -0
- package/dist/git/reviewToken.js +86 -0
- package/dist/git/reviewToken.js.map +1 -0
- package/dist/git/stashService.js +566 -0
- package/dist/git/stashService.js.map +1 -0
- package/dist/git/stateToken.js +139 -0
- package/dist/git/stateToken.js.map +1 -0
- package/dist/gitOps.js +147 -0
- package/dist/gitOps.js.map +1 -0
- package/dist/guard.js +608 -0
- package/dist/guard.js.map +1 -0
- package/dist/guidance/diagnostics.js +14 -0
- package/dist/guidance/diagnostics.js.map +1 -0
- package/dist/guidance/instructions.js +167 -0
- package/dist/guidance/instructions.js.map +1 -0
- package/dist/guidance/mode.js +18 -0
- package/dist/guidance/mode.js.map +1 -0
- package/dist/guidance/openaiSkillMetadata.js +29 -0
- package/dist/guidance/openaiSkillMetadata.js.map +1 -0
- package/dist/guidance/safeTextReader.js +171 -0
- package/dist/guidance/safeTextReader.js.map +1 -0
- package/dist/guidance/skillCatalog.js +70 -0
- package/dist/guidance/skillCatalog.js.map +1 -0
- package/dist/guidance/skillDiscovery.js +353 -0
- package/dist/guidance/skillDiscovery.js.map +1 -0
- package/dist/guidance/skillMetadata.js +115 -0
- package/dist/guidance/skillMetadata.js.map +1 -0
- package/dist/guidance/skillResources.js +146 -0
- package/dist/guidance/skillResources.js.map +1 -0
- package/dist/handoffOps.js +449 -0
- package/dist/handoffOps.js.map +1 -0
- package/dist/http/localAdminApp.js +203 -0
- package/dist/http/localAdminApp.js.map +1 -0
- package/dist/http/oauthMcpRuntime.js +294 -0
- package/dist/http/oauthMcpRuntime.js.map +1 -0
- package/dist/http/publicApp.js +350 -0
- package/dist/http/publicApp.js.map +1 -0
- package/dist/http/securityHeaders.js +11 -0
- package/dist/http/securityHeaders.js.map +1 -0
- package/dist/http.js +2076 -0
- package/dist/http.js.map +1 -0
- package/dist/moves/engine.js +1079 -0
- package/dist/moves/engine.js.map +1 -0
- package/dist/moves/index.js +6 -0
- package/dist/moves/index.js.map +1 -0
- package/dist/moves/planner.js +270 -0
- package/dist/moves/planner.js.map +1 -0
- package/dist/moves/recovery.js +557 -0
- package/dist/moves/recovery.js.map +1 -0
- package/dist/moves/service.js +300 -0
- package/dist/moves/service.js.map +1 -0
- package/dist/moves/types.js +11 -0
- package/dist/moves/types.js.map +1 -0
- package/dist/mutations/index.js +4 -0
- package/dist/mutations/index.js.map +1 -0
- package/dist/mutations/lifecycle.js +165 -0
- package/dist/mutations/lifecycle.js.map +1 -0
- package/dist/mutations/localService.js +163 -0
- package/dist/mutations/localService.js.map +1 -0
- package/dist/mutations/runtime.js +322 -0
- package/dist/mutations/runtime.js.map +1 -0
- package/dist/mutations/types.js +2 -0
- package/dist/mutations/types.js.map +1 -0
- package/dist/mutations/writers.js +360 -0
- package/dist/mutations/writers.js.map +1 -0
- package/dist/patchOps.js +420 -0
- package/dist/patchOps.js.map +1 -0
- package/dist/policy/approval.js +306 -0
- package/dist/policy/approval.js.map +1 -0
- package/dist/policy/audit.js +88 -0
- package/dist/policy/audit.js.map +1 -0
- package/dist/policy/authorizationFacts.js +187 -0
- package/dist/policy/authorizationFacts.js.map +1 -0
- package/dist/policy/compat.js +104 -0
- package/dist/policy/compat.js.map +1 -0
- package/dist/policy/context.js +31 -0
- package/dist/policy/context.js.map +1 -0
- package/dist/policy/enforcement.js +46 -0
- package/dist/policy/enforcement.js.map +1 -0
- package/dist/policy/evaluator.js +338 -0
- package/dist/policy/evaluator.js.map +1 -0
- package/dist/policy/executionCapabilities.js +80 -0
- package/dist/policy/executionCapabilities.js.map +1 -0
- package/dist/policy/executionResources.js +192 -0
- package/dist/policy/executionResources.js.map +1 -0
- package/dist/policy/fullAccessResources.js +23 -0
- package/dist/policy/fullAccessResources.js.map +1 -0
- package/dist/policy/hardPolicy.js +50 -0
- package/dist/policy/hardPolicy.js.map +1 -0
- package/dist/policy/identity.js +142 -0
- package/dist/policy/identity.js.map +1 -0
- package/dist/policy/integration.js +331 -0
- package/dist/policy/integration.js.map +1 -0
- package/dist/policy/pendingApprovals.js +301 -0
- package/dist/policy/pendingApprovals.js.map +1 -0
- package/dist/policy/profileStore.js +367 -0
- package/dist/policy/profileStore.js.map +1 -0
- package/dist/policy/resources.js +249 -0
- package/dist/policy/resources.js.map +1 -0
- package/dist/policy/runtime.js +713 -0
- package/dist/policy/runtime.js.map +1 -0
- package/dist/policy/schemas.js +625 -0
- package/dist/policy/schemas.js.map +1 -0
- package/dist/policy/toolPolicy.js +141 -0
- package/dist/policy/toolPolicy.js.map +1 -0
- package/dist/policy/transport.js +10 -0
- package/dist/policy/transport.js.map +1 -0
- package/dist/policy/types.js +31 -0
- package/dist/policy/types.js.map +1 -0
- package/dist/proContext.js +675 -0
- package/dist/proContext.js.map +1 -0
- package/dist/process/authority.js +18 -0
- package/dist/process/authority.js.map +1 -0
- package/dist/process/backendDiscovery.js +83 -0
- package/dist/process/backendDiscovery.js.map +1 -0
- package/dist/process/commandCompiler.js +71 -0
- package/dist/process/commandCompiler.js.map +1 -0
- package/dist/process/outputCursor.js +67 -0
- package/dist/process/outputCursor.js.map +1 -0
- package/dist/process/outputQuota.js +94 -0
- package/dist/process/outputQuota.js.map +1 -0
- package/dist/process/outputRing.js +138 -0
- package/dist/process/outputRing.js.map +1 -0
- package/dist/process/processAuditCoordinator.js +52 -0
- package/dist/process/processAuditCoordinator.js.map +1 -0
- package/dist/process/processManager.js +311 -0
- package/dist/process/processManager.js.map +1 -0
- package/dist/process/runCommand.js +332 -0
- package/dist/process/runCommand.js.map +1 -0
- package/dist/process/streamingRedactor.js +105 -0
- package/dist/process/streamingRedactor.js.map +1 -0
- package/dist/process/types.js +2 -0
- package/dist/process/types.js.map +1 -0
- package/dist/process/windowsHostClient.js +604 -0
- package/dist/process/windowsHostClient.js.map +1 -0
- package/dist/process/windowsHostProtocol.js +270 -0
- package/dist/process/windowsHostProtocol.js.map +1 -0
- package/dist/process/windowsPersistentBackend.js +263 -0
- package/dist/process/windowsPersistentBackend.js.map +1 -0
- package/dist/productionRuntime.js +907 -0
- package/dist/productionRuntime.js.map +1 -0
- package/dist/profileStore.js +231 -0
- package/dist/profileStore.js.map +1 -0
- package/dist/redact.js +124 -0
- package/dist/redact.js.map +1 -0
- package/dist/searchOps.js +186 -0
- package/dist/searchOps.js.map +1 -0
- package/dist/selfTestOps.js +786 -0
- package/dist/selfTestOps.js.map +1 -0
- package/dist/semantic/budgets.js +12 -0
- package/dist/semantic/budgets.js.map +1 -0
- package/dist/semantic/builtin/typescriptAssets.js +68 -0
- package/dist/semantic/builtin/typescriptAssets.js.map +1 -0
- package/dist/semantic/builtin/typescriptProvider.js +211 -0
- package/dist/semantic/builtin/typescriptProvider.js.map +1 -0
- package/dist/semantic/builtin/typescriptWorker.js +365 -0
- package/dist/semantic/builtin/typescriptWorker.js.map +1 -0
- package/dist/semantic/diffPreview.js +36 -0
- package/dist/semantic/diffPreview.js.map +1 -0
- package/dist/semantic/index.js +11 -0
- package/dist/semantic/index.js.map +1 -0
- package/dist/semantic/manager.js +522 -0
- package/dist/semantic/manager.js.map +1 -0
- package/dist/semantic/positions.js +86 -0
- package/dist/semantic/positions.js.map +1 -0
- package/dist/semantic/previewStore.js +276 -0
- package/dist/semantic/previewStore.js.map +1 -0
- package/dist/semantic/projectResolver.js +309 -0
- package/dist/semantic/projectResolver.js.map +1 -0
- package/dist/semantic/sourceSnapshot.js +54 -0
- package/dist/semantic/sourceSnapshot.js.map +1 -0
- package/dist/semantic/status.js +46 -0
- package/dist/semantic/status.js.map +1 -0
- package/dist/semantic/types.js +2 -0
- package/dist/semantic/types.js.map +1 -0
- package/dist/server.js +8676 -0
- package/dist/server.js.map +1 -0
- package/dist/stdio.js +64 -0
- package/dist/stdio.js.map +1 -0
- package/dist/toolCardWidget.js +2000 -0
- package/dist/toolCardWidget.js.map +1 -0
- package/dist/tools/contracts/catalog.js +111 -0
- package/dist/tools/contracts/catalog.js.map +1 -0
- package/dist/tools/contracts/index.js +8 -0
- package/dist/tools/contracts/index.js.map +1 -0
- package/dist/tools/contracts/registration.js +27 -0
- package/dist/tools/contracts/registration.js.map +1 -0
- package/dist/tools/contracts/schemas.js +11 -0
- package/dist/tools/contracts/schemas.js.map +1 -0
- package/dist/tools/contracts/types.js +2 -0
- package/dist/tools/contracts/types.js.map +1 -0
- package/dist/tools/contracts/v3.js +76 -0
- package/dist/tools/contracts/v3.js.map +1 -0
- package/dist/tools/contracts/v4.js +39 -0
- package/dist/tools/contracts/v4.js.map +1 -0
- package/dist/tools/contracts/v5.js +20 -0
- package/dist/tools/contracts/v5.js.map +1 -0
- package/dist/tools/phase3dServer.js +350 -0
- package/dist/tools/phase3dServer.js.map +1 -0
- package/dist/tools/schemas/applyPatch.js +388 -0
- package/dist/tools/schemas/applyPatch.js.map +1 -0
- package/dist/tools/schemas/bash.js +202 -0
- package/dist/tools/schemas/bash.js.map +1 -0
- package/dist/tools/schemas/closeWorkspace.js +105 -0
- package/dist/tools/schemas/closeWorkspace.js.map +1 -0
- package/dist/tools/schemas/codexContext.js +402 -0
- package/dist/tools/schemas/codexContext.js.map +1 -0
- package/dist/tools/schemas/codexSessions.js +328 -0
- package/dist/tools/schemas/codexSessions.js.map +1 -0
- package/dist/tools/schemas/codexgpt.js +1068 -0
- package/dist/tools/schemas/codexgpt.js.map +1 -0
- package/dist/tools/schemas/codexgptInventory.js +359 -0
- package/dist/tools/schemas/codexgptInventory.js.map +1 -0
- package/dist/tools/schemas/codexgptSelfTest.js +563 -0
- package/dist/tools/schemas/codexgptSelfTest.js.map +1 -0
- package/dist/tools/schemas/codexpro.js +917 -0
- package/dist/tools/schemas/codexpro.js.map +1 -0
- package/dist/tools/schemas/codexproInventory.js +352 -0
- package/dist/tools/schemas/codexproInventory.js.map +1 -0
- package/dist/tools/schemas/codexproSelfTest.js +546 -0
- package/dist/tools/schemas/codexproSelfTest.js.map +1 -0
- package/dist/tools/schemas/common.js +21 -0
- package/dist/tools/schemas/common.js.map +1 -0
- package/dist/tools/schemas/createTaskWorktree.js +51 -0
- package/dist/tools/schemas/createTaskWorktree.js.map +1 -0
- package/dist/tools/schemas/edit.js +321 -0
- package/dist/tools/schemas/edit.js.map +1 -0
- package/dist/tools/schemas/execution.js +330 -0
- package/dist/tools/schemas/execution.js.map +1 -0
- package/dist/tools/schemas/exportProContext.js +370 -0
- package/dist/tools/schemas/exportProContext.js.map +1 -0
- package/dist/tools/schemas/getTaskWorktree.js +19 -0
- package/dist/tools/schemas/getTaskWorktree.js.map +1 -0
- package/dist/tools/schemas/gitBranch.js +42 -0
- package/dist/tools/schemas/gitBranch.js.map +1 -0
- package/dist/tools/schemas/gitCommit.js +40 -0
- package/dist/tools/schemas/gitCommit.js.map +1 -0
- package/dist/tools/schemas/gitCreateBranch.js +22 -0
- package/dist/tools/schemas/gitCreateBranch.js.map +1 -0
- package/dist/tools/schemas/gitDiff.js +222 -0
- package/dist/tools/schemas/gitDiff.js.map +1 -0
- package/dist/tools/schemas/gitLog.js +41 -0
- package/dist/tools/schemas/gitLog.js.map +1 -0
- package/dist/tools/schemas/gitRestore.js +47 -0
- package/dist/tools/schemas/gitRestore.js.map +1 -0
- package/dist/tools/schemas/gitStage.js +33 -0
- package/dist/tools/schemas/gitStage.js.map +1 -0
- package/dist/tools/schemas/gitStash.js +102 -0
- package/dist/tools/schemas/gitStash.js.map +1 -0
- package/dist/tools/schemas/gitStatus.js +226 -0
- package/dist/tools/schemas/gitStatus.js.map +1 -0
- package/dist/tools/schemas/gitV4Common.js +205 -0
- package/dist/tools/schemas/gitV4Common.js.map +1 -0
- package/dist/tools/schemas/guidance.js +40 -0
- package/dist/tools/schemas/guidance.js.map +1 -0
- package/dist/tools/schemas/handoffToAgent.js +276 -0
- package/dist/tools/schemas/handoffToAgent.js.map +1 -0
- package/dist/tools/schemas/handoffToCodex.js +137 -0
- package/dist/tools/schemas/handoffToCodex.js.map +1 -0
- package/dist/tools/schemas/inspectWorkspace.js +379 -0
- package/dist/tools/schemas/inspectWorkspace.js.map +1 -0
- package/dist/tools/schemas/listTaskWorktrees.js +21 -0
- package/dist/tools/schemas/listTaskWorktrees.js.map +1 -0
- package/dist/tools/schemas/listWorkspaces.js +134 -0
- package/dist/tools/schemas/listWorkspaces.js.map +1 -0
- package/dist/tools/schemas/loadSkill.js +619 -0
- package/dist/tools/schemas/loadSkill.js.map +1 -0
- package/dist/tools/schemas/mergeTaskWorktree.js +105 -0
- package/dist/tools/schemas/mergeTaskWorktree.js.map +1 -0
- package/dist/tools/schemas/movePaths.js +175 -0
- package/dist/tools/schemas/movePaths.js.map +1 -0
- package/dist/tools/schemas/openCurrentWorkspace.js +174 -0
- package/dist/tools/schemas/openCurrentWorkspace.js.map +1 -0
- package/dist/tools/schemas/openFullAccessWorkspace.js +81 -0
- package/dist/tools/schemas/openFullAccessWorkspace.js.map +1 -0
- package/dist/tools/schemas/openWorkspace.js +193 -0
- package/dist/tools/schemas/openWorkspace.js.map +1 -0
- package/dist/tools/schemas/queryAuditEvents.js +193 -0
- package/dist/tools/schemas/queryAuditEvents.js.map +1 -0
- package/dist/tools/schemas/read.js +199 -0
- package/dist/tools/schemas/read.js.map +1 -0
- package/dist/tools/schemas/readCodexSession.js +353 -0
- package/dist/tools/schemas/readCodexSession.js.map +1 -0
- package/dist/tools/schemas/readHandoff.js +446 -0
- package/dist/tools/schemas/readHandoff.js.map +1 -0
- package/dist/tools/schemas/removeTaskWorktree.js +40 -0
- package/dist/tools/schemas/removeTaskWorktree.js.map +1 -0
- package/dist/tools/schemas/search.js +235 -0
- package/dist/tools/schemas/search.js.map +1 -0
- package/dist/tools/schemas/semantic.js +195 -0
- package/dist/tools/schemas/semantic.js.map +1 -0
- package/dist/tools/schemas/serverConfig.js +157 -0
- package/dist/tools/schemas/serverConfig.js.map +1 -0
- package/dist/tools/schemas/showChanges.js +283 -0
- package/dist/tools/schemas/showChanges.js.map +1 -0
- package/dist/tools/schemas/transactionResult.js +11 -0
- package/dist/tools/schemas/transactionResult.js.map +1 -0
- package/dist/tools/schemas/tree.js +136 -0
- package/dist/tools/schemas/tree.js.map +1 -0
- package/dist/tools/schemas/undoChangeSet.js +152 -0
- package/dist/tools/schemas/undoChangeSet.js.map +1 -0
- package/dist/tools/schemas/waitForHandoff.js +462 -0
- package/dist/tools/schemas/waitForHandoff.js.map +1 -0
- package/dist/tools/schemas/workspaceSnapshot.js +145 -0
- package/dist/tools/schemas/workspaceSnapshot.js.map +1 -0
- package/dist/tools/schemas/write.js +285 -0
- package/dist/tools/schemas/write.js.map +1 -0
- package/dist/transactions/atomicFs.js +438 -0
- package/dist/transactions/atomicFs.js.map +1 -0
- package/dist/transactions/atomicStateFile.js +190 -0
- package/dist/transactions/atomicStateFile.js.map +1 -0
- package/dist/transactions/engine.js +574 -0
- package/dist/transactions/engine.js.map +1 -0
- package/dist/transactions/index.js +12 -0
- package/dist/transactions/index.js.map +1 -0
- package/dist/transactions/installation.js +158 -0
- package/dist/transactions/installation.js.map +1 -0
- package/dist/transactions/manifestV2Store.js +96 -0
- package/dist/transactions/manifestV2Store.js.map +1 -0
- package/dist/transactions/participantRecovery.js +98 -0
- package/dist/transactions/participantRecovery.js.map +1 -0
- package/dist/transactions/recovery.js +513 -0
- package/dist/transactions/recovery.js.map +1 -0
- package/dist/transactions/schemas.js +365 -0
- package/dist/transactions/schemas.js.map +1 -0
- package/dist/transactions/stateRoot.js +63 -0
- package/dist/transactions/stateRoot.js.map +1 -0
- package/dist/transactions/types.js +11 -0
- package/dist/transactions/types.js.map +1 -0
- package/dist/transactions/workspaceLock.js +201 -0
- package/dist/transactions/workspaceLock.js.map +1 -0
- package/dist/workspaceOps.js +924 -0
- package/dist/workspaceOps.js.map +1 -0
- package/dist/worktrees/candidateWorkspace.js +566 -0
- package/dist/worktrees/candidateWorkspace.js.map +1 -0
- package/dist/worktrees/manager.js +258 -0
- package/dist/worktrees/manager.js.map +1 -0
- package/dist/worktrees/materializer.js +60 -0
- package/dist/worktrees/materializer.js.map +1 -0
- package/dist/worktrees/mergeExecute.js +498 -0
- package/dist/worktrees/mergeExecute.js.map +1 -0
- package/dist/worktrees/mergePlanStore.js +247 -0
- package/dist/worktrees/mergePlanStore.js.map +1 -0
- package/dist/worktrees/mergePrepare.js +709 -0
- package/dist/worktrees/mergePrepare.js.map +1 -0
- package/dist/worktrees/recovery.js +294 -0
- package/dist/worktrees/recovery.js.map +1 -0
- package/dist/worktrees/remove.js +296 -0
- package/dist/worktrees/remove.js.map +1 -0
- package/dist/worktrees/remover.js +57 -0
- package/dist/worktrees/remover.js.map +1 -0
- package/dist/worktrees/root.js +47 -0
- package/dist/worktrees/root.js.map +1 -0
- package/dist/worktrees/service.js +245 -0
- package/dist/worktrees/service.js.map +1 -0
- package/dist/worktrees/store.js +156 -0
- package/dist/worktrees/store.js.map +1 -0
- package/dist/worktrees/treeManifest.js +106 -0
- package/dist/worktrees/treeManifest.js.map +1 -0
- package/dist/worktrees/verificationReceipts.js +215 -0
- package/dist/worktrees/verificationReceipts.js.map +1 -0
- package/dist/worktrees/verificationTerminal.js +23 -0
- package/dist/worktrees/verificationTerminal.js.map +1 -0
- package/dist/worktrees/workspaceAuthority.js +64 -0
- package/dist/worktrees/workspaceAuthority.js.map +1 -0
- package/docs/favicon.svg +5 -0
- package/docs/index.html +624 -0
- package/docs/og.svg +52 -0
- package/docs/script.js +33 -0
- package/docs/star.svg +11 -0
- package/docs/styles.css +1571 -0
- package/docs/zh.html +428 -0
- package/package.json +121 -0
- package/scripts/analysis-cli-smoke.mjs +81 -0
- package/scripts/analysis-smoke.mjs +179 -0
- package/scripts/atomic-file.mjs +137 -0
- package/scripts/ci-change-classifier.mjs +59 -0
- package/scripts/ci-failure-summary.mjs +92 -0
- package/scripts/cloudflared-installer.mjs +215 -0
- package/scripts/cloudflared-release.mjs +63 -0
- package/scripts/codexgpt-entry.mjs +235 -0
- package/scripts/codexgpt.mjs +4987 -0
- package/scripts/connector-auth-output-shim.cjs +66 -0
- package/scripts/doctor-smoke.mjs +90 -0
- package/scripts/doctor.mjs +165 -0
- package/scripts/exact-head-ci.mjs +126 -0
- package/scripts/execute-handoff-smoke-platform-compat.mjs +38 -0
- package/scripts/execute-handoff-smoke.mjs +1117 -0
- package/scripts/g8-u-live-probe.mjs +208 -0
- package/scripts/http-smoke-compat.mjs +151 -0
- package/scripts/http-smoke.mjs +776 -0
- package/scripts/long-task-runner.mjs +1037 -0
- package/scripts/oauth-admin.mjs +1608 -0
- package/scripts/output-bounds.mjs +29 -0
- package/scripts/owned-temp-root.d.mts +50 -0
- package/scripts/owned-temp-root.mjs +567 -0
- package/scripts/phase-4a-smoke.mjs +36 -0
- package/scripts/policy-windows-spike.mjs +135 -0
- package/scripts/pro-apply.mjs +152 -0
- package/scripts/pro-bundle.mjs +121 -0
- package/scripts/pro-smoke.mjs +97 -0
- package/scripts/process-identity.mjs +67 -0
- package/scripts/repository-policy.mjs +166 -0
- package/scripts/run-and-summarize.mjs +134 -0
- package/scripts/run-smoke.mjs +52 -0
- package/scripts/run-with-cleanup.mjs +98 -0
- package/scripts/settings-smoke-platform-compat.mjs +85 -0
- package/scripts/settings-smoke.mjs +769 -0
- package/scripts/smoke-platform-compat.mjs +302 -0
- package/scripts/smoke.mjs +1180 -0
- package/scripts/stress-contract-compat.mjs +94 -0
- package/scripts/stress.mjs +882 -0
- package/scripts/test-domains.mjs +247 -0
- package/scripts/test-execution-profile-manifest.mjs +273 -0
- package/scripts/test-execution-profiles.mjs +147 -0
- package/scripts/test-performance-reporter.mjs +291 -0
- package/scripts/toolchain-manager.mjs +266 -0
- package/scripts/toolchains.json +19 -0
- package/scripts/windows-conpty-probe-child.mjs +82 -0
- package/scripts/windows-conpty-worker.ps1 +24 -0
- package/scripts/windows-credential-host-manifest.json +16 -0
- package/scripts/windows-credential-host-protocol-v1.json +16 -0
- package/scripts/windows-credential-host.cs +256 -0
- package/scripts/windows-credential-host.ps1 +26 -0
- package/scripts/windows-local-control-manifest.json +23 -0
- package/scripts/windows-local-control-spike.cs +738 -0
- package/scripts/windows-local-control-spike.mjs +415 -0
- package/scripts/windows-local-control-spike.ps1 +35 -0
- package/scripts/windows-local-control.cs +738 -0
- package/scripts/windows-local-control.ps1 +35 -0
- package/scripts/windows-native-api-inventory-v1.json +90 -0
- package/scripts/windows-process-host-manifest.json +20 -0
- package/scripts/windows-process-host-protocol-v1.json +59 -0
- package/scripts/windows-process-host.cs +2385 -0
- package/scripts/windows-process-host.ps1 +59 -0
- package/scripts/windows-realpath-shim.cjs +78 -0
package/DOMAIN_SETUP.md
ADDED
|
@@ -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.
|