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
|
@@ -0,0 +1,917 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { CONTRACT_V1_CHILD_TOOLS, CONTRACT_V2_CHILD_TOOLS, CONTRACT_V3_CHILD_TOOLS, CONTRACT_V4_CHILD_TOOLS, canonicalToolsForVersion } from "../contracts/catalog.js";
|
|
3
|
+
import { queryAuditEventsInputV2Schema, queryAuditEventsResultV2Schema, queryAuditEventsInputV3Schema, queryAuditEventsResultV3Schema } from "../../audit/schemas.js";
|
|
4
|
+
import { applyPatchOutputSchema, applyPatchOutputSchemaV2 } from "./applyPatch.js";
|
|
5
|
+
import { bashOutputSchema } from "./bash.js";
|
|
6
|
+
import { closeWorkspaceOutputSchema } from "./closeWorkspace.js";
|
|
7
|
+
import { codexContextOutputSchema } from "./codexContext.js";
|
|
8
|
+
import { codexproInventoryOutputSchema } from "./codexproInventory.js";
|
|
9
|
+
import { codexproSelfTestOutputSchema } from "./codexproSelfTest.js";
|
|
10
|
+
import { codexSessionsOutputSchema } from "./codexSessions.js";
|
|
11
|
+
import { createToolMeta, toolErrorSchema, toolMetaSchema } from "./common.js";
|
|
12
|
+
import { editOutputSchema, editOutputSchemaV2 } from "./edit.js";
|
|
13
|
+
import { exportProContextOutputSchema } from "./exportProContext.js";
|
|
14
|
+
import { gitDiffOutputSchema, gitDiffOutputSchemaV4 } from "./gitDiff.js";
|
|
15
|
+
import { gitStatusOutputSchema, gitStatusOutputSchemaV4 } from "./gitStatus.js";
|
|
16
|
+
import { handoffToAgentOutputSchema } from "./handoffToAgent.js";
|
|
17
|
+
import { handoffToCodexOutputSchema } from "./handoffToCodex.js";
|
|
18
|
+
import { inspectWorkspaceOutputSchema } from "./inspectWorkspace.js";
|
|
19
|
+
import { listWorkspacesOutputSchema } from "./listWorkspaces.js";
|
|
20
|
+
import { loadSkillOutputSchema } from "./loadSkill.js";
|
|
21
|
+
import { openCurrentWorkspaceOutputSchema } from "./openCurrentWorkspace.js";
|
|
22
|
+
import { openWorkspaceOutputSchema } from "./openWorkspace.js";
|
|
23
|
+
import { readOutputSchema } from "./read.js";
|
|
24
|
+
import { readCodexSessionOutputSchema } from "./readCodexSession.js";
|
|
25
|
+
import { readHandoffOutputSchema } from "./readHandoff.js";
|
|
26
|
+
import { searchOutputSchema } from "./search.js";
|
|
27
|
+
import { serverConfigOutputSchema } from "./serverConfig.js";
|
|
28
|
+
import { showChangesOutputSchema } from "./showChanges.js";
|
|
29
|
+
import { treeOutputSchema } from "./tree.js";
|
|
30
|
+
import { waitForHandoffOutputSchema } from "./waitForHandoff.js";
|
|
31
|
+
import { workspaceSnapshotOutputSchema } from "./workspaceSnapshot.js";
|
|
32
|
+
import { writeOutputSchema, writeOutputSchemaV2 } from "./write.js";
|
|
33
|
+
import { undoChangeSetInputV2Schema, undoChangeSetOutputSchema } from "./undoChangeSet.js";
|
|
34
|
+
import { movePathsOutputSchema } from "./movePaths.js";
|
|
35
|
+
import { queryAuditEventsOutputSchema, queryAuditEventsOutputSchemaV3 as queryAuditEventsToolOutputSchemaV3, queryAuditEventsOutputSchemaV4 as queryAuditEventsToolOutputSchemaV4 } from "./queryAuditEvents.js";
|
|
36
|
+
import { openFullAccessWorkspaceOutputSchema } from "./openFullAccessWorkspace.js";
|
|
37
|
+
import { EXECUTION_OUTPUT_SCHEMAS, EXECUTION_OUTPUT_SCHEMAS_V4 } from "./execution.js";
|
|
38
|
+
import { gitLogOutputSchemaV4 } from "./gitLog.js";
|
|
39
|
+
import { gitBranchOutputSchemaV4 } from "./gitBranch.js";
|
|
40
|
+
import { gitCreateBranchOutputSchemaV4 } from "./gitCreateBranch.js";
|
|
41
|
+
import { gitStageOutputSchemaV4 } from "./gitStage.js";
|
|
42
|
+
import { gitCommitOutputSchemaV4 } from "./gitCommit.js";
|
|
43
|
+
import { gitRestoreOutputSchemaV4 } from "./gitRestore.js";
|
|
44
|
+
import { gitStashOutputSchemaV4 } from "./gitStash.js";
|
|
45
|
+
import { createTaskWorktreeOutputSchemaV4 } from "./createTaskWorktree.js";
|
|
46
|
+
import { listTaskWorktreesOutputSchemaV4 } from "./listTaskWorktrees.js";
|
|
47
|
+
import { getTaskWorktreeOutputSchemaV4 } from "./getTaskWorktree.js";
|
|
48
|
+
import { mergeTaskWorktreeOutputSchemaV4 } from "./mergeTaskWorktree.js";
|
|
49
|
+
import { removeTaskWorktreeOutputSchemaV4 } from "./removeTaskWorktree.js";
|
|
50
|
+
export const CANONICAL_CODEXPRO_CHILD_TOOLS_V1 = CONTRACT_V1_CHILD_TOOLS;
|
|
51
|
+
export const CANONICAL_CODEXPRO_CHILD_TOOLS_V2 = CONTRACT_V2_CHILD_TOOLS;
|
|
52
|
+
export const CANONICAL_CODEXPRO_CHILD_TOOLS_V3 = CONTRACT_V3_CHILD_TOOLS;
|
|
53
|
+
export const CANONICAL_CODEXPRO_CHILD_TOOLS_V4 = CONTRACT_V4_CHILD_TOOLS;
|
|
54
|
+
export const CANONICAL_CODEXPRO_CHILD_TOOLS = CANONICAL_CODEXPRO_CHILD_TOOLS_V1;
|
|
55
|
+
export function canonicalCodexProChildTools(version) {
|
|
56
|
+
return canonicalToolsForVersion(version);
|
|
57
|
+
}
|
|
58
|
+
// Versioned contract helpers. The server contract selector remains the sole
|
|
59
|
+
// authority for which exact V1/V2/V3 child universe is publicly registered.
|
|
60
|
+
export const queryAuditEventsInputSchemaV2 = queryAuditEventsInputV2Schema;
|
|
61
|
+
export const queryAuditEventsOutputSchemaV2 = queryAuditEventsResultV2Schema;
|
|
62
|
+
export const undoChangeSetInputSchemaV2 = undoChangeSetInputV2Schema;
|
|
63
|
+
export const undoChangeSetOutputSchemaV2 = undoChangeSetOutputSchema;
|
|
64
|
+
export const queryAuditEventsInputSchemaV3 = queryAuditEventsInputV3Schema;
|
|
65
|
+
export const queryAuditEventsOutputSchemaV3 = queryAuditEventsResultV3Schema;
|
|
66
|
+
export const CODEXPRO_ADDITIONAL_OUTPUT_SCHEMAS_V2 = Object.freeze({
|
|
67
|
+
query_audit_events: queryAuditEventsOutputSchema,
|
|
68
|
+
undo_change_set: undoChangeSetOutputSchema,
|
|
69
|
+
move_paths: movePathsOutputSchema
|
|
70
|
+
});
|
|
71
|
+
export const CODEXPRO_ACTION_ALIASES = Object.freeze({
|
|
72
|
+
open: "open_current_workspace",
|
|
73
|
+
snapshot: "workspace_snapshot",
|
|
74
|
+
changes: "show_changes",
|
|
75
|
+
inventory: "codexpro_inventory",
|
|
76
|
+
handoff_poll: "wait_for_handoff",
|
|
77
|
+
pro_export: "export_pro_context",
|
|
78
|
+
agent_handoff: "handoff_to_agent",
|
|
79
|
+
codex_handoff: "handoff_to_codex"
|
|
80
|
+
});
|
|
81
|
+
const canonicalToolSchema = z.enum(CANONICAL_CODEXPRO_CHILD_TOOLS);
|
|
82
|
+
const canonicalToolSet = new Set(CANONICAL_CODEXPRO_CHILD_TOOLS);
|
|
83
|
+
export const CODEXPRO_ERROR_MESSAGES = Object.freeze({
|
|
84
|
+
ACTION_NOT_AVAILABLE: "The requested CodexPro action is not available.",
|
|
85
|
+
ACTION_ARGUMENTS_INVALID: "The requested CodexPro action arguments are invalid.",
|
|
86
|
+
CHILD_RESULT_INVALID: "The wrapped tool returned an invalid structured result.",
|
|
87
|
+
INTERNAL_ERROR: "CodexPro could not complete the requested action."
|
|
88
|
+
});
|
|
89
|
+
const safeActionSchema = z.string().min(1).max(160).refine((value) => !/[\r\n\u0000-\u001f\u007f]/.test(value), "Action must be one control-safe line.");
|
|
90
|
+
const actionNotAvailableErrorSchema = toolErrorSchema.extend({
|
|
91
|
+
code: z.literal("ACTION_NOT_AVAILABLE"),
|
|
92
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_NOT_AVAILABLE),
|
|
93
|
+
retryable: z.literal(false),
|
|
94
|
+
details: z.object({ action: safeActionSchema }).strict()
|
|
95
|
+
}).strict();
|
|
96
|
+
const actionArgumentsInvalidErrorSchema = toolErrorSchema.extend({
|
|
97
|
+
code: z.literal("ACTION_ARGUMENTS_INVALID"),
|
|
98
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_ARGUMENTS_INVALID),
|
|
99
|
+
retryable: z.literal(false),
|
|
100
|
+
details: z.object({
|
|
101
|
+
action: safeActionSchema,
|
|
102
|
+
wrapped_tool: canonicalToolSchema
|
|
103
|
+
}).strict()
|
|
104
|
+
}).strict();
|
|
105
|
+
const childResultInvalidErrorSchema = toolErrorSchema.extend({
|
|
106
|
+
code: z.literal("CHILD_RESULT_INVALID"),
|
|
107
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.CHILD_RESULT_INVALID),
|
|
108
|
+
retryable: z.literal(false),
|
|
109
|
+
details: z.object({
|
|
110
|
+
action: safeActionSchema,
|
|
111
|
+
wrapped_tool: canonicalToolSchema
|
|
112
|
+
}).strict()
|
|
113
|
+
}).strict();
|
|
114
|
+
const internalErrorSchema = toolErrorSchema.extend({
|
|
115
|
+
code: z.literal("INTERNAL_ERROR"),
|
|
116
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.INTERNAL_ERROR),
|
|
117
|
+
retryable: z.literal(false),
|
|
118
|
+
details: z.object({}).strict()
|
|
119
|
+
}).strict();
|
|
120
|
+
const codexproErrorSchema = z.union([
|
|
121
|
+
actionNotAvailableErrorSchema,
|
|
122
|
+
actionArgumentsInvalidErrorSchema,
|
|
123
|
+
childResultInvalidErrorSchema,
|
|
124
|
+
internalErrorSchema
|
|
125
|
+
]);
|
|
126
|
+
export const codexproListActionsDataSchema = z.object({
|
|
127
|
+
actions: z.array(canonicalToolSchema),
|
|
128
|
+
action_count: z.number().int().nonnegative()
|
|
129
|
+
}).strict().superRefine((value, context) => {
|
|
130
|
+
if (value.action_count !== value.actions.length) {
|
|
131
|
+
context.addIssue({
|
|
132
|
+
code: z.ZodIssueCode.custom,
|
|
133
|
+
path: ["action_count"],
|
|
134
|
+
message: "action_count must equal actions.length."
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
if (new Set(value.actions).size !== value.actions.length) {
|
|
138
|
+
context.addIssue({
|
|
139
|
+
code: z.ZodIssueCode.custom,
|
|
140
|
+
path: ["actions"],
|
|
141
|
+
message: "actions must be unique."
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const sorted = [...value.actions].sort();
|
|
145
|
+
if (sorted.some((action, index) => action !== value.actions[index])) {
|
|
146
|
+
context.addIssue({
|
|
147
|
+
code: z.ZodIssueCode.custom,
|
|
148
|
+
path: ["actions"],
|
|
149
|
+
message: "actions must be sorted."
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
const codexproOwnedDataSchema = codexproListActionsDataSchema;
|
|
154
|
+
export const codexproOutputShape = {
|
|
155
|
+
codexpro_tool: z.union([z.literal("codexpro"), canonicalToolSchema]),
|
|
156
|
+
codexpro_title: z.string().min(1),
|
|
157
|
+
ok: z.boolean(),
|
|
158
|
+
data: z.record(z.unknown()).nullable(),
|
|
159
|
+
error: z.union([codexproErrorSchema, toolErrorSchema]).nullable(),
|
|
160
|
+
meta: toolMetaSchema,
|
|
161
|
+
codexpro_super_action: safeActionSchema.optional(),
|
|
162
|
+
wrapped_tool: canonicalToolSchema.optional()
|
|
163
|
+
};
|
|
164
|
+
const codexproOutputBaseSchema = z.object(codexproOutputShape).strict();
|
|
165
|
+
const codexproOwnedOutputSchema = z.object({
|
|
166
|
+
codexpro_tool: z.literal("codexpro"),
|
|
167
|
+
codexpro_title: z.literal("CodexPro"),
|
|
168
|
+
ok: z.boolean(),
|
|
169
|
+
data: codexproOwnedDataSchema.nullable(),
|
|
170
|
+
error: codexproErrorSchema.nullable(),
|
|
171
|
+
meta: toolMetaSchema
|
|
172
|
+
}).strict().superRefine((value, context) => {
|
|
173
|
+
if (value.ok) {
|
|
174
|
+
if (value.data === null) {
|
|
175
|
+
context.addIssue({
|
|
176
|
+
code: z.ZodIssueCode.custom,
|
|
177
|
+
path: ["data"],
|
|
178
|
+
message: "Successful codexpro results require data."
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
if (value.error !== null) {
|
|
182
|
+
context.addIssue({
|
|
183
|
+
code: z.ZodIssueCode.custom,
|
|
184
|
+
path: ["error"],
|
|
185
|
+
message: "Successful codexpro results require error to be null."
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
if (value.data !== null) {
|
|
191
|
+
context.addIssue({
|
|
192
|
+
code: z.ZodIssueCode.custom,
|
|
193
|
+
path: ["data"],
|
|
194
|
+
message: "Failed codexpro results require data to be null."
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
if (value.error === null) {
|
|
198
|
+
context.addIssue({
|
|
199
|
+
code: z.ZodIssueCode.custom,
|
|
200
|
+
path: ["error"],
|
|
201
|
+
message: "Failed codexpro results require an error object."
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
const childOutputSchemas = {
|
|
206
|
+
apply_patch: applyPatchOutputSchema,
|
|
207
|
+
bash: bashOutputSchema,
|
|
208
|
+
codex_context: codexContextOutputSchema,
|
|
209
|
+
codexpro_inventory: codexproInventoryOutputSchema,
|
|
210
|
+
codexpro_self_test: codexproSelfTestOutputSchema,
|
|
211
|
+
codex_sessions: codexSessionsOutputSchema,
|
|
212
|
+
edit: editOutputSchema,
|
|
213
|
+
export_pro_context: exportProContextOutputSchema,
|
|
214
|
+
git_diff: gitDiffOutputSchema,
|
|
215
|
+
git_status: gitStatusOutputSchema,
|
|
216
|
+
handoff_to_agent: handoffToAgentOutputSchema,
|
|
217
|
+
handoff_to_codex: handoffToCodexOutputSchema,
|
|
218
|
+
inspect_workspace: inspectWorkspaceOutputSchema,
|
|
219
|
+
list_workspaces: listWorkspacesOutputSchema,
|
|
220
|
+
close_workspace: closeWorkspaceOutputSchema,
|
|
221
|
+
load_skill: loadSkillOutputSchema,
|
|
222
|
+
open_current_workspace: openCurrentWorkspaceOutputSchema,
|
|
223
|
+
open_workspace: openWorkspaceOutputSchema,
|
|
224
|
+
read: readOutputSchema,
|
|
225
|
+
read_codex_session: readCodexSessionOutputSchema,
|
|
226
|
+
read_handoff: readHandoffOutputSchema,
|
|
227
|
+
search: searchOutputSchema,
|
|
228
|
+
server_config: serverConfigOutputSchema,
|
|
229
|
+
show_changes: showChangesOutputSchema,
|
|
230
|
+
tree: treeOutputSchema,
|
|
231
|
+
wait_for_handoff: waitForHandoffOutputSchema,
|
|
232
|
+
workspace_snapshot: workspaceSnapshotOutputSchema,
|
|
233
|
+
write: writeOutputSchema
|
|
234
|
+
};
|
|
235
|
+
export const CODEXPRO_CHILD_OUTPUT_SCHEMAS = Object.freeze(childOutputSchemas);
|
|
236
|
+
function stripWrapperFields(value) {
|
|
237
|
+
const { codexpro_super_action: _action, wrapped_tool: _wrappedTool, ...child } = value;
|
|
238
|
+
return child;
|
|
239
|
+
}
|
|
240
|
+
export function resolveCodexProAction(action) {
|
|
241
|
+
if (canonicalToolSet.has(action))
|
|
242
|
+
return action;
|
|
243
|
+
return CODEXPRO_ACTION_ALIASES[action] ?? null;
|
|
244
|
+
}
|
|
245
|
+
export const codexproOutputSchema = codexproOutputBaseSchema.superRefine((value, context) => {
|
|
246
|
+
if (value.codexpro_tool === "codexpro") {
|
|
247
|
+
const owned = codexproOwnedOutputSchema.safeParse(value);
|
|
248
|
+
if (!owned.success) {
|
|
249
|
+
context.addIssue({
|
|
250
|
+
code: z.ZodIssueCode.custom,
|
|
251
|
+
message: "Invalid wrapper-owned codexpro result."
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
if (!value.codexpro_super_action || !value.wrapped_tool) {
|
|
257
|
+
context.addIssue({
|
|
258
|
+
code: z.ZodIssueCode.custom,
|
|
259
|
+
message: "Wrapped child results require wrapper identity fields."
|
|
260
|
+
});
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (value.codexpro_tool !== value.wrapped_tool) {
|
|
264
|
+
context.addIssue({
|
|
265
|
+
code: z.ZodIssueCode.custom,
|
|
266
|
+
path: ["wrapped_tool"],
|
|
267
|
+
message: "wrapped_tool must equal codexpro_tool."
|
|
268
|
+
});
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
if (resolveCodexProAction(value.codexpro_super_action) !== value.wrapped_tool) {
|
|
272
|
+
context.addIssue({
|
|
273
|
+
code: z.ZodIssueCode.custom,
|
|
274
|
+
path: ["codexpro_super_action"],
|
|
275
|
+
message: "codexpro_super_action must resolve to wrapped_tool."
|
|
276
|
+
});
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
const childSchema = childOutputSchemas[value.wrapped_tool];
|
|
280
|
+
if (!childSchema.safeParse(stripWrapperFields(value)).success) {
|
|
281
|
+
context.addIssue({
|
|
282
|
+
code: z.ZodIssueCode.custom,
|
|
283
|
+
message: "Wrapped child result does not match its exact child schema."
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
function safePublicAction(value) {
|
|
288
|
+
const normalized = String(value ?? "")
|
|
289
|
+
.replace(/[\r\n\u0000-\u001f\u007f]+/g, " ")
|
|
290
|
+
.replace(/\s+/g, " ")
|
|
291
|
+
.trim()
|
|
292
|
+
.slice(0, 160);
|
|
293
|
+
return normalized || "invalid-action";
|
|
294
|
+
}
|
|
295
|
+
export function createCodexProListActionsSuccess(actions, durationMs = 0) {
|
|
296
|
+
const uniqueActions = [...new Set(actions)];
|
|
297
|
+
for (const action of uniqueActions) {
|
|
298
|
+
if (!canonicalToolSet.has(action)) {
|
|
299
|
+
throw new Error("Invalid canonical CodexPro child action.");
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
uniqueActions.sort();
|
|
303
|
+
return codexproOutputSchema.parse({
|
|
304
|
+
codexpro_tool: "codexpro",
|
|
305
|
+
codexpro_title: "CodexPro",
|
|
306
|
+
ok: true,
|
|
307
|
+
data: {
|
|
308
|
+
actions: uniqueActions,
|
|
309
|
+
action_count: uniqueActions.length
|
|
310
|
+
},
|
|
311
|
+
error: null,
|
|
312
|
+
meta: createToolMeta(durationMs)
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
export function createCodexProFailure(failure, durationMs = 0) {
|
|
316
|
+
const details = failure.code === "ACTION_NOT_AVAILABLE"
|
|
317
|
+
? { action: safePublicAction(failure.details.action) }
|
|
318
|
+
: failure.code === "INTERNAL_ERROR"
|
|
319
|
+
? {}
|
|
320
|
+
: {
|
|
321
|
+
action: safePublicAction(failure.details.action),
|
|
322
|
+
wrapped_tool: failure.details.wrapped_tool
|
|
323
|
+
};
|
|
324
|
+
return codexproOutputSchema.parse({
|
|
325
|
+
codexpro_tool: "codexpro",
|
|
326
|
+
codexpro_title: "CodexPro",
|
|
327
|
+
ok: false,
|
|
328
|
+
data: null,
|
|
329
|
+
error: {
|
|
330
|
+
code: failure.code,
|
|
331
|
+
message: CODEXPRO_ERROR_MESSAGES[failure.code],
|
|
332
|
+
retryable: false,
|
|
333
|
+
details
|
|
334
|
+
},
|
|
335
|
+
meta: createToolMeta(durationMs)
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
export function wrapCodexProChildResult(action, wrappedTool, childStructuredContent) {
|
|
339
|
+
if (resolveCodexProAction(action) !== wrappedTool) {
|
|
340
|
+
throw new Error("CodexPro action and wrapped tool do not match.");
|
|
341
|
+
}
|
|
342
|
+
if (!childStructuredContent || typeof childStructuredContent !== "object" || Array.isArray(childStructuredContent)) {
|
|
343
|
+
throw new Error("CodexPro child structured result must be an object.");
|
|
344
|
+
}
|
|
345
|
+
const child = childStructuredContent;
|
|
346
|
+
if ("codexpro_super_action" in child || "wrapped_tool" in child) {
|
|
347
|
+
throw new Error("CodexPro child structured result already contains wrapper fields.");
|
|
348
|
+
}
|
|
349
|
+
const childSchema = childOutputSchemas[wrappedTool];
|
|
350
|
+
const parsedChild = childSchema.parse(child);
|
|
351
|
+
return codexproOutputSchema.parse({
|
|
352
|
+
...parsedChild,
|
|
353
|
+
codexpro_super_action: safePublicAction(action),
|
|
354
|
+
wrapped_tool: wrappedTool
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
const canonicalToolSchemaV2 = z.enum(CANONICAL_CODEXPRO_CHILD_TOOLS_V2);
|
|
358
|
+
const canonicalToolSetV2 = new Set(CANONICAL_CODEXPRO_CHILD_TOOLS_V2);
|
|
359
|
+
const actionNotAvailableErrorSchemaV2 = toolErrorSchema.extend({
|
|
360
|
+
code: z.literal("ACTION_NOT_AVAILABLE"),
|
|
361
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_NOT_AVAILABLE),
|
|
362
|
+
retryable: z.literal(false),
|
|
363
|
+
details: z.object({ action: safeActionSchema }).strict()
|
|
364
|
+
}).strict();
|
|
365
|
+
const actionArgumentsInvalidErrorSchemaV2 = toolErrorSchema.extend({
|
|
366
|
+
code: z.literal("ACTION_ARGUMENTS_INVALID"),
|
|
367
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_ARGUMENTS_INVALID),
|
|
368
|
+
retryable: z.literal(false),
|
|
369
|
+
details: z.object({
|
|
370
|
+
action: safeActionSchema,
|
|
371
|
+
wrapped_tool: canonicalToolSchemaV2
|
|
372
|
+
}).strict()
|
|
373
|
+
}).strict();
|
|
374
|
+
const childResultInvalidErrorSchemaV2 = toolErrorSchema.extend({
|
|
375
|
+
code: z.literal("CHILD_RESULT_INVALID"),
|
|
376
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.CHILD_RESULT_INVALID),
|
|
377
|
+
retryable: z.literal(false),
|
|
378
|
+
details: z.object({
|
|
379
|
+
action: safeActionSchema,
|
|
380
|
+
wrapped_tool: canonicalToolSchemaV2
|
|
381
|
+
}).strict()
|
|
382
|
+
}).strict();
|
|
383
|
+
const codexproErrorSchemaV2 = z.union([
|
|
384
|
+
actionNotAvailableErrorSchemaV2,
|
|
385
|
+
actionArgumentsInvalidErrorSchemaV2,
|
|
386
|
+
childResultInvalidErrorSchemaV2,
|
|
387
|
+
internalErrorSchema
|
|
388
|
+
]);
|
|
389
|
+
const codexproListActionsDataSchemaV2 = z.object({
|
|
390
|
+
actions: z.array(canonicalToolSchemaV2),
|
|
391
|
+
action_count: z.number().int().nonnegative()
|
|
392
|
+
}).strict().superRefine((value, context) => {
|
|
393
|
+
if (value.action_count !== value.actions.length) {
|
|
394
|
+
context.addIssue({
|
|
395
|
+
code: z.ZodIssueCode.custom,
|
|
396
|
+
path: ["action_count"],
|
|
397
|
+
message: "action_count must equal actions.length."
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
if (new Set(value.actions).size !== value.actions.length) {
|
|
401
|
+
context.addIssue({
|
|
402
|
+
code: z.ZodIssueCode.custom,
|
|
403
|
+
path: ["actions"],
|
|
404
|
+
message: "actions must be unique."
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
const sorted = [...value.actions].sort();
|
|
408
|
+
if (sorted.some((action, index) => action !== value.actions[index])) {
|
|
409
|
+
context.addIssue({
|
|
410
|
+
code: z.ZodIssueCode.custom,
|
|
411
|
+
path: ["actions"],
|
|
412
|
+
message: "actions must be sorted."
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
const codexproOwnedOutputSchemaV2 = z.object({
|
|
417
|
+
codexpro_tool: z.literal("codexpro"),
|
|
418
|
+
codexpro_title: z.literal("CodexPro"),
|
|
419
|
+
ok: z.boolean(),
|
|
420
|
+
data: codexproListActionsDataSchemaV2.nullable(),
|
|
421
|
+
error: codexproErrorSchemaV2.nullable(),
|
|
422
|
+
meta: toolMetaSchema
|
|
423
|
+
}).strict().superRefine((value, context) => {
|
|
424
|
+
if (value.ok) {
|
|
425
|
+
if (value.data === null) {
|
|
426
|
+
context.addIssue({
|
|
427
|
+
code: z.ZodIssueCode.custom,
|
|
428
|
+
path: ["data"],
|
|
429
|
+
message: "Successful codexpro results require data."
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
if (value.error !== null) {
|
|
433
|
+
context.addIssue({
|
|
434
|
+
code: z.ZodIssueCode.custom,
|
|
435
|
+
path: ["error"],
|
|
436
|
+
message: "Successful codexpro results require error to be null."
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
if (value.data !== null) {
|
|
442
|
+
context.addIssue({
|
|
443
|
+
code: z.ZodIssueCode.custom,
|
|
444
|
+
path: ["data"],
|
|
445
|
+
message: "Failed codexpro results require data to be null."
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
if (value.error === null) {
|
|
449
|
+
context.addIssue({
|
|
450
|
+
code: z.ZodIssueCode.custom,
|
|
451
|
+
path: ["error"],
|
|
452
|
+
message: "Failed codexpro results require an error object."
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
});
|
|
456
|
+
const childOutputSchemasV2 = {
|
|
457
|
+
...childOutputSchemas,
|
|
458
|
+
write: writeOutputSchemaV2,
|
|
459
|
+
edit: editOutputSchemaV2,
|
|
460
|
+
apply_patch: applyPatchOutputSchemaV2,
|
|
461
|
+
...CODEXPRO_ADDITIONAL_OUTPUT_SCHEMAS_V2
|
|
462
|
+
};
|
|
463
|
+
export const CODEXPRO_CHILD_OUTPUT_SCHEMAS_V2 = Object.freeze(childOutputSchemasV2);
|
|
464
|
+
export function resolveCodexProActionV2(action) {
|
|
465
|
+
if (canonicalToolSetV2.has(action))
|
|
466
|
+
return action;
|
|
467
|
+
return CODEXPRO_ACTION_ALIASES[action] ?? null;
|
|
468
|
+
}
|
|
469
|
+
export const codexproOutputShapeV2 = {
|
|
470
|
+
codexpro_tool: z.union([z.literal("codexpro"), canonicalToolSchemaV2]),
|
|
471
|
+
codexpro_title: z.string().min(1),
|
|
472
|
+
ok: z.boolean(),
|
|
473
|
+
data: z.record(z.unknown()).nullable(),
|
|
474
|
+
error: z.union([codexproErrorSchemaV2, toolErrorSchema]).nullable(),
|
|
475
|
+
meta: toolMetaSchema,
|
|
476
|
+
codexpro_super_action: safeActionSchema.optional(),
|
|
477
|
+
wrapped_tool: canonicalToolSchemaV2.optional()
|
|
478
|
+
};
|
|
479
|
+
const codexproOutputBaseSchemaV2 = z.object(codexproOutputShapeV2).strict();
|
|
480
|
+
export const codexproOutputSchemaV2 = codexproOutputBaseSchemaV2.superRefine((value, context) => {
|
|
481
|
+
if (value.codexpro_tool === "codexpro") {
|
|
482
|
+
if (!codexproOwnedOutputSchemaV2.safeParse(value).success) {
|
|
483
|
+
context.addIssue({
|
|
484
|
+
code: z.ZodIssueCode.custom,
|
|
485
|
+
message: "Invalid wrapper-owned codexpro V2 result."
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
if (!value.codexpro_super_action || !value.wrapped_tool) {
|
|
491
|
+
context.addIssue({
|
|
492
|
+
code: z.ZodIssueCode.custom,
|
|
493
|
+
message: "Wrapped V2 child results require wrapper identity fields."
|
|
494
|
+
});
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
if (value.codexpro_tool !== value.wrapped_tool) {
|
|
498
|
+
context.addIssue({
|
|
499
|
+
code: z.ZodIssueCode.custom,
|
|
500
|
+
path: ["wrapped_tool"],
|
|
501
|
+
message: "wrapped_tool must equal codexpro_tool."
|
|
502
|
+
});
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
505
|
+
if (resolveCodexProActionV2(value.codexpro_super_action) !== value.wrapped_tool) {
|
|
506
|
+
context.addIssue({
|
|
507
|
+
code: z.ZodIssueCode.custom,
|
|
508
|
+
path: ["codexpro_super_action"],
|
|
509
|
+
message: "codexpro_super_action must resolve to wrapped_tool."
|
|
510
|
+
});
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
const child = stripWrapperFields(value);
|
|
514
|
+
const schema = childOutputSchemasV2[value.wrapped_tool];
|
|
515
|
+
if (!schema.safeParse(child).success) {
|
|
516
|
+
context.addIssue({
|
|
517
|
+
code: z.ZodIssueCode.custom,
|
|
518
|
+
message: "Wrapped child result does not match its exact child schema."
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
});
|
|
522
|
+
export function createCodexProListActionsSuccessV2(actions, durationMs = 0) {
|
|
523
|
+
const uniqueActions = [...new Set(actions)];
|
|
524
|
+
for (const action of uniqueActions) {
|
|
525
|
+
if (!canonicalToolSetV2.has(action)) {
|
|
526
|
+
throw new Error("Invalid canonical CodexPro V2 child action.");
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
uniqueActions.sort();
|
|
530
|
+
return codexproOwnedOutputSchemaV2.parse({
|
|
531
|
+
codexpro_tool: "codexpro",
|
|
532
|
+
codexpro_title: "CodexPro",
|
|
533
|
+
ok: true,
|
|
534
|
+
data: {
|
|
535
|
+
actions: uniqueActions,
|
|
536
|
+
action_count: uniqueActions.length
|
|
537
|
+
},
|
|
538
|
+
error: null,
|
|
539
|
+
meta: createToolMeta(durationMs)
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
export function createCodexProFailureV2(failure, durationMs = 0) {
|
|
543
|
+
const details = failure.code === "ACTION_NOT_AVAILABLE"
|
|
544
|
+
? { action: safePublicAction(failure.details.action) }
|
|
545
|
+
: failure.code === "INTERNAL_ERROR"
|
|
546
|
+
? {}
|
|
547
|
+
: {
|
|
548
|
+
action: safePublicAction(failure.details.action),
|
|
549
|
+
wrapped_tool: failure.details.wrapped_tool
|
|
550
|
+
};
|
|
551
|
+
return codexproOwnedOutputSchemaV2.parse({
|
|
552
|
+
codexpro_tool: "codexpro",
|
|
553
|
+
codexpro_title: "CodexPro",
|
|
554
|
+
ok: false,
|
|
555
|
+
data: null,
|
|
556
|
+
error: {
|
|
557
|
+
code: failure.code,
|
|
558
|
+
message: CODEXPRO_ERROR_MESSAGES[failure.code],
|
|
559
|
+
retryable: false,
|
|
560
|
+
details
|
|
561
|
+
},
|
|
562
|
+
meta: createToolMeta(durationMs)
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
export function wrapCodexProChildResultV2(action, wrappedTool, childStructuredContent) {
|
|
566
|
+
if (resolveCodexProActionV2(action) !== wrappedTool) {
|
|
567
|
+
throw new Error("CodexPro V2 action and wrapped tool do not match.");
|
|
568
|
+
}
|
|
569
|
+
if (!childStructuredContent || typeof childStructuredContent !== "object" || Array.isArray(childStructuredContent)) {
|
|
570
|
+
throw new Error("CodexPro V2 child structured result must be an object.");
|
|
571
|
+
}
|
|
572
|
+
const child = childStructuredContent;
|
|
573
|
+
if ("codexpro_super_action" in child || "wrapped_tool" in child) {
|
|
574
|
+
throw new Error("CodexPro V2 child structured result already contains wrapper fields.");
|
|
575
|
+
}
|
|
576
|
+
const parsedChild = childOutputSchemasV2[wrappedTool].parse(child);
|
|
577
|
+
return codexproOutputSchemaV2.parse({
|
|
578
|
+
...parsedChild,
|
|
579
|
+
codexpro_super_action: safePublicAction(action),
|
|
580
|
+
wrapped_tool: wrappedTool
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
const canonicalToolSchemaV3 = z.enum([...CANONICAL_CODEXPRO_CHILD_TOOLS_V3]);
|
|
584
|
+
const canonicalToolSetV3 = new Set(CANONICAL_CODEXPRO_CHILD_TOOLS_V3);
|
|
585
|
+
const childOutputSchemasV3 = Object.fromEntries([
|
|
586
|
+
...Object.entries(childOutputSchemasV2).filter(([name]) => name !== "bash"),
|
|
587
|
+
["query_audit_events", queryAuditEventsToolOutputSchemaV3],
|
|
588
|
+
["open_full_access_workspace", openFullAccessWorkspaceOutputSchema],
|
|
589
|
+
...Object.entries(EXECUTION_OUTPUT_SCHEMAS)
|
|
590
|
+
]);
|
|
591
|
+
export const CODEXPRO_CHILD_OUTPUT_SCHEMAS_V3 = Object.freeze(childOutputSchemasV3);
|
|
592
|
+
export function resolveCodexProActionV3(action) {
|
|
593
|
+
if (canonicalToolSetV3.has(action))
|
|
594
|
+
return action;
|
|
595
|
+
const alias = CODEXPRO_ACTION_ALIASES[action];
|
|
596
|
+
return alias && canonicalToolSetV3.has(alias) ? alias : null;
|
|
597
|
+
}
|
|
598
|
+
const actionNotAvailableErrorSchemaV3 = toolErrorSchema.extend({
|
|
599
|
+
code: z.literal("ACTION_NOT_AVAILABLE"),
|
|
600
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_NOT_AVAILABLE),
|
|
601
|
+
retryable: z.literal(false),
|
|
602
|
+
details: z.object({ action: safeActionSchema }).strict()
|
|
603
|
+
}).strict();
|
|
604
|
+
const actionArgumentsInvalidErrorSchemaV3 = toolErrorSchema.extend({
|
|
605
|
+
code: z.literal("ACTION_ARGUMENTS_INVALID"),
|
|
606
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_ARGUMENTS_INVALID),
|
|
607
|
+
retryable: z.literal(false),
|
|
608
|
+
details: z.object({
|
|
609
|
+
action: safeActionSchema,
|
|
610
|
+
wrapped_tool: canonicalToolSchemaV3
|
|
611
|
+
}).strict()
|
|
612
|
+
}).strict();
|
|
613
|
+
const childResultInvalidErrorSchemaV3 = toolErrorSchema.extend({
|
|
614
|
+
code: z.literal("CHILD_RESULT_INVALID"),
|
|
615
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.CHILD_RESULT_INVALID),
|
|
616
|
+
retryable: z.literal(false),
|
|
617
|
+
details: z.object({
|
|
618
|
+
action: safeActionSchema,
|
|
619
|
+
wrapped_tool: canonicalToolSchemaV3
|
|
620
|
+
}).strict()
|
|
621
|
+
}).strict();
|
|
622
|
+
const codexproErrorSchemaV3 = z.union([
|
|
623
|
+
actionNotAvailableErrorSchemaV3,
|
|
624
|
+
actionArgumentsInvalidErrorSchemaV3,
|
|
625
|
+
childResultInvalidErrorSchemaV3,
|
|
626
|
+
internalErrorSchema
|
|
627
|
+
]);
|
|
628
|
+
const codexproListActionsDataSchemaV3 = z.object({
|
|
629
|
+
actions: z.array(canonicalToolSchemaV3),
|
|
630
|
+
action_count: z.number().int().nonnegative()
|
|
631
|
+
}).strict().superRefine((value, context) => {
|
|
632
|
+
if (value.action_count !== value.actions.length) {
|
|
633
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["action_count"], message: "action_count must equal actions.length." });
|
|
634
|
+
}
|
|
635
|
+
if (new Set(value.actions).size !== value.actions.length) {
|
|
636
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["actions"], message: "actions must be unique." });
|
|
637
|
+
}
|
|
638
|
+
const sorted = [...value.actions].sort();
|
|
639
|
+
if (sorted.some((action, index) => action !== value.actions[index])) {
|
|
640
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["actions"], message: "actions must be sorted." });
|
|
641
|
+
}
|
|
642
|
+
});
|
|
643
|
+
const codexproOwnedOutputSchemaV3 = z.object({
|
|
644
|
+
codexpro_tool: z.literal("codexpro"),
|
|
645
|
+
codexpro_title: z.literal("CodexPro"),
|
|
646
|
+
ok: z.boolean(),
|
|
647
|
+
data: codexproListActionsDataSchemaV3.nullable(),
|
|
648
|
+
error: codexproErrorSchemaV3.nullable(),
|
|
649
|
+
meta: toolMetaSchema
|
|
650
|
+
}).strict().superRefine((value, context) => {
|
|
651
|
+
if (value.ok && (value.data === null || value.error !== null)) {
|
|
652
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Successful CodexPro V3 results require data and no error." });
|
|
653
|
+
}
|
|
654
|
+
if (!value.ok && (value.data !== null || value.error === null)) {
|
|
655
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Failed CodexPro V3 results require an error and no data." });
|
|
656
|
+
}
|
|
657
|
+
});
|
|
658
|
+
export const codexproOutputShapeV3 = {
|
|
659
|
+
codexpro_tool: z.union([z.literal("codexpro"), canonicalToolSchemaV3]),
|
|
660
|
+
codexpro_title: z.string().min(1),
|
|
661
|
+
ok: z.boolean(),
|
|
662
|
+
data: z.record(z.unknown()).nullable(),
|
|
663
|
+
error: z.union([codexproErrorSchemaV3, toolErrorSchema]).nullable(),
|
|
664
|
+
meta: toolMetaSchema,
|
|
665
|
+
codexpro_super_action: safeActionSchema.optional(),
|
|
666
|
+
wrapped_tool: canonicalToolSchemaV3.optional()
|
|
667
|
+
};
|
|
668
|
+
const codexproOutputBaseSchemaV3 = z.object(codexproOutputShapeV3).strict();
|
|
669
|
+
export const codexproOutputSchemaV3 = codexproOutputBaseSchemaV3.superRefine((value, context) => {
|
|
670
|
+
if (value.codexpro_tool === "codexpro") {
|
|
671
|
+
if (!codexproOwnedOutputSchemaV3.safeParse(value).success) {
|
|
672
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Invalid wrapper-owned CodexPro V3 result." });
|
|
673
|
+
}
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
if (!value.codexpro_super_action || !value.wrapped_tool) {
|
|
677
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Wrapped V3 child results require wrapper identity fields." });
|
|
678
|
+
return;
|
|
679
|
+
}
|
|
680
|
+
if (value.codexpro_tool !== value.wrapped_tool ||
|
|
681
|
+
resolveCodexProActionV3(value.codexpro_super_action) !== value.wrapped_tool) {
|
|
682
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "CodexPro V3 action and wrapped tool do not match." });
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
if (!childOutputSchemasV3[value.wrapped_tool].safeParse(stripWrapperFields(value)).success) {
|
|
686
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Wrapped V3 child result does not match its exact child schema." });
|
|
687
|
+
}
|
|
688
|
+
});
|
|
689
|
+
export function createCodexProListActionsSuccessV3(actions, durationMs = 0) {
|
|
690
|
+
const uniqueActions = [...new Set(actions)];
|
|
691
|
+
for (const action of uniqueActions) {
|
|
692
|
+
if (!canonicalToolSetV3.has(action))
|
|
693
|
+
throw new Error("Invalid canonical CodexPro V3 child action.");
|
|
694
|
+
}
|
|
695
|
+
uniqueActions.sort();
|
|
696
|
+
return codexproOwnedOutputSchemaV3.parse({
|
|
697
|
+
codexpro_tool: "codexpro",
|
|
698
|
+
codexpro_title: "CodexPro",
|
|
699
|
+
ok: true,
|
|
700
|
+
data: { actions: uniqueActions, action_count: uniqueActions.length },
|
|
701
|
+
error: null,
|
|
702
|
+
meta: createToolMeta(durationMs)
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
export function createCodexProFailureV3(failure, durationMs = 0) {
|
|
706
|
+
const details = failure.code === "ACTION_NOT_AVAILABLE"
|
|
707
|
+
? { action: safePublicAction(failure.details.action) }
|
|
708
|
+
: failure.code === "INTERNAL_ERROR"
|
|
709
|
+
? {}
|
|
710
|
+
: { action: safePublicAction(failure.details.action), wrapped_tool: failure.details.wrapped_tool };
|
|
711
|
+
return codexproOwnedOutputSchemaV3.parse({
|
|
712
|
+
codexpro_tool: "codexpro",
|
|
713
|
+
codexpro_title: "CodexPro",
|
|
714
|
+
ok: false,
|
|
715
|
+
data: null,
|
|
716
|
+
error: {
|
|
717
|
+
code: failure.code,
|
|
718
|
+
message: CODEXPRO_ERROR_MESSAGES[failure.code],
|
|
719
|
+
retryable: false,
|
|
720
|
+
details
|
|
721
|
+
},
|
|
722
|
+
meta: createToolMeta(durationMs)
|
|
723
|
+
});
|
|
724
|
+
}
|
|
725
|
+
export function wrapCodexProChildResultV3(action, wrappedTool, childStructuredContent) {
|
|
726
|
+
if (resolveCodexProActionV3(action) !== wrappedTool) {
|
|
727
|
+
throw new Error("CodexPro V3 action and wrapped tool do not match.");
|
|
728
|
+
}
|
|
729
|
+
if (!childStructuredContent || typeof childStructuredContent !== "object" || Array.isArray(childStructuredContent)) {
|
|
730
|
+
throw new Error("CodexPro V3 child structured result must be an object.");
|
|
731
|
+
}
|
|
732
|
+
const child = childStructuredContent;
|
|
733
|
+
if ("codexpro_super_action" in child || "wrapped_tool" in child) {
|
|
734
|
+
throw new Error("CodexPro V3 child structured result already contains wrapper fields.");
|
|
735
|
+
}
|
|
736
|
+
const parsedChild = childOutputSchemasV3[wrappedTool].parse(child);
|
|
737
|
+
return codexproOutputSchemaV3.parse({
|
|
738
|
+
...parsedChild,
|
|
739
|
+
codexpro_super_action: safePublicAction(action),
|
|
740
|
+
wrapped_tool: wrappedTool
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
const canonicalToolSchemaV4 = z.enum([...CANONICAL_CODEXPRO_CHILD_TOOLS_V4]);
|
|
744
|
+
const canonicalToolSetV4 = new Set(CANONICAL_CODEXPRO_CHILD_TOOLS_V4);
|
|
745
|
+
const childOutputSchemasV4 = Object.freeze({
|
|
746
|
+
...childOutputSchemasV3,
|
|
747
|
+
run_command: EXECUTION_OUTPUT_SCHEMAS_V4.run_command,
|
|
748
|
+
read_process_output: EXECUTION_OUTPUT_SCHEMAS_V4.read_process_output,
|
|
749
|
+
git_status: gitStatusOutputSchemaV4,
|
|
750
|
+
git_diff: gitDiffOutputSchemaV4,
|
|
751
|
+
query_audit_events: queryAuditEventsToolOutputSchemaV4,
|
|
752
|
+
git_log: gitLogOutputSchemaV4,
|
|
753
|
+
git_branch: gitBranchOutputSchemaV4,
|
|
754
|
+
git_create_branch: gitCreateBranchOutputSchemaV4,
|
|
755
|
+
git_stage: gitStageOutputSchemaV4,
|
|
756
|
+
git_commit: gitCommitOutputSchemaV4,
|
|
757
|
+
git_restore: gitRestoreOutputSchemaV4,
|
|
758
|
+
git_stash: gitStashOutputSchemaV4,
|
|
759
|
+
create_task_worktree: createTaskWorktreeOutputSchemaV4,
|
|
760
|
+
list_task_worktrees: listTaskWorktreesOutputSchemaV4,
|
|
761
|
+
get_task_worktree: getTaskWorktreeOutputSchemaV4,
|
|
762
|
+
merge_task_worktree: mergeTaskWorktreeOutputSchemaV4,
|
|
763
|
+
remove_task_worktree: removeTaskWorktreeOutputSchemaV4
|
|
764
|
+
});
|
|
765
|
+
export const CODEXPRO_CHILD_OUTPUT_SCHEMAS_V4 = childOutputSchemasV4;
|
|
766
|
+
export function resolveCodexProActionV4(action) {
|
|
767
|
+
if (canonicalToolSetV4.has(action))
|
|
768
|
+
return action;
|
|
769
|
+
const alias = CODEXPRO_ACTION_ALIASES[action];
|
|
770
|
+
return alias && canonicalToolSetV4.has(alias) ? alias : null;
|
|
771
|
+
}
|
|
772
|
+
const actionNotAvailableErrorSchemaV4 = toolErrorSchema.extend({
|
|
773
|
+
code: z.literal("ACTION_NOT_AVAILABLE"),
|
|
774
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_NOT_AVAILABLE),
|
|
775
|
+
retryable: z.literal(false),
|
|
776
|
+
details: z.object({ action: safeActionSchema }).strict()
|
|
777
|
+
}).strict();
|
|
778
|
+
const actionArgumentsInvalidErrorSchemaV4 = toolErrorSchema.extend({
|
|
779
|
+
code: z.literal("ACTION_ARGUMENTS_INVALID"),
|
|
780
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.ACTION_ARGUMENTS_INVALID),
|
|
781
|
+
retryable: z.literal(false),
|
|
782
|
+
details: z.object({
|
|
783
|
+
action: safeActionSchema,
|
|
784
|
+
wrapped_tool: canonicalToolSchemaV4
|
|
785
|
+
}).strict()
|
|
786
|
+
}).strict();
|
|
787
|
+
const childResultInvalidErrorSchemaV4 = toolErrorSchema.extend({
|
|
788
|
+
code: z.literal("CHILD_RESULT_INVALID"),
|
|
789
|
+
message: z.literal(CODEXPRO_ERROR_MESSAGES.CHILD_RESULT_INVALID),
|
|
790
|
+
retryable: z.literal(false),
|
|
791
|
+
details: z.object({
|
|
792
|
+
action: safeActionSchema,
|
|
793
|
+
wrapped_tool: canonicalToolSchemaV4
|
|
794
|
+
}).strict()
|
|
795
|
+
}).strict();
|
|
796
|
+
const codexproErrorSchemaV4 = z.union([
|
|
797
|
+
actionNotAvailableErrorSchemaV4,
|
|
798
|
+
actionArgumentsInvalidErrorSchemaV4,
|
|
799
|
+
childResultInvalidErrorSchemaV4,
|
|
800
|
+
internalErrorSchema
|
|
801
|
+
]);
|
|
802
|
+
const codexproListActionsDataSchemaV4 = z.object({
|
|
803
|
+
actions: z.array(canonicalToolSchemaV4),
|
|
804
|
+
action_count: z.number().int().nonnegative()
|
|
805
|
+
}).strict().superRefine((value, context) => {
|
|
806
|
+
if (value.action_count !== value.actions.length) {
|
|
807
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["action_count"], message: "action_count must equal actions.length." });
|
|
808
|
+
}
|
|
809
|
+
if (new Set(value.actions).size !== value.actions.length) {
|
|
810
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["actions"], message: "actions must be unique." });
|
|
811
|
+
}
|
|
812
|
+
const sorted = [...value.actions].sort();
|
|
813
|
+
if (sorted.some((action, index) => action !== value.actions[index])) {
|
|
814
|
+
context.addIssue({ code: z.ZodIssueCode.custom, path: ["actions"], message: "actions must be sorted." });
|
|
815
|
+
}
|
|
816
|
+
});
|
|
817
|
+
const codexproOwnedOutputSchemaV4 = z.object({
|
|
818
|
+
codexpro_tool: z.literal("codexpro"),
|
|
819
|
+
codexpro_title: z.literal("CodexPro"),
|
|
820
|
+
ok: z.boolean(),
|
|
821
|
+
data: codexproListActionsDataSchemaV4.nullable(),
|
|
822
|
+
error: codexproErrorSchemaV4.nullable(),
|
|
823
|
+
meta: toolMetaSchema
|
|
824
|
+
}).strict().superRefine((value, context) => {
|
|
825
|
+
if (value.ok && (value.data === null || value.error !== null)) {
|
|
826
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Successful CodexPro V4 results require data and no error." });
|
|
827
|
+
}
|
|
828
|
+
if (!value.ok && (value.data !== null || value.error === null)) {
|
|
829
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Failed CodexPro V4 results require an error and no data." });
|
|
830
|
+
}
|
|
831
|
+
});
|
|
832
|
+
export const codexproOutputShapeV4 = {
|
|
833
|
+
codexpro_tool: z.union([z.literal("codexpro"), canonicalToolSchemaV4]),
|
|
834
|
+
codexpro_title: z.string().min(1),
|
|
835
|
+
ok: z.boolean(),
|
|
836
|
+
data: z.record(z.unknown()).nullable(),
|
|
837
|
+
error: z.union([codexproErrorSchemaV4, toolErrorSchema]).nullable(),
|
|
838
|
+
meta: toolMetaSchema,
|
|
839
|
+
codexpro_super_action: safeActionSchema.optional(),
|
|
840
|
+
wrapped_tool: canonicalToolSchemaV4.optional()
|
|
841
|
+
};
|
|
842
|
+
const codexproOutputBaseSchemaV4 = z.object(codexproOutputShapeV4).strict();
|
|
843
|
+
export const codexproOutputSchemaV4 = codexproOutputBaseSchemaV4.superRefine((value, context) => {
|
|
844
|
+
if (value.codexpro_tool === "codexpro") {
|
|
845
|
+
if (!codexproOwnedOutputSchemaV4.safeParse(value).success) {
|
|
846
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Invalid wrapper-owned CodexPro V4 result." });
|
|
847
|
+
}
|
|
848
|
+
return;
|
|
849
|
+
}
|
|
850
|
+
if (!value.codexpro_super_action || !value.wrapped_tool) {
|
|
851
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Wrapped V4 child results require wrapper identity fields." });
|
|
852
|
+
return;
|
|
853
|
+
}
|
|
854
|
+
if (value.codexpro_tool !== value.wrapped_tool ||
|
|
855
|
+
resolveCodexProActionV4(value.codexpro_super_action) !== value.wrapped_tool) {
|
|
856
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "CodexPro V4 action and wrapped tool do not match." });
|
|
857
|
+
return;
|
|
858
|
+
}
|
|
859
|
+
if (!childOutputSchemasV4[value.wrapped_tool].safeParse(stripWrapperFields(value)).success) {
|
|
860
|
+
context.addIssue({ code: z.ZodIssueCode.custom, message: "Wrapped V4 child result does not match its exact child schema." });
|
|
861
|
+
}
|
|
862
|
+
});
|
|
863
|
+
export function createCodexProListActionsSuccessV4(actions, durationMs = 0) {
|
|
864
|
+
const uniqueActions = [...new Set(actions)];
|
|
865
|
+
for (const action of uniqueActions) {
|
|
866
|
+
if (!canonicalToolSetV4.has(action))
|
|
867
|
+
throw new Error("Invalid canonical CodexPro V4 child action.");
|
|
868
|
+
}
|
|
869
|
+
uniqueActions.sort();
|
|
870
|
+
return codexproOwnedOutputSchemaV4.parse({
|
|
871
|
+
codexpro_tool: "codexpro",
|
|
872
|
+
codexpro_title: "CodexPro",
|
|
873
|
+
ok: true,
|
|
874
|
+
data: { actions: uniqueActions, action_count: uniqueActions.length },
|
|
875
|
+
error: null,
|
|
876
|
+
meta: createToolMeta(durationMs)
|
|
877
|
+
});
|
|
878
|
+
}
|
|
879
|
+
export function createCodexProFailureV4(failure, durationMs = 0) {
|
|
880
|
+
const details = failure.code === "ACTION_NOT_AVAILABLE"
|
|
881
|
+
? { action: safePublicAction(failure.details.action) }
|
|
882
|
+
: failure.code === "INTERNAL_ERROR"
|
|
883
|
+
? {}
|
|
884
|
+
: { action: safePublicAction(failure.details.action), wrapped_tool: failure.details.wrapped_tool };
|
|
885
|
+
return codexproOwnedOutputSchemaV4.parse({
|
|
886
|
+
codexpro_tool: "codexpro",
|
|
887
|
+
codexpro_title: "CodexPro",
|
|
888
|
+
ok: false,
|
|
889
|
+
data: null,
|
|
890
|
+
error: {
|
|
891
|
+
code: failure.code,
|
|
892
|
+
message: CODEXPRO_ERROR_MESSAGES[failure.code],
|
|
893
|
+
retryable: false,
|
|
894
|
+
details
|
|
895
|
+
},
|
|
896
|
+
meta: createToolMeta(durationMs)
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
export function wrapCodexProChildResultV4(action, wrappedTool, childStructuredContent) {
|
|
900
|
+
if (resolveCodexProActionV4(action) !== wrappedTool) {
|
|
901
|
+
throw new Error("CodexPro V4 action and wrapped tool do not match.");
|
|
902
|
+
}
|
|
903
|
+
if (!childStructuredContent || typeof childStructuredContent !== "object" || Array.isArray(childStructuredContent)) {
|
|
904
|
+
throw new Error("CodexPro V4 child structured result must be an object.");
|
|
905
|
+
}
|
|
906
|
+
const child = childStructuredContent;
|
|
907
|
+
if ("codexpro_super_action" in child || "wrapped_tool" in child) {
|
|
908
|
+
throw new Error("CodexPro V4 child structured result already contains wrapper fields.");
|
|
909
|
+
}
|
|
910
|
+
const parsedChild = childOutputSchemasV4[wrappedTool].parse(child);
|
|
911
|
+
return codexproOutputSchemaV4.parse({
|
|
912
|
+
...parsedChild,
|
|
913
|
+
codexpro_super_action: safePublicAction(action),
|
|
914
|
+
wrapped_tool: wrappedTool
|
|
915
|
+
});
|
|
916
|
+
}
|
|
917
|
+
//# sourceMappingURL=codexpro.js.map
|