oh-my-opencode 3.14.0 → 3.15.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.
Files changed (218) hide show
  1. package/README.md +14 -6
  2. package/bin/oh-my-opencode.js +11 -0
  3. package/bin/platform.js +13 -13
  4. package/bin/platform.test.ts +15 -0
  5. package/dist/agents/atlas/agent.d.ts +1 -1
  6. package/dist/agents/atlas/default-prompt-sections.d.ts +6 -0
  7. package/dist/agents/atlas/default.d.ts +0 -9
  8. package/dist/agents/atlas/gemini-prompt-sections.d.ts +6 -0
  9. package/dist/agents/atlas/gemini.d.ts +0 -9
  10. package/dist/agents/atlas/gpt-prompt-sections.d.ts +6 -0
  11. package/dist/agents/atlas/gpt.d.ts +0 -9
  12. package/dist/agents/atlas/shared-prompt.d.ts +9 -0
  13. package/dist/agents/dynamic-agent-category-skills-guide.d.ts +2 -0
  14. package/dist/agents/dynamic-agent-core-sections.d.ts +10 -0
  15. package/dist/agents/dynamic-agent-policy-sections.d.ts +6 -0
  16. package/dist/agents/dynamic-agent-prompt-builder.d.ts +5 -35
  17. package/dist/agents/dynamic-agent-prompt-types.d.ts +20 -0
  18. package/dist/agents/dynamic-agent-tool-categorization.d.ts +3 -0
  19. package/dist/agents/hephaestus/agent.d.ts +1 -1
  20. package/dist/agents/hephaestus/gpt-5-3-codex.d.ts +1 -1
  21. package/dist/agents/hephaestus/gpt.d.ts +1 -1
  22. package/dist/agents/momus.d.ts +2 -2
  23. package/dist/agents/prometheus/behavioral-summary.d.ts +1 -1
  24. package/dist/agents/prometheus/identity-constraints.d.ts +1 -1
  25. package/dist/agents/prometheus/plan-generation.d.ts +1 -1
  26. package/dist/agents/prometheus/plan-template.d.ts +1 -1
  27. package/dist/agents/sisyphus/gpt-5-4.d.ts +14 -14
  28. package/dist/agents/sisyphus/index.d.ts +1 -1
  29. package/dist/agents/sisyphus.d.ts +1 -1
  30. package/dist/agents/types.d.ts +1 -0
  31. package/dist/cli/index.js +715 -429
  32. package/dist/cli/mcp-oauth/login.d.ts +6 -1
  33. package/dist/cli/run/event-state.d.ts +0 -2
  34. package/dist/cli/run/types.d.ts +0 -1
  35. package/dist/config/schema/agent-names.d.ts +2 -0
  36. package/dist/config/schema/agent-overrides.d.ts +330 -15
  37. package/dist/config/schema/background-task.d.ts +2 -0
  38. package/dist/config/schema/categories.d.ts +44 -2
  39. package/dist/config/schema/commands.d.ts +1 -0
  40. package/dist/config/schema/experimental.d.ts +1 -0
  41. package/dist/config/schema/fallback-models.d.ts +67 -1
  42. package/dist/config/schema/hooks.d.ts +3 -0
  43. package/dist/config/schema/oh-my-opencode-config.d.ts +344 -16
  44. package/dist/config/schema/sisyphus-agent.d.ts +1 -0
  45. package/dist/config/schema/tmux.d.ts +11 -0
  46. package/dist/create-hooks.d.ts +6 -0
  47. package/dist/create-runtime-tmux-config.d.ts +9 -0
  48. package/dist/features/background-agent/abort-with-timeout.d.ts +2 -0
  49. package/dist/features/background-agent/background-task-notification-template.d.ts +10 -4
  50. package/dist/features/background-agent/constants.d.ts +1 -0
  51. package/dist/features/background-agent/fallback-retry-handler.d.ts +1 -1
  52. package/dist/features/background-agent/manager.d.ts +10 -0
  53. package/dist/features/background-agent/process-cleanup.d.ts +1 -1
  54. package/dist/features/background-agent/session-existence.d.ts +3 -0
  55. package/dist/features/background-agent/task-poller.d.ts +1 -0
  56. package/dist/features/background-agent/types.d.ts +2 -0
  57. package/dist/features/builtin-commands/commands.d.ts +4 -1
  58. package/dist/features/builtin-commands/templates/handoff.d.ts +1 -1
  59. package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -1
  60. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -0
  61. package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
  62. package/dist/features/builtin-commands/types.d.ts +1 -1
  63. package/dist/features/builtin-skills/skills/ai-slop-remover.d.ts +2 -0
  64. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -0
  65. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +1 -0
  66. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +1 -0
  67. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +1 -0
  68. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +1 -0
  69. package/dist/features/builtin-skills/skills/index.d.ts +2 -0
  70. package/dist/features/builtin-skills/skills/playwright-cli.d.ts +1 -1
  71. package/dist/features/builtin-skills/skills/review-work.d.ts +2 -0
  72. package/dist/features/claude-code-mcp-loader/configure-allowed-env-vars.d.ts +5 -0
  73. package/dist/features/claude-code-mcp-loader/index.d.ts +1 -0
  74. package/dist/features/claude-code-mcp-loader/scope-filter.d.ts +2 -0
  75. package/dist/features/claude-code-mcp-loader/types.d.ts +8 -4
  76. package/dist/features/claude-code-session-state/state.d.ts +2 -0
  77. package/dist/features/context-injector/collector.d.ts +1 -0
  78. package/dist/features/opencode-skill-loader/async-loader.d.ts +2 -2
  79. package/dist/features/skill-mcp-manager/manager.d.ts +4 -1
  80. package/dist/features/skill-mcp-manager/oauth-handler.d.ts +5 -4
  81. package/dist/features/skill-mcp-manager/types.d.ts +7 -0
  82. package/dist/features/tmux-subagent/manager.d.ts +15 -13
  83. package/dist/features/tmux-subagent/polling-manager.d.ts +5 -0
  84. package/dist/features/tmux-subagent/types.d.ts +2 -0
  85. package/dist/hooks/agent-usage-reminder/constants.d.ts +1 -1
  86. package/dist/hooks/anthropic-context-window-limit-recovery/message-builder.d.ts +4 -1
  87. package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.d.ts +10 -0
  88. package/dist/hooks/anthropic-context-window-limit-recovery/recovery-hook.test-support.d.ts +29 -0
  89. package/dist/hooks/anthropic-context-window-limit-recovery/session-timeout-map.d.ts +2 -0
  90. package/dist/hooks/anthropic-context-window-limit-recovery/state.d.ts +2 -0
  91. package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +1 -0
  92. package/dist/hooks/atlas/subagent-session-id.d.ts +1 -0
  93. package/dist/hooks/atlas/system-reminder-templates.d.ts +2 -2
  94. package/dist/hooks/auto-slash-command/executor.d.ts +1 -0
  95. package/dist/hooks/auto-slash-command/hook.d.ts +1 -0
  96. package/dist/hooks/auto-update-checker/hook/background-update-check.d.ts +29 -1
  97. package/dist/hooks/bash-file-read-guard.d.ts +2 -0
  98. package/dist/hooks/claude-code-hooks/claude-code-hooks-hook.d.ts +1 -0
  99. package/dist/hooks/claude-code-hooks/config-loader.d.ts +1 -0
  100. package/dist/hooks/claude-code-hooks/config.d.ts +1 -0
  101. package/dist/hooks/claude-code-hooks/handlers/session-event-handler.d.ts +3 -1
  102. package/dist/hooks/claude-code-hooks/session-hook-state.d.ts +1 -0
  103. package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +2 -0
  104. package/dist/hooks/claude-code-hooks/transcript.d.ts +1 -3
  105. package/dist/hooks/comment-checker/hook.d.ts +1 -0
  106. package/dist/hooks/comment-checker/pending-calls.d.ts +1 -0
  107. package/dist/hooks/index.d.ts +3 -0
  108. package/dist/hooks/keyword-detector/ultrawork/default.d.ts +1 -1
  109. package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -1
  110. package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +1 -1
  111. package/dist/hooks/legacy-plugin-toast/auto-migrate-runner.d.ts +2 -0
  112. package/dist/hooks/legacy-plugin-toast/auto-migrate.d.ts +7 -0
  113. package/dist/hooks/legacy-plugin-toast/hook.d.ts +18 -0
  114. package/dist/hooks/legacy-plugin-toast/index.d.ts +1 -0
  115. package/dist/hooks/legacy-plugin-toast/plugin-entry-migrator.d.ts +1 -0
  116. package/dist/hooks/model-fallback/chat-message-fallback-handler.d.ts +23 -0
  117. package/dist/hooks/model-fallback/next-fallback.d.ts +6 -0
  118. package/dist/hooks/ralph-loop/completion-promise-detector-test-input.d.ts +11 -0
  119. package/dist/hooks/rules-injector/constants.d.ts +1 -0
  120. package/dist/hooks/rules-injector/finder.d.ts +1 -1
  121. package/dist/hooks/rules-injector/hook.d.ts +2 -0
  122. package/dist/hooks/rules-injector/injector.d.ts +2 -0
  123. package/dist/hooks/rules-injector/rule-file-finder.d.ts +9 -1
  124. package/dist/hooks/runtime-fallback/fallback-models.d.ts +1 -1
  125. package/dist/hooks/runtime-fallback/retry-model-payload.d.ts +5 -1
  126. package/dist/hooks/start-work/context-info-builder.d.ts +12 -0
  127. package/dist/hooks/start-work/start-work-hook.d.ts +6 -0
  128. package/dist/hooks/start-work/worktree-block.d.ts +1 -0
  129. package/dist/hooks/todo-continuation-enforcer/resolve-message-info.d.ts +2 -2
  130. package/dist/hooks/todo-continuation-enforcer/types.d.ts +4 -0
  131. package/dist/hooks/todo-description-override/description.d.ts +1 -1
  132. package/dist/hooks/tool-pair-validator/hook.d.ts +28 -0
  133. package/dist/hooks/tool-pair-validator/index.d.ts +1 -0
  134. package/dist/hooks/write-existing-file-guard/hook.d.ts +12 -0
  135. package/dist/hooks/write-existing-file-guard/session-read-permissions.d.ts +3 -0
  136. package/dist/hooks/write-existing-file-guard/tool-execute-before-handler.d.ts +15 -0
  137. package/dist/index.js +9525 -5020
  138. package/dist/mcp/websearch.d.ts +2 -2
  139. package/dist/oh-my-opencode.schema.json +1052 -3
  140. package/dist/openclaw/dispatcher.d.ts +6 -0
  141. package/dist/plugin/command-execute-before.d.ts +17 -0
  142. package/dist/plugin/hooks/create-core-hooks.d.ts +3 -0
  143. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -1
  144. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +2 -1
  145. package/dist/plugin/hooks/create-transform-hooks.d.ts +2 -1
  146. package/dist/plugin/tool-registry.d.ts +1 -0
  147. package/dist/plugin/types.d.ts +1 -0
  148. package/dist/plugin-dispose.d.ts +3 -0
  149. package/dist/shared/agent-display-names.d.ts +8 -0
  150. package/dist/shared/archive-entry-validator.d.ts +6 -0
  151. package/dist/shared/background-output-consumption.d.ts +5 -0
  152. package/dist/shared/connected-providers-cache.d.ts +2 -1
  153. package/dist/shared/contains-path.d.ts +2 -0
  154. package/dist/shared/external-plugin-detector.d.ts +14 -0
  155. package/dist/shared/index.d.ts +3 -0
  156. package/dist/shared/is-abort-error.d.ts +1 -0
  157. package/dist/shared/json-file-cache-store.d.ts +16 -0
  158. package/dist/shared/jsonc-parser.d.ts +1 -0
  159. package/dist/shared/legacy-plugin-warning.d.ts +1 -0
  160. package/dist/shared/load-opencode-plugins.d.ts +1 -0
  161. package/dist/shared/log-legacy-plugin-startup-warning.d.ts +10 -1
  162. package/dist/shared/migrate-legacy-config-file.d.ts +1 -0
  163. package/dist/shared/migrate-legacy-plugin-entry.d.ts +1 -0
  164. package/dist/shared/model-capabilities/bundled-snapshot.d.ts +2 -0
  165. package/dist/shared/model-capabilities/get-model-capabilities.d.ts +2 -0
  166. package/dist/shared/model-capabilities/index.d.ts +3 -0
  167. package/dist/shared/model-capabilities/runtime-model-readers.d.ts +11 -0
  168. package/dist/shared/{model-capabilities.d.ts → model-capabilities/types.d.ts} +35 -32
  169. package/dist/shared/model-suggestion-retry.d.ts +0 -9
  170. package/dist/shared/plugin-entry-migrator.d.ts +3 -0
  171. package/dist/shared/session-category-registry.d.ts +0 -24
  172. package/dist/shared/session-cursor.d.ts +6 -0
  173. package/dist/shared/skill-path-resolver.d.ts +0 -8
  174. package/dist/shared/task-system-enabled.d.ts +6 -0
  175. package/dist/shared/tmux/tmux-utils/server-health.d.ts +1 -0
  176. package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +3 -0
  177. package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +3 -0
  178. package/dist/shared/tmux/tmux-utils.d.ts +3 -1
  179. package/dist/shared/write-file-atomically.d.ts +1 -0
  180. package/dist/shared/zip-entry-listing/powershell-zip-entry-listing.d.ts +4 -0
  181. package/dist/shared/zip-entry-listing/python-zip-entry-listing.d.ts +3 -0
  182. package/dist/shared/zip-entry-listing/read-zip-symlink-target.d.ts +1 -0
  183. package/dist/shared/zip-entry-listing/tar-zip-entry-listing.d.ts +3 -0
  184. package/dist/shared/zip-entry-listing/zipinfo-zip-entry-listing.d.ts +4 -0
  185. package/dist/shared/zip-entry-listing.d.ts +4 -0
  186. package/dist/tools/call-omo-agent/background-executor.d.ts +2 -1
  187. package/dist/tools/call-omo-agent/sync-executor.d.ts +2 -1
  188. package/dist/tools/delegate-task/anthropic-categories.d.ts +2 -0
  189. package/dist/tools/delegate-task/builtin-categories.d.ts +4 -0
  190. package/dist/tools/delegate-task/builtin-category-definition.d.ts +7 -0
  191. package/dist/tools/delegate-task/constants.d.ts +1 -12
  192. package/dist/tools/delegate-task/executor-types.d.ts +2 -1
  193. package/dist/tools/delegate-task/google-categories.d.ts +2 -0
  194. package/dist/tools/delegate-task/kimi-categories.d.ts +2 -0
  195. package/dist/tools/delegate-task/openai-categories.d.ts +2 -0
  196. package/dist/tools/delegate-task/prompt-builder.d.ts +1 -1
  197. package/dist/tools/delegate-task/sync-prompt-sender.d.ts +2 -0
  198. package/dist/tools/delegate-task/types.d.ts +2 -1
  199. package/dist/tools/grep/cli.d.ts +3 -2
  200. package/dist/tools/grep/constants.d.ts +1 -2
  201. package/dist/tools/hashline-edit/tool-description.d.ts +1 -1
  202. package/dist/tools/look-at/constants.d.ts +1 -1
  203. package/dist/tools/lsp/infer-extension.d.ts +1 -0
  204. package/dist/tools/session-manager/file-storage.d.ts +8 -0
  205. package/dist/tools/session-manager/sdk-storage.d.ts +8 -0
  206. package/dist/tools/session-manager/sdk-unavailable.d.ts +1 -0
  207. package/dist/tools/session-manager/storage.d.ts +1 -1
  208. package/dist/tools/skill/description-formatter.d.ts +3 -0
  209. package/dist/tools/skill/mcp-capability-formatter.d.ts +3 -0
  210. package/dist/tools/skill/native-skills.d.ts +12 -0
  211. package/dist/tools/skill/scope-priority.d.ts +4 -0
  212. package/dist/tools/skill/skill-body.d.ts +2 -0
  213. package/dist/tools/skill/skill-matcher.d.ts +5 -0
  214. package/dist/tools/skill/types.d.ts +30 -2
  215. package/dist/tools/skill-mcp/tools.d.ts +1 -1
  216. package/package.json +14 -14
  217. package/postinstall.mjs +12 -0
  218. package/dist/hooks/openclaw.d.ts +0 -11
