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.
Files changed (66) hide show
  1. package/.opencode-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +166 -0
  3. package/INSTALL.md +2 -2
  4. package/README.md +83 -39
  5. package/VERSION +1 -1
  6. package/dist/badge.d.ts +9 -0
  7. package/dist/badge.d.ts.map +1 -0
  8. package/dist/badge.js +86 -0
  9. package/dist/badge.js.map +1 -0
  10. package/dist/cli.js +578 -26
  11. package/dist/cli.js.map +1 -1
  12. package/dist/constants.d.ts +7 -1
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +7 -1
  15. package/dist/constants.js.map +1 -1
  16. package/dist/goal-init.d.ts +30 -0
  17. package/dist/goal-init.d.ts.map +1 -0
  18. package/dist/goal-init.js +109 -0
  19. package/dist/goal-init.js.map +1 -0
  20. package/dist/helpers.d.ts +13 -2
  21. package/dist/helpers.d.ts.map +1 -1
  22. package/dist/helpers.js +152 -9
  23. package/dist/helpers.js.map +1 -1
  24. package/dist/index.d.ts +12 -4
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +7 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/memory-manager.d.ts +24 -0
  29. package/dist/memory-manager.d.ts.map +1 -0
  30. package/dist/memory-manager.js +336 -0
  31. package/dist/memory-manager.js.map +1 -0
  32. package/dist/run-manager.d.ts +27 -2
  33. package/dist/run-manager.d.ts.map +1 -1
  34. package/dist/run-manager.js +210 -15
  35. package/dist/run-manager.js.map +1 -1
  36. package/dist/score-parser.d.ts +56 -0
  37. package/dist/score-parser.d.ts.map +1 -0
  38. package/dist/score-parser.js +109 -0
  39. package/dist/score-parser.js.map +1 -0
  40. package/dist/subagent-pool.d.ts +11 -0
  41. package/dist/subagent-pool.d.ts.map +1 -1
  42. package/dist/subagent-pool.js +95 -0
  43. package/dist/subagent-pool.js.map +1 -1
  44. package/dist/task-schema.d.ts +62 -0
  45. package/dist/task-schema.d.ts.map +1 -0
  46. package/dist/task-schema.js +95 -0
  47. package/dist/task-schema.js.map +1 -0
  48. package/dist/translators/cli.d.ts +5 -0
  49. package/dist/translators/cli.d.ts.map +1 -0
  50. package/dist/translators/cli.js +85 -0
  51. package/dist/translators/cli.js.map +1 -0
  52. package/dist/translators/hermes.d.ts +28 -0
  53. package/dist/translators/hermes.d.ts.map +1 -0
  54. package/dist/translators/hermes.js +102 -0
  55. package/dist/translators/hermes.js.map +1 -0
  56. package/dist/types.d.ts +113 -0
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/verifier-parser.d.ts +19 -0
  59. package/dist/verifier-parser.d.ts.map +1 -0
  60. package/dist/verifier-parser.js +161 -0
  61. package/dist/verifier-parser.js.map +1 -0
  62. package/docs/ARCHITECTURE.md +3 -0
  63. package/docs/RELEASE.md +15 -36
  64. package/docs/index.html +5 -0
  65. package/hooks/verify-package.sh +5 -1
  66. package/package.json +6 -6
@@ -1,5 +1,11 @@
1
+ import { MAX_DRAFTS } from "./constants.js";
2
+ import { AutoresearchError } from "./helpers.js";
1
3
  const ROLE_LIMIT = 6;
2
4
  let poolKeyCounter = 0;
