@post-print/agent-harness 0.3.4 → 0.3.6

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.
Files changed (86) hide show
  1. package/README.md +64 -16
  2. package/dist/adapters/index.d.ts +9 -1
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js +88 -6
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/auth-mode.d.ts +22 -0
  7. package/dist/auth-mode.d.ts.map +1 -0
  8. package/dist/auth-mode.js +36 -0
  9. package/dist/auth-mode.js.map +1 -0
  10. package/dist/capture.d.ts +0 -2
  11. package/dist/capture.d.ts.map +1 -1
  12. package/dist/capture.js +12 -66
  13. package/dist/capture.js.map +1 -1
  14. package/dist/classifier.d.ts +13 -0
  15. package/dist/classifier.d.ts.map +1 -0
  16. package/dist/classifier.js +91 -0
  17. package/dist/classifier.js.map +1 -0
  18. package/dist/claude-run.d.ts +15 -1
  19. package/dist/claude-run.d.ts.map +1 -1
  20. package/dist/claude-run.js +54 -8
  21. package/dist/claude-run.js.map +1 -1
  22. package/dist/context.d.ts +3 -2
  23. package/dist/context.d.ts.map +1 -1
  24. package/dist/context.js +27 -9
  25. package/dist/context.js.map +1 -1
  26. package/dist/conversation.d.ts +28 -0
  27. package/dist/conversation.d.ts.map +1 -0
  28. package/dist/conversation.js +191 -0
  29. package/dist/conversation.js.map +1 -0
  30. package/dist/cursor-run.d.ts +17 -1
  31. package/dist/cursor-run.d.ts.map +1 -1
  32. package/dist/cursor-run.js +152 -101
  33. package/dist/cursor-run.js.map +1 -1
  34. package/dist/host-registry.d.ts +12 -0
  35. package/dist/host-registry.d.ts.map +1 -0
  36. package/dist/host-registry.js +39 -0
  37. package/dist/host-registry.js.map +1 -0
  38. package/dist/index.d.ts +19 -7
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +28 -7
  41. package/dist/index.js.map +1 -1
  42. package/dist/judge.d.ts +30 -1
  43. package/dist/judge.d.ts.map +1 -1
  44. package/dist/judge.js +137 -17
  45. package/dist/judge.js.map +1 -1
  46. package/dist/live-agent-event.d.ts +17 -0
  47. package/dist/live-agent-event.d.ts.map +1 -0
  48. package/dist/live-agent-event.js +31 -0
  49. package/dist/live-agent-event.js.map +1 -0
  50. package/dist/main.d.ts +1 -1
  51. package/dist/main.d.ts.map +1 -1
  52. package/dist/main.js +1 -1
  53. package/dist/main.js.map +1 -1
  54. package/dist/openai-capture.d.ts +43 -0
  55. package/dist/openai-capture.d.ts.map +1 -0
  56. package/dist/openai-capture.js +164 -0
  57. package/dist/openai-capture.js.map +1 -0
  58. package/dist/openai-run.d.ts +70 -0
  59. package/dist/openai-run.d.ts.map +1 -0
  60. package/dist/openai-run.js +373 -0
  61. package/dist/openai-run.js.map +1 -0
  62. package/dist/sealed-workspace.d.ts +37 -0
  63. package/dist/sealed-workspace.d.ts.map +1 -0
  64. package/dist/sealed-workspace.js +170 -0
  65. package/dist/sealed-workspace.js.map +1 -0
  66. package/dist/skills-context.d.ts +26 -7
  67. package/dist/skills-context.d.ts.map +1 -1
  68. package/dist/skills-context.js +105 -40
  69. package/dist/skills-context.js.map +1 -1
  70. package/dist/types.d.ts +44 -2
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/types.js +13 -1
  73. package/dist/types.js.map +1 -1
  74. package/dist/user-simulator.d.ts +10 -0
  75. package/dist/user-simulator.d.ts.map +1 -0
  76. package/dist/user-simulator.js +47 -0
  77. package/dist/user-simulator.js.map +1 -0
  78. package/dist/user-skills.d.ts +17 -0
  79. package/dist/user-skills.d.ts.map +1 -0
  80. package/dist/user-skills.js +32 -0
  81. package/dist/user-skills.js.map +1 -0
  82. package/dist/working-tree-guard.d.ts +5 -0
  83. package/dist/working-tree-guard.d.ts.map +1 -1
  84. package/dist/working-tree-guard.js +27 -3
  85. package/dist/working-tree-guard.js.map +1 -1
  86. package/package.json +2 -2
