@auvira.ai/sdk 0.2.9
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/LICENSE +21 -0
- package/README.md +414 -0
- package/dist/agent/Agent.d.ts +27 -0
- package/dist/agent/Agent.d.ts.map +1 -0
- package/dist/agent/Agent.js +144 -0
- package/dist/agent/Agent.js.map +1 -0
- package/dist/agent/AgentRegistry.d.ts +13 -0
- package/dist/agent/AgentRegistry.d.ts.map +1 -0
- package/dist/agent/AgentRegistry.js +28 -0
- package/dist/agent/AgentRegistry.js.map +1 -0
- package/dist/agent/AgentRun.d.ts +38 -0
- package/dist/agent/AgentRun.d.ts.map +1 -0
- package/dist/agent/AgentRun.js +101 -0
- package/dist/agent/AgentRun.js.map +1 -0
- package/dist/agent/ConversationStore.d.ts +18 -0
- package/dist/agent/ConversationStore.d.ts.map +1 -0
- package/dist/agent/ConversationStore.js +38 -0
- package/dist/agent/ConversationStore.js.map +1 -0
- package/dist/agent/RunEventBus.d.ts +43 -0
- package/dist/agent/RunEventBus.d.ts.map +1 -0
- package/dist/agent/RunEventBus.js +289 -0
- package/dist/agent/RunEventBus.js.map +1 -0
- package/dist/agent/assistantEvent.d.ts +11 -0
- package/dist/agent/assistantEvent.d.ts.map +1 -0
- package/dist/agent/assistantEvent.js +20 -0
- package/dist/agent/assistantEvent.js.map +1 -0
- package/dist/agent/buildAgentPrompt.d.ts +10 -0
- package/dist/agent/buildAgentPrompt.d.ts.map +1 -0
- package/dist/agent/buildAgentPrompt.js +39 -0
- package/dist/agent/buildAgentPrompt.js.map +1 -0
- package/dist/agent/cancellation.d.ts +9 -0
- package/dist/agent/cancellation.d.ts.map +1 -0
- package/dist/agent/cancellation.js +18 -0
- package/dist/agent/cancellation.js.map +1 -0
- package/dist/agent/editCompletion.d.ts +35 -0
- package/dist/agent/editCompletion.d.ts.map +1 -0
- package/dist/agent/editCompletion.js +179 -0
- package/dist/agent/editCompletion.js.map +1 -0
- package/dist/agent/editEvents.d.ts +11 -0
- package/dist/agent/editEvents.d.ts.map +1 -0
- package/dist/agent/editEvents.js +36 -0
- package/dist/agent/editEvents.js.map +1 -0
- package/dist/agent/evaluateTaskCompletion.d.ts +49 -0
- package/dist/agent/evaluateTaskCompletion.d.ts.map +1 -0
- package/dist/agent/evaluateTaskCompletion.js +257 -0
- package/dist/agent/evaluateTaskCompletion.js.map +1 -0
- package/dist/agent/events.d.ts +182 -0
- package/dist/agent/events.d.ts.map +1 -0
- package/dist/agent/events.js +25 -0
- package/dist/agent/events.js.map +1 -0
- package/dist/agent/parseSendPayload.d.ts +24 -0
- package/dist/agent/parseSendPayload.d.ts.map +1 -0
- package/dist/agent/parseSendPayload.js +71 -0
- package/dist/agent/parseSendPayload.js.map +1 -0
- package/dist/agent/patchUtils.d.ts +17 -0
- package/dist/agent/patchUtils.d.ts.map +1 -0
- package/dist/agent/patchUtils.js +90 -0
- package/dist/agent/patchUtils.js.map +1 -0
- package/dist/agent/resolveModelConfig.d.ts +4 -0
- package/dist/agent/resolveModelConfig.d.ts.map +1 -0
- package/dist/agent/resolveModelConfig.js +27 -0
- package/dist/agent/resolveModelConfig.js.map +1 -0
- package/dist/agent/runAgentTask.d.ts +14 -0
- package/dist/agent/runAgentTask.d.ts.map +1 -0
- package/dist/agent/runAgentTask.js +376 -0
- package/dist/agent/runAgentTask.js.map +1 -0
- package/dist/agent/runResult.d.ts +10 -0
- package/dist/agent/runResult.d.ts.map +1 -0
- package/dist/agent/runResult.js +34 -0
- package/dist/agent/runResult.js.map +1 -0
- package/dist/agent/runValidationWithRepair.d.ts +32 -0
- package/dist/agent/runValidationWithRepair.d.ts.map +1 -0
- package/dist/agent/runValidationWithRepair.js +114 -0
- package/dist/agent/runValidationWithRepair.js.map +1 -0
- package/dist/agent/tools/edit.d.ts +4 -0
- package/dist/agent/tools/edit.d.ts.map +1 -0
- package/dist/agent/tools/edit.js +98 -0
- package/dist/agent/tools/edit.js.map +1 -0
- package/dist/agent/tools/executeTool.d.ts +8 -0
- package/dist/agent/tools/executeTool.d.ts.map +1 -0
- package/dist/agent/tools/executeTool.js +104 -0
- package/dist/agent/tools/executeTool.js.map +1 -0
- package/dist/agent/tools/glob.d.ts +6 -0
- package/dist/agent/tools/glob.d.ts.map +1 -0
- package/dist/agent/tools/glob.js +77 -0
- package/dist/agent/tools/glob.js.map +1 -0
- package/dist/agent/tools/grep.d.ts +4 -0
- package/dist/agent/tools/grep.d.ts.map +1 -0
- package/dist/agent/tools/grep.js +61 -0
- package/dist/agent/tools/grep.js.map +1 -0
- package/dist/agent/tools/pathGuard.d.ts +11 -0
- package/dist/agent/tools/pathGuard.d.ts.map +1 -0
- package/dist/agent/tools/pathGuard.js +55 -0
- package/dist/agent/tools/pathGuard.js.map +1 -0
- package/dist/agent/tools/read.d.ts +4 -0
- package/dist/agent/tools/read.d.ts.map +1 -0
- package/dist/agent/tools/read.js +41 -0
- package/dist/agent/tools/read.js.map +1 -0
- package/dist/agent/tools/types.d.ts +46 -0
- package/dist/agent/tools/types.d.ts.map +1 -0
- package/dist/agent/tools/types.js +2 -0
- package/dist/agent/tools/types.js.map +1 -0
- package/dist/agent/tools/write.d.ts +4 -0
- package/dist/agent/tools/write.d.ts.map +1 -0
- package/dist/agent/tools/write.js +63 -0
- package/dist/agent/tools/write.js.map +1 -0
- package/dist/agent/types.d.ts +193 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +18 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agent/validateOptions.d.ts +12 -0
- package/dist/agent/validateOptions.d.ts.map +1 -0
- package/dist/agent/validateOptions.js +91 -0
- package/dist/agent/validateOptions.js.map +1 -0
- package/dist/git/cloneGitLabProject.d.ts +10 -0
- package/dist/git/cloneGitLabProject.d.ts.map +1 -0
- package/dist/git/cloneGitLabProject.js +24 -0
- package/dist/git/cloneGitLabProject.js.map +1 -0
- package/dist/git/createAgentBranch.d.ts +3 -0
- package/dist/git/createAgentBranch.d.ts.map +1 -0
- package/dist/git/createAgentBranch.js +14 -0
- package/dist/git/createAgentBranch.js.map +1 -0
- package/dist/git/gitDiff.d.ts +9 -0
- package/dist/git/gitDiff.d.ts.map +1 -0
- package/dist/git/gitDiff.js +34 -0
- package/dist/git/gitDiff.js.map +1 -0
- package/dist/git/maskSecrets.d.ts +3 -0
- package/dist/git/maskSecrets.d.ts.map +1 -0
- package/dist/git/maskSecrets.js +15 -0
- package/dist/git/maskSecrets.js.map +1 -0
- package/dist/git/resolveGitLabProject.d.ts +26 -0
- package/dist/git/resolveGitLabProject.d.ts.map +1 -0
- package/dist/git/resolveGitLabProject.js +68 -0
- package/dist/git/resolveGitLabProject.js.map +1 -0
- package/dist/git/sanitizeGitLabUrl.d.ts +8 -0
- package/dist/git/sanitizeGitLabUrl.d.ts.map +1 -0
- package/dist/git/sanitizeGitLabUrl.js +38 -0
- package/dist/git/sanitizeGitLabUrl.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/agentic/AgenticCustomProvider.d.ts +9 -0
- package/dist/providers/agentic/AgenticCustomProvider.d.ts.map +1 -0
- package/dist/providers/agentic/AgenticCustomProvider.js +366 -0
- package/dist/providers/agentic/AgenticCustomProvider.js.map +1 -0
- package/dist/providers/agentic/agentLoop.d.ts +79 -0
- package/dist/providers/agentic/agentLoop.d.ts.map +1 -0
- package/dist/providers/agentic/agentLoop.js +646 -0
- package/dist/providers/agentic/agentLoop.js.map +1 -0
- package/dist/providers/agentic/priomptContext.d.ts +29 -0
- package/dist/providers/agentic/priomptContext.d.ts.map +1 -0
- package/dist/providers/agentic/priomptContext.js +90 -0
- package/dist/providers/agentic/priomptContext.js.map +1 -0
- package/dist/providers/agentic/seedRetrieval.d.ts +12 -0
- package/dist/providers/agentic/seedRetrieval.d.ts.map +1 -0
- package/dist/providers/agentic/seedRetrieval.js +58 -0
- package/dist/providers/agentic/seedRetrieval.js.map +1 -0
- package/dist/providers/agentic/toolPolicy.d.ts +15 -0
- package/dist/providers/agentic/toolPolicy.d.ts.map +1 -0
- package/dist/providers/agentic/toolPolicy.js +53 -0
- package/dist/providers/agentic/toolPolicy.js.map +1 -0
- package/dist/providers/agentic/toolSchemas.d.ts +177 -0
- package/dist/providers/agentic/toolSchemas.d.ts.map +1 -0
- package/dist/providers/agentic/toolSchemas.js +104 -0
- package/dist/providers/agentic/toolSchemas.js.map +1 -0
- package/dist/providers/agentic/trimAgentHistory.d.ts +18 -0
- package/dist/providers/agentic/trimAgentHistory.d.ts.map +1 -0
- package/dist/providers/agentic/trimAgentHistory.js +68 -0
- package/dist/providers/agentic/trimAgentHistory.js.map +1 -0
- package/dist/providers/custom/CustomModelProvider.d.ts +4 -0
- package/dist/providers/custom/CustomModelProvider.d.ts.map +1 -0
- package/dist/providers/custom/CustomModelProvider.js +538 -0
- package/dist/providers/custom/CustomModelProvider.js.map +1 -0
- package/dist/providers/custom/discoverTargetFiles.d.ts +16 -0
- package/dist/providers/custom/discoverTargetFiles.d.ts.map +1 -0
- package/dist/providers/custom/discoverTargetFiles.js +231 -0
- package/dist/providers/custom/discoverTargetFiles.js.map +1 -0
- package/dist/providers/custom/harnessPinTypes.d.ts +15 -0
- package/dist/providers/custom/harnessPinTypes.d.ts.map +1 -0
- package/dist/providers/custom/harnessPinTypes.js +46 -0
- package/dist/providers/custom/harnessPinTypes.js.map +1 -0
- package/dist/providers/custom/harnessPrompt.d.ts +29 -0
- package/dist/providers/custom/harnessPrompt.d.ts.map +1 -0
- package/dist/providers/custom/harnessPrompt.js +356 -0
- package/dist/providers/custom/harnessPrompt.js.map +1 -0
- package/dist/providers/custom/harnessSectionContext.d.ts +7 -0
- package/dist/providers/custom/harnessSectionContext.d.ts.map +1 -0
- package/dist/providers/custom/harnessSectionContext.js +82 -0
- package/dist/providers/custom/harnessSectionContext.js.map +1 -0
- package/dist/providers/custom/modelRequestDefaults.d.ts +16 -0
- package/dist/providers/custom/modelRequestDefaults.d.ts.map +1 -0
- package/dist/providers/custom/modelRequestDefaults.js +71 -0
- package/dist/providers/custom/modelRequestDefaults.js.map +1 -0
- package/dist/providers/custom/parseModelEditPlan.d.ts +21 -0
- package/dist/providers/custom/parseModelEditPlan.d.ts.map +1 -0
- package/dist/providers/custom/parseModelEditPlan.js +164 -0
- package/dist/providers/custom/parseModelEditPlan.js.map +1 -0
- package/dist/providers/custom/selectPromptFiles.d.ts +18 -0
- package/dist/providers/custom/selectPromptFiles.d.ts.map +1 -0
- package/dist/providers/custom/selectPromptFiles.js +180 -0
- package/dist/providers/custom/selectPromptFiles.js.map +1 -0
- package/dist/providers/custom/visionImages.d.ts +4 -0
- package/dist/providers/custom/visionImages.d.ts.map +1 -0
- package/dist/providers/custom/visionImages.js +10 -0
- package/dist/providers/custom/visionImages.js.map +1 -0
- package/dist/providers/openhands/OpenHandsMockProvider.d.ts +6 -0
- package/dist/providers/openhands/OpenHandsMockProvider.d.ts.map +1 -0
- package/dist/providers/openhands/OpenHandsMockProvider.js +73 -0
- package/dist/providers/openhands/OpenHandsMockProvider.js.map +1 -0
- package/dist/providers/openhands/OpenHandsProvider.d.ts +4 -0
- package/dist/providers/openhands/OpenHandsProvider.d.ts.map +1 -0
- package/dist/providers/openhands/OpenHandsProvider.js +163 -0
- package/dist/providers/openhands/OpenHandsProvider.js.map +1 -0
- package/dist/providers/openhands/openHandsEvents.d.ts +6 -0
- package/dist/providers/openhands/openHandsEvents.d.ts.map +1 -0
- package/dist/providers/openhands/openHandsEvents.js +54 -0
- package/dist/providers/openhands/openHandsEvents.js.map +1 -0
- package/dist/providers/openhands/types.d.ts +16 -0
- package/dist/providers/openhands/types.d.ts.map +1 -0
- package/dist/providers/openhands/types.js +2 -0
- package/dist/providers/openhands/types.js.map +1 -0
- package/dist/providers/runProvider.d.ts +4 -0
- package/dist/providers/runProvider.d.ts.map +1 -0
- package/dist/providers/runProvider.js +16 -0
- package/dist/providers/runProvider.js.map +1 -0
- package/dist/providers/types.d.ts +35 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +5 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/server/routes.d.ts +9 -0
- package/dist/server/routes.d.ts.map +1 -0
- package/dist/server/routes.js +58 -0
- package/dist/server/routes.js.map +1 -0
- package/dist/server/server.d.ts +10 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +39 -0
- package/dist/server/server.js.map +1 -0
- package/dist/tools/fileExists.d.ts +3 -0
- package/dist/tools/fileExists.d.ts.map +1 -0
- package/dist/tools/fileExists.js +12 -0
- package/dist/tools/fileExists.js.map +1 -0
- package/dist/tools/resolveBuildValidation.d.ts +8 -0
- package/dist/tools/resolveBuildValidation.d.ts.map +1 -0
- package/dist/tools/resolveBuildValidation.js +35 -0
- package/dist/tools/resolveBuildValidation.js.map +1 -0
- package/dist/tools/runCommand.d.ts +17 -0
- package/dist/tools/runCommand.d.ts.map +1 -0
- package/dist/tools/runCommand.js +92 -0
- package/dist/tools/runCommand.js.map +1 -0
- package/dist/tools/safeValidateCommand.d.ts +9 -0
- package/dist/tools/safeValidateCommand.d.ts.map +1 -0
- package/dist/tools/safeValidateCommand.js +59 -0
- package/dist/tools/safeValidateCommand.js.map +1 -0
- package/dist/util/apiThrottle.d.ts +14 -0
- package/dist/util/apiThrottle.d.ts.map +1 -0
- package/dist/util/apiThrottle.js +50 -0
- package/dist/util/apiThrottle.js.map +1 -0
- package/dist/util/globMatch.d.ts +7 -0
- package/dist/util/globMatch.d.ts.map +1 -0
- package/dist/util/globMatch.js +25 -0
- package/dist/util/globMatch.js.map +1 -0
- package/dist/util/modelApiClient.d.ts +47 -0
- package/dist/util/modelApiClient.d.ts.map +1 -0
- package/dist/util/modelApiClient.js +245 -0
- package/dist/util/modelApiClient.js.map +1 -0
- package/dist/util/screenshotBase64.d.ts +3 -0
- package/dist/util/screenshotBase64.d.ts.map +1 -0
- package/dist/util/screenshotBase64.js +7 -0
- package/dist/util/screenshotBase64.js.map +1 -0
- package/dist/workspace/cleanupWorkspace.d.ts +3 -0
- package/dist/workspace/cleanupWorkspace.d.ts.map +1 -0
- package/dist/workspace/cleanupWorkspace.js +6 -0
- package/dist/workspace/cleanupWorkspace.js.map +1 -0
- package/dist/workspace/copyLocalRepo.d.ts +5 -0
- package/dist/workspace/copyLocalRepo.d.ts.map +1 -0
- package/dist/workspace/copyLocalRepo.js +34 -0
- package/dist/workspace/copyLocalRepo.js.map +1 -0
- package/dist/workspace/createWorkspace.d.ts +7 -0
- package/dist/workspace/createWorkspace.d.ts.map +1 -0
- package/dist/workspace/createWorkspace.js +10 -0
- package/dist/workspace/createWorkspace.js.map +1 -0
- package/dist/workspace/prepareWorkspace.d.ts +4 -0
- package/dist/workspace/prepareWorkspace.d.ts.map +1 -0
- package/dist/workspace/prepareWorkspace.js +46 -0
- package/dist/workspace/prepareWorkspace.js.map +1 -0
- package/dist/workspace/resolveWorkspaceMode.d.ts +7 -0
- package/dist/workspace/resolveWorkspaceMode.d.ts.map +1 -0
- package/dist/workspace/resolveWorkspaceMode.js +15 -0
- package/dist/workspace/resolveWorkspaceMode.js.map +1 -0
- package/dist/workspace/syncRepoToOwner.d.ts +3 -0
- package/dist/workspace/syncRepoToOwner.d.ts.map +1 -0
- package/dist/workspace/syncRepoToOwner.js +14 -0
- package/dist/workspace/syncRepoToOwner.js.map +1 -0
- package/dist/workspace/workspaceCheckpoint.d.ts +20 -0
- package/dist/workspace/workspaceCheckpoint.d.ts.map +1 -0
- package/dist/workspace/workspaceCheckpoint.js +243 -0
- package/dist/workspace/workspaceCheckpoint.js.map +1 -0
- package/dist/workspace/writeScreenshot.d.ts +15 -0
- package/dist/workspace/writeScreenshot.d.ts.map +1 -0
- package/dist/workspace/writeScreenshot.js +56 -0
- package/dist/workspace/writeScreenshot.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Builds the full agent prompt with visual and validation context. */
|
|
2
|
+
export function buildAgentPrompt(input) {
|
|
3
|
+
const screenshotContext = input.screenshotPath
|
|
4
|
+
? `Screenshot saved at: ${input.screenshotPath}\nUse this image to understand visual intent and layout.`
|
|
5
|
+
: "No screenshot provided.";
|
|
6
|
+
const selectedDomContext = input.selectedDom
|
|
7
|
+
? JSON.stringify(input.selectedDom, null, 2)
|
|
8
|
+
: "No selected DOM context provided.";
|
|
9
|
+
return `You are Auvira Agent, a cheap Cursor-SDK-compatible visual coding agent.
|
|
10
|
+
|
|
11
|
+
You edit website repositories safely and precisely. Most projects are Next.js, React, TypeScript, Tailwind, CSS Modules, or plain CSS.
|
|
12
|
+
|
|
13
|
+
User request:
|
|
14
|
+
${input.prompt}
|
|
15
|
+
|
|
16
|
+
Screenshot/image context:
|
|
17
|
+
${screenshotContext}
|
|
18
|
+
|
|
19
|
+
Selected DOM context:
|
|
20
|
+
${selectedDomContext}
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
1. Make the smallest safe change that satisfies the request.
|
|
24
|
+
2. Use selectedDom.text to locate the exact UI element when available.
|
|
25
|
+
3. Use selectedDom.componentHint to prioritize matching component/section files (e.g. Testimonials, not Hero).
|
|
26
|
+
4. When a reference image is attached, apply its vibe to the pinned section — not unrelated areas.
|
|
27
|
+
5. Use screenshot/image context to understand visual intent when available.
|
|
28
|
+
6. Prefer editing component, page, style, or config files.
|
|
29
|
+
7. Do not edit lockfiles unless dependency changes are required.
|
|
30
|
+
8. Do not install dependencies unless absolutely required.
|
|
31
|
+
9. Do not rewrite unrelated code.
|
|
32
|
+
10. Do not touch auth, database, API routes, or deployment config unless explicitly requested.
|
|
33
|
+
11. Preserve existing project style.
|
|
34
|
+
12. Run validation command after editing: ${input.validationCommand}
|
|
35
|
+
13. If validation fails, fix once and rerun validation.
|
|
36
|
+
14. Return concise summary and changed files.
|
|
37
|
+
15. Never reveal secrets, API keys, or GitLab tokens.`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=buildAgentPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildAgentPrompt.js","sourceRoot":"","sources":["../../src/agent/buildAgentPrompt.ts"],"names":[],"mappings":"AASA,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc;QAC5C,CAAC,CAAC,wBAAwB,KAAK,CAAC,cAAc,0DAA0D;QACxG,CAAC,CAAC,yBAAyB,CAAC;IAE9B,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,mCAAmC,CAAC;IAExC,OAAO;;;;;EAKP,KAAK,CAAC,MAAM;;;EAGZ,iBAAiB;;;EAGjB,kBAAkB;;;;;;;;;;;;;;4CAcwB,KAAK,CAAC,iBAAiB;;;sDAGb,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Thrown when an agent run is cancelled via AbortSignal or run.cancel(). */
|
|
2
|
+
export declare class RunCancelledError extends Error {
|
|
3
|
+
constructor(message?: string);
|
|
4
|
+
}
|
|
5
|
+
/** Returns true when a run should stop due to cancellation. */
|
|
6
|
+
export declare function isRunCancelled(signal?: AbortSignal): boolean;
|
|
7
|
+
/** Throws RunCancelledError when the signal is aborted. */
|
|
8
|
+
export declare function throwIfCancelled(signal?: AbortSignal): void;
|
|
9
|
+
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../../src/agent/cancellation.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,SAA4B;CAIhD;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAI3D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Thrown when an agent run is cancelled via AbortSignal or run.cancel(). */
|
|
2
|
+
export class RunCancelledError extends Error {
|
|
3
|
+
constructor(message = "Agent run was cancelled") {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "RunCancelledError";
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/** Returns true when a run should stop due to cancellation. */
|
|
9
|
+
export function isRunCancelled(signal) {
|
|
10
|
+
return signal?.aborted === true;
|
|
11
|
+
}
|
|
12
|
+
/** Throws RunCancelledError when the signal is aborted. */
|
|
13
|
+
export function throwIfCancelled(signal) {
|
|
14
|
+
if (isRunCancelled(signal)) {
|
|
15
|
+
throw new RunCancelledError();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=cancellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../src/agent/cancellation.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,GAAG,yBAAyB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,OAAO,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAClC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,iBAAiB,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AgentCompletionOptions, SelectedDomContext } from "./types.js";
|
|
2
|
+
export declare const DEFAULT_STYLE_ASSET_PATTERNS: RegExp[];
|
|
3
|
+
export declare const DEFAULT_WIRING_PATTERNS: RegExp[];
|
|
4
|
+
export declare const DEFAULT_MULTI_STEP_LIMITS: {
|
|
5
|
+
readonly minToolCalls: 8;
|
|
6
|
+
readonly minModelTurns: 2;
|
|
7
|
+
readonly maxExtraTurnsAfterStyleOnly: 3;
|
|
8
|
+
};
|
|
9
|
+
export type HarnessCompletionAction = "finish" | "continue" | "fail";
|
|
10
|
+
export type HarnessCompletionContinueReason = "style_only_incomplete" | "completion_callback" | "min_turns_pending";
|
|
11
|
+
export interface HarnessCompletionGateResult {
|
|
12
|
+
action: HarnessCompletionAction;
|
|
13
|
+
continueReason?: HarnessCompletionContinueReason;
|
|
14
|
+
finishReason?: "diff_detected" | "completion_contract_met" | "max_turns";
|
|
15
|
+
styleOnly: boolean;
|
|
16
|
+
wiringComplete: boolean;
|
|
17
|
+
failMessage?: string;
|
|
18
|
+
}
|
|
19
|
+
/** True when every changed file is a style asset and none are wiring paths. */
|
|
20
|
+
export declare function isStyleOnlyDiff(changedFiles: string[], completion?: AgentCompletionOptions): boolean;
|
|
21
|
+
/** True when at least one changed file matches wiring patterns. */
|
|
22
|
+
export declare function hasWiringChange(changedFiles: string[], completion?: AgentCompletionOptions): boolean;
|
|
23
|
+
export declare function hasSelectedDomContext(selectedDom?: SelectedDomContext): boolean;
|
|
24
|
+
/** Evaluates whether harness early finish should proceed, continue, or fail. */
|
|
25
|
+
export declare function evaluateHarnessCompletionGate(input: {
|
|
26
|
+
changedFiles: string[];
|
|
27
|
+
toolCallCount: number;
|
|
28
|
+
modelTurnCount: number;
|
|
29
|
+
hasVisionImages: boolean;
|
|
30
|
+
selectedDom?: SelectedDomContext;
|
|
31
|
+
completion?: AgentCompletionOptions;
|
|
32
|
+
deferredFinishCount: number;
|
|
33
|
+
}): HarnessCompletionGateResult;
|
|
34
|
+
export declare function getWiringIncompleteNudge(): string;
|
|
35
|
+
//# sourceMappingURL=editCompletion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editCompletion.d.ts","sourceRoot":"","sources":["../../src/agent/editCompletion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEtB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,4BAA4B,UAIxC,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAInC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAKX,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAErE,MAAM,MAAM,+BAA+B,GACvC,uBAAuB,GACvB,qBAAqB,GACrB,mBAAmB,CAAC;AAExB,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,uBAAuB,CAAC;IAChC,cAAc,CAAC,EAAE,+BAA+B,CAAC;IACjD,YAAY,CAAC,EAAE,eAAe,GAAG,yBAAyB,GAAG,WAAW,CAAC;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAiCD,+EAA+E;AAC/E,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,CAAC,EAAE,sBAAsB,GAClC,OAAO,CAYT;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,CAAC,EAAE,sBAAsB,GAClC,OAAO,CAGT;AAED,wBAAgB,qBAAqB,CACnC,WAAW,CAAC,EAAE,kBAAkB,GAC/B,OAAO,CAYT;AAyCD,gFAAgF;AAChF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,2BAA2B,CAqG9B;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
export const DEFAULT_STYLE_ASSET_PATTERNS = [
|
|
2
|
+
/globals\.css$/i,
|
|
3
|
+
/tailwind\.config/i,
|
|
4
|
+
/\.module\.css$/i,
|
|
5
|
+
];
|
|
6
|
+
export const DEFAULT_WIRING_PATTERNS = [
|
|
7
|
+
/siteconfig/i,
|
|
8
|
+
/page\.tsx$/i,
|
|
9
|
+
/\/components\//i,
|
|
10
|
+
];
|
|
11
|
+
export const DEFAULT_MULTI_STEP_LIMITS = {
|
|
12
|
+
minToolCalls: 8,
|
|
13
|
+
minModelTurns: 2,
|
|
14
|
+
maxExtraTurnsAfterStyleOnly: 3,
|
|
15
|
+
};
|
|
16
|
+
const WIRING_INCOMPLETE_NUDGE = "Style files changed but pinned-target wiring is incomplete. Update config or component files that apply styles to the pinned target before stopping.";
|
|
17
|
+
function compilePatterns(patterns) {
|
|
18
|
+
return patterns.map((pattern) => new RegExp(pattern, "i"));
|
|
19
|
+
}
|
|
20
|
+
function resolveStylePatterns(completion) {
|
|
21
|
+
if (completion?.styleAssetPatterns?.length) {
|
|
22
|
+
return compilePatterns(completion.styleAssetPatterns);
|
|
23
|
+
}
|
|
24
|
+
return DEFAULT_STYLE_ASSET_PATTERNS;
|
|
25
|
+
}
|
|
26
|
+
function resolveWiringPatterns(completion) {
|
|
27
|
+
if (completion?.wiringPatterns?.length) {
|
|
28
|
+
return compilePatterns(completion.wiringPatterns);
|
|
29
|
+
}
|
|
30
|
+
return DEFAULT_WIRING_PATTERNS;
|
|
31
|
+
}
|
|
32
|
+
function normalizePath(file) {
|
|
33
|
+
return file.replace(/\\/g, "/");
|
|
34
|
+
}
|
|
35
|
+
function matchesAnyPattern(file, patterns) {
|
|
36
|
+
const normalized = normalizePath(file);
|
|
37
|
+
return patterns.some((pattern) => pattern.test(normalized));
|
|
38
|
+
}
|
|
39
|
+
/** True when every changed file is a style asset and none are wiring paths. */
|
|
40
|
+
export function isStyleOnlyDiff(changedFiles, completion) {
|
|
41
|
+
if (changedFiles.length === 0) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const stylePatterns = resolveStylePatterns(completion);
|
|
45
|
+
const wiringPatterns = resolveWiringPatterns(completion);
|
|
46
|
+
return (changedFiles.every((file) => matchesAnyPattern(file, stylePatterns)) &&
|
|
47
|
+
!changedFiles.some((file) => matchesAnyPattern(file, wiringPatterns)));
|
|
48
|
+
}
|
|
49
|
+
/** True when at least one changed file matches wiring patterns. */
|
|
50
|
+
export function hasWiringChange(changedFiles, completion) {
|
|
51
|
+
const wiringPatterns = resolveWiringPatterns(completion);
|
|
52
|
+
return changedFiles.some((file) => matchesAnyPattern(file, wiringPatterns));
|
|
53
|
+
}
|
|
54
|
+
export function hasSelectedDomContext(selectedDom) {
|
|
55
|
+
if (!selectedDom) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return (selectedDom.sectionIndex != null ||
|
|
59
|
+
Boolean(selectedDom.sectionTitle?.trim()) ||
|
|
60
|
+
selectedDom.kind === "section" ||
|
|
61
|
+
selectedDom.kind === "hero" ||
|
|
62
|
+
Boolean(selectedDom.componentHint?.trim()));
|
|
63
|
+
}
|
|
64
|
+
function resolveMultiStepLimits(completion) {
|
|
65
|
+
return {
|
|
66
|
+
minToolCalls: completion?.multiStep?.minToolCalls ??
|
|
67
|
+
DEFAULT_MULTI_STEP_LIMITS.minToolCalls,
|
|
68
|
+
minModelTurns: completion?.multiStep?.minModelTurns ??
|
|
69
|
+
DEFAULT_MULTI_STEP_LIMITS.minModelTurns,
|
|
70
|
+
maxExtraTurnsAfterStyleOnly: completion?.multiStep?.maxExtraTurnsAfterStyleOnly ??
|
|
71
|
+
DEFAULT_MULTI_STEP_LIMITS.maxExtraTurnsAfterStyleOnly,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function isCompletionContractActive(input) {
|
|
75
|
+
const completion = input.completion;
|
|
76
|
+
if (!completion) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
if (completion.isComplete) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
if (completion.requireWiringAfterStyle &&
|
|
83
|
+
input.hasVisionImages &&
|
|
84
|
+
hasSelectedDomContext(input.selectedDom)) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return completion.mode === "multi_file_required";
|
|
88
|
+
}
|
|
89
|
+
/** Evaluates whether harness early finish should proceed, continue, or fail. */
|
|
90
|
+
export function evaluateHarnessCompletionGate(input) {
|
|
91
|
+
const styleOnly = isStyleOnlyDiff(input.changedFiles, input.completion);
|
|
92
|
+
const wiringComplete = hasWiringChange(input.changedFiles, input.completion);
|
|
93
|
+
const limits = resolveMultiStepLimits(input.completion);
|
|
94
|
+
const contractContext = {
|
|
95
|
+
changedFiles: input.changedFiles,
|
|
96
|
+
toolCallCount: input.toolCallCount,
|
|
97
|
+
modelTurnCount: input.modelTurnCount,
|
|
98
|
+
hasVisionImages: input.hasVisionImages,
|
|
99
|
+
hasSelectedDom: hasSelectedDomContext(input.selectedDom),
|
|
100
|
+
deferredFinishCount: input.deferredFinishCount,
|
|
101
|
+
};
|
|
102
|
+
if (input.completion?.isComplete) {
|
|
103
|
+
const verdict = input.completion.isComplete(contractContext);
|
|
104
|
+
if (verdict === "continue" || verdict === false) {
|
|
105
|
+
return {
|
|
106
|
+
action: "continue",
|
|
107
|
+
continueReason: "completion_callback",
|
|
108
|
+
styleOnly,
|
|
109
|
+
wiringComplete,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
if (verdict === "complete" || verdict === true) {
|
|
113
|
+
return {
|
|
114
|
+
action: "finish",
|
|
115
|
+
finishReason: "completion_contract_met",
|
|
116
|
+
styleOnly,
|
|
117
|
+
wiringComplete,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const contractActive = isCompletionContractActive({
|
|
122
|
+
completion: input.completion,
|
|
123
|
+
hasVisionImages: input.hasVisionImages,
|
|
124
|
+
selectedDom: input.selectedDom,
|
|
125
|
+
});
|
|
126
|
+
if (contractActive) {
|
|
127
|
+
const requireWiring = input.completion?.requireWiringAfterStyle === true ||
|
|
128
|
+
input.completion?.mode === "multi_file_required";
|
|
129
|
+
if (requireWiring &&
|
|
130
|
+
input.hasVisionImages &&
|
|
131
|
+
hasSelectedDomContext(input.selectedDom) &&
|
|
132
|
+
styleOnly) {
|
|
133
|
+
if (input.deferredFinishCount >= limits.maxExtraTurnsAfterStyleOnly) {
|
|
134
|
+
return {
|
|
135
|
+
action: "fail",
|
|
136
|
+
styleOnly,
|
|
137
|
+
wiringComplete,
|
|
138
|
+
failMessage: "Multi-step style edit incomplete: style assets changed without config/component wiring",
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
const belowMinTurns = input.toolCallCount < limits.minToolCalls &&
|
|
142
|
+
input.modelTurnCount < limits.minModelTurns;
|
|
143
|
+
return {
|
|
144
|
+
action: "continue",
|
|
145
|
+
continueReason: belowMinTurns
|
|
146
|
+
? "min_turns_pending"
|
|
147
|
+
: "style_only_incomplete",
|
|
148
|
+
styleOnly,
|
|
149
|
+
wiringComplete,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (requireWiring && !wiringComplete && input.changedFiles.length > 0) {
|
|
153
|
+
if (input.deferredFinishCount >= limits.maxExtraTurnsAfterStyleOnly) {
|
|
154
|
+
return {
|
|
155
|
+
action: "fail",
|
|
156
|
+
styleOnly,
|
|
157
|
+
wiringComplete,
|
|
158
|
+
failMessage: "Multi-step style edit incomplete: wiring files were not updated",
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
action: "continue",
|
|
163
|
+
continueReason: "style_only_incomplete",
|
|
164
|
+
styleOnly,
|
|
165
|
+
wiringComplete,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
action: "finish",
|
|
171
|
+
finishReason: contractActive ? "completion_contract_met" : "diff_detected",
|
|
172
|
+
styleOnly,
|
|
173
|
+
wiringComplete,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export function getWiringIncompleteNudge() {
|
|
177
|
+
return WIRING_INCOMPLETE_NUDGE;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=editCompletion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editCompletion.js","sourceRoot":"","sources":["../../src/agent/editCompletion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RunEventBus } from "./RunEventBus.js";
|
|
2
|
+
export interface EmitEditEventsInput {
|
|
3
|
+
path: string;
|
|
4
|
+
before: string;
|
|
5
|
+
after: string;
|
|
6
|
+
applied: boolean;
|
|
7
|
+
errorMessage?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Emits edit.diff and enriched edit.applied for stream consumers (agentic + JSON). */
|
|
10
|
+
export declare function emitEditEventsFromPatch(bus: RunEventBus, input: EmitEditEventsInput): void;
|
|
11
|
+
//# sourceMappingURL=editEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editEvents.d.ts","sourceRoot":"","sources":["../../src/agent/editEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,mBAAmB,GACzB,IAAI,CAoCN"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { buildUnifiedPatch, countLineStats } from "./patchUtils.js";
|
|
2
|
+
/** Emits edit.diff and enriched edit.applied for stream consumers (agentic + JSON). */
|
|
3
|
+
export function emitEditEventsFromPatch(bus, input) {
|
|
4
|
+
const stats = input.applied && input.before !== input.after
|
|
5
|
+
? countLineStats(input.before, input.after)
|
|
6
|
+
: undefined;
|
|
7
|
+
if (input.applied && input.before !== input.after) {
|
|
8
|
+
const rawPatch = buildUnifiedPatch(input.path, input.before, input.after);
|
|
9
|
+
bus.emit({
|
|
10
|
+
type: "edit.diff",
|
|
11
|
+
path: input.path,
|
|
12
|
+
patch: rawPatch,
|
|
13
|
+
truncated: false,
|
|
14
|
+
linesAdded: stats?.linesAdded,
|
|
15
|
+
linesRemoved: stats?.linesRemoved,
|
|
16
|
+
applied: true,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (input.applied) {
|
|
20
|
+
bus.emit({
|
|
21
|
+
type: "edit.applied",
|
|
22
|
+
path: input.path,
|
|
23
|
+
applied: true,
|
|
24
|
+
linesAdded: stats?.linesAdded,
|
|
25
|
+
linesRemoved: stats?.linesRemoved,
|
|
26
|
+
});
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
bus.emit({
|
|
30
|
+
type: "edit.applied",
|
|
31
|
+
path: input.path,
|
|
32
|
+
applied: false,
|
|
33
|
+
errorMessage: input.errorMessage,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=editEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editEvents.js","sourceRoot":"","sources":["../../src/agent/editEvents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUpE,uFAAuF;AACvF,MAAM,UAAU,uBAAuB,CACrC,GAAgB,EAChB,KAA0B;IAE1B,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK;QAC3C,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1E,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,KAAK,EAAE,UAAU;YAC7B,YAAY,EAAE,KAAK,EAAE,YAAY;YACjC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK,EAAE,UAAU;YAC7B,YAAY,EAAE,KAAK,EAAE,YAAY;SAClC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { RunEventBus } from "./RunEventBus.js";
|
|
2
|
+
import type { AgentModelConfig, SelectedDomContext } from "./types.js";
|
|
3
|
+
export interface TaskCompletionDecision {
|
|
4
|
+
isComplete: boolean;
|
|
5
|
+
confidence: number;
|
|
6
|
+
reason: string;
|
|
7
|
+
missingWork?: string[];
|
|
8
|
+
nextActionHint?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface RecentToolResult {
|
|
11
|
+
name: string;
|
|
12
|
+
ok: boolean;
|
|
13
|
+
output: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface EvaluateTaskCompletionInput {
|
|
17
|
+
ownerRequest: string;
|
|
18
|
+
selectedDom?: SelectedDomContext;
|
|
19
|
+
referenceImages?: string[];
|
|
20
|
+
changedFiles: string[];
|
|
21
|
+
diffPatch: string;
|
|
22
|
+
allowedWritePaths?: string[];
|
|
23
|
+
recentToolResults: RecentToolResult[];
|
|
24
|
+
model: AgentModelConfig;
|
|
25
|
+
signal?: AbortSignal;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
bus?: RunEventBus;
|
|
28
|
+
/** When false, reference images are omitted from the evaluator prompt. */
|
|
29
|
+
includeReferenceImages?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface CompletionEvaluationKeyInput {
|
|
32
|
+
ownerRequest: string;
|
|
33
|
+
selectedDom?: SelectedDomContext;
|
|
34
|
+
changedFiles: string[];
|
|
35
|
+
diffPatch: string;
|
|
36
|
+
recentToolResults: RecentToolResult[];
|
|
37
|
+
threshold: number;
|
|
38
|
+
includeReferenceImages: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** Stable cache key for completion evaluator verdicts within a run. */
|
|
41
|
+
export declare function computeCompletionEvaluationKey(input: CompletionEvaluationKeyInput): string;
|
|
42
|
+
/** Default confidence threshold for accepting LLM completion verdict. */
|
|
43
|
+
export declare function getTaskCompletionConfidenceThreshold(override?: number): number;
|
|
44
|
+
/** Default max incomplete-continuation nudges per run. */
|
|
45
|
+
export declare function getCompletionMaxContinues(): number;
|
|
46
|
+
/** Evaluates whether the current workspace checkpoint diff satisfies the owner request. */
|
|
47
|
+
export declare function evaluateTaskCompletion(input: EvaluateTaskCompletionInput): Promise<TaskCompletionDecision | null>;
|
|
48
|
+
export declare function buildIncompleteContinuationNudge(decision: TaskCompletionDecision): string;
|
|
49
|
+
//# sourceMappingURL=evaluateTaskCompletion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluateTaskCompletion.d.ts","sourceRoot":"","sources":["../../src/agent/evaluateTaskCompletion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIvE,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA2CD,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,uEAAuE;AACvE,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,4BAA4B,GAClC,MAAM,CAWR;AAqBD,yEAAyE;AACzE,wBAAgB,oCAAoC,CAClD,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAKR;AAED,0DAA0D;AAC1D,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AA8HD,2FAA2F;AAC3F,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAuFxC;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,sBAAsB,GAC/B,MAAM,CAYR"}
|