goatchain 0.0.27 → 0.0.29
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 +3 -24
- package/dist/agent/hooks/index.d.ts +1 -1
- package/dist/agent/hooks/manager.d.ts +5 -5
- package/dist/agent/hooks/types.d.ts +0 -3
- package/dist/agent/index.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +344 -345
- package/dist/middleware/skillsMiddleware.d.ts +11 -1
- package/dist/tool/builtin/bash.d.ts +0 -24
- package/dist/tool/builtin/edit.d.ts +0 -12
- package/dist/tool/builtin/grep.d.ts +3 -0
- package/dist/tool/builtin/write.d.ts +0 -13
- package/package.json +1 -1
- package/dist/tool/builtin/pathProtection.d.ts +0 -25
package/README.md
CHANGED
|
@@ -563,11 +563,11 @@ tools.register(
|
|
|
563
563
|
| Tool | What it does | How `cwd` is applied | Per-call override | Extra sandbox options |
|
|
564
564
|
| --- | --- | --- | --- | --- |
|
|
565
565
|
| `ReadTool` | Reads files (and some converted formats) | Relative `file_path` resolves from `cwd` | `file_path` can be absolute | `allowedDirectory`, `fileBlacklist`, `disableBlacklist` |
|
|
566
|
-
| `WriteTool` | Writes/overwrites files | Relative `file_path` resolves from `cwd` | `file_path` can be absolute | `allowedDirectory`, `
|
|
567
|
-
| `EditTool` | Replaces `old_string` with `new_string` in a file | Relative `file_path` resolves from `cwd` | `file_path` can be absolute | `
|
|
566
|
+
| `WriteTool` | Writes/overwrites files | Relative `file_path` resolves from `cwd` | `file_path` can be absolute | `allowedDirectory`, `fileBlacklist`, `disableBlacklist` |
|
|
567
|
+
| `EditTool` | Replaces `old_string` with `new_string` in a file | Relative `file_path` resolves from `cwd` | `file_path` can be absolute | `fileBlacklist`, `disableBlacklist` |
|
|
568
568
|
| `GlobTool` | Finds files by pattern | Search root defaults to `cwd` | `path` argument can change search root | `fileBlacklist`, `disableBlacklist` |
|
|
569
569
|
| `GrepTool` | Searches text content in files | Search runs under `cwd` | `path` argument narrows search scope | `fileBlacklist`, `disableBlacklist` |
|
|
570
|
-
| `BashTool` | Runs shell commands | Commands execute in `cwd` | `workdir` argument overrides per call |
|
|
570
|
+
| `BashTool` | Runs shell commands | Commands execute in `cwd` | `workdir` argument overrides per call | None |
|
|
571
571
|
|
|
572
572
|
**Directory & Protection Options:**
|
|
573
573
|
|
|
@@ -575,24 +575,6 @@ tools.register(
|
|
|
575
575
|
| ------------------ | ------------------------------------------------------------------- | ------------------------------------- |
|
|
576
576
|
| `cwd` | Working directory for resolving relative paths | `{ cwd: '/app/output' }` |
|
|
577
577
|
| `allowedDirectory` | Restrict file access to this directory only (blocks path traversal) | `{ allowedDirectory: '/app/output' }` |
|
|
578
|
-
| `readOnlyPaths` | Mark paths/directories as read-only for write-like operations | `{ readOnlyPaths: ['docs', { path: '.env', reason: 'secrets' }] }` |
|
|
579
|
-
|
|
580
|
-
`readOnlyPaths` is supported by `WriteTool`, `EditTool`, and `BashTool`.
|
|
581
|
-
Use it to protect specific directories/files from modifications while still allowing reads/searches.
|
|
582
|
-
|
|
583
|
-
```typescript
|
|
584
|
-
const tools = new ToolRegistry()
|
|
585
|
-
|
|
586
|
-
const readOnlyPaths = [
|
|
587
|
-
'docs', // relative to cwd
|
|
588
|
-
{ path: '.env', reason: 'Secrets file must not be modified' },
|
|
589
|
-
{ path: '/absolute/path/to/protected-dir', reason: 'Managed by another system' },
|
|
590
|
-
]
|
|
591
|
-
|
|
592
|
-
tools.register(new WriteTool({ cwd: OUTPUT_DIR, readOnlyPaths }))
|
|
593
|
-
tools.register(new EditTool({ cwd: OUTPUT_DIR, readOnlyPaths }))
|
|
594
|
-
tools.register(new BashTool({ cwd: OUTPUT_DIR, readOnlyPaths }))
|
|
595
|
-
```
|
|
596
578
|
|
|
597
579
|
**When to use `allowedDirectory`:**
|
|
598
580
|
|
|
@@ -728,9 +710,6 @@ interface ToolHookContext extends BaseHookContext {
|
|
|
728
710
|
toolContext: ToolExecutionContext
|
|
729
711
|
}
|
|
730
712
|
|
|
731
|
-
// `HookContext` is kept as a backward-compatible alias of ToolHookContext
|
|
732
|
-
type HookContext = ToolHookContext
|
|
733
|
-
|
|
734
713
|
interface PermissionRequestResult {
|
|
735
714
|
// If true, passes permission checks and skips approval flow
|
|
736
715
|
// (tool still goes through normal middleware/disabled checks)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { HookManager } from './manager';
|
|
2
|
-
export type { AgentHooks, BaseHookContext,
|
|
2
|
+
export type { AgentHooks, BaseHookContext, PermissionRequestHook, PermissionRequestResult, PostToolUseFailureHook, PostToolUseHook, PreToolUseHook, PreToolUseResult, SessionEndContext, SessionEndHook, SessionStartContext, SessionStartHook, StopContext, StopHook, SubagentStartContext, SubagentStartHook, SubagentStopContext, SubagentStopHook, ToolHookContext, ToolHooks, UserPromptSubmitContext, UserPromptSubmitHook, UserPromptSubmitResult, } from './types';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type { AgentHooks,
|
|
1
|
+
import type { AgentHooks, PermissionRequestResult, PreToolUseResult, SessionEndContext, SessionStartContext, SubagentStartContext, StopContext, SubagentStopContext, ToolHookContext, UserPromptSubmitContext, UserPromptSubmitResult } from './types';
|
|
2
2
|
export declare class HookManager {
|
|
3
3
|
private readonly hooks;
|
|
4
4
|
constructor(hooks?: AgentHooks);
|
|
5
|
-
executePermissionRequest(context:
|
|
6
|
-
executePreToolUse(context:
|
|
5
|
+
executePermissionRequest(context: ToolHookContext): Promise<PermissionRequestResult>;
|
|
6
|
+
executePreToolUse(context: ToolHookContext): Promise<PreToolUseResult | void>;
|
|
7
7
|
executeUserPromptSubmit(context: UserPromptSubmitContext): Promise<UserPromptSubmitResult>;
|
|
8
8
|
executeSessionStart(context: SessionStartContext): Promise<void>;
|
|
9
9
|
executeSessionEnd(context: SessionEndContext): Promise<void>;
|
|
10
|
-
executePostToolUse(context:
|
|
11
|
-
executePostToolUseFailure(context:
|
|
10
|
+
executePostToolUse(context: ToolHookContext, result: unknown): Promise<void>;
|
|
11
|
+
executePostToolUseFailure(context: ToolHookContext, error: Error): Promise<void>;
|
|
12
12
|
executeStop(context: StopContext): Promise<void>;
|
|
13
13
|
executeSubagentStart(context: SubagentStartContext): Promise<void>;
|
|
14
14
|
executeSubagentStop(context: SubagentStopContext): Promise<void>;
|
|
@@ -6,14 +6,11 @@ export interface BaseHookContext {
|
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Context for tool-level hooks (PermissionRequest, PreToolUse, PostToolUse, PostToolUseFailure).
|
|
9
|
-
* Also exported as `HookContext` for backward compatibility.
|
|
10
9
|
*/
|
|
11
10
|
export interface ToolHookContext extends BaseHookContext {
|
|
12
11
|
toolCall: ToolCall;
|
|
13
12
|
toolContext: ToolExecutionContext;
|
|
14
13
|
}
|
|
15
|
-
/** @deprecated Use `ToolHookContext` instead. Kept for backward compatibility. */
|
|
16
|
-
export type HookContext = ToolHookContext;
|
|
17
14
|
export interface SessionStartContext extends BaseHookContext {
|
|
18
15
|
/** Whether this run starts from a new session or a resumed state/checkpoint. */
|
|
19
16
|
startReason: 'new' | 'resume';
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type { ToCheckpointOptions } from '../session/handlers/CheckpointManager'
|
|
|
6
6
|
export { Agent } from './agent';
|
|
7
7
|
export { AgentAbortError, AgentMaxIterationsError, AgentPauseError, ensureNotAborted } from './errors';
|
|
8
8
|
export { HookManager } from './hooks';
|
|
9
|
-
export type { AgentHooks, BaseHookContext,
|
|
9
|
+
export type { AgentHooks, BaseHookContext, PermissionRequestHook, PermissionRequestResult, PostToolUseFailureHook, PostToolUseHook, PreToolUseHook, PreToolUseResult, SessionEndContext, SessionEndHook, SessionStartContext, SessionStartHook, StopContext, StopHook, SubagentStartContext, SubagentStartHook, SubagentStopContext, SubagentStopHook, ToolHookContext, ToolHooks, UserPromptSubmitContext, UserPromptSubmitHook, UserPromptSubmitResult, } from './hooks';
|
|
10
10
|
export { compose } from './middleware';
|
|
11
11
|
export type { Middleware, NamedMiddleware, NextFunction } from './middleware';
|
|
12
12
|
export { countContentTokens, countMessagesTokens, countMessageTokens, countTokens, createCachedTokenCounter, estimateMessagesTokens, estimateTokens, } from './tokenCounter';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './acp-adapter';
|
|
2
2
|
export { Agent, AgentAbortError, AgentMaxIterationsError, compose, compressSessionManually, createContextCompressionMiddleware, createInitialLoopState, ensureNotAborted, extractPersistentMetadata, extractPersistentState, fromLoopCheckpoint, HookManager, toLoopCheckpoint, } from './agent';
|
|
3
|
-
export type { AgentHooks, AgentInput, AgentLoopState, AgentOptions, BaseHookContext, CompressionStats, ContextCompressionOptions, CreateSessionOptions,
|
|
3
|
+
export type { AgentHooks, AgentInput, AgentLoopState, AgentOptions, BaseHookContext, CompressionStats, ContextCompressionOptions, CreateSessionOptions, ManualCompressionOptions, ManualCompressionResult, Middleware, NextFunction, PermissionRequestHook, PermissionRequestResult, PostToolUseFailureHook, PostToolUseHook, PreToolUseHook, PreToolUseResult, SessionEndContext, SessionEndHook, SessionStartContext, SessionStartHook, SendOptions, SessionHandleOptions, StopContext, StopHook, SubagentStartContext, SubagentStartHook, SubagentStopContext, SubagentStopHook, ToCheckpointOptions, ToolCallWithResult, ToolHookContext, ToolHooks, UserPromptSubmitContext, UserPromptSubmitHook, UserPromptSubmitResult, } from './agent';
|
|
4
4
|
export { applyCcMockSystemPrompt, CCMOCK_SYSTEM_PROMPT_PREFIX, isCcMockEnabled, readCcMockFlag, } from './ccmock';
|
|
5
5
|
export * from './mcp-client';
|
|
6
6
|
export { createAgentRulesMiddleware } from './middleware/agentRulesMiddleware';
|