opencode-anthropic-multi-account 0.2.21 → 0.2.22
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/{chunk-IETVH43F.js → chunk-RAX4SFCO.js} +14 -2
- package/dist/chunk-RAX4SFCO.js.map +1 -0
- package/dist/chunk-TOCJ3XJM.js +2458 -0
- package/dist/chunk-TOCJ3XJM.js.map +1 -0
- package/dist/fingerprint-capture.d.ts +3 -2
- package/dist/fingerprint-capture.js +4 -2
- package/dist/index.js +114 -24
- package/dist/index.js.map +1 -1
- package/dist/scrub-template.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-IETVH43F.js.map +0 -1
- package/dist/chunk-RVXWLAVK.js +0 -1130
- package/dist/chunk-RVXWLAVK.js.map +0 -1
|
@@ -35,6 +35,18 @@ function isRecord(value) {
|
|
|
35
35
|
function cleanupRemovedSections(text) {
|
|
36
36
|
return text.replace(/\n{3,}/g, "\n\n").replace(/^(?:\s*\n)+/, "").replace(/(?:\n\s*)+$/, "");
|
|
37
37
|
}
|
|
38
|
+
function removeDynamicStatusBlock(text) {
|
|
39
|
+
return text.replace(
|
|
40
|
+
/\n\nStatus:\n(?:[\s\S]*?)\n\nRecent commits:\n/g,
|
|
41
|
+
"\n\nStatus:\n(dynamic)\n\nRecent commits:\n"
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
function removeDynamicRecentCommits(text) {
|
|
45
|
+
return text.replace(
|
|
46
|
+
/(\n\nRecent commits:\n)(?:[0-9a-f]{7,}\s.*\n?)+/g,
|
|
47
|
+
"$1(dynamic)\n"
|
|
48
|
+
);
|
|
49
|
+
}
|
|
38
50
|
function scrubText(text) {
|
|
39
51
|
let scrubbed = text;
|
|
40
52
|
for (const { pattern, replacement } of USER_PATH_REPLACEMENTS) {
|
|
@@ -73,7 +85,7 @@ function removeHostContextSections(systemPrompt) {
|
|
|
73
85
|
}
|
|
74
86
|
keptLines.push(line);
|
|
75
87
|
}
|
|
76
|
-
return cleanupRemovedSections(keptLines.join("\n"));
|
|
88
|
+
return cleanupRemovedSections(removeDynamicRecentCommits(removeDynamicStatusBlock(keptLines.join("\n"))));
|
|
77
89
|
}
|
|
78
90
|
function scrubObjectStrings(value) {
|
|
79
91
|
if (typeof value === "string") {
|
|
@@ -111,4 +123,4 @@ export {
|
|
|
111
123
|
scrubObjectStrings,
|
|
112
124
|
scrubTemplate
|
|
113
125
|
};
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-RAX4SFCO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scrub-template.ts"],"sourcesContent":["import type { TemplateData } from \"./fingerprint-capture\";\n\ninterface ScrubTemplateOptions {\n dropMcpTools?: boolean;\n}\n\nconst HOST_CONTEXT_SECTION_NAMES = new Set([\n \"environment\",\n \"automemory\",\n \"claudemd\",\n \"useremail\",\n \"currentdate\",\n \"gitstatus\",\n]);\n\nconst USER_PATH_REPLACEMENTS = [\n {\n pattern: /\\/Users\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+/g,\n replacement: \"/Users/user\",\n },\n {\n pattern: /\\/home\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+/g,\n replacement: \"/home/user\",\n },\n {\n pattern: /([A-Za-z]:\\\\Users\\\\)(?!user(?:\\\\|$))[A-Za-z0-9._-]+/g,\n replacement: \"$1user\",\n },\n] as const;\n\nconst USER_PATH_HIT_PATTERNS = [\n /\\/Users\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+(?:\\/[^\\s\"'`<>)]*)?/g,\n /\\/home\\/(?!user(?:\\/|$))[A-Za-z0-9._-]+(?:\\/[^\\s\"'`<>)]*)?/g,\n /[A-Za-z]:\\\\Users\\\\(?!user(?:\\\\|$))[A-Za-z0-9._-]+(?:\\\\[^\\s\"'`<>)]*)?/g,\n] as const;\n\nfunction normalizeSectionName(value: string): string {\n return value.toLowerCase().replace(/[^a-z0-9]+/g, \"\");\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction cleanupRemovedSections(text: string): string {\n return text\n .replace(/\\n{3,}/g, \"\\n\\n\")\n .replace(/^(?:\\s*\\n)+/, \"\")\n .replace(/(?:\\n\\s*)+$/, \"\");\n}\n\nfunction removeDynamicStatusBlock(text: string): string {\n return text.replace(\n /\\n\\nStatus:\\n(?:[\\s\\S]*?)\\n\\nRecent commits:\\n/g,\n \"\\n\\nStatus:\\n(dynamic)\\n\\nRecent commits:\\n\",\n );\n}\n\nfunction removeDynamicRecentCommits(text: string): string {\n return text.replace(\n /(\\n\\nRecent commits:\\n)(?:[0-9a-f]{7,}\\s.*\\n?)+/g,\n \"$1(dynamic)\\n\",\n );\n}\n\nexport function scrubText(text: string): string {\n let scrubbed = text;\n\n for (const { pattern, replacement } of USER_PATH_REPLACEMENTS) {\n scrubbed = scrubbed.replace(pattern, replacement);\n }\n\n return scrubbed;\n}\n\nexport function findUserPathHits(text: string): string[] {\n const hits = USER_PATH_HIT_PATTERNS.flatMap((pattern) => text.match(pattern) ?? []);\n return [...new Set(hits)];\n}\n\nexport function removeHostContextSections(systemPrompt: string): string {\n const lines = systemPrompt.split(\"\\n\");\n const keptLines: string[] = [];\n let skippedHeadingDepth: number | null = null;\n\n for (const line of lines) {\n const headingMatch = line.match(/^\\s{0,3}#{1,6}\\s+(.+?)\\s*$/);\n\n if (headingMatch) {\n const headingMarks = line.match(/^\\s{0,3}(#{1,6})\\s+/)?.[1];\n const headingDepth = headingMarks?.length ?? 0;\n const sectionName = normalizeSectionName(headingMatch[1] ?? \"\");\n const startsSkippedSection = HOST_CONTEXT_SECTION_NAMES.has(sectionName);\n\n if (startsSkippedSection) {\n skippedHeadingDepth = headingDepth;\n continue;\n }\n\n if (skippedHeadingDepth !== null && headingDepth > skippedHeadingDepth) {\n continue;\n }\n\n skippedHeadingDepth = null;\n keptLines.push(line);\n continue;\n }\n\n if (skippedHeadingDepth !== null) {\n continue;\n }\n\n keptLines.push(line);\n }\n\n return cleanupRemovedSections(removeDynamicRecentCommits(removeDynamicStatusBlock(keptLines.join(\"\\n\"))));\n}\n\nexport function scrubObjectStrings(value: unknown): unknown {\n if (typeof value === \"string\") {\n return scrubText(value);\n }\n\n if (Array.isArray(value)) {\n return value.map((entry) => scrubObjectStrings(entry));\n }\n\n if (isRecord(value)) {\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => [key, scrubObjectStrings(entry)]),\n );\n }\n\n return value;\n}\n\nexport function scrubTemplate(data: TemplateData, options?: ScrubTemplateOptions): TemplateData {\n const systemPrompt = scrubText(removeHostContextSections(data.system_prompt));\n const dropMcpTools = options?.dropMcpTools ?? true;\n const tools = data.tools\n .filter((tool) => !dropMcpTools || !tool.name.startsWith(\"mcp__\"))\n .map((tool) => scrubObjectStrings(tool) as TemplateData[\"tools\"][number]);\n\n return {\n ...data,\n agent_identity: scrubText(data.agent_identity),\n system_prompt: systemPrompt,\n tools,\n tool_names: tools.map((tool) => tool.name),\n header_order: data.header_order ? [...data.header_order] : undefined,\n header_values: data.header_values\n ? scrubObjectStrings(data.header_values) as Record<string, string>\n : undefined,\n };\n}\n"],"mappings":"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","names":[]}
|