@mastra/code-sdk 1.2.0-alpha.9 → 1.2.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/CHANGELOG.md +227 -0
- package/README.md +22 -0
- package/dist/agents/model.d.ts.map +1 -1
- package/dist/agents/model.js +5 -2
- package/dist/agents/model.js.map +1 -1
- package/dist/agents/modes/build.d.ts.map +1 -1
- package/dist/agents/modes/build.js +6 -1
- package/dist/agents/modes/build.js.map +1 -1
- package/dist/agents/modes/explore.d.ts.map +1 -1
- package/dist/agents/modes/explore.js +4 -1
- package/dist/agents/modes/explore.js.map +1 -1
- package/dist/agents/modes/plan.d.ts.map +1 -1
- package/dist/agents/modes/plan.js +8 -3
- package/dist/agents/modes/plan.js.map +1 -1
- package/dist/agents/prompts/index.d.ts.map +1 -1
- package/dist/agents/prompts/index.js +4 -1
- package/dist/agents/prompts/index.js.map +1 -1
- package/dist/agents/prompts/plan.d.ts +1 -1
- package/dist/agents/prompts/plan.d.ts.map +1 -1
- package/dist/agents/prompts/plan.js +2 -2
- package/dist/agents/prompts/plan.js.map +1 -1
- package/dist/agents/prompts/tool-guidance.d.ts +2 -0
- package/dist/agents/prompts/tool-guidance.d.ts.map +1 -1
- package/dist/agents/prompts/tool-guidance.js +3 -2
- package/dist/agents/prompts/tool-guidance.js.map +1 -1
- package/dist/agents/tool-availability.d.ts.map +1 -1
- package/dist/agents/tool-availability.js +15 -6
- package/dist/agents/tool-availability.js.map +1 -1
- package/dist/agents/tools.d.ts +16 -0
- package/dist/agents/tools.d.ts.map +1 -1
- package/dist/agents/tools.js +16 -3
- package/dist/agents/tools.js.map +1 -1
- package/dist/agents/workflow-builder-agent.d.ts +2 -0
- package/dist/agents/workflow-builder-agent.d.ts.map +1 -0
- package/dist/agents/workflow-builder-agent.js +80 -0
- package/dist/agents/workflow-builder-agent.js.map +1 -0
- package/dist/headless/cli.d.ts.map +1 -1
- package/dist/headless/cli.js +3 -0
- package/dist/headless/cli.js.map +1 -1
- package/dist/hooks/manager.d.ts +9 -2
- package/dist/hooks/manager.d.ts.map +1 -1
- package/dist/hooks/manager.js +19 -3
- package/dist/hooks/manager.js.map +1 -1
- package/dist/hooks/types.d.ts +20 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/hooks/types.js.map +1 -1
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +204 -69
- package/dist/index.js.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +6 -1
- package/dist/permissions.js.map +1 -1
- package/dist/plugin.d.ts +64 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +3 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/loader.d.ts +7 -3
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +53 -1
- package/dist/plugins/loader.js.map +1 -1
- package/dist/plugins/manager.d.ts +36 -2
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +74 -2
- package/dist/plugins/manager.js.map +1 -1
- package/dist/plugins/signal-lane.d.ts +58 -0
- package/dist/plugins/signal-lane.d.ts.map +1 -0
- package/dist/plugins/signal-lane.js +166 -0
- package/dist/plugins/signal-lane.js.map +1 -0
- package/dist/plugins/types.d.ts +36 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/tools/workflows/create-workflow.d.ts +7 -0
- package/dist/tools/workflows/create-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/create-workflow.js +81 -0
- package/dist/tools/workflows/create-workflow.js.map +1 -0
- package/dist/tools/workflows/delete-workflow.d.ts +7 -0
- package/dist/tools/workflows/delete-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/delete-workflow.js +21 -0
- package/dist/tools/workflows/delete-workflow.js.map +1 -0
- package/dist/tools/workflows/ephemeral-memory.d.ts +7 -0
- package/dist/tools/workflows/ephemeral-memory.d.ts.map +1 -0
- package/dist/tools/workflows/ephemeral-memory.js +45 -0
- package/dist/tools/workflows/ephemeral-memory.js.map +1 -0
- package/dist/tools/workflows/extract-json-schema.d.ts +12 -0
- package/dist/tools/workflows/extract-json-schema.d.ts.map +1 -0
- package/dist/tools/workflows/extract-json-schema.js +22 -0
- package/dist/tools/workflows/extract-json-schema.js.map +1 -0
- package/dist/tools/workflows/get-workflow.d.ts +11 -0
- package/dist/tools/workflows/get-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/get-workflow.js +34 -0
- package/dist/tools/workflows/get-workflow.js.map +1 -0
- package/dist/tools/workflows/list-available-agents.d.ts +8 -0
- package/dist/tools/workflows/list-available-agents.d.ts.map +1 -0
- package/dist/tools/workflows/list-available-agents.js +32 -0
- package/dist/tools/workflows/list-available-agents.js.map +1 -0
- package/dist/tools/workflows/list-available-tools.d.ts +9 -0
- package/dist/tools/workflows/list-available-tools.d.ts.map +1 -0
- package/dist/tools/workflows/list-available-tools.js +40 -0
- package/dist/tools/workflows/list-available-tools.js.map +1 -0
- package/dist/tools/workflows/list-available-workflows.d.ts +9 -0
- package/dist/tools/workflows/list-available-workflows.d.ts.map +1 -0
- package/dist/tools/workflows/list-available-workflows.js +32 -0
- package/dist/tools/workflows/list-available-workflows.js.map +1 -0
- package/dist/tools/workflows/list-workflows.d.ts +9 -0
- package/dist/tools/workflows/list-workflows.d.ts.map +1 -0
- package/dist/tools/workflows/list-workflows.js +33 -0
- package/dist/tools/workflows/list-workflows.js.map +1 -0
- package/dist/tools/workflows/run-workflow.d.ts +9 -0
- package/dist/tools/workflows/run-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/run-workflow.js +52 -0
- package/dist/tools/workflows/run-workflow.js.map +1 -0
- package/dist/tools/workflows/save-workflow.d.ts +369 -0
- package/dist/tools/workflows/save-workflow.d.ts.map +1 -0
- package/dist/tools/workflows/save-workflow.js +28 -0
- package/dist/tools/workflows/save-workflow.js.map +1 -0
- package/dist/tools/workflows/tool-ids.d.ts +15 -0
- package/dist/tools/workflows/tool-ids.d.ts.map +1 -0
- package/dist/tools/workflows/tool-ids.js +19 -0
- package/dist/tools/workflows/tool-ids.js.map +1 -0
- package/dist/utils/plans.d.ts +9 -6
- package/dist/utils/plans.d.ts.map +1 -1
- package/dist/utils/plans.js +11 -11
- package/dist/utils/plans.js.map +1 -1
- package/dist/workflows/register-primitives.d.ts +52 -0
- package/dist/workflows/register-primitives.d.ts.map +1 -0
- package/dist/workflows/register-primitives.js +39 -0
- package/dist/workflows/register-primitives.js.map +1 -0
- package/dist/workflows/service.d.ts +64 -0
- package/dist/workflows/service.d.ts.map +1 -0
- package/dist/workflows/service.js +53 -0
- package/dist/workflows/service.js.map +1 -0
- package/package.json +16 -16
package/dist/hooks/manager.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HooksConfig, HookEventResult, PermissionKind, PermissionDecision, InterruptReason } from './types.js';
|
|
1
|
+
import type { HooksConfig, HookEventResult, PermissionKind, PermissionDecision, InterruptReason, SessionWorktreeInfo } from './types.js';
|
|
2
2
|
export declare class HookManager {
|
|
3
3
|
private config;
|
|
4
4
|
private projectDir;
|
|
@@ -6,7 +6,8 @@ export declare class HookManager {
|
|
|
6
6
|
private configDirName;
|
|
7
7
|
private homeDir?;
|
|
8
8
|
private runId?;
|
|
9
|
-
|
|
9
|
+
private worktree?;
|
|
10
|
+
constructor(projectDir: string, sessionId: string, configDirName?: string, homeDir?: string, worktree?: SessionWorktreeInfo);
|
|
10
11
|
reload(): void;
|
|
11
12
|
setSessionId(sessionId: string): void;
|
|
12
13
|
/** Set the active agent run id. Included as `run_id` in all hook stdin while a run is active. */
|
|
@@ -25,6 +26,12 @@ export declare class HookManager {
|
|
|
25
26
|
* is set, so every event dispatched during a run carries the same identifier.
|
|
26
27
|
*/
|
|
27
28
|
private baseStdinFields;
|
|
29
|
+
/**
|
|
30
|
+
* Session stdin, carrying worktree identity when there is one. Emitted on both
|
|
31
|
+
* session events so a hook that provisions on start can tear down on end using
|
|
32
|
+
* the same fields.
|
|
33
|
+
*/
|
|
34
|
+
private sessionStdin;
|
|
28
35
|
runPreToolUse(toolName: string, toolInput: unknown): Promise<HookEventResult>;
|
|
29
36
|
runPostToolUse(toolName: string, toolInput: unknown, toolOutput: unknown, toolError: boolean): Promise<HookEventResult>;
|
|
30
37
|
runUserPromptSubmit(userMessage: string): Promise<HookEventResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/hooks/manager.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAcf,cAAc,EACd,kBAAkB,EAClB,eAAe,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/hooks/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/manager.js
CHANGED
|
@@ -18,7 +18,9 @@ var HookManager = class {
|
|
|
18
18
|
configDirName;
|
|
19
19
|
homeDir;
|
|
20
20
|
runId;
|
|
21
|
-
|
|
21
|
+
worktree;
|
|
22
|
+
constructor(projectDir, sessionId, configDirName = DEFAULT_CONFIG_DIR, homeDir, worktree) {
|
|
23
|
+
this.worktree = worktree;
|
|
22
24
|
this.projectDir = projectDir;
|
|
23
25
|
this.sessionId = sessionId;
|
|
24
26
|
this.configDirName = configDirName;
|
|
@@ -67,6 +69,20 @@ var HookManager = class {
|
|
|
67
69
|
if (this.runId) base.run_id = this.runId;
|
|
68
70
|
return base;
|
|
69
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Session stdin, carrying worktree identity when there is one. Emitted on both
|
|
74
|
+
* session events so a hook that provisions on start can tear down on end using
|
|
75
|
+
* the same fields.
|
|
76
|
+
*/
|
|
77
|
+
sessionStdin(hook_event_name) {
|
|
78
|
+
const stdin = this.baseStdinFields(hook_event_name);
|
|
79
|
+
if (this.worktree) {
|
|
80
|
+
stdin.worktree_path = this.worktree.path;
|
|
81
|
+
if (this.worktree.branch) stdin.branch = this.worktree.branch;
|
|
82
|
+
if (this.worktree.mainRepoPath) stdin.main_repo_path = this.worktree.mainRepoPath;
|
|
83
|
+
}
|
|
84
|
+
return stdin;
|
|
85
|
+
}
|
|
70
86
|
async runPreToolUse(toolName, toolInput) {
|
|
71
87
|
const hooks = this.config.PreToolUse;
|
|
72
88
|
if (!hooks || hooks.length === 0) return emptyResult();
|
|
@@ -107,12 +123,12 @@ var HookManager = class {
|
|
|
107
123
|
async runSessionStart() {
|
|
108
124
|
const hooks = this.config.SessionStart;
|
|
109
125
|
if (!hooks || hooks.length === 0) return emptyResult();
|
|
110
|
-
return runHooksForEvent(hooks,
|
|
126
|
+
return runHooksForEvent(hooks, this.sessionStdin("SessionStart"));
|
|
111
127
|
}
|
|
112
128
|
async runSessionEnd() {
|
|
113
129
|
const hooks = this.config.SessionEnd;
|
|
114
130
|
if (!hooks || hooks.length === 0) return emptyResult();
|
|
115
|
-
return runHooksForEvent(hooks,
|
|
131
|
+
return runHooksForEvent(hooks, this.sessionStdin("SessionEnd"));
|
|
116
132
|
}
|
|
117
133
|
/**
|
|
118
134
|
* Fire notification hooks (non-blocking, fire-and-forget).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","names":[],"sources":["../../src/hooks/manager.ts"],"sourcesContent":["/**\n * HookManager — high-level orchestration for the hooks system.\n * Created once at startup, provides methods for each lifecycle event.\n */\nimport { DEFAULT_CONFIG_DIR } from '../constants.js';\nimport { loadHooksConfig, getProjectHooksPath, getGlobalHooksPath } from './config.js';\nimport { runHooksForEvent } from './executor.js';\nimport type {\n HooksConfig,\n HookEventResult,\n HookEventName,\n HookStdinToolEvent,\n HookStdinUserPrompt,\n HookStdinStop,\n HookStdinSession,\n HookStdinNotification,\n HookStdinAgentStart,\n HookStdinAgentEnd,\n HookStdinPermissionRequest,\n HookStdinPermissionResult,\n HookStdinInterrupt,\n HookStdinSubagentStart,\n HookStdinSubagentEnd,\n PermissionKind,\n PermissionDecision,\n InterruptReason,\n} from './types.js';\n\nconst emptyResult = (): HookEventResult => ({ allowed: true, results: [], warnings: [] });\n\nexport class HookManager {\n private config: HooksConfig;\n private projectDir: string;\n private sessionId: string;\n private configDirName: string;\n private homeDir?: string;\n private runId?: string;\n\n constructor(projectDir: string, sessionId: string, configDirName = DEFAULT_CONFIG_DIR, homeDir?: string) {\n this.projectDir = projectDir;\n this.sessionId = sessionId;\n this.configDirName = configDirName;\n this.homeDir = homeDir;\n this.config = loadHooksConfig(projectDir, configDirName, homeDir);\n }\n\n reload(): void {\n this.config = loadHooksConfig(this.projectDir, this.configDirName, this.homeDir);\n }\n\n setSessionId(sessionId: string): void {\n this.sessionId = sessionId;\n }\n\n /** Set the active agent run id. Included as `run_id` in all hook stdin while a run is active. */\n setRunId(runId: string): void {\n this.runId = runId;\n }\n\n /** Clear the active run id. Call only after end-of-run hooks (AgentEnd, Stop) have been dispatched. */\n clearRunId(): void {\n this.runId = undefined;\n }\n\n getRunId(): string | undefined {\n return this.runId;\n }\n\n hasHooks(): boolean {\n return Object.keys(this.config).length > 0;\n }\n\n getConfig(): HooksConfig {\n return this.config;\n }\n\n getConfigPaths(): { project: string; global: string } {\n return {\n project: getProjectHooksPath(this.projectDir, this.configDirName),\n global: getGlobalHooksPath(this.configDirName, this.homeDir),\n };\n }\n\n // =========================================================================\n // Stdin Helpers\n // =========================================================================\n\n /**\n * Build the common stdin base fields. `run_id` is included when an active run\n * is set, so every event dispatched during a run carries the same identifier.\n */\n private baseStdinFields<T extends HookEventName>(\n hook_event_name: T,\n ): {\n session_id: string;\n cwd: string;\n hook_event_name: T;\n run_id?: string;\n } {\n const base: { session_id: string; cwd: string; hook_event_name: T; run_id?: string } = {\n session_id: this.sessionId,\n cwd: this.projectDir,\n hook_event_name,\n };\n if (this.runId) base.run_id = this.runId;\n return base;\n }\n\n // =========================================================================\n // Blocking Event Methods (decisions enforced by callers)\n // =========================================================================\n\n async runPreToolUse(toolName: string, toolInput: unknown): Promise<HookEventResult> {\n const hooks = this.config.PreToolUse;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinToolEvent = {\n ...this.baseStdinFields('PreToolUse'),\n tool_name: toolName,\n tool_input: toolInput,\n };\n\n return runHooksForEvent(hooks, stdin, { tool_name: toolName });\n }\n\n async runPostToolUse(\n toolName: string,\n toolInput: unknown,\n toolOutput: unknown,\n toolError: boolean,\n ): Promise<HookEventResult> {\n const hooks = this.config.PostToolUse;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinToolEvent = {\n ...this.baseStdinFields('PostToolUse'),\n tool_name: toolName,\n tool_input: toolInput,\n tool_output: toolOutput,\n tool_error: toolError,\n };\n\n return runHooksForEvent(hooks, stdin, { tool_name: toolName });\n }\n\n async runUserPromptSubmit(userMessage: string): Promise<HookEventResult> {\n const hooks = this.config.UserPromptSubmit;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinUserPrompt = {\n ...this.baseStdinFields('UserPromptSubmit'),\n user_message: userMessage,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runStop(\n assistantMessage: string | undefined,\n stopReason: 'complete' | 'aborted' | 'error',\n ): Promise<HookEventResult> {\n const hooks = this.config.Stop;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinStop = {\n ...this.baseStdinFields('Stop'),\n assistant_message: assistantMessage,\n stop_reason: stopReason,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runSessionStart(): Promise<HookEventResult> {\n const hooks = this.config.SessionStart;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinSession = {\n ...this.baseStdinFields('SessionStart'),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n async runSessionEnd(): Promise<HookEventResult> {\n const hooks = this.config.SessionEnd;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinSession = {\n ...this.baseStdinFields('SessionEnd'),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n /**\n * Fire notification hooks (non-blocking, fire-and-forget).\n * Called when the TUI is waiting for user input.\n */\n runNotification(reason: string, message?: string): void {\n const hooks = this.config.Notification;\n if (!hooks || hooks.length === 0) return;\n\n const stdin: HookStdinNotification = {\n ...this.baseStdinFields('Notification'),\n reason,\n message,\n };\n\n // Fire-and-forget — don't await\n runHooksForEvent(hooks, stdin).catch(() => {});\n }\n\n // =========================================================================\n // Lifecycle Event Methods (non-blocking: observe behavior, never enforce)\n // =========================================================================\n\n async runAgentStart(): Promise<HookEventResult> {\n const hooks = this.config.AgentStart;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinAgentStart = {\n ...this.baseStdinFields('AgentStart'),\n run_id: runId,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runAgentEnd(stopReason: 'complete' | 'aborted' | 'error' | 'suspended'): Promise<HookEventResult> {\n const hooks = this.config.AgentEnd;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinAgentEnd = {\n ...this.baseStdinFields('AgentEnd'),\n run_id: runId,\n stop_reason: stopReason,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runPermissionRequest(\n permissionKind: PermissionKind,\n toolCallId: string,\n toolName: string,\n toolInput?: unknown,\n ): Promise<HookEventResult> {\n const hooks = this.config.PermissionRequest;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinPermissionRequest = {\n ...this.baseStdinFields('PermissionRequest'),\n run_id: runId,\n permission_kind: permissionKind,\n tool_call_id: toolCallId,\n tool_name: toolName,\n ...(toolInput !== undefined ? { tool_input: toolInput } : {}),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runPermissionResult(\n permissionKind: PermissionKind,\n toolCallId: string,\n toolName: string,\n decision: PermissionDecision,\n toolInput?: unknown,\n ): Promise<HookEventResult> {\n const hooks = this.config.PermissionResult;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinPermissionResult = {\n ...this.baseStdinFields('PermissionResult'),\n run_id: runId,\n permission_kind: permissionKind,\n tool_call_id: toolCallId,\n tool_name: toolName,\n decision,\n ...(toolInput !== undefined ? { tool_input: toolInput } : {}),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runInterrupt(reason: InterruptReason): Promise<HookEventResult> {\n const hooks = this.config.Interrupt;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinInterrupt = {\n ...this.baseStdinFields('Interrupt'),\n run_id: runId,\n reason,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runSubagentStart(\n toolCallId: string,\n agentType: string,\n task: string,\n modelId?: string,\n forked?: boolean,\n ): Promise<HookEventResult> {\n const hooks = this.config.SubagentStart;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinSubagentStart = {\n ...this.baseStdinFields('SubagentStart'),\n run_id: runId,\n tool_call_id: toolCallId,\n agent_type: agentType,\n task,\n ...(modelId !== undefined ? { model_id: modelId } : {}),\n ...(forked !== undefined ? { forked } : {}),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runSubagentEnd(\n toolCallId: string,\n agentType: string,\n result: unknown,\n isError: boolean,\n durationMs: number,\n ): Promise<HookEventResult> {\n const hooks = this.config.SubagentEnd;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinSubagentEnd = {\n ...this.baseStdinFields('SubagentEnd'),\n run_id: runId,\n tool_call_id: toolCallId,\n agent_type: agentType,\n result,\n is_error: isError,\n duration_ms: durationMs,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","names":[],"sources":["../../src/hooks/manager.ts"],"sourcesContent":["/**\n * HookManager — high-level orchestration for the hooks system.\n * Created once at startup, provides methods for each lifecycle event.\n */\nimport { DEFAULT_CONFIG_DIR } from '../constants.js';\nimport { loadHooksConfig, getProjectHooksPath, getGlobalHooksPath } from './config.js';\nimport { runHooksForEvent } from './executor.js';\nimport type {\n HooksConfig,\n HookEventResult,\n HookEventName,\n HookStdinToolEvent,\n HookStdinUserPrompt,\n HookStdinStop,\n HookStdinSession,\n HookStdinNotification,\n HookStdinAgentStart,\n HookStdinAgentEnd,\n HookStdinPermissionRequest,\n HookStdinPermissionResult,\n HookStdinInterrupt,\n HookStdinSubagentStart,\n HookStdinSubagentEnd,\n PermissionKind,\n PermissionDecision,\n InterruptReason,\n SessionWorktreeInfo,\n} from './types.js';\n\nconst emptyResult = (): HookEventResult => ({ allowed: true, results: [], warnings: [] });\n\nexport class HookManager {\n private config: HooksConfig;\n private projectDir: string;\n private sessionId: string;\n private configDirName: string;\n private homeDir?: string;\n private runId?: string;\n private worktree?: SessionWorktreeInfo;\n\n constructor(\n projectDir: string,\n sessionId: string,\n configDirName = DEFAULT_CONFIG_DIR,\n homeDir?: string,\n worktree?: SessionWorktreeInfo,\n ) {\n this.worktree = worktree;\n this.projectDir = projectDir;\n this.sessionId = sessionId;\n this.configDirName = configDirName;\n this.homeDir = homeDir;\n this.config = loadHooksConfig(projectDir, configDirName, homeDir);\n }\n\n reload(): void {\n this.config = loadHooksConfig(this.projectDir, this.configDirName, this.homeDir);\n }\n\n setSessionId(sessionId: string): void {\n this.sessionId = sessionId;\n }\n\n /** Set the active agent run id. Included as `run_id` in all hook stdin while a run is active. */\n setRunId(runId: string): void {\n this.runId = runId;\n }\n\n /** Clear the active run id. Call only after end-of-run hooks (AgentEnd, Stop) have been dispatched. */\n clearRunId(): void {\n this.runId = undefined;\n }\n\n getRunId(): string | undefined {\n return this.runId;\n }\n\n hasHooks(): boolean {\n return Object.keys(this.config).length > 0;\n }\n\n getConfig(): HooksConfig {\n return this.config;\n }\n\n getConfigPaths(): { project: string; global: string } {\n return {\n project: getProjectHooksPath(this.projectDir, this.configDirName),\n global: getGlobalHooksPath(this.configDirName, this.homeDir),\n };\n }\n\n // =========================================================================\n // Stdin Helpers\n // =========================================================================\n\n /**\n * Build the common stdin base fields. `run_id` is included when an active run\n * is set, so every event dispatched during a run carries the same identifier.\n */\n private baseStdinFields<T extends HookEventName>(\n hook_event_name: T,\n ): {\n session_id: string;\n cwd: string;\n hook_event_name: T;\n run_id?: string;\n } {\n const base: { session_id: string; cwd: string; hook_event_name: T; run_id?: string } = {\n session_id: this.sessionId,\n cwd: this.projectDir,\n hook_event_name,\n };\n if (this.runId) base.run_id = this.runId;\n return base;\n }\n\n /**\n * Session stdin, carrying worktree identity when there is one. Emitted on both\n * session events so a hook that provisions on start can tear down on end using\n * the same fields.\n */\n private sessionStdin(hook_event_name: 'SessionStart' | 'SessionEnd'): HookStdinSession {\n const stdin: HookStdinSession = this.baseStdinFields(hook_event_name);\n if (this.worktree) {\n stdin.worktree_path = this.worktree.path;\n if (this.worktree.branch) stdin.branch = this.worktree.branch;\n if (this.worktree.mainRepoPath) stdin.main_repo_path = this.worktree.mainRepoPath;\n }\n return stdin;\n }\n\n // =========================================================================\n // Blocking Event Methods (decisions enforced by callers)\n // =========================================================================\n\n async runPreToolUse(toolName: string, toolInput: unknown): Promise<HookEventResult> {\n const hooks = this.config.PreToolUse;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinToolEvent = {\n ...this.baseStdinFields('PreToolUse'),\n tool_name: toolName,\n tool_input: toolInput,\n };\n\n return runHooksForEvent(hooks, stdin, { tool_name: toolName });\n }\n\n async runPostToolUse(\n toolName: string,\n toolInput: unknown,\n toolOutput: unknown,\n toolError: boolean,\n ): Promise<HookEventResult> {\n const hooks = this.config.PostToolUse;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinToolEvent = {\n ...this.baseStdinFields('PostToolUse'),\n tool_name: toolName,\n tool_input: toolInput,\n tool_output: toolOutput,\n tool_error: toolError,\n };\n\n return runHooksForEvent(hooks, stdin, { tool_name: toolName });\n }\n\n async runUserPromptSubmit(userMessage: string): Promise<HookEventResult> {\n const hooks = this.config.UserPromptSubmit;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinUserPrompt = {\n ...this.baseStdinFields('UserPromptSubmit'),\n user_message: userMessage,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runStop(\n assistantMessage: string | undefined,\n stopReason: 'complete' | 'aborted' | 'error',\n ): Promise<HookEventResult> {\n const hooks = this.config.Stop;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinStop = {\n ...this.baseStdinFields('Stop'),\n assistant_message: assistantMessage,\n stop_reason: stopReason,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runSessionStart(): Promise<HookEventResult> {\n const hooks = this.config.SessionStart;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinSession = this.sessionStdin('SessionStart');\n\n return runHooksForEvent(hooks, stdin);\n }\n async runSessionEnd(): Promise<HookEventResult> {\n const hooks = this.config.SessionEnd;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const stdin: HookStdinSession = this.sessionStdin('SessionEnd');\n\n return runHooksForEvent(hooks, stdin);\n }\n\n /**\n * Fire notification hooks (non-blocking, fire-and-forget).\n * Called when the TUI is waiting for user input.\n */\n runNotification(reason: string, message?: string): void {\n const hooks = this.config.Notification;\n if (!hooks || hooks.length === 0) return;\n\n const stdin: HookStdinNotification = {\n ...this.baseStdinFields('Notification'),\n reason,\n message,\n };\n\n // Fire-and-forget — don't await\n runHooksForEvent(hooks, stdin).catch(() => {});\n }\n\n // =========================================================================\n // Lifecycle Event Methods (non-blocking: observe behavior, never enforce)\n // =========================================================================\n\n async runAgentStart(): Promise<HookEventResult> {\n const hooks = this.config.AgentStart;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinAgentStart = {\n ...this.baseStdinFields('AgentStart'),\n run_id: runId,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runAgentEnd(stopReason: 'complete' | 'aborted' | 'error' | 'suspended'): Promise<HookEventResult> {\n const hooks = this.config.AgentEnd;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinAgentEnd = {\n ...this.baseStdinFields('AgentEnd'),\n run_id: runId,\n stop_reason: stopReason,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runPermissionRequest(\n permissionKind: PermissionKind,\n toolCallId: string,\n toolName: string,\n toolInput?: unknown,\n ): Promise<HookEventResult> {\n const hooks = this.config.PermissionRequest;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinPermissionRequest = {\n ...this.baseStdinFields('PermissionRequest'),\n run_id: runId,\n permission_kind: permissionKind,\n tool_call_id: toolCallId,\n tool_name: toolName,\n ...(toolInput !== undefined ? { tool_input: toolInput } : {}),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runPermissionResult(\n permissionKind: PermissionKind,\n toolCallId: string,\n toolName: string,\n decision: PermissionDecision,\n toolInput?: unknown,\n ): Promise<HookEventResult> {\n const hooks = this.config.PermissionResult;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinPermissionResult = {\n ...this.baseStdinFields('PermissionResult'),\n run_id: runId,\n permission_kind: permissionKind,\n tool_call_id: toolCallId,\n tool_name: toolName,\n decision,\n ...(toolInput !== undefined ? { tool_input: toolInput } : {}),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runInterrupt(reason: InterruptReason): Promise<HookEventResult> {\n const hooks = this.config.Interrupt;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinInterrupt = {\n ...this.baseStdinFields('Interrupt'),\n run_id: runId,\n reason,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runSubagentStart(\n toolCallId: string,\n agentType: string,\n task: string,\n modelId?: string,\n forked?: boolean,\n ): Promise<HookEventResult> {\n const hooks = this.config.SubagentStart;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinSubagentStart = {\n ...this.baseStdinFields('SubagentStart'),\n run_id: runId,\n tool_call_id: toolCallId,\n agent_type: agentType,\n task,\n ...(modelId !== undefined ? { model_id: modelId } : {}),\n ...(forked !== undefined ? { forked } : {}),\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n\n async runSubagentEnd(\n toolCallId: string,\n agentType: string,\n result: unknown,\n isError: boolean,\n durationMs: number,\n ): Promise<HookEventResult> {\n const hooks = this.config.SubagentEnd;\n if (!hooks || hooks.length === 0) {\n return emptyResult();\n }\n const runId = this.runId;\n if (!runId) {\n return emptyResult();\n }\n\n const stdin: HookStdinSubagentEnd = {\n ...this.baseStdinFields('SubagentEnd'),\n run_id: runId,\n tool_call_id: toolCallId,\n agent_type: agentType,\n result,\n is_error: isError,\n duration_ms: durationMs,\n };\n\n return runHooksForEvent(hooks, stdin);\n }\n}\n"],"mappings":";;;;;;;;AA6BA,MAAM,qBAAsC;CAAE,SAAS;CAAM,SAAS,CAAC;CAAG,UAAU,CAAC;AAAE;AAEvF,IAAa,cAAb,MAAyB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,YACE,YACA,WACA,gBAAgB,oBAChB,SACA,UACA;EACA,KAAK,WAAW;EAChB,KAAK,aAAa;EAClB,KAAK,YAAY;EACjB,KAAK,gBAAgB;EACrB,KAAK,UAAU;EACf,KAAK,SAAS,gBAAgB,YAAY,eAAe,OAAO;CAClE;CAEA,SAAe;EACb,KAAK,SAAS,gBAAgB,KAAK,YAAY,KAAK,eAAe,KAAK,OAAO;CACjF;CAEA,aAAa,WAAyB;EACpC,KAAK,YAAY;CACnB;;CAGA,SAAS,OAAqB;EAC5B,KAAK,QAAQ;CACf;;CAGA,aAAmB;EACjB,KAAK,QAAQ,KAAA;CACf;CAEA,WAA+B;EAC7B,OAAO,KAAK;CACd;CAEA,WAAoB;EAClB,OAAO,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,SAAS;CAC3C;CAEA,YAAyB;EACvB,OAAO,KAAK;CACd;CAEA,iBAAsD;EACpD,OAAO;GACL,SAAS,oBAAoB,KAAK,YAAY,KAAK,aAAa;GAChE,QAAQ,mBAAmB,KAAK,eAAe,KAAK,OAAO;EAC7D;CACF;;;;;CAUA,gBACE,iBAMA;EACA,MAAM,OAAiF;GACrF,YAAY,KAAK;GACjB,KAAK,KAAK;GACV;EACF;EACA,IAAI,KAAK,OAAO,KAAK,SAAS,KAAK;EACnC,OAAO;CACT;;;;;;CAOA,aAAqB,iBAAkE;EACrF,MAAM,QAA0B,KAAK,gBAAgB,eAAe;EACpE,IAAI,KAAK,UAAU;GACjB,MAAM,gBAAgB,KAAK,SAAS;GACpC,IAAI,KAAK,SAAS,QAAQ,MAAM,SAAS,KAAK,SAAS;GACvD,IAAI,KAAK,SAAS,cAAc,MAAM,iBAAiB,KAAK,SAAS;EACvE;EACA,OAAO;CACT;CAMA,MAAM,cAAc,UAAkB,WAA8C;EAClF,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EASrB,OAAO,iBAAiB,OAAO;GAL7B,GAAG,KAAK,gBAAgB,YAAY;GACpC,WAAW;GACX,YAAY;EAGqB,GAAG,EAAE,WAAW,SAAS,CAAC;CAC/D;CAEA,MAAM,eACJ,UACA,WACA,YACA,WAC0B;EAC1B,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAWrB,OAAO,iBAAiB,OAAO;GAP7B,GAAG,KAAK,gBAAgB,aAAa;GACrC,WAAW;GACX,YAAY;GACZ,aAAa;GACb,YAAY;EAGqB,GAAG,EAAE,WAAW,SAAS,CAAC;CAC/D;CAEA,MAAM,oBAAoB,aAA+C;EACvE,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAQrB,OAAO,iBAAiB,OAAO;GAJ7B,GAAG,KAAK,gBAAgB,kBAAkB;GAC1C,cAAc;EAGmB,CAAC;CACtC;CAEA,MAAM,QACJ,kBACA,YAC0B;EAC1B,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EASrB,OAAO,iBAAiB,OAAO;GAL7B,GAAG,KAAK,gBAAgB,MAAM;GAC9B,mBAAmB;GACnB,aAAa;EAGoB,CAAC;CACtC;CAEA,MAAM,kBAA4C;EAChD,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAKrB,OAAO,iBAAiB,OAFQ,KAAK,aAAa,cAEf,CAAC;CACtC;CACA,MAAM,gBAA0C;EAC9C,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAKrB,OAAO,iBAAiB,OAFQ,KAAK,aAAa,YAEf,CAAC;CACtC;;;;;CAMA,gBAAgB,QAAgB,SAAwB;EACtD,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAAG;EASlC,iBAAiB,OAAO;GANtB,GAAG,KAAK,gBAAgB,cAAc;GACtC;GACA;EAI0B,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;CAC/C;CAMA,MAAM,gBAA0C;EAC9C,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAErB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EAQrB,OAAO,iBAAiB,OAAO;GAJ7B,GAAG,KAAK,gBAAgB,YAAY;GACpC,QAAQ;EAGyB,CAAC;CACtC;CAEA,MAAM,YAAY,YAAsF;EACtG,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAErB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EASrB,OAAO,iBAAiB,OAAO;GAL7B,GAAG,KAAK,gBAAgB,UAAU;GAClC,QAAQ;GACR,aAAa;EAGoB,CAAC;CACtC;CAEA,MAAM,qBACJ,gBACA,YACA,UACA,WAC0B;EAC1B,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAErB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EAYrB,OAAO,iBAAiB,OAAO;GAR7B,GAAG,KAAK,gBAAgB,mBAAmB;GAC3C,QAAQ;GACR,iBAAiB;GACjB,cAAc;GACd,WAAW;GACX,GAAI,cAAc,KAAA,IAAY,EAAE,YAAY,UAAU,IAAI,CAAC;EAG1B,CAAC;CACtC;CAEA,MAAM,oBACJ,gBACA,YACA,UACA,UACA,WAC0B;EAC1B,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAGrB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EAarB,OAAO,iBAAiB,OAAO;GAT7B,GAAG,KAAK,gBAAgB,kBAAkB;GAC1C,QAAQ;GACR,iBAAiB;GACjB,cAAc;GACd,WAAW;GACX;GACA,GAAI,cAAc,KAAA,IAAY,EAAE,YAAY,UAAU,IAAI,CAAC;EAG1B,CAAC;CACtC;CAEA,MAAM,aAAa,QAAmD;EACpE,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAGrB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EASrB,OAAO,iBAAiB,OAAO;GAL7B,GAAG,KAAK,gBAAgB,WAAW;GACnC,QAAQ;GACR;EAGiC,CAAC;CACtC;CAEA,MAAM,iBACJ,YACA,WACA,MACA,SACA,QAC0B;EAC1B,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAErB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EAarB,OAAO,iBAAiB,OAAO;GAT7B,GAAG,KAAK,gBAAgB,eAAe;GACvC,QAAQ;GACR,cAAc;GACd,YAAY;GACZ;GACA,GAAI,YAAY,KAAA,IAAY,EAAE,UAAU,QAAQ,IAAI,CAAC;GACrD,GAAI,WAAW,KAAA,IAAY,EAAE,OAAO,IAAI,CAAC;EAGR,CAAC;CACtC;CAEA,MAAM,eACJ,YACA,WACA,QACA,SACA,YAC0B;EAC1B,MAAM,QAAQ,KAAK,OAAO;EAC1B,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,YAAY;EAErB,MAAM,QAAQ,KAAK;EACnB,IAAI,CAAC,OACH,OAAO,YAAY;EAarB,OAAO,iBAAiB,OAAO;GAT7B,GAAG,KAAK,gBAAgB,aAAa;GACrC,QAAQ;GACR,cAAc;GACd,YAAY;GACZ;GACA,UAAU;GACV,aAAa;EAGoB,CAAC;CACtC;AACF"}
|
package/dist/hooks/types.d.ts
CHANGED
|
@@ -66,8 +66,28 @@ export interface HookStdinStop extends HookStdinBase {
|
|
|
66
66
|
assistant_message?: string;
|
|
67
67
|
stop_reason: 'complete' | 'aborted' | 'error';
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Describes the git worktree a session is running in. Absent for sessions
|
|
71
|
+
* started in an ordinary checkout.
|
|
72
|
+
*/
|
|
73
|
+
export interface SessionWorktreeInfo {
|
|
74
|
+
/** Absolute path to the worktree root. */
|
|
75
|
+
path: string;
|
|
76
|
+
/** Branch checked out in the worktree, when it can be resolved. */
|
|
77
|
+
branch?: string;
|
|
78
|
+
/** Absolute path to the main repository the worktree is linked to. */
|
|
79
|
+
mainRepoPath?: string;
|
|
80
|
+
}
|
|
69
81
|
export interface HookStdinSession extends HookStdinBase {
|
|
70
82
|
hook_event_name: 'SessionStart' | 'SessionEnd';
|
|
83
|
+
/**
|
|
84
|
+
* Set only when the session's project directory is a git worktree, so a hook
|
|
85
|
+
* can provision or tear down per-worktree resources (a database, a bucket, a
|
|
86
|
+
* dev server) and distinguish that from a session in the main checkout.
|
|
87
|
+
*/
|
|
88
|
+
worktree_path?: string;
|
|
89
|
+
branch?: string;
|
|
90
|
+
main_repo_path?: string;
|
|
71
91
|
}
|
|
72
92
|
export interface HookStdinNotification extends HookStdinBase {
|
|
73
93
|
hook_event_name: 'Notification';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,aAAa,GACb,MAAM,GACN,kBAAkB,GAClB,cAAc,GACd,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,UAAU,GACV,mBAAmB,GACnB,kBAAkB,GAClB,WAAW,GACX,eAAe,GACf,aAAa,CAAC;AAElB,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAE3E,yFAAyF;AACzF,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,UAAU,GACV,mBAAmB,GACnB,kBAAkB,GAClB,WAAW,GACX,eAAe,GACf,aAAa,CAAC;AAElB,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,KAAK,IAAI,iBAAiB,CAEhF;AAMD,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,IAAI,EAAE,SAAS,CAAC;IAChB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC;AAMD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,aAAa,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,eAAe,EAAE,YAAY,GAAG,aAAa,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,eAAe,EAAE,kBAAkB,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;CAC/C;AACD,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,eAAe,EAAE,cAAc,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/hooks/types.ts"],"sourcesContent":["/**\n * Type definitions for the hooks system.\n * Hooks are user-configured shell commands that run at lifecycle events.\n */\n\n// =============================================================================\n// Hook Event Names\n// =============================================================================\nexport type HookEventName =\n | 'PreToolUse'\n | 'PostToolUse'\n | 'Stop'\n | 'UserPromptSubmit'\n | 'SessionStart'\n | 'SessionEnd'\n | 'Notification'\n | 'AgentStart'\n | 'AgentEnd'\n | 'PermissionRequest'\n | 'PermissionResult'\n | 'Interrupt'\n | 'SubagentStart'\n | 'SubagentEnd';\n\nexport type BlockingHookEvent = 'PreToolUse' | 'Stop' | 'UserPromptSubmit';\n\n/** Lifecycle hook events are non-blocking: they observe behavior without changing it. */\nexport type LifecycleHookEvent =\n | 'AgentStart'\n | 'AgentEnd'\n | 'PermissionRequest'\n | 'PermissionResult'\n | 'Interrupt'\n | 'SubagentStart'\n | 'SubagentEnd';\n\nexport function isBlockingEvent(event: HookEventName): event is BlockingHookEvent {\n return event === 'PreToolUse' || event === 'Stop' || event === 'UserPromptSubmit';\n}\n\n// =============================================================================\n// Hook Configuration\n// =============================================================================\n\nexport interface HookMatcher {\n /** Regex pattern matched against tool_name (PreToolUse/PostToolUse only). */\n tool_name?: string;\n}\n\nexport interface HookDefinition {\n /** Hook type. Only \"command\" supported in phase 1. */\n type: 'command';\n /** Shell command to execute via /bin/sh -c. */\n command: string;\n /** Optional matcher to filter when this hook runs. */\n matcher?: HookMatcher;\n /** Timeout in ms. Default 10000. Process killed after timeout. */\n timeout?: number;\n /** Human-readable description for /hooks display. */\n description?: string;\n}\nexport interface HooksConfig {\n PreToolUse?: HookDefinition[];\n PostToolUse?: HookDefinition[];\n Stop?: HookDefinition[];\n UserPromptSubmit?: HookDefinition[];\n SessionStart?: HookDefinition[];\n SessionEnd?: HookDefinition[];\n Notification?: HookDefinition[];\n AgentStart?: HookDefinition[];\n AgentEnd?: HookDefinition[];\n PermissionRequest?: HookDefinition[];\n PermissionResult?: HookDefinition[];\n Interrupt?: HookDefinition[];\n SubagentStart?: HookDefinition[];\n SubagentEnd?: HookDefinition[];\n}\n\n// =============================================================================\n// Stdin Protocol (JSON sent to hook process)\n// =============================================================================\n\nexport interface HookStdinBase {\n session_id: string;\n cwd: string;\n hook_event_name: HookEventName;\n /**\n * Stable MastraCode-generated id for the active agent run. Present on events\n * emitted while a run is active (AgentStart..AgentEnd, tool hooks, Stop).\n * Absent outside a run (SessionStart, SessionEnd, Notification fired idle).\n */\n run_id?: string;\n}\n\nexport interface HookStdinToolEvent extends HookStdinBase {\n hook_event_name: 'PreToolUse' | 'PostToolUse';\n tool_name: string;\n tool_input: unknown;\n tool_output?: unknown;\n tool_error?: boolean;\n}\n\nexport interface HookStdinUserPrompt extends HookStdinBase {\n hook_event_name: 'UserPromptSubmit';\n user_message: string;\n}\n\nexport interface HookStdinStop extends HookStdinBase {\n hook_event_name: 'Stop';\n assistant_message?: string;\n stop_reason: 'complete' | 'aborted' | 'error';\n}\nexport interface HookStdinSession extends HookStdinBase {\n hook_event_name: 'SessionStart' | 'SessionEnd';\n}\n\nexport interface HookStdinNotification extends HookStdinBase {\n hook_event_name: 'Notification';\n /** Why the notification fired: agent_done, ask_question, tool_approval, plan_approval, sandbox_access */\n reason: string;\n /** Optional human-readable message for the notification. */\n message?: string;\n}\n\nexport interface HookStdinAgentStart extends HookStdinBase {\n hook_event_name: 'AgentStart';\n run_id: string;\n}\n\nexport interface HookStdinAgentEnd extends HookStdinBase {\n hook_event_name: 'AgentEnd';\n run_id: string;\n stop_reason: 'complete' | 'aborted' | 'error' | 'suspended';\n}\n\nexport type PermissionKind = 'tool_approval' | 'sandbox_access' | 'plan_approval';\n\nexport interface HookStdinPermissionRequest extends HookStdinBase {\n hook_event_name: 'PermissionRequest';\n run_id: string;\n permission_kind: PermissionKind;\n tool_call_id: string;\n tool_name: string;\n tool_input?: unknown;\n}\n\nexport type PermissionDecision = 'approved' | 'declined' | 'dismissed' | 'auto_approved' | 'auto_declined';\n\nexport interface HookStdinPermissionResult extends HookStdinBase {\n hook_event_name: 'PermissionResult';\n run_id: string;\n permission_kind: PermissionKind;\n tool_call_id: string;\n tool_name: string;\n tool_input?: unknown;\n decision: PermissionDecision;\n}\n\nexport type InterruptReason = 'user_interrupt' | 'goal_judge_interrupt' | 'process_sigint';\n\nexport interface HookStdinInterrupt extends HookStdinBase {\n hook_event_name: 'Interrupt';\n run_id: string;\n reason: InterruptReason;\n}\n\nexport interface HookStdinSubagentStart extends HookStdinBase {\n hook_event_name: 'SubagentStart';\n run_id: string;\n tool_call_id: string;\n agent_type: string;\n task: string;\n model_id?: string;\n forked?: boolean;\n}\n\nexport interface HookStdinSubagentEnd extends HookStdinBase {\n hook_event_name: 'SubagentEnd';\n run_id: string;\n tool_call_id: string;\n agent_type: string;\n result: unknown;\n is_error: boolean;\n duration_ms: number;\n}\n\nexport type HookStdin =\n | HookStdinToolEvent\n | HookStdinUserPrompt\n | HookStdinStop\n | HookStdinSession\n | HookStdinNotification\n | HookStdinAgentStart\n | HookStdinAgentEnd\n | HookStdinPermissionRequest\n | HookStdinPermissionResult\n | HookStdinInterrupt\n | HookStdinSubagentStart\n | HookStdinSubagentEnd;\n\n// =============================================================================\n// Stdout Protocol (JSON read from hook process)\n// =============================================================================\n\nexport interface HookStdout {\n decision?: 'allow' | 'block';\n reason?: string;\n additionalContext?: string;\n}\n\n// =============================================================================\n// Execution Results\n// =============================================================================\n\nexport interface HookResult {\n hook: HookDefinition;\n exitCode: number;\n stdout?: HookStdout;\n stderr?: string;\n timedOut: boolean;\n durationMs: number;\n}\n\nexport interface HookEventResult {\n allowed: boolean;\n blockReason?: string;\n additionalContext?: string;\n results: HookResult[];\n warnings: string[];\n}\n"],"mappings":";AAoCA,SAAgB,gBAAgB,OAAkD;CAChF,OAAO,UAAU,gBAAgB,UAAU,UAAU,UAAU;AACjE"}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/hooks/types.ts"],"sourcesContent":["/**\n * Type definitions for the hooks system.\n * Hooks are user-configured shell commands that run at lifecycle events.\n */\n\n// =============================================================================\n// Hook Event Names\n// =============================================================================\nexport type HookEventName =\n | 'PreToolUse'\n | 'PostToolUse'\n | 'Stop'\n | 'UserPromptSubmit'\n | 'SessionStart'\n | 'SessionEnd'\n | 'Notification'\n | 'AgentStart'\n | 'AgentEnd'\n | 'PermissionRequest'\n | 'PermissionResult'\n | 'Interrupt'\n | 'SubagentStart'\n | 'SubagentEnd';\n\nexport type BlockingHookEvent = 'PreToolUse' | 'Stop' | 'UserPromptSubmit';\n\n/** Lifecycle hook events are non-blocking: they observe behavior without changing it. */\nexport type LifecycleHookEvent =\n | 'AgentStart'\n | 'AgentEnd'\n | 'PermissionRequest'\n | 'PermissionResult'\n | 'Interrupt'\n | 'SubagentStart'\n | 'SubagentEnd';\n\nexport function isBlockingEvent(event: HookEventName): event is BlockingHookEvent {\n return event === 'PreToolUse' || event === 'Stop' || event === 'UserPromptSubmit';\n}\n\n// =============================================================================\n// Hook Configuration\n// =============================================================================\n\nexport interface HookMatcher {\n /** Regex pattern matched against tool_name (PreToolUse/PostToolUse only). */\n tool_name?: string;\n}\n\nexport interface HookDefinition {\n /** Hook type. Only \"command\" supported in phase 1. */\n type: 'command';\n /** Shell command to execute via /bin/sh -c. */\n command: string;\n /** Optional matcher to filter when this hook runs. */\n matcher?: HookMatcher;\n /** Timeout in ms. Default 10000. Process killed after timeout. */\n timeout?: number;\n /** Human-readable description for /hooks display. */\n description?: string;\n}\nexport interface HooksConfig {\n PreToolUse?: HookDefinition[];\n PostToolUse?: HookDefinition[];\n Stop?: HookDefinition[];\n UserPromptSubmit?: HookDefinition[];\n SessionStart?: HookDefinition[];\n SessionEnd?: HookDefinition[];\n Notification?: HookDefinition[];\n AgentStart?: HookDefinition[];\n AgentEnd?: HookDefinition[];\n PermissionRequest?: HookDefinition[];\n PermissionResult?: HookDefinition[];\n Interrupt?: HookDefinition[];\n SubagentStart?: HookDefinition[];\n SubagentEnd?: HookDefinition[];\n}\n\n// =============================================================================\n// Stdin Protocol (JSON sent to hook process)\n// =============================================================================\n\nexport interface HookStdinBase {\n session_id: string;\n cwd: string;\n hook_event_name: HookEventName;\n /**\n * Stable MastraCode-generated id for the active agent run. Present on events\n * emitted while a run is active (AgentStart..AgentEnd, tool hooks, Stop).\n * Absent outside a run (SessionStart, SessionEnd, Notification fired idle).\n */\n run_id?: string;\n}\n\nexport interface HookStdinToolEvent extends HookStdinBase {\n hook_event_name: 'PreToolUse' | 'PostToolUse';\n tool_name: string;\n tool_input: unknown;\n tool_output?: unknown;\n tool_error?: boolean;\n}\n\nexport interface HookStdinUserPrompt extends HookStdinBase {\n hook_event_name: 'UserPromptSubmit';\n user_message: string;\n}\n\nexport interface HookStdinStop extends HookStdinBase {\n hook_event_name: 'Stop';\n assistant_message?: string;\n stop_reason: 'complete' | 'aborted' | 'error';\n}\n/**\n * Describes the git worktree a session is running in. Absent for sessions\n * started in an ordinary checkout.\n */\nexport interface SessionWorktreeInfo {\n /** Absolute path to the worktree root. */\n path: string;\n /** Branch checked out in the worktree, when it can be resolved. */\n branch?: string;\n /** Absolute path to the main repository the worktree is linked to. */\n mainRepoPath?: string;\n}\n\nexport interface HookStdinSession extends HookStdinBase {\n hook_event_name: 'SessionStart' | 'SessionEnd';\n /**\n * Set only when the session's project directory is a git worktree, so a hook\n * can provision or tear down per-worktree resources (a database, a bucket, a\n * dev server) and distinguish that from a session in the main checkout.\n */\n worktree_path?: string;\n branch?: string;\n main_repo_path?: string;\n}\n\nexport interface HookStdinNotification extends HookStdinBase {\n hook_event_name: 'Notification';\n /** Why the notification fired: agent_done, ask_question, tool_approval, plan_approval, sandbox_access */\n reason: string;\n /** Optional human-readable message for the notification. */\n message?: string;\n}\n\nexport interface HookStdinAgentStart extends HookStdinBase {\n hook_event_name: 'AgentStart';\n run_id: string;\n}\n\nexport interface HookStdinAgentEnd extends HookStdinBase {\n hook_event_name: 'AgentEnd';\n run_id: string;\n stop_reason: 'complete' | 'aborted' | 'error' | 'suspended';\n}\n\nexport type PermissionKind = 'tool_approval' | 'sandbox_access' | 'plan_approval';\n\nexport interface HookStdinPermissionRequest extends HookStdinBase {\n hook_event_name: 'PermissionRequest';\n run_id: string;\n permission_kind: PermissionKind;\n tool_call_id: string;\n tool_name: string;\n tool_input?: unknown;\n}\n\nexport type PermissionDecision = 'approved' | 'declined' | 'dismissed' | 'auto_approved' | 'auto_declined';\n\nexport interface HookStdinPermissionResult extends HookStdinBase {\n hook_event_name: 'PermissionResult';\n run_id: string;\n permission_kind: PermissionKind;\n tool_call_id: string;\n tool_name: string;\n tool_input?: unknown;\n decision: PermissionDecision;\n}\n\nexport type InterruptReason = 'user_interrupt' | 'goal_judge_interrupt' | 'process_sigint';\n\nexport interface HookStdinInterrupt extends HookStdinBase {\n hook_event_name: 'Interrupt';\n run_id: string;\n reason: InterruptReason;\n}\n\nexport interface HookStdinSubagentStart extends HookStdinBase {\n hook_event_name: 'SubagentStart';\n run_id: string;\n tool_call_id: string;\n agent_type: string;\n task: string;\n model_id?: string;\n forked?: boolean;\n}\n\nexport interface HookStdinSubagentEnd extends HookStdinBase {\n hook_event_name: 'SubagentEnd';\n run_id: string;\n tool_call_id: string;\n agent_type: string;\n result: unknown;\n is_error: boolean;\n duration_ms: number;\n}\n\nexport type HookStdin =\n | HookStdinToolEvent\n | HookStdinUserPrompt\n | HookStdinStop\n | HookStdinSession\n | HookStdinNotification\n | HookStdinAgentStart\n | HookStdinAgentEnd\n | HookStdinPermissionRequest\n | HookStdinPermissionResult\n | HookStdinInterrupt\n | HookStdinSubagentStart\n | HookStdinSubagentEnd;\n\n// =============================================================================\n// Stdout Protocol (JSON read from hook process)\n// =============================================================================\n\nexport interface HookStdout {\n decision?: 'allow' | 'block';\n reason?: string;\n additionalContext?: string;\n}\n\n// =============================================================================\n// Execution Results\n// =============================================================================\n\nexport interface HookResult {\n hook: HookDefinition;\n exitCode: number;\n stdout?: HookStdout;\n stderr?: string;\n timedOut: boolean;\n durationMs: number;\n}\n\nexport interface HookEventResult {\n allowed: boolean;\n blockReason?: string;\n additionalContext?: string;\n results: HookResult[];\n warnings: string[];\n}\n"],"mappings":";AAoCA,SAAgB,gBAAgB,OAAkD;CAChF,OAAO,UAAU,gBAAgB,UAAU,UAAU,UAAU;AACjE"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Agent } from '@mastra/core/agent';
|
|
1
2
|
import { AgentController } from '@mastra/core/agent-controller';
|
|
2
3
|
import type { IntervalHandler, AgentControllerConfig, AgentControllerMode, AgentControllerSubagent, Session } from '@mastra/core/agent-controller';
|
|
3
4
|
import type { PubSub } from '@mastra/core/events';
|
|
@@ -127,7 +128,43 @@ export declare function createMastraCodeAgentController(config?: MastraCodeConfi
|
|
|
127
128
|
githubSignals: GithubSignals | undefined;
|
|
128
129
|
sessionId: string;
|
|
129
130
|
ownerId: string;
|
|
131
|
+
projectPath: string;
|
|
132
|
+
codeAgent: Agent<string, import("@mastra/core/agent").ToolsInput, undefined, unknown, import("@mastra/core/agent").AgentEditorConfig | undefined>;
|
|
130
133
|
setActiveSession: (session: Session<MastraCodeState>) => void;
|
|
134
|
+
/**
|
|
135
|
+
* Starts the signal providers contributed by plugins. Called by the
|
|
136
|
+
* composition layer once the controller is inited, because that is when a
|
|
137
|
+
* Mastra instance exists — a provider without one has no storage, and
|
|
138
|
+
* nothing else will hand it one: the Agent propagates Mastra only to the
|
|
139
|
+
* providers in its own `signals` array, which these deliberately are not in.
|
|
140
|
+
*/
|
|
141
|
+
startPluginSignalProviders: () => void;
|
|
142
|
+
/**
|
|
143
|
+
* Stops every plugin-contributed signal provider and stops listening for
|
|
144
|
+
* plugin reloads. The inverse of `startPluginSignalProviders`, for an
|
|
145
|
+
* embedder that is done with this controller: a `pluginManager` shared
|
|
146
|
+
* across controllers (`MastraCodeConfig.pluginManager`) outlives any one of
|
|
147
|
+
* them, so without this its providers keep polling and its reload listener
|
|
148
|
+
* keeps firing for a controller that is gone.
|
|
149
|
+
*/
|
|
150
|
+
stopPluginSignalProviders: () => void;
|
|
151
|
+
/**
|
|
152
|
+
* Hands Mastra to the statically configured input processors.
|
|
153
|
+
*
|
|
154
|
+
* The Agent does this itself, but only for processors configured as a
|
|
155
|
+
* plain array (`Array.isArray` in `__registerMastra`). This lane is a
|
|
156
|
+
* function so plugins can contribute to it, which takes those processors
|
|
157
|
+
* out of that branch — including any an embedder passed as
|
|
158
|
+
* `config.inputProcessors`, some of which need Mastra to work at all
|
|
159
|
+
* (`CostGuardProcessor` reads observability storage there). Doing it here
|
|
160
|
+
* keeps that unchanged.
|
|
161
|
+
*
|
|
162
|
+
* Plugin processors are deliberately not included: they come and go with
|
|
163
|
+
* their plugin, and the registry keeps the first instance registered under
|
|
164
|
+
* an id forever, which would leave a retired instance behind. Plugins
|
|
165
|
+
* reach Mastra through `getController()` on the plugin context instead.
|
|
166
|
+
*/
|
|
167
|
+
registerConfiguredProcessorsWithMastra: () => void;
|
|
131
168
|
}>;
|
|
132
169
|
/**
|
|
133
170
|
* Result of {@link createMastraCodeAgentController}: every shared resource plus the
|
|
@@ -174,7 +211,43 @@ export declare function bootLocalAgentController(config?: MastraCodeConfig): Pro
|
|
|
174
211
|
githubSignals: GithubSignals | undefined;
|
|
175
212
|
sessionId: string;
|
|
176
213
|
ownerId: string;
|
|
214
|
+
projectPath: string;
|
|
215
|
+
codeAgent: Agent<string, import("@mastra/core/agent").ToolsInput, undefined, unknown, import("@mastra/core/agent").AgentEditorConfig | undefined>;
|
|
177
216
|
setActiveSession: (session: Session<MastraCodeState>) => void;
|
|
217
|
+
/**
|
|
218
|
+
* Starts the signal providers contributed by plugins. Called by the
|
|
219
|
+
* composition layer once the controller is inited, because that is when a
|
|
220
|
+
* Mastra instance exists — a provider without one has no storage, and
|
|
221
|
+
* nothing else will hand it one: the Agent propagates Mastra only to the
|
|
222
|
+
* providers in its own `signals` array, which these deliberately are not in.
|
|
223
|
+
*/
|
|
224
|
+
startPluginSignalProviders: () => void;
|
|
225
|
+
/**
|
|
226
|
+
* Stops every plugin-contributed signal provider and stops listening for
|
|
227
|
+
* plugin reloads. The inverse of `startPluginSignalProviders`, for an
|
|
228
|
+
* embedder that is done with this controller: a `pluginManager` shared
|
|
229
|
+
* across controllers (`MastraCodeConfig.pluginManager`) outlives any one of
|
|
230
|
+
* them, so without this its providers keep polling and its reload listener
|
|
231
|
+
* keeps firing for a controller that is gone.
|
|
232
|
+
*/
|
|
233
|
+
stopPluginSignalProviders: () => void;
|
|
234
|
+
/**
|
|
235
|
+
* Hands Mastra to the statically configured input processors.
|
|
236
|
+
*
|
|
237
|
+
* The Agent does this itself, but only for processors configured as a
|
|
238
|
+
* plain array (`Array.isArray` in `__registerMastra`). This lane is a
|
|
239
|
+
* function so plugins can contribute to it, which takes those processors
|
|
240
|
+
* out of that branch — including any an embedder passed as
|
|
241
|
+
* `config.inputProcessors`, some of which need Mastra to work at all
|
|
242
|
+
* (`CostGuardProcessor` reads observability storage there). Doing it here
|
|
243
|
+
* keeps that unchanged.
|
|
244
|
+
*
|
|
245
|
+
* Plugin processors are deliberately not included: they come and go with
|
|
246
|
+
* their plugin, and the registry keeps the first instance registered under
|
|
247
|
+
* an id forever, which would leave a retired instance behind. Plugins
|
|
248
|
+
* reach Mastra through `getController()` on the plugin context instead.
|
|
249
|
+
*/
|
|
250
|
+
registerConfiguredProcessorsWithMastra: () => void;
|
|
178
251
|
}>;
|
|
179
252
|
/** Result of {@link mountAgentControllerOnMastra}: shared handles plus the owning Mastra. */
|
|
180
253
|
export type MountedMastraCode = MastraCodeAgentController & {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|