opencode-anthropic-multi-account 0.2.23 → 0.2.25

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.
@@ -1,4 +1,4 @@
1
- // src/scrub-template.ts
1
+ // src/claude-code/scrub-template.ts
2
2
  var HOST_CONTEXT_SECTION_NAMES = /* @__PURE__ */ new Set([
3
3
  "environment",
4
4
  "automemory",
@@ -63,11 +63,10 @@ function removeHostContextSections(systemPrompt) {
63
63
  const keptLines = [];
64
64
  let skippedHeadingDepth = null;
65
65
  for (const line of lines) {
66
- const headingMatch = line.match(/^\s{0,3}#{1,6}\s+(.+?)\s*$/);
66
+ const headingMatch = line.match(/^\s{0,3}(#{1,6})\s+(.+?)\s*$/);
67
67
  if (headingMatch) {
68
- const headingMarks = line.match(/^\s{0,3}(#{1,6})\s+/)?.[1];
69
- const headingDepth = headingMarks?.length ?? 0;
70
- const sectionName = normalizeSectionName(headingMatch[1] ?? "");
68
+ const headingDepth = headingMatch[1].length;
69
+ const sectionName = normalizeSectionName(headingMatch[2]);
71
70
  const startsSkippedSection = HOST_CONTEXT_SECTION_NAMES.has(sectionName);
72
71
  if (startsSkippedSection) {
73
72
  skippedHeadingDepth = headingDepth;
@@ -123,4 +122,4 @@ export {
123
122
  scrubObjectStrings,
124
123
  scrubTemplate
125
124
  };
126
- //# sourceMappingURL=chunk-RAX4SFCO.js.map
125
+ //# sourceMappingURL=chunk-3CTML5AX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/claude-code/scrub-template.ts"],"sourcesContent":["interface ScrubTemplateOptions {\n dropMcpTools?: boolean;\n}\n\ninterface TemplateToolLike {\n name: string;\n [key: string]: unknown;\n}\n\ninterface TemplateLike {\n agent_identity: string;\n system_prompt: string;\n tools: TemplateToolLike[];\n tool_names: string[];\n header_order?: string[];\n header_values?: Record<string, string>;\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 headingDepth = headingMatch[1]!.length;\n const sectionName = normalizeSectionName(headingMatch[2]!);\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<T extends TemplateLike>(data: T, options?: ScrubTemplateOptions): T {\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 T[\"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 } as T;\n}\n"],"mappings":"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","names":[]}