@@ -0,0 +1,39 @@
1
+ import { AGENT_HOSTS, isBuiltinAgentHost, isHostSlug } from "./types.js";
2
+ const RESERVED_HOST_IDS = new Set([...AGENT_HOSTS, "replay", "all"]);
3
+ const adapters = new Map();
4
+ export function reservedHostIds() {
5
+ return [...RESERVED_HOST_IDS];
6
+ }
7
+ export function listRegisteredHosts() {
8
+ return [...adapters.keys()];
9
+ }
10
+ export function getRegisteredAdapter(host) {
11
+ return adapters.get(host);
12
+ }
13
+ export function knownAgentHosts() {
14
+ return [...AGENT_HOSTS, ...listRegisteredHosts()];
15
+ }
16
+ export function isKnownAgentHost(value) {
17
+ return isBuiltinAgentHost(value) || adapters.has(value);
18
+ }
19
+ export function clearRegisteredHostAdapters() {
20
+ adapters.clear();
21
+ }
22
+ export function unregisterHostAdapter(host) {
23
+ return adapters.delete(host);
24
+ }
25
+ /** Register a consumer host adapter. Builtin ids stay reserved. */
26
+ export function registerHostAdapter(adapter) {
27
+ const host = adapter.host?.trim() ?? "";
28
+ if (!isHostSlug(host)) {
29
+ throw new Error(`Host id must be a lowercase slug (a-z, digits, hyphen), got ${JSON.stringify(adapter.host)}`);
30
+ }
31
+ if (RESERVED_HOST_IDS.has(host)) {
32
+ throw new Error(`Host id "${host}" is reserved. Pick a different slug.`);
33
+ }
34
+ if (adapters.has(host)) {
35
+ throw new Error(`Host "${host}" is already registered.`);
36
+ }
37
+ adapters.set(host, adapter);
38
+ }
39
+ //# sourceMappingURL=host-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-registry.js","sourceRoot":"","sources":["../src/host-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkB,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;AAEhD,MAAM,UAAU,eAAe;IAC9B,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB;IAClC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,mBAAmB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC7C,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IACjD,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACd,+DAA+D,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,0BAA0B,CAAC,CAAC;IAC1D,CAAC;IACD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,27 +1,39 @@
1
+ import { type UserSimulator } from "./conversation.js";
1
2
  import type { AgentSession, ContextProfile, RunAgentOptions } from "./types.js";
2
- export { ClaudeAdapter, CursorAdapter, createAdapter, } from "./adapters/index.js";
3
+ export { ClaudeAdapter, CursorAdapter, createAdapter, OpenaiAdapter, } from "./adapters/index.js";
4
+ export { HOST_AUTH_MODES, type HostAuthMode, parseOptionalAuthMode, resolveKeyOrLoginAuthMode, } from "./auth-mode.js";
3
5
  export type { SdkMessage } from "./capture.js";
4
- export { assistantPrefixBeforeTools, buildTraceFromSdkMessages, captureGitDiff, collapseTraceWhitespace, enrichTrace, extractShellCommands, extractShellCommandsFromToolCalls, extractSkillsAppliedFromText, extractSkillsInvokedFromText, extractSkillsInvokedFromToolCalls, handsOnTierBeforeTools, inferReviewDepthFromText, inferRoutingFromText, mergeAgentUsage, mergeSkillsInvoked, normalizeAgentUsage, routingBlockBeforeTools, } from "./capture.js";
6
+ export { assistantPrefixBeforeTools, buildTraceFromSdkMessages, captureGitDiff, collapseTraceWhitespace, enrichTrace, extractShellCommands, extractShellCommandsFromToolCalls, extractSkillsInvokedFromText, extractSkillsInvokedFromToolCalls, handsOnTierBeforeTools, inferReviewDepthFromText, inferRoutingFromText, mergeAgentUsage, mergeSkillsInvoked, normalizeAgentUsage, routingBlockBeforeTools, } from "./capture.js";
7
+ export { type ClassifierOptions, missingClassifierAuth, runClassifier, } from "./classifier.js";
5
8
  export { accumulateClaudeEvent, buildTraceFromClaudeEvents, type ClaudeContentBlock, type ClaudeStreamEvent, type ClaudeTraceAccumulator, createClaudeTraceAccumulator, finalizeClaudeTraceAccumulator, normalizeClaudeToolArgs, normalizeClaudeUsage, parseClaudeNdjsonLine, } from "./claude-capture.js";
6
- export { buildClaudeEnv, buildClaudeMcpConfigJson, CLAUDE_AUTH_MODE_ENV, type ClaudeAuthMode, type ClaudeRunOptions, type ClaudeRunResult, cancelActiveClaudeRun, formatClaudeRunFailure, parseClaudeAuthMode, resolveClaudeBin, runClaudeAgent, takeLastClaudeRunTrace, } from "./claude-run.js";
9
+ export { buildClaudeEnv, buildClaudeMcpConfigJson, CLAUDE_AUTH_MODE_ENV, type ClaudeAuthMode, type ClaudeRunOptions, type ClaudeRunResult, cancelActiveClaudeRun, formatClaudeRunFailure, parseClaudeAuthMode, resolveClaudeBin, runClaudeAgent, runClaudeClassifier, takeLastClaudeRunTrace, withMcpAllowedTools, } from "./claude-run.js";
7
10
  export { type LoadContextOptions, loadContext, parseSkeletonAlwaysInclude, summarizeSkeletonConfig, } from "./context.js";
