opencode-autoresearch 3.6.0 → 3.8.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.
- package/.opencode-plugin/plugin.json +1 -1
- package/CHANGELOG.md +166 -0
- package/INSTALL.md +2 -2
- package/README.md +83 -39
- package/VERSION +1 -1
- package/dist/badge.d.ts +9 -0
- package/dist/badge.d.ts.map +1 -0
- package/dist/badge.js +86 -0
- package/dist/badge.js.map +1 -0
- package/dist/cli.js +578 -26
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +7 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +7 -1
- package/dist/constants.js.map +1 -1
- package/dist/goal-init.d.ts +30 -0
- package/dist/goal-init.d.ts.map +1 -0
- package/dist/goal-init.js +109 -0
- package/dist/goal-init.js.map +1 -0
- package/dist/helpers.d.ts +13 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +152 -9
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/memory-manager.d.ts +24 -0
- package/dist/memory-manager.d.ts.map +1 -0
- package/dist/memory-manager.js +336 -0
- package/dist/memory-manager.js.map +1 -0
- package/dist/run-manager.d.ts +27 -2
- package/dist/run-manager.d.ts.map +1 -1
- package/dist/run-manager.js +210 -15
- package/dist/run-manager.js.map +1 -1
- package/dist/score-parser.d.ts +56 -0
- package/dist/score-parser.d.ts.map +1 -0
- package/dist/score-parser.js +109 -0
- package/dist/score-parser.js.map +1 -0
- package/dist/subagent-pool.d.ts +11 -0
- package/dist/subagent-pool.d.ts.map +1 -1
- package/dist/subagent-pool.js +95 -0
- package/dist/subagent-pool.js.map +1 -1
- package/dist/task-schema.d.ts +62 -0
- package/dist/task-schema.d.ts.map +1 -0
- package/dist/task-schema.js +95 -0
- package/dist/task-schema.js.map +1 -0
- package/dist/translators/cli.d.ts +5 -0
- package/dist/translators/cli.d.ts.map +1 -0
- package/dist/translators/cli.js +85 -0
- package/dist/translators/cli.js.map +1 -0
- package/dist/translators/hermes.d.ts +28 -0
- package/dist/translators/hermes.d.ts.map +1 -0
- package/dist/translators/hermes.js +102 -0
- package/dist/translators/hermes.js.map +1 -0
- package/dist/types.d.ts +113 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/verifier-parser.d.ts +19 -0
- package/dist/verifier-parser.d.ts.map +1 -0
- package/dist/verifier-parser.js +161 -0
- package/dist/verifier-parser.js.map +1 -0
- package/docs/ARCHITECTURE.md +3 -0
- package/docs/RELEASE.md +15 -36
- package/docs/index.html +5 -0
- package/hooks/verify-package.sh +5 -1
- package/package.json +6 -6
package/dist/types.d.ts
CHANGED
|
@@ -12,9 +12,12 @@ export interface RunConfig {
|
|
|
12
12
|
direction: string;
|
|
13
13
|
verify: string;
|
|
14
14
|
mode: string;
|
|
15
|
+
operating_mode?: string;
|
|
15
16
|
scope?: string;
|
|
16
17
|
guard?: string;
|
|
18
|
+
scorer?: string;
|
|
17
19
|
iterations?: number;
|
|
20
|
+
max_no_progress?: number;
|
|
18
21
|
duration?: string;
|
|
19
22
|
memory_path?: string;
|
|
20
23
|
required_keep_labels?: string[];
|
|
@@ -22,6 +25,12 @@ export interface RunConfig {
|
|
|
22
25
|
run_tag?: string;
|
|
23
26
|
stop_condition?: string;
|
|
24
27
|
baseline?: string;
|
|
28
|
+
num_drafts?: number;
|
|
29
|
+
branch_selection_policy?: "best" | "roulette" | "diverse";
|
|
30
|
+
outcome_metric?: string;
|
|
31
|
+
outcome_direction?: string;
|
|
32
|
+
instrument_metric?: string;
|
|
33
|
+
instrument_direction?: string;
|
|
25
34
|
}
|
|
26
35
|
export type WizardConfig = Partial<Omit<RunConfig, 'baseline'>> & {
|
|
27
36
|
rollback_strategy?: string;
|
|
@@ -50,7 +59,9 @@ export interface RunFlags {
|
|
|
50
59
|
export interface LastIteration {
|
|
51
60
|
iteration: number;
|
|
52
61
|
decision: string;
|
|
62
|
+
scorer_status?: string;
|
|
53
63
|
metric_value?: string;
|
|
64
|
+
instrument_value?: string;
|
|
54
65
|
change_summary: string;
|
|
55
66
|
labels: string[];
|
|
56
67
|
timestamp: string;
|
|
@@ -58,6 +69,20 @@ export interface LastIteration {
|
|
|
58
69
|
stop_labels_satisfied: boolean;
|
|
59
70
|
missing_keep_labels: string[];
|
|
60
71
|
missing_stop_labels: string[];
|
|
72
|
+
id?: string;
|
|
73
|
+
parent_id?: string;
|
|
74
|
+
branch?: string;
|
|
75
|
+
stage?: string;
|
|
76
|
+
agent?: string;
|
|
77
|
+
score_components?: Record<string, number>;
|
|
78
|
+
}
|
|
79
|
+
export type OperatingMode = "converge" | "continuous" | "supervised";
|
|
80
|
+
export interface ExperimentLineage {
|
|
81
|
+
id: string;
|
|
82
|
+
parent_id: string | null;
|
|
83
|
+
branch: string;
|
|
84
|
+
stage: string;
|
|
85
|
+
agent: string;
|
|
61
86
|
}
|
|
62
87
|
export interface RunState {
|
|
63
88
|
schema_version: number;
|
|
@@ -66,11 +91,15 @@ export interface RunState {
|
|
|
66
91
|
updated_at: string;
|
|
67
92
|
status: string;
|
|
68
93
|
mode: string;
|
|
94
|
+
operating_mode: OperatingMode;
|
|
69
95
|
goal: string;
|
|
70
96
|
scope: string;
|
|
71
97
|
metric: Metric;
|
|
98
|
+
instrument_metric?: Metric;
|
|
72
99
|
verify: string;
|
|
73
100
|
guard?: string;
|
|
101
|
+
scorer?: string;
|
|
102
|
+
max_no_progress?: number;
|
|
74
103
|
iterations_cap?: number;
|
|
75
104
|
duration?: string;
|
|
76
105
|
duration_seconds?: number;
|
|
@@ -84,6 +113,8 @@ export interface RunState {
|
|
|
84
113
|
stats: RunStats;
|
|
85
114
|
flags: RunFlags;
|
|
86
115
|
last_iteration?: LastIteration;
|
|
116
|
+
draft_pool?: DraftPoolConfig;
|
|
117
|
+
lineage?: ExperimentLineage;
|
|
87
118
|
}
|
|
88
119
|
export interface SupervisorSnapshot {
|
|
89
120
|
decision: string;
|
|
@@ -91,8 +122,10 @@ export interface SupervisorSnapshot {
|
|
|
91
122
|
run_id: string;
|
|
92
123
|
status: string;
|
|
93
124
|
mode: string;
|
|
125
|
+
operating_mode: OperatingMode;
|
|
94
126
|
goal: string;
|
|
95
127
|
metric: Metric;
|
|
128
|
+
instrument_metric?: Metric;
|
|
96
129
|
stats: RunStats;
|
|
97
130
|
last_iteration?: LastIteration;
|
|
98
131
|
results_rows: number;
|
|
@@ -102,5 +135,85 @@ export interface SupervisorSnapshot {
|
|
|
102
135
|
subagent_pool?: Record<string, unknown>;
|
|
103
136
|
continuation_policy?: Record<string, unknown>;
|
|
104
137
|
subagent_guidance?: Record<string, unknown>;
|
|
138
|
+
draft_pool?: DraftPoolConfig;
|
|
139
|
+
}
|
|
140
|
+
export type BranchSelectionPolicy = "best" | "roulette" | "diverse";
|
|
141
|
+
export interface BranchSelectionPolicyInfo {
|
|
142
|
+
id: BranchSelectionPolicy;
|
|
143
|
+
label: string;
|
|
144
|
+
description: string;
|
|
145
|
+
recommended_for: string[];
|
|
146
|
+
}
|
|
147
|
+
export interface DraftBranch {
|
|
148
|
+
branch_id: string;
|
|
149
|
+
iteration: number;
|
|
150
|
+
parent_iteration: number;
|
|
151
|
+
metric_value?: string;
|
|
152
|
+
status: "pending" | "running" | "completed" | "discarded";
|
|
153
|
+
policy_override?: BranchSelectionPolicy;
|
|
154
|
+
}
|
|
155
|
+
export interface MemoryProvenance {
|
|
156
|
+
run_id: string;
|
|
157
|
+
iteration: number;
|
|
158
|
+
goal: string;
|
|
159
|
+
metric_name: string;
|
|
160
|
+
metric_value: string;
|
|
161
|
+
direction: string;
|
|
162
|
+
timestamp: string;
|
|
163
|
+
labels: string[];
|
|
164
|
+
}
|
|
165
|
+
export interface MemoryItem {
|
|
166
|
+
id: string;
|
|
167
|
+
pattern: string;
|
|
168
|
+
description: string;
|
|
169
|
+
provenance: MemoryProvenance;
|
|
170
|
+
verification_count: number;
|
|
171
|
+
first_observed: string;
|
|
172
|
+
consolidated_at: string;
|
|
173
|
+
status: "active" | "expired";
|
|
174
|
+
expired_at?: string;
|
|
175
|
+
}
|
|
176
|
+
export interface PendingMemoryItem {
|
|
177
|
+
id: string;
|
|
178
|
+
pattern: string;
|
|
179
|
+
description: string;
|
|
180
|
+
provenance: MemoryProvenance;
|
|
181
|
+
verification_count: number;
|
|
182
|
+
first_observed: string;
|
|
183
|
+
last_verified: string;
|
|
184
|
+
}
|
|
185
|
+
export interface MemoryConsolidationState {
|
|
186
|
+
pending_items: PendingMemoryItem[];
|
|
187
|
+
consolidated_items: MemoryItem[];
|
|
188
|
+
consolidation_threshold: number;
|
|
189
|
+
last_consolidated?: string;
|
|
190
|
+
}
|
|
191
|
+
export interface MemoryAuditLogEntry {
|
|
192
|
+
timestamp: string;
|
|
193
|
+
action: "added" | "expired" | "promoted";
|
|
194
|
+
item_id: string;
|
|
195
|
+
pattern: string;
|
|
196
|
+
provenance: MemoryProvenance;
|
|
197
|
+
verification_count: number;
|
|
198
|
+
reason?: string;
|
|
199
|
+
}
|
|
200
|
+
export interface DraftPoolConfig {
|
|
201
|
+
kind: "autoresearch_draft_pool";
|
|
202
|
+
version: number;
|
|
203
|
+
num_drafts: number;
|
|
204
|
+
branch_selection_policy: BranchSelectionPolicy;
|
|
205
|
+
active_drafts: DraftBranch[];
|
|
206
|
+
best_branch_id?: string;
|
|
207
|
+
available_policies: BranchSelectionPolicyInfo[];
|
|
208
|
+
}
|
|
209
|
+
export interface GoalDoc {
|
|
210
|
+
goal: string;
|
|
211
|
+
metric: string;
|
|
212
|
+
direction: string;
|
|
213
|
+
verify: string;
|
|
214
|
+
guard?: string;
|
|
215
|
+
constraints?: string;
|
|
216
|
+
file_map?: string;
|
|
217
|
+
stop_conditions?: string;
|
|
105
218
|
}
|
|
106
219
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type VerifierDecision = "keep" | "discard" | "needs_human";
|
|
2
|
+
export interface VerifierOutput {
|
|
3
|
+
is_bug: boolean;
|
|
4
|
+
summary: string;
|
|
5
|
+
metric: string;
|
|
6
|
+
confidence: number;
|
|
7
|
+
evidence: string[];
|
|
8
|
+
decision?: VerifierDecision;
|
|
9
|
+
reason?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ValidationResult {
|
|
12
|
+
valid: boolean;
|
|
13
|
+
output?: VerifierOutput;
|
|
14
|
+
blocker_reason?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function parseVerifierOutput(output: string): ValidationResult;
|
|
17
|
+
export declare function determineDecision(output: VerifierOutput): VerifierDecision;
|
|
18
|
+
export declare function isSafeToApply(result: ValidationResult): boolean;
|
|
19
|
+
//# sourceMappingURL=verifier-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifier-parser.d.ts","sourceRoot":"","sources":["../src/verifier-parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAoKpE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAU1E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE/D"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
const VALID_CONFIDENCE_VALUES = [0, 0.25, 0.5, 0.75, 1.0];
|
|
2
|
+
export function parseVerifierOutput(output) {
|
|
3
|
+
if (typeof output !== "string") {
|
|
4
|
+
return {
|
|
5
|
+
valid: false,
|
|
6
|
+
blocker_reason: "Verifier output must be a non-empty string",
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
const trimmedOutput = output.trim();
|
|
10
|
+
if (!trimmedOutput) {
|
|
11
|
+
return {
|
|
12
|
+
valid: false,
|
|
13
|
+
blocker_reason: "Verifier output must be a non-empty string",
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
let parsed;
|
|
17
|
+
try {
|
|
18
|
+
parsed = JSON.parse(trimmedOutput);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
22
|
+
return {
|
|
23
|
+
valid: false,
|
|
24
|
+
blocker_reason: `Invalid JSON in verifier output: ${message}`,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
28
|
+
return {
|
|
29
|
+
valid: false,
|
|
30
|
+
blocker_reason: "Verifier output must be a JSON object",
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const obj = parsed;
|
|
34
|
+
if (!("is_bug" in obj)) {
|
|
35
|
+
return {
|
|
36
|
+
valid: false,
|
|
37
|
+
blocker_reason: "Verifier output missing required field: is_bug",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (typeof obj.is_bug !== "boolean") {
|
|
41
|
+
return {
|
|
42
|
+
valid: false,
|
|
43
|
+
blocker_reason: "Verifier output field 'is_bug' must be a boolean",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (!("summary" in obj)) {
|
|
47
|
+
return {
|
|
48
|
+
valid: false,
|
|
49
|
+
blocker_reason: "Verifier output missing required field: summary",
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (typeof obj.summary !== "string") {
|
|
53
|
+
return {
|
|
54
|
+
valid: false,
|
|
55
|
+
blocker_reason: "Verifier output field 'summary' must be a string",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (!("metric" in obj)) {
|
|
59
|
+
return {
|
|
60
|
+
valid: false,
|
|
61
|
+
blocker_reason: "Verifier output missing required field: metric",
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (typeof obj.metric !== "string") {
|
|
65
|
+
return {
|
|
66
|
+
valid: false,
|
|
67
|
+
blocker_reason: "Verifier output field 'metric' must be a string",
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (!("confidence" in obj)) {
|
|
71
|
+
return {
|
|
72
|
+
valid: false,
|
|
73
|
+
blocker_reason: "Verifier output missing required field: confidence",
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
if (typeof obj.confidence !== "number" || !isFinite(obj.confidence)) {
|
|
77
|
+
return {
|
|
78
|
+
valid: false,
|
|
79
|
+
blocker_reason: "Verifier output field 'confidence' must be a finite number",
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (!VALID_CONFIDENCE_VALUES.includes(obj.confidence)) {
|
|
83
|
+
return {
|
|
84
|
+
valid: false,
|
|
85
|
+
blocker_reason: `Verifier output field 'confidence' must be one of: ${VALID_CONFIDENCE_VALUES.join(", ")}`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (!("evidence" in obj)) {
|
|
89
|
+
return {
|
|
90
|
+
valid: false,
|
|
91
|
+
blocker_reason: "Verifier output missing required field: evidence",
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (!Array.isArray(obj.evidence)) {
|
|
95
|
+
return {
|
|
96
|
+
valid: false,
|
|
97
|
+
blocker_reason: "Verifier output field 'evidence' must be an array",
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const evidence = obj.evidence;
|
|
101
|
+
for (let i = 0; i < evidence.length; i++) {
|
|
102
|
+
if (typeof evidence[i] !== "string") {
|
|
103
|
+
return {
|
|
104
|
+
valid: false,
|
|
105
|
+
blocker_reason: `Verifier output field 'evidence[${i}]' must be a string`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
let decision;
|
|
110
|
+
if ("decision" in obj && obj.decision !== undefined) {
|
|
111
|
+
if (typeof obj.decision !== "string") {
|
|
112
|
+
return {
|
|
113
|
+
valid: false,
|
|
114
|
+
blocker_reason: "Verifier output field 'decision' must be a string",
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const normalizedDecision = obj.decision.toLowerCase().trim();
|
|
118
|
+
if (!["keep", "discard", "needs_human"].includes(normalizedDecision)) {
|
|
119
|
+
return {
|
|
120
|
+
valid: false,
|
|
121
|
+
blocker_reason: "Verifier output field 'decision' must be one of: keep, discard, needs_human",
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
decision = normalizedDecision;
|
|
125
|
+
}
|
|
126
|
+
let reason;
|
|
127
|
+
if ("reason" in obj && obj.reason !== undefined) {
|
|
128
|
+
if (typeof obj.reason !== "string") {
|
|
129
|
+
return {
|
|
130
|
+
valid: false,
|
|
131
|
+
blocker_reason: "Verifier output field 'reason' must be a string",
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
reason = obj.reason;
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
valid: true,
|
|
138
|
+
output: {
|
|
139
|
+
is_bug: obj.is_bug,
|
|
140
|
+
summary: obj.summary,
|
|
141
|
+
metric: obj.metric,
|
|
142
|
+
confidence: obj.confidence,
|
|
143
|
+
evidence: obj.evidence,
|
|
144
|
+
decision,
|
|
145
|
+
reason,
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
export function determineDecision(output) {
|
|
150
|
+
if (output.decision) {
|
|
151
|
+
return output.decision;
|
|
152
|
+
}
|
|
153
|
+
if (output.is_bug) {
|
|
154
|
+
return "discard";
|
|
155
|
+
}
|
|
156
|
+
return "keep";
|
|
157
|
+
}
|
|
158
|
+
export function isSafeToApply(result) {
|
|
159
|
+
return result.valid && result.output !== undefined;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=verifier-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifier-parser.js","sourceRoot":"","sources":["../src/verifier-parser.ts"],"names":[],"mappings":"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"}
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -109,6 +109,7 @@ flowchart TD
|
|
|
109
109
|
| Artifact | Purpose |
|
|
110
110
|
| --- | --- |
|
|
111
111
|
| `.autoresearch/state.json` | Current run checkpoint |
|
|
112
|
+
| `.autoresearch/goal.md` | First-class goal document (goal, metric, verify, guard, constraints, file\_map, stop\_conditions) |
|
|
112
113
|
| `autoresearch-results.tsv` | Iteration log |
|
|
113
114
|
| `.autoresearch/launch.json` | Background launch request |
|
|
114
115
|
| `autoresearch-report.md` | End-of-run report |
|
|
@@ -151,8 +152,10 @@ flowchart TD
|
|
|
151
152
|
| Command | Purpose |
|
|
152
153
|
| --- | --- |
|
|
153
154
|
| `autoresearch init` | Initialize a run |
|
|
155
|
+
| `autoresearch goal init` | Create a `GOAL.md` goal definition file |
|
|
154
156
|
| `autoresearch wizard` | Generate setup summary |
|
|
155
157
|
| `autoresearch status` | Print run status |
|
|
158
|
+
| `autoresearch goal` | Show the goal document |
|
|
156
159
|
| `autoresearch launch` | Launch background run |
|
|
157
160
|
| `autoresearch stop` | Request stop |
|
|
158
161
|
| `autoresearch resume` | Resume background run |
|
package/docs/RELEASE.md
CHANGED
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
# Release Process
|
|
2
2
|
|
|
3
|
-
This package uses
|
|
3
|
+
This package uses semantic-release to publish GitHub Releases and npm packages. Pull requests validate release readiness; merges to `main` publish automatically.
|
|
4
4
|
|
|
5
5
|
## Version Alignment
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Semantic-release publishes from the checked-out merge commit but does not push release commits back to protected `main`. Keep version surfaces aligned in release-prep PRs when pinned install docs or runtime version constants need to change.
|
|
8
8
|
|
|
9
9
|
## Release Steps
|
|
10
10
|
|
|
11
|
-
### 1.
|
|
11
|
+
### 1. Prepare a conventional commit
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
# Update VERSION file
|
|
15
|
-
echo "3.3.3" > VERSION
|
|
16
|
-
|
|
17
|
-
# Sync to package.json
|
|
18
|
-
npm version 3.3.3 --no-git-tag-version
|
|
19
|
-
|
|
20
|
-
# Sync to src/constants.ts
|
|
21
|
-
# Update the VERSION export manually or use sed
|
|
22
|
-
```
|
|
13
|
+
Use a semantic-release compatible commit message such as `fix: restore release build` or `feat: add workflow mode`. Do not manually tag releases for the normal path.
|
|
23
14
|
|
|
24
15
|
### 2. Build and verify
|
|
25
16
|
|
|
@@ -31,40 +22,28 @@ npm run verify:pack
|
|
|
31
22
|
npm test
|
|
32
23
|
```
|
|
33
24
|
|
|
34
|
-
### 3.
|
|
35
|
-
|
|
36
|
-
Add a new section for the version in `CHANGELOG.md`:
|
|
37
|
-
|
|
38
|
-
```markdown
|
|
39
|
-
## [3.3.3] - YYYY-MM-DD
|
|
40
|
-
|
|
41
|
-
### Added
|
|
42
|
-
- Root install handoff
|
|
43
|
-
- Public install verification notes
|
|
44
|
-
|
|
45
|
-
### Changed
|
|
46
|
-
- Installation docs
|
|
47
|
-
- Package verification allowlist
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 4. Commit and tag
|
|
25
|
+
### 3. Open and merge a pull request
|
|
51
26
|
|
|
52
27
|
```bash
|
|
53
28
|
git add -A
|
|
54
|
-
git commit -m "
|
|
55
|
-
git
|
|
56
|
-
|
|
29
|
+
git commit -m "fix: restore release build"
|
|
30
|
+
git push -u origin <branch>
|
|
31
|
+
gh pr create --fill
|
|
57
32
|
```
|
|
58
33
|
|
|
59
|
-
|
|
34
|
+
After CI passes, merge the pull request into `main`. The merge to `main` triggers `release.yml`.
|
|
35
|
+
|
|
36
|
+
### 4. Automated release
|
|
60
37
|
|
|
61
38
|
GitHub Actions will:
|
|
62
39
|
|
|
63
40
|
1. Build and type-check
|
|
64
41
|
2. Verify package contents
|
|
65
42
|
3. Run tests
|
|
66
|
-
4.
|
|
67
|
-
5.
|
|
43
|
+
4. Run semantic-release on `main`
|
|
44
|
+
5. Sync version files in the release workspace for packaging
|
|
45
|
+
6. Create a GitHub Release
|
|
46
|
+
7. Publish npm `latest` with provenance through trusted publishing
|
|
68
47
|
|
|
69
48
|
## Manual publish (fallback)
|
|
70
49
|
|
package/docs/index.html
CHANGED
|
@@ -243,6 +243,11 @@ docs/
|
|
|
243
243
|
<tr><td><code>autoresearch-memory.md</code></td><td>Reusable memory</td></tr>
|
|
244
244
|
</table>
|
|
245
245
|
</article>
|
|
246
|
+
<article class="panel">
|
|
247
|
+
<h2>Examples</h2>
|
|
248
|
+
<p>Reproducible run examples with complete state, results, and report artifacts.</p>
|
|
249
|
+
<p><a href="examples/README.md">View Example Gallery →</a></p>
|
|
250
|
+
</article>
|
|
246
251
|
</section>
|
|
247
252
|
</main>
|
|
248
253
|
</body>
|
package/hooks/verify-package.sh
CHANGED
|
@@ -16,7 +16,7 @@ const packResult = JSON.parse(raw);
|
|
|
16
16
|
const entries = Array.isArray(packResult) ? packResult : [packResult];
|
|
17
17
|
const files = entries.flatMap((entry) => Array.isArray(entry.files) ? entry.files : []);
|
|
18
18
|
|
|
19
|
-
const allowedRoots = new Set(["dist", "hooks", "commands", "skills", ".opencode-plugin"]);
|
|
19
|
+
const allowedRoots = new Set(["dist", "hooks", "commands", "skills", ".opencode-plugin", ".vscode"]);
|
|
20
20
|
const allowedFiles = new Set([
|
|
21
21
|
"package.json",
|
|
22
22
|
"README.md",
|
|
@@ -24,6 +24,9 @@ const allowedFiles = new Set([
|
|
|
24
24
|
"AGENTS.md",
|
|
25
25
|
"VERSION",
|
|
26
26
|
"INSTALL.md",
|
|
27
|
+
"CHANGELOG.md",
|
|
28
|
+
".editorconfig",
|
|
29
|
+
".gitattributes",
|
|
27
30
|
".opencode/INSTALL.md",
|
|
28
31
|
"plugins/autoresearch.ts",
|
|
29
32
|
"docs/ARCHITECTURE.md",
|
|
@@ -45,6 +48,7 @@ const requiredFiles = [
|
|
|
45
48
|
"hooks/init.sh",
|
|
46
49
|
"skills/autoresearch/SKILL.md",
|
|
47
50
|
"commands/autoresearch.md",
|
|
51
|
+
"CHANGELOG.md",
|
|
48
52
|
];
|
|
49
53
|
|
|
50
54
|
const normalizePath = (filePath) => filePath.replace(/^package\//, "");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-autoresearch",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"description": "Autonomous recursive self-improvement engine for OpenCode and Hermes Agent. Subagent-first iteration loop with mechanical verification.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Maleick",
|
|
@@ -58,13 +58,14 @@
|
|
|
58
58
|
"AGENTS.md",
|
|
59
59
|
"VERSION",
|
|
60
60
|
"README.md",
|
|
61
|
+
"CHANGELOG.md",
|
|
61
62
|
"LICENSE"
|
|
62
63
|
],
|
|
63
64
|
"scripts": {
|
|
64
65
|
"build": "tsc",
|
|
65
66
|
"typecheck": "tsc --noEmit",
|
|
66
67
|
"audit": "npm audit --audit-level=moderate",
|
|
67
|
-
"test": "node --no-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.json",
|
|
68
|
+
"test": "node --no-warnings --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.json --runInBand",
|
|
68
69
|
"verify:pack": "bash hooks/verify-package.sh",
|
|
69
70
|
"prepack": "node scripts/sync-version.mjs && tsc"
|
|
70
71
|
},
|
|
@@ -72,18 +73,17 @@
|
|
|
72
73
|
"@semantic-release/changelog": "^6.0.3",
|
|
73
74
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
74
75
|
"@semantic-release/exec": "^7.1.0",
|
|
75
|
-
"@semantic-release/git": "^10.0.1",
|
|
76
76
|
"@semantic-release/github": "^12.0.6",
|
|
77
77
|
"@semantic-release/npm": "^13.1.5",
|
|
78
78
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
79
79
|
"@types/jest": "^30.0.0",
|
|
80
|
-
"@types/node": "^
|
|
80
|
+
"@types/node": "^25.6.2",
|
|
81
81
|
"jest": "^30.3.0",
|
|
82
82
|
"semantic-release": "^25.0.3",
|
|
83
83
|
"ts-jest": "^29.4.9",
|
|
84
|
-
"typescript": "^
|
|
84
|
+
"typescript": "^6.0.3"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
|
-
"node": ">=
|
|
87
|
+
"node": ">=22"
|
|
88
88
|
}
|
|
89
89
|
}
|