actoviq-agent-sdk 0.4.21 → 0.4.22
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/README-zh.md +50 -113
- package/README.md +51 -164
- package/assets/hadamard-icon.ico +0 -0
- package/assets/hadamard-icon.png +0 -0
- package/bin/hadamard-gui.js +31 -12
- package/dist/src/codeIntel/codeIntelligenceService.d.ts +16 -0
- package/dist/src/codeIntel/codeIntelligenceService.d.ts.map +1 -1
- package/dist/src/codeIntel/codeIntelligenceService.js +87 -2
- package/dist/src/codeIntel/codeIntelligenceService.js.map +1 -1
- package/dist/src/codeIntel/codeIntelligenceTools.d.ts.map +1 -1
- package/dist/src/codeIntel/codeIntelligenceTools.js +6 -0
- package/dist/src/codeIntel/codeIntelligenceTools.js.map +1 -1
- package/dist/src/codeIntel/index.d.ts +1 -0
- package/dist/src/codeIntel/index.d.ts.map +1 -1
- package/dist/src/codeIntel/index.js +1 -0
- package/dist/src/codeIntel/index.js.map +1 -1
- package/dist/src/codeIntel/languageServerPresets.d.ts +13 -0
- package/dist/src/codeIntel/languageServerPresets.d.ts.map +1 -0
- package/dist/src/codeIntel/languageServerPresets.js +51 -0
- package/dist/src/codeIntel/languageServerPresets.js.map +1 -0
- package/dist/src/codeIntel/languageServerRegistry.d.ts +1 -0
- package/dist/src/codeIntel/languageServerRegistry.d.ts.map +1 -1
- package/dist/src/codeIntel/languageServerRegistry.js +2 -2
- package/dist/src/codeIntel/languageServerRegistry.js.map +1 -1
- package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -1
- package/dist/src/config/resolveRuntimeConfig.js +5 -0
- package/dist/src/config/resolveRuntimeConfig.js.map +1 -1
- package/dist/src/extensions/builtInExtensions.d.ts +61 -0
- package/dist/src/extensions/builtInExtensions.d.ts.map +1 -0
- package/dist/src/extensions/builtInExtensions.js +218 -0
- package/dist/src/extensions/builtInExtensions.js.map +1 -0
- package/dist/src/extensions/filterOutputPolicy.d.ts +21 -0
- package/dist/src/extensions/filterOutputPolicy.d.ts.map +1 -0
- package/dist/src/extensions/filterOutputPolicy.js +121 -0
- package/dist/src/extensions/filterOutputPolicy.js.map +1 -0
- package/dist/src/extensions/securityPolicy.d.ts +27 -0
- package/dist/src/extensions/securityPolicy.d.ts.map +1 -0
- package/dist/src/extensions/securityPolicy.js +238 -0
- package/dist/src/extensions/securityPolicy.js.map +1 -0
- package/dist/src/extensions/sessionCostTracker.d.ts +63 -0
- package/dist/src/extensions/sessionCostTracker.d.ts.map +1 -0
- package/dist/src/extensions/sessionCostTracker.js +213 -0
- package/dist/src/extensions/sessionCostTracker.js.map +1 -0
- package/dist/src/extensions/taskNotifications.d.ts +31 -0
- package/dist/src/extensions/taskNotifications.d.ts.map +1 -0
- package/dist/src/extensions/taskNotifications.js +50 -0
- package/dist/src/extensions/taskNotifications.js.map +1 -0
- package/dist/src/extensions/usageBar.d.ts +35 -0
- package/dist/src/extensions/usageBar.d.ts.map +1 -0
- package/dist/src/extensions/usageBar.js +67 -0
- package/dist/src/extensions/usageBar.js.map +1 -0
- package/dist/src/gui/contextRailStore.d.ts +13 -0
- package/dist/src/gui/contextRailStore.d.ts.map +1 -1
- package/dist/src/gui/contextRailStore.js +16 -0
- package/dist/src/gui/contextRailStore.js.map +1 -1
- package/dist/src/gui/electronMain.js +45 -5
- package/dist/src/gui/electronMain.js.map +1 -1
- package/dist/src/gui/guiDesignClientScript.d.ts.map +1 -1
- package/dist/src/gui/guiDesignClientScript.js +31 -0
- package/dist/src/gui/guiDesignClientScript.js.map +1 -1
- package/dist/src/gui/guiUsageRoutingAssets.d.ts +7 -0
- package/dist/src/gui/guiUsageRoutingAssets.d.ts.map +1 -0
- package/dist/src/gui/guiUsageRoutingAssets.js +509 -0
- package/dist/src/gui/guiUsageRoutingAssets.js.map +1 -0
- package/dist/src/gui/guiUsageRoutingHttpController.d.ts +11 -0
- package/dist/src/gui/guiUsageRoutingHttpController.d.ts.map +1 -0
- package/dist/src/gui/guiUsageRoutingHttpController.js +125 -0
- package/dist/src/gui/guiUsageRoutingHttpController.js.map +1 -0
- package/dist/src/gui/guiUsageRoutingRuntime.d.ts +36 -0
- package/dist/src/gui/guiUsageRoutingRuntime.d.ts.map +1 -0
- package/dist/src/gui/guiUsageRoutingRuntime.js +98 -0
- package/dist/src/gui/guiUsageRoutingRuntime.js.map +1 -0
- package/dist/src/gui/hadamardGui.d.ts +5 -0
- package/dist/src/gui/hadamardGui.d.ts.map +1 -1
- package/dist/src/gui/hadamardGui.js +159 -16
- package/dist/src/gui/hadamardGui.js.map +1 -1
- package/dist/src/gui/hadamardGuiAssets.d.ts.map +1 -1
- package/dist/src/gui/hadamardGuiAssets.js +297 -41
- package/dist/src/gui/hadamardGuiAssets.js.map +1 -1
- package/dist/src/index.d.ts +32 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +16 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/keyway/electronSecretStore.d.ts +37 -0
- package/dist/src/keyway/electronSecretStore.d.ts.map +1 -0
- package/dist/src/keyway/electronSecretStore.js +105 -0
- package/dist/src/keyway/electronSecretStore.js.map +1 -0
- package/dist/src/keyway/embeddedKeyway.d.ts +34 -0
- package/dist/src/keyway/embeddedKeyway.d.ts.map +1 -0
- package/dist/src/keyway/embeddedKeyway.js +81 -0
- package/dist/src/keyway/embeddedKeyway.js.map +1 -0
- package/dist/src/keyway/keywayLoopbackGateway.d.ts +30 -0
- package/dist/src/keyway/keywayLoopbackGateway.d.ts.map +1 -0
- package/dist/src/keyway/keywayLoopbackGateway.js +71 -0
- package/dist/src/keyway/keywayLoopbackGateway.js.map +1 -0
- package/dist/src/keyway/keywayMigrationService.d.ts +44 -0
- package/dist/src/keyway/keywayMigrationService.d.ts.map +1 -0
- package/dist/src/keyway/keywayMigrationService.js +219 -0
- package/dist/src/keyway/keywayMigrationService.js.map +1 -0
- package/dist/src/keyway/keywayModelApi.d.ts +24 -0
- package/dist/src/keyway/keywayModelApi.d.ts.map +1 -0
- package/dist/src/keyway/keywayModelApi.js +106 -0
- package/dist/src/keyway/keywayModelApi.js.map +1 -0
- package/dist/src/keyway/keywayPorts.d.ts +189 -0
- package/dist/src/keyway/keywayPorts.d.ts.map +1 -0
- package/dist/src/keyway/keywayPorts.js +2 -0
- package/dist/src/keyway/keywayPorts.js.map +1 -0
- package/dist/src/keyway/keywayProviderExecutor.d.ts +30 -0
- package/dist/src/keyway/keywayProviderExecutor.d.ts.map +1 -0
- package/dist/src/keyway/keywayProviderExecutor.js +257 -0
- package/dist/src/keyway/keywayProviderExecutor.js.map +1 -0
- package/dist/src/keyway/routingComposition.d.ts +18 -0
- package/dist/src/keyway/routingComposition.d.ts.map +1 -0
- package/dist/src/keyway/routingComposition.js +19 -0
- package/dist/src/keyway/routingComposition.js.map +1 -0
- package/dist/src/keyway/usageRoutingAdminService.d.ts +86 -0
- package/dist/src/keyway/usageRoutingAdminService.d.ts.map +1 -0
- package/dist/src/keyway/usageRoutingAdminService.js +384 -0
- package/dist/src/keyway/usageRoutingAdminService.js.map +1 -0
- package/dist/src/nativeCli/crushManagedClient.d.ts +84 -0
- package/dist/src/nativeCli/crushManagedClient.d.ts.map +1 -0
- package/dist/src/nativeCli/crushManagedClient.js +978 -0
- package/dist/src/nativeCli/crushManagedClient.js.map +1 -0
- package/dist/src/nativeCli/crushNativeCliClient.d.ts +19 -0
- package/dist/src/nativeCli/crushNativeCliClient.d.ts.map +1 -0
- package/dist/src/nativeCli/crushNativeCliClient.js +243 -0
- package/dist/src/nativeCli/crushNativeCliClient.js.map +1 -0
- package/dist/src/nativeCli/keywayNativeCliAdapter.d.ts +31 -0
- package/dist/src/nativeCli/keywayNativeCliAdapter.d.ts.map +1 -0
- package/dist/src/nativeCli/keywayNativeCliAdapter.js +35 -0
- package/dist/src/nativeCli/keywayNativeCliAdapter.js.map +1 -0
- package/dist/src/nativeCli/nativeCliAuth.d.ts +24 -0
- package/dist/src/nativeCli/nativeCliAuth.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliAuth.js +327 -0
- package/dist/src/nativeCli/nativeCliAuth.js.map +1 -0
- package/dist/src/nativeCli/nativeCliClient.d.ts +16 -0
- package/dist/src/nativeCli/nativeCliClient.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliClient.js +575 -0
- package/dist/src/nativeCli/nativeCliClient.js.map +1 -0
- package/dist/src/nativeCli/nativeCliCodewhaleProtocol.d.ts +18 -0
- package/dist/src/nativeCli/nativeCliCodewhaleProtocol.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliCodewhaleProtocol.js +376 -0
- package/dist/src/nativeCli/nativeCliCodewhaleProtocol.js.map +1 -0
- package/dist/src/nativeCli/nativeCliContracts.d.ts +22 -0
- package/dist/src/nativeCli/nativeCliContracts.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliContracts.js +2 -0
- package/dist/src/nativeCli/nativeCliContracts.js.map +1 -0
- package/dist/src/nativeCli/nativeCliCursorProtocol.d.ts +7 -0
- package/dist/src/nativeCli/nativeCliCursorProtocol.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliCursorProtocol.js +210 -0
- package/dist/src/nativeCli/nativeCliCursorProtocol.js.map +1 -0
- package/dist/src/nativeCli/nativeCliEnvironment.d.ts +3 -0
- package/dist/src/nativeCli/nativeCliEnvironment.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliEnvironment.js +17 -0
- package/dist/src/nativeCli/nativeCliEnvironment.js.map +1 -0
- package/dist/src/nativeCli/nativeCliExecResolver.d.ts +26 -0
- package/dist/src/nativeCli/nativeCliExecResolver.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliExecResolver.js +152 -0
- package/dist/src/nativeCli/nativeCliExecResolver.js.map +1 -0
- package/dist/src/nativeCli/nativeCliPiProtocol.d.ts +15 -0
- package/dist/src/nativeCli/nativeCliPiProtocol.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliPiProtocol.js +329 -0
- package/dist/src/nativeCli/nativeCliPiProtocol.js.map +1 -0
- package/dist/src/nativeCli/nativeCliProcessTree.d.ts +3 -0
- package/dist/src/nativeCli/nativeCliProcessTree.d.ts.map +1 -0
- package/dist/src/nativeCli/nativeCliProcessTree.js +104 -0
- package/dist/src/nativeCli/nativeCliProcessTree.js.map +1 -0
- package/dist/src/nativeCli/reasonixAcpSession.d.ts +35 -0
- package/dist/src/nativeCli/reasonixAcpSession.d.ts.map +1 -0
- package/dist/src/nativeCli/reasonixAcpSession.js +472 -0
- package/dist/src/nativeCli/reasonixAcpSession.js.map +1 -0
- package/dist/src/nativeCli/reasonixManagedClient.d.ts +56 -0
- package/dist/src/nativeCli/reasonixManagedClient.d.ts.map +1 -0
- package/dist/src/nativeCli/reasonixManagedClient.js +293 -0
- package/dist/src/nativeCli/reasonixManagedClient.js.map +1 -0
- package/dist/src/nativeCli/reasonixNativeCliClient.d.ts +20 -0
- package/dist/src/nativeCli/reasonixNativeCliClient.d.ts.map +1 -0
- package/dist/src/nativeCli/reasonixNativeCliClient.js +317 -0
- package/dist/src/nativeCli/reasonixNativeCliClient.js.map +1 -0
- package/dist/src/parity/bridgeExecResolver.d.ts +2 -25
- package/dist/src/parity/bridgeExecResolver.d.ts.map +1 -1
- package/dist/src/parity/bridgeExecResolver.js +2 -151
- package/dist/src/parity/bridgeExecResolver.js.map +1 -1
- package/dist/src/parity/bridgeProcessTree.d.ts +2 -2
- package/dist/src/parity/bridgeProcessTree.d.ts.map +1 -1
- package/dist/src/parity/bridgeProcessTree.js +2 -82
- package/dist/src/parity/bridgeProcessTree.js.map +1 -1
- package/dist/src/parity/crushManagedClient.d.ts +2 -83
- package/dist/src/parity/crushManagedClient.d.ts.map +1 -1
- package/dist/src/parity/crushManagedClient.js +2 -977
- package/dist/src/parity/crushManagedClient.js.map +1 -1
- package/dist/src/parity/externalCliAuth.d.ts +2 -22
- package/dist/src/parity/externalCliAuth.d.ts.map +1 -1
- package/dist/src/parity/externalCliAuth.js +2 -295
- package/dist/src/parity/externalCliAuth.js.map +1 -1
- package/dist/src/parity/hadamardBridgeSdk.d.ts.map +1 -1
- package/dist/src/parity/hadamardBridgeSdk.js +14 -1
- package/dist/src/parity/hadamardBridgeSdk.js.map +1 -1
- package/dist/src/parity/nativeCliBridgeAdapter.d.ts +6 -0
- package/dist/src/parity/nativeCliBridgeAdapter.d.ts.map +1 -0
- package/dist/src/parity/nativeCliBridgeAdapter.js +38 -0
- package/dist/src/parity/nativeCliBridgeAdapter.js.map +1 -0
- package/dist/src/parity/reasonixAcpSession.d.ts +2 -34
- package/dist/src/parity/reasonixAcpSession.d.ts.map +1 -1
- package/dist/src/parity/reasonixAcpSession.js +2 -471
- package/dist/src/parity/reasonixAcpSession.js.map +1 -1
- package/dist/src/parity/reasonixManagedClient.d.ts +2 -55
- package/dist/src/parity/reasonixManagedClient.d.ts.map +1 -1
- package/dist/src/parity/reasonixManagedClient.js +2 -292
- package/dist/src/parity/reasonixManagedClient.js.map +1 -1
- package/dist/src/provider/openai-client.js +2 -2
- package/dist/src/provider/openai-client.js.map +1 -1
- package/dist/src/provider/openai-model-api.d.ts.map +1 -1
- package/dist/src/provider/openai-model-api.js +5 -1
- package/dist/src/provider/openai-model-api.js.map +1 -1
- package/dist/src/runtime/agentClient.d.ts +14 -1
- package/dist/src/runtime/agentClient.d.ts.map +1 -1
- package/dist/src/runtime/agentClient.js +60 -6
- package/dist/src/runtime/agentClient.js.map +1 -1
- package/dist/src/runtime/toolPolicyPipeline.d.ts +32 -1
- package/dist/src/runtime/toolPolicyPipeline.d.ts.map +1 -1
- package/dist/src/runtime/toolPolicyPipeline.js +43 -3
- package/dist/src/runtime/toolPolicyPipeline.js.map +1 -1
- package/dist/src/tui/hadamardTuiController.d.ts.map +1 -1
- package/dist/src/tui/hadamardTuiController.js +62 -8
- package/dist/src/tui/hadamardTuiController.js.map +1 -1
- package/dist/src/tui/tuiBasicCommandHandler.d.ts +4 -0
- package/dist/src/tui/tuiBasicCommandHandler.d.ts.map +1 -1
- package/dist/src/tui/tuiBasicCommandHandler.js +23 -2
- package/dist/src/tui/tuiBasicCommandHandler.js.map +1 -1
- package/dist/src/tui/tuiCatalogCommandHandler.d.ts +2 -0
- package/dist/src/tui/tuiCatalogCommandHandler.d.ts.map +1 -1
- package/dist/src/tui/tuiCatalogCommandHandler.js +10 -1
- package/dist/src/tui/tuiCatalogCommandHandler.js.map +1 -1
- package/dist/src/tui/tuiUsageRoutingRuntime.d.ts +22 -0
- package/dist/src/tui/tuiUsageRoutingRuntime.d.ts.map +1 -0
- package/dist/src/tui/tuiUsageRoutingRuntime.js +81 -0
- package/dist/src/tui/tuiUsageRoutingRuntime.js.map +1 -0
- package/dist/src/types.d.ts +16 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/ui/commandSurface.d.ts.map +1 -1
- package/dist/src/ui/commandSurface.js +45 -1
- package/dist/src/ui/commandSurface.js.map +1 -1
- package/dist/src/ui/extensionsCommandView.d.ts +18 -0
- package/dist/src/ui/extensionsCommandView.d.ts.map +1 -0
- package/dist/src/ui/extensionsCommandView.js +82 -0
- package/dist/src/ui/extensionsCommandView.js.map +1 -0
- package/dist/src/ui/lspCommandView.d.ts +17 -0
- package/dist/src/ui/lspCommandView.d.ts.map +1 -0
- package/dist/src/ui/lspCommandView.js +25 -0
- package/dist/src/ui/lspCommandView.js.map +1 -0
- package/dist/src/ui/usageRoutingCommand.d.ts +13 -0
- package/dist/src/ui/usageRoutingCommand.d.ts.map +1 -0
- package/dist/src/ui/usageRoutingCommand.js +224 -0
- package/dist/src/ui/usageRoutingCommand.js.map +1 -0
- package/dist/src/usage/budgetService.d.ts +28 -0
- package/dist/src/usage/budgetService.d.ts.map +1 -0
- package/dist/src/usage/budgetService.js +50 -0
- package/dist/src/usage/budgetService.js.map +1 -0
- package/dist/src/usage/contracts.d.ts +149 -0
- package/dist/src/usage/contracts.d.ts.map +1 -0
- package/dist/src/usage/contracts.js +2 -0
- package/dist/src/usage/contracts.js.map +1 -0
- package/dist/src/usage/index.d.ts +7 -0
- package/dist/src/usage/index.d.ts.map +1 -0
- package/dist/src/usage/index.js +4 -0
- package/dist/src/usage/index.js.map +1 -0
- package/dist/src/usage/usageLedger.d.ts +19 -0
- package/dist/src/usage/usageLedger.d.ts.map +1 -0
- package/dist/src/usage/usageLedger.js +389 -0
- package/dist/src/usage/usageLedger.js.map +1 -0
- package/dist/src/usage/usageQueryService.d.ts +12 -0
- package/dist/src/usage/usageQueryService.d.ts.map +1 -0
- package/dist/src/usage/usageQueryService.js +29 -0
- package/dist/src/usage/usageQueryService.js.map +1 -0
- package/package.json +14 -2
- package/scripts/prepare-gui-launcher.mjs +62 -0
|
@@ -12,7 +12,10 @@ import { createExaSearchContribution, createRequestRetryPolicyContribution, crea
|
|
|
12
12
|
import { HadamardContributionHost } from '../contrib/contributionHost.js';
|
|
13
13
|
import { InMemoryContributionToolRegistry, contributionRetryPolicyKey, contributionToolRegistryKey, } from '../contrib/contributionServices.js';
|
|
14
14
|
import { conversationExtensionsFactoryKey, createBuiltInConversationExtensionsContribution, } from './conversationExtensions.js';
|
|
15
|
-
import { createBuiltInToolPolicyContribution, toolPolicyFactoryKey } from './toolPolicyPipeline.js';
|
|
15
|
+
import { createBuiltInToolPolicyContribution, InMemoryToolPolicyListenerRegistry, toolPolicyFactoryKey, toolPolicyListenerRegistryKey, } from './toolPolicyPipeline.js';
|
|
16
|
+
import { BuiltInExtensionToggles, createBuiltInExtensionsApi, resolveBuiltInExtensionStates, } from '../extensions/builtInExtensions.js';
|
|
17
|
+
import { createSecurityPolicyContribution } from '../extensions/securityPolicy.js';
|
|
18
|
+
import { createFilterOutputPolicyContribution } from '../extensions/filterOutputPolicy.js';
|
|
16
19
|
import { codeDispatchFormatterKey, createCodeDispatchTranscriptContribution, defaultCodeDispatchTranscriptFormatter } from './codeDispatchTranscript.js';
|
|
17
20
|
import { resolveHadamardSettingsStore } from '../config/hadamardSettingsStore.js';
|
|
18
21
|
import { resolveRuntimeConfig } from '../config/resolveRuntimeConfig.js';
|
|
@@ -64,7 +67,7 @@ import { TeammateStore } from '../storage/teammateStore.js';
|
|
|
64
67
|
import { createCheckpointTools, FileChangeJournal, FileCheckpointService, } from '../checkpoint/index.js';
|
|
65
68
|
import { SandboxExecutor } from '../sandbox/sandboxExecutor.js';
|
|
66
69
|
import { resolveSandboxPolicy } from '../sandbox/policyResolver.js';
|
|
67
|
-
import { CodeIntelligenceService, createCodeIntelligenceTools, LanguageServerRegistry, } from '../codeIntel/index.js';
|
|
70
|
+
import { CodeIntelligenceService, createCodeIntelligenceTools, LanguageServerRegistry, resolveLanguageServerDefinitions, } from '../codeIntel/index.js';
|
|
68
71
|
import { HookRunner } from '../hooks/hookRunner.js';
|
|
69
72
|
import { createPromptHookHandler } from '../hooks/handlers/promptHook.js';
|
|
70
73
|
import { HadamardSwarmApi } from '../swarm/hadamardSwarm.js';
|
|
@@ -430,6 +433,8 @@ export class HadamardAgentClient {
|
|
|
430
433
|
codeIntelligence;
|
|
431
434
|
/** Persistent, project-scoped root/child Agent execution graph. */
|
|
432
435
|
executions;
|
|
436
|
+
/** Built-in extension states (security guard, output filter, UI stubs) with persisted toggling. */
|
|
437
|
+
builtInExtensions;
|
|
433
438
|
sessionManager;
|
|
434
439
|
sessionTurnCoordinator = new SessionTurnCoordinator();
|
|
435
440
|
agentDefinitions;
|
|
@@ -449,6 +454,8 @@ export class HadamardAgentClient {
|
|
|
449
454
|
codeActServices = new Map();
|
|
450
455
|
sessionRuntimeOverrides = new Map();
|
|
451
456
|
backgroundTaskManager;
|
|
457
|
+
/** User-facing listeners fired when any background task settles (best-effort). */
|
|
458
|
+
backgroundTaskSettledListeners = new Set();
|
|
452
459
|
defaultPermissionMode;
|
|
453
460
|
defaultPermissions;
|
|
454
461
|
defaultClassifier;
|
|
@@ -468,7 +475,7 @@ export class HadamardAgentClient {
|
|
|
468
475
|
managedSkills: [],
|
|
469
476
|
disableDefaultSkills: false,
|
|
470
477
|
loadDefaultSkillDirectories: true,
|
|
471
|
-
}, defaultPermissionMode, defaultPermissions, defaultClassifier, defaultApprover, sessionManagerConfig, maxSubagentDepth = 1, maxSubagentFanout = 8, taskWorktreeCoordinator, externalAgentRunner, runtimeClosers = [], contributionHost) {
|
|
478
|
+
}, defaultPermissionMode, defaultPermissions, defaultClassifier, defaultApprover, sessionManagerConfig, maxSubagentDepth = 1, maxSubagentFanout = 8, taskWorktreeCoordinator, externalAgentRunner, runtimeClosers = [], contributionHost, extensionToggles) {
|
|
472
479
|
this.config = config;
|
|
473
480
|
this.store = store;
|
|
474
481
|
this.backgroundTaskStore = backgroundTaskStore;
|
|
@@ -492,6 +499,7 @@ export class HadamardAgentClient {
|
|
|
492
499
|
this.approvalPolicy = new ApprovalPolicy(path.join(this.config.homeDir, 'policy', 'approvals.json'));
|
|
493
500
|
this.auditLog = new AuditLog(path.join(this.config.homeDir, 'policy', 'audit.ndjson'));
|
|
494
501
|
this.executions = new HadamardAgentExecutionsApi(executionStore);
|
|
502
|
+
this.builtInExtensions = createBuiltInExtensionsApi(extensionToggles ?? new BuiltInExtensionToggles(resolveBuiltInExtensionStates(undefined)), this.config.homeDir);
|
|
495
503
|
this.checkpoints = new FileCheckpointService({
|
|
496
504
|
storageRoot: path.join(this.config.sessionDirectory, 'file-checkpoints'),
|
|
497
505
|
workspaceRoot: this.config.workDir,
|
|
@@ -702,7 +710,10 @@ export class HadamardAgentClient {
|
|
|
702
710
|
if (this.defaultTools.some(tool => tool.name === BASH_TOOL_NAME)) {
|
|
703
711
|
this.replaceDefaultTool(createBashTool({
|
|
704
712
|
backgroundTaskManager: this.backgroundTaskManager,
|
|
705
|
-
onBackgroundTaskSettled: task =>
|
|
713
|
+
onBackgroundTaskSettled: task => {
|
|
714
|
+
this.enqueueTaskNotification(task);
|
|
715
|
+
this.notifyBackgroundTaskSettled(task);
|
|
716
|
+
},
|
|
706
717
|
}));
|
|
707
718
|
}
|
|
708
719
|
this.replaceDefaultTool(this.createSendMessageTool());
|
|
@@ -764,16 +775,29 @@ export class HadamardAgentClient {
|
|
|
764
775
|
const contributionHost = new HadamardContributionHost();
|
|
765
776
|
const contributionTools = new InMemoryContributionToolRegistry();
|
|
766
777
|
contributionHost.registerService(contributionToolRegistryKey, contributionTools);
|
|
778
|
+
// Registered before any contribution apply runs so the tool-policy factory
|
|
779
|
+
// and the extension contributions can both resolve it.
|
|
780
|
+
contributionHost.registerService(toolPolicyListenerRegistryKey, new InMemoryToolPolicyListenerRegistry());
|
|
767
781
|
let managedSettings = {};
|
|
768
782
|
if (options.managedPlugins !== false) {
|
|
769
783
|
managedSettings = isRecord(options.managedPlugins)
|
|
770
784
|
? options.managedPlugins
|
|
771
785
|
: (await resolveHadamardSettingsStore({ homeDir: config.homeDir })).raw;
|
|
772
786
|
}
|
|
787
|
+
// Built-in extension states read from the same settings payload; with
|
|
788
|
+
// managedPlugins disabled the settings store is read once for extensions.
|
|
789
|
+
const extensionSettingsRaw = isRecord(options.managedPlugins)
|
|
790
|
+
? options.managedPlugins
|
|
791
|
+
: options.managedPlugins !== false
|
|
792
|
+
? managedSettings
|
|
793
|
+
: (await resolveHadamardSettingsStore({ homeDir: config.homeDir })).raw;
|
|
794
|
+
const extensionToggles = new BuiltInExtensionToggles(resolveBuiltInExtensionStates(extensionSettingsRaw, options.extensions));
|
|
773
795
|
await contributionHost.loadMany([
|
|
774
796
|
createRequestRetryPolicyContribution(config.retryPolicy),
|
|
775
797
|
createBuiltInConversationExtensionsContribution(),
|
|
776
798
|
createBuiltInToolPolicyContribution(),
|
|
799
|
+
createSecurityPolicyContribution(extensionToggles),
|
|
800
|
+
createFilterOutputPolicyContribution(extensionToggles),
|
|
777
801
|
createCodeDispatchTranscriptContribution(),
|
|
778
802
|
createTavilySearchContribution(managedSettings),
|
|
779
803
|
createExaSearchContribution(managedSettings),
|
|
@@ -951,10 +975,16 @@ export class HadamardAgentClient {
|
|
|
951
975
|
definition.name,
|
|
952
976
|
definition,
|
|
953
977
|
])).values()];
|
|
954
|
-
|
|
978
|
+
// Code intelligence: merge explicit language servers with auto-detected
|
|
979
|
+
// presets (PATH probe), so LSP tools work out of the box. Async, so it
|
|
980
|
+
// happens here in create() rather than in the synchronous constructor.
|
|
981
|
+
const languageServers = await resolveLanguageServerDefinitions(config.languageServers, {
|
|
982
|
+
autoDetect: config.autoDetectLanguageServers,
|
|
983
|
+
});
|
|
984
|
+
client = new HadamardAgentClient({ ...config, languageServers }, store, executionStore, backgroundTaskStore, mailboxStore, teammateStore, modelApi, mcpManager, deduplicatedTools, defaultMcpServers, options.hooks, agentDefinitions, deduplicatedSkills, skillComposition, policyPermissionMode(config.effectivePolicy) ?? options.permissionMode, [
|
|
955
985
|
...policyPermissionRules(config.effectivePolicy),
|
|
956
986
|
...(options.permissions ?? []),
|
|
957
|
-
], options.classifier, options.approver, options.sessionManager, options.maxSubagentDepth, options.maxSubagentFanout, taskWorktreeCoordinator, options.externalAgentRunner, runtimeClosers, contributionHost);
|
|
987
|
+
], options.classifier, options.approver, options.sessionManager, options.maxSubagentDepth, options.maxSubagentFanout, taskWorktreeCoordinator, options.externalAgentRunner, runtimeClosers, contributionHost, extensionToggles);
|
|
958
988
|
const interruptedTasks = await client.backgroundTaskManager.reconcileInterruptedTasks();
|
|
959
989
|
await client.reconcileInterruptedAgentExecutions(interruptedTasks);
|
|
960
990
|
return client;
|
|
@@ -3447,6 +3477,28 @@ export class HadamardAgentClient {
|
|
|
3447
3477
|
this.pendingRuntimeNotifications.set(notificationKey, queue);
|
|
3448
3478
|
}
|
|
3449
3479
|
}
|
|
3480
|
+
/**
|
|
3481
|
+
* Subscribe to background task settlement (completed/failed/cancelled) for
|
|
3482
|
+
* user-facing surfaces. Fires for every settled task — including ad-hoc
|
|
3483
|
+
* tasks without a parent session — independently of the agent-facing
|
|
3484
|
+
* `<task_notification>` enqueue path. Returns an unsubscribe function.
|
|
3485
|
+
*/
|
|
3486
|
+
onBackgroundTaskSettled(listener) {
|
|
3487
|
+
this.backgroundTaskSettledListeners.add(listener);
|
|
3488
|
+
return () => {
|
|
3489
|
+
this.backgroundTaskSettledListeners.delete(listener);
|
|
3490
|
+
};
|
|
3491
|
+
}
|
|
3492
|
+
notifyBackgroundTaskSettled(task) {
|
|
3493
|
+
for (const listener of this.backgroundTaskSettledListeners) {
|
|
3494
|
+
try {
|
|
3495
|
+
listener(task);
|
|
3496
|
+
}
|
|
3497
|
+
catch {
|
|
3498
|
+
// Listener errors must never break the settle path.
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
}
|
|
3450
3502
|
drainRuntimeNotifications(sessionId) {
|
|
3451
3503
|
const queued = this.pendingRuntimeNotifications.get(sessionId) ?? [];
|
|
3452
3504
|
this.pendingRuntimeNotifications.delete(sessionId);
|
|
@@ -3534,6 +3586,7 @@ export class HadamardAgentClient {
|
|
|
3534
3586
|
onSettled: async (task) => {
|
|
3535
3587
|
this.updatePendingDelegation(options.parentSessionId ?? options.parentRunId, task);
|
|
3536
3588
|
this.enqueueTaskNotification(task);
|
|
3589
|
+
this.notifyBackgroundTaskSettled(task);
|
|
3537
3590
|
if (task.status === 'completed') {
|
|
3538
3591
|
await this.tryCompleteExecutionEdge(execution.edge, task.text);
|
|
3539
3592
|
}
|
|
@@ -3607,6 +3660,7 @@ export class HadamardAgentClient {
|
|
|
3607
3660
|
onSettled: async (task) => {
|
|
3608
3661
|
this.updatePendingDelegation(notificationParent, task);
|
|
3609
3662
|
this.enqueueTaskNotification(task);
|
|
3663
|
+
this.notifyBackgroundTaskSettled(task);
|
|
3610
3664
|
if (task.status === 'completed' && hasCollaborationEdge) {
|
|
3611
3665
|
await this.tryCompleteExecutionEdge(execution.edge, task.text);
|
|
3612
3666
|
}
|