8
- export { assistantTextFromSdkMessages, type CursorRunOptions, type CursorRunResult, cancelActiveCursorRun, formatCursorRunFailure, type JudgeClassifierOptions, type JudgeClassifierResult, type JudgeSdkError, runCursorAgent, runJudgeClassifier, takeLastCursorRunTrace, textBlocksFromSdkMessage, } from "./cursor-run.js";
9
- export { type JudgeCriterion, type JudgeTraceOptions, type JudgeTraceResult, type JudgeVerdict, judgeTrace, type ParsedJudgeJson, parseJudgeJsonResponse, parseJudgeLegacyResponse, parseJudgeResponse, } from "./judge.js";
11
+ export { composeFollowUpPrompt, extractUserQuestions, mergeConversationTraces, type RunConversationOptions, runConversation, type UserQuestion, type UserSimulator, } from "./conversation.js";
12
+ export { assistantTextFromSdkMessages, CURSOR_AUTH_MODE_ENV, CURSOR_MISSING_KEY_MESSAGE, type CursorAuthMode, type CursorRunOptions, type CursorRunResult, cancelActiveCursorRun, formatCursorRunFailure, type JudgeClassifierOptions, type JudgeClassifierResult, type JudgeSdkError, resolveCursorAuthMode, runCursorAgent, runJudgeClassifier, takeLastCursorRunTrace, textBlocksFromSdkMessage, withCursorAuthEnv, } from "./cursor-run.js";
13
+ export { clearRegisteredHostAdapters, getRegisteredAdapter, isKnownAgentHost, knownAgentHosts, listRegisteredHosts, registerHostAdapter, unregisterHostAdapter, } from "./host-registry.js";
14
+ export { buildCompareJudgePrompt, type CompareJudgePair, formatTraceForJudge, type JudgeCriterion, type JudgeTraceOptions, type JudgeTraceResult, type JudgeVerdict, judgeCompareTraces, judgeTrace, type ParsedJudgeJson, parseJudgeJsonResponse, parseJudgeLegacyResponse, parseJudgeResponse, skillInvokeJudgeCriteria, } from "./judge.js";
15
+ export { createLiveNotifyState, drainLiveAgentEvents, emitLiveAgentEvents, type LiveNotifyState, } from "./live-agent-event.js";
10
16
  export { type Logger, type LogLevel, logger } from "./logger.js";
11
17
  export { getHealthStatus, HEALTH_CHECK_PATH, type HealthStatus, } from "./main.js";
12
18
  export { expandEnvPlaceholders, mergeMcpServers, resolveMcpServers, } from "./mcp.js";
19
+ export { buildOpenaiEnv, buildOpenaiExecArgs, buildOpenaiMcpConfigArgs, buildOpenaiMcpOverride, cancelActiveOpenaiRun, formatOpenaiRunFailure, OPENAI_AUTH_MODE_ENV, OPENAI_MISSING_KEY_MESSAGE, type OpenaiAuthMode, type OpenaiRunOptions, type OpenaiRunResult, resolveOpenaiAuthMode, resolveOpenaiBin, runOpenaiAgent, runOpenaiClassifier, takeLastOpenaiRunTrace, } from "./openai-run.js";
13
20
  export { isTransientInfraError, resolveRetryMaxAttempts, withRetry, } from "./retry.js";
14
21
  export { buildRoutingContract } from "./routing-contract.js";
15
22
  export { AgentRunTimeoutError, getPartialTrace, isUserInputTool, type PartialTraceCarrier, type RunTimeoutOptions, traceHasUserInputTool, UserInputRequiredError, withRunTimeout, } from "./run-guards.js";
16
- export { loadSkillContext, normalizeSkillContext, type SkillCatalogEntry, } from "./skills-context.js";
17
- export type { AgentHost, AgentMessage, AgentSession, AgentToolCall, AgentTrace, AgentUsage, ContextProfile, HostAdapter, LoadedContext, McpServerConfig, RoutingContract, RunAgentOptions, RunStatus, SkillContextMode, SkillContextOptions, SkillContextSetting, } from "./types.js";
23
+ export { createSealedWorkspace, defaultSealedOverlayPaths, isCallerHeadWorkspace, type ParsedScenarioWorkspace, parseScenarioWorkspace, SEALED_WORKSPACE_DIR_PREFIX, type SealedWorkspace, toolPathsOutsideWorkspace, } from "./sealed-workspace.js";
24
+ export { isRepoRelativeSkillPath, loadSkillContext, normalizeRelSkillPath, normalizeSkillContext, SKILL_ROOTS, type SkillCatalogEntry, skillManifestRelPath, skillNameFromWorkflowPath, skillOverlayRelPath, skillPathsFromSetting, } from "./skills-context.js";
25
+ export { AGENT_HOSTS, type AgentHost, type AgentMessage, type AgentSession, type AgentToolCall, type AgentTrace, type AgentUsage, type BuiltinAgentHost, type ContextProfile, type HostAdapter, isAgentHost, isBuiltinAgentHost, isHostSlug, type LiveAgentEvent, type LoadedContext, type McpServerConfig, type RoutingContract, type RunAgentOptions, type RunStatus, type SkillContextMode, type SkillContextOptions, type SkillContextSetting, } from "./types.js";
18
26
  export { buildScenarioUsageBreakdown, type ScenarioUsageBreakdown, sumUsageParts, } from "./usage-breakdown.js";
27
+ export { createJudgeUserSimulator, type JudgeUserSimulatorOptions, } from "./user-simulator.js";
28
+ export { type CursorSettingSource, claudeSessionFlags, cursorSettingSources, openaiUserConfigArgs, resolveAllowUserSkills, } from "./user-skills.js";
19
29
  export { captureWorkingTreeStatus, filterWorkingTreeLeaks, findWorkingTreeLeak, formatWorkingTreeLeak, isPathUnderRoot, normalizePorcelainStatus, porcelainPathFromStatusLine, resolveHarnessArtifactIgnoreRoots, restoreWorkingTreePaths, } from "./working-tree-guard.js";
