fourmis-agents-sdk 0.3.1 → 0.4.1
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.md +126 -198
- package/dist/agent-loop.d.ts +21 -3
- package/dist/agent-loop.d.ts.map +1 -1
- package/dist/agent-loop.js +279 -90
- package/dist/agents/index.js +1079 -124
- package/dist/agents/tools.d.ts.map +1 -1
- package/dist/agents/tools.js +1079 -124
- package/dist/agents/types.d.ts +4 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/api.d.ts +8 -5
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1663 -430
- package/dist/hooks.d.ts +19 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +27 -2
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1671 -431
- package/dist/mcp/client.d.ts +8 -1
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +134 -13
- package/dist/mcp/index.js +134 -13
- package/dist/mcp/types.d.ts +21 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +7 -3
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +41 -2
- package/dist/providers/openai.d.ts +6 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +36 -6
- package/dist/providers/registry.js +76 -8
- package/dist/providers/types.d.ts +4 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/query.d.ts +21 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +69 -1
- package/dist/skills/index.js +23 -1
- package/dist/skills/skills.d.ts +16 -0
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +23 -1
- package/dist/tools/ask-user-question.d.ts +7 -0
- package/dist/tools/ask-user-question.d.ts.map +1 -0
- package/dist/tools/ask-user-question.js +48 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +47 -2
- package/dist/tools/config.d.ts +7 -0
- package/dist/tools/config.d.ts.map +1 -0
- package/dist/tools/config.js +114 -0
- package/dist/tools/exit-plan-mode.d.ts +7 -0
- package/dist/tools/exit-plan-mode.d.ts.map +1 -0
- package/dist/tools/exit-plan-mode.js +34 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +506 -9
- package/dist/tools/notebook-edit.d.ts +7 -0
- package/dist/tools/notebook-edit.d.ts.map +1 -0
- package/dist/tools/notebook-edit.js +83 -0
- package/dist/tools/presets.d.ts +2 -1
- package/dist/tools/presets.d.ts.map +1 -1
- package/dist/tools/presets.js +22 -4
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +12 -1
- package/dist/tools/registry.d.ts +2 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +10 -0
- package/dist/tools/todo-write.d.ts +7 -0
- package/dist/tools/todo-write.d.ts.map +1 -0
- package/dist/tools/todo-write.js +69 -0
- package/dist/tools/web-fetch.d.ts +6 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +85 -0
- package/dist/tools/web-search.d.ts +7 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +78 -0
- package/dist/types.d.ts +344 -42
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/session-store.d.ts +1 -1
- package/dist/utils/session-store.d.ts.map +1 -1
- package/dist/utils/session-store.js +49 -2
- package/dist/utils/system-prompt.d.ts +2 -0
- package/dist/utils/system-prompt.d.ts.map +1 -1
- package/dist/utils/system-prompt.js +33 -4
- package/package.json +3 -2
package/dist/hooks.d.ts
CHANGED
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
* - PermissionRequest: when a permission decision is needed
|
|
14
14
|
* - UserPromptSubmit: when a user prompt is submitted
|
|
15
15
|
*/
|
|
16
|
-
export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "UserPromptSubmit", "SessionStart", "SessionEnd", "Stop", "SubagentStart", "SubagentStop", "PreCompact", "PermissionRequest"];
|
|
16
|
+
export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "UserPromptSubmit", "SessionStart", "SessionEnd", "Stop", "SubagentStart", "SubagentStop", "PreCompact", "PermissionRequest", "Setup", "TeammateIdle", "TaskCompleted"];
|
|
17
17
|
export type HookEvent = (typeof HOOK_EVENTS)[number];
|
|
18
18
|
export type HookInput = {
|
|
19
19
|
/** The hook event type */
|
|
20
20
|
event: HookEvent;
|
|
21
|
+
/** Claude-compatible hook event field name */
|
|
22
|
+
hook_event_name?: HookEvent;
|
|
21
23
|
/** Tool name (for tool-related events) */
|
|
22
24
|
tool_name?: string;
|
|
23
25
|
/** Tool input (for PreToolUse) */
|
|
@@ -28,6 +30,9 @@ export type HookInput = {
|
|
|
28
30
|
tool_error?: boolean;
|
|
29
31
|
/** Session ID */
|
|
30
32
|
session_id?: string;
|
|
33
|
+
transcript_path?: string;
|
|
34
|
+
cwd?: string;
|
|
35
|
+
permission_mode?: string;
|
|
31
36
|
/** Agent/subagent type (for SubagentStart/SubagentStop) */
|
|
32
37
|
agent_type?: string;
|
|
33
38
|
/** Stop reason (for Stop) */
|
|
@@ -38,6 +43,17 @@ export type HookInput = {
|
|
|
38
43
|
[key: string]: unknown;
|
|
39
44
|
};
|
|
40
45
|
export type SyncHookJSONOutput = {
|
|
46
|
+
/** Claude-compatible continuation field */
|
|
47
|
+
continue?: boolean;
|
|
48
|
+
/** Claude-compatible permission decision envelope */
|
|
49
|
+
decision?: {
|
|
50
|
+
behavior: "allow";
|
|
51
|
+
updatedInput?: Record<string, unknown>;
|
|
52
|
+
updatedPermissions?: import("./types.ts").PermissionUpdate[];
|
|
53
|
+
} | {
|
|
54
|
+
behavior: "deny";
|
|
55
|
+
message: string;
|
|
56
|
+
};
|
|
41
57
|
/** For PreToolUse: override the permission decision */
|
|
42
58
|
permissionDecision?: "allow" | "deny";
|
|
43
59
|
/** For PreToolUse: replace the tool input */
|
|
@@ -55,6 +71,8 @@ export type HookCallbackMatcher = {
|
|
|
55
71
|
matcher?: string;
|
|
56
72
|
/** Callbacks to run when the matcher matches. */
|
|
57
73
|
hooks: HookCallback[];
|
|
74
|
+
/** Timeout in seconds for all hooks in this matcher. */
|
|
75
|
+
timeout?: number;
|
|
58
76
|
};
|
|
59
77
|
export declare class HookManager {
|
|
60
78
|
private hookMap;
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,eAAO,MAAM,WAAW,sPAgBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAIrD,MAAM,MAAM,SAAS,GAAG;IACtB,0BAA0B;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,kBAAkB,CAAC,EAAE,OAAO,YAAY,EAAE,gBAAgB,EAAE,CAAC;KAC9D,GAAG;QACF,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACtC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,KAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAMF,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAoD;gBAEvD,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAIrE,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAKnC;;;OAGG;IACG,IAAI,CACR,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,GAC7B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAsFtC"}
|
package/dist/hooks.js
CHANGED
|
@@ -25,7 +25,10 @@ var HOOK_EVENTS = [
|
|
|
25
25
|
"SubagentStart",
|
|
26
26
|
"SubagentStop",
|
|
27
27
|
"PreCompact",
|
|
28
|
-
"PermissionRequest"
|
|
28
|
+
"PermissionRequest",
|
|
29
|
+
"Setup",
|
|
30
|
+
"TeammateIdle",
|
|
31
|
+
"TaskCompleted"
|
|
29
32
|
];
|
|
30
33
|
var TOOL_EVENTS = new Set(["PreToolUse", "PostToolUse", "PostToolUseFailure"]);
|
|
31
34
|
|
|
@@ -57,9 +60,31 @@ class HookManager {
|
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
for (const callback of entry.hooks) {
|
|
60
|
-
const
|
|
63
|
+
const timeoutMs = typeof entry.timeout === "number" && entry.timeout > 0 ? Math.floor(entry.timeout * 1000) : null;
|
|
64
|
+
const invoke = callback(input, toolUseId, { signal });
|
|
65
|
+
const result = timeoutMs ? await Promise.race([
|
|
66
|
+
invoke,
|
|
67
|
+
new Promise((resolve) => {
|
|
68
|
+
setTimeout(() => resolve({}), timeoutMs);
|
|
69
|
+
})
|
|
70
|
+
]) : await invoke;
|
|
61
71
|
if (result) {
|
|
62
72
|
hasOutput = true;
|
|
73
|
+
if (result.continue === false && !result.permissionDecision) {
|
|
74
|
+
merged.permissionDecision = "deny";
|
|
75
|
+
}
|
|
76
|
+
if (result.decision) {
|
|
77
|
+
if (result.decision.behavior === "deny") {
|
|
78
|
+
merged.permissionDecision = "deny";
|
|
79
|
+
} else {
|
|
80
|
+
if (!merged.permissionDecision) {
|
|
81
|
+
merged.permissionDecision = "allow";
|
|
82
|
+
}
|
|
83
|
+
if (result.decision.updatedInput !== undefined) {
|
|
84
|
+
merged.updatedInput = result.decision.updatedInput;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
63
88
|
if (result.permissionDecision) {
|
|
64
89
|
if (!merged.permissionDecision || result.permissionDecision === "deny") {
|
|
65
90
|
merged.permissionDecision = result.permissionDecision;
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Public API entry point.
|
|
5
5
|
*/
|
|
6
6
|
export { query } from "./api.js";
|
|
7
|
-
export type { AgentMessage,
|
|
7
|
+
export type { AgentMessage, TextContent, ToolUseContent, ToolResultContent, ContentBlock, ApiKeySource, SDKStatus, SDKSystemMessage, SDKStatusMessage, SDKAssistantMessage, SDKUserMessage, SDKUserMessageReplay, SDKStreamEvent, SDKPartialAssistantMessage, SDKToolProgressMessage, SDKToolUseSummaryMessage, SDKTaskNotificationMessage, SDKAuthStatusMessage, SDKCompactBoundaryMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKFilesPersistedEvent, SDKPermissionDenial, SDKResultSuccess, SDKResultError, SDKMessage, QueryOptions, Query, SlashCommand, AccountInfo, RewindFilesResult, McpSetServersResult, QueryInitializationResult, TokenUsage, ModelUsage, PermissionMode, PermissionBehavior, PermissionResult, PermissionRuleValue, PermissionUpdate, PermissionUpdateDestination, PermissionsConfig, CanUseTool, SettingSource, } from "./types.js";
|
|
8
8
|
export { SettingsManager } from "./settings.js";
|
|
9
9
|
export type { ProviderAdapter, ChatRequest, ChatChunk, ToolDefinition, NormalizedMessage, ProviderFeature, ModelInfo, } from "./providers/types.js";
|
|
10
10
|
export type { ToolImplementation, ToolResult, ToolContext } from "./tools/registry.js";
|
|
@@ -17,6 +17,13 @@ export { WriteTool } from "./tools/write.js";
|
|
|
17
17
|
export { EditTool } from "./tools/edit.js";
|
|
18
18
|
export { GlobTool } from "./tools/glob.js";
|
|
19
19
|
export { GrepTool } from "./tools/grep.js";
|
|
20
|
+
export { NotebookEditTool } from "./tools/notebook-edit.js";
|
|
21
|
+
export { WebFetchTool } from "./tools/web-fetch.js";
|
|
22
|
+
export { WebSearchTool } from "./tools/web-search.js";
|
|
23
|
+
export { AskUserQuestionTool } from "./tools/ask-user-question.js";
|
|
24
|
+
export { TodoWriteTool } from "./tools/todo-write.js";
|
|
25
|
+
export { ConfigTool } from "./tools/config.js";
|
|
26
|
+
export { ExitPlanModeTool } from "./tools/exit-plan-mode.js";
|
|
20
27
|
export { HookManager, HOOK_EVENTS } from "./hooks.js";
|
|
21
28
|
export type { HookEvent, HookCallback, HookCallbackMatcher, HookInput, SyncHookJSONOutput, } from "./hooks.js";
|
|
22
29
|
export { McpClientManager } from "./mcp/client.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,YAAY,EACV,YAAY,EACZ,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|