replicas-engine 0.1.1303 → 0.1.1306
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/src/{asp-host-SNQAHZ4O.js → asp-host-AQZFJO5T.js} +5 -5
- package/dist/src/{chunk-HWYNJQUU.js → chunk-4AY3GCWL.js} +2 -2
- package/dist/src/{chunk-XHKAQ3OC.js → chunk-DDUTPOJ3.js} +1 -1
- package/dist/src/{chunk-5MKQOOKZ.js → chunk-IHC4JY3Q.js} +1 -1
- package/dist/src/{chunk-VQQPKWKF.js → chunk-OSPDTEXF.js} +3 -3
- package/dist/src/{chunk-MXHSZLHO.js → chunk-QBNBBWCE.js} +26 -2
- package/dist/src/{chunk-5ERKSVWK.js → chunk-TKAWFIXX.js} +8 -7
- package/dist/src/{chunk-RCJP3KY5.js → chunk-VZXRPXJI.js} +9 -2
- package/dist/src/{chunk-5OA7WBDC.js → chunk-YJ7NCHM6.js} +6 -6
- package/dist/src/command-protection-hook.js +4 -4
- package/dist/src/headless-agent.js +4 -4
- package/dist/src/index.js +26 -26
- package/dist/src/post-tool-pr-hook.js +2 -2
- package/dist/src/subagent-mcp.js +1 -1
- package/package.json +1 -1
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
listRunningCodexModels,
|
|
9
9
|
restartCodexAspHost,
|
|
10
10
|
restartCodexAspHostIfRunning
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-YJ7NCHM6.js";
|
|
12
|
+
import "./chunk-TKAWFIXX.js";
|
|
13
|
+
import "./chunk-OSPDTEXF.js";
|
|
14
|
+
import "./chunk-IHC4JY3Q.js";
|
|
15
15
|
import "./chunk-UZSNFLDQ.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-QBNBBWCE.js";
|
|
17
17
|
import "./chunk-VEQXQN22.js";
|
|
18
18
|
export {
|
|
19
19
|
CODEX_ULTRAFAST_SERVICE_TIER,
|
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
AspClient
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OSPDTEXF.js";
|
|
7
7
|
import {
|
|
8
8
|
ASTER_BASE_URL,
|
|
9
9
|
ASTER_PROVIDER,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
isRecord,
|
|
16
16
|
readOllamaAuthEnv,
|
|
17
17
|
readOpenAICompatibleAuthEnv
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-QBNBBWCE.js";
|
|
19
19
|
|
|
20
20
|
// src/managers/codex-asp/notification-dispatch.ts
|
|
21
21
|
var TURN_STARTED_METHOD = "turn/started";
|
|
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
HOOK_EXEC_MAX_BUFFER_BYTES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QBNBBWCE.js";
|
|
7
7
|
|
|
8
8
|
// src/utils/exec.ts
|
|
9
9
|
import { exec, execFile } from "child_process";
|
|
@@ -3,10 +3,10 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
execFileAsync
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IHC4JY3Q.js";
|
|
7
7
|
import {
|
|
8
8
|
isVersionBelow
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QBNBBWCE.js";
|
|
10
10
|
|
|
11
11
|
// src/utils/codex-agent-env.ts
|
|
12
12
|
function buildCodexAgentEnv(source = process.env) {
|
|
@@ -240,7 +240,7 @@ function getCodexModelProvider(method) {
|
|
|
240
240
|
if (method === "foundry") return "azure";
|
|
241
241
|
return method === "ollama" || method === "openai-compatible" ? "replicas_openai_compatible" : "openai";
|
|
242
242
|
}
|
|
243
|
-
var ENGINE_PACKAGE_VERSION = "0.1.
|
|
243
|
+
var ENGINE_PACKAGE_VERSION = "0.1.1306";
|
|
244
244
|
var INITIALIZE_METHOD = "initialize";
|
|
245
245
|
var INITIALIZED_NOTIFICATION = "initialized";
|
|
246
246
|
var ACCOUNT_LOGIN_START_METHOD = "account/login/start";
|
|
@@ -9720,6 +9720,7 @@ function findPushSignals({ commands, invocations, truncated }, context) {
|
|
|
9720
9720
|
});
|
|
9721
9721
|
return truncated ? [...signals, "git-push-unknown-destination"] : signals;
|
|
9722
9722
|
}
|
|
9723
|
+
var apiMethod = (args) => /(?:^|\s)(?:-X\s*|--method[\s=])(\w+)/i.exec(args.join(" "))?.[1]?.toUpperCase();
|
|
9723
9724
|
function isPrMergeCommand(argv) {
|
|
9724
9725
|
const name = argv[0].split("/").pop();
|
|
9725
9726
|
if (name !== "gh" && name !== "glab") return false;
|
|
@@ -9727,8 +9728,7 @@ function isPrMergeCommand(argv) {
|
|
|
9727
9728
|
if (args.includes("--help") || args.includes("-h")) return false;
|
|
9728
9729
|
const words = args.filter((arg, index) => !arg.startsWith("-") && !/^(?:-R|--repo)$/.test(args[index - 1] ?? ""));
|
|
9729
9730
|
if (words[0] === (name === "gh" ? "pr" : "mr") && words[1] === "merge") return true;
|
|
9730
|
-
|
|
9731
|
-
return words[0] === "api" && method?.toUpperCase() === "PUT" && words.some((word) => /\/(?:pulls|merge_requests)\/[^/]+\/merge$/.test(word));
|
|
9731
|
+
return words[0] === "api" && apiMethod(args) === "PUT" && words.some((word) => /\/(?:pulls|merge_requests)\/[^/]+\/merge$/.test(word));
|
|
9732
9732
|
}
|
|
9733
9733
|
var matchingChecks = (checks, text3) => checks.flatMap(([name, pattern]) => pattern.test(text3) ? [name] : []);
|
|
9734
9734
|
function executedText(commands, keepWord = () => true) {
|
|
@@ -9760,6 +9760,29 @@ function findPrMergeSignals(parsed, context) {
|
|
|
9760
9760
|
function findGitCommitSignals({ invocations, truncated }) {
|
|
9761
9761
|
return truncated || invocations.some(({ subcommand }) => subcommand === "commit") ? ["git-commit"] : [];
|
|
9762
9762
|
}
|
|
9763
|
+
var SCOUT_BLOCKED_GIT_SUBCOMMANDS = /* @__PURE__ */ new Set(["clone", "push"]);
|
|
9764
|
+
var SCOUT_BLOCKED_HOST_COMMANDS = {
|
|
9765
|
+
gh: ["repo clone", "repo fork", "pr create", "pr new"],
|
|
9766
|
+
glab: ["repo clone", "repo fork", "mr create", "mr new"]
|
|
9767
|
+
};
|
|
9768
|
+
function findScoutRepoWriteSignals(parsed) {
|
|
9769
|
+
const { commands, invocations } = parsed;
|
|
9770
|
+
return [.../* @__PURE__ */ new Set([
|
|
9771
|
+
...findGitCommitSignals(parsed),
|
|
9772
|
+
...invocations.flatMap(({ subcommand }) => SCOUT_BLOCKED_GIT_SUBCOMMANDS.has(subcommand) ? [`git-${subcommand}`] : []),
|
|
9773
|
+
...commands.flatMap(({ argv }) => {
|
|
9774
|
+
const name = argv[0].split("/").pop() ?? "";
|
|
9775
|
+
const args = argv.slice(1);
|
|
9776
|
+
const words = args.filter((arg, index) => !arg.startsWith("-") && !/^(?:-R|--repo)$/.test(args[index - 1] ?? ""));
|
|
9777
|
+
const command = words.slice(0, 2).join(" ");
|
|
9778
|
+
if (SCOUT_BLOCKED_HOST_COMMANDS[name]?.includes(command)) return [`${name}-${command.replace(" ", "-")}`];
|
|
9779
|
+
if (name !== "gh" || words[0] !== "api" || !words.some((word) => /\/pulls\/?$/.test(word))) return [];
|
|
9780
|
+
const method = apiMethod(args);
|
|
9781
|
+
const hasFields = args.some((arg) => /^(?:-[fF]|--(?:raw-)?field(?:=|$)|--input(?:=|$))/.test(arg));
|
|
9782
|
+
return (method ? method === "POST" : hasFields) ? ["gh-api-create-pull-request"] : [];
|
|
9783
|
+
})
|
|
9784
|
+
])];
|
|
9785
|
+
}
|
|
9763
9786
|
function findCommandProtectionGitLookups({ invocations }) {
|
|
9764
9787
|
const writes = invocations.filter(({ subcommand }) => subcommand === "commit" || subcommand === "push");
|
|
9765
9788
|
const messageFiles = writes.flatMap(({ subcommand, args, dir, command }) => {
|
|
@@ -10892,6 +10915,7 @@ export {
|
|
|
10892
10915
|
parseCommandProtectionRequest,
|
|
10893
10916
|
findPrMergeSignals,
|
|
10894
10917
|
findGitCommitSignals,
|
|
10918
|
+
findScoutRepoWriteSignals,
|
|
10895
10919
|
findCommandProtectionGitLookups,
|
|
10896
10920
|
shouldRefreshPullRequests,
|
|
10897
10921
|
MAX_REPO_FILE_CONTENT_BYTES,
|
|
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
|
|
|
4
4
|
import {
|
|
5
5
|
SUBPROCESS_MAX_BUFFER,
|
|
6
6
|
execFileAsync
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IHC4JY3Q.js";
|
|
8
8
|
import {
|
|
9
9
|
isRecord as isRecord2
|
|
10
10
|
} from "./chunk-UZSNFLDQ.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
provisionedDeviceSchema,
|
|
23
23
|
readReplicasRuntimeEnv,
|
|
24
24
|
serializePosixEnvFile
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-QBNBBWCE.js";
|
|
26
26
|
|
|
27
27
|
// src/runtime-env-loader.ts
|
|
28
28
|
import { readFileSync } from "fs";
|
|
@@ -172,6 +172,7 @@ function loadEngineEnv(runtimeEnvValues) {
|
|
|
172
172
|
REPLICAS_ENV_DEVICES: parseDevices(readEnv("REPLICAS_ENV_DEVICES")),
|
|
173
173
|
TS_AUTHKEY: readEnv("TS_AUTHKEY"),
|
|
174
174
|
REPLICAS_DISABLE_AUTO_START_HOOKS: readEnv("REPLICAS_DISABLE_AUTO_START_HOOKS")?.toLowerCase() === "true",
|
|
175
|
+
REPLICAS_SCOUT: readEnv("REPLICAS_SCOUT") === "true",
|
|
175
176
|
REPLICAS_MAX_LIVE_AGENT_PROCESSES: Number(readEnv("REPLICAS_MAX_LIVE_AGENT_PROCESSES")) || void 0
|
|
176
177
|
};
|
|
177
178
|
delete process.env.REPLICAS_ENV_DEVICES;
|
|
@@ -354,16 +355,16 @@ var MonolithService = class {
|
|
|
354
355
|
var monolithService = new MonolithService();
|
|
355
356
|
|
|
356
357
|
export {
|
|
357
|
-
runGitCommand,
|
|
358
|
-
readRepoHeadBranches,
|
|
359
|
-
getOriginDefaultBranch,
|
|
360
|
-
getCurrentBranch,
|
|
361
|
-
resolveDiffBase,
|
|
362
358
|
readRuntimeEnvFile,
|
|
363
359
|
ENGINE_ENV,
|
|
364
360
|
reloadEngineEnv,
|
|
365
361
|
setLinearSessionId,
|
|
366
362
|
setAgentCredentialSnapshot,
|
|
363
|
+
runGitCommand,
|
|
364
|
+
readRepoHeadBranches,
|
|
365
|
+
getOriginDefaultBranch,
|
|
366
|
+
getCurrentBranch,
|
|
367
|
+
resolveDiffBase,
|
|
367
368
|
monolithRequest,
|
|
368
369
|
monolithService
|
|
369
370
|
};
|
|
@@ -2,22 +2,25 @@
|
|
|
2
2
|
import { createRequire as __createRequire } from 'node:module';
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
|
+
ENGINE_ENV,
|
|
5
6
|
getOriginDefaultBranch,
|
|
6
7
|
monolithRequest,
|
|
7
8
|
runGitCommand
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TKAWFIXX.js";
|
|
9
10
|
import {
|
|
10
11
|
extractCommandProtectionCommandText,
|
|
11
12
|
findCommandProtectionGitLookups,
|
|
12
13
|
findGitCommitSignals,
|
|
13
14
|
findPrMergeSignals,
|
|
15
|
+
findScoutRepoWriteSignals,
|
|
14
16
|
parseCommandProtectionRequest
|
|
15
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QBNBBWCE.js";
|
|
16
18
|
|
|
17
19
|
// src/services/command-protection-service.ts
|
|
18
20
|
import { readFile, stat } from "fs/promises";
|
|
19
21
|
var DEFAULT_COMMAND_PROTECTION_BLOCK_MESSAGE = "Blocked by Replicas command protection.";
|
|
20
22
|
var MAX_COMMIT_MESSAGE_FILE_BYTES = 64 * 1024;
|
|
23
|
+
var SCOUT_REPO_WRITE_BLOCK_MESSAGE = "Scout never clones, commits, pushes, or opens pull requests. Spawn a workspace on an environment that has the repository, or relay this to the thread's workspace.";
|
|
21
24
|
async function resolveGitContext({ repoDirs, messageFiles }) {
|
|
22
25
|
if (repoDirs.length === 0 && messageFiles.length === 0) return void 0;
|
|
23
26
|
const git = (dir, args) => runGitCommand(args, dir).then((output) => output || null, () => null);
|
|
@@ -56,6 +59,10 @@ function failClosed(reason, matchedSignals) {
|
|
|
56
59
|
}
|
|
57
60
|
async function evaluateCommandProtection(request, signal) {
|
|
58
61
|
const parsed = parseCommandProtectionRequest(request);
|
|
62
|
+
const scoutSignals = ENGINE_ENV.REPLICAS_SCOUT ? findScoutRepoWriteSignals(parsed) : [];
|
|
63
|
+
if (scoutSignals.length > 0) {
|
|
64
|
+
return { allowed: false, enabled: true, reason: SCOUT_REPO_WRITE_BLOCK_MESSAGE, matchedSignals: scoutSignals };
|
|
65
|
+
}
|
|
59
66
|
const gitContext = await resolveGitContext(findCommandProtectionGitLookups(parsed));
|
|
60
67
|
const matchedSignals = [...findGitCommitSignals(parsed), ...findPrMergeSignals(parsed, gitContext).signals];
|
|
61
68
|
if (matchedSignals.length === 0) {
|
|
@@ -10,15 +10,15 @@ import {
|
|
|
10
10
|
resolveDiffBase,
|
|
11
11
|
runGitCommand,
|
|
12
12
|
setAgentCredentialSnapshot
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-TKAWFIXX.js";
|
|
14
14
|
import {
|
|
15
15
|
AppServerProcess,
|
|
16
16
|
buildCodexAgentEnv
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-OSPDTEXF.js";
|
|
18
18
|
import {
|
|
19
19
|
SUBPROCESS_MAX_BUFFER,
|
|
20
20
|
execFileAsync
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-IHC4JY3Q.js";
|
|
22
22
|
import {
|
|
23
23
|
isRecord
|
|
24
24
|
} from "./chunk-UZSNFLDQ.js";
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
resolveOpenAICompatibleModelsUrl,
|
|
57
57
|
splitMothershipInstructions,
|
|
58
58
|
withTimeout
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-QBNBBWCE.js";
|
|
60
60
|
|
|
61
61
|
// src/managers/codex-token-manager.ts
|
|
62
62
|
import { promises as fs } from "fs";
|
|
@@ -306,7 +306,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
306
306
|
await this.applyCredentialUpdate(++this.credentialGeneration, async () => {
|
|
307
307
|
await this.applyCredentialsResponse(data);
|
|
308
308
|
setAgentCredentialSnapshot("codex", data);
|
|
309
|
-
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-
|
|
309
|
+
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-AQZFJO5T.js");
|
|
310
310
|
await restartCodexAspHostIfRunning2();
|
|
311
311
|
});
|
|
312
312
|
await this.start(true);
|
|
@@ -328,7 +328,7 @@ var CodexTokenManager = class extends BaseRefreshManager {
|
|
|
328
328
|
const accountChanged = ENGINE_ENV.REPLICAS_AGENT_CREDENTIALS.codex?.credentialId !== data.credentialId;
|
|
329
329
|
await this.applyCredentialsResponse(data);
|
|
330
330
|
if (restartOnChange && (accountChanged || CODEX_AUTH_ENV_KEYS.some((key, index) => process.env[key] !== previousEnv[index]))) {
|
|
331
|
-
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-
|
|
331
|
+
const { restartCodexAspHostIfRunning: restartCodexAspHostIfRunning2 } = await import("./asp-host-AQZFJO5T.js");
|
|
332
332
|
await restartCodexAspHostIfRunning2();
|
|
333
333
|
}
|
|
334
334
|
setAgentCredentialSnapshot("codex", data);
|
|
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
evaluateCommandProtection
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-VZXRPXJI.js";
|
|
7
|
+
import "./chunk-TKAWFIXX.js";
|
|
8
|
+
import "./chunk-IHC4JY3Q.js";
|
|
9
9
|
import {
|
|
10
10
|
isRecord
|
|
11
11
|
} from "./chunk-UZSNFLDQ.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-QBNBBWCE.js";
|
|
13
13
|
import "./chunk-VEQXQN22.js";
|
|
14
14
|
|
|
15
15
|
// src/command-protection-hook.ts
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
recoverCompletedTurn,
|
|
15
15
|
spawnMuseMsp,
|
|
16
16
|
startMuseSession
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-4AY3GCWL.js";
|
|
18
18
|
import {
|
|
19
19
|
AppServerProcess,
|
|
20
20
|
buildCodexAgentEnv
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-OSPDTEXF.js";
|
|
22
|
+
import "./chunk-IHC4JY3Q.js";
|
|
23
23
|
import {
|
|
24
24
|
AGENT,
|
|
25
25
|
OPENCODE_GO_PROVIDER,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
headlessAgentUsagePath,
|
|
30
30
|
isRecord,
|
|
31
31
|
withTimeout
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-QBNBBWCE.js";
|
|
33
33
|
import "./chunk-VEQXQN22.js";
|
|
34
34
|
|
|
35
35
|
// src/headless-agent.ts
|
package/dist/src/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
evaluateCommandProtection,
|
|
28
28
|
extractToolCommand,
|
|
29
29
|
reportCommandProtectionBlock
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-VZXRPXJI.js";
|
|
31
31
|
import {
|
|
32
32
|
ACCOUNT_RATE_LIMITS_UPDATED_METHOD,
|
|
33
33
|
AGENT_MESSAGE_DELTA_METHOD,
|
|
@@ -65,10 +65,10 @@ import {
|
|
|
65
65
|
spawnMuseMsp,
|
|
66
66
|
startMuseSession,
|
|
67
67
|
uuidV7
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-4AY3GCWL.js";
|
|
69
69
|
import {
|
|
70
70
|
publishedPullRequestUrls
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-DDUTPOJ3.js";
|
|
72
72
|
import {
|
|
73
73
|
ACCOUNT_RATE_LIMITS_READ_METHOD,
|
|
74
74
|
AsyncLock,
|
|
@@ -143,7 +143,7 @@ import {
|
|
|
143
143
|
timestampFromSeconds,
|
|
144
144
|
upsertCredentialFileLines,
|
|
145
145
|
writeSecureCredentialFile
|
|
146
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-YJ7NCHM6.js";
|
|
147
147
|
import {
|
|
148
148
|
ENGINE_ENV,
|
|
149
149
|
monolithRequest,
|
|
@@ -153,15 +153,15 @@ import {
|
|
|
153
153
|
resolveDiffBase,
|
|
154
154
|
setAgentCredentialSnapshot,
|
|
155
155
|
setLinearSessionId
|
|
156
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-TKAWFIXX.js";
|
|
157
157
|
import {
|
|
158
158
|
getCodexModelProvider
|
|
159
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-OSPDTEXF.js";
|
|
160
160
|
import {
|
|
161
161
|
SUBPROCESS_MAX_BUFFER,
|
|
162
162
|
execAsync,
|
|
163
163
|
execFileAsync
|
|
164
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-IHC4JY3Q.js";
|
|
165
165
|
import {
|
|
166
166
|
isRecord as isRecord2
|
|
167
167
|
} from "./chunk-UZSNFLDQ.js";
|
|
@@ -415,7 +415,7 @@ import {
|
|
|
415
415
|
workspaceTokenRequestSchema,
|
|
416
416
|
workspaceTokenResponseSchema,
|
|
417
417
|
wrapInTag
|
|
418
|
-
} from "./chunk-
|
|
418
|
+
} from "./chunk-QBNBBWCE.js";
|
|
419
419
|
import {
|
|
420
420
|
cloneMcpConfig,
|
|
421
421
|
ensureCompatibilityImports,
|
|
@@ -10639,11 +10639,9 @@ function getComparableUserMessage(event) {
|
|
|
10639
10639
|
}
|
|
10640
10640
|
function areDuplicateUserMessages(a, b) {
|
|
10641
10641
|
if (areSameUserMessageEvents(a, b)) return true;
|
|
10642
|
-
const aId =
|
|
10643
|
-
const bId =
|
|
10642
|
+
const { userMessageId: aId, userMessage: aMessage } = workspaceChatEventSignals(a);
|
|
10643
|
+
const { userMessageId: bId, userMessage: bMessage } = workspaceChatEventSignals(b);
|
|
10644
10644
|
if (aId !== null && bId !== null && aId !== bId) return false;
|
|
10645
|
-
const aMessage = getComparableUserMessage(a);
|
|
10646
|
-
const bMessage = getComparableUserMessage(b);
|
|
10647
10645
|
if (!aMessage || aMessage !== bMessage) return false;
|
|
10648
10646
|
const aAccepted = isAcceptedUserMessage(a);
|
|
10649
10647
|
const bAccepted = isAcceptedUserMessage(b);
|
|
@@ -10652,7 +10650,7 @@ function areDuplicateUserMessages(a, b) {
|
|
|
10652
10650
|
{ content: bMessage, timestamp: b.timestamp }
|
|
10653
10651
|
) : false;
|
|
10654
10652
|
}
|
|
10655
|
-
var
|
|
10653
|
+
var eventSignalsCache = /* @__PURE__ */ new WeakMap();
|
|
10656
10654
|
function claudeToolResultId(event) {
|
|
10657
10655
|
if (event.type !== "claude-user") return null;
|
|
10658
10656
|
const { message } = event.payload;
|
|
@@ -10661,17 +10659,18 @@ function claudeToolResultId(event) {
|
|
|
10661
10659
|
return isRecord(result) && typeof result.tool_use_id === "string" ? `tool_result:${result.tool_use_id}` : null;
|
|
10662
10660
|
}
|
|
10663
10661
|
function workspaceChatEventSignals(event) {
|
|
10664
|
-
let
|
|
10665
|
-
if (
|
|
10666
|
-
|
|
10667
|
-
|
|
10662
|
+
let signals = eventSignalsCache.get(event);
|
|
10663
|
+
if (signals === void 0) {
|
|
10664
|
+
signals = {
|
|
10665
|
+
streamId: getEventStreamId(event) ?? claudeToolResultId(event),
|
|
10666
|
+
json: JSON.stringify(event),
|
|
10667
|
+
userMessage: getComparableUserMessage(event),
|
|
10668
|
+
userMessageId: event.type === QUEUED_MESSAGE_REMOVED_EVENT_TYPE ? null : getUserMessageId(event),
|
|
10669
|
+
timestampMs: getEventTimestampMs(event)
|
|
10670
|
+
};
|
|
10671
|
+
eventSignalsCache.set(event, signals);
|
|
10668
10672
|
}
|
|
10669
|
-
return
|
|
10670
|
-
streamId: getEventStreamId(event) ?? claudeToolResultId(event),
|
|
10671
|
-
json,
|
|
10672
|
-
userMessage: getComparableUserMessage(event),
|
|
10673
|
-
userMessageId: event.type === QUEUED_MESSAGE_REMOVED_EVENT_TYPE ? null : getUserMessageId(event)
|
|
10674
|
-
};
|
|
10673
|
+
return signals;
|
|
10675
10674
|
}
|
|
10676
10675
|
var emptyIndex = () => ({
|
|
10677
10676
|
byStreamId: /* @__PURE__ */ new Map(),
|
|
@@ -10799,12 +10798,13 @@ function mergeWorkspaceChatHistoryEvents(primary, supplemental, removedMessageId
|
|
|
10799
10798
|
);
|
|
10800
10799
|
}
|
|
10801
10800
|
function insertChronologically(existing, additions) {
|
|
10802
|
-
const
|
|
10801
|
+
const timestampMs2 = (event) => workspaceChatEventSignals(event).timestampMs;
|
|
10802
|
+
const sorted = [...additions].sort((a, b) => timestampMs2(a) - timestampMs2(b));
|
|
10803
10803
|
const result = [];
|
|
10804
10804
|
let next = 0;
|
|
10805
10805
|
for (const event of existing) {
|
|
10806
|
-
const ms =
|
|
10807
|
-
while (next < sorted.length &&
|
|
10806
|
+
const ms = timestampMs2(event);
|
|
10807
|
+
while (next < sorted.length && timestampMs2(sorted[next]) < ms) result.push(sorted[next++]);
|
|
10808
10808
|
result.push(event);
|
|
10809
10809
|
}
|
|
10810
10810
|
result.push(...sorted.slice(next));
|
|
@@ -3,13 +3,13 @@ import { createRequire as __createRequire } from 'node:module';
|
|
|
3
3
|
const require = __createRequire(import.meta.url);
|
|
4
4
|
import {
|
|
5
5
|
publishedPullRequestUrls
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DDUTPOJ3.js";
|
|
7
7
|
import {
|
|
8
8
|
isRecord
|
|
9
9
|
} from "./chunk-UZSNFLDQ.js";
|
|
10
10
|
import {
|
|
11
11
|
shouldRefreshPullRequests
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QBNBBWCE.js";
|
|
13
13
|
import "./chunk-VEQXQN22.js";
|
|
14
14
|
|
|
15
15
|
// src/services/post-tool-pr-notifier.ts
|
package/dist/src/subagent-mcp.js
CHANGED