cyrus-edge-worker 0.2.52 → 0.2.53

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.
@@ -43,14 +43,18 @@ export declare class McpConfigService {
43
43
  /**
44
44
  * Build MCP configuration with automatic Linear server injection and cyrus-tools over Fastify MCP.
45
45
  * Workspace-level servers (Linear, cyrus-tools, Slack) are configured once using workspace-level token.
46
+ *
47
+ * Whether the agent can actually CALL into any of these servers is gated
48
+ * by the per-platform allowed-tools array (`teams.{linear,slack,github}_allowed_tools`),
49
+ * not by anything done here — so it's safe to always spin them up when
50
+ * their underlying transport credentials exist (Slack inline via
51
+ * `SLACK_BOT_TOKEN`, Linear via the workspace's Linear token, etc.).
52
+ *
46
53
  * @param repoId - Repository ID for MCP context scoping
47
54
  * @param linearWorkspaceId - Linear workspace ID (from webhook.organizationId or repo config)
48
55
  * @param parentSessionId - Parent session ID for cyrus-tools context
49
- * @param options.excludeSlackMcp - When true, excludes the Slack MCP server even if SLACK_BOT_TOKEN is set
50
56
  */
51
- buildMcpConfig(repoId: string, linearWorkspaceId: string, parentSessionId?: string, options?: {
52
- excludeSlackMcp?: boolean;
53
- }): Record<string, McpServerConfig>;
57
+ buildMcpConfig(repoId: string, linearWorkspaceId: string, parentSessionId?: string): Record<string, McpServerConfig>;
54
58
  /**
55
59
  * Merge mcpConfigPath from multiple repositories into a single list.
56
60
  * For same-name .mcp.json servers across repos, last wins (handled by Claude's merge behavior).
@@ -1 +1 @@
1
- {"version":3,"file":"McpConfigService.d.ts","sourceRoot":"","sources":["../src/McpConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACN,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,yBAAyB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,2DAA2D;IAC3D,0BAA0B,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACnE,mFAAmF;IACnF,eAAe,EAAE,CAChB,WAAW,EAAE,MAAM,KACf,CAAC,oBAAoB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,YAAY,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC7E,wEAAwE;IACxE,mBAAmB,EAAE,MAAM,MAAM,CAAC;IAClC,oEAAoE;IACpE,uBAAuB,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACzE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,QAAQ,CAAgD;gBAEpD,IAAI,EAAE,oBAAoB;IAItC;;;;;;;OAOG;IACH,cAAc,CACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACrC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IA8ElC;;;OAGG;IACH,wBAAwB,CACvB,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACjD,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAyBhC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAIpE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,2BAA2B,IAAI,MAAM,GAAG,SAAS;IAQjD;;OAEG;IACH,oBAAoB,CAAC,sBAAsB,EAAE,OAAO,GAAG,OAAO;IAa9D,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;CAmBrB"}
1
+ {"version":3,"file":"McpConfigService.d.ts","sourceRoot":"","sources":["../src/McpConfigService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACN,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,yBAAyB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,2DAA2D;IAC3D,0BAA0B,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACnE,mFAAmF;IACnF,eAAe,EAAE,CAChB,WAAW,EAAE,MAAM,KACf,CAAC,oBAAoB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,YAAY,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC7E,wEAAwE;IACxE,mBAAmB,EAAE,MAAM,MAAM,CAAC;IAClC,oEAAoE;IACpE,uBAAuB,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;CACzE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,QAAQ,CAAgD;gBAEpD,IAAI,EAAE,oBAAoB;IAItC;;;;;;;;;;;;;OAaG;IACH,cAAc,CACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IA+ElC;;;OAGG;IACH,wBAAwB,CACvB,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACjD,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAyBhC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAIpE;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,2BAA2B,IAAI,MAAM,GAAG,SAAS;IAQjD;;OAEG;IACH,oBAAoB,CAAC,sBAAsB,EAAE,OAAO,GAAG,OAAO;IAa9D,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;CAmBrB"}
@@ -19,12 +19,18 @@ export class McpConfigService {
19
19
  /**
20
20
  * Build MCP configuration with automatic Linear server injection and cyrus-tools over Fastify MCP.
21
21
  * Workspace-level servers (Linear, cyrus-tools, Slack) are configured once using workspace-level token.
22
+ *
23
+ * Whether the agent can actually CALL into any of these servers is gated
24
+ * by the per-platform allowed-tools array (`teams.{linear,slack,github}_allowed_tools`),
25
+ * not by anything done here — so it's safe to always spin them up when
26
+ * their underlying transport credentials exist (Slack inline via
27
+ * `SLACK_BOT_TOKEN`, Linear via the workspace's Linear token, etc.).
28
+ *
22
29
  * @param repoId - Repository ID for MCP context scoping
23
30
  * @param linearWorkspaceId - Linear workspace ID (from webhook.organizationId or repo config)
24
31
  * @param parentSessionId - Parent session ID for cyrus-tools context
25
- * @param options.excludeSlackMcp - When true, excludes the Slack MCP server even if SLACK_BOT_TOKEN is set
26
32
  */
27
- buildMcpConfig(repoId, linearWorkspaceId, parentSessionId, options) {
33
+ buildMcpConfig(repoId, linearWorkspaceId, parentSessionId) {
28
34
  const contextId = this.buildContextId(repoId, parentSessionId);
29
35
  // Prebuild one SDK server for this context so callback wiring remains deterministic.
30
36
  const linearToken = this.deps.getLinearTokenForWorkspace(linearWorkspaceId);
@@ -78,10 +84,11 @@ export class McpConfigService {
78
84
  url: "https://atcyrus.com/docs/mcp",
79
85
  },
80
86
  };
81
- // Conditionally inject the Slack MCP server when SLACK_BOT_TOKEN is available
82
- // https://github.com/korotovsky/slack-mcp-server
87
+ // Inject the Slack MCP server whenever SLACK_BOT_TOKEN is available
88
+ // per-platform availability is enforced upstream by the allowed-tools
89
+ // array. https://github.com/korotovsky/slack-mcp-server
83
90
  const slackBotToken = process.env.SLACK_BOT_TOKEN?.trim();
84
- if (slackBotToken && !options?.excludeSlackMcp) {
91
+ if (slackBotToken) {
85
92
  mcpConfig.slack = {
86
93
  command: "npx",
87
94
  args: ["-y", "slack-mcp-server@latest", "--transport", "stdio"],
@@ -1 +1 @@
1
- {"version":3,"file":"McpConfigService.js","sourceRoot":"","sources":["../src/McpConfigService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpConfigService.js","sourceRoot":"","sources":["../src/McpConfigService.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
- import type { McpServerConfig, SandboxSettings, SDKMessage, SdkPluginConfig } from "cyrus-claude-runner";
1
+ import type { HookCallbackMatcher, HookEvent, McpServerConfig, SandboxSettings, SDKMessage, SdkPluginConfig } from "cyrus-claude-runner";
2
2
  import type { AgentRunnerConfig, CyrusAgentSession, ILogger, OnAskUserQuestion, RepositoryConfig, RunnerType } from "cyrus-core";
3
3
  /**
4
4
  * Subset of McpConfigService consumed by RunnerConfigBuilder.
5
5
  */
6
6
  export interface IMcpConfigProvider {
7
- buildMcpConfig(repoId: string, linearWorkspaceId: string, parentSessionId?: string, options?: {
8
- excludeSlackMcp?: boolean;
9
- }): Record<string, McpServerConfig>;
7
+ buildMcpConfig(repoId: string, linearWorkspaceId: string, parentSessionId?: string): Record<string, McpServerConfig>;
10
8
  buildMergedMcpConfigPath(repositories: RepositoryConfig | RepositoryConfig[]): string | string[] | undefined;
11
9
  }
12
10
  /**
@@ -41,10 +39,22 @@ export interface ChatRunnerConfigInput {
41
39
  platformName: string;
42
40
  /** Linear workspace ID for building fresh MCP config at session start */
43
41
  linearWorkspaceId?: string;
44
- /** Repository to source user-configured MCP paths from (V1: first available repo) */
42
+ /** Repository whose MCP runtime servers (Linear MCP, Cyrus tools, etc.) get
43
+ * spun up for this chat session — chat sessions are repo-agnostic at the
44
+ * session level, so this just picks one repo to seed those native servers. */
45
45
  repository?: RepositoryConfig;
46
46
  /** Repository paths the chat session can read */
47
47
  repositoryPaths?: string[];
48
+ /**
49
+ * Filesystem paths to custom-integration `.mcp.json` files to load for
50
+ * this chat session (sourced from `EdgeWorkerConfig.slackMcpConfigs` for
51
+ * Slack). Chat sessions are repo-agnostic, so `repository.mcpConfigPath`
52
+ * is not consulted here — only this list determines which custom MCP
53
+ * files the session loads. When empty/omitted, no custom `.mcp.json`
54
+ * files are loaded (native servers built via `mcpConfigProvider` still
55
+ * run as usual).
56
+ */
57
+ platformMcpConfigOverrides?: readonly string[];
48
58
  logger: ILogger;
49
59
  onMessage: (message: SDKMessage) => void | Promise<void>;
50
60
  onError: (error: Error) => void;
@@ -64,9 +74,17 @@ export interface IssueRunnerConfigInput {
64
74
  labels?: string[];
65
75
  issueDescription?: string;
66
76
  maxTurns?: number;
67
- mcpOptions?: {
68
- excludeSlackMcp?: boolean;
69
- };
77
+ /**
78
+ * Filesystem paths to custom-integration `.mcp.json` files for this
79
+ * issue session: `EdgeWorkerConfig.linearMcpConfigs` for Linear, or
80
+ * `githubMcpConfigs` for GitHub/GitLab. The list is NOT a blanket
81
+ * override — it's only consulted when the routed repo does NOT have its
82
+ * own `allowedTools` override. If the repo has its own allow-list set,
83
+ * the agent uses `repository.mcpConfigPath` instead so the repo's
84
+ * permission rules and its server set always come from the same scope
85
+ * (see `buildIssueConfig`).
86
+ */
87
+ platformMcpConfigOverrides?: readonly string[];
70
88
  linearWorkspaceId?: string;
71
89
  cyrusHome: string;
72
90
  logger: ILogger;
@@ -119,12 +137,11 @@ export declare class RunnerConfigBuilder {
119
137
  runnerType: RunnerType;
120
138
  };
121
139
  /**
122
- * Build a Stop hook that ensures the agent creates a PR before ending the
123
- * session when code changes were made. Inspects the working tree at the
124
- * session cwd and blocks the first stop attempt if there are uncommitted
125
- * changes or commits ahead of the upstream branch. The `stop_hook_active`
126
- * flag prevents infinite loops — once the hook has already fired, the next
127
- * stop is always allowed through.
140
+ * Build a Stop hook that reminds the agent to commit, push, and open a PR
141
+ * before ending the session. Blocks the first stop attempt and feeds the
142
+ * guidance back to the agent via the SDK's native `decision: "block"` +
143
+ * `reason` mechanism. The `stop_hook_active` flag prevents infinite loops
144
+ * once the hook has already fired, the next stop is always allowed through.
128
145
  */
129
146
  private buildStopHook;
130
147
  /**
@@ -140,11 +157,30 @@ export declare class RunnerConfigBuilder {
140
157
  */
141
158
  private buildScreenshotHooks;
142
159
  }
160
+ /**
161
+ * Build a Stop hook that ensures the agent ships work before ending the
162
+ * session. Inspects the working tree at the session cwd and blocks the first
163
+ * stop attempt when there are uncommitted tracked changes or commits ahead
164
+ * of the upstream branch. The `stop_hook_active` flag prevents infinite
165
+ * loops — once the hook has fired, the next stop is allowed through.
166
+ *
167
+ * Pre-existing untracked files (local scratch files, env files, IDE
168
+ * artifacts outside `.gitignore`) do not trigger the guardrail; new files
169
+ * the agent writes are marked via `IntentToAddHook` so they still appear as
170
+ * a tracked diff and re-trigger the block when forgotten. See CYPACK-1196.
171
+ */
172
+ export declare function buildStopHook(log: ILogger): Partial<Record<HookEvent, HookCallbackMatcher[]>>;
143
173
  /**
144
174
  * Inspect the working tree at `cwd` and return a guardrail message if there
145
- * is unshipped work (uncommitted changes or commits ahead of the upstream).
146
- * Returns null when the tree is clean, when `cwd` isn't a git repo, or when
147
- * git is unavailable — in those cases the stop should not be blocked.
175
+ * is unshipped work (uncommitted tracked changes or commits ahead of the
176
+ * upstream). Returns null when the tree is clean, when `cwd` isn't a git
177
+ * repo, or when git is unavailable — in those cases the stop is not blocked.
178
+ *
179
+ * Uses `--untracked-files=no` so that pre-existing untracked files in the
180
+ * customer's worktree (scratch files, local env files, IDE artifacts) do not
181
+ * wedge the session. Files Cyrus creates via Write/Edit are marked with
182
+ * `git add --intent-to-add` by `IntentToAddHook` so they still show as a
183
+ * tracked diff and block the stop when left uncommitted.
148
184
  */
149
185
  export declare function inspectGitGuardrail(cwd: string, log: ILogger): string | null;
150
186
  //# sourceMappingURL=RunnerConfigBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunnerConfigBuilder.d.ts","sourceRoot":"","sources":["../src/RunnerConfigBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGX,eAAe,EAEf,eAAe,EACf,UAAU,EACV,eAAe,EAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACX,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,cAAc,CACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACrC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACnC,wBAAwB,CACvB,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACjD,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,qBAAqB,CACpB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,wBAAwB,CACvB,MAAM,EAAE,MAAM,EAAE,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACvB;QACF,UAAU,EAAE,UAAU,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;IACzD,gCAAgC,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qFAAqF;IACrF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,sEAAsE;IACtE,6BAA6B,CAAC,EAAE,CAC/B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,KACf,iBAAiB,CAAC;IACvB,uDAAuD;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC7D,qEAAqE;IACrE,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC1B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,cAAc,CAAkB;gBAGvC,gBAAgB,EAAE,iBAAiB,EACnC,iBAAiB,EAAE,kBAAkB,EACrC,cAAc,EAAE,eAAe;IAOhC;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,qBAAqB,GAAG,iBAAiB;IAmEhE;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG;QAChD,MAAM,EAAE,iBAAiB,CAAC;QAC1B,UAAU,EAAE,UAAU,CAAC;KACvB;IAiJD;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAgCrB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAsD1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CAwF5B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiE5E"}
1
+ {"version":3,"file":"RunnerConfigBuilder.d.ts","sourceRoot":"","sources":["../src/RunnerConfigBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import { join } from "node:path";
3
+ import { buildIntentToAddHook } from "./hooks/IntentToAddHook.js";
3
4
  import { buildPrMarkerHook } from "./hooks/PrMarkerHook.js";
5
+ import { appendFailureModeAddendum } from "./prompts/failureModePromptAddendum.js";
4
6
  /**
5
7
  * Shared runner config assembly for both issue and chat sessions.
6
8
  *
@@ -24,9 +26,18 @@ export class RunnerConfigBuilder {
24
26
  * config without hooks or model selection.
25
27
  */
26
28
  buildChatConfig(input) {
27
- // Derive user-configured MCP config path from the repository
28
- const mcpConfigPath = input.repository
29
- ? this.mcpConfigProvider.buildMergedMcpConfigPath(input.repository)
29
+ // MCP config paths for chat sessions come exclusively from the
30
+ // platform override list (e.g. `slackMcpConfigs`). Chat sessions
31
+ // are repo-agnostic at the session level — we do NOT fall back to
32
+ // "first repo wins" `repository.mcpConfigPath` (the prior V1
33
+ // default), because that arbitrarily privileged whichever repo
34
+ // loaded first. When the platform list is empty, the chat
35
+ // session simply loads no per-repo `.mcp.json` files.
36
+ const mcpConfigPath = input.platformMcpConfigOverrides &&
37
+ input.platformMcpConfigOverrides.length > 0
38
+ ? input.platformMcpConfigOverrides.length === 1
39
+ ? input.platformMcpConfigOverrides[0]
40
+ : [...input.platformMcpConfigOverrides]
30
41
  : undefined;
31
42
  // Build fresh MCP config at session start (reads current token from config)
32
43
  // This follows the same pattern as buildIssueConfig — never use a pre-baked config
@@ -55,7 +66,7 @@ export class RunnerConfigBuilder {
55
66
  workspaceName: input.workspaceName,
56
67
  cyrusHome: input.cyrusHome,
57
68
  autoMemoryDirectory,
58
- appendSystemPrompt: input.systemPrompt,
69
+ appendSystemPrompt: appendFailureModeAddendum(input.systemPrompt),
59
70
  ...(mcpConfig ? { mcpConfig } : {}),
60
71
  ...(mcpConfigPath ? { mcpConfigPath } : {}),
61
72
  ...(input.resumeSessionId
@@ -79,12 +90,14 @@ export class RunnerConfigBuilder {
79
90
  // plus the Stop hook that blocks the session when work is unshipped.
80
91
  const screenshotHooks = this.buildScreenshotHooks(log);
81
92
  const prMarkerHook = buildPrMarkerHook(log);
93
+ const intentToAddHook = buildIntentToAddHook(log);
82
94
  const stopHook = this.buildStopHook(log);
83
95
  const hooks = {
84
96
  ...stopHook,
85
97
  PostToolUse: [
86
98
  ...(screenshotHooks.PostToolUse ?? []),
87
99
  ...(prMarkerHook.PostToolUse ?? []),
100
+ ...(intentToAddHook.PostToolUse ?? []),
88
101
  ],
89
102
  };
90
103
  // Determine runner type and model override from selectors
@@ -127,8 +140,27 @@ export class RunnerConfigBuilder {
127
140
  this.runnerSelector.getDefaultModelForRunner(runnerType);
128
141
  const resolvedWorkspaceId = input.linearWorkspaceId ??
129
142
  input.requireLinearWorkspaceId(input.repository);
130
- const mcpConfig = this.mcpConfigProvider.buildMcpConfig(input.repository.id, resolvedWorkspaceId, input.sessionId, input.mcpOptions);
131
- const mcpConfigPath = this.mcpConfigProvider.buildMergedMcpConfigPath(input.repository);
143
+ const mcpConfig = this.mcpConfigProvider.buildMcpConfig(input.repository.id, resolvedWorkspaceId, input.sessionId);
144
+ // Repo-override vs platform-default resolution for MCP config paths:
145
+ // - If the routed repo has its own `allowedTools` override, it
146
+ // also owns its own MCP config — use `repository.mcpConfigPath`
147
+ // so the repo-scoped allow-list lines up with the repo-scoped
148
+ // server set. The two travel as a unit.
149
+ // - Otherwise the repo inherits the platform's allow-list, and
150
+ // should likewise inherit the platform's MCP config list
151
+ // (`linearMcpConfigs` / `githubMcpConfigs`).
152
+ // This guarantees the agent's permission rules and the loaded MCP
153
+ // server set always come from the same scope.
154
+ const repoHasAllowedToolsOverride = Array.isArray(input.repository.allowedTools) &&
155
+ input.repository.allowedTools.length > 0;
156
+ const mcpConfigPath = repoHasAllowedToolsOverride
157
+ ? this.mcpConfigProvider.buildMergedMcpConfigPath(input.repository)
158
+ : input.platformMcpConfigOverrides &&
159
+ input.platformMcpConfigOverrides.length > 0
160
+ ? input.platformMcpConfigOverrides.length === 1
161
+ ? input.platformMcpConfigOverrides[0]
162
+ : [...input.platformMcpConfigOverrides]
163
+ : undefined;
132
164
  const config = {
133
165
  workingDirectory: input.session.workspace.path,
134
166
  allowedTools: input.allowedTools,
@@ -138,7 +170,7 @@ export class RunnerConfigBuilder {
138
170
  cyrusHome: input.cyrusHome,
139
171
  mcpConfigPath,
140
172
  mcpConfig,
141
- appendSystemPrompt: input.systemPrompt || "",
173
+ appendSystemPrompt: appendFailureModeAddendum(input.systemPrompt),
142
174
  // Priority order: label override > repository config > global default
143
175
  model: finalModel,
144
176
  fallbackModel: fallbackModelOverride ||
@@ -194,38 +226,14 @@ export class RunnerConfigBuilder {
194
226
  return { config, runnerType };
195
227
  }
196
228
  /**
197
- * Build a Stop hook that ensures the agent creates a PR before ending the
198
- * session when code changes were made. Inspects the working tree at the
199
- * session cwd and blocks the first stop attempt if there are uncommitted
200
- * changes or commits ahead of the upstream branch. The `stop_hook_active`
201
- * flag prevents infinite loops — once the hook has already fired, the next
202
- * stop is always allowed through.
229
+ * Build a Stop hook that reminds the agent to commit, push, and open a PR
230
+ * before ending the session. Blocks the first stop attempt and feeds the
231
+ * guidance back to the agent via the SDK's native `decision: "block"` +
232
+ * `reason` mechanism. The `stop_hook_active` flag prevents infinite loops
233
+ * once the hook has already fired, the next stop is always allowed through.
203
234
  */
204
235
  buildStopHook(log) {
205
- return {
206
- Stop: [
207
- {
208
- matcher: ".*",
209
- hooks: [
210
- async (input) => {
211
- const stopInput = input;
212
- // Prevent infinite loops: if the hook already fired, allow the stop.
213
- if (stopInput.stop_hook_active) {
214
- return {};
215
- }
216
- const guardrail = inspectGitGuardrail(stopInput.cwd, log);
217
- if (!guardrail) {
218
- return {};
219
- }
220
- return {
221
- decision: "block",
222
- reason: guardrail,
223
- };
224
- },
225
- ],
226
- },
227
- ],
228
- };
236
+ return buildStopHook(log);
229
237
  }
230
238
  /**
231
239
  * Build sandbox and env config for a Claude runner session.
@@ -358,11 +366,55 @@ export class RunnerConfigBuilder {
358
366
  };
359
367
  }
360
368
  }
369
+ /**
370
+ * Build a Stop hook that ensures the agent ships work before ending the
371
+ * session. Inspects the working tree at the session cwd and blocks the first
372
+ * stop attempt when there are uncommitted tracked changes or commits ahead
373
+ * of the upstream branch. The `stop_hook_active` flag prevents infinite
374
+ * loops — once the hook has fired, the next stop is allowed through.
375
+ *
376
+ * Pre-existing untracked files (local scratch files, env files, IDE
377
+ * artifacts outside `.gitignore`) do not trigger the guardrail; new files
378
+ * the agent writes are marked via `IntentToAddHook` so they still appear as
379
+ * a tracked diff and re-trigger the block when forgotten. See CYPACK-1196.
380
+ */
381
+ export function buildStopHook(log) {
382
+ return {
383
+ Stop: [
384
+ {
385
+ matcher: ".*",
386
+ hooks: [
387
+ async (input) => {
388
+ const stopInput = input;
389
+ // Prevent infinite loops: if the hook already fired, allow the stop.
390
+ if (stopInput.stop_hook_active) {
391
+ return {};
392
+ }
393
+ const guardrail = inspectGitGuardrail(stopInput.cwd, log);
394
+ if (!guardrail) {
395
+ return {};
396
+ }
397
+ return {
398
+ decision: "block",
399
+ reason: guardrail,
400
+ };
401
+ },
402
+ ],
403
+ },
404
+ ],
405
+ };
406
+ }
361
407
  /**
362
408
  * Inspect the working tree at `cwd` and return a guardrail message if there
363
- * is unshipped work (uncommitted changes or commits ahead of the upstream).
364
- * Returns null when the tree is clean, when `cwd` isn't a git repo, or when
365
- * git is unavailable — in those cases the stop should not be blocked.
409
+ * is unshipped work (uncommitted tracked changes or commits ahead of the
410
+ * upstream). Returns null when the tree is clean, when `cwd` isn't a git
411
+ * repo, or when git is unavailable — in those cases the stop is not blocked.
412
+ *
413
+ * Uses `--untracked-files=no` so that pre-existing untracked files in the
414
+ * customer's worktree (scratch files, local env files, IDE artifacts) do not
415
+ * wedge the session. Files Cyrus creates via Write/Edit are marked with
416
+ * `git add --intent-to-add` by `IntentToAddHook` so they still show as a
417
+ * tracked diff and block the stop when left uncommitted.
366
418
  */
367
419
  export function inspectGitGuardrail(cwd, log) {
368
420
  const runGit = (args) => {
@@ -374,7 +426,7 @@ export function inspectGitGuardrail(cwd, log) {
374
426
  };
375
427
  let status;
376
428
  try {
377
- status = runGit("status --porcelain");
429
+ status = runGit("status --porcelain --untracked-files=no");
378
430
  }
379
431
  catch (err) {
380
432
  log.debug(`PR guardrail: skipping (cwd is not a git repo or git failed): ${err.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"RunnerConfigBuilder.js","sourceRoot":"","sources":["../src/RunnerConfigBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunnerConfigBuilder.js","sourceRoot":"","sources":["../src/RunnerConfigBuilder.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,18 @@ import type { EdgeWorkerConfig, ILogger, RepositoryConfig } from "cyrus-core";
2
2
  /** Prompt type used for label-based tool/prompt selection */
3
3
  export type PromptType = "debugger" | "builder" | "scoper" | "orchestrator" | "graphite-orchestrator";
4
4
  /**
5
- * Unified tool permission resolver for both issue sessions and chat sessions.
5
+ * Unified tool permission resolver for issue, chat, and webhook-triggered
6
+ * sessions.
6
7
  *
7
- * Provides a single source of truth for:
8
- * - Repository-based tool resolution (allowed/disallowed)
9
- * - Chat-mode read-only tool sets with MCP prefixes
10
- * - Workspace-level MCP tool prefixes
8
+ * The resolver is **additive only**: it never appends or strips tools after
9
+ * the explicit list is chosen. The per-platform defaults live in cyrus-core
10
+ * (`LINEAR_DEFAULT_ALLOWED_TOOLS`, `SLACK_DEFAULT_ALLOWED_TOOLS`,
11
+ * `GITHUB_DEFAULT_ALLOWED_TOOLS`) and include workspace MCP prefixes
12
+ * (`mcp__linear`, `mcp__cyrus-tools`, etc.) explicitly. Callers that want a
13
+ * tighter list pass `linearAllowedTools` / `slackAllowedTools` /
14
+ * `githubAllowedTools` on `EdgeWorkerConfig`, or set repo-level
15
+ * `allowedTools`. The repo override is a verbatim replacement, not an
16
+ * intersection.
11
17
  */
12
18
  export declare class ToolPermissionResolver {
13
19
  private config;
@@ -22,29 +28,46 @@ export declare class ToolPermissionResolver {
22
28
  */
23
29
  resolveToolPreset(preset: string | string[]): string[];
24
30
  /**
25
- * Build allowed tools for chat sessions.
31
+ * Build allowed tools for Slack chat sessions.
26
32
  *
27
- * Chat sessions get read-only tools plus MCP tool prefixes derived from
28
- * the provided MCP config keys and user-configured MCP server names.
33
+ * Returns the team-configured `slackAllowedTools` if set, otherwise the
34
+ * built-in `SLACK_DEFAULT_ALLOWED_TOOLS`. Additionally merges any
35
+ * user-configured MCP tool entries the caller threads through (used by
36
+ * `RunnerConfigBuilder` when a repo declares custom MCP server tools).
29
37
  *
30
- * @param mcpConfigKeys - Built-in MCP server names (keys from inline McpServerConfig record)
31
- * @param userMcpTools - User-configured MCP tool entries from repository allowedTools (already mcp__* prefixed)
38
+ * @param mcpConfigKeys - Built-in MCP server names. Folded in as
39
+ * `mcp__<key>` prefixes only if not already present in the explicit
40
+ * list — the defaults already include the standard prefixes, so this
41
+ * is purely additive for non-standard servers.
42
+ * @param userMcpTools - User-configured MCP tool entries from repository
43
+ * `allowedTools` (already `mcp__*` prefixed).
32
44
  */
33
45
  buildChatAllowedTools(mcpConfigKeys?: string[], userMcpTools?: string[]): string[];
34
46
  /**
35
- * Build allowed tools list with Linear MCP tools automatically included.
36
- * Accepts a single repository or an array for multi-repo sessions.
37
- * For multiple repositories, the result is the union of each repo's allowed tools
38
- * (presets resolved first, then unioned).
39
- * Workspace-level MCP tools are added once regardless of repo count.
47
+ * Build allowed tools list for Linear-triggered sessions.
48
+ *
49
+ * Accepts a single repository or an array for multi-repo sessions. For
50
+ * multiple repositories the result is the **union** of each repo's
51
+ * resolved list (per-repo presets resolved first, then unioned). When no
52
+ * repos are passed, falls back to the workspace `linearAllowedTools`
53
+ * (or the Linear platform default when neither is set).
40
54
  */
41
55
  buildAllowedTools(repositories: RepositoryConfig | RepositoryConfig[], promptType?: PromptType): string[];
42
56
  /**
43
- * Get workspace-level MCP tool prefixes that should always be in allowedTools.
57
+ * Build allowed tools list for GitHub-triggered sessions.
58
+ *
59
+ * GitHub `@mentions` target a single repository via a single PR, so this
60
+ * does not perform multi-repo union — it expects exactly one repo. When
61
+ * the workspace defines `githubAllowedTools` it is used as the global
62
+ * default for resolution (in place of `linearAllowedTools`); otherwise
63
+ * we fall back to `GITHUB_DEFAULT_ALLOWED_TOOLS`. Per-repository
64
+ * `allowedTools` overrides still take precedence — same priority chain
65
+ * as Linear, just with a different platform default at the bottom.
44
66
  */
45
- getWorkspaceMcpTools(): string[];
67
+ buildGithubAllowedTools(repository: RepositoryConfig, promptType?: PromptType): string[];
46
68
  /**
47
- * Resolve allowed tools for a single repository (without workspace MCP tools).
69
+ * Resolve allowed tools for a single repository (Linear/GitHub priority
70
+ * chain — chat sessions go through `buildChatAllowedTools`).
48
71
  */
49
72
  private buildAllowedToolsForRepo;
50
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ToolPermissionResolver.d.ts","sourceRoot":"","sources":["../src/ToolPermissionResolver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9E,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GACnB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,cAAc,GACd,uBAAuB,CAAC;AAE3B;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IAClC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO;IAKrD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIzC;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;IAoB7D;;;;;;;;OAQG;IACI,qBAAqB,CAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE;IAeX;;;;;;OAMG;IACI,iBAAiB,CACvB,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,EACnD,UAAU,CAAC,EAAE,UAAU,GACrB,MAAM,EAAE;IAgCX;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IASvC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwChC;;;;;OAKG;IACI,oBAAoB,CAC1B,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,EACnD,UAAU,CAAC,EAAE,UAAU,GACrB,MAAM,EAAE;IAoCX;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAqCnC"}
1
+ {"version":3,"file":"ToolPermissionResolver.d.ts","sourceRoot":"","sources":["../src/ToolPermissionResolver.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAO9E,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GACnB,UAAU,GACV,SAAS,GACT,QAAQ,GACR,cAAc,GACd,uBAAuB,CAAC;AAE3B;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAsB;IAClC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAU;gBAEZ,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO;IAKrD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAIzC;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;IAsB7D;;;;;;;;;;;;;;OAcG;IACI,qBAAqB,CAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,YAAY,CAAC,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE;IAmBX;;;;;;;;OAQG;IACI,iBAAiB,CACvB,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,EACnD,UAAU,CAAC,EAAE,UAAU,GACrB,MAAM,EAAE;IAwBX;;;;;;;;;;OAUG;IACI,uBAAuB,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,CAAC,EAAE,UAAU,GACrB,MAAM,EAAE;IAgBX;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA4ChC;;;;;OAKG;IACI,oBAAoB,CAC1B,YAAY,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,EACnD,UAAU,CAAC,EAAE,UAAU,GACrB,MAAM,EAAE;IAiCX;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAqCnC"}