20
30
  export { cleanupStaleScenarioWorktrees, createScenarioWorktree, SCENARIO_WORKTREE_DIR_PREFIX, type ScenarioWorktree, } from "./worktree.js";
21
31
  export { loadUnifiedDiffPaths, parseUnifiedDiffPaths, partitionSeedCollateralLeaks, porcelainPathsFromLines, traceEditsOutsideWorktree, } from "./worktree-leak.js";
22
32
  export interface RunAgentInput extends Omit<RunAgentOptions, "context"> {
23
33
  context?: RunAgentOptions["context"];
24
34
  profile?: ContextProfile;
35
+ /** Injected user agent for conversation turns. Default is a judge-backed user. */
36
+ userSimulator?: UserSimulator;
25
37
  }
26
38
  /** Run an agent session via the selected host adapter. */
27
39
  export declare function runAgent(input: RunAgentInput): Promise<AgentSession>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,20 +1,32 @@
1
1
  import { createAdapter } from "./adapters/index.js";
2
2
  import { loadContext } from "./context.js";
3
- export { ClaudeAdapter, CursorAdapter, createAdapter, } from "./adapters/index.js";
4
- export { assistantPrefixBeforeTools, buildTraceFromSdkMessages, captureGitDiff, collapseTraceWhitespace, enrichTrace, extractShellCommands, extractShellCommandsFromToolCalls, extractSkillsAppliedFromText, extractSkillsInvokedFromText, extractSkillsInvokedFromToolCalls, handsOnTierBeforeTools, inferReviewDepthFromText, inferRoutingFromText, mergeAgentUsage, mergeSkillsInvoked, normalizeAgentUsage, routingBlockBeforeTools, } from "./capture.js";
3
+ import { runConversation } from "./conversation.js";
4
+ import { createJudgeUserSimulator } from "./user-simulator.js";
5
+ export { ClaudeAdapter, CursorAdapter, createAdapter, OpenaiAdapter, } from "./adapters/index.js";
6
+ export { HOST_AUTH_MODES, parseOptionalAuthMode, resolveKeyOrLoginAuthMode, } from "./auth-mode.js";
7
+ export { assistantPrefixBeforeTools, buildTraceFromSdkMessages, captureGitDiff, collapseTraceWhitespace, enrichTrace, extractShellCommands, extractShellCommandsFromToolCalls, extractSkillsInvokedFromText, extractSkillsInvokedFromToolCalls, handsOnTierBeforeTools, inferReviewDepthFromText, inferRoutingFromText, mergeAgentUsage, mergeSkillsInvoked, normalizeAgentUsage, routingBlockBeforeTools, } from "./capture.js";
8
+ export { missingClassifierAuth, runClassifier, } from "./classifier.js";
5
9
  export { accumulateClaudeEvent, buildTraceFromClaudeEvents, createClaudeTraceAccumulator, finalizeClaudeTraceAccumulator, normalizeClaudeToolArgs, normalizeClaudeUsage, parseClaudeNdjsonLine, } from "./claude-capture.js";
6
- export { buildClaudeEnv, buildClaudeMcpConfigJson, CLAUDE_AUTH_MODE_ENV, cancelActiveClaudeRun, formatClaudeRunFailure, parseClaudeAuthMode, resolveClaudeBin, runClaudeAgent, takeLastClaudeRunTrace, } from "./claude-run.js";
10
+ export { buildClaudeEnv, buildClaudeMcpConfigJson, CLAUDE_AUTH_MODE_ENV, cancelActiveClaudeRun, formatClaudeRunFailure, parseClaudeAuthMode, resolveClaudeBin, runClaudeAgent, runClaudeClassifier, takeLastClaudeRunTrace, withMcpAllowedTools, } from "./claude-run.js";
7
11
  export { loadContext, parseSkeletonAlwaysInclude, summarizeSkeletonConfig, } from "./context.js";
8
- export { assistantTextFromSdkMessages, cancelActiveCursorRun, formatCursorRunFailure, runCursorAgent, runJudgeClassifier, takeLastCursorRunTrace, textBlocksFromSdkMessage, } from "./cursor-run.js";
9
- export { judgeTrace, parseJudgeJsonResponse, parseJudgeLegacyResponse, parseJudgeResponse, } from "./judge.js";
12
+ export { composeFollowUpPrompt, extractUserQuestions, mergeConversationTraces, runConversation, } from "./conversation.js";
13
+ export { assistantTextFromSdkMessages, CURSOR_AUTH_MODE_ENV, CURSOR_MISSING_KEY_MESSAGE, cancelActiveCursorRun, formatCursorRunFailure, resolveCursorAuthMode, runCursorAgent, runJudgeClassifier, takeLastCursorRunTrace, textBlocksFromSdkMessage, withCursorAuthEnv, } from "./cursor-run.js";
14
+ export { clearRegisteredHostAdapters, getRegisteredAdapter, isKnownAgentHost, knownAgentHosts, listRegisteredHosts, registerHostAdapter, unregisterHostAdapter, } from "./host-registry.js";
15
+ export { buildCompareJudgePrompt, formatTraceForJudge, judgeCompareTraces, judgeTrace, parseJudgeJsonResponse, parseJudgeLegacyResponse, parseJudgeResponse, skillInvokeJudgeCriteria, } from "./judge.js";
16
+ export { createLiveNotifyState, drainLiveAgentEvents, emitLiveAgentEvents, } from "./live-agent-event.js";
10
17
  export { logger } from "./logger.js";
