ralph-research 0.1.0

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 (174) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -0
  3. package/dist/adapters/extractor/command-extractor.d.ts +9 -0
  4. package/dist/adapters/extractor/command-extractor.js +93 -0
  5. package/dist/adapters/extractor/command-extractor.js.map +1 -0
  6. package/dist/adapters/extractor/llm-judge-extractor.d.ts +9 -0
  7. package/dist/adapters/extractor/llm-judge-extractor.js +12 -0
  8. package/dist/adapters/extractor/llm-judge-extractor.js.map +1 -0
  9. package/dist/adapters/fs/json-file-decision-store.d.ts +10 -0
  10. package/dist/adapters/fs/json-file-decision-store.js +53 -0
  11. package/dist/adapters/fs/json-file-decision-store.js.map +1 -0
  12. package/dist/adapters/fs/json-file-frontier-store.d.ts +8 -0
  13. package/dist/adapters/fs/json-file-frontier-store.js +29 -0
  14. package/dist/adapters/fs/json-file-frontier-store.js.map +1 -0
  15. package/dist/adapters/fs/json-file-run-store.d.ts +10 -0
  16. package/dist/adapters/fs/json-file-run-store.js +53 -0
  17. package/dist/adapters/fs/json-file-run-store.js.map +1 -0
  18. package/dist/adapters/fs/lockfile.d.ts +24 -0
  19. package/dist/adapters/fs/lockfile.js +110 -0
  20. package/dist/adapters/fs/lockfile.js.map +1 -0
  21. package/dist/adapters/fs/manifest-loader.d.ts +10 -0
  22. package/dist/adapters/fs/manifest-loader.js +43 -0
  23. package/dist/adapters/fs/manifest-loader.js.map +1 -0
  24. package/dist/adapters/git/git-client.d.ts +9 -0
  25. package/dist/adapters/git/git-client.js +23 -0
  26. package/dist/adapters/git/git-client.js.map +1 -0
  27. package/dist/adapters/index.d.ts +1 -0
  28. package/dist/adapters/index.js +3 -0
  29. package/dist/adapters/index.js.map +1 -0
  30. package/dist/adapters/judge/llm-judge-provider.d.ts +33 -0
  31. package/dist/adapters/judge/llm-judge-provider.js +90 -0
  32. package/dist/adapters/judge/llm-judge-provider.js.map +1 -0
  33. package/dist/adapters/proposer/command-proposer.d.ts +15 -0
  34. package/dist/adapters/proposer/command-proposer.js +29 -0
  35. package/dist/adapters/proposer/command-proposer.js.map +1 -0
  36. package/dist/app/context.d.ts +5 -0
  37. package/dist/app/context.js +7 -0
  38. package/dist/app/context.js.map +1 -0
  39. package/dist/app/services/manual-decision-service.d.ts +20 -0
  40. package/dist/app/services/manual-decision-service.js +143 -0
  41. package/dist/app/services/manual-decision-service.js.map +1 -0
  42. package/dist/app/services/project-state-service.d.ts +52 -0
  43. package/dist/app/services/project-state-service.js +92 -0
  44. package/dist/app/services/project-state-service.js.map +1 -0
  45. package/dist/app/services/run-cycle-service.d.ts +25 -0
  46. package/dist/app/services/run-cycle-service.js +69 -0
  47. package/dist/app/services/run-cycle-service.js.map +1 -0
  48. package/dist/cli/commands/accept.d.ts +10 -0
  49. package/dist/cli/commands/accept.js +54 -0
  50. package/dist/cli/commands/accept.js.map +1 -0
  51. package/dist/cli/commands/demo.d.ts +9 -0
  52. package/dist/cli/commands/demo.js +108 -0
  53. package/dist/cli/commands/demo.js.map +1 -0
  54. package/dist/cli/commands/frontier.d.ts +8 -0
  55. package/dist/cli/commands/frontier.js +48 -0
  56. package/dist/cli/commands/frontier.js.map +1 -0
  57. package/dist/cli/commands/init.d.ts +10 -0
  58. package/dist/cli/commands/init.js +123 -0
  59. package/dist/cli/commands/init.js.map +1 -0
  60. package/dist/cli/commands/inspect.d.ts +8 -0
  61. package/dist/cli/commands/inspect.js +55 -0
  62. package/dist/cli/commands/inspect.js.map +1 -0
  63. package/dist/cli/commands/reject.d.ts +10 -0
  64. package/dist/cli/commands/reject.js +54 -0
  65. package/dist/cli/commands/reject.js.map +1 -0
  66. package/dist/cli/commands/run.d.ts +13 -0
  67. package/dist/cli/commands/run.js +71 -0
  68. package/dist/cli/commands/run.js.map +1 -0
  69. package/dist/cli/commands/serve-mcp.d.ts +7 -0
  70. package/dist/cli/commands/serve-mcp.js +32 -0
  71. package/dist/cli/commands/serve-mcp.js.map +1 -0
  72. package/dist/cli/commands/status.d.ts +8 -0
  73. package/dist/cli/commands/status.js +53 -0
  74. package/dist/cli/commands/status.js.map +1 -0
  75. package/dist/cli/commands/validate.d.ts +11 -0
  76. package/dist/cli/commands/validate.js +56 -0
  77. package/dist/cli/commands/validate.js.map +1 -0
  78. package/dist/cli/main.d.ts +2 -0
  79. package/dist/cli/main.js +38 -0
  80. package/dist/cli/main.js.map +1 -0
  81. package/dist/core/engine/anchor-checker.d.ts +35 -0
  82. package/dist/core/engine/anchor-checker.js +84 -0
  83. package/dist/core/engine/anchor-checker.js.map +1 -0
  84. package/dist/core/engine/audit-sampler.d.ts +16 -0
  85. package/dist/core/engine/audit-sampler.js +25 -0
  86. package/dist/core/engine/audit-sampler.js.map +1 -0
  87. package/dist/core/engine/change-budget.d.ts +11 -0
  88. package/dist/core/engine/change-budget.js +10 -0
  89. package/dist/core/engine/change-budget.js.map +1 -0
  90. package/dist/core/engine/cycle-runner.d.ts +39 -0
  91. package/dist/core/engine/cycle-runner.js +652 -0
  92. package/dist/core/engine/cycle-runner.js.map +1 -0
  93. package/dist/core/engine/experiment-runner.d.ts +13 -0
  94. package/dist/core/engine/experiment-runner.js +24 -0
  95. package/dist/core/engine/experiment-runner.js.map +1 -0
  96. package/dist/core/engine/history-compactor.d.ts +15 -0
  97. package/dist/core/engine/history-compactor.js +76 -0
  98. package/dist/core/engine/history-compactor.js.map +1 -0
  99. package/dist/core/engine/judge-pack.d.ts +44 -0
  100. package/dist/core/engine/judge-pack.js +111 -0
  101. package/dist/core/engine/judge-pack.js.map +1 -0
  102. package/dist/core/engine/parallel-proposer.d.ts +21 -0
  103. package/dist/core/engine/parallel-proposer.js +58 -0
  104. package/dist/core/engine/parallel-proposer.js.map +1 -0
  105. package/dist/core/engine/scope-checker.d.ts +35 -0
  106. package/dist/core/engine/scope-checker.js +166 -0
  107. package/dist/core/engine/scope-checker.js.map +1 -0
  108. package/dist/core/engine/workspace-manager.d.ts +32 -0
  109. package/dist/core/engine/workspace-manager.js +145 -0
  110. package/dist/core/engine/workspace-manager.js.map +1 -0
  111. package/dist/core/index.d.ts +1 -0
  112. package/dist/core/index.js +3 -0
  113. package/dist/core/index.js.map +1 -0
  114. package/dist/core/manifest/defaults.d.ts +55 -0
  115. package/dist/core/manifest/defaults.js +56 -0
  116. package/dist/core/manifest/defaults.js.map +1 -0
  117. package/dist/core/manifest/schema.d.ts +647 -0
  118. package/dist/core/manifest/schema.js +254 -0
  119. package/dist/core/manifest/schema.js.map +1 -0
  120. package/dist/core/model/decision-record.d.ts +38 -0
  121. package/dist/core/model/decision-record.js +29 -0
  122. package/dist/core/model/decision-record.js.map +1 -0
  123. package/dist/core/model/frontier-entry.d.ts +24 -0
  124. package/dist/core/model/frontier-entry.js +15 -0
  125. package/dist/core/model/frontier-entry.js.map +1 -0
  126. package/dist/core/model/metric.d.ts +13 -0
  127. package/dist/core/model/metric.js +10 -0
  128. package/dist/core/model/metric.js.map +1 -0
  129. package/dist/core/model/run-record.d.ts +110 -0
  130. package/dist/core/model/run-record.js +104 -0
  131. package/dist/core/model/run-record.js.map +1 -0
  132. package/dist/core/ports/decision-store.d.ts +6 -0
  133. package/dist/core/ports/decision-store.js +2 -0
  134. package/dist/core/ports/decision-store.js.map +1 -0
  135. package/dist/core/ports/frontier-store.d.ts +5 -0
  136. package/dist/core/ports/frontier-store.js +2 -0
  137. package/dist/core/ports/frontier-store.js.map +1 -0
  138. package/dist/core/ports/run-store.d.ts +6 -0
  139. package/dist/core/ports/run-store.js +2 -0
  140. package/dist/core/ports/run-store.js.map +1 -0
  141. package/dist/core/state/constraint-engine.d.ts +18 -0
  142. package/dist/core/state/constraint-engine.js +42 -0
  143. package/dist/core/state/constraint-engine.js.map +1 -0
  144. package/dist/core/state/frontier-engine.d.ts +24 -0
  145. package/dist/core/state/frontier-engine.js +178 -0
  146. package/dist/core/state/frontier-engine.js.map +1 -0
  147. package/dist/core/state/ratchet-engine.d.ts +28 -0
  148. package/dist/core/state/ratchet-engine.js +177 -0
  149. package/dist/core/state/ratchet-engine.js.map +1 -0
  150. package/dist/core/state/run-state-machine.d.ts +17 -0
  151. package/dist/core/state/run-state-machine.js +94 -0
  152. package/dist/core/state/run-state-machine.js.map +1 -0
  153. package/dist/mcp/main.d.ts +1 -0
  154. package/dist/mcp/main.js +8 -0
  155. package/dist/mcp/main.js.map +1 -0
  156. package/dist/mcp/server.d.ts +6 -0
  157. package/dist/mcp/server.js +97 -0
  158. package/dist/mcp/server.js.map +1 -0
  159. package/dist/shared/fs-errors.d.ts +1 -0
  160. package/dist/shared/fs-errors.js +4 -0
  161. package/dist/shared/fs-errors.js.map +1 -0
  162. package/dist/shared/logger.d.ts +2 -0
  163. package/dist/shared/logger.js +5 -0
  164. package/dist/shared/logger.js.map +1 -0
  165. package/dist/shared/template-utils.d.ts +9 -0
  166. package/dist/shared/template-utils.js +50 -0
  167. package/dist/shared/template-utils.js.map +1 -0
  168. package/package.json +44 -0
  169. package/templates/writing/docs/draft.md +1 -0
  170. package/templates/writing/prompts/judge.md +15 -0
  171. package/templates/writing/ralph.yaml +63 -0
  172. package/templates/writing/scripts/experiment.mjs +6 -0
  173. package/templates/writing/scripts/metric.mjs +24 -0
  174. package/templates/writing/scripts/propose.mjs +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-checker.js","sourceRoot":"","sources":["../../../src/core/engine/scope-checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface WorkspaceInfo {
2
+ candidateId: string;
3
+ repoRoot: string;
4
+ workspaceRoot: string;
5
+ workspacePath: string;
6
+ }
7
+ export interface PromoteWorkspaceResult {
8
+ candidateId: string;
9
+ workspacePath: string;
10
+ copiedPaths: string[];
11
+ deletedPaths: string[];
12
+ }
13
+ export interface PromoteWorkspaceOptions {
14
+ excludePaths?: string[];
15
+ }
16
+ export declare class GitWorktreeWorkspaceManager {
17
+ private readonly repoRoot;
18
+ private readonly ralphRoot;
19
+ private readonly workspaceRoot;
20
+ constructor(repoRoot: string, ralphRoot?: string);
21
+ createWorkspace(candidateId: string): Promise<WorkspaceInfo>;
22
+ promoteWorkspace(candidateId: string, options?: PromoteWorkspaceOptions): Promise<PromoteWorkspaceResult>;
23
+ cleanupWorkspace(candidateId: string): Promise<void>;
24
+ findAbandonedWorkspaces(): Promise<string[]>;
25
+ getWorkspacePath(candidateId: string): string;
26
+ private buildWorkspaceInfo;
27
+ private ensureGitRepo;
28
+ private listWorktrees;
29
+ private findRegisteredWorktree;
30
+ private readCommandLines;
31
+ private canonicalizePath;
32
+ }
@@ -0,0 +1,145 @@
1
+ import { copyFile, mkdir, readdir, realpath, rm } from "node:fs/promises";
2
+ import { dirname, join, relative, resolve } from "node:path";
3
+ import { execa } from "execa";
4
+ import { isMissingFileError } from "../../shared/fs-errors.js";
5
+ export class GitWorktreeWorkspaceManager {
6
+ repoRoot;
7
+ ralphRoot;
8
+ workspaceRoot;
9
+ constructor(repoRoot, ralphRoot = join(repoRoot, ".ralph")) {
10
+ this.repoRoot = resolve(repoRoot);
11
+ this.ralphRoot = resolve(ralphRoot);
12
+ this.workspaceRoot = join(this.ralphRoot, "workspaces");
13
+ }
14
+ async createWorkspace(candidateId) {
15
+ await this.ensureGitRepo();
16
+ const workspacePath = this.getWorkspacePath(candidateId);
17
+ const existingWorktree = await this.findRegisteredWorktree(workspacePath);
18
+ if (existingWorktree) {
19
+ return this.buildWorkspaceInfo(candidateId, workspacePath);
20
+ }
21
+ await mkdir(this.workspaceRoot, { recursive: true });
22
+ await execa("git", ["-C", this.repoRoot, "worktree", "add", "--detach", workspacePath, "HEAD"]);
23
+ return this.buildWorkspaceInfo(candidateId, workspacePath);
24
+ }
25
+ async promoteWorkspace(candidateId, options = {}) {
26
+ await this.ensureGitRepo();
27
+ const workspacePath = this.getWorkspacePath(candidateId);
28
+ const excludedPaths = new Set((options.excludePaths ?? []).map(normalizeRelativePath));
29
+ const modifiedPaths = (await this.readCommandLines(workspacePath, ["diff", "--name-only", "HEAD"])).filter((path) => !excludedPaths.has(normalizeRelativePath(path)));
30
+ const deletedPaths = (await this.readCommandLines(workspacePath, ["diff", "--name-only", "--diff-filter=D", "HEAD"])).filter((path) => !excludedPaths.has(normalizeRelativePath(path)));
31
+ const untrackedPaths = (await this.readCommandLines(workspacePath, ["ls-files", "--others", "--exclude-standard"])).filter((path) => !excludedPaths.has(normalizeRelativePath(path)));
32
+ const copied = new Set();
33
+ for (const relativePath of [...modifiedPaths, ...untrackedPaths]) {
34
+ if (!relativePath || deletedPaths.includes(relativePath)) {
35
+ continue;
36
+ }
37
+ const sourcePath = join(workspacePath, relativePath);
38
+ const targetPath = join(this.repoRoot, relativePath);
39
+ await mkdir(dirname(targetPath), { recursive: true });
40
+ await copyFile(sourcePath, targetPath);
41
+ copied.add(relativePath);
42
+ }
43
+ for (const relativePath of deletedPaths) {
44
+ if (!relativePath) {
45
+ continue;
46
+ }
47
+ await rm(join(this.repoRoot, relativePath), { force: true });
48
+ }
49
+ return {
50
+ candidateId,
51
+ workspacePath,
52
+ copiedPaths: [...copied].sort(),
53
+ deletedPaths: deletedPaths.sort(),
54
+ };
55
+ }
56
+ async cleanupWorkspace(candidateId) {
57
+ await this.ensureGitRepo();
58
+ const workspacePath = this.getWorkspacePath(candidateId);
59
+ const registeredWorktree = await this.findRegisteredWorktree(workspacePath);
60
+ if (registeredWorktree) {
61
+ await execa("git", ["-C", this.repoRoot, "worktree", "remove", "--force", workspacePath]);
62
+ }
63
+ await rm(workspacePath, { recursive: true, force: true });
64
+ }
65
+ async findAbandonedWorkspaces() {
66
+ await this.ensureGitRepo();
67
+ const registeredPaths = new Set(await Promise.all((await this.listWorktrees()).map((worktree) => this.canonicalizePath(worktree.path))));
68
+ try {
69
+ const entries = await readdir(this.workspaceRoot, { withFileTypes: true });
70
+ const candidates = await Promise.all(entries
71
+ .filter((entry) => entry.isDirectory())
72
+ .map(async (entry) => {
73
+ const path = resolve(join(this.workspaceRoot, entry.name));
74
+ return {
75
+ path,
76
+ canonicalPath: await this.canonicalizePath(path),
77
+ };
78
+ }));
79
+ return candidates
80
+ .filter((candidate) => !registeredPaths.has(candidate.canonicalPath))
81
+ .map((candidate) => candidate.path)
82
+ .sort();
83
+ }
84
+ catch (error) {
85
+ if (isMissingFileError(error)) {
86
+ return [];
87
+ }
88
+ throw error;
89
+ }
90
+ }
91
+ getWorkspacePath(candidateId) {
92
+ return join(this.workspaceRoot, candidateId);
93
+ }
94
+ buildWorkspaceInfo(candidateId, workspacePath) {
95
+ return {
96
+ candidateId,
97
+ repoRoot: this.repoRoot,
98
+ workspaceRoot: this.workspaceRoot,
99
+ workspacePath,
100
+ };
101
+ }
102
+ async ensureGitRepo() {
103
+ await execa("git", ["-C", this.repoRoot, "rev-parse", "--is-inside-work-tree"]);
104
+ }
105
+ async listWorktrees() {
106
+ const { stdout } = await execa("git", ["-C", this.repoRoot, "worktree", "list", "--porcelain"]);
107
+ return stdout
108
+ .split("\n")
109
+ .filter((line) => line.startsWith("worktree "))
110
+ .map((line) => ({ path: resolve(line.slice("worktree ".length).trim()) }));
111
+ }
112
+ async findRegisteredWorktree(workspacePath) {
113
+ const resolvedPath = await this.canonicalizePath(workspacePath);
114
+ const worktrees = await this.listWorktrees();
115
+ for (const worktree of worktrees) {
116
+ if ((await this.canonicalizePath(worktree.path)) === resolvedPath) {
117
+ return worktree;
118
+ }
119
+ }
120
+ return null;
121
+ }
122
+ async readCommandLines(cwd, gitArgs) {
123
+ const { stdout } = await execa("git", ["-C", cwd, ...gitArgs]);
124
+ return stdout
125
+ .split("\n")
126
+ .map((line) => line.trim())
127
+ .filter(Boolean)
128
+ .map((line) => relative(resolve(cwd), resolve(join(cwd, line))));
129
+ }
130
+ async canonicalizePath(path) {
131
+ try {
132
+ return await realpath(path);
133
+ }
134
+ catch (error) {
135
+ if (isMissingFileError(error)) {
136
+ return resolve(path);
137
+ }
138
+ throw error;
139
+ }
140
+ }
141
+ }
142
+ function normalizeRelativePath(path) {
143
+ return path.replaceAll("\\", "/");
144
+ }
145
+ //# sourceMappingURL=workspace-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-manager.js","sourceRoot":"","sources":["../../../src/core/engine/workspace-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export {};
2
+ // Core module — schema, state engines, and ports will be added here.
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,qEAAqE"}
@@ -0,0 +1,55 @@
1
+ export declare const DEFAULT_MANIFEST_FILENAME = "ralph.yaml";
2
+ export declare const DEFAULT_SCHEMA_VERSION: "0.1";
3
+ export declare const DEFAULT_STORAGE_ROOT = ".ralph";
4
+ export declare const DEFAULT_PROJECT_BASELINE_REF = "main";
5
+ export declare const DEFAULT_PROJECT_WORKSPACE: "git";
6
+ export declare const DEFAULT_COMMAND_TIMEOUT_SEC = 600;
7
+ export declare const DEFAULT_ALLOWED_GLOBS: string[];
8
+ export declare const DEFAULT_MAX_FILES_CHANGED = 5;
9
+ export declare const DEFAULT_MAX_LINE_DELTA = 200;
10
+ export declare const DEFAULT_JUDGE_REPEATS = 3;
11
+ export declare const DEFAULT_LOW_CONFIDENCE_THRESHOLD = 0.75;
12
+ export declare const DEFAULT_ANCHOR_MIN_AGREEMENT = 0.8;
13
+ export declare const DEFAULT_AUDIT_SAMPLE_RATE = 0.1;
14
+ export declare const DEFAULT_PROPOSER_EXPLORATION_RATIO = 0.3;
15
+ export declare const DEFAULT_STAGNATION_AFTER_REJECTIONS = 3;
16
+ export declare const DEFAULT_MAX_PATCH_COUNT = 1;
17
+ export declare const DEFAULT_PROPOSER_HISTORY_MAX_RUNS = 5;
18
+ export declare const manifestDefaults: {
19
+ readonly schemaVersion: "0.1";
20
+ readonly project: {
21
+ readonly baselineRef: "main";
22
+ readonly workspace: "git";
23
+ };
24
+ readonly scope: {
25
+ readonly allowedGlobs: string[];
26
+ readonly maxFilesChanged: 5;
27
+ readonly maxLineDelta: 200;
28
+ };
29
+ readonly command: {
30
+ readonly timeoutSec: 600;
31
+ };
32
+ readonly judgePack: {
33
+ readonly repeats: 3;
34
+ readonly lowConfidenceThreshold: 0.75;
35
+ readonly anchors: {
36
+ readonly minAgreementWithHuman: 0.8;
37
+ };
38
+ readonly audit: {
39
+ readonly sampleRate: 0.1;
40
+ readonly freezeAutoAcceptIfAnchorFails: true;
41
+ };
42
+ };
43
+ readonly proposer: {
44
+ readonly explorationRatio: 0.3;
45
+ readonly stagnationAfterRejections: 3;
46
+ readonly maxPatchCount: 1;
47
+ readonly history: {
48
+ readonly enabled: false;
49
+ readonly maxRuns: 5;
50
+ };
51
+ };
52
+ readonly storage: {
53
+ readonly root: ".ralph";
54
+ };
55
+ };
@@ -0,0 +1,56 @@
1
+ export const DEFAULT_MANIFEST_FILENAME = "ralph.yaml";
2
+ export const DEFAULT_SCHEMA_VERSION = "0.1";
3
+ export const DEFAULT_STORAGE_ROOT = ".ralph";
4
+ export const DEFAULT_PROJECT_BASELINE_REF = "main";
5
+ export const DEFAULT_PROJECT_WORKSPACE = "git";
6
+ export const DEFAULT_COMMAND_TIMEOUT_SEC = 600;
7
+ export const DEFAULT_ALLOWED_GLOBS = ["**/*.md", "**/*.txt", "**/*.py", "**/*.ts", "**/*.tsx"];
8
+ export const DEFAULT_MAX_FILES_CHANGED = 5;
9
+ export const DEFAULT_MAX_LINE_DELTA = 200;
10
+ export const DEFAULT_JUDGE_REPEATS = 3;
11
+ export const DEFAULT_LOW_CONFIDENCE_THRESHOLD = 0.75;
12
+ export const DEFAULT_ANCHOR_MIN_AGREEMENT = 0.8;
13
+ export const DEFAULT_AUDIT_SAMPLE_RATE = 0.1;
14
+ export const DEFAULT_PROPOSER_EXPLORATION_RATIO = 0.3;
15
+ export const DEFAULT_STAGNATION_AFTER_REJECTIONS = 3;
16
+ export const DEFAULT_MAX_PATCH_COUNT = 1;
17
+ export const DEFAULT_PROPOSER_HISTORY_MAX_RUNS = 5;
18
+ export const manifestDefaults = {
19
+ schemaVersion: DEFAULT_SCHEMA_VERSION,
20
+ project: {
21
+ baselineRef: DEFAULT_PROJECT_BASELINE_REF,
22
+ workspace: DEFAULT_PROJECT_WORKSPACE,
23
+ },
24
+ scope: {
25
+ allowedGlobs: DEFAULT_ALLOWED_GLOBS,
26
+ maxFilesChanged: DEFAULT_MAX_FILES_CHANGED,
27
+ maxLineDelta: DEFAULT_MAX_LINE_DELTA,
28
+ },
29
+ command: {
30
+ timeoutSec: DEFAULT_COMMAND_TIMEOUT_SEC,
31
+ },
32
+ judgePack: {
33
+ repeats: DEFAULT_JUDGE_REPEATS,
34
+ lowConfidenceThreshold: DEFAULT_LOW_CONFIDENCE_THRESHOLD,
35
+ anchors: {
36
+ minAgreementWithHuman: DEFAULT_ANCHOR_MIN_AGREEMENT,
37
+ },
38
+ audit: {
39
+ sampleRate: DEFAULT_AUDIT_SAMPLE_RATE,
40
+ freezeAutoAcceptIfAnchorFails: true,
41
+ },
42
+ },
43
+ proposer: {
44
+ explorationRatio: DEFAULT_PROPOSER_EXPLORATION_RATIO,
45
+ stagnationAfterRejections: DEFAULT_STAGNATION_AFTER_REJECTIONS,
46
+ maxPatchCount: DEFAULT_MAX_PATCH_COUNT,
47
+ history: {
48
+ enabled: false,
49
+ maxRuns: DEFAULT_PROPOSER_HISTORY_MAX_RUNS,
50
+ },
51
+ },
52
+ storage: {
53
+ root: DEFAULT_STORAGE_ROOT,
54
+ },
55
+ };
56
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/core/manifest/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAc,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAc,CAAC;AACxD,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAC/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC/F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,kCAAkC,GAAG,GAAG,CAAC;AACtD,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa,EAAE,sBAAsB;IACrC,OAAO,EAAE;QACP,WAAW,EAAE,4BAA4B;QACzC,SAAS,EAAE,yBAAyB;KACrC;IACD,KAAK,EAAE;QACL,YAAY,EAAE,qBAAqB;QACnC,eAAe,EAAE,yBAAyB;QAC1C,YAAY,EAAE,sBAAsB;KACrC;IACD,OAAO,EAAE;QACP,UAAU,EAAE,2BAA2B;KACxC;IACD,SAAS,EAAE;QACT,OAAO,EAAE,qBAAqB;QAC9B,sBAAsB,EAAE,gCAAgC;QACxD,OAAO,EAAE;YACP,qBAAqB,EAAE,4BAA4B;SACpD;QACD,KAAK,EAAE;YACL,UAAU,EAAE,yBAAyB;YACrC,6BAA6B,EAAE,IAAI;SACpC;KACF;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE,kCAAkC;QACpD,yBAAyB,EAAE,mCAAmC;QAC9D,aAAa,EAAE,uBAAuB;QACtC,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,iCAAiC;SAC3C;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,oBAAoB;KAC3B;CACO,CAAC"}