@codedrifters/configulator 0.0.158 → 0.0.159
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/lib/index.d.mts +122 -2
- package/lib/index.d.ts +122 -2
- package/lib/index.js +66 -46
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +66 -46
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -213,6 +213,19 @@ interface AgentSkill {
|
|
|
213
213
|
/**
|
|
214
214
|
* Platform-specific overrides for a sub-agent definition.
|
|
215
215
|
*/
|
|
216
|
+
/**
|
|
217
|
+
* Copilot handoff definition for sub-agent delegation.
|
|
218
|
+
*/
|
|
219
|
+
interface CopilotHandoff {
|
|
220
|
+
/** Display label for the handoff action. */
|
|
221
|
+
readonly label: string;
|
|
222
|
+
/** Target agent name. */
|
|
223
|
+
readonly agent: string;
|
|
224
|
+
/** Optional prompt to pass to the target agent. */
|
|
225
|
+
readonly prompt?: string;
|
|
226
|
+
/** Whether to auto-send the handoff without user confirmation. */
|
|
227
|
+
readonly send?: boolean;
|
|
228
|
+
}
|
|
216
229
|
interface AgentSubAgentPlatformOverrides {
|
|
217
230
|
/** Claude Code-specific overrides */
|
|
218
231
|
readonly claude?: {
|
|
@@ -220,8 +233,12 @@ interface AgentSubAgentPlatformOverrides {
|
|
|
220
233
|
readonly permissionMode?: string;
|
|
221
234
|
/** Run in isolated git worktree */
|
|
222
235
|
readonly isolation?: string;
|
|
223
|
-
/**
|
|
236
|
+
/** Run as a background task */
|
|
237
|
+
readonly background?: boolean;
|
|
238
|
+
/** Reasoning effort level (Opus): low, medium, high, max */
|
|
224
239
|
readonly effort?: string;
|
|
240
|
+
/** Persistent memory scope: user, project, local */
|
|
241
|
+
readonly memory?: string;
|
|
225
242
|
/** Exclude this sub-agent from Claude Code output entirely */
|
|
226
243
|
readonly exclude?: boolean;
|
|
227
244
|
};
|
|
@@ -236,11 +253,23 @@ interface AgentSubAgentPlatformOverrides {
|
|
|
236
253
|
};
|
|
237
254
|
/** Codex-specific overrides (future) */
|
|
238
255
|
readonly codex?: {
|
|
256
|
+
/** Sandbox mode: read-only or full */
|
|
257
|
+
readonly sandboxMode?: string;
|
|
258
|
+
/** Model reasoning effort */
|
|
259
|
+
readonly modelReasoningEffort?: string;
|
|
239
260
|
/** Exclude this sub-agent from Codex output entirely */
|
|
240
261
|
readonly exclude?: boolean;
|
|
241
262
|
};
|
|
242
263
|
/** Copilot-specific overrides (future) */
|
|
243
264
|
readonly copilot?: {
|
|
265
|
+
/** Target environment: vscode or github-copilot */
|
|
266
|
+
readonly target?: string;
|
|
267
|
+
/** Whether the user can invoke this sub-agent directly */
|
|
268
|
+
readonly userInvocable?: boolean;
|
|
269
|
+
/** Prevent auto-invocation of this sub-agent */
|
|
270
|
+
readonly disableModelInvocation?: boolean;
|
|
271
|
+
/** Handoff definitions for agent-to-agent delegation */
|
|
272
|
+
readonly handoffs?: ReadonlyArray<CopilotHandoff>;
|
|
244
273
|
/** Exclude this sub-agent from Copilot output entirely */
|
|
245
274
|
readonly exclude?: boolean;
|
|
246
275
|
};
|
|
@@ -273,8 +302,28 @@ interface AgentSubAgent {
|
|
|
273
302
|
* @example ['Read', 'Glob', 'Grep']
|
|
274
303
|
*/
|
|
275
304
|
readonly tools?: ReadonlyArray<string>;
|
|
305
|
+
/**
|
|
306
|
+
* Tool denylist. Applied before the allowlist.
|
|
307
|
+
* @example ['Bash', 'Write']
|
|
308
|
+
*/
|
|
309
|
+
readonly disallowedTools?: ReadonlyArray<string>;
|
|
276
310
|
/** Maximum agentic turns before the sub-agent stops. */
|
|
277
311
|
readonly maxTurns?: number;
|
|
312
|
+
/**
|
|
313
|
+
* Skills to preload for this sub-agent.
|
|
314
|
+
* @example ['commit', 'review-pr']
|
|
315
|
+
*/
|
|
316
|
+
readonly skills?: ReadonlyArray<string>;
|
|
317
|
+
/**
|
|
318
|
+
* MCP servers available to this sub-agent.
|
|
319
|
+
* Rendered to the platform-specific sub-agent config.
|
|
320
|
+
*/
|
|
321
|
+
readonly mcpServers?: Readonly<Record<string, McpServerConfig>>;
|
|
322
|
+
/**
|
|
323
|
+
* Sub-agents this agent can invoke/delegate to.
|
|
324
|
+
* @example ['test-writer', 'code-reviewer']
|
|
325
|
+
*/
|
|
326
|
+
readonly canDelegateToAgents?: ReadonlyArray<string>;
|
|
278
327
|
/** Optional per-platform overrides for this sub-agent. */
|
|
279
328
|
readonly platforms?: AgentSubAgentPlatformOverrides;
|
|
280
329
|
}
|
|
@@ -294,8 +343,21 @@ interface McpServerConfig {
|
|
|
294
343
|
readonly args?: ReadonlyArray<string>;
|
|
295
344
|
/** URL for HTTP/SSE remote servers. */
|
|
296
345
|
readonly url?: string;
|
|
346
|
+
/** HTTP headers for HTTP/SSE connections. */
|
|
347
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
297
348
|
/** Environment variables for the server process. */
|
|
298
349
|
readonly env?: Readonly<Record<string, string>>;
|
|
350
|
+
/**
|
|
351
|
+
* Tool allowlist — only these tools from the server will be available.
|
|
352
|
+
* @example ['read_file', 'search']
|
|
353
|
+
*/
|
|
354
|
+
readonly enabledTools?: ReadonlyArray<string>;
|
|
355
|
+
/**
|
|
356
|
+
* Tool denylist — these tools from the server will be blocked.
|
|
357
|
+
* Applied before enabledTools.
|
|
358
|
+
* @example ['delete_file', 'execute']
|
|
359
|
+
*/
|
|
360
|
+
readonly disabledTools?: ReadonlyArray<string>;
|
|
299
361
|
}
|
|
300
362
|
|
|
301
363
|
/*******************************************************************************
|
|
@@ -361,22 +423,58 @@ interface CursorHooksConfig {
|
|
|
361
423
|
* Fires before a shell command executes. Blocking — can deny execution.
|
|
362
424
|
*/
|
|
363
425
|
readonly beforeShellExecution?: ReadonlyArray<CursorHookAction>;
|
|
426
|
+
/**
|
|
427
|
+
* Fires after a shell command executes. Non-blocking (informational).
|
|
428
|
+
*/
|
|
429
|
+
readonly afterShellExecution?: ReadonlyArray<CursorHookAction>;
|
|
364
430
|
/**
|
|
365
431
|
* Fires before an MCP tool is invoked. Blocking — can deny execution.
|
|
366
432
|
*/
|
|
367
433
|
readonly beforeMCPExecution?: ReadonlyArray<CursorHookAction>;
|
|
434
|
+
/**
|
|
435
|
+
* Fires after an MCP tool is invoked. Non-blocking (informational).
|
|
436
|
+
*/
|
|
437
|
+
readonly afterMCPExecution?: ReadonlyArray<CursorHookAction>;
|
|
368
438
|
/**
|
|
369
439
|
* Fires before a file is read by the AI. Blocking — can rewrite content.
|
|
370
440
|
*/
|
|
371
441
|
readonly beforeReadFile?: ReadonlyArray<CursorHookAction>;
|
|
442
|
+
/**
|
|
443
|
+
* Fires before a tab file is read. Blocking — can rewrite content.
|
|
444
|
+
*/
|
|
445
|
+
readonly beforeTabFileRead?: ReadonlyArray<CursorHookAction>;
|
|
372
446
|
/**
|
|
373
447
|
* Fires after a file is edited. Non-blocking (informational).
|
|
374
448
|
*/
|
|
375
449
|
readonly afterFileEdit?: ReadonlyArray<CursorHookAction>;
|
|
450
|
+
/**
|
|
451
|
+
* Fires after a tab file is edited. Non-blocking (informational).
|
|
452
|
+
*/
|
|
453
|
+
readonly afterTabFileEdit?: ReadonlyArray<CursorHookAction>;
|
|
376
454
|
/**
|
|
377
455
|
* Fires when the agent stops. Non-blocking (informational).
|
|
378
456
|
*/
|
|
379
457
|
readonly stop?: ReadonlyArray<CursorHookAction>;
|
|
458
|
+
/**
|
|
459
|
+
* Fires when a session starts. Non-blocking (informational).
|
|
460
|
+
*/
|
|
461
|
+
readonly sessionStart?: ReadonlyArray<CursorHookAction>;
|
|
462
|
+
/**
|
|
463
|
+
* Fires when a session ends. Non-blocking (informational).
|
|
464
|
+
*/
|
|
465
|
+
readonly sessionEnd?: ReadonlyArray<CursorHookAction>;
|
|
466
|
+
/**
|
|
467
|
+
* Fires before context compaction. Non-blocking (informational).
|
|
468
|
+
*/
|
|
469
|
+
readonly preCompact?: ReadonlyArray<CursorHookAction>;
|
|
470
|
+
/**
|
|
471
|
+
* Fires after the agent produces a response. Non-blocking (informational).
|
|
472
|
+
*/
|
|
473
|
+
readonly afterAgentResponse?: ReadonlyArray<CursorHookAction>;
|
|
474
|
+
/**
|
|
475
|
+
* Fires after the agent produces a thought. Non-blocking (informational).
|
|
476
|
+
*/
|
|
477
|
+
readonly afterAgentThought?: ReadonlyArray<CursorHookAction>;
|
|
380
478
|
}
|
|
381
479
|
/**
|
|
382
480
|
* Cursor-specific configuration options.
|
|
@@ -556,6 +654,8 @@ interface ClaudeSettingsConfig {
|
|
|
556
654
|
readonly mcpServers?: Readonly<Record<string, McpServerConfig>>;
|
|
557
655
|
/** MCP servers to explicitly allow. */
|
|
558
656
|
readonly allowedMcpServers?: ReadonlyArray<string>;
|
|
657
|
+
/** MCP servers to explicitly deny. */
|
|
658
|
+
readonly deniedMcpServers?: ReadonlyArray<string>;
|
|
559
659
|
/** Environment variables passed to Claude's shell. */
|
|
560
660
|
readonly env?: Readonly<Record<string, string>>;
|
|
561
661
|
/** Sandbox configuration. */
|
|
@@ -573,6 +673,16 @@ interface ClaudeSettingsConfig {
|
|
|
573
673
|
* @example ['**\/.env', '**\/*.key', '**\/secrets/**']
|
|
574
674
|
*/
|
|
575
675
|
readonly excludeSensitivePatterns?: ReadonlyArray<string>;
|
|
676
|
+
/**
|
|
677
|
+
* Default model ID for the project.
|
|
678
|
+
* @example 'claude-opus-4-6'
|
|
679
|
+
*/
|
|
680
|
+
readonly model?: string;
|
|
681
|
+
/**
|
|
682
|
+
* Default reasoning effort level.
|
|
683
|
+
* @example 'high'
|
|
684
|
+
*/
|
|
685
|
+
readonly effortLevel?: string;
|
|
576
686
|
/** Attribution configuration for commits and PRs created by Claude. */
|
|
577
687
|
readonly attribution?: {
|
|
578
688
|
/** Attribution mode: 'inherit', 'always', 'never'. */
|
|
@@ -583,6 +693,16 @@ interface ClaudeSettingsConfig {
|
|
|
583
693
|
readonly email?: string;
|
|
584
694
|
};
|
|
585
695
|
};
|
|
696
|
+
/**
|
|
697
|
+
* Glob patterns to exclude from CLAUDE.md file search.
|
|
698
|
+
* @example ['vendor/**', 'generated/**']
|
|
699
|
+
*/
|
|
700
|
+
readonly claudeMdExcludes?: ReadonlyArray<string>;
|
|
701
|
+
/**
|
|
702
|
+
* Whether to respect .gitignore when indexing files.
|
|
703
|
+
* @default true
|
|
704
|
+
*/
|
|
705
|
+
readonly respectGitignore?: boolean;
|
|
586
706
|
}
|
|
587
707
|
/*******************************************************************************
|
|
588
708
|
*
|
|
@@ -2659,4 +2779,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
2659
2779
|
*/
|
|
2660
2780
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
2661
2781
|
|
|
2662
|
-
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, type AwsAccount, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, awsCdkBundle, baseBundle, getLatestEligibleVersion, jestBundle, pnpmBundle, projenBundle, resolveTemplateVariables, turborepoBundle, typescriptBundle, vitestBundle };
|
|
2782
|
+
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, type AgentConfigOptions, type AgentModel, type AgentPlatform, type AgentPlatformOverrides, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type ApproveMergeUpgradeOptions, type AwsAccount, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, type DeployWorkflowOptions, type DeploymentMetadata, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, type McpServerConfig, type McpTransport, type MergeMethod, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PROD_DEPLOY_NAME, PnpmWorkspace, type PnpmWorkspaceOptions, ProjectMetadata, type ProjectMetadataOptions, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedProjectMetadata, type SlackMetadata, type TemplateResolveResult, TestRunner, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, awsCdkBundle, baseBundle, getLatestEligibleVersion, jestBundle, pnpmBundle, projenBundle, resolveTemplateVariables, turborepoBundle, typescriptBundle, vitestBundle };
|
package/lib/index.d.ts
CHANGED
|
@@ -262,6 +262,19 @@ interface AgentSkill {
|
|
|
262
262
|
/**
|
|
263
263
|
* Platform-specific overrides for a sub-agent definition.
|
|
264
264
|
*/
|
|
265
|
+
/**
|
|
266
|
+
* Copilot handoff definition for sub-agent delegation.
|
|
267
|
+
*/
|
|
268
|
+
interface CopilotHandoff {
|
|
269
|
+
/** Display label for the handoff action. */
|
|
270
|
+
readonly label: string;
|
|
271
|
+
/** Target agent name. */
|
|
272
|
+
readonly agent: string;
|
|
273
|
+
/** Optional prompt to pass to the target agent. */
|
|
274
|
+
readonly prompt?: string;
|
|
275
|
+
/** Whether to auto-send the handoff without user confirmation. */
|
|
276
|
+
readonly send?: boolean;
|
|
277
|
+
}
|
|
265
278
|
interface AgentSubAgentPlatformOverrides {
|
|
266
279
|
/** Claude Code-specific overrides */
|
|
267
280
|
readonly claude?: {
|
|
@@ -269,8 +282,12 @@ interface AgentSubAgentPlatformOverrides {
|
|
|
269
282
|
readonly permissionMode?: string;
|
|
270
283
|
/** Run in isolated git worktree */
|
|
271
284
|
readonly isolation?: string;
|
|
272
|
-
/**
|
|
285
|
+
/** Run as a background task */
|
|
286
|
+
readonly background?: boolean;
|
|
287
|
+
/** Reasoning effort level (Opus): low, medium, high, max */
|
|
273
288
|
readonly effort?: string;
|
|
289
|
+
/** Persistent memory scope: user, project, local */
|
|
290
|
+
readonly memory?: string;
|
|
274
291
|
/** Exclude this sub-agent from Claude Code output entirely */
|
|
275
292
|
readonly exclude?: boolean;
|
|
276
293
|
};
|
|
@@ -285,11 +302,23 @@ interface AgentSubAgentPlatformOverrides {
|
|
|
285
302
|
};
|
|
286
303
|
/** Codex-specific overrides (future) */
|
|
287
304
|
readonly codex?: {
|
|
305
|
+
/** Sandbox mode: read-only or full */
|
|
306
|
+
readonly sandboxMode?: string;
|
|
307
|
+
/** Model reasoning effort */
|
|
308
|
+
readonly modelReasoningEffort?: string;
|
|
288
309
|
/** Exclude this sub-agent from Codex output entirely */
|
|
289
310
|
readonly exclude?: boolean;
|
|
290
311
|
};
|
|
291
312
|
/** Copilot-specific overrides (future) */
|
|
292
313
|
readonly copilot?: {
|
|
314
|
+
/** Target environment: vscode or github-copilot */
|
|
315
|
+
readonly target?: string;
|
|
316
|
+
/** Whether the user can invoke this sub-agent directly */
|
|
317
|
+
readonly userInvocable?: boolean;
|
|
318
|
+
/** Prevent auto-invocation of this sub-agent */
|
|
319
|
+
readonly disableModelInvocation?: boolean;
|
|
320
|
+
/** Handoff definitions for agent-to-agent delegation */
|
|
321
|
+
readonly handoffs?: ReadonlyArray<CopilotHandoff>;
|
|
293
322
|
/** Exclude this sub-agent from Copilot output entirely */
|
|
294
323
|
readonly exclude?: boolean;
|
|
295
324
|
};
|
|
@@ -322,8 +351,28 @@ interface AgentSubAgent {
|
|
|
322
351
|
* @example ['Read', 'Glob', 'Grep']
|
|
323
352
|
*/
|
|
324
353
|
readonly tools?: ReadonlyArray<string>;
|
|
354
|
+
/**
|
|
355
|
+
* Tool denylist. Applied before the allowlist.
|
|
356
|
+
* @example ['Bash', 'Write']
|
|
357
|
+
*/
|
|
358
|
+
readonly disallowedTools?: ReadonlyArray<string>;
|
|
325
359
|
/** Maximum agentic turns before the sub-agent stops. */
|
|
326
360
|
readonly maxTurns?: number;
|
|
361
|
+
/**
|
|
362
|
+
* Skills to preload for this sub-agent.
|
|
363
|
+
* @example ['commit', 'review-pr']
|
|
364
|
+
*/
|
|
365
|
+
readonly skills?: ReadonlyArray<string>;
|
|
366
|
+
/**
|
|
367
|
+
* MCP servers available to this sub-agent.
|
|
368
|
+
* Rendered to the platform-specific sub-agent config.
|
|
369
|
+
*/
|
|
370
|
+
readonly mcpServers?: Readonly<Record<string, McpServerConfig>>;
|
|
371
|
+
/**
|
|
372
|
+
* Sub-agents this agent can invoke/delegate to.
|
|
373
|
+
* @example ['test-writer', 'code-reviewer']
|
|
374
|
+
*/
|
|
375
|
+
readonly canDelegateToAgents?: ReadonlyArray<string>;
|
|
327
376
|
/** Optional per-platform overrides for this sub-agent. */
|
|
328
377
|
readonly platforms?: AgentSubAgentPlatformOverrides;
|
|
329
378
|
}
|
|
@@ -343,8 +392,21 @@ interface McpServerConfig {
|
|
|
343
392
|
readonly args?: ReadonlyArray<string>;
|
|
344
393
|
/** URL for HTTP/SSE remote servers. */
|
|
345
394
|
readonly url?: string;
|
|
395
|
+
/** HTTP headers for HTTP/SSE connections. */
|
|
396
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
346
397
|
/** Environment variables for the server process. */
|
|
347
398
|
readonly env?: Readonly<Record<string, string>>;
|
|
399
|
+
/**
|
|
400
|
+
* Tool allowlist — only these tools from the server will be available.
|
|
401
|
+
* @example ['read_file', 'search']
|
|
402
|
+
*/
|
|
403
|
+
readonly enabledTools?: ReadonlyArray<string>;
|
|
404
|
+
/**
|
|
405
|
+
* Tool denylist — these tools from the server will be blocked.
|
|
406
|
+
* Applied before enabledTools.
|
|
407
|
+
* @example ['delete_file', 'execute']
|
|
408
|
+
*/
|
|
409
|
+
readonly disabledTools?: ReadonlyArray<string>;
|
|
348
410
|
}
|
|
349
411
|
|
|
350
412
|
/*******************************************************************************
|
|
@@ -410,22 +472,58 @@ interface CursorHooksConfig {
|
|
|
410
472
|
* Fires before a shell command executes. Blocking — can deny execution.
|
|
411
473
|
*/
|
|
412
474
|
readonly beforeShellExecution?: ReadonlyArray<CursorHookAction>;
|
|
475
|
+
/**
|
|
476
|
+
* Fires after a shell command executes. Non-blocking (informational).
|
|
477
|
+
*/
|
|
478
|
+
readonly afterShellExecution?: ReadonlyArray<CursorHookAction>;
|
|
413
479
|
/**
|
|
414
480
|
* Fires before an MCP tool is invoked. Blocking — can deny execution.
|
|
415
481
|
*/
|
|
416
482
|
readonly beforeMCPExecution?: ReadonlyArray<CursorHookAction>;
|
|
483
|
+
/**
|
|
484
|
+
* Fires after an MCP tool is invoked. Non-blocking (informational).
|
|
485
|
+
*/
|
|
486
|
+
readonly afterMCPExecution?: ReadonlyArray<CursorHookAction>;
|
|
417
487
|
/**
|
|
418
488
|
* Fires before a file is read by the AI. Blocking — can rewrite content.
|
|
419
489
|
*/
|
|
420
490
|
readonly beforeReadFile?: ReadonlyArray<CursorHookAction>;
|
|
491
|
+
/**
|
|
492
|
+
* Fires before a tab file is read. Blocking — can rewrite content.
|
|
493
|
+
*/
|
|
494
|
+
readonly beforeTabFileRead?: ReadonlyArray<CursorHookAction>;
|
|
421
495
|
/**
|
|
422
496
|
* Fires after a file is edited. Non-blocking (informational).
|
|
423
497
|
*/
|
|
424
498
|
readonly afterFileEdit?: ReadonlyArray<CursorHookAction>;
|
|
499
|
+
/**
|
|
500
|
+
* Fires after a tab file is edited. Non-blocking (informational).
|
|
501
|
+
*/
|
|
502
|
+
readonly afterTabFileEdit?: ReadonlyArray<CursorHookAction>;
|
|
425
503
|
/**
|
|
426
504
|
* Fires when the agent stops. Non-blocking (informational).
|
|
427
505
|
*/
|
|
428
506
|
readonly stop?: ReadonlyArray<CursorHookAction>;
|
|
507
|
+
/**
|
|
508
|
+
* Fires when a session starts. Non-blocking (informational).
|
|
509
|
+
*/
|
|
510
|
+
readonly sessionStart?: ReadonlyArray<CursorHookAction>;
|
|
511
|
+
/**
|
|
512
|
+
* Fires when a session ends. Non-blocking (informational).
|
|
513
|
+
*/
|
|
514
|
+
readonly sessionEnd?: ReadonlyArray<CursorHookAction>;
|
|
515
|
+
/**
|
|
516
|
+
* Fires before context compaction. Non-blocking (informational).
|
|
517
|
+
*/
|
|
518
|
+
readonly preCompact?: ReadonlyArray<CursorHookAction>;
|
|
519
|
+
/**
|
|
520
|
+
* Fires after the agent produces a response. Non-blocking (informational).
|
|
521
|
+
*/
|
|
522
|
+
readonly afterAgentResponse?: ReadonlyArray<CursorHookAction>;
|
|
523
|
+
/**
|
|
524
|
+
* Fires after the agent produces a thought. Non-blocking (informational).
|
|
525
|
+
*/
|
|
526
|
+
readonly afterAgentThought?: ReadonlyArray<CursorHookAction>;
|
|
429
527
|
}
|
|
430
528
|
/**
|
|
431
529
|
* Cursor-specific configuration options.
|
|
@@ -605,6 +703,8 @@ interface ClaudeSettingsConfig {
|
|
|
605
703
|
readonly mcpServers?: Readonly<Record<string, McpServerConfig>>;
|
|
606
704
|
/** MCP servers to explicitly allow. */
|
|
607
705
|
readonly allowedMcpServers?: ReadonlyArray<string>;
|
|
706
|
+
/** MCP servers to explicitly deny. */
|
|
707
|
+
readonly deniedMcpServers?: ReadonlyArray<string>;
|
|
608
708
|
/** Environment variables passed to Claude's shell. */
|
|
609
709
|
readonly env?: Readonly<Record<string, string>>;
|
|
610
710
|
/** Sandbox configuration. */
|
|
@@ -622,6 +722,16 @@ interface ClaudeSettingsConfig {
|
|
|
622
722
|
* @example ['**\/.env', '**\/*.key', '**\/secrets/**']
|
|
623
723
|
*/
|
|
624
724
|
readonly excludeSensitivePatterns?: ReadonlyArray<string>;
|
|
725
|
+
/**
|
|
726
|
+
* Default model ID for the project.
|
|
727
|
+
* @example 'claude-opus-4-6'
|
|
728
|
+
*/
|
|
729
|
+
readonly model?: string;
|
|
730
|
+
/**
|
|
731
|
+
* Default reasoning effort level.
|
|
732
|
+
* @example 'high'
|
|
733
|
+
*/
|
|
734
|
+
readonly effortLevel?: string;
|
|
625
735
|
/** Attribution configuration for commits and PRs created by Claude. */
|
|
626
736
|
readonly attribution?: {
|
|
627
737
|
/** Attribution mode: 'inherit', 'always', 'never'. */
|
|
@@ -632,6 +742,16 @@ interface ClaudeSettingsConfig {
|
|
|
632
742
|
readonly email?: string;
|
|
633
743
|
};
|
|
634
744
|
};
|
|
745
|
+
/**
|
|
746
|
+
* Glob patterns to exclude from CLAUDE.md file search.
|
|
747
|
+
* @example ['vendor/**', 'generated/**']
|
|
748
|
+
*/
|
|
749
|
+
readonly claudeMdExcludes?: ReadonlyArray<string>;
|
|
750
|
+
/**
|
|
751
|
+
* Whether to respect .gitignore when indexing files.
|
|
752
|
+
* @default true
|
|
753
|
+
*/
|
|
754
|
+
readonly respectGitignore?: boolean;
|
|
635
755
|
}
|
|
636
756
|
/*******************************************************************************
|
|
637
757
|
*
|
|
@@ -2709,4 +2829,4 @@ declare const COMPLETE_JOB_ID = "complete";
|
|
|
2709
2829
|
declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
|
|
2710
2830
|
|
|
2711
2831
|
export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AgentConfig, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, JsiiFaker, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MonorepoProject, PROD_DEPLOY_NAME, PnpmWorkspace, ProjectMetadata, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, TestRunner, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, awsCdkBundle, baseBundle, getLatestEligibleVersion, jestBundle, pnpmBundle, projenBundle, resolveTemplateVariables, turborepoBundle, typescriptBundle, vitestBundle };
|
|
2712
|
-
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AwsAccount, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
|
2832
|
+
export type { AgentConfigOptions, AgentModel, AgentPlatform, AgentPlatformOverrides, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, ApproveMergeUpgradeOptions, AwsAccount, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, DeployWorkflowOptions, DeploymentMetadata, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, McpServerConfig, McpTransport, MergeMethod, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedProjectMetadata, SlackMetadata, TemplateResolveResult, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, VersionKey, VitestConfigOptions, VitestOptions };
|
package/lib/index.js
CHANGED
|
@@ -1569,21 +1569,11 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
1569
1569
|
}
|
|
1570
1570
|
const allMcpServers = {};
|
|
1571
1571
|
for (const [name, config] of Object.entries(mcpServers)) {
|
|
1572
|
-
|
|
1573
|
-
if (config.command) server.command = config.command;
|
|
1574
|
-
if (config.args) server.args = [...config.args];
|
|
1575
|
-
if (config.url) server.url = config.url;
|
|
1576
|
-
if (config.env) server.env = { ...config.env };
|
|
1577
|
-
allMcpServers[name] = server;
|
|
1572
|
+
allMcpServers[name] = _ClaudeRenderer.buildMcpServerObj(config);
|
|
1578
1573
|
}
|
|
1579
1574
|
if (settings?.mcpServers) {
|
|
1580
1575
|
for (const [name, config] of Object.entries(settings.mcpServers)) {
|
|
1581
|
-
|
|
1582
|
-
if (config.command) server.command = config.command;
|
|
1583
|
-
if (config.args) server.args = [...config.args];
|
|
1584
|
-
if (config.url) server.url = config.url;
|
|
1585
|
-
if (config.env) server.env = { ...config.env };
|
|
1586
|
-
allMcpServers[name] = server;
|
|
1576
|
+
allMcpServers[name] = _ClaudeRenderer.buildMcpServerObj(config);
|
|
1587
1577
|
}
|
|
1588
1578
|
}
|
|
1589
1579
|
if (Object.keys(allMcpServers).length > 0) {
|
|
@@ -1594,6 +1584,10 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
1594
1584
|
obj.allowedMcpServers = [...settings.allowedMcpServers];
|
|
1595
1585
|
hasContent = true;
|
|
1596
1586
|
}
|
|
1587
|
+
if (settings?.deniedMcpServers?.length) {
|
|
1588
|
+
obj.deniedMcpServers = [...settings.deniedMcpServers];
|
|
1589
|
+
hasContent = true;
|
|
1590
|
+
}
|
|
1597
1591
|
if (settings?.env && Object.keys(settings.env).length > 0) {
|
|
1598
1592
|
obj.env = { ...settings.env };
|
|
1599
1593
|
hasContent = true;
|
|
@@ -1634,10 +1628,26 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
1634
1628
|
obj.excludeSensitivePatterns = [...settings.excludeSensitivePatterns];
|
|
1635
1629
|
hasContent = true;
|
|
1636
1630
|
}
|
|
1631
|
+
if (settings?.model) {
|
|
1632
|
+
obj.model = settings.model;
|
|
1633
|
+
hasContent = true;
|
|
1634
|
+
}
|
|
1635
|
+
if (settings?.effortLevel) {
|
|
1636
|
+
obj.effortLevel = settings.effortLevel;
|
|
1637
|
+
hasContent = true;
|
|
1638
|
+
}
|
|
1637
1639
|
if (settings?.attribution) {
|
|
1638
1640
|
obj.attribution = settings.attribution;
|
|
1639
1641
|
hasContent = true;
|
|
1640
1642
|
}
|
|
1643
|
+
if (settings?.claudeMdExcludes?.length) {
|
|
1644
|
+
obj.claudeMdExcludes = [...settings.claudeMdExcludes];
|
|
1645
|
+
hasContent = true;
|
|
1646
|
+
}
|
|
1647
|
+
if (settings?.respectGitignore !== void 0) {
|
|
1648
|
+
obj.respectGitignore = settings.respectGitignore;
|
|
1649
|
+
hasContent = true;
|
|
1650
|
+
}
|
|
1641
1651
|
if (!hasContent) return;
|
|
1642
1652
|
new import_projen6.JsonFile(component, ".claude/settings.json", { obj });
|
|
1643
1653
|
}
|
|
@@ -1746,24 +1756,54 @@ var ClaudeRenderer = class _ClaudeRenderer {
|
|
|
1746
1756
|
lines.push(` - "${tool}"`);
|
|
1747
1757
|
}
|
|
1748
1758
|
}
|
|
1759
|
+
if (agent.disallowedTools && agent.disallowedTools.length > 0) {
|
|
1760
|
+
lines.push(`disallowedTools:`);
|
|
1761
|
+
for (const tool of agent.disallowedTools) {
|
|
1762
|
+
lines.push(` - "${tool}"`);
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1749
1765
|
if (agent.maxTurns) {
|
|
1750
|
-
lines.push(`
|
|
1766
|
+
lines.push(`maxTurns: ${agent.maxTurns}`);
|
|
1767
|
+
}
|
|
1768
|
+
if (agent.skills && agent.skills.length > 0) {
|
|
1769
|
+
lines.push(`skills:`);
|
|
1770
|
+
for (const skill of agent.skills) {
|
|
1771
|
+
lines.push(` - "${skill}"`);
|
|
1772
|
+
}
|
|
1751
1773
|
}
|
|
1752
1774
|
if (agent.platforms?.claude?.permissionMode) {
|
|
1753
|
-
lines.push(`
|
|
1775
|
+
lines.push(`permissionMode: ${agent.platforms.claude.permissionMode}`);
|
|
1754
1776
|
}
|
|
1755
1777
|
if (agent.platforms?.claude?.isolation) {
|
|
1756
1778
|
lines.push(`isolation: ${agent.platforms.claude.isolation}`);
|
|
1757
1779
|
}
|
|
1780
|
+
if (agent.platforms?.claude?.background) {
|
|
1781
|
+
lines.push(`background: true`);
|
|
1782
|
+
}
|
|
1758
1783
|
if (agent.platforms?.claude?.effort) {
|
|
1759
1784
|
lines.push(`effort: ${agent.platforms.claude.effort}`);
|
|
1760
1785
|
}
|
|
1786
|
+
if (agent.platforms?.claude?.memory) {
|
|
1787
|
+
lines.push(`memory: ${agent.platforms.claude.memory}`);
|
|
1788
|
+
}
|
|
1761
1789
|
lines.push("---");
|
|
1762
1790
|
lines.push("");
|
|
1763
1791
|
lines.push(...agent.prompt.split("\n"));
|
|
1764
1792
|
new import_textfile2.TextFile(component, `.claude/agents/${agent.name}.md`, { lines });
|
|
1765
1793
|
}
|
|
1766
1794
|
}
|
|
1795
|
+
static buildMcpServerObj(config) {
|
|
1796
|
+
const server = {};
|
|
1797
|
+
if (config.transport) server.type = config.transport;
|
|
1798
|
+
if (config.command) server.command = config.command;
|
|
1799
|
+
if (config.args) server.args = [...config.args];
|
|
1800
|
+
if (config.url) server.url = config.url;
|
|
1801
|
+
if (config.headers && Object.keys(config.headers).length > 0) {
|
|
1802
|
+
server.headers = { ...config.headers };
|
|
1803
|
+
}
|
|
1804
|
+
if (config.env) server.env = { ...config.env };
|
|
1805
|
+
return server;
|
|
1806
|
+
}
|
|
1767
1807
|
/**
|
|
1768
1808
|
* Determine the default Claude rule target based on rule scope.
|
|
1769
1809
|
* ALWAYS-scoped rules default to CLAUDE_MD; FILE_PATTERN rules default to SCOPED_FILE.
|
|
@@ -1884,9 +1924,13 @@ var CursorRenderer = class _CursorRenderer {
|
|
|
1884
1924
|
const servers = obj.mcpServers;
|
|
1885
1925
|
for (const [name, config] of Object.entries(mcpServers)) {
|
|
1886
1926
|
const server = {};
|
|
1927
|
+
if (config.transport) server.transport = config.transport;
|
|
1887
1928
|
if (config.command) server.command = config.command;
|
|
1888
1929
|
if (config.args) server.args = [...config.args];
|
|
1889
1930
|
if (config.url) server.url = config.url;
|
|
1931
|
+
if (config.headers && Object.keys(config.headers).length > 0) {
|
|
1932
|
+
server.headers = { ...config.headers };
|
|
1933
|
+
}
|
|
1890
1934
|
if (config.env) server.env = { ...config.env };
|
|
1891
1935
|
servers[name] = server;
|
|
1892
1936
|
}
|
|
@@ -1895,38 +1939,14 @@ var CursorRenderer = class _CursorRenderer {
|
|
|
1895
1939
|
static renderHooks(component, settings) {
|
|
1896
1940
|
if (!settings?.hooks) return;
|
|
1897
1941
|
const hooks = {};
|
|
1898
|
-
const
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
}
|
|
1906
|
-
if (beforeSubmitPrompt?.length) {
|
|
1907
|
-
hooks.beforeSubmitPrompt = beforeSubmitPrompt.map((h) => ({
|
|
1908
|
-
command: h.command
|
|
1909
|
-
}));
|
|
1910
|
-
}
|
|
1911
|
-
if (beforeShellExecution?.length) {
|
|
1912
|
-
hooks.beforeShellExecution = beforeShellExecution.map((h) => ({
|
|
1913
|
-
command: h.command
|
|
1914
|
-
}));
|
|
1915
|
-
}
|
|
1916
|
-
if (beforeMCPExecution?.length) {
|
|
1917
|
-
hooks.beforeMCPExecution = beforeMCPExecution.map((h) => ({
|
|
1918
|
-
command: h.command
|
|
1919
|
-
}));
|
|
1920
|
-
}
|
|
1921
|
-
if (beforeReadFile?.length) {
|
|
1922
|
-
hooks.beforeReadFile = beforeReadFile.map((h) => ({
|
|
1923
|
-
command: h.command
|
|
1924
|
-
}));
|
|
1925
|
-
}
|
|
1926
|
-
if (afterFileEdit?.length) {
|
|
1927
|
-
hooks.afterFileEdit = afterFileEdit.map((h) => ({ command: h.command }));
|
|
1928
|
-
}
|
|
1929
|
-
if (stop?.length) hooks.stop = stop.map((h) => ({ command: h.command }));
|
|
1942
|
+
const hookEntries = settings.hooks;
|
|
1943
|
+
for (const [event, actions] of Object.entries(hookEntries)) {
|
|
1944
|
+
if (actions && actions.length > 0) {
|
|
1945
|
+
hooks[event] = actions.map((h) => ({
|
|
1946
|
+
command: h.command
|
|
1947
|
+
}));
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1930
1950
|
if (Object.keys(hooks).length === 0) return;
|
|
1931
1951
|
new import_projen7.JsonFile(component, ".cursor/hooks.json", {
|
|
1932
1952
|
obj: { version: 1, hooks }
|