11
18
  export { getHealthStatus, HEALTH_CHECK_PATH, } from "./main.js";
12
19
  export { expandEnvPlaceholders, mergeMcpServers, resolveMcpServers, } from "./mcp.js";
20
+ export { buildOpenaiEnv, buildOpenaiExecArgs, buildOpenaiMcpConfigArgs, buildOpenaiMcpOverride, cancelActiveOpenaiRun, formatOpenaiRunFailure, OPENAI_AUTH_MODE_ENV, OPENAI_MISSING_KEY_MESSAGE, resolveOpenaiAuthMode, resolveOpenaiBin, runOpenaiAgent, runOpenaiClassifier, takeLastOpenaiRunTrace, } from "./openai-run.js";
13
21
  export { isTransientInfraError, resolveRetryMaxAttempts, withRetry, } from "./retry.js";
14
22
  export { buildRoutingContract } from "./routing-contract.js";
15
23
  export { AgentRunTimeoutError, getPartialTrace, isUserInputTool, traceHasUserInputTool, UserInputRequiredError, withRunTimeout, } from "./run-guards.js";
16
- export { loadSkillContext, normalizeSkillContext, } from "./skills-context.js";
24
+ export { createSealedWorkspace, defaultSealedOverlayPaths, isCallerHeadWorkspace, parseScenarioWorkspace, SEALED_WORKSPACE_DIR_PREFIX, toolPathsOutsideWorkspace, } from "./sealed-workspace.js";
25
+ export { isRepoRelativeSkillPath, loadSkillContext, normalizeRelSkillPath, normalizeSkillContext, SKILL_ROOTS, skillManifestRelPath, skillNameFromWorkflowPath, skillOverlayRelPath, skillPathsFromSetting, } from "./skills-context.js";
26
+ export { AGENT_HOSTS, isAgentHost, isBuiltinAgentHost, isHostSlug, } from "./types.js";
17
27
  export { buildScenarioUsageBreakdown, sumUsageParts, } from "./usage-breakdown.js";
28
+ export { createJudgeUserSimulator, } from "./user-simulator.js";
29
+ export { claudeSessionFlags, cursorSettingSources, openaiUserConfigArgs, resolveAllowUserSkills, } from "./user-skills.js";
18
30
  export { captureWorkingTreeStatus, filterWorkingTreeLeaks, findWorkingTreeLeak, formatWorkingTreeLeak, isPathUnderRoot, normalizePorcelainStatus, porcelainPathFromStatusLine, resolveHarnessArtifactIgnoreRoots, restoreWorkingTreePaths, } from "./working-tree-guard.js";
19
31
  export { cleanupStaleScenarioWorktrees, createScenarioWorktree, SCENARIO_WORKTREE_DIR_PREFIX, } from "./worktree.js";
20
32
  export { loadUnifiedDiffPaths, parseUnifiedDiffPaths, partitionSeedCollateralLeaks, porcelainPathsFromLines, traceEditsOutsideWorktree, } from "./worktree-leak.js";