@@ -0,0 +1,12 @@
1
+ import { readBoulderState } from "../../features/boulder-state";
2
+ import type { PluginInput } from "@opencode-ai/plugin";
3
+ export declare function buildStartWorkContextInfo(params: {
4
+ ctx: PluginInput;
5
+ explicitPlanName: string | null;
6
+ existingState: ReturnType<typeof readBoulderState>;
7
+ sessionId: string;
8
+ timestamp: string;
9
+ activeAgent: string;
10
+ worktreePath: string | undefined;
11
+ worktreeBlock: string;
12
+ }): string;
@@ -4,6 +4,11 @@ interface StartWorkHookInput {
4
4
  sessionID: string;
5
5
  messageID?: string;
6
6
  }
7
+ interface StartWorkCommandExecuteBeforeInput {
8
+ sessionID: string;
9
+ command: string;
10
+ arguments: string;
11
+ }
7
12
  interface StartWorkHookOutput {
8
13
  message?: Record<string, unknown>;
9
14
  parts: Array<{
@@ -13,5 +18,6 @@ interface StartWorkHookOutput {
13
18
  }
14
19
  export declare function createStartWorkHook(ctx: PluginInput): {
15
20
  "chat.message": (input: StartWorkHookInput, output: StartWorkHookOutput) => Promise<void>;
21
+ "command.execute.before": (input: StartWorkCommandExecuteBeforeInput, output: StartWorkHookOutput) => Promise<void>;
16
22
  };
17
23
  export {};
@@ -0,0 +1 @@
1
+ export declare function createWorktreeActiveBlock(worktreePath: string): string;
@@ -1,3 +1,3 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
- import type { ResolveLatestMessageInfoResult } from "./types";
3
- export declare function resolveLatestMessageInfo(ctx: PluginInput, sessionID: string): Promise<ResolveLatestMessageInfoResult>;
2
+ import type { MessageWithInfo, ResolveLatestMessageInfoResult } from "./types";
3
+ export declare function resolveLatestMessageInfo(ctx: PluginInput, sessionID: string, prefetchedMessages?: MessageWithInfo[]): Promise<ResolveLatestMessageInfoResult>;
@@ -27,6 +27,7 @@ export interface SessionState {
27
27
  countdownTimer?: ReturnType<typeof setTimeout>;
28
28
  countdownInterval?: ReturnType<typeof setInterval>;
29
29
  isRecovering?: boolean;
30
+ wasCancelled?: boolean;
30
31
  countdownStartedAt?: number;
31
32
  abortDetectedAt?: number;
32
33
  lastIncompleteCount?: number;
@@ -55,6 +56,9 @@ export interface MessageInfo {
55
56
  modelID?: string;
56
57
  tools?: Record<string, ToolPermission>;
57
58
  }
59
+ export interface MessageWithInfo {
60
+ info?: MessageInfo;
61
+ }
58
62
  export interface ResolvedMessageInfo {
59
63
  agent?: string;
60
64
  model?: {
@@ -1 +1 @@
1
- export declare const TODOWRITE_DESCRIPTION = "Use this tool to create and manage a structured task list for tracking progress on multi-step work.\n\n## Todo Format (MANDATORY)\n\nEach todo title MUST encode four elements: WHERE, WHY, HOW, and EXPECTED RESULT.\n\nFormat: \"[WHERE] [HOW] to [WHY] \u2014 expect [RESULT]\"\n\nGOOD:\n- \"src/utils/validation.ts: Add validateEmail() for input sanitization \u2014 returns boolean\"\n- \"UserService.create(): Call validateEmail() before DB insert \u2014 rejects invalid emails with 400\"\n- \"validation.test.ts: Add test for missing @ sign \u2014 expect validateEmail('foo') to return false\"\n\nBAD:\n- \"Implement email validation\" (where? how? what result?)\n- \"Add dark mode\" (this is a feature, not a todo)\n- \"Fix auth\" (what file? what changes? what's expected?)\n\n## Granularity Rules\n\nEach todo MUST be a single atomic action completable in 1-3 tool calls. If it needs more, split it.\n\n**Size test**: Can you complete this todo by editing one file or running one command? If not, it's too big.\n\n## Task Management\n- One in_progress at a time. Complete it before starting the next.\n- Mark completed immediately after finishing each item.\n- Skip this tool for single trivial tasks (one-step, obvious action).";
1
+ export declare const TODOWRITE_DESCRIPTION = "Use this tool to create and manage a structured task list for tracking progress on multi-step work.\n\n## Todo Format (MANDATORY)\n\nEach todo title MUST encode four elements: WHERE, WHY, HOW, and EXPECTED RESULT.\n\nFormat: \"[WHERE] [HOW] to [WHY] - expect [RESULT]\"\n\nGOOD:\n- \"src/utils/validation.ts: Add validateEmail() for input sanitization - returns boolean\"\n- \"UserService.create(): Call validateEmail() before DB insert - rejects invalid emails with 400\"\n- \"validation.test.ts: Add test for missing @ sign - expect validateEmail('foo') to return false\"\n\nBAD:\n- \"Implement email validation\" (where? how? what result?)\n- \"Add dark mode\" (feature, not a todo)\n- \"Fix auth\" (what file? what changes? what's expected?)\n\n## Granularity Rules\n\nEach todo MUST be a single atomic action completable in 1-3 tool calls. If it needs more, split it.\n\n**Size test**: Can you complete this todo by editing one file or running one command? If not, it's too big.\n\n## Task Management\n- One in_progress at a time. Complete it before starting the next.\n- Mark completed immediately after finishing each item.\n- Skip this tool for single trivial tasks (one-step, obvious action).";
@@ -0,0 +1,28 @@
1
+ import type { Message, Part } from "@opencode-ai/sdk";
2
+ type ToolUsePart = {
3
+ type: "tool_use";
4
+ id: string;
5
+ [key: string]: unknown;
6
+ };
7
+ type ToolResultPart = {
8
+ type: "tool_result";
9
+ tool_use_id: string;
10
+ content: string;
11
+ [key: string]: unknown;
12
+ };
13
+ type TransformPart = Part | ToolUsePart | ToolResultPart;
14
+ type TransformMessageInfo = Message | {
15
+ role: "user";
16
+ sessionID?: string;
17
+ };
18
+ interface MessageWithParts {
19
+ info: TransformMessageInfo;
20
+ parts: TransformPart[];
21
+ }
22
+ type MessagesTransformHook = {
23
+ "experimental.chat.messages.transform"?: (input: Record<string, never>, output: {
24
+ messages: MessageWithParts[];
25
+ }) => Promise<void>;
26
+ };
27
+ export declare function createToolPairValidatorHook(): MessagesTransformHook;
28
+ export {};
@@ -0,0 +1 @@
1
+ export { createToolPairValidatorHook } from "./hook";
@@ -1,3 +1,15 @@
1
1
  import type { Hooks, PluginInput } from "@opencode-ai/plugin";
2
+ export type GuardArgs = {
3
+ filePath?: string;
4
+ path?: string;
5
+ file_path?: string;
6
+ overwrite?: boolean | string;
7
+ };
2
8
  export declare const MAX_TRACKED_PATHS_PER_SESSION = 1024;
9
+ export declare function asRecord(value: unknown): Record<string, unknown> | undefined;
10
+ export declare function getPathFromArgs(args: GuardArgs | undefined): string | undefined;
11
+ export declare function resolveInputPath(ctx: PluginInput, inputPath: string): string;
12
+ export declare function isPathInsideDirectory(pathToCheck: string, directory: string): boolean;
13
+ export declare function toCanonicalPath(absolutePath: string): string;
14
+ export declare function isOverwriteEnabled(value: boolean | string | undefined): boolean;
3
15
  export declare function createWriteExistingFileGuardHook(ctx: PluginInput): Hooks;
@@ -0,0 +1,3 @@
1
+ export declare function touchSession(sessionLastAccess: Map<string, number>, sessionID: string): void;
2
+ export declare function evictLeastRecentlyUsedSession(readPermissionsBySession: Map<string, Set<string>>, sessionLastAccess: Map<string, number>): void;
3
+ export declare function trimSessionReadSet(readSet: Set<string>, maxTrackedPathsPerSession: number): void;
@@ -0,0 +1,15 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ export declare function handleWriteExistingFileGuardToolExecuteBefore(params: {
3
+ ctx: PluginInput;
4
+ input: {
5
+ tool?: string;
6
+ sessionID?: string;
7
+ };
8
+ output: {
9
+ args?: unknown;
10
+ };
11
+ readPermissionsBySession: Map<string, Set<string>>;
12
+ sessionLastAccess: Map<string, number>;
13
+ canonicalSessionRoot: string;
14
+ maxTrackedSessions: number;
15
+ }): Promise<void>;