@trenchwork/coder 1.3.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/LICENSE +16 -0
- package/README.md +173 -0
- package/agents/trenchwork-code.rules.json +199 -0
- package/dist/bin/deepseek.d.ts +3 -0
- package/dist/bin/deepseek.d.ts.map +1 -0
- package/dist/bin/deepseek.js +23 -0
- package/dist/bin/deepseek.js.map +1 -0
- package/dist/capabilities/baseCapability.d.ts +72 -0
- package/dist/capabilities/baseCapability.d.ts.map +1 -0
- package/dist/capabilities/baseCapability.js +183 -0
- package/dist/capabilities/baseCapability.js.map +1 -0
- package/dist/capabilities/bashCapability.d.ts +13 -0
- package/dist/capabilities/bashCapability.d.ts.map +1 -0
- package/dist/capabilities/bashCapability.js +24 -0
- package/dist/capabilities/bashCapability.js.map +1 -0
- package/dist/capabilities/editCapability.d.ts +17 -0
- package/dist/capabilities/editCapability.d.ts.map +1 -0
- package/dist/capabilities/editCapability.js +27 -0
- package/dist/capabilities/editCapability.js.map +1 -0
- package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
- package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
- package/dist/capabilities/enhancedGitCapability.js +220 -0
- package/dist/capabilities/enhancedGitCapability.js.map +1 -0
- package/dist/capabilities/filesystemCapability.d.ts +13 -0
- package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
- package/dist/capabilities/filesystemCapability.js +24 -0
- package/dist/capabilities/filesystemCapability.js.map +1 -0
- package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
- package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
- package/dist/capabilities/gitHistoryCapability.js +184 -0
- package/dist/capabilities/gitHistoryCapability.js.map +1 -0
- package/dist/capabilities/hitlCapability.d.ts +18 -0
- package/dist/capabilities/hitlCapability.d.ts.map +1 -0
- package/dist/capabilities/hitlCapability.js +29 -0
- package/dist/capabilities/hitlCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +11 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +16 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/memoryCapability.d.ts +10 -0
- package/dist/capabilities/memoryCapability.d.ts.map +1 -0
- package/dist/capabilities/memoryCapability.js +22 -0
- package/dist/capabilities/memoryCapability.js.map +1 -0
- package/dist/capabilities/notebookCapability.d.ts +6 -0
- package/dist/capabilities/notebookCapability.d.ts.map +1 -0
- package/dist/capabilities/notebookCapability.js +17 -0
- package/dist/capabilities/notebookCapability.js.map +1 -0
- package/dist/capabilities/searchCapability.d.ts +19 -0
- package/dist/capabilities/searchCapability.d.ts.map +1 -0
- package/dist/capabilities/searchCapability.js +29 -0
- package/dist/capabilities/searchCapability.js.map +1 -0
- package/dist/capabilities/skillCapability.d.ts +6 -0
- package/dist/capabilities/skillCapability.d.ts.map +1 -0
- package/dist/capabilities/skillCapability.js +17 -0
- package/dist/capabilities/skillCapability.js.map +1 -0
- package/dist/capabilities/todoCapability.d.ts +11 -0
- package/dist/capabilities/todoCapability.d.ts.map +1 -0
- package/dist/capabilities/todoCapability.js +22 -0
- package/dist/capabilities/todoCapability.js.map +1 -0
- package/dist/capabilities/toolManifest.d.ts +3 -0
- package/dist/capabilities/toolManifest.d.ts.map +1 -0
- package/dist/capabilities/toolManifest.js +163 -0
- package/dist/capabilities/toolManifest.js.map +1 -0
- package/dist/capabilities/toolRegistry.d.ts +25 -0
- package/dist/capabilities/toolRegistry.d.ts.map +1 -0
- package/dist/capabilities/toolRegistry.js +150 -0
- package/dist/capabilities/toolRegistry.js.map +1 -0
- package/dist/capabilities/unifiedCodingCapability.d.ts +62 -0
- package/dist/capabilities/unifiedCodingCapability.d.ts.map +1 -0
- package/dist/capabilities/unifiedCodingCapability.js +790 -0
- package/dist/capabilities/unifiedCodingCapability.js.map +1 -0
- package/dist/capabilities/webCapability.d.ts +23 -0
- package/dist/capabilities/webCapability.d.ts.map +1 -0
- package/dist/capabilities/webCapability.js +33 -0
- package/dist/capabilities/webCapability.js.map +1 -0
- package/dist/config.d.ts +25 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +181 -0
- package/dist/config.js.map +1 -0
- package/dist/contracts/agent-profiles.schema.json +25 -0
- package/dist/contracts/agent-schemas.json +158 -0
- package/dist/contracts/models.schema.json +9 -0
- package/dist/contracts/module-schema.json +367 -0
- package/dist/contracts/schemas/agent-profile.schema.json +157 -0
- package/dist/contracts/schemas/agent-rules.schema.json +238 -0
- package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
- package/dist/contracts/schemas/agent.schema.json +90 -0
- package/dist/contracts/schemas/tool-selection.schema.json +174 -0
- package/dist/contracts/tools.schema.json +42 -0
- package/dist/contracts/unified-schema.json +40 -0
- package/dist/contracts/v1/agent.d.ts +225 -0
- package/dist/contracts/v1/agent.d.ts.map +1 -0
- package/dist/contracts/v1/agent.js +8 -0
- package/dist/contracts/v1/agent.js.map +1 -0
- package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
- package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
- package/dist/contracts/v1/agentProfileManifest.js +9 -0
- package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
- package/dist/contracts/v1/agentRules.d.ts +60 -0
- package/dist/contracts/v1/agentRules.d.ts.map +1 -0
- package/dist/contracts/v1/agentRules.js +10 -0
- package/dist/contracts/v1/agentRules.js.map +1 -0
- package/dist/contracts/v1/provider.d.ts +149 -0
- package/dist/contracts/v1/provider.d.ts.map +1 -0
- package/dist/contracts/v1/provider.js +7 -0
- package/dist/contracts/v1/provider.js.map +1 -0
- package/dist/contracts/v1/tool.d.ts +136 -0
- package/dist/contracts/v1/tool.d.ts.map +1 -0
- package/dist/contracts/v1/tool.js +7 -0
- package/dist/contracts/v1/tool.js.map +1 -0
- package/dist/contracts/v1/toolAccess.d.ts +43 -0
- package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
- package/dist/contracts/v1/toolAccess.js +9 -0
- package/dist/contracts/v1/toolAccess.js.map +1 -0
- package/dist/core/adversarial.d.ts +38 -0
- package/dist/core/adversarial.d.ts.map +1 -0
- package/dist/core/adversarial.js +106 -0
- package/dist/core/adversarial.js.map +1 -0
- package/dist/core/adversarialCorrection.d.ts +22 -0
- package/dist/core/adversarialCorrection.d.ts.map +1 -0
- package/dist/core/adversarialCorrection.js +25 -0
- package/dist/core/adversarialCorrection.js.map +1 -0
- package/dist/core/agent.d.ts +331 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +1637 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agentProfileManifest.d.ts +3 -0
- package/dist/core/agentProfileManifest.d.ts.map +1 -0
- package/dist/core/agentProfileManifest.js +188 -0
- package/dist/core/agentProfileManifest.js.map +1 -0
- package/dist/core/agentProfiles.d.ts +22 -0
- package/dist/core/agentProfiles.d.ts.map +1 -0
- package/dist/core/agentProfiles.js +35 -0
- package/dist/core/agentProfiles.js.map +1 -0
- package/dist/core/agentRegistry.d.ts +111 -0
- package/dist/core/agentRegistry.d.ts.map +1 -0
- package/dist/core/agentRegistry.js +229 -0
- package/dist/core/agentRegistry.js.map +1 -0
- package/dist/core/agentRulebook.d.ts +11 -0
- package/dist/core/agentRulebook.d.ts.map +1 -0
- package/dist/core/agentRulebook.js +136 -0
- package/dist/core/agentRulebook.js.map +1 -0
- package/dist/core/agentSchemaLoader.d.ts +131 -0
- package/dist/core/agentSchemaLoader.d.ts.map +1 -0
- package/dist/core/agentSchemaLoader.js +235 -0
- package/dist/core/agentSchemaLoader.js.map +1 -0
- package/dist/core/aiErrorFixer.d.ts +57 -0
- package/dist/core/aiErrorFixer.d.ts.map +1 -0
- package/dist/core/aiErrorFixer.js +214 -0
- package/dist/core/aiErrorFixer.js.map +1 -0
- package/dist/core/bashCommandGuidance.d.ts +16 -0
- package/dist/core/bashCommandGuidance.d.ts.map +1 -0
- package/dist/core/bashCommandGuidance.js +40 -0
- package/dist/core/bashCommandGuidance.js.map +1 -0
- package/dist/core/compactionNote.d.ts +13 -0
- package/dist/core/compactionNote.d.ts.map +1 -0
- package/dist/core/compactionNote.js +13 -0
- package/dist/core/compactionNote.js.map +1 -0
- package/dist/core/constants.d.ts +31 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +62 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/contextManager.d.ts +271 -0
- package/dist/core/contextManager.d.ts.map +1 -0
- package/dist/core/contextManager.js +1076 -0
- package/dist/core/contextManager.js.map +1 -0
- package/dist/core/contextUsage.d.ts +28 -0
- package/dist/core/contextUsage.d.ts.map +1 -0
- package/dist/core/contextUsage.js +62 -0
- package/dist/core/contextUsage.js.map +1 -0
- package/dist/core/contextWindow.d.ts +42 -0
- package/dist/core/contextWindow.d.ts.map +1 -0
- package/dist/core/contextWindow.js +127 -0
- package/dist/core/contextWindow.js.map +1 -0
- package/dist/core/customCommands.d.ts +19 -0
- package/dist/core/customCommands.d.ts.map +1 -0
- package/dist/core/customCommands.js +85 -0
- package/dist/core/customCommands.js.map +1 -0
- package/dist/core/diffPanel.d.ts +30 -0
- package/dist/core/diffPanel.d.ts.map +1 -0
- package/dist/core/diffPanel.js +48 -0
- package/dist/core/diffPanel.js.map +1 -0
- package/dist/core/errorClassification.d.ts +44 -0
- package/dist/core/errorClassification.d.ts.map +1 -0
- package/dist/core/errorClassification.js +333 -0
- package/dist/core/errorClassification.js.map +1 -0
- package/dist/core/errors/apiKeyErrors.d.ts +11 -0
- package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
- package/dist/core/errors/apiKeyErrors.js +159 -0
- package/dist/core/errors/apiKeyErrors.js.map +1 -0
- package/dist/core/errors/errorTypes.d.ts +111 -0
- package/dist/core/errors/errorTypes.d.ts.map +1 -0
- package/dist/core/errors/errorTypes.js +345 -0
- package/dist/core/errors/errorTypes.js.map +1 -0
- package/dist/core/errors/index.d.ts +50 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +156 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/networkErrors.d.ts +14 -0
- package/dist/core/errors/networkErrors.d.ts.map +1 -0
- package/dist/core/errors/networkErrors.js +53 -0
- package/dist/core/errors/networkErrors.js.map +1 -0
- package/dist/core/errors/safetyValidator.d.ts +109 -0
- package/dist/core/errors/safetyValidator.d.ts.map +1 -0
- package/dist/core/errors/safetyValidator.js +272 -0
- package/dist/core/errors/safetyValidator.js.map +1 -0
- package/dist/core/errors.d.ts +4 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +33 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/failureRegistry.d.ts +30 -0
- package/dist/core/failureRegistry.d.ts.map +1 -0
- package/dist/core/failureRegistry.js +74 -0
- package/dist/core/failureRegistry.js.map +1 -0
- package/dist/core/fileMentions.d.ts +40 -0
- package/dist/core/fileMentions.d.ts.map +1 -0
- package/dist/core/fileMentions.js +136 -0
- package/dist/core/fileMentions.js.map +1 -0
- package/dist/core/finalResponseFormatter.d.ts +10 -0
- package/dist/core/finalResponseFormatter.d.ts.map +1 -0
- package/dist/core/finalResponseFormatter.js +14 -0
- package/dist/core/finalResponseFormatter.js.map +1 -0
- package/dist/core/guardrails.d.ts +146 -0
- package/dist/core/guardrails.d.ts.map +1 -0
- package/dist/core/guardrails.js +361 -0
- package/dist/core/guardrails.js.map +1 -0
- package/dist/core/hitl.d.ts +119 -0
- package/dist/core/hitl.d.ts.map +1 -0
- package/dist/core/hitl.js +396 -0
- package/dist/core/hitl.js.map +1 -0
- package/dist/core/hooks.d.ts +95 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +236 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/hostedAuth.d.ts +88 -0
- package/dist/core/hostedAuth.d.ts.map +1 -0
- package/dist/core/hostedAuth.js +219 -0
- package/dist/core/hostedAuth.js.map +1 -0
- package/dist/core/inputProtection.d.ts +122 -0
- package/dist/core/inputProtection.d.ts.map +1 -0
- package/dist/core/inputProtection.js +422 -0
- package/dist/core/inputProtection.js.map +1 -0
- package/dist/core/modelDiscovery.d.ts +102 -0
- package/dist/core/modelDiscovery.d.ts.map +1 -0
- package/dist/core/modelDiscovery.js +416 -0
- package/dist/core/modelDiscovery.js.map +1 -0
- package/dist/core/multilinePasteHandler.d.ts +35 -0
- package/dist/core/multilinePasteHandler.d.ts.map +1 -0
- package/dist/core/multilinePasteHandler.js +81 -0
- package/dist/core/multilinePasteHandler.js.map +1 -0
- package/dist/core/permissionMode.d.ts +40 -0
- package/dist/core/permissionMode.d.ts.map +1 -0
- package/dist/core/permissionMode.js +86 -0
- package/dist/core/permissionMode.js.map +1 -0
- package/dist/core/postWriteDiagnostics.d.ts +32 -0
- package/dist/core/postWriteDiagnostics.d.ts.map +1 -0
- package/dist/core/postWriteDiagnostics.js +127 -0
- package/dist/core/postWriteDiagnostics.js.map +1 -0
- package/dist/core/preferences.d.ts +66 -0
- package/dist/core/preferences.d.ts.map +1 -0
- package/dist/core/preferences.js +310 -0
- package/dist/core/preferences.js.map +1 -0
- package/dist/core/quota.d.ts +61 -0
- package/dist/core/quota.d.ts.map +1 -0
- package/dist/core/quota.js +104 -0
- package/dist/core/quota.js.map +1 -0
- package/dist/core/quotaErrors.d.ts +42 -0
- package/dist/core/quotaErrors.d.ts.map +1 -0
- package/dist/core/quotaErrors.js +86 -0
- package/dist/core/quotaErrors.js.map +1 -0
- package/dist/core/refusalDetection.d.ts +2 -0
- package/dist/core/refusalDetection.d.ts.map +1 -0
- package/dist/core/refusalDetection.js +51 -0
- package/dist/core/refusalDetection.js.map +1 -0
- package/dist/core/relativeTime.d.ts +8 -0
- package/dist/core/relativeTime.d.ts.map +1 -0
- package/dist/core/relativeTime.js +29 -0
- package/dist/core/relativeTime.js.map +1 -0
- package/dist/core/resultVerification.d.ts +48 -0
- package/dist/core/resultVerification.d.ts.map +1 -0
- package/dist/core/resultVerification.js +127 -0
- package/dist/core/resultVerification.js.map +1 -0
- package/dist/core/rewind.d.ts +14 -0
- package/dist/core/rewind.d.ts.map +1 -0
- package/dist/core/rewind.js +25 -0
- package/dist/core/rewind.js.map +1 -0
- package/dist/core/schemaValidator.d.ts +49 -0
- package/dist/core/schemaValidator.d.ts.map +1 -0
- package/dist/core/schemaValidator.js +234 -0
- package/dist/core/schemaValidator.js.map +1 -0
- package/dist/core/secretStore.d.ts +59 -0
- package/dist/core/secretStore.d.ts.map +1 -0
- package/dist/core/secretStore.js +278 -0
- package/dist/core/secretStore.js.map +1 -0
- package/dist/core/sessionStorage.d.ts +10 -0
- package/dist/core/sessionStorage.d.ts.map +1 -0
- package/dist/core/sessionStorage.js +46 -0
- package/dist/core/sessionStorage.js.map +1 -0
- package/dist/core/sessionStore.d.ts +35 -0
- package/dist/core/sessionStore.d.ts.map +1 -0
- package/dist/core/sessionStore.js +190 -0
- package/dist/core/sessionStore.js.map +1 -0
- package/dist/core/shutdown.d.ts +34 -0
- package/dist/core/shutdown.d.ts.map +1 -0
- package/dist/core/shutdown.js +186 -0
- package/dist/core/shutdown.js.map +1 -0
- package/dist/core/slashCommands.d.ts +38 -0
- package/dist/core/slashCommands.d.ts.map +1 -0
- package/dist/core/slashCommands.js +72 -0
- package/dist/core/slashCommands.js.map +1 -0
- package/dist/core/subAgentNote.d.ts +15 -0
- package/dist/core/subAgentNote.d.ts.map +1 -0
- package/dist/core/subAgentNote.js +16 -0
- package/dist/core/subAgentNote.js.map +1 -0
- package/dist/core/sudoPasswordManager.d.ts +52 -0
- package/dist/core/sudoPasswordManager.d.ts.map +1 -0
- package/dist/core/sudoPasswordManager.js +115 -0
- package/dist/core/sudoPasswordManager.js.map +1 -0
- package/dist/core/taskCompletionDetector.d.ts +117 -0
- package/dist/core/taskCompletionDetector.d.ts.map +1 -0
- package/dist/core/taskCompletionDetector.js +532 -0
- package/dist/core/taskCompletionDetector.js.map +1 -0
- package/dist/core/testFailureMonitor.d.ts +67 -0
- package/dist/core/testFailureMonitor.d.ts.map +1 -0
- package/dist/core/testFailureMonitor.js +262 -0
- package/dist/core/testFailureMonitor.js.map +1 -0
- package/dist/core/thinkingVerbs.d.ts +31 -0
- package/dist/core/thinkingVerbs.d.ts.map +1 -0
- package/dist/core/thinkingVerbs.js +58 -0
- package/dist/core/thinkingVerbs.js.map +1 -0
- package/dist/core/toolPreconditions.d.ts +34 -0
- package/dist/core/toolPreconditions.d.ts.map +1 -0
- package/dist/core/toolPreconditions.js +242 -0
- package/dist/core/toolPreconditions.js.map +1 -0
- package/dist/core/toolRuntime.d.ts +193 -0
- package/dist/core/toolRuntime.d.ts.map +1 -0
- package/dist/core/toolRuntime.js +526 -0
- package/dist/core/toolRuntime.js.map +1 -0
- package/dist/core/turnGovernor.d.ts +63 -0
- package/dist/core/turnGovernor.d.ts.map +1 -0
- package/dist/core/turnGovernor.js +94 -0
- package/dist/core/turnGovernor.js.map +1 -0
- package/dist/core/types/utilityTypes.d.ts +183 -0
- package/dist/core/types/utilityTypes.d.ts.map +1 -0
- package/dist/core/types/utilityTypes.js +273 -0
- package/dist/core/types/utilityTypes.js.map +1 -0
- package/dist/core/types.d.ts +334 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +76 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/updateChecker.d.ts +148 -0
- package/dist/core/updateChecker.d.ts.map +1 -0
- package/dist/core/updateChecker.js +605 -0
- package/dist/core/updateChecker.js.map +1 -0
- package/dist/core/usage.d.ts +28 -0
- package/dist/core/usage.d.ts.map +1 -0
- package/dist/core/usage.js +77 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts +47 -0
- package/dist/headless/interactiveShell.d.ts.map +1 -0
- package/dist/headless/interactiveShell.js +2495 -0
- package/dist/headless/interactiveShell.js.map +1 -0
- package/dist/leanAgent.d.ts +73 -0
- package/dist/leanAgent.d.ts.map +1 -0
- package/dist/leanAgent.js +177 -0
- package/dist/leanAgent.js.map +1 -0
- package/dist/plugins/providers/deepseek/index.d.ts +12 -0
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
- package/dist/plugins/providers/deepseek/index.js +123 -0
- package/dist/plugins/providers/deepseek/index.js.map +1 -0
- package/dist/plugins/providers/index.d.ts +2 -0
- package/dist/plugins/providers/index.d.ts.map +1 -0
- package/dist/plugins/providers/index.js +10 -0
- package/dist/plugins/providers/index.js.map +1 -0
- package/dist/providers/baseProvider.d.ts +140 -0
- package/dist/providers/baseProvider.d.ts.map +1 -0
- package/dist/providers/baseProvider.js +230 -0
- package/dist/providers/baseProvider.js.map +1 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts +70 -0
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
- package/dist/providers/openaiChatCompletionsProvider.js +971 -0
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
- package/dist/providers/providerFactory.d.ts +22 -0
- package/dist/providers/providerFactory.d.ts.map +1 -0
- package/dist/providers/providerFactory.js +25 -0
- package/dist/providers/providerFactory.js.map +1 -0
- package/dist/providers/resilientProvider.d.ts +96 -0
- package/dist/providers/resilientProvider.d.ts.map +1 -0
- package/dist/providers/resilientProvider.js +251 -0
- package/dist/providers/resilientProvider.js.map +1 -0
- package/dist/runtime/agentController.d.ts +137 -0
- package/dist/runtime/agentController.d.ts.map +1 -0
- package/dist/runtime/agentController.js +784 -0
- package/dist/runtime/agentController.js.map +1 -0
- package/dist/runtime/agentHost.d.ts +61 -0
- package/dist/runtime/agentHost.d.ts.map +1 -0
- package/dist/runtime/agentHost.js +158 -0
- package/dist/runtime/agentHost.js.map +1 -0
- package/dist/runtime/agentSession.d.ts +49 -0
- package/dist/runtime/agentSession.d.ts.map +1 -0
- package/dist/runtime/agentSession.js +218 -0
- package/dist/runtime/agentSession.js.map +1 -0
- package/dist/runtime/agentSpawningWiring.d.ts +32 -0
- package/dist/runtime/agentSpawningWiring.d.ts.map +1 -0
- package/dist/runtime/agentSpawningWiring.js +114 -0
- package/dist/runtime/agentSpawningWiring.js.map +1 -0
- package/dist/runtime/node.d.ts +7 -0
- package/dist/runtime/node.d.ts.map +1 -0
- package/dist/runtime/node.js +50 -0
- package/dist/runtime/node.js.map +1 -0
- package/dist/runtime/universal.d.ts +18 -0
- package/dist/runtime/universal.d.ts.map +1 -0
- package/dist/runtime/universal.js +21 -0
- package/dist/runtime/universal.js.map +1 -0
- package/dist/shell/liveStatus.d.ts +27 -0
- package/dist/shell/liveStatus.d.ts.map +1 -0
- package/dist/shell/liveStatus.js +53 -0
- package/dist/shell/liveStatus.js.map +1 -0
- package/dist/shell/systemPrompt.d.ts +12 -0
- package/dist/shell/systemPrompt.d.ts.map +1 -0
- package/dist/shell/systemPrompt.js +16 -0
- package/dist/shell/systemPrompt.js.map +1 -0
- package/dist/shell/toolPresentation.d.ts +54 -0
- package/dist/shell/toolPresentation.d.ts.map +1 -0
- package/dist/shell/toolPresentation.js +334 -0
- package/dist/shell/toolPresentation.js.map +1 -0
- package/dist/tools/bashTools.d.ts +11 -0
- package/dist/tools/bashTools.d.ts.map +1 -0
- package/dist/tools/bashTools.js +785 -0
- package/dist/tools/bashTools.js.map +1 -0
- package/dist/tools/diffUtils.d.ts +43 -0
- package/dist/tools/diffUtils.d.ts.map +1 -0
- package/dist/tools/diffUtils.js +607 -0
- package/dist/tools/diffUtils.js.map +1 -0
- package/dist/tools/editTools.d.ts +29 -0
- package/dist/tools/editTools.d.ts.map +1 -0
- package/dist/tools/editTools.js +792 -0
- package/dist/tools/editTools.js.map +1 -0
- package/dist/tools/fileChangeTracker.d.ts +47 -0
- package/dist/tools/fileChangeTracker.d.ts.map +1 -0
- package/dist/tools/fileChangeTracker.js +154 -0
- package/dist/tools/fileChangeTracker.js.map +1 -0
- package/dist/tools/fileReadTracker.d.ts +69 -0
- package/dist/tools/fileReadTracker.d.ts.map +1 -0
- package/dist/tools/fileReadTracker.js +213 -0
- package/dist/tools/fileReadTracker.js.map +1 -0
- package/dist/tools/fileTools.d.ts +3 -0
- package/dist/tools/fileTools.d.ts.map +1 -0
- package/dist/tools/fileTools.js +389 -0
- package/dist/tools/fileTools.js.map +1 -0
- package/dist/tools/grepTools.d.ts +3 -0
- package/dist/tools/grepTools.d.ts.map +1 -0
- package/dist/tools/grepTools.js +137 -0
- package/dist/tools/grepTools.js.map +1 -0
- package/dist/tools/hitlTools.d.ts +7 -0
- package/dist/tools/hitlTools.d.ts.map +1 -0
- package/dist/tools/hitlTools.js +185 -0
- package/dist/tools/hitlTools.js.map +1 -0
- package/dist/tools/memoryTools.d.ts +27 -0
- package/dist/tools/memoryTools.d.ts.map +1 -0
- package/dist/tools/memoryTools.js +197 -0
- package/dist/tools/memoryTools.js.map +1 -0
- package/dist/tools/notebookTools.d.ts +20 -0
- package/dist/tools/notebookTools.d.ts.map +1 -0
- package/dist/tools/notebookTools.js +140 -0
- package/dist/tools/notebookTools.js.map +1 -0
- package/dist/tools/searchTools.d.ts +12 -0
- package/dist/tools/searchTools.d.ts.map +1 -0
- package/dist/tools/searchTools.js +414 -0
- package/dist/tools/searchTools.js.map +1 -0
- package/dist/tools/skillTools.d.ts +24 -0
- package/dist/tools/skillTools.d.ts.map +1 -0
- package/dist/tools/skillTools.js +140 -0
- package/dist/tools/skillTools.js.map +1 -0
- package/dist/tools/todoTools.d.ts +23 -0
- package/dist/tools/todoTools.d.ts.map +1 -0
- package/dist/tools/todoTools.js +120 -0
- package/dist/tools/todoTools.js.map +1 -0
- package/dist/tools/webTools.d.ts +26 -0
- package/dist/tools/webTools.d.ts.map +1 -0
- package/dist/tools/webTools.js +467 -0
- package/dist/tools/webTools.js.map +1 -0
- package/dist/ui/ink/App.d.ts +53 -0
- package/dist/ui/ink/App.d.ts.map +1 -0
- package/dist/ui/ink/App.js +13 -0
- package/dist/ui/ink/App.js.map +1 -0
- package/dist/ui/ink/ChatStatic.d.ts +30 -0
- package/dist/ui/ink/ChatStatic.d.ts.map +1 -0
- package/dist/ui/ink/ChatStatic.js +83 -0
- package/dist/ui/ink/ChatStatic.js.map +1 -0
- package/dist/ui/ink/InkPromptController.d.ts +321 -0
- package/dist/ui/ink/InkPromptController.d.ts.map +1 -0
- package/dist/ui/ink/InkPromptController.js +667 -0
- package/dist/ui/ink/InkPromptController.js.map +1 -0
- package/dist/ui/ink/Menu.d.ts +21 -0
- package/dist/ui/ink/Menu.d.ts.map +1 -0
- package/dist/ui/ink/Menu.js +61 -0
- package/dist/ui/ink/Menu.js.map +1 -0
- package/dist/ui/ink/Prompt.d.ts +47 -0
- package/dist/ui/ink/Prompt.d.ts.map +1 -0
- package/dist/ui/ink/Prompt.js +571 -0
- package/dist/ui/ink/Prompt.js.map +1 -0
- package/dist/ui/ink/StatusLine.d.ts +35 -0
- package/dist/ui/ink/StatusLine.d.ts.map +1 -0
- package/dist/ui/ink/StatusLine.js +66 -0
- package/dist/ui/ink/StatusLine.js.map +1 -0
- package/dist/ui/ink/pasteBuffer.d.ts +44 -0
- package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
- package/dist/ui/ink/pasteBuffer.js +73 -0
- package/dist/ui/ink/pasteBuffer.js.map +1 -0
- package/dist/ui/theme.d.ts +351 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +435 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/utils/analytics.d.ts +2 -0
- package/dist/utils/analytics.d.ts.map +1 -0
- package/dist/utils/analytics.js +51 -0
- package/dist/utils/analytics.js.map +1 -0
- package/dist/utils/asyncUtils.d.ts +95 -0
- package/dist/utils/asyncUtils.d.ts.map +1 -0
- package/dist/utils/asyncUtils.js +286 -0
- package/dist/utils/asyncUtils.js.map +1 -0
- package/dist/utils/debugLogger.d.ts +6 -0
- package/dist/utils/debugLogger.d.ts.map +1 -0
- package/dist/utils/debugLogger.js +39 -0
- package/dist/utils/debugLogger.js.map +1 -0
- package/dist/utils/errorUtils.d.ts +12 -0
- package/dist/utils/errorUtils.d.ts.map +1 -0
- package/dist/utils/errorUtils.js +83 -0
- package/dist/utils/errorUtils.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +10 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +78 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/packageInfo.d.ts +14 -0
- package/dist/utils/packageInfo.d.ts.map +1 -0
- package/dist/utils/packageInfo.js +45 -0
- package/dist/utils/packageInfo.js.map +1 -0
- package/dist/utils/planFormatter.d.ts +34 -0
- package/dist/utils/planFormatter.d.ts.map +1 -0
- package/dist/utils/planFormatter.js +141 -0
- package/dist/utils/planFormatter.js.map +1 -0
- package/dist/utils/securityUtils.d.ts +132 -0
- package/dist/utils/securityUtils.d.ts.map +1 -0
- package/dist/utils/securityUtils.js +324 -0
- package/dist/utils/securityUtils.js.map +1 -0
- package/dist/utils/statusReporter.d.ts +6 -0
- package/dist/utils/statusReporter.d.ts.map +1 -0
- package/dist/utils/statusReporter.js +26 -0
- package/dist/utils/statusReporter.js.map +1 -0
- package/dist/workspace.d.ts +8 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +135 -0
- package/dist/workspace.js.map +1 -0
- package/dist/workspace.validator.d.ts +49 -0
- package/dist/workspace.validator.d.ts.map +1 -0
- package/dist/workspace.validator.js +215 -0
- package/dist/workspace.validator.js.map +1 -0
- package/package.json +116 -0
- package/scripts/postinstall.cjs +56 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider Contract v1.0
|
|
3
|
+
*
|
|
4
|
+
* Stable interface for LLM provider integration.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PROVIDER_CONTRACT_VERSION = "1.0.0";
|
|
7
|
+
/**
|
|
8
|
+
* Provider configuration
|
|
9
|
+
*/
|
|
10
|
+
export interface ProviderConfig {
|
|
11
|
+
provider: string;
|
|
12
|
+
model: string;
|
|
13
|
+
apiKey?: string;
|
|
14
|
+
baseURL?: string;
|
|
15
|
+
temperature?: number;
|
|
16
|
+
maxTokens?: number;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Conversation message structure
|
|
21
|
+
*/
|
|
22
|
+
export type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
|
|
23
|
+
export interface BaseMessage {
|
|
24
|
+
role: MessageRole;
|
|
25
|
+
content: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SystemMessage extends BaseMessage {
|
|
28
|
+
role: 'system';
|
|
29
|
+
}
|
|
30
|
+
export interface UserMessage extends BaseMessage {
|
|
31
|
+
role: 'user';
|
|
32
|
+
}
|
|
33
|
+
export interface ToolCall {
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
arguments: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
export interface AssistantMessage extends BaseMessage {
|
|
39
|
+
role: 'assistant';
|
|
40
|
+
toolCalls?: ToolCall[];
|
|
41
|
+
}
|
|
42
|
+
export interface ToolMessage extends BaseMessage {
|
|
43
|
+
role: 'tool';
|
|
44
|
+
name: string;
|
|
45
|
+
toolCallId: string;
|
|
46
|
+
}
|
|
47
|
+
export type Message = SystemMessage | UserMessage | AssistantMessage | ToolMessage;
|
|
48
|
+
/**
|
|
49
|
+
* Tool definition for providers
|
|
50
|
+
*/
|
|
51
|
+
export interface ProviderToolDefinition {
|
|
52
|
+
name: string;
|
|
53
|
+
description: string;
|
|
54
|
+
parameters?: {
|
|
55
|
+
type: 'object';
|
|
56
|
+
properties?: Record<string, unknown>;
|
|
57
|
+
required?: string[];
|
|
58
|
+
[key: string]: unknown;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Provider response types
|
|
63
|
+
*/
|
|
64
|
+
export interface ProviderUsage {
|
|
65
|
+
inputTokens?: number;
|
|
66
|
+
outputTokens?: number;
|
|
67
|
+
totalTokens?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface ProviderMessageResponse {
|
|
70
|
+
type: 'message';
|
|
71
|
+
content: string;
|
|
72
|
+
usage?: ProviderUsage | null;
|
|
73
|
+
}
|
|
74
|
+
export interface ProviderToolCallsResponse {
|
|
75
|
+
type: 'tool_calls';
|
|
76
|
+
toolCalls: ToolCall[];
|
|
77
|
+
content?: string;
|
|
78
|
+
usage?: ProviderUsage | null;
|
|
79
|
+
}
|
|
80
|
+
export type ProviderResponse = ProviderMessageResponse | ProviderToolCallsResponse;
|
|
81
|
+
/**
|
|
82
|
+
* Streaming response
|
|
83
|
+
*/
|
|
84
|
+
export interface StreamChunk {
|
|
85
|
+
type: 'content' | 'reasoning' | 'tool_call' | 'usage' | 'done';
|
|
86
|
+
content?: string;
|
|
87
|
+
toolCall?: Partial<ToolCall>;
|
|
88
|
+
usage?: ProviderUsage;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Provider interface
|
|
92
|
+
*/
|
|
93
|
+
export interface ILLMProvider {
|
|
94
|
+
readonly id: string;
|
|
95
|
+
readonly model: string;
|
|
96
|
+
/**
|
|
97
|
+
* Generate a completion (non-streaming)
|
|
98
|
+
*/
|
|
99
|
+
generate(messages: Message[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
|
|
100
|
+
/**
|
|
101
|
+
* Generate a streaming completion
|
|
102
|
+
*/
|
|
103
|
+
generateStream?(messages: Message[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
|
|
104
|
+
/**
|
|
105
|
+
* Get provider capabilities
|
|
106
|
+
*/
|
|
107
|
+
getCapabilities(): ProviderCapabilities;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Provider capabilities
|
|
111
|
+
*/
|
|
112
|
+
export interface ProviderCapabilities {
|
|
113
|
+
streaming: boolean;
|
|
114
|
+
toolCalling: boolean;
|
|
115
|
+
vision: boolean;
|
|
116
|
+
functionCalling: boolean;
|
|
117
|
+
maxTokens: number;
|
|
118
|
+
supportedModalities: ('text' | 'image' | 'audio')[];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Provider factory
|
|
122
|
+
*/
|
|
123
|
+
export type ProviderFactory = (config: ProviderConfig) => ILLMProvider;
|
|
124
|
+
/**
|
|
125
|
+
* Provider registry interface
|
|
126
|
+
*/
|
|
127
|
+
export interface IProviderRegistry {
|
|
128
|
+
/**
|
|
129
|
+
* Register a provider factory
|
|
130
|
+
*/
|
|
131
|
+
register(providerId: string, factory: ProviderFactory): void;
|
|
132
|
+
/**
|
|
133
|
+
* Unregister a provider
|
|
134
|
+
*/
|
|
135
|
+
unregister(providerId: string): void;
|
|
136
|
+
/**
|
|
137
|
+
* Create a provider instance
|
|
138
|
+
*/
|
|
139
|
+
create(config: ProviderConfig): ILLMProvider;
|
|
140
|
+
/**
|
|
141
|
+
* Check if provider is registered
|
|
142
|
+
*/
|
|
143
|
+
has(providerId: string): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* List all registered providers
|
|
146
|
+
*/
|
|
147
|
+
list(): string[];
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/contracts/v1/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/contracts/v1/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Contract v1.0
|
|
3
|
+
*
|
|
4
|
+
* Stable interface for tool registration and execution.
|
|
5
|
+
*/
|
|
6
|
+
export declare const TOOL_CONTRACT_VERSION = "1.0.0";
|
|
7
|
+
/**
|
|
8
|
+
* JSON Schema type definitions
|
|
9
|
+
*/
|
|
10
|
+
export interface JSONSchemaProperty {
|
|
11
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
12
|
+
description?: string;
|
|
13
|
+
enum?: string[];
|
|
14
|
+
items?: JSONSchemaProperty;
|
|
15
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
16
|
+
}
|
|
17
|
+
export interface JSONSchemaObject {
|
|
18
|
+
type: 'object';
|
|
19
|
+
description?: string;
|
|
20
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
21
|
+
required?: string[];
|
|
22
|
+
additionalProperties?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Tool definition
|
|
26
|
+
*/
|
|
27
|
+
export interface IToolDefinition {
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
parameters?: JSONSchemaObject;
|
|
31
|
+
category?: string;
|
|
32
|
+
metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Tool execution request
|
|
36
|
+
*/
|
|
37
|
+
export interface ToolExecutionRequest {
|
|
38
|
+
toolName: string;
|
|
39
|
+
executionId: string;
|
|
40
|
+
parameters: Record<string, unknown>;
|
|
41
|
+
context?: ToolExecutionContext;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Tool execution response
|
|
45
|
+
*/
|
|
46
|
+
export interface ToolExecutionResponse {
|
|
47
|
+
executionId: string;
|
|
48
|
+
success: boolean;
|
|
49
|
+
result?: string;
|
|
50
|
+
error?: {
|
|
51
|
+
message: string;
|
|
52
|
+
code?: string;
|
|
53
|
+
details?: unknown;
|
|
54
|
+
};
|
|
55
|
+
metadata?: {
|
|
56
|
+
elapsedMs?: number;
|
|
57
|
+
cached?: boolean;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Tool execution context
|
|
62
|
+
*/
|
|
63
|
+
export interface ToolExecutionContext {
|
|
64
|
+
workingDirectory?: string;
|
|
65
|
+
environment?: Record<string, string>;
|
|
66
|
+
user?: {
|
|
67
|
+
id: string;
|
|
68
|
+
permissions?: string[];
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Tool suite definition
|
|
73
|
+
*/
|
|
74
|
+
export interface IToolSuite {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string;
|
|
77
|
+
description?: string;
|
|
78
|
+
version?: string;
|
|
79
|
+
tools: IToolDefinition[];
|
|
80
|
+
metadata?: Record<string, unknown>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Tool handler function
|
|
84
|
+
*/
|
|
85
|
+
export type ToolHandler = (parameters: Record<string, unknown>, context?: ToolExecutionContext) => Promise<string> | string;
|
|
86
|
+
/**
|
|
87
|
+
* Tool executor interface
|
|
88
|
+
*/
|
|
89
|
+
export interface IToolExecutor {
|
|
90
|
+
/**
|
|
91
|
+
* Execute a tool
|
|
92
|
+
*/
|
|
93
|
+
execute(request: ToolExecutionRequest): Promise<ToolExecutionResponse>;
|
|
94
|
+
/**
|
|
95
|
+
* Check if a tool is available
|
|
96
|
+
*/
|
|
97
|
+
hasToolAvailable(toolName: string): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* List all available tools
|
|
100
|
+
*/
|
|
101
|
+
listTools(): IToolDefinition[];
|
|
102
|
+
/**
|
|
103
|
+
* Get tool definition
|
|
104
|
+
*/
|
|
105
|
+
getToolDefinition(toolName: string): IToolDefinition | null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Tool registry interface
|
|
109
|
+
*/
|
|
110
|
+
export interface IToolRegistry {
|
|
111
|
+
/**
|
|
112
|
+
* Register a tool suite
|
|
113
|
+
*/
|
|
114
|
+
registerSuite(suite: IToolSuite): void;
|
|
115
|
+
/**
|
|
116
|
+
* Unregister a tool suite
|
|
117
|
+
*/
|
|
118
|
+
unregisterSuite(suiteId: string): void;
|
|
119
|
+
/**
|
|
120
|
+
* Register a single tool
|
|
121
|
+
*/
|
|
122
|
+
registerTool(suiteId: string, definition: IToolDefinition, handler: ToolHandler): void;
|
|
123
|
+
/**
|
|
124
|
+
* Unregister a single tool
|
|
125
|
+
*/
|
|
126
|
+
unregisterTool(toolName: string): void;
|
|
127
|
+
/**
|
|
128
|
+
* Get all registered suites
|
|
129
|
+
*/
|
|
130
|
+
getSuites(): IToolSuite[];
|
|
131
|
+
/**
|
|
132
|
+
* Get a specific suite
|
|
133
|
+
*/
|
|
134
|
+
getSuite(suiteId: string): IToolSuite | null;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/contracts/v1/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/contracts/v1/tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Selection Contract v1.0
|
|
3
|
+
*
|
|
4
|
+
* Enumerates the toggleable tool suites that can be surfaced to the agent at
|
|
5
|
+
* runtime plus optional presets that frontends can expose as one-click
|
|
6
|
+
* configurations.
|
|
7
|
+
*/
|
|
8
|
+
export declare const TOOL_SELECTION_CONTRACT_VERSION = "1.0.0";
|
|
9
|
+
export type ToolPermissionScope = 'filesystem:read' | 'filesystem:write' | 'process:exec' | 'network:web' | 'network:api' | 'web:fetch' | 'web:search' | 'analysis:code' | 'analysis:quality' | 'analysis:dependency' | 'analysis:testing' | 'analysis:security' | 'analysis:notebook' | 'planning:refactor' | 'integrations:mcp' | 'external:web-search';
|
|
10
|
+
export type ToolSelectionTarget = 'cli' | 'browser' | 'http' | 'worker' | 'service';
|
|
11
|
+
export interface ToolAvailabilityOption {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
category?: string;
|
|
16
|
+
defaultEnabled: boolean;
|
|
17
|
+
pluginIds: string[];
|
|
18
|
+
requiresSecret?: string;
|
|
19
|
+
scopes?: ToolPermissionScope[];
|
|
20
|
+
metadata?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolSelectionPreset {
|
|
23
|
+
id: string;
|
|
24
|
+
label: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
enabled?: string[];
|
|
27
|
+
disabled?: string[];
|
|
28
|
+
locked?: string[];
|
|
29
|
+
appliesTo?: ToolSelectionTarget[];
|
|
30
|
+
metadata?: Record<string, unknown>;
|
|
31
|
+
notes?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ToolSelectionManifest {
|
|
34
|
+
contractVersion: string;
|
|
35
|
+
profile: string;
|
|
36
|
+
version: string;
|
|
37
|
+
label?: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
options: ToolAvailabilityOption[];
|
|
40
|
+
presets?: ToolSelectionPreset[];
|
|
41
|
+
metadata?: Record<string, unknown>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=toolAccess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolAccess.d.ts","sourceRoot":"","sources":["../../../src/contracts/v1/toolAccess.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,+BAA+B,UAAU,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,aAAa,GACb,WAAW,GACX,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Selection Contract v1.0
|
|
3
|
+
*
|
|
4
|
+
* Enumerates the toggleable tool suites that can be surfaced to the agent at
|
|
5
|
+
* runtime plus optional presets that frontends can expose as one-click
|
|
6
|
+
* configurations.
|
|
7
|
+
*/
|
|
8
|
+
export const TOOL_SELECTION_CONTRACT_VERSION = '1.0.0';
|
|
9
|
+
//# sourceMappingURL=toolAccess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolAccess.js","sourceRoot":"","sources":["../../../src/contracts/v1/toolAccess.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adversarial verifier — the shared critic used across the agent. One
|
|
3
|
+
* model-backed "try to refute this" pass, reused by:
|
|
4
|
+
* (a) the agent loop's always-on review of a finished answer
|
|
5
|
+
* (reviewDraft), and
|
|
6
|
+
* (b) the pre-flight critique of high-impact tool calls
|
|
7
|
+
* (isHighImpactTool + critiqueToolCall).
|
|
8
|
+
*
|
|
9
|
+
* Gated by the `adversarial` feature flag (default on; /adversarial
|
|
10
|
+
* toggles it). Fail-open everywhere: a critic error or unparseable reply
|
|
11
|
+
* never blocks real work — it just lets the action through unannotated.
|
|
12
|
+
*/
|
|
13
|
+
import type { LLMProvider } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Whether the adversarial verifier is enabled (feature flag, default on).
|
|
16
|
+
* Forced off under NODE_ENV=test so it never adds a critic model call to a
|
|
17
|
+
* deterministic agent/tool test turn; on by default everywhere else.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isAdversarialEnabled(): boolean;
|
|
20
|
+
export declare function getDefaultCriticProvider(): Promise<LLMProvider>;
|
|
21
|
+
export interface DraftReview {
|
|
22
|
+
ok: boolean;
|
|
23
|
+
findings: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function reviewDraft(provider: LLMProvider, input: {
|
|
26
|
+
request: string;
|
|
27
|
+
actions: string;
|
|
28
|
+
draft: string;
|
|
29
|
+
}): Promise<DraftReview>;
|
|
30
|
+
/** High-impact = mutates the filesystem or runs a shell command. Read-only tools skip the critic. */
|
|
31
|
+
export declare function isHighImpactTool(name: string): boolean;
|
|
32
|
+
export interface ToolVerdict {
|
|
33
|
+
decision: 'allow' | 'block';
|
|
34
|
+
reason: string;
|
|
35
|
+
riskLevel: 'low' | 'medium' | 'high';
|
|
36
|
+
}
|
|
37
|
+
export declare function critiqueToolCall(provider: LLMProvider, toolName: string, args: unknown): Promise<ToolVerdict>;
|
|
38
|
+
//# sourceMappingURL=adversarial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../../src/core/adversarial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AAGnE;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAmBD,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAarE;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,WAAW,CAAC,CAYtB;AASD,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACtC;AAKD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,WAAW,CAAC,CAkBtB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adversarial verifier — the shared critic used across the agent. One
|
|
3
|
+
* model-backed "try to refute this" pass, reused by:
|
|
4
|
+
* (a) the agent loop's always-on review of a finished answer
|
|
5
|
+
* (reviewDraft), and
|
|
6
|
+
* (b) the pre-flight critique of high-impact tool calls
|
|
7
|
+
* (isHighImpactTool + critiqueToolCall).
|
|
8
|
+
*
|
|
9
|
+
* Gated by the `adversarial` feature flag (default on; /adversarial
|
|
10
|
+
* toggles it). Fail-open everywhere: a critic error or unparseable reply
|
|
11
|
+
* never blocks real work — it just lets the action through unannotated.
|
|
12
|
+
*/
|
|
13
|
+
import { loadFeatureFlags } from './preferences.js';
|
|
14
|
+
/**
|
|
15
|
+
* Whether the adversarial verifier is enabled (feature flag, default on).
|
|
16
|
+
* Forced off under NODE_ENV=test so it never adds a critic model call to a
|
|
17
|
+
* deterministic agent/tool test turn; on by default everywhere else.
|
|
18
|
+
*/
|
|
19
|
+
export function isAdversarialEnabled() {
|
|
20
|
+
if (process.env['NODE_ENV'] === 'test')
|
|
21
|
+
return false;
|
|
22
|
+
try {
|
|
23
|
+
return loadFeatureFlags().adversarial !== false;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** One non-streaming, tool-less completion. Returns trimmed text ('' on a non-message reply). */
|
|
30
|
+
async function ask(provider, system, user) {
|
|
31
|
+
const messages = [
|
|
32
|
+
{ role: 'system', content: system },
|
|
33
|
+
{ role: 'user', content: user },
|
|
34
|
+
];
|
|
35
|
+
const res = await provider.generate(messages, []);
|
|
36
|
+
if (res.type !== 'message')
|
|
37
|
+
return '';
|
|
38
|
+
return (res.content || '').trim();
|
|
39
|
+
}
|
|
40
|
+
// Standalone provider for callers that don't already hold one (the tool
|
|
41
|
+
// pre-flight). Built once and reused; deterministic (temperature 0). The
|
|
42
|
+
// provider/profile/config modules are imported lazily so this file's static
|
|
43
|
+
// graph stays free of `import.meta` (config.ts) — that keeps it loadable
|
|
44
|
+
// under the jest/babel CJS transform for unit tests.
|
|
45
|
+
let cachedProvider = null;
|
|
46
|
+
export async function getDefaultCriticProvider() {
|
|
47
|
+
if (cachedProvider)
|
|
48
|
+
return cachedProvider;
|
|
49
|
+
const [factory, plugins, config, profiles] = await Promise.all([
|
|
50
|
+
import('../providers/providerFactory.js'),
|
|
51
|
+
import('../plugins/providers/index.js'),
|
|
52
|
+
import('../config.js'),
|
|
53
|
+
import('./agentProfiles.js'),
|
|
54
|
+
]);
|
|
55
|
+
plugins.registerDefaultProviderPlugins();
|
|
56
|
+
const profile = profiles.listAgentProfiles()[0];
|
|
57
|
+
const cfg = config.resolveProfileConfig(profile ? profile.name : 'trenchwork-code', null);
|
|
58
|
+
cachedProvider = factory.createProvider({ provider: cfg.provider, model: cfg.model, temperature: 0, maxTokens: 600 });
|
|
59
|
+
return cachedProvider;
|
|
60
|
+
}
|
|
61
|
+
const REVIEW_SYSTEM = 'You are a terse adversarial reviewer of an AI coding agent. Given the user request, the actions the agent took, and its draft final answer, find concrete defects: claims the answer makes that the actions do not support, work it says it did but did not, untested or risky changes, and direct mismatches between the actions and the answer. If the answer is sound and fully supported, reply with exactly "LGTM" and nothing else. Otherwise reply with a short bullet list of the concrete defects only — no preamble.';
|
|
62
|
+
export async function reviewDraft(provider, input) {
|
|
63
|
+
try {
|
|
64
|
+
const user = `# User request\n${input.request}\n\n` +
|
|
65
|
+
`# Actions the agent took\n${input.actions || '(none)'}\n\n` +
|
|
66
|
+
`# Draft final answer\n${input.draft}`;
|
|
67
|
+
const out = await ask(provider, REVIEW_SYSTEM, user);
|
|
68
|
+
const ok = out.length === 0 || /^lgtm\b/i.test(out);
|
|
69
|
+
return { ok, findings: ok ? '' : out };
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return { ok: true, findings: '' };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// ── (b) pre-flight critique of a high-impact tool call ────────────────
|
|
76
|
+
const HIGH_IMPACT = new Set([
|
|
77
|
+
'write', 'write_file', 'edit', 'edit_file', 'multiedit', 'multi_edit',
|
|
78
|
+
'bash', 'execute_bash', 'run_command', 'shell',
|
|
79
|
+
]);
|
|
80
|
+
/** High-impact = mutates the filesystem or runs a shell command. Read-only tools skip the critic. */
|
|
81
|
+
export function isHighImpactTool(name) {
|
|
82
|
+
return HIGH_IMPACT.has((name || '').toLowerCase());
|
|
83
|
+
}
|
|
84
|
+
const TOOL_SYSTEM = 'You are an adversarial safety/correctness reviewer for a coding agent about to run a high-impact action (a file write/edit or a shell command). Block ONLY clearly destructive, dangerous, or obviously wrong actions — e.g. rm -rf of unrelated paths, truncating a file to garbage, leaking secrets, irreversible data loss outside the working set. Respond with ONLY a compact JSON object: {"decision":"allow"|"block","reason":string,"riskLevel":"low"|"medium"|"high"}. Default to allow; do not block ordinary edits or normal commands.';
|
|
85
|
+
export async function critiqueToolCall(provider, toolName, args) {
|
|
86
|
+
try {
|
|
87
|
+
const user = `Tool: ${toolName}\nArguments:\n${JSON.stringify(args, null, 2).slice(0, 4000)}`;
|
|
88
|
+
const out = await ask(provider, TOOL_SYSTEM, user);
|
|
89
|
+
const match = out.match(/\{[\s\S]*\}/);
|
|
90
|
+
if (!match)
|
|
91
|
+
return { decision: 'allow', reason: '', riskLevel: 'low' };
|
|
92
|
+
const parsed = JSON.parse(match[0]);
|
|
93
|
+
if (parsed.decision === 'block') {
|
|
94
|
+
return {
|
|
95
|
+
decision: 'block',
|
|
96
|
+
reason: parsed.reason || 'flagged by adversarial pre-flight',
|
|
97
|
+
riskLevel: parsed.riskLevel || 'high',
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return { decision: 'allow', reason: parsed.reason || '', riskLevel: parsed.riskLevel || 'low' };
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return { decision: 'allow', reason: '', riskLevel: 'low' };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=adversarial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../../src/core/adversarial.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adversarial auto-correction.
|
|
3
|
+
*
|
|
4
|
+
* The always-on adversarial reviewer (agent.ts maybeAdversarialReview) was
|
|
5
|
+
* advisory-only: it refuted a draft, appended a "⚠ Adversarial review:" caveat,
|
|
6
|
+
* and returned — the critic spoke and was ignored. This closes the loop: a
|
|
7
|
+
* FAILED review is signalled to the shell, whose auto-continue loop re-runs the
|
|
8
|
+
* FULL tool-executing agent with a correction prompt (so it edits + re-verifies,
|
|
9
|
+
* not just re-describes), bounded by the turn governor + a per-request cap so it
|
|
10
|
+
* can't loop forever.
|
|
11
|
+
*
|
|
12
|
+
* Pure → unit-testable.
|
|
13
|
+
*/
|
|
14
|
+
export declare const MAX_ADVERSARIAL_CORRECTIONS = 2;
|
|
15
|
+
/**
|
|
16
|
+
* Build the correction prompt from reviewer findings. Prefixed IMPORTANT: so the
|
|
17
|
+
* auto-continue loop treats it as a continuation (not a fresh user request that
|
|
18
|
+
* would reset the governor), and it instructs the agent to FIX + re-verify
|
|
19
|
+
* rather than restate the problem.
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildAdversarialCorrectionPrompt(findings: string): string;
|
|
22
|
+
//# sourceMappingURL=adversarialCorrection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adversarialCorrection.d.ts","sourceRoot":"","sources":["../../src/core/adversarialCorrection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adversarial auto-correction.
|
|
3
|
+
*
|
|
4
|
+
* The always-on adversarial reviewer (agent.ts maybeAdversarialReview) was
|
|
5
|
+
* advisory-only: it refuted a draft, appended a "⚠ Adversarial review:" caveat,
|
|
6
|
+
* and returned — the critic spoke and was ignored. This closes the loop: a
|
|
7
|
+
* FAILED review is signalled to the shell, whose auto-continue loop re-runs the
|
|
8
|
+
* FULL tool-executing agent with a correction prompt (so it edits + re-verifies,
|
|
9
|
+
* not just re-describes), bounded by the turn governor + a per-request cap so it
|
|
10
|
+
* can't loop forever.
|
|
11
|
+
*
|
|
12
|
+
* Pure → unit-testable.
|
|
13
|
+
*/
|
|
14
|
+
export const MAX_ADVERSARIAL_CORRECTIONS = 2;
|
|
15
|
+
/**
|
|
16
|
+
* Build the correction prompt from reviewer findings. Prefixed IMPORTANT: so the
|
|
17
|
+
* auto-continue loop treats it as a continuation (not a fresh user request that
|
|
18
|
+
* would reset the governor), and it instructs the agent to FIX + re-verify
|
|
19
|
+
* rather than restate the problem.
|
|
20
|
+
*/
|
|
21
|
+
export function buildAdversarialCorrectionPrompt(findings) {
|
|
22
|
+
const f = (findings ?? '').trim();
|
|
23
|
+
return `IMPORTANT: Do NOT create docs/markdown. An adversarial review of your last answer found problems:\n${f}\n\nFix them now — edit the actual file(s), then re-run the relevant test/build/command to confirm. Do not just describe the fix or restate the issue; make the change and verify it.`;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=adversarialCorrection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adversarialCorrection.js","sourceRoot":"","sources":["../../src/core/adversarialCorrection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,QAAgB;IAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,sGAAsG,CAAC,uLAAuL,CAAC;AACxS,CAAC"}
|