@geekbeer/minion 3.26.0 → 3.27.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.
@@ -125,6 +125,7 @@ async function executeSkillNode(node) {
125
125
  assigned_role,
126
126
  input_data,
127
127
  revision_feedback,
128
+ review_history,
128
129
  } = node
129
130
 
130
131
  console.log(
@@ -187,6 +188,9 @@ async function executeSkillNode(node) {
187
188
  if (revision_feedback) {
188
189
  runPayload.revision_feedback = revision_feedback
189
190
  }
191
+ if (review_history && review_history.length > 0) {
192
+ runPayload.review_history = review_history
193
+ }
190
194
 
191
195
  const runUrl = `http://localhost:${config.AGENT_PORT || 8080}/api/skills/run`
192
196
  const runResp = await fetch(runUrl, {
@@ -342,6 +342,7 @@ async function skillRoutes(fastify, opts) {
342
342
  workflow_name,
343
343
  role,
344
344
  revision_feedback,
345
+ review_history,
345
346
  dag_node_execution_id,
346
347
  } = request.body || {}
347
348
 
@@ -391,6 +392,7 @@ async function skillRoutes(fastify, opts) {
391
392
  const runOptions = {}
392
393
  if (role) runOptions.role = role
393
394
  if (revision_feedback) runOptions.revisionFeedback = revision_feedback
395
+ if (review_history && review_history.length > 0) runOptions.reviewHistory = review_history
394
396
 
395
397
  // Run asynchronously — respond immediately
396
398
  const executionPromise = (async () => {
@@ -77,10 +77,20 @@ async function executeWorkflowSession(workflow, executionId, skillNames, options
77
77
  ? `You are acting as the ${options.role} role in this session. Read ~/.minion/roles/${options.role}.md for your role guidelines before proceeding.\n\n`
78
78
  : ''
79
79
 
80
- // Inject revision feedback if this is a re-execution after reviewer requested changes
81
- const revisionContext = options.revisionFeedback
82
- ? `## Revision Feedback\nThe reviewer requested changes to your previous output. Address the following feedback:\n${options.revisionFeedback}\n\n`
83
- : ''
80
+ // Inject revision feedback and review history if this is a re-execution after reviewer requested changes
81
+ let revisionContext = ''
82
+ if (options.reviewHistory && options.reviewHistory.length > 0) {
83
+ const historyLines = options.reviewHistory.map((entry, i) => {
84
+ const label = entry.status === 'revision_requested' ? 'Revision Requested'
85
+ : entry.status === 'approved' ? 'Approved'
86
+ : entry.status === 'rejected' ? 'Rejected'
87
+ : entry.status
88
+ return `${i + 1}. **${label}** (${entry.reviewed_at})${entry.comment ? `\n ${entry.comment}` : ''}`
89
+ }).join('\n')
90
+ revisionContext = `## Review History\nThis task has been reviewed ${options.reviewHistory.length} time(s). Address all feedback:\n${historyLines}\n\n`
91
+ } else if (options.revisionFeedback) {
92
+ revisionContext = `## Revision Feedback\nThe reviewer requested changes to your previous output. Address the following feedback:\n${options.revisionFeedback}\n\n`
93
+ }
84
94
 
85
95
  const prompt = `${rolePrefix}${revisionContext}Run the following skills in order: ${skillCommands}.`
86
96
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekbeer/minion",
3
- "version": "3.26.0",
3
+ "version": "3.27.0",
4
4
  "description": "AI Agent runtime for Minion - manages status and skill deployment on VPS",
5
5
  "main": "linux/server.js",
6
6
  "bin": {
@@ -85,9 +85,19 @@ async function executeWorkflowSession(workflow, executionId, skillNames, options
85
85
  ? `You are acting as the ${options.role} role in this session. Read ~/.minion/roles/${options.role}.md for your role guidelines before proceeding.\n\n`
86
86
  : ''
87
87
 
88
- const revisionContext = options.revisionFeedback
89
- ? `## Revision Feedback\nThe reviewer requested changes to your previous output. Address the following feedback:\n${options.revisionFeedback}\n\n`
90
- : ''
88
+ let revisionContext = ''
89
+ if (options.reviewHistory && options.reviewHistory.length > 0) {
90
+ const historyLines = options.reviewHistory.map((entry, i) => {
91
+ const label = entry.status === 'revision_requested' ? 'Revision Requested'
92
+ : entry.status === 'approved' ? 'Approved'
93
+ : entry.status === 'rejected' ? 'Rejected'
94
+ : entry.status
95
+ return `${i + 1}. **${label}** (${entry.reviewed_at})${entry.comment ? `\n ${entry.comment}` : ''}`
96
+ }).join('\n')
97
+ revisionContext = `## Review History\nThis task has been reviewed ${options.reviewHistory.length} time(s). Address all feedback:\n${historyLines}\n\n`
98
+ } else if (options.revisionFeedback) {
99
+ revisionContext = `## Revision Feedback\nThe reviewer requested changes to your previous output. Address the following feedback:\n${options.revisionFeedback}\n\n`
100
+ }
91
101
 
92
102
  const prompt = `${rolePrefix}${revisionContext}Run the following skills in order: ${skillCommands}.`
93
103