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.
- package/dist/ChatSessionHandler.d.ts +19 -1
- package/dist/ChatSessionHandler.d.ts.map +1 -1
- package/dist/ChatSessionHandler.js +12 -0
- package/dist/ChatSessionHandler.js.map +1 -1
- package/dist/ConfigManager.d.ts.map +1 -1
- package/dist/ConfigManager.js +12 -2
- package/dist/ConfigManager.js.map +1 -1
- package/dist/EdgeWorker.d.ts +42 -0
- package/dist/EdgeWorker.d.ts.map +1 -1
- package/dist/EdgeWorker.js +202 -22
- package/dist/EdgeWorker.js.map +1 -1
- package/dist/McpConfigService.d.ts +8 -4
- package/dist/McpConfigService.d.ts.map +1 -1
- package/dist/McpConfigService.js +12 -5
- package/dist/McpConfigService.js.map +1 -1
- package/dist/RunnerConfigBuilder.d.ts +53 -17
- package/dist/RunnerConfigBuilder.d.ts.map +1 -1
- package/dist/RunnerConfigBuilder.js +93 -41
- package/dist/RunnerConfigBuilder.js.map +1 -1
- package/dist/ToolPermissionResolver.d.ts +41 -18
- package/dist/ToolPermissionResolver.d.ts.map +1 -1
- package/dist/ToolPermissionResolver.js +77 -47
- package/dist/ToolPermissionResolver.js.map +1 -1
- package/dist/hooks/IntentToAddHook.d.ts +56 -0
- package/dist/hooks/IntentToAddHook.d.ts.map +1 -0
- package/dist/hooks/IntentToAddHook.js +150 -0
- package/dist/hooks/IntentToAddHook.js.map +1 -0
- package/dist/prompts/failureModePromptAddendum.d.ts +26 -0
- package/dist/prompts/failureModePromptAddendum.d.ts.map +1 -0
- package/dist/prompts/failureModePromptAddendum.js +67 -0
- package/dist/prompts/failureModePromptAddendum.js.map +1 -0
- package/package.json +14 -14
|
@@ -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,
|
|
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
|
|
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"}
|
package/dist/McpConfigService.js
CHANGED
|
@@ -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
|
|
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
|
-
//
|
|
82
|
-
//
|
|
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
|
|
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":"AAGA,OAAO,EAEN,sBAAsB,GACtB,MAAM,iBAAiB,CAAC;AA2BzB;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IACpB,IAAI,CAAuB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEhE,YAAY,IAA0B;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED
|
|
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,
|
|
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
|
|
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
|
-
|
|
68
|
-
|
|
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
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
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
|
|
146
|
-
* Returns null when the tree is clean, when `cwd` isn't a git
|
|
147
|
-
* git is unavailable — in those cases the stop
|
|
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,
|
|
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
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
131
|
-
|
|
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
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
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
|
|
364
|
-
* Returns null when the tree is clean, when `cwd` isn't a git
|
|
365
|
-
* git is unavailable — in those cases the stop
|
|
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
|
|
5
|
+
* Unified tool permission resolver for issue, chat, and webhook-triggered
|
|
6
|
+
* sessions.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
-
*
|
|
28
|
-
*
|
|
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
|
|
31
|
-
*
|
|
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
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
67
|
+
buildGithubAllowedTools(repository: RepositoryConfig, promptType?: PromptType): string[];
|
|
46
68
|
/**
|
|
47
|
-
* Resolve allowed tools for a single repository (
|
|
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":"
|
|
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"}
|