@@ -22,6 +34,15 @@ export { loadUnifiedDiffPaths, parseUnifiedDiffPaths, partitionSeedCollateralLea
22
34
  export async function runAgent(input) {
23
35
  const context = input.context ?? (await loadContext({ cwd: input.cwd, profile: input.profile ?? "shared" }));
24
36
  const adapter = createAdapter(input.host);
25
- return adapter.run({ ...input, context });
37
+ const runOptions = { ...input, context };
38
+ if (input.failOnUserInput !== false) {
39
+ return adapter.run(runOptions);
40
+ }
41
+ return runConversation({
42
+ initialPrompt: input.prompt,
43
+ maxTurns: input.maxConversationTurns,
44
+ userSimulator: input.userSimulator ?? createJudgeUserSimulator({ cwd: input.cwd, host: input.host }),
45
+ runTurn: (prompt) => adapter.run({ ...runOptions, prompt, failOnUserInput: false }),
46
+ });
26
47
  }
27
48
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/judge.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { AgentTrace, AgentUsage } from "./types.js";
1
+ import type { JudgeClassifierResult } from "./cursor-run.js";
2
+ import type { AgentHost, AgentTrace, AgentUsage } from "./types.js";
2
3
  export interface JudgeCriterion {
3
4
  id: string;
4
5
  question: string;
@@ -30,6 +31,15 @@ export interface JudgeVerdict {
30
31
  export interface JudgeTraceOptions {
31
32
  cwd: string;
32
33
  apiKey?: string;
34
+ /** Host that scores the transcript. Defaults to cursor. */
35
+ host?: AgentHost;
36
+ /** Injected classifier for tests. */
37
+ classify?: (options: {
38
+ host: AgentHost;
39
+ cwd: string;
40
+ prompt: string;
41
+ apiKey?: string;
42
+ }) => Promise<JudgeClassifierResult>;
33
43
  }
34
44
  export interface JudgeTraceResult {
35
45
  verdicts: JudgeVerdict[];
@@ -44,6 +54,10 @@ export interface ParsedJudgeJson {
44
54
  evidence: string[];
45
55
  valid: boolean;
46
56
  }
57
+ /** Full live transcript for a judge, including tool names, args, and results. */
58
+ export declare function formatTraceForJudge(trace: AgentTrace): string;
59
+ /** Judge questions for mustInvokeSkill — replaces prose regex heuristics. */
60
+ export declare function skillInvokeJudgeCriteria(skillNames: string[]): JudgeCriterion[];
47
61
  /** Parse structured judge JSON (`verdict`, `evidence`, `rationale`). */
48
62
  export declare function parseJudgeJsonResponse(text: string): ParsedJudgeJson;
49
63
  /** Fallback when model ignores JSON contract — parse YES/NO prose. */
@@ -55,6 +69,21 @@ export declare function parseJudgeLegacyResponse(text: string): ParsedJudgeJson;
55
69
  * contracts are infra failures, not rubric answers.
56
70
  */
57
71
  export declare function parseJudgeResponse(text: string): ParsedJudgeJson;
72
+ export declare function buildCompareJudgePrompt(options: {
73
+ aLabel: string;
74
+ aTranscript: string;
75
+ bLabel: string;
76
+ bTranscript: string;
77
+ question: string;
78
+ }): string;
58
79
  /** Score fuzzy rubric criteria with a structured JSON judge (live runs only). */
59
80
  export declare function judgeTrace(trace: AgentTrace, criteria: JudgeCriterion[], options: JudgeTraceOptions): Promise<JudgeTraceResult>;
81
+ export interface CompareJudgePair {
82
+ aLabel: string;
83
+ a: AgentTrace;
84
+ bLabel: string;
85
+ b: AgentTrace;
86
+ }
87
+ /** Score criteria against two arm transcripts. */
88
+ export declare function judgeCompareTraces(pair: CompareJudgePair, criteria: JudgeCriterion[], options: JudgeTraceOptions): Promise<JudgeTraceResult>;
60
89
  //# sourceMappingURL=judge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,KAAK,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CACf;AAoWD,wEAAwE;AACxE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEpE;AA8BD,sEAAsE;AACtE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA4CtE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAQhE;AAyKD,iFAAiF;AACjF,wBAAsB,UAAU,CAC/B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,iBAAiB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAmD3B"}
1
+ {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"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"}
package/dist/judge.js CHANGED
@@ -1,13 +1,65 @@
1
- import { runJudgeClassifier } from "./cursor-run.js";
1
+ import { missingClassifierAuth, runClassifier } from "./classifier.js";
2
2
  import { isTransientInfraError, resolveRetryMaxAttempts, withRetry } from "./retry.js";
3
3
  import { sumUsageParts } from "./usage-breakdown.js";
4
4
  // Optional info-string (`json`, `js`, `typescript`, …) on the opening fence line.
5
5
  // Without this, ` ```js\n"yes"\n``` ` extracts `js\n"yes"` and never latches.
6
6
  const JSON_FENCE_PATTERN = /```[^\n`]*\s*([\s\S]*?)```/;
7
7
  const JSON_OBJECT_PATTERN = /\{[\s\S]*\}/;
8
- function transcriptForJudge(trace) {
8
+ const JUDGE_TOOL_RESULT_MAX_CHARS = 4_000;
9
+ function truncateJudgeText(text, max = JUDGE_TOOL_RESULT_MAX_CHARS) {
10
+ if (text.length <= max) {
11
+ return text;
12
+ }
13
+ return `${text.slice(0, max)}…`;
14
+ }
15
+ function formatOneToolCallForJudge(call, index) {
16
+ const args = JSON.stringify(call.args ?? {});
17
+ const lines = [`${index + 1}. ${call.name} ${truncateJudgeText(args, 2_000)}`];
18
+ if (call.result) {
19
+ lines.push(` result: ${truncateJudgeText(call.result)}`);
20
+ }
21
+ return lines.join("\n");
22
+ }
23
+ function formatToolCallsForJudge(trace) {
24
+ if (trace.toolCalls.length === 0) {
25
+ return "";
26
+ }
9
27
  return [
10
- ...trace.messages.map((m) => m.content),
28
+ "Tool calls:",
29
+ ...trace.toolCalls.map((call, index) => formatOneToolCallForJudge(call, index)),
30
+ ].join("\n");
31
+ }
32
+ function formatTraceChronologically(trace) {
33
+ const blocks = [];
34
+ let tie = 0;
35
+ for (const message of trace.messages) {
36
+ blocks.push({
37
+ seq: message.seq ?? Number.MAX_SAFE_INTEGER,
38
+ tie: tie++,
39
+ text: `${message.role}:\n${message.content}`,
40
+ });
41
+ }
42
+ for (const [index, call] of trace.toolCalls.entries()) {
43
+ blocks.push({
44
+ seq: call.seq ?? Number.MAX_SAFE_INTEGER,
45
+ tie: tie++,
46
+ text: `Tool calls:\n${formatOneToolCallForJudge(call, index)}`,
47
+ });
48
+ }
49
+ blocks.sort((a, b) => a.seq - b.seq || a.tie - b.tie);
50
+ return blocks.map((block) => block.text).join("\n\n---\n\n");
51
+ }
52
+ /** Full live transcript for a judge, including tool names, args, and results. */
53
+ export function formatTraceForJudge(trace) {
54
+ const hasSeq = trace.messages.some((message) => message.seq !== undefined) ||
55
+ trace.toolCalls.some((call) => call.seq !== undefined);
56
+ const body = hasSeq
57
+ ? formatTraceChronologically(trace)
58
+ : [...trace.messages.map((m) => `${m.role}:\n${m.content}`), formatToolCallsForJudge(trace)]
59
+ .filter(Boolean)
60
+ .join("\n\n---\n\n");
61
+ return [
62
+ body,
11
63
  trace.prBody ?? "",
12
64
  trace.gitDiff ? `Git diff:\n${trace.gitDiff}` : "",
13
65
  trace.shellCommands.length > 0 ? `Shell commands:\n${trace.shellCommands.join("\n")}` : "",
@@ -15,6 +67,19 @@ function transcriptForJudge(trace) {
15
67
  .filter(Boolean)
16
68
  .join("\n\n---\n\n");
17
69
  }
70
+ /** Judge questions for mustInvokeSkill — replaces prose regex heuristics. */
71
+ export function skillInvokeJudgeCriteria(skillNames) {
72
+ return skillNames.map((name) => ({
73
+ id: `invoke-skill:${name}`,
74
+ question: [
75
+ `Did the agent actually follow the "${name}" skill?`,
76
+ "Use tool calls, file reads, and later actions as evidence.",
77
+ "Naming the skill or using similar words is not enough.",
78
+ "A host skill load counts as obtaining the skill body.",
79
+ "Do not fail only because a confirmatory SKILL.md read happens after the reply.",
80
+ ].join(" "),
81
+ }));
82
+ }
18
83
  function normalizeVerdict(value) {
19
84
  const verdict = String(value ?? "")
20
85
  .trim()
@@ -407,6 +472,8 @@ function buildJudgePrompt(transcript, question) {
407
472
  return [
408
473
  "You are a test harness classifier. Do not use tools. Do not edit files.",
409
474
  "Decide whether the transcript satisfies the criterion using only transcript evidence.",
475
+ "The transcript includes assistant text, tool names, tool args, and tool results.",
476
+ "A tool result is an outcome. Use it as evidence when the criterion asks about one.",
410
477
  "Reply with one JSON object only — no markdown fences, no text before or after:",
411
478
  '{"verdict":"yes"|"no","evidence":["verbatim quote from transcript"],"rationale":"one sentence"}',
412
479
  'Use verdict "yes" only when evidence clearly supports the criterion.',
@@ -417,6 +484,26 @@ function buildJudgePrompt(transcript, question) {
417
484
  `Criterion: ${question}`,
418
485
  ].join("\n");
419
486
  }
487
+ export function buildCompareJudgePrompt(options) {
488
+ return [
489
+ "You are a test harness classifier. Do not use tools. Do not edit files.",
490
+ "Decide whether the two transcripts satisfy the criterion using only transcript evidence.",
491
+ "Arm A and arm B are two agent runs of the same test.",
492
+ "The transcripts include assistant text, tool names, tool args, and tool results.",
493
+ "A tool result is an outcome. Use it as evidence when the criterion asks about one.",
494
+ "Reply with one JSON object only — no markdown fences, no text before or after:",
495
+ '{"verdict":"yes"|"no","evidence":["verbatim quote from a transcript"],"rationale":"one sentence"}',
496
+ 'Use verdict "yes" only when evidence clearly supports the criterion.',
497
+ "",
498
+ `Arm A (${options.aLabel}):`,
499
+ options.aTranscript,
500
+ "",
501
+ `Arm B (${options.bLabel}):`,
502
+ options.bTranscript,
503
+ "",
504
+ `Criterion: ${options.question}`,
505
+ ].join("\n");
506
+ }
420
507
  function formatJudgeInfraError(result) {
421
508
  const details = [];
422
509
  if (result.rawStatus) {
@@ -435,10 +522,13 @@ function formatJudgeInfraError(result) {
435
522
  }
436
523
  async function runJudgePromptOnce(prompt, options) {
437
524
  const started = performance.now();
438
- const result = await runJudgeClassifier({
525
+ const host = options.host ?? "cursor";
526
+ const classify = options.classify ?? runClassifier;
527
+ const result = await classify({
528
+ host,
439
529
  cwd: options.cwd,
440
530
  prompt,
441
- apiKey: options.apiKey ?? process.env.CURSOR_API_KEY ?? "",
531
+ apiKey: options.apiKey,
442
532
  });
443
533
  const durationMs = Math.round(performance.now() - started);
444
534
  const usage = result.usage;
@@ -481,11 +571,12 @@ async function runJudgePromptOnce(prompt, options) {
481
571
  };
482
572
  }
483
573
  async function runJudgePrompt(prompt, options) {
484
- const apiKey = options.apiKey ?? process.env.CURSOR_API_KEY;
485
- if (!apiKey) {
574
+ const host = options.host ?? "cursor";
575
+ const missing = missingClassifierAuth(host, options.apiKey);
576
+ if (missing) {
486
577
  return {
487
578
  pass: false,
488
- rationale: "CURSOR_API_KEY not set",
579
+ rationale: missing,
489
580
  evidence: [],
490
581
  error: "missing api key",
491
582
  infraError: "missing api key",
@@ -499,7 +590,7 @@ async function runJudgePrompt(prompt, options) {
499
590
  try {
500
591
  const { result, attempt } = await withRetry(async (attemptNumber) => {
501
592
  lastAttempt = attemptNumber;
502
- const outcome = await runJudgePromptOnce(prompt, { ...options, apiKey });
593
+ const outcome = await runJudgePromptOnce(prompt, options);
503
594
  if (outcome.retryable && attemptNumber < maxAttempts) {
504
595
  throw new Error(outcome.infraError ?? outcome.error ?? "judge infra error");
505
596
  }
@@ -532,20 +623,49 @@ export async function judgeTrace(trace, criteria, options) {
532
623
  if (criteria.length === 0) {
533
624
  return { verdicts: [], skipped: true };
534
625
  }
535
- const apiKey = options.apiKey ?? process.env.CURSOR_API_KEY;
536
- if (!apiKey) {
626
+ const host = options.host ?? "cursor";
627
+ const missing = missingClassifierAuth(host, options.apiKey);
628
+ if (missing) {
537
629
  return {
538
630
  verdicts: [],
539
631
  skipped: true,
540
- error: "CURSOR_API_KEY not set — judge criteria skipped",
632
+ error: `${missing} — judge criteria skipped`,
541
633
  };
542
634
  }
543
- const transcript = transcriptForJudge(trace);
544
- const transcriptChars = transcript.length;
635
+ const transcript = formatTraceForJudge(trace);
636
+ return judgeCriteria(criteria, (question) => buildJudgePrompt(transcript, question), options, {
637
+ transcriptChars: transcript.length,
638
+ });
639
+ }
640
+ /** Score criteria against two arm transcripts. */
641
+ export async function judgeCompareTraces(pair, criteria, options) {
642
+ if (criteria.length === 0) {
643
+ return { verdicts: [], skipped: true };
644
+ }
645
+ const host = options.host ?? "cursor";
646
+ const missing = missingClassifierAuth(host, options.apiKey);
647
+ if (missing) {
648
+ return {
649
+ verdicts: [],
650
+ skipped: true,
651
+ error: `${missing} — judge criteria skipped`,
652
+ };
653
+ }
654
+ const aTranscript = formatTraceForJudge(pair.a);
655
+ const bTranscript = formatTraceForJudge(pair.b);
656
+ return judgeCriteria(criteria, (question) => buildCompareJudgePrompt({
657
+ aLabel: pair.aLabel,
658
+ aTranscript,
659
+ bLabel: pair.bLabel,
660
+ bTranscript,
661
+ question,
662
+ }), options, { transcriptChars: aTranscript.length + bTranscript.length });
663
+ }
664
+ async function judgeCriteria(criteria, buildPrompt, options, meta) {
545
665
  const verdicts = [];
546
666
  for (const criterion of criteria) {
547
- const prompt = buildJudgePrompt(transcript, criterion.question);
548
- const parsed = await runJudgePrompt(prompt, { ...options, apiKey });
667
+ const prompt = buildPrompt(criterion.question);
668
+ const parsed = await runJudgePrompt(prompt, options);
549
669
  verdicts.push({
550
670
  id: criterion.id,
551
671
  pass: parsed.pass,
@@ -558,7 +678,7 @@ export async function judgeTrace(trace, criteria, options) {
558
678
  attempt: parsed.attempt,
559
679
  durationMs: parsed.durationMs,
560
680
  usage: parsed.usage,
561
- transcriptChars,
681
+ transcriptChars: meta.transcriptChars,
562
682
  promptChars: prompt.length,
563
683
  });
564
684
  if (parsed.error) {
package/dist/judge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"judge.js","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"judge.js","sourceRoot":"","sources":["../src/judge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { AgentMessage, AgentToolCall, LiveAgentEvent } from "./types.js";
2
+ export type { LiveAgentEvent };
3
+ export interface LiveNotifyState {
4
+ toolCount: number;
5
+ assistantChars: number;
6
+ }
7
+ export declare function createLiveNotifyState(): LiveNotifyState;
8
+ /** New tool calls and the latest assistant text since the last drain. */
9
+ export declare function drainLiveAgentEvents(acc: {
10
+ toolCalls: AgentToolCall[];
11
+ agentMessages: AgentMessage[];
12
+ }, state: LiveNotifyState): LiveAgentEvent[];
13
+ export declare function emitLiveAgentEvents(acc: {
14
+ toolCalls: AgentToolCall[];
15
+ agentMessages: AgentMessage[];
16
+ }, state: LiveNotifyState, onAgentEvent?: (event: LiveAgentEvent) => void): void;
17
+ //# sourceMappingURL=live-agent-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-agent-event.d.ts","sourceRoot":"","sources":["../src/live-agent-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9E,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CACnC,GAAG,EAAE;IAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,EAClE,KAAK,EAAE,eAAe,GACpB,cAAc,EAAE,CAiBlB;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE;IAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAAC,aAAa,EAAE,YAAY,EAAE,CAAA;CAAE,EAClE,KAAK,EAAE,eAAe,EACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAC5C,IAAI,CAON"}