@xenosystem/agent-interface-host 0.1.3
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/LICENSE +67 -0
- package/dist/acp/AcpAgentRegistryService.d.ts +77 -0
- package/dist/acp/AcpAgentRegistryService.d.ts.map +1 -0
- package/dist/acp/AcpAgentRegistryService.js +754 -0
- package/dist/acp/AcpAgentRegistryService.js.map +1 -0
- package/dist/acp/AcpAgentTurnExecutionAdapter.d.ts +56 -0
- package/dist/acp/AcpAgentTurnExecutionAdapter.d.ts.map +1 -0
- package/dist/acp/AcpAgentTurnExecutionAdapter.js +323 -0
- package/dist/acp/AcpAgentTurnExecutionAdapter.js.map +1 -0
- package/dist/acp/AcpApprovalPortAdapter.d.ts +41 -0
- package/dist/acp/AcpApprovalPortAdapter.d.ts.map +1 -0
- package/dist/acp/AcpApprovalPortAdapter.js +82 -0
- package/dist/acp/AcpApprovalPortAdapter.js.map +1 -0
- package/dist/acp/AcpCoordinationBridge.d.ts +13 -0
- package/dist/acp/AcpCoordinationBridge.d.ts.map +1 -0
- package/dist/acp/AcpCoordinationBridge.js +13 -0
- package/dist/acp/AcpCoordinationBridge.js.map +1 -0
- package/dist/acp/AcpDiagnosticsService.d.ts +61 -0
- package/dist/acp/AcpDiagnosticsService.d.ts.map +1 -0
- package/dist/acp/AcpDiagnosticsService.js +203 -0
- package/dist/acp/AcpDiagnosticsService.js.map +1 -0
- package/dist/acp/AcpExternalCertificationHarness.d.ts +47 -0
- package/dist/acp/AcpExternalCertificationHarness.d.ts.map +1 -0
- package/dist/acp/AcpExternalCertificationHarness.js +176 -0
- package/dist/acp/AcpExternalCertificationHarness.js.map +1 -0
- package/dist/acp/AcpHostBridge.d.ts +81 -0
- package/dist/acp/AcpHostBridge.d.ts.map +1 -0
- package/dist/acp/AcpHostBridge.js +101 -0
- package/dist/acp/AcpHostBridge.js.map +1 -0
- package/dist/acp/AcpInteractivePermissionBridge.d.ts +77 -0
- package/dist/acp/AcpInteractivePermissionBridge.d.ts.map +1 -0
- package/dist/acp/AcpInteractivePermissionBridge.js +127 -0
- package/dist/acp/AcpInteractivePermissionBridge.js.map +1 -0
- package/dist/acp/AcpPermissionBridge.d.ts +19 -0
- package/dist/acp/AcpPermissionBridge.d.ts.map +1 -0
- package/dist/acp/AcpPermissionBridge.js +110 -0
- package/dist/acp/AcpPermissionBridge.js.map +1 -0
- package/dist/acp/AcpPermissionPolicy.d.ts +111 -0
- package/dist/acp/AcpPermissionPolicy.d.ts.map +1 -0
- package/dist/acp/AcpPermissionPolicy.js +167 -0
- package/dist/acp/AcpPermissionPolicy.js.map +1 -0
- package/dist/acp/AcpProcessSupervisor.d.ts +134 -0
- package/dist/acp/AcpProcessSupervisor.d.ts.map +1 -0
- package/dist/acp/AcpProcessSupervisor.js +674 -0
- package/dist/acp/AcpProcessSupervisor.js.map +1 -0
- package/dist/acp/AcpProviderApprovalService.d.ts +27 -0
- package/dist/acp/AcpProviderApprovalService.d.ts.map +1 -0
- package/dist/acp/AcpProviderApprovalService.js +128 -0
- package/dist/acp/AcpProviderApprovalService.js.map +1 -0
- package/dist/acp/AcpProviderCatalogService.d.ts +69 -0
- package/dist/acp/AcpProviderCatalogService.d.ts.map +1 -0
- package/dist/acp/AcpProviderCatalogService.js +707 -0
- package/dist/acp/AcpProviderCatalogService.js.map +1 -0
- package/dist/acp/AcpProviderModelService.d.ts +6 -0
- package/dist/acp/AcpProviderModelService.d.ts.map +1 -0
- package/dist/acp/AcpProviderModelService.js +274 -0
- package/dist/acp/AcpProviderModelService.js.map +1 -0
- package/dist/acp/AcpProviderVersionReadiness.d.ts +6 -0
- package/dist/acp/AcpProviderVersionReadiness.d.ts.map +1 -0
- package/dist/acp/AcpProviderVersionReadiness.js +100 -0
- package/dist/acp/AcpProviderVersionReadiness.js.map +1 -0
- package/dist/acp/AcpRuntimeEventMapper.d.ts +16 -0
- package/dist/acp/AcpRuntimeEventMapper.d.ts.map +1 -0
- package/dist/acp/AcpRuntimeEventMapper.js +326 -0
- package/dist/acp/AcpRuntimeEventMapper.js.map +1 -0
- package/dist/acp/AcpSessionService.d.ts +65 -0
- package/dist/acp/AcpSessionService.d.ts.map +1 -0
- package/dist/acp/AcpSessionService.js +931 -0
- package/dist/acp/AcpSessionService.js.map +1 -0
- package/dist/acp/DurableAcpPermissionPolicyStore.d.ts +25 -0
- package/dist/acp/DurableAcpPermissionPolicyStore.d.ts.map +1 -0
- package/dist/acp/DurableAcpPermissionPolicyStore.js +100 -0
- package/dist/acp/DurableAcpPermissionPolicyStore.js.map +1 -0
- package/dist/acp/acpCommandSafety.d.ts +63 -0
- package/dist/acp/acpCommandSafety.d.ts.map +1 -0
- package/dist/acp/acpCommandSafety.js +90 -0
- package/dist/acp/acpCommandSafety.js.map +1 -0
- package/dist/acp/acpErrors.d.ts +47 -0
- package/dist/acp/acpErrors.d.ts.map +1 -0
- package/dist/acp/acpErrors.js +93 -0
- package/dist/acp/acpErrors.js.map +1 -0
- package/dist/acp/acpRedaction.d.ts +9 -0
- package/dist/acp/acpRedaction.d.ts.map +1 -0
- package/dist/acp/acpRedaction.js +69 -0
- package/dist/acp/acpRedaction.js.map +1 -0
- package/dist/acp/acpSessionResume.d.ts +8 -0
- package/dist/acp/acpSessionResume.d.ts.map +1 -0
- package/dist/acp/acpSessionResume.js +31 -0
- package/dist/acp/acpSessionResume.js.map +1 -0
- package/dist/acp/acpTypes.d.ts +467 -0
- package/dist/acp/acpTypes.d.ts.map +1 -0
- package/dist/acp/acpTypes.js +2 -0
- package/dist/acp/acpTypes.js.map +1 -0
- package/dist/agent/chooseDirectoryBridge.d.ts +29 -0
- package/dist/agent/chooseDirectoryBridge.d.ts.map +1 -0
- package/dist/agent/chooseDirectoryBridge.js +116 -0
- package/dist/agent/chooseDirectoryBridge.js.map +1 -0
- package/dist/agent/permissionProfiles.d.ts +29 -0
- package/dist/agent/permissionProfiles.d.ts.map +1 -0
- package/dist/agent/permissionProfiles.js +107 -0
- package/dist/agent/permissionProfiles.js.map +1 -0
- package/dist/agent/runtimeAuthorityPrompt.d.ts +13 -0
- package/dist/agent/runtimeAuthorityPrompt.d.ts.map +1 -0
- package/dist/agent/runtimeAuthorityPrompt.js +45 -0
- package/dist/agent/runtimeAuthorityPrompt.js.map +1 -0
- package/dist/agent/runtimeModeOutputGuard.d.ts +6 -0
- package/dist/agent/runtimeModeOutputGuard.d.ts.map +1 -0
- package/dist/agent/runtimeModeOutputGuard.js +40 -0
- package/dist/agent/runtimeModeOutputGuard.js.map +1 -0
- package/dist/agent/workspacePlacementBridge.d.ts +29 -0
- package/dist/agent/workspacePlacementBridge.d.ts.map +1 -0
- package/dist/agent/workspacePlacementBridge.js +143 -0
- package/dist/agent/workspacePlacementBridge.js.map +1 -0
- package/dist/agentSearch/AgentSearchService.d.ts +81 -0
- package/dist/agentSearch/AgentSearchService.d.ts.map +1 -0
- package/dist/agentSearch/AgentSearchService.js +1038 -0
- package/dist/agentSearch/AgentSearchService.js.map +1 -0
- package/dist/agentSearch/JsonInvertedIndexAdapter.d.ts +44 -0
- package/dist/agentSearch/JsonInvertedIndexAdapter.d.ts.map +1 -0
- package/dist/agentSearch/JsonInvertedIndexAdapter.js +307 -0
- package/dist/agentSearch/JsonInvertedIndexAdapter.js.map +1 -0
- package/dist/agentSearch/SearchIndexAdapter.d.ts +33 -0
- package/dist/agentSearch/SearchIndexAdapter.d.ts.map +1 -0
- package/dist/agentSearch/SearchIndexAdapter.js +2 -0
- package/dist/agentSearch/SearchIndexAdapter.js.map +1 -0
- package/dist/agentSearch/SearchSourceWatcher.d.ts +29 -0
- package/dist/agentSearch/SearchSourceWatcher.d.ts.map +1 -0
- package/dist/agentSearch/SearchSourceWatcher.js +150 -0
- package/dist/agentSearch/SearchSourceWatcher.js.map +1 -0
- package/dist/agentSearch/SqliteFtsIndexAdapter.d.ts +58 -0
- package/dist/agentSearch/SqliteFtsIndexAdapter.d.ts.map +1 -0
- package/dist/agentSearch/SqliteFtsIndexAdapter.js +420 -0
- package/dist/agentSearch/SqliteFtsIndexAdapter.js.map +1 -0
- package/dist/agentSearch/conversationIndexer.d.ts +69 -0
- package/dist/agentSearch/conversationIndexer.d.ts.map +1 -0
- package/dist/agentSearch/conversationIndexer.js +313 -0
- package/dist/agentSearch/conversationIndexer.js.map +1 -0
- package/dist/agentSearch/searchTypes.d.ts +264 -0
- package/dist/agentSearch/searchTypes.d.ts.map +1 -0
- package/dist/agentSearch/searchTypes.js +2 -0
- package/dist/agentSearch/searchTypes.js.map +1 -0
- package/dist/agentSearch/searchUtils.d.ts +12 -0
- package/dist/agentSearch/searchUtils.d.ts.map +1 -0
- package/dist/agentSearch/searchUtils.js +125 -0
- package/dist/agentSearch/searchUtils.js.map +1 -0
- package/dist/agentSearch/workspaceMetadataIndexer.d.ts +3 -0
- package/dist/agentSearch/workspaceMetadataIndexer.d.ts.map +1 -0
- package/dist/agentSearch/workspaceMetadataIndexer.js +125 -0
- package/dist/agentSearch/workspaceMetadataIndexer.js.map +1 -0
- package/dist/cli/CliControlPlaneService.d.ts +269 -0
- package/dist/cli/CliControlPlaneService.d.ts.map +1 -0
- package/dist/cli/CliControlPlaneService.js +1874 -0
- package/dist/cli/CliControlPlaneService.js.map +1 -0
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.d.ts +91 -0
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.d.ts.map +1 -0
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.js +379 -0
- package/dist/cloud/XenoCloudAgentTurnExecutionAdapter.js.map +1 -0
- package/dist/codebase/CodebaseIntelligenceService.d.ts +68 -0
- package/dist/codebase/CodebaseIntelligenceService.d.ts.map +1 -0
- package/dist/codebase/CodebaseIntelligenceService.js +1717 -0
- package/dist/codebase/CodebaseIntelligenceService.js.map +1 -0
- package/dist/codebase/LanguageServerProcessManager.d.ts +85 -0
- package/dist/codebase/LanguageServerProcessManager.d.ts.map +1 -0
- package/dist/codebase/LanguageServerProcessManager.js +607 -0
- package/dist/codebase/LanguageServerProcessManager.js.map +1 -0
- package/dist/codebase/codeTypes.d.ts +485 -0
- package/dist/codebase/codeTypes.d.ts.map +1 -0
- package/dist/codebase/codeTypes.js +2 -0
- package/dist/codebase/codeTypes.js.map +1 -0
- package/dist/codebase/codeUtils.d.ts +24 -0
- package/dist/codebase/codeUtils.d.ts.map +1 -0
- package/dist/codebase/codeUtils.js +177 -0
- package/dist/codebase/codeUtils.js.map +1 -0
- package/dist/codebase/contextPacks.d.ts +18 -0
- package/dist/codebase/contextPacks.d.ts.map +1 -0
- package/dist/codebase/contextPacks.js +180 -0
- package/dist/codebase/contextPacks.js.map +1 -0
- package/dist/codebase/dependencyGraph.d.ts +3 -0
- package/dist/codebase/dependencyGraph.d.ts.map +1 -0
- package/dist/codebase/dependencyGraph.js +209 -0
- package/dist/codebase/dependencyGraph.js.map +1 -0
- package/dist/codebase/fileIndexer.d.ts +27 -0
- package/dist/codebase/fileIndexer.d.ts.map +1 -0
- package/dist/codebase/fileIndexer.js +167 -0
- package/dist/codebase/fileIndexer.js.map +1 -0
- package/dist/codebase/symbolIndexer.d.ts +3 -0
- package/dist/codebase/symbolIndexer.d.ts.map +1 -0
- package/dist/codebase/symbolIndexer.js +184 -0
- package/dist/codebase/symbolIndexer.js.map +1 -0
- package/dist/codebase/whatChanged.d.ts +4 -0
- package/dist/codebase/whatChanged.d.ts.map +1 -0
- package/dist/codebase/whatChanged.js +138 -0
- package/dist/codebase/whatChanged.js.map +1 -0
- package/dist/coordination/CoordinationService.d.ts +166 -0
- package/dist/coordination/CoordinationService.d.ts.map +1 -0
- package/dist/coordination/CoordinationService.js +247 -0
- package/dist/coordination/CoordinationService.js.map +1 -0
- package/dist/coordination/claims.d.ts +122 -0
- package/dist/coordination/claims.d.ts.map +1 -0
- package/dist/coordination/claims.js +196 -0
- package/dist/coordination/claims.js.map +1 -0
- package/dist/coordination/coordinationTools.d.ts +40 -0
- package/dist/coordination/coordinationTools.d.ts.map +1 -0
- package/dist/coordination/coordinationTools.js +92 -0
- package/dist/coordination/coordinationTools.js.map +1 -0
- package/dist/coordination/laneBridge.d.ts +84 -0
- package/dist/coordination/laneBridge.d.ts.map +1 -0
- package/dist/coordination/laneBridge.js +86 -0
- package/dist/coordination/laneBridge.js.map +1 -0
- package/dist/coordination/messages.d.ts +225 -0
- package/dist/coordination/messages.d.ts.map +1 -0
- package/dist/coordination/messages.js +335 -0
- package/dist/coordination/messages.js.map +1 -0
- package/dist/coordination/permissionWaitRegistry.d.ts +32 -0
- package/dist/coordination/permissionWaitRegistry.d.ts.map +1 -0
- package/dist/coordination/permissionWaitRegistry.js +59 -0
- package/dist/coordination/permissionWaitRegistry.js.map +1 -0
- package/dist/coordination/query.d.ts +187 -0
- package/dist/coordination/query.d.ts.map +1 -0
- package/dist/coordination/query.js +138 -0
- package/dist/coordination/query.js.map +1 -0
- package/dist/coordination/renderInbox.d.ts +15 -0
- package/dist/coordination/renderInbox.d.ts.map +1 -0
- package/dist/coordination/renderInbox.js +19 -0
- package/dist/coordination/renderInbox.js.map +1 -0
- package/dist/coordination/runtimeEvents.d.ts +53 -0
- package/dist/coordination/runtimeEvents.d.ts.map +1 -0
- package/dist/coordination/runtimeEvents.js +112 -0
- package/dist/coordination/runtimeEvents.js.map +1 -0
- package/dist/detachedHostService.d.ts +77 -0
- package/dist/detachedHostService.d.ts.map +1 -0
- package/dist/detachedHostService.js +66 -0
- package/dist/detachedHostService.js.map +1 -0
- package/dist/detachedHostSupervisor.d.ts +102 -0
- package/dist/detachedHostSupervisor.d.ts.map +1 -0
- package/dist/detachedHostSupervisor.js +168 -0
- package/dist/detachedHostSupervisor.js.map +1 -0
- package/dist/durableRuntimeEventStore.d.ts +49 -0
- package/dist/durableRuntimeEventStore.d.ts.map +1 -0
- package/dist/durableRuntimeEventStore.js +364 -0
- package/dist/durableRuntimeEventStore.js.map +1 -0
- package/dist/engineering/EngineeringWorkbenchService.d.ts +142 -0
- package/dist/engineering/EngineeringWorkbenchService.d.ts.map +1 -0
- package/dist/engineering/EngineeringWorkbenchService.js +2301 -0
- package/dist/engineering/EngineeringWorkbenchService.js.map +1 -0
- package/dist/engineering/LandingService.d.ts +112 -0
- package/dist/engineering/LandingService.d.ts.map +1 -0
- package/dist/engineering/LandingService.js +239 -0
- package/dist/engineering/LandingService.js.map +1 -0
- package/dist/engineering/engineeringTypes.d.ts +2 -0
- package/dist/engineering/engineeringTypes.d.ts.map +1 -0
- package/dist/engineering/engineeringTypes.js +2 -0
- package/dist/engineering/engineeringTypes.js.map +1 -0
- package/dist/engineering/patchReview.d.ts +11 -0
- package/dist/engineering/patchReview.d.ts.map +1 -0
- package/dist/engineering/patchReview.js +174 -0
- package/dist/engineering/patchReview.js.map +1 -0
- package/dist/index.d.ts +834 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3242 -0
- package/dist/index.js.map +1 -0
- package/dist/intake/IntakeService.d.ts +84 -0
- package/dist/intake/IntakeService.d.ts.map +1 -0
- package/dist/intake/IntakeService.js +117 -0
- package/dist/intake/IntakeService.js.map +1 -0
- package/dist/intake/RepositoryTodoIntakeSource.d.ts +72 -0
- package/dist/intake/RepositoryTodoIntakeSource.d.ts.map +1 -0
- package/dist/intake/RepositoryTodoIntakeSource.js +168 -0
- package/dist/intake/RepositoryTodoIntakeSource.js.map +1 -0
- package/dist/intake/WorkspaceTodoIntakeSource.d.ts +53 -0
- package/dist/intake/WorkspaceTodoIntakeSource.d.ts.map +1 -0
- package/dist/intake/WorkspaceTodoIntakeSource.js +81 -0
- package/dist/intake/WorkspaceTodoIntakeSource.js.map +1 -0
- package/dist/isolation/CommandExecution.d.ts +132 -0
- package/dist/isolation/CommandExecution.d.ts.map +1 -0
- package/dist/isolation/CommandExecution.js +48 -0
- package/dist/isolation/CommandExecution.js.map +1 -0
- package/dist/isolation/LocalCommandExecutor.d.ts +27 -0
- package/dist/isolation/LocalCommandExecutor.d.ts.map +1 -0
- package/dist/isolation/LocalCommandExecutor.js +97 -0
- package/dist/isolation/LocalCommandExecutor.js.map +1 -0
- package/dist/isolation/RunExecutionEnvironment.d.ts +135 -0
- package/dist/isolation/RunExecutionEnvironment.d.ts.map +1 -0
- package/dist/isolation/RunExecutionEnvironment.js +206 -0
- package/dist/isolation/RunExecutionEnvironment.js.map +1 -0
- package/dist/isolation/RunIsolationService.d.ts +90 -0
- package/dist/isolation/RunIsolationService.d.ts.map +1 -0
- package/dist/isolation/RunIsolationService.js +86 -0
- package/dist/isolation/RunIsolationService.js.map +1 -0
- package/dist/isolation/SandboxCommandExecutor.d.ts +93 -0
- package/dist/isolation/SandboxCommandExecutor.d.ts.map +1 -0
- package/dist/isolation/SandboxCommandExecutor.js +189 -0
- package/dist/isolation/SandboxCommandExecutor.js.map +1 -0
- package/dist/knowledge/WorkspaceKnowledgeService.d.ts +71 -0
- package/dist/knowledge/WorkspaceKnowledgeService.d.ts.map +1 -0
- package/dist/knowledge/WorkspaceKnowledgeService.js +103 -0
- package/dist/knowledge/WorkspaceKnowledgeService.js.map +1 -0
- package/dist/localHostAuthority.d.ts +24 -0
- package/dist/localHostAuthority.d.ts.map +1 -0
- package/dist/localHostAuthority.js +87 -0
- package/dist/localHostAuthority.js.map +1 -0
- package/dist/localHostLease.d.ts +51 -0
- package/dist/localHostLease.d.ts.map +1 -0
- package/dist/localHostLease.js +167 -0
- package/dist/localHostLease.js.map +1 -0
- package/dist/localHostPaths.d.ts +30 -0
- package/dist/localHostPaths.d.ts.map +1 -0
- package/dist/localHostPaths.js +60 -0
- package/dist/localHostPaths.js.map +1 -0
- package/dist/localRpcTransport.d.ts +21 -0
- package/dist/localRpcTransport.d.ts.map +1 -0
- package/dist/localRpcTransport.js +423 -0
- package/dist/localRpcTransport.js.map +1 -0
- package/dist/node.d.ts +104 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +103 -0
- package/dist/node.js.map +1 -0
- package/dist/observation/DirectoryBaselineScanner.d.ts +44 -0
- package/dist/observation/DirectoryBaselineScanner.d.ts.map +1 -0
- package/dist/observation/DirectoryBaselineScanner.js +112 -0
- package/dist/observation/DirectoryBaselineScanner.js.map +1 -0
- package/dist/observation/MountContentReader.d.ts +63 -0
- package/dist/observation/MountContentReader.d.ts.map +1 -0
- package/dist/observation/MountContentReader.js +158 -0
- package/dist/observation/MountContentReader.js.map +1 -0
- package/dist/observation/RunObservationService.d.ts +229 -0
- package/dist/observation/RunObservationService.d.ts.map +1 -0
- package/dist/observation/RunObservationService.js +248 -0
- package/dist/observation/RunObservationService.js.map +1 -0
- package/dist/observation/XenoUseObservationSource.d.ts +42 -0
- package/dist/observation/XenoUseObservationSource.d.ts.map +1 -0
- package/dist/observation/XenoUseObservationSource.js +104 -0
- package/dist/observation/XenoUseObservationSource.js.map +1 -0
- package/dist/observation/XenoUseRunObserver.d.ts +140 -0
- package/dist/observation/XenoUseRunObserver.d.ts.map +1 -0
- package/dist/observation/XenoUseRunObserver.js +256 -0
- package/dist/observation/XenoUseRunObserver.js.map +1 -0
- package/dist/pluginMcp/PluginMcpManagerService.d.ts +141 -0
- package/dist/pluginMcp/PluginMcpManagerService.d.ts.map +1 -0
- package/dist/pluginMcp/PluginMcpManagerService.js +1821 -0
- package/dist/pluginMcp/PluginMcpManagerService.js.map +1 -0
- package/dist/pluginMcp/pluginMcpTypes.d.ts +349 -0
- package/dist/pluginMcp/pluginMcpTypes.d.ts.map +1 -0
- package/dist/pluginMcp/pluginMcpTypes.js +2 -0
- package/dist/pluginMcp/pluginMcpTypes.js.map +1 -0
- package/dist/policy/WorkspacePolicyService.d.ts +83 -0
- package/dist/policy/WorkspacePolicyService.d.ts.map +1 -0
- package/dist/policy/WorkspacePolicyService.js +809 -0
- package/dist/policy/WorkspacePolicyService.js.map +1 -0
- package/dist/policy/policyGuard.d.ts +27 -0
- package/dist/policy/policyGuard.d.ts.map +1 -0
- package/dist/policy/policyGuard.js +143 -0
- package/dist/policy/policyGuard.js.map +1 -0
- package/dist/policy/policyTypes.d.ts +190 -0
- package/dist/policy/policyTypes.d.ts.map +1 -0
- package/dist/policy/policyTypes.js +2 -0
- package/dist/policy/policyTypes.js.map +1 -0
- package/dist/runtime/RuntimeEventStore.d.ts +42 -0
- package/dist/runtime/RuntimeEventStore.d.ts.map +1 -0
- package/dist/runtime/RuntimeEventStore.js +412 -0
- package/dist/runtime/RuntimeEventStore.js.map +1 -0
- package/dist/runtime/RuntimeEventStoreRepositoryAdapter.d.ts +21 -0
- package/dist/runtime/RuntimeEventStoreRepositoryAdapter.d.ts.map +1 -0
- package/dist/runtime/RuntimeEventStoreRepositoryAdapter.js +41 -0
- package/dist/runtime/RuntimeEventStoreRepositoryAdapter.js.map +1 -0
- package/dist/runtime/RuntimeTimelineProjection.d.ts +5 -0
- package/dist/runtime/RuntimeTimelineProjection.d.ts.map +1 -0
- package/dist/runtime/RuntimeTimelineProjection.js +705 -0
- package/dist/runtime/RuntimeTimelineProjection.js.map +1 -0
- package/dist/runtime/runtimeEventTypes.d.ts +73 -0
- package/dist/runtime/runtimeEventTypes.d.ts.map +1 -0
- package/dist/runtime/runtimeEventTypes.js +2 -0
- package/dist/runtime/runtimeEventTypes.js.map +1 -0
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.d.ts +117 -0
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.d.ts.map +1 -0
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.js +214 -0
- package/dist/sdk/SdkNativeAgentTurnExecutionAdapter.js.map +1 -0
- package/dist/session/AgentSessionService.d.ts +285 -0
- package/dist/session/AgentSessionService.d.ts.map +1 -0
- package/dist/session/AgentSessionService.js +444 -0
- package/dist/session/AgentSessionService.js.map +1 -0
- package/dist/session/bufferedSessionPty.d.ts +27 -0
- package/dist/session/bufferedSessionPty.d.ts.map +1 -0
- package/dist/session/bufferedSessionPty.js +49 -0
- package/dist/session/bufferedSessionPty.js.map +1 -0
- package/dist/session/renderSupport.d.ts +53 -0
- package/dist/session/renderSupport.d.ts.map +1 -0
- package/dist/session/renderSupport.js +41 -0
- package/dist/session/renderSupport.js.map +1 -0
- package/dist/session/runtimeEventChannel.d.ts +56 -0
- package/dist/session/runtimeEventChannel.d.ts.map +1 -0
- package/dist/session/runtimeEventChannel.js +53 -0
- package/dist/session/runtimeEventChannel.js.map +1 -0
- package/dist/state/JsonAgentStateRepository.d.ts +29 -0
- package/dist/state/JsonAgentStateRepository.d.ts.map +1 -0
- package/dist/state/JsonAgentStateRepository.js +165 -0
- package/dist/state/JsonAgentStateRepository.js.map +1 -0
- package/dist/state/SqliteAgentStateRepository.d.ts +58 -0
- package/dist/state/SqliteAgentStateRepository.d.ts.map +1 -0
- package/dist/state/SqliteAgentStateRepository.js +777 -0
- package/dist/state/SqliteAgentStateRepository.js.map +1 -0
- package/dist/state/createAgentStateRepository.d.ts +4 -0
- package/dist/state/createAgentStateRepository.d.ts.map +1 -0
- package/dist/state/createAgentStateRepository.js +12 -0
- package/dist/state/createAgentStateRepository.js.map +1 -0
- package/dist/state/stateSanitizers.d.ts +7 -0
- package/dist/state/stateSanitizers.d.ts.map +1 -0
- package/dist/state/stateSanitizers.js +87 -0
- package/dist/state/stateSanitizers.js.map +1 -0
- package/dist/subagents/AcpSubagentExecutionAdapter.d.ts +12 -0
- package/dist/subagents/AcpSubagentExecutionAdapter.d.ts.map +1 -0
- package/dist/subagents/AcpSubagentExecutionAdapter.js +119 -0
- package/dist/subagents/AcpSubagentExecutionAdapter.js.map +1 -0
- package/dist/subagents/CliSubagentExecutionAdapter.d.ts +13 -0
- package/dist/subagents/CliSubagentExecutionAdapter.d.ts.map +1 -0
- package/dist/subagents/CliSubagentExecutionAdapter.js +217 -0
- package/dist/subagents/CliSubagentExecutionAdapter.js.map +1 -0
- package/dist/subagents/HostTurnSubagentExecutionAdapter.d.ts +78 -0
- package/dist/subagents/HostTurnSubagentExecutionAdapter.d.ts.map +1 -0
- package/dist/subagents/HostTurnSubagentExecutionAdapter.js +160 -0
- package/dist/subagents/HostTurnSubagentExecutionAdapter.js.map +1 -0
- package/dist/subagents/SubagentRunService.d.ts +103 -0
- package/dist/subagents/SubagentRunService.d.ts.map +1 -0
- package/dist/subagents/SubagentRunService.js +1183 -0
- package/dist/subagents/SubagentRunService.js.map +1 -0
- package/dist/subagents/SubagentScheduler.d.ts +167 -0
- package/dist/subagents/SubagentScheduler.d.ts.map +1 -0
- package/dist/subagents/SubagentScheduler.js +530 -0
- package/dist/subagents/SubagentScheduler.js.map +1 -0
- package/dist/subagents/TeamAgentRouter.d.ts +104 -0
- package/dist/subagents/TeamAgentRouter.d.ts.map +1 -0
- package/dist/subagents/TeamAgentRouter.js +435 -0
- package/dist/subagents/TeamAgentRouter.js.map +1 -0
- package/dist/subagents/capabilityMatcher.d.ts +3 -0
- package/dist/subagents/capabilityMatcher.d.ts.map +1 -0
- package/dist/subagents/capabilityMatcher.js +127 -0
- package/dist/subagents/capabilityMatcher.js.map +1 -0
- package/dist/subagents/subagentRunPort.d.ts +43 -0
- package/dist/subagents/subagentRunPort.d.ts.map +1 -0
- package/dist/subagents/subagentRunPort.js +24 -0
- package/dist/subagents/subagentRunPort.js.map +1 -0
- package/dist/subagents/subagentTypes.d.ts +330 -0
- package/dist/subagents/subagentTypes.d.ts.map +1 -0
- package/dist/subagents/subagentTypes.js +2 -0
- package/dist/subagents/subagentTypes.js.map +1 -0
- package/dist/subagents/subagentWorkspaceAuthority.d.ts +29 -0
- package/dist/subagents/subagentWorkspaceAuthority.d.ts.map +1 -0
- package/dist/subagents/subagentWorkspaceAuthority.js +173 -0
- package/dist/subagents/subagentWorkspaceAuthority.js.map +1 -0
- package/dist/support/SupportDiagnosticsService.d.ts +87 -0
- package/dist/support/SupportDiagnosticsService.d.ts.map +1 -0
- package/dist/support/SupportDiagnosticsService.js +1199 -0
- package/dist/support/SupportDiagnosticsService.js.map +1 -0
- package/dist/turns/DurableInterruptedTurnStore.d.ts +14 -0
- package/dist/turns/DurableInterruptedTurnStore.d.ts.map +1 -0
- package/dist/turns/DurableInterruptedTurnStore.js +63 -0
- package/dist/turns/DurableInterruptedTurnStore.js.map +1 -0
- package/dist/turns/interruptedTurns.d.ts +50 -0
- package/dist/turns/interruptedTurns.d.ts.map +1 -0
- package/dist/turns/interruptedTurns.js +54 -0
- package/dist/turns/interruptedTurns.js.map +1 -0
- package/dist/turns/turnAdmission.d.ts +113 -0
- package/dist/turns/turnAdmission.d.ts.map +1 -0
- package/dist/turns/turnAdmission.js +136 -0
- package/dist/turns/turnAdmission.js.map +1 -0
- package/dist/workspace/WorkspaceHostService.d.ts +126 -0
- package/dist/workspace/WorkspaceHostService.d.ts.map +1 -0
- package/dist/workspace/WorkspaceHostService.js +841 -0
- package/dist/workspace/WorkspaceHostService.js.map +1 -0
- package/dist/workspace/WorkspaceShellService.d.ts +71 -0
- package/dist/workspace/WorkspaceShellService.d.ts.map +1 -0
- package/dist/workspace/WorkspaceShellService.js +273 -0
- package/dist/workspace/WorkspaceShellService.js.map +1 -0
- package/dist/workspace/fileAssociations.d.ts +12 -0
- package/dist/workspace/fileAssociations.d.ts.map +1 -0
- package/dist/workspace/fileAssociations.js +202 -0
- package/dist/workspace/fileAssociations.js.map +1 -0
- package/dist/workspace/scrollbackBuffer.d.ts +48 -0
- package/dist/workspace/scrollbackBuffer.d.ts.map +1 -0
- package/dist/workspace/scrollbackBuffer.js +94 -0
- package/dist/workspace/scrollbackBuffer.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpSessionService.js","sourceRoot":"","sources":["../../src/acp/AcpSessionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AcpPermissionPolicyStore, AcpPermissionRule } from './AcpPermissionPolicy.js';
|
|
2
|
+
export interface DurableAcpPermissionPolicyStoreOptions {
|
|
3
|
+
/** Directory to hold `acp-permission-rules.json`. */
|
|
4
|
+
rootDirectory: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class DurableAcpPermissionPolicyStore implements AcpPermissionPolicyStore {
|
|
7
|
+
private readonly filePath;
|
|
8
|
+
private readonly rules;
|
|
9
|
+
constructor(options: DurableAcpPermissionPolicyStoreOptions);
|
|
10
|
+
list(): AcpPermissionRule[];
|
|
11
|
+
add(rule: AcpPermissionRule): void;
|
|
12
|
+
/** Removes a rule by id. Returns whether anything was removed. */
|
|
13
|
+
remove(ruleId: string): boolean;
|
|
14
|
+
private load;
|
|
15
|
+
private persist;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns the rule only if every field is exactly what it should be.
|
|
19
|
+
*
|
|
20
|
+
* Deliberately not lenient: a rule missing its `pathPrefix` is not a scoped rule
|
|
21
|
+
* with a gap, it is an UNSCOPED rule — strictly broader than what the user
|
|
22
|
+
* approved. Coercion here silently widens permission.
|
|
23
|
+
*/
|
|
24
|
+
export declare function validateRule(value: unknown): AcpPermissionRule | undefined;
|
|
25
|
+
//# sourceMappingURL=DurableAcpPermissionPolicyStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DurableAcpPermissionPolicyStore.d.ts","sourceRoot":"","sources":["../../src/acp/DurableAcpPermissionPolicyStore.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAyC3F,MAAM,WAAW,sCAAsC;IACrD,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,+BAAgC,YAAW,wBAAwB;IAC9E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAEpC,OAAO,EAAE,sCAAsC;IAO3D,IAAI,IAAI,iBAAiB,EAAE;IAI3B,GAAG,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAMlC,kEAAkE;IAClE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQ/B,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,OAAO;CAShB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAoB1E"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, renameSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { dirname, join, resolve } from 'node:path';
|
|
3
|
+
const MAX_RULES = 1_000;
|
|
4
|
+
const VALID_DECISIONS = new Set(['allow', 'deny']);
|
|
5
|
+
const VALID_KINDS = new Set([
|
|
6
|
+
'read', 'edit', 'delete', 'move', 'search', 'execute', 'think', 'fetch', 'switch_mode', 'other',
|
|
7
|
+
]);
|
|
8
|
+
export class DurableAcpPermissionPolicyStore {
|
|
9
|
+
filePath;
|
|
10
|
+
rules = [];
|
|
11
|
+
constructor(options) {
|
|
12
|
+
const root = resolve(options.rootDirectory);
|
|
13
|
+
mkdirSync(root, { recursive: true });
|
|
14
|
+
this.filePath = join(root, 'acp-permission-rules.json');
|
|
15
|
+
this.load();
|
|
16
|
+
}
|
|
17
|
+
list() {
|
|
18
|
+
return this.rules.map((rule) => ({ ...rule }));
|
|
19
|
+
}
|
|
20
|
+
add(rule) {
|
|
21
|
+
this.rules.push({ ...rule });
|
|
22
|
+
if (this.rules.length > MAX_RULES)
|
|
23
|
+
this.rules.splice(0, this.rules.length - MAX_RULES);
|
|
24
|
+
this.persist();
|
|
25
|
+
}
|
|
26
|
+
/** Removes a rule by id. Returns whether anything was removed. */
|
|
27
|
+
remove(ruleId) {
|
|
28
|
+
const index = this.rules.findIndex((rule) => rule.id === ruleId);
|
|
29
|
+
if (index === -1)
|
|
30
|
+
return false;
|
|
31
|
+
this.rules.splice(index, 1);
|
|
32
|
+
this.persist();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
load() {
|
|
36
|
+
try {
|
|
37
|
+
if (!existsSync(this.filePath))
|
|
38
|
+
return;
|
|
39
|
+
const parsed = JSON.parse(readFileSync(this.filePath, 'utf8'));
|
|
40
|
+
if (parsed.version !== 1 || !Array.isArray(parsed.rules))
|
|
41
|
+
return;
|
|
42
|
+
for (const candidate of parsed.rules.slice(0, MAX_RULES)) {
|
|
43
|
+
const rule = validateRule(candidate);
|
|
44
|
+
if (rule)
|
|
45
|
+
this.rules.push(rule);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Fail closed: an unreadable policy file grants nothing. One extra prompt
|
|
50
|
+
// is cheaper than one unintended grant.
|
|
51
|
+
this.rules.length = 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
persist() {
|
|
55
|
+
const payload = { version: 1, rules: this.rules };
|
|
56
|
+
mkdirSync(dirname(this.filePath), { recursive: true });
|
|
57
|
+
const temporary = `${this.filePath}.tmp-${process.pid}-${this.rules.length}`;
|
|
58
|
+
writeFileSync(temporary, JSON.stringify(payload, null, 2), 'utf8');
|
|
59
|
+
const descriptor = openSync(temporary, 'r+');
|
|
60
|
+
try {
|
|
61
|
+
fsyncSync(descriptor);
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
closeSync(descriptor);
|
|
65
|
+
}
|
|
66
|
+
renameSync(temporary, this.filePath);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns the rule only if every field is exactly what it should be.
|
|
71
|
+
*
|
|
72
|
+
* Deliberately not lenient: a rule missing its `pathPrefix` is not a scoped rule
|
|
73
|
+
* with a gap, it is an UNSCOPED rule — strictly broader than what the user
|
|
74
|
+
* approved. Coercion here silently widens permission.
|
|
75
|
+
*/
|
|
76
|
+
export function validateRule(value) {
|
|
77
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
78
|
+
return undefined;
|
|
79
|
+
const record = value;
|
|
80
|
+
if (typeof record.id !== 'string' || !record.id)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (typeof record.decision !== 'string' || !VALID_DECISIONS.has(record.decision))
|
|
83
|
+
return undefined;
|
|
84
|
+
if (record.kind !== undefined && (typeof record.kind !== 'string' || !VALID_KINDS.has(record.kind))) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (record.pathPrefix !== undefined && (typeof record.pathPrefix !== 'string' || !record.pathPrefix)) {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
id: record.id,
|
|
92
|
+
decision: record.decision,
|
|
93
|
+
...(typeof record.kind === 'string' ? { kind: record.kind } : {}),
|
|
94
|
+
...(typeof record.pathPrefix === 'string' ? { pathPrefix: record.pathPrefix } : {}),
|
|
95
|
+
...(typeof record.createdAt === 'number' && Number.isFinite(record.createdAt)
|
|
96
|
+
? { createdAt: record.createdAt }
|
|
97
|
+
: {}),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=DurableAcpPermissionPolicyStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DurableAcpPermissionPolicyStore.js","sourceRoot":"","sources":["../../src/acp/DurableAcpPermissionPolicyStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACP COMMAND SAFETY — the single source of truth for "is this an executable
|
|
3
|
+
* path, or a shell command line?"
|
|
4
|
+
*
|
|
5
|
+
* ## Why this module exists
|
|
6
|
+
*
|
|
7
|
+
* These rules used to be duplicated, character for character, in
|
|
8
|
+
* `AcpAgentRegistryService` (admission time) and `AcpProcessSupervisor` (launch
|
|
9
|
+
* time). Two copies of a security constant that MUST agree is a defect waiting
|
|
10
|
+
* to happen, and it happened: when the Linux blind spot below was found, it had
|
|
11
|
+
* to be found twice, and either copy could have been fixed alone leaving the
|
|
12
|
+
* other silently permissive.
|
|
13
|
+
*
|
|
14
|
+
* Admission and launch are deliberately BOTH still checked — that is defence in
|
|
15
|
+
* depth, not redundancy, because a config can reach disk by a path that never
|
|
16
|
+
* passed through the registry. What must not be duplicated is the RULE.
|
|
17
|
+
*
|
|
18
|
+
* ## The blind spot this was written to close
|
|
19
|
+
*
|
|
20
|
+
* 🔴 The original command-line rule was `/\.(?:exe|cmd|bat|ps1|sh)\s+\S/i` —
|
|
21
|
+
* it detects arguments only after a FILE EXTENSION. Windows executables end in
|
|
22
|
+
* `.exe`, so `C:\...\node.exe --version` was caught. Unix executables have no
|
|
23
|
+
* extension, so `/usr/bin/node --version` matched nothing and the rule enforced
|
|
24
|
+
* NOTHING on Linux or macOS.
|
|
25
|
+
*
|
|
26
|
+
* It stayed invisible because the test that covers it builds its input from
|
|
27
|
+
* `process.execPath`, which ends in `.exe` on Windows and nothing on Linux. The
|
|
28
|
+
* suite therefore proved the rule worked on the platform it ran on, and never
|
|
29
|
+
* on the platform it failed to protect. Packaging for Linux is what surfaced it.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ACP_SHELL_COMMAND_BASENAMES: ReadonlySet<string>;
|
|
32
|
+
export declare const ACP_SHELL_METACHARACTER_PATTERN: RegExp;
|
|
33
|
+
/** Arguments after a Windows executable extension. Cannot fire on Unix. */
|
|
34
|
+
export declare const ACP_RAW_COMMAND_LINE_PATTERN: RegExp;
|
|
35
|
+
/**
|
|
36
|
+
* The platform-neutral half: an argument beginning with `-`.
|
|
37
|
+
*
|
|
38
|
+
* Chosen because it separates the two cases that are otherwise syntactically
|
|
39
|
+
* identical — a path containing a space (`/opt/My App/tool`, legitimate) from a
|
|
40
|
+
* path with arguments appended (`/usr/bin/node --version`, a command line).
|
|
41
|
+
* Executable paths essentially never contain a ` -x` segment; command lines
|
|
42
|
+
* almost always do, because that is what arguments look like.
|
|
43
|
+
*
|
|
44
|
+
* ⚠️ Stated honestly rather than overclaimed: this does not catch a non-flag
|
|
45
|
+
* argument on an extensionless path (`/usr/bin/node script.js`). Closing that
|
|
46
|
+
* needs the filesystem to distinguish a path from a prefix, which would make a
|
|
47
|
+
* validator's verdict depend on what happens to be installed on the machine
|
|
48
|
+
* doing the validating. The launch-time check runs where the file must exist.
|
|
49
|
+
*/
|
|
50
|
+
export declare const ACP_ARGUMENT_SUFFIX_PATTERN: RegExp;
|
|
51
|
+
/** True when `command` carries arguments or shell syntax instead of being one path. */
|
|
52
|
+
export declare function isAcpShellCommandLine(command: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* True when `command` points at a shell interpreter rather than an agent binary.
|
|
55
|
+
*
|
|
56
|
+
* Splits on BOTH separators rather than using `path.basename`, which is
|
|
57
|
+
* platform-dependent: on Linux `basename('C:\\Windows\\System32\\cmd.exe')`
|
|
58
|
+
* returns the whole string, because `\` is a legal filename character there —
|
|
59
|
+
* so a Windows-shaped config would pass this check unexamined on a Linux host.
|
|
60
|
+
* A security rule must not read differently depending on where it runs.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isAcpShellExecutable(command: string): boolean;
|
|
63
|
+
//# sourceMappingURL=acpCommandSafety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpCommandSafety.d.ts","sourceRoot":"","sources":["../../src/acp/acpCommandSafety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAoB1D,CAAA;AAEF,eAAO,MAAM,+BAA+B,QAAyC,CAAA;AAErF,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,QAAmC,CAAA;AAE5E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,QAAe,CAAA;AAEvD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG7D"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACP COMMAND SAFETY — the single source of truth for "is this an executable
|
|
3
|
+
* path, or a shell command line?"
|
|
4
|
+
*
|
|
5
|
+
* ## Why this module exists
|
|
6
|
+
*
|
|
7
|
+
* These rules used to be duplicated, character for character, in
|
|
8
|
+
* `AcpAgentRegistryService` (admission time) and `AcpProcessSupervisor` (launch
|
|
9
|
+
* time). Two copies of a security constant that MUST agree is a defect waiting
|
|
10
|
+
* to happen, and it happened: when the Linux blind spot below was found, it had
|
|
11
|
+
* to be found twice, and either copy could have been fixed alone leaving the
|
|
12
|
+
* other silently permissive.
|
|
13
|
+
*
|
|
14
|
+
* Admission and launch are deliberately BOTH still checked — that is defence in
|
|
15
|
+
* depth, not redundancy, because a config can reach disk by a path that never
|
|
16
|
+
* passed through the registry. What must not be duplicated is the RULE.
|
|
17
|
+
*
|
|
18
|
+
* ## The blind spot this was written to close
|
|
19
|
+
*
|
|
20
|
+
* 🔴 The original command-line rule was `/\.(?:exe|cmd|bat|ps1|sh)\s+\S/i` —
|
|
21
|
+
* it detects arguments only after a FILE EXTENSION. Windows executables end in
|
|
22
|
+
* `.exe`, so `C:\...\node.exe --version` was caught. Unix executables have no
|
|
23
|
+
* extension, so `/usr/bin/node --version` matched nothing and the rule enforced
|
|
24
|
+
* NOTHING on Linux or macOS.
|
|
25
|
+
*
|
|
26
|
+
* It stayed invisible because the test that covers it builds its input from
|
|
27
|
+
* `process.execPath`, which ends in `.exe` on Windows and nothing on Linux. The
|
|
28
|
+
* suite therefore proved the rule worked on the platform it ran on, and never
|
|
29
|
+
* on the platform it failed to protect. Packaging for Linux is what surfaced it.
|
|
30
|
+
*/
|
|
31
|
+
export const ACP_SHELL_COMMAND_BASENAMES = new Set([
|
|
32
|
+
'cmd',
|
|
33
|
+
'cmd.exe',
|
|
34
|
+
'powershell',
|
|
35
|
+
'powershell.exe',
|
|
36
|
+
'pwsh',
|
|
37
|
+
'pwsh.exe',
|
|
38
|
+
'bash',
|
|
39
|
+
'bash.exe',
|
|
40
|
+
'sh',
|
|
41
|
+
'sh.exe',
|
|
42
|
+
// The POSIX shells the original set was missing. A host that rejects
|
|
43
|
+
// `/bin/sh` but accepts `/bin/zsh` is not enforcing anything.
|
|
44
|
+
'zsh',
|
|
45
|
+
'dash',
|
|
46
|
+
'ksh',
|
|
47
|
+
'csh',
|
|
48
|
+
'tcsh',
|
|
49
|
+
'fish',
|
|
50
|
+
'busybox',
|
|
51
|
+
]);
|
|
52
|
+
export const ACP_SHELL_METACHARACTER_PATTERN = /(?:&&|\|\||[;|<>`]|[\r\n]|\$\(|\$\{)/;
|
|
53
|
+
/** Arguments after a Windows executable extension. Cannot fire on Unix. */
|
|
54
|
+
export const ACP_RAW_COMMAND_LINE_PATTERN = /\.(?:exe|cmd|bat|ps1|sh)\s+\S/i;
|
|
55
|
+
/**
|
|
56
|
+
* The platform-neutral half: an argument beginning with `-`.
|
|
57
|
+
*
|
|
58
|
+
* Chosen because it separates the two cases that are otherwise syntactically
|
|
59
|
+
* identical — a path containing a space (`/opt/My App/tool`, legitimate) from a
|
|
60
|
+
* path with arguments appended (`/usr/bin/node --version`, a command line).
|
|
61
|
+
* Executable paths essentially never contain a ` -x` segment; command lines
|
|
62
|
+
* almost always do, because that is what arguments look like.
|
|
63
|
+
*
|
|
64
|
+
* ⚠️ Stated honestly rather than overclaimed: this does not catch a non-flag
|
|
65
|
+
* argument on an extensionless path (`/usr/bin/node script.js`). Closing that
|
|
66
|
+
* needs the filesystem to distinguish a path from a prefix, which would make a
|
|
67
|
+
* validator's verdict depend on what happens to be installed on the machine
|
|
68
|
+
* doing the validating. The launch-time check runs where the file must exist.
|
|
69
|
+
*/
|
|
70
|
+
export const ACP_ARGUMENT_SUFFIX_PATTERN = /\s-{1,2}\S/;
|
|
71
|
+
/** True when `command` carries arguments or shell syntax instead of being one path. */
|
|
72
|
+
export function isAcpShellCommandLine(command) {
|
|
73
|
+
return ACP_SHELL_METACHARACTER_PATTERN.test(command)
|
|
74
|
+
|| ACP_RAW_COMMAND_LINE_PATTERN.test(command)
|
|
75
|
+
|| ACP_ARGUMENT_SUFFIX_PATTERN.test(command);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* True when `command` points at a shell interpreter rather than an agent binary.
|
|
79
|
+
*
|
|
80
|
+
* Splits on BOTH separators rather than using `path.basename`, which is
|
|
81
|
+
* platform-dependent: on Linux `basename('C:\\Windows\\System32\\cmd.exe')`
|
|
82
|
+
* returns the whole string, because `\` is a legal filename character there —
|
|
83
|
+
* so a Windows-shaped config would pass this check unexamined on a Linux host.
|
|
84
|
+
* A security rule must not read differently depending on where it runs.
|
|
85
|
+
*/
|
|
86
|
+
export function isAcpShellExecutable(command) {
|
|
87
|
+
const lastSegment = command.split(/[\\/]/u).pop() ?? command;
|
|
88
|
+
return ACP_SHELL_COMMAND_BASENAMES.has(lastSegment.trim().toLowerCase());
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=acpCommandSafety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpCommandSafety.js","sourceRoot":"","sources":["../../src/acp/acpCommandSafety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC;IACtE,KAAK;IACL,SAAS;IACT,YAAY;IACZ,gBAAgB;IAChB,MAAM;IACN,UAAU;IACV,MAAM;IACN,UAAU;IACV,IAAI;IACJ,QAAQ;IACR,qEAAqE;IACrE,8DAA8D;IAC9D,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,SAAS;CACV,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,sCAAsC,CAAA;AAErF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAA;AAE5E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAA;AAEvD,uFAAuF;AACvF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC;WAC/C,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;WAC1C,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAA;IAC5D,OAAO,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAC1E,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AcpJsonRpcId } from './acpTypes.js';
|
|
2
|
+
export interface AcpErrorOptions {
|
|
3
|
+
code: string;
|
|
4
|
+
message: string;
|
|
5
|
+
processId?: undefined | number;
|
|
6
|
+
requestId?: undefined | AcpJsonRpcId;
|
|
7
|
+
method?: undefined | string;
|
|
8
|
+
diagnostics?: undefined | Record<string, unknown>;
|
|
9
|
+
cause?: undefined | unknown;
|
|
10
|
+
}
|
|
11
|
+
export declare class AcpError extends Error {
|
|
12
|
+
readonly code: string;
|
|
13
|
+
readonly processId?: undefined | number;
|
|
14
|
+
readonly requestId?: undefined | AcpJsonRpcId;
|
|
15
|
+
readonly method?: undefined | string;
|
|
16
|
+
readonly diagnostics?: undefined | Record<string, unknown>;
|
|
17
|
+
readonly cause?: undefined | unknown;
|
|
18
|
+
constructor(options: AcpErrorOptions);
|
|
19
|
+
}
|
|
20
|
+
export declare class AcpProtocolError extends AcpError {
|
|
21
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
22
|
+
}
|
|
23
|
+
export declare class AcpTransportError extends AcpError {
|
|
24
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
25
|
+
}
|
|
26
|
+
export declare class AcpTimeoutError extends AcpError {
|
|
27
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
28
|
+
}
|
|
29
|
+
export declare class AcpCancelledError extends AcpError {
|
|
30
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
31
|
+
}
|
|
32
|
+
export declare class AcpProcessExitedError extends AcpError {
|
|
33
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
34
|
+
}
|
|
35
|
+
export declare class AcpInvalidMessageError extends AcpError {
|
|
36
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
37
|
+
}
|
|
38
|
+
export declare class AcpUnsupportedMethodError extends AcpError {
|
|
39
|
+
constructor(method: string, options?: Partial<AcpErrorOptions>);
|
|
40
|
+
}
|
|
41
|
+
export declare class AcpVersionMismatchError extends AcpError {
|
|
42
|
+
constructor(message: string, options?: Partial<AcpErrorOptions>);
|
|
43
|
+
}
|
|
44
|
+
export declare function acpJsonRpcErrorCode(error: unknown): number;
|
|
45
|
+
export declare function acpErrorCode(error: unknown): string;
|
|
46
|
+
export declare function acpSafeErrorMessage(error: unknown): string;
|
|
47
|
+
//# sourceMappingURL=acpErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpErrors.d.ts","sourceRoot":"","sources":["../../src/acp/acpErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,CAAA;IACpC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC3B,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;CAC5B;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1D,SAAkB,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAA;gBAEjC,OAAO,EAAE,eAAe;CAUrC;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,qBAAa,qBAAsB,SAAQ,QAAQ;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,qBAAa,sBAAuB,SAAQ,QAAQ;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,qBAAa,yBAA0B,SAAQ,QAAQ;gBACzC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAQnE;AAED,qBAAa,uBAAwB,SAAQ,QAAQ;gBACvC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM;CAGpE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAU1D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAI1D"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export class AcpError extends Error {
|
|
2
|
+
code;
|
|
3
|
+
processId;
|
|
4
|
+
requestId;
|
|
5
|
+
method;
|
|
6
|
+
diagnostics;
|
|
7
|
+
cause;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options.message);
|
|
10
|
+
this.name = new.target.name;
|
|
11
|
+
this.code = options.code;
|
|
12
|
+
this.processId = options.processId;
|
|
13
|
+
this.requestId = options.requestId;
|
|
14
|
+
this.method = options.method;
|
|
15
|
+
this.diagnostics = options.diagnostics;
|
|
16
|
+
this.cause = options.cause;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class AcpProtocolError extends AcpError {
|
|
20
|
+
constructor(message, options = {}) {
|
|
21
|
+
super({ ...options, code: options.code || 'ACP_PROTOCOL_ERROR', message });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class AcpTransportError extends AcpError {
|
|
25
|
+
constructor(message, options = {}) {
|
|
26
|
+
super({ ...options, code: options.code || 'ACP_TRANSPORT_ERROR', message });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class AcpTimeoutError extends AcpError {
|
|
30
|
+
constructor(message, options = {}) {
|
|
31
|
+
super({ ...options, code: options.code || 'ACP_TIMEOUT', message });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export class AcpCancelledError extends AcpError {
|
|
35
|
+
constructor(message, options = {}) {
|
|
36
|
+
super({ ...options, code: options.code || 'ACP_CANCELLED', message });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class AcpProcessExitedError extends AcpError {
|
|
40
|
+
constructor(message, options = {}) {
|
|
41
|
+
super({ ...options, code: options.code || 'ACP_PROCESS_EXITED', message });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class AcpInvalidMessageError extends AcpError {
|
|
45
|
+
constructor(message, options = {}) {
|
|
46
|
+
super({ ...options, code: options.code || 'ACP_INVALID_MESSAGE', message });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class AcpUnsupportedMethodError extends AcpError {
|
|
50
|
+
constructor(method, options = {}) {
|
|
51
|
+
super({
|
|
52
|
+
...options,
|
|
53
|
+
code: options.code || 'ACP_UNSUPPORTED_METHOD',
|
|
54
|
+
method,
|
|
55
|
+
message: `ACP method is not supported by XENO Hub in this milestone: ${method}`,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export class AcpVersionMismatchError extends AcpError {
|
|
60
|
+
constructor(message, options = {}) {
|
|
61
|
+
super({ ...options, code: options.code || 'ACP_VERSION_MISMATCH', message });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export function acpJsonRpcErrorCode(error) {
|
|
65
|
+
if (error instanceof AcpUnsupportedMethodError)
|
|
66
|
+
return -32601;
|
|
67
|
+
if (error instanceof AcpInvalidMessageError)
|
|
68
|
+
return -32700;
|
|
69
|
+
if (error instanceof AcpProtocolError)
|
|
70
|
+
return -32600;
|
|
71
|
+
if (error instanceof AcpCancelledError)
|
|
72
|
+
return -32800;
|
|
73
|
+
if (error instanceof AcpTimeoutError)
|
|
74
|
+
return -32001;
|
|
75
|
+
if (error instanceof AcpVersionMismatchError)
|
|
76
|
+
return -32002;
|
|
77
|
+
if (error instanceof AcpProcessExitedError)
|
|
78
|
+
return -32003;
|
|
79
|
+
if (error instanceof AcpError)
|
|
80
|
+
return -32000;
|
|
81
|
+
return -32603;
|
|
82
|
+
}
|
|
83
|
+
export function acpErrorCode(error) {
|
|
84
|
+
return error instanceof AcpError ? error.code : 'ACP_INTERNAL_ERROR';
|
|
85
|
+
}
|
|
86
|
+
export function acpSafeErrorMessage(error) {
|
|
87
|
+
if (error instanceof AcpError)
|
|
88
|
+
return error.message;
|
|
89
|
+
if (error instanceof Error && error.message)
|
|
90
|
+
return error.message;
|
|
91
|
+
return 'Unexpected ACP error.';
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=acpErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpErrors.js","sourceRoot":"","sources":["../../src/acp/acpErrors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AcpAgentCertification, AcpAgentConfig, AcpAgentConfigView } from './acpTypes.js';
|
|
2
|
+
export declare function redactAcpText(value: string, maxLength?: number): string;
|
|
3
|
+
export declare function redactAcpArgs(args: string[]): string[];
|
|
4
|
+
export declare function redactAcpPath(value: string | undefined): string | undefined;
|
|
5
|
+
export declare function redactAcpEnvKeys(env: Record<string, string> | undefined): string[];
|
|
6
|
+
export declare function redactAcpAgentConfig(config: AcpAgentConfig): AcpAgentConfigView;
|
|
7
|
+
export declare function redactAcpCertification(certification: AcpAgentCertification | undefined): AcpAgentCertification | undefined;
|
|
8
|
+
export declare function boundedPush<T>(items: T[], value: T, maxItems: number): T[];
|
|
9
|
+
//# sourceMappingURL=acpRedaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpRedaction.d.ts","sourceRoot":"","sources":["../../src/acp/acpRedaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAa9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CAKrE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOtD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG3E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAElF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,CAc/E;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,qBAAqB,GAAG,SAAS,GAAG,qBAAqB,GAAG,SAAS,CAW1H;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAG1E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { basename } from 'path';
|
|
2
|
+
const SECRET_PATTERNS = [
|
|
3
|
+
/\bBearer\s+[A-Za-z0-9._~+/=-]+/gi,
|
|
4
|
+
/\bsk-[A-Za-z0-9_-]{12,}/gi,
|
|
5
|
+
/\bxai-[A-Za-z0-9_-]{12,}/gi,
|
|
6
|
+
/\bghp_[A-Za-z0-9_]{12,}/gi,
|
|
7
|
+
/\bAKIA[0-9A-Z]{16}\b/g,
|
|
8
|
+
/\b(token|secret|password|cookie|authorization|api[-_]?key|credential)\b\s*[:=]\s*[^\s,;]+/gi,
|
|
9
|
+
];
|
|
10
|
+
const SECRET_ARG_HINT = /\b(token|secret|password|cookie|authorization|api[-_]?key|credential|key)\b/i;
|
|
11
|
+
export function redactAcpText(value, maxLength = 4000) {
|
|
12
|
+
let result = value;
|
|
13
|
+
for (const pattern of SECRET_PATTERNS)
|
|
14
|
+
result = result.replace(pattern, '[redacted]');
|
|
15
|
+
if (result.length > maxLength)
|
|
16
|
+
result = `${result.slice(0, maxLength)}...[truncated]`;
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
export function redactAcpArgs(args) {
|
|
20
|
+
return args.map((arg, index) => {
|
|
21
|
+
if (SECRET_ARG_HINT.test(arg))
|
|
22
|
+
return '[redacted]';
|
|
23
|
+
const previous = args[index - 1];
|
|
24
|
+
if (previous && SECRET_ARG_HINT.test(previous))
|
|
25
|
+
return '[redacted]';
|
|
26
|
+
return redactAcpText(arg, 500);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export function redactAcpPath(value) {
|
|
30
|
+
if (!value)
|
|
31
|
+
return undefined;
|
|
32
|
+
return basename(value) || '[redacted-path]';
|
|
33
|
+
}
|
|
34
|
+
export function redactAcpEnvKeys(env) {
|
|
35
|
+
return Object.keys(env || {}).sort();
|
|
36
|
+
}
|
|
37
|
+
export function redactAcpAgentConfig(config) {
|
|
38
|
+
return {
|
|
39
|
+
id: redactAcpText(config.id, 200),
|
|
40
|
+
name: redactAcpText(config.name, 500),
|
|
41
|
+
command: redactAcpPath(config.command) || '[redacted-command]',
|
|
42
|
+
args: redactAcpArgs(config.args),
|
|
43
|
+
cwd: redactAcpPath(config.cwd),
|
|
44
|
+
envKeys: redactAcpEnvKeys(config.env),
|
|
45
|
+
enabled: config.enabled,
|
|
46
|
+
trustLevel: config.trustLevel,
|
|
47
|
+
certification: redactAcpCertification(config.certification),
|
|
48
|
+
createdAt: config.createdAt,
|
|
49
|
+
updatedAt: config.updatedAt,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export function redactAcpCertification(certification) {
|
|
53
|
+
if (!certification)
|
|
54
|
+
return undefined;
|
|
55
|
+
return {
|
|
56
|
+
status: certification.status,
|
|
57
|
+
certifiedAt: certification.certifiedAt,
|
|
58
|
+
certifiedBy: certification.certifiedBy,
|
|
59
|
+
protocolVersion: certification.protocolVersion,
|
|
60
|
+
agentName: certification.agentName ? redactAcpText(certification.agentName, 200) : undefined,
|
|
61
|
+
agentVersion: certification.agentVersion ? redactAcpText(certification.agentVersion, 120) : undefined,
|
|
62
|
+
notes: certification.notes ? redactAcpText(certification.notes, 500) : undefined,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function boundedPush(items, value, maxItems) {
|
|
66
|
+
const next = [...items, value];
|
|
67
|
+
return next.length > maxItems ? next.slice(next.length - maxItems) : next;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=acpRedaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpRedaction.js","sourceRoot":"","sources":["../../src/acp/acpRedaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AcpSessionResumeState } from './acpTypes.js';
|
|
2
|
+
export declare const XENO_ACP_SESSION_RESUME_META_KEY = "xeno.dev/session-resume";
|
|
3
|
+
/**
|
|
4
|
+
* Accept only the bounded, non-secret continuation identifier defined by XENO ACP.
|
|
5
|
+
* Arbitrary provider metadata is never persisted or reflected back into `session/resume`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizeAcpSessionResumeState(value: unknown): AcpSessionResumeState | undefined;
|
|
8
|
+
//# sourceMappingURL=acpSessionResume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acpSessionResume.d.ts","sourceRoot":"","sources":["../../src/acp/acpSessionResume.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,eAAO,MAAM,gCAAgC,4BAA4B,CAAA;AAMzE;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,CAqBhG"}
|