@kody-ade/kody-engine 0.4.552 → 0.4.553

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/dist/bin/kody.js CHANGED
@@ -15,7 +15,7 @@ var init_package = __esm({
15
15
  "package.json"() {
16
16
  package_default = {
17
17
  name: "@kody-ade/kody-engine",
18
- version: "0.4.552",
18
+ version: "0.4.553",
19
19
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
20
20
  license: "MIT",
21
21
  type: "module",
@@ -3837,6 +3837,7 @@ async function runAgent(opts) {
3837
3837
  // Fresh array (never mutate the shared DEFAULT_ALLOWED_TOOLS const) so
3838
3838
  // opt-in tools like fetch_repo can be appended below.
3839
3839
  allowedTools: [...opts.allowedToolsOverride ?? DEFAULT_ALLOWED_TOOLS],
3840
+ ...opts.disallowedToolsOverride?.length ? { disallowedTools: [...opts.disallowedToolsOverride] } : {},
3840
3841
  permissionMode: opts.permissionModeOverride ?? "acceptEdits",
3841
3842
  env,
3842
3843
  hooks: {
@@ -5866,10 +5867,12 @@ function parseClaudeCode(p, raw) {
5866
5867
  throw new ProfileError(p, `claudeCode.permissionMode must be one of default|acceptEdits|plan|bypassPermissions`);
5867
5868
  }
5868
5869
  const tools = Array.isArray(r.tools) ? r.tools : [];
5870
+ const disallowedTools = Array.isArray(r.disallowedTools) ? r.disallowedTools : [];
5869
5871
  return {
5870
5872
  model: typeof r.model === "string" ? r.model : "inherit",
5871
5873
  permissionMode,
5872
5874
  maxTurns: typeof r.maxTurns === "number" ? r.maxTurns : null,
5875
+ disallowedTools,
5873
5876
  maxThinkingTokens: typeof r.maxThinkingTokens === "number" ? r.maxThinkingTokens : null,
5874
5877
  reasoningEffort: typeof r.reasoningEffort === "string" ? parseReasoningEffort(r.reasoningEffort) : null,
5875
5878
  maxTurnTimeoutSec: typeof r.maxTurnTimeoutSec === "number" ? r.maxTurnTimeoutSec : null,
@@ -18014,8 +18017,21 @@ function configureBrowser(ctx, profile, requirements) {
18014
18017
  const server = browserRuntime(ctx, requirements);
18015
18018
  if (requirements.browserOnly) {
18016
18019
  profile.claudeCode.tools = ["Write"];
18020
+ profile.claudeCode.disallowedTools = [
18021
+ "Agent",
18022
+ "Bash",
18023
+ "Edit",
18024
+ "Glob",
18025
+ "Grep",
18026
+ "NotebookEdit",
18027
+ "Read",
18028
+ "Task",
18029
+ "TodoWrite",
18030
+ "WebFetch",
18031
+ "WebSearch"
18032
+ ];
18017
18033
  profile.claudeCode.permissionMode = "default";
18018
- profile.claudeCode.maxTurns = Math.min(profile.claudeCode.maxTurns ?? 50, 50);
18034
+ profile.claudeCode.maxTurns = Math.min(profile.claudeCode.maxTurns ?? 100, 100);
18019
18035
  }
18020
18036
  if (!profile.claudeCode.tools.includes("mcp__playwright")) {
18021
18037
  profile.claudeCode.tools = [...profile.claudeCode.tools, "mcp__playwright"];
@@ -21870,6 +21886,7 @@ async function runImplementation(profileName, input) {
21870
21886
  ndjsonDir,
21871
21887
  additionalDirectories: agentTaskArtifacts ? [agentTaskArtifacts.absDir] : void 0,
21872
21888
  allowedToolsOverride: profile.claudeCode.tools,
21889
+ disallowedToolsOverride: profile.claudeCode.disallowedTools,
21873
21890
  permissionModeOverride: profile.claudeCode.permissionMode,
21874
21891
  mcpServers: profile.claudeCode.mcpServers.length > 0 ? profile.claudeCode.mcpServers : void 0,
21875
21892
  pluginPaths: pluginPaths.length > 0 ? pluginPaths : void 0,
@@ -297,6 +297,8 @@ export interface ClaudeCodeSpec {
297
297
  permissionMode: "default" | "acceptEdits" | "plan" | "bypassPermissions"
298
298
  /** null = unbounded. */
299
299
  maxTurns: number | null
300
+ /** Tools the SDK must reject even when the model requests them. */
301
+ disallowedTools?: string[]
300
302
  /** Extended-thinking token budget. null = SDK default. */
301
303
  maxThinkingTokens: number | null
302
304
  /** User-facing effort level. When set, preferred over maxThinkingTokens. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.552",
3
+ "version": "0.4.553",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative implementation profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",