5
+ let branchIdCounter = 0;
6
+ export function resetBranchIdCounter() {
7
+ branchIdCounter = 0;
8
+ }
3
9
  const RESOURCE_TIERS = {
4
10
  lite: ["orchestrator", "scout", "verifier"],
5
11
  balanced: ["orchestrator", "scout", "analyst", "verifier"],
@@ -12,6 +18,26 @@ const BASE_ROLES = [
12
18
  { id: "verifier", name: "Verifier", focus: "Check claims with commands, tests, or log reads before the pool settles." },
13
19
  { id: "synthesizer", name: "Synthesizer", focus: "Condense the best evidence into a stable summary the orchestrator can reuse." },
14
20
  ];
21
+ export const BRANCH_SELECTION_POLICIES = [
22
+ {
23
+ id: "best",
24
+ label: "Greedy (Best)",
25
+ description: "Selects the branch with the best metric value. Exploits known good solutions.",
26
+ recommended_for: ["optimization", "performance tuning", "bug fixes", "refinement"],
27
+ },
28
+ {
29
+ id: "roulette",
30
+ label: "Exploratory (Roulette)",
31
+ description: "Randomly selects from completed branches. Explores the search space without strong exploitation.",
32
+ recommended_for: ["exploration", "creative tasks", "novel solutions", "broad search"],
33
+ },
34
+ {
35
+ id: "diverse",
36
+ label: "Diversity-First",
37
+ description: "Selects the most recently completed branch. Prioritizes exploring diverse approaches.",
38
+ recommended_for: ["architecture", "design decisions", "multi-objective optimization", "research"],
39
+ },
40
+ ];
15
41
  const SPECIAL_ROLES = [
16
42
  { id: "security_reviewer", name: "Security Reviewer", focus: "Look for safety, abuse, auth, and data-handling risks.", triggers: ["security", "vuln", "threat", "auth", "permission"] },
17
43
  { id: "debugger", name: "Debugger", focus: "Reproduce failures, isolate causes, and narrow the repair path.", triggers: ["debug", "fix", "bug", "error", "fail", "failing"] },
@@ -108,4 +134,73 @@ export function buildContinuationPolicy(mode) {
108
134
  ],
109
135
  };
110
136
  }
137
+ function selectFallbackBranch(pendingBranchId, completedDrafts, activeDrafts) {
138
+ return pendingBranchId ?? completedDrafts[0]?.branch_id ?? activeDrafts[0]?.branch_id;
139
+ }
140
+ export function buildDraftPoolPlan(input) {
141
+ const { num_drafts, branch_selection_policy, baseline_iteration, branch_policy_overrides } = input;
142
+ if (!Number.isSafeInteger(num_drafts) || num_drafts <= 0 || num_drafts > MAX_DRAFTS) {
143
+ throw new AutoresearchError(`Invalid num_drafts: ${num_drafts} (must be a positive integer at most ${MAX_DRAFTS})`);
144
+ }
145
+ const activeDrafts = [];
146
+ for (let i = 0; i < num_drafts; i++) {
147
+ const draftId = `draft-${branchIdCounter++}`;
148
+ const policyOverride = branch_policy_overrides?.[draftId];
149
+ activeDrafts.push({
150
+ branch_id: draftId,
151
+ iteration: i + 1,
152
+ parent_iteration: baseline_iteration ?? 0,
153
+ status: "pending",
154
+ policy_override: policyOverride,
155
+ });
156
+ }
157
+ return {
158
+ kind: "autoresearch_draft_pool",
159
+ version: 1,
160
+ num_drafts,
161
+ branch_selection_policy,
162
+ active_drafts: activeDrafts,
163
+ best_branch_id: activeDrafts[0]?.branch_id,
164
+ available_policies: BRANCH_SELECTION_POLICIES,
165
+ };
166
+ }
167
+ export function selectNextBranch(activeDrafts, policy, direction, poolPolicy) {
168
+ const completedDrafts = activeDrafts.filter((d) => d.status === "completed");
169
+ const pendingBranchId = activeDrafts.find((d) => d.status === "pending")?.branch_id;
170
+ if (completedDrafts.length === 0) {
171
+ return pendingBranchId;
172
+ }
173
+ const effectivePolicy = poolPolicy ?? policy;
174
+ const sortDirection = direction === "lower" || direction === "higher"
175
+ ? direction
176
+ : (() => {
177
+ throw new Error(`Invalid branch selection direction: ${String(direction)}`);
178
+ })();
179
+ switch (effectivePolicy) {
180
+ case "best": {
181
+ const scoredDrafts = completedDrafts
182
+ .map((draft) => ({
183
+ branch_id: draft.branch_id,
184
+ parsed_metric: Number.parseFloat(draft.metric_value ?? ""),
185
+ }))
186
+ .filter((draft) => Number.isFinite(draft.parsed_metric));
187
+ if (scoredDrafts.length === 0) {
188
+ return selectFallbackBranch(pendingBranchId, completedDrafts, activeDrafts);
189
+ }
190
+ const sorted = [...scoredDrafts].sort((a, b) => sortDirection === "lower" ? a.parsed_metric - b.parsed_metric : b.parsed_metric - a.parsed_metric);
191
+ return sorted[0]?.branch_id;
192
+ }
193
+ case "roulette": {
194
+ const idx = Math.floor(Math.random() * completedDrafts.length);
195
+ return completedDrafts[idx]?.branch_id;
196
+ }
197
+ case "diverse": {
198
+ const maxIter = Math.max(...completedDrafts.map(d => d.iteration));
199
+ const mostRecent = completedDrafts.find(d => d.iteration === maxIter);
200
+ return mostRecent?.branch_id ?? completedDrafts[0]?.branch_id;
201
+ }
202
+ default:
203
+ return activeDrafts[0]?.branch_id;
204
+ }
205
+ }
111
206
  //# sourceMappingURL=subagent-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-pool.js","sourceRoot":"","sources":["../src/subagent-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-pool.js","sourceRoot":"","sources":["../src/subagent-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export type TaskSource = "cli" | "hermes" | "mcp" | "webhook" | "api";
2
+ export interface TaskContext {
3
+ id: string;
4
+ source: TaskSource;
5
+ origin?: string;
6
+ owner?: string;
7
+ goal: string;
8
+ scope?: string;
9
+ metric: TaskMetric;
10
+ instrument_metric?: TaskMetric;
11
+ verify_command?: string;
12
+ guard_command?: string;
13
+ constraints: TaskConstraints;
14
+ iteration_policy?: TaskIterationPolicy;
15
+ metadata?: Record<string, unknown>;
16
+ }
17
+ export interface TaskMetric {
18
+ name: string;
19
+ direction: "lower" | "higher";
20
+ baseline?: string;
21
+ target?: string;
22
+ }
23
+ export interface TaskConstraints {
24
+ max_iterations?: number;
25
+ max_duration_seconds?: number;
26
+ required_keep_labels?: string[];
27
+ required_stop_labels?: string[];
28
+ }
29
+ export interface TaskIterationPolicy {
30
+ mode: "foreground" | "background";
31
+ stop_condition?: string;
32
+ rollback_strategy?: string;
33
+ }
34
+ export interface TaskResult {
35
+ task_id: string;
36
+ decision: "keep" | "discard" | "needs_human" | "stopped";
37
+ metric_value?: string;
38
+ change_summary?: string;
39
+ labels: string[];
40
+ timestamp: string;
41
+ }
42
+ export declare function createTaskContext(params: {
43
+ id: string;
44
+ source: TaskSource;
45
+ goal: string;
46
+ metric: TaskMetric;
47
+ instrument_metric?: TaskMetric;
48
+ verify_command?: string;
49
+ guard_command?: string;
50
+ scope?: string;
51
+ max_iterations?: number;
52
+ max_duration_seconds?: number;
53
+ mode?: "foreground" | "background";
54
+ required_keep_labels?: string[];
55
+ required_stop_labels?: string[];
56
+ origin?: string;
57
+ owner?: string;
58
+ stop_condition?: string;
59
+ metadata?: Record<string, unknown>;
60
+ }): TaskContext;
61
+ export declare function validateTaskContext(context: unknown): context is TaskContext;
62
+ //# sourceMappingURL=task-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-schema.d.ts","sourceRoot":"","sources":["../src/task-schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,eAAe,CAAC;IAC7B,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GAAG,WAAW,CAwBd;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW,CAgC5E"}
@@ -0,0 +1,95 @@
1
+ export function createTaskContext(params) {
2
+ return {
3
+ id: params.id,
4
+ source: params.source,
5
+ origin: params.origin,
6
+ owner: params.owner,
7
+ goal: params.goal,
8
+ scope: params.scope,
9
+ metric: params.metric,
10
+ instrument_metric: params.instrument_metric,
11
+ verify_command: params.verify_command,
12
+ guard_command: params.guard_command,
13
+ constraints: {
14
+ max_iterations: params.max_iterations,
15
+ max_duration_seconds: params.max_duration_seconds,
16
+ required_keep_labels: params.required_keep_labels,
17
+ required_stop_labels: params.required_stop_labels,
18
+ },
19
+ iteration_policy: {
20
+ mode: params.mode ?? "foreground",
21
+ stop_condition: params.stop_condition,
22
+ },
23
+ metadata: params.metadata,
24
+ };
25
+ }
26
+ export function validateTaskContext(context) {
27
+ if (!isRecord(context))
28
+ return false;
29
+ const obj = context;
30
+ if (typeof obj.id !== "string")
31
+ return false;
32
+ if (!["cli", "hermes", "mcp", "webhook", "api"].includes(obj.source))
33
+ return false;
34
+ if (!isOptionalString(obj.origin))
35
+ return false;
36
+ if (!isOptionalString(obj.owner))
37
+ return false;
38
+ if (typeof obj.goal !== "string")
39
+ return false;
40
+ if (!isOptionalString(obj.scope))
41
+ return false;
42
+ if (!isRecord(obj.metric))
43
+ return false;
44
+ const metric = obj.metric;
45
+ if (typeof metric.name !== "string")
46
+ return false;
47
+ if (!["lower", "higher"].includes(metric.direction))
48
+ return false;
49
+ if (!isOptionalString(metric.baseline))
50
+ return false;
51
+ if (!isOptionalString(metric.target))
52
+ return false;
53
+ if (!isOptionalString(obj.verify_command))
54
+ return false;
55
+ if (!isOptionalString(obj.guard_command))
56
+ return false;
57
+ if (!isRecord(obj.constraints))
58
+ return false;
59
+ const constraints = obj.constraints;
60
+ if (!isOptionalNumber(constraints.max_iterations))
61
+ return false;
62
+ if (!isOptionalNumber(constraints.max_duration_seconds))
63
+ return false;
64
+ if (!isOptionalStringArray(constraints.required_keep_labels))
65
+ return false;
66
+ if (!isOptionalStringArray(constraints.required_stop_labels))
67
+ return false;
68
+ if (obj.iteration_policy !== undefined) {
69
+ if (!isRecord(obj.iteration_policy))
70
+ return false;
71
+ const policy = obj.iteration_policy;
72
+ if (!["foreground", "background"].includes(policy.mode))
73
+ return false;
74
+ if (!isOptionalString(policy.stop_condition))
75
+ return false;
76
+ if (!isOptionalString(policy.rollback_strategy))
77
+ return false;
78
+ }
79
+ if (obj.metadata !== undefined && !isRecord(obj.metadata))
80
+ return false;
81
+ return true;
82
+ }
83
+ function isRecord(value) {
84
+ return typeof value === "object" && value !== null && !Array.isArray(value);
85
+ }
86
+ function isOptionalString(value) {
87
+ return value === undefined || typeof value === "string";
88
+ }
89
+ function isOptionalNumber(value) {
90
+ return value === undefined || typeof value === "number";
91
+ }
92
+ function isOptionalStringArray(value) {
93
+ return value === undefined || (Array.isArray(value) && value.every((item) => typeof item === "string"));
94
+ }
95
+ //# sourceMappingURL=task-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-schema.js","sourceRoot":"","sources":["../src/task-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { TaskContext } from "../task-schema.js";
2
+ import type { RunConfig } from "../types.js";
3
+ export declare function taskContextFromRunConfig(id: string, config: RunConfig): TaskContext;
4
+ export declare function runConfigFromTaskContext(context: TaskContext): RunConfig;
5
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/translators/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,SAAS,GAChB,WAAW,CAsCb;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,CAuBxE"}
@@ -0,0 +1,85 @@
1
+ export function taskContextFromRunConfig(id, config) {
2
+ const metric = {
3
+ name: config.outcome_metric ?? config.metric,
4
+ direction: (config.outcome_direction ?? config.direction),
5
+ baseline: config.baseline,
6
+ };
7
+ const instrumentMetric = config.instrument_metric
8
+ ? {
9
+ name: config.instrument_metric,
10
+ direction: (config.instrument_direction ?? config.direction),
11
+ baseline: config.baseline,
12
+ }
13
+ : undefined;
14
+ const policy = {
15
+ mode: config.mode,
16
+ stop_condition: config.stop_condition,
17
+ };
18
+ return {
19
+ id,
20
+ source: "cli",
21
+ goal: config.goal,
22
+ scope: config.scope,
23
+ metric,
24
+ instrument_metric: instrumentMetric,
25
+ verify_command: config.verify,
26
+ guard_command: config.guard,
27
+ constraints: {
28
+ max_iterations: config.iterations,
29
+ max_duration_seconds: config.duration ? parseDuration(config.duration) : undefined,
30
+ required_keep_labels: config.required_keep_labels,
31
+ required_stop_labels: config.required_stop_labels,
32
+ },
33
+ iteration_policy: policy,
34
+ metadata: config.run_tag ? { run_tag: config.run_tag } : undefined,
35
+ };
36
+ }
37
+ export function runConfigFromTaskContext(context) {
38
+ return {
39
+ goal: context.goal,
40
+ metric: context.metric.name,
41
+ direction: context.metric.direction,
42
+ verify: context.verify_command ?? "",
43
+ guard: context.guard_command ?? "",
44
+ mode: context.iteration_policy?.mode ?? "foreground",
45
+ scope: context.scope,
46
+ iterations: context.constraints.max_iterations,
47
+ duration: context.constraints.max_duration_seconds
48
+ ? formatDuration(context.constraints.max_duration_seconds)
49
+ : undefined,
50
+ required_keep_labels: context.constraints.required_keep_labels,
51
+ required_stop_labels: context.constraints.required_stop_labels,
52
+ stop_condition: context.iteration_policy?.stop_condition,
53
+ run_tag: context.metadata?.run_tag ?? undefined,
54
+ baseline: context.metric.baseline,
55
+ outcome_metric: context.metric.name,
56
+ outcome_direction: context.metric.direction,
57
+ instrument_metric: context.instrument_metric?.name,
58
+ instrument_direction: context.instrument_metric?.direction,
59
+ };
60
+ }
61
+ function parseDuration(value) {
62
+ const normalized = value.trim().toLowerCase();
63
+ if (/^\d+$/.test(normalized)) {
64
+ return parseInt(normalized) || undefined;
65
+ }
66
+ const tokens = [...normalized.matchAll(/(\d+)([smhd])/g)];
67
+ let total = 0;
68
+ for (const match of tokens) {
69
+ const amount = parseInt(match[1]);
70
+ const unit = match[2];
71
+ const multiplier = { s: 1, m: 60, h: 3600, d: 86400 };
72
+ total += amount * multiplier[unit];
73
+ }
74
+ return total > 0 ? total : undefined;
75
+ }
76
+ function formatDuration(seconds) {
77
+ if (seconds >= 86400)
78
+ return `${Math.floor(seconds / 86400)}d`;
79
+ if (seconds >= 3600)
80
+ return `${Math.floor(seconds / 3600)}h`;
81
+ if (seconds >= 60)
82
+ return `${Math.floor(seconds / 60)}m`;
83
+ return `${seconds}s`;
84
+ }
85
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/translators/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { TaskContext } from "../task-schema.js";
2
+ import type { RunState } from "../types.js";
3
+ export interface HermesTaskPayload {
4
+ run_id: string;
5
+ goal: string;
6
+ metric: {
7
+ name: string;
8
+ direction: "lower" | "higher";
9
+ baseline?: string;
10
+ };
11
+ verify_command: string;
12
+ guard_command?: string;
13
+ mode: "foreground" | "background";
14
+ scope?: string;
15
+ max_iterations?: number;
16
+ max_duration_seconds?: number;
17
+ required_keep_labels?: string[];
18
+ required_stop_labels?: string[];
19
+ stop_condition?: string;
20
+ origin?: string;
21
+ owner?: string;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ export declare function taskContextFromHermesPayload(payload: HermesTaskPayload): TaskContext;
25
+ export declare function hermesPayloadFromTaskContext(context: TaskContext): HermesTaskPayload;
26
+ export declare function taskContextFromRunState(state: RunState): TaskContext;
27
+ export declare function runStateFromTaskContext(context: TaskContext): Partial<RunState>;
28
+ //# sourceMappingURL=hermes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../src/translators/hermes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,iBAAiB,GACzB,WAAW,CA+Bb;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,GACnB,iBAAiB,CAsBnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,CAyBpE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqB/E"}
@@ -0,0 +1,102 @@
1
+ export function taskContextFromHermesPayload(payload) {
2
+ const metric = {
3
+ name: payload.metric.name,
4
+ direction: payload.metric.direction,
5
+ baseline: payload.metric.baseline,
6
+ };
7
+ const policy = {
8
+ mode: payload.mode,
9
+ stop_condition: payload.stop_condition,
10
+ };
11
+ return {
12
+ id: payload.run_id,
13
+ source: "hermes",
14
+ origin: payload.origin,
15
+ owner: payload.owner,
16
+ goal: payload.goal,
17
+ scope: payload.scope,
18
+ metric,
19
+ verify_command: payload.verify_command,
20
+ guard_command: payload.guard_command,
21
+ constraints: {
22
+ max_iterations: payload.max_iterations,
23
+ max_duration_seconds: payload.max_duration_seconds,
24
+ required_keep_labels: payload.required_keep_labels,
25
+ required_stop_labels: payload.required_stop_labels,
26
+ },
27
+ iteration_policy: policy,
28
+ metadata: payload.metadata,
29
+ };
30
+ }
31
+ export function hermesPayloadFromTaskContext(context) {
32
+ return {
33
+ run_id: context.id,
34
+ goal: context.goal,
35
+ metric: {
36
+ name: context.metric.name,
37
+ direction: context.metric.direction,
38
+ baseline: context.metric.baseline,
39
+ },
40
+ verify_command: context.verify_command ?? "",
41
+ guard_command: context.guard_command,
42
+ mode: context.iteration_policy?.mode ?? "foreground",
43
+ scope: context.scope,
44
+ max_iterations: context.constraints.max_iterations,
45
+ max_duration_seconds: context.constraints.max_duration_seconds,
46
+ required_keep_labels: context.constraints.required_keep_labels,
47
+ required_stop_labels: context.constraints.required_stop_labels,
48
+ stop_condition: context.iteration_policy?.stop_condition,
49
+ origin: context.origin,
50
+ owner: context.owner,
51
+ metadata: context.metadata,
52
+ };
53
+ }
54
+ export function taskContextFromRunState(state) {
55
+ return {
56
+ id: state.run_id,
57
+ source: "hermes",
58
+ goal: state.goal,
59
+ scope: state.scope,
60
+ metric: {
61
+ name: state.metric.name,
62
+ direction: state.metric.direction,
63
+ baseline: state.metric.baseline,
64
+ },
65
+ verify_command: state.verify,
66
+ guard_command: state.guard,
67
+ constraints: {
68
+ max_iterations: state.iterations_cap,
69
+ max_duration_seconds: state.duration_seconds,
70
+ required_keep_labels: state.label_requirements.keep,
71
+ required_stop_labels: state.label_requirements.stop,
72
+ },
73
+ iteration_policy: {
74
+ mode: state.mode,
75
+ stop_condition: state.stop_condition,
76
+ },
77
+ metadata: state.memory,
78
+ };
79
+ }
80
+ export function runStateFromTaskContext(context) {
81
+ return {
82
+ run_id: context.id,
83
+ goal: context.goal,
84
+ scope: context.scope ?? "",
85
+ metric: {
86
+ name: context.metric.name,
87
+ direction: context.metric.direction,
88
+ baseline: context.metric.baseline,
89
+ },
90
+ verify: context.verify_command ?? "",
91
+ guard: context.guard_command,
92
+ mode: context.iteration_policy?.mode ?? "foreground",
93
+ iterations_cap: context.constraints.max_iterations,
94
+ duration_seconds: context.constraints.max_duration_seconds ?? undefined,
95
+ stop_condition: context.iteration_policy?.stop_condition,
96
+ label_requirements: {
97
+ keep: context.constraints.required_keep_labels ?? [],
98
+ stop: context.constraints.required_stop_labels ?? [],
99
+ },
100
+ };
101
+ }
102
+ //# sourceMappingURL=hermes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../src/translators/hermes.ts"],"names":[],"mappings":"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"}