@synergenius/flow-weaver-pack-weaver 0.9.111 → 0.9.112

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.
@@ -1 +1 @@
1
- {"version":3,"file":"approval-gate.d.ts","sourceRoot":"","sources":["../../src/node-types/approval-gate.ts"],"names":[],"mappings":"AAuDA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CAmID"}
1
+ {"version":3,"file":"approval-gate.d.ts","sourceRoot":"","sources":["../../src/node-types/approval-gate.ts"],"names":[],"mappings":"AAuDA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CAgJD"}
@@ -61,127 +61,142 @@ const approvalRegistryLocal = {
61
61
  * @output onFailure [order:-1] - On Failure
62
62
  */
63
63
  export async function weaverApprovalGate(execute, ctx) {
64
- const context = JSON.parse(ctx);
65
- if (!execute) {
66
- context.rejectionReason = '';
67
- return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
68
- }
69
- // Check for autoApprove in task options
70
- const task = JSON.parse(context.taskJson);
71
- const { env } = context;
72
- const { config } = env;
73
- const approvalMode = typeof config.approval === 'string'
74
- ? config.approval
75
- : config.approval?.mode ?? (process.stdin?.isTTY ? 'prompt' : 'timeout-auto');
76
- if (task.options?.autoApprove || approvalMode === 'auto') {
77
- console.log('\x1b[36m→ Auto-approved\x1b[0m');
78
- auditEmit('approval-decision', { approved: true, mode: 'auto' });
79
- context.rejectionReason = '';
80
- return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
81
- }
82
- // Parse and display the plan
83
- let plan;
64
+ let context;
84
65
  try {
85
- plan = JSON.parse(context.planJson);
86
- }
87
- catch {
88
- plan = { steps: [], summary: 'Plan could not be parsed' };
66
+ context = JSON.parse(ctx);
89
67
  }
90
- const steps = Array.isArray(plan.steps) ? plan.steps : [];
91
- const summary = plan.summary ?? 'No summary';
92
- console.log('\n\x1b[1m┌─ Bot Plan ─────────────────────────────┐\x1b[0m');
93
- console.log(`\x1b[1m│\x1b[0m Summary: ${summary}`);
94
- console.log(`\x1b[1m│\x1b[0m Steps: ${steps.length}`);
95
- for (const step of steps) {
96
- console.log(`\x1b[1m│\x1b[0m ${step.id ?? '?'}: [${step.operation ?? '?'}] ${step.description ?? ''}`);
68
+ catch (err) {
69
+ console.error(`[approval-gate] Failed to parse context: ${err instanceof Error ? err.message : err}`);
70
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify({ rejectionReason: 'Invalid context' }) };
97
71
  }
98
- console.log('\x1b[1m└────────────────────────────────────────┘\x1b[0m\n');
99
- // Determine timeout
100
- const approvalCfg = config.approval;
101
- const timeoutMs = approvalCfg?.timeoutMs ?? ((approvalCfg?.timeoutSeconds ?? 300) * 1000);
102
- // Use the run ID as the approval key if available, otherwise a unique key.
103
- // fw_weaver_approve resolves the most recent pending, so the exact key
104
- // doesn't matter for single-approval scenarios.
105
- const approvalKey = context.runId ?? `approval-${Date.now()}`;
106
- console.log(`\x1b[36m→ Waiting ${timeoutMs / 1000}s for approval (via UI, agent, file, or timeout)...\x1b[0m`);
107
- // Multiple concurrent producers race — whichever resolves first wins.
108
- // The simplest globalThis mechanism: put the resolve function directly
109
- // on globalThis so fw_weaver_approve can call it from any module context.
110
- const channel = globalThis.__fw_agent_channel__;
111
- if (channel) {
112
- channel.request({
113
- agentId: 'weaver-approval',
114
- context: { plan: { steps }, summary },
115
- prompt: `Review and approve/reject this plan with ${steps.length} steps.`,
116
- }).then((result) => {
117
- const approved = result.approved !== false;
118
- approvalRegistryLocal.resolve(approvalKey, {
119
- approved,
120
- reason: approved ? undefined : (result.reason || 'rejected by agent'),
121
- mode: 'agent',
122
- });
123
- }).catch(() => { });
72
+ if (!execute) {
73
+ context.rejectionReason = '';
74
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
124
75
  }
125
- // File polling producer — polls for approval-decision.json every 500ms
126
- const weaverDir = process.env.WEAVER_HISTORY_DIR ?? nodePath.join(os.homedir(), '.weaver');
127
- const decisionPath = nodePath.join(weaverDir, 'approval-decision.json');
128
- // Write pending approval file for UI to discover
129
76
  try {
130
- fs.mkdirSync(weaverDir, { recursive: true });
131
- fs.writeFileSync(nodePath.join(weaverDir, 'pending-approval.json'), JSON.stringify({
132
- plan, summary: plan.summary, stepCount: plan.steps?.length ?? 0, timestamp: Date.now(),
133
- }), 'utf-8');
134
- try {
135
- fs.unlinkSync(decisionPath);
77
+ // Check for autoApprove in task options
78
+ const task = JSON.parse(context.taskJson ?? '{}');
79
+ const { env } = context;
80
+ const { config } = env;
81
+ const approvalMode = typeof config.approval === 'string'
82
+ ? config.approval
83
+ : config.approval?.mode ?? (process.stdin?.isTTY ? 'prompt' : 'timeout-auto');
84
+ if (task.options?.autoApprove || approvalMode === 'auto') {
85
+ console.log('\x1b[36m→ Auto-approved\x1b[0m');
86
+ auditEmit('approval-decision', { approved: true, mode: 'auto' });
87
+ context.rejectionReason = '';
88
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
136
89
  }
137
- catch { /* clean stale */ }
138
- }
139
- catch { /* non-fatal */ }
140
- let filePollingActive = true;
141
- const filePollInterval = setInterval(() => {
90
+ // Parse and display the plan
91
+ let plan;
142
92
  try {
143
- if (fs.existsSync(decisionPath)) {
144
- const raw = fs.readFileSync(decisionPath, 'utf-8');
145
- fs.unlinkSync(decisionPath);
146
- const d = JSON.parse(raw);
93
+ plan = JSON.parse(context.planJson);
94
+ }
95
+ catch {
96
+ plan = { steps: [], summary: 'Plan could not be parsed' };
97
+ }
98
+ const steps = Array.isArray(plan.steps) ? plan.steps : [];
99
+ const summary = plan.summary ?? 'No summary';
100
+ console.log('\n\x1b[1m┌─ Bot Plan ─────────────────────────────┐\x1b[0m');
101
+ console.log(`\x1b[1m│\x1b[0m Summary: ${summary}`);
102
+ console.log(`\x1b[1m│\x1b[0m Steps: ${steps.length}`);
103
+ for (const step of steps) {
104
+ console.log(`\x1b[1m│\x1b[0m ${step.id ?? '?'}: [${step.operation ?? '?'}] ${step.description ?? ''}`);
105
+ }
106
+ console.log('\x1b[1m└────────────────────────────────────────┘\x1b[0m\n');
107
+ // Determine timeout
108
+ const approvalCfg = config.approval;
109
+ const timeoutMs = approvalCfg?.timeoutMs ?? ((approvalCfg?.timeoutSeconds ?? 300) * 1000);
110
+ // Use the run ID as the approval key if available, otherwise a unique key.
111
+ // fw_weaver_approve resolves the most recent pending, so the exact key
112
+ // doesn't matter for single-approval scenarios.
113
+ const approvalKey = context.runId ?? `approval-${Date.now()}`;
114
+ console.log(`\x1b[36m→ Waiting ${timeoutMs / 1000}s for approval (via UI, agent, file, or timeout)...\x1b[0m`);
115
+ // Multiple concurrent producers race — whichever resolves first wins.
116
+ // The simplest globalThis mechanism: put the resolve function directly
117
+ // on globalThis so fw_weaver_approve can call it from any module context.
118
+ const channel = globalThis.__fw_agent_channel__;
119
+ if (channel) {
120
+ channel.request({
121
+ agentId: 'weaver-approval',
122
+ context: { plan: { steps }, summary },
123
+ prompt: `Review and approve/reject this plan with ${steps.length} steps.`,
124
+ }).then((result) => {
125
+ const approved = result.approved !== false;
147
126
  approvalRegistryLocal.resolve(approvalKey, {
148
- approved: !!d.approved,
149
- reason: d.reason,
150
- mode: 'file',
127
+ approved,
128
+ reason: approved ? undefined : (result.reason || 'rejected by agent'),
129
+ mode: 'agent',
151
130
  });
131
+ }).catch(() => { });
132
+ }
133
+ // File polling producer — polls for approval-decision.json every 500ms
134
+ const weaverDir = process.env.WEAVER_HISTORY_DIR ?? nodePath.join(os.homedir(), '.weaver');
135
+ const decisionPath = nodePath.join(weaverDir, 'approval-decision.json');
136
+ // Write pending approval file for UI to discover
137
+ try {
138
+ fs.mkdirSync(weaverDir, { recursive: true });
139
+ fs.writeFileSync(nodePath.join(weaverDir, 'pending-approval.json'), JSON.stringify({
140
+ plan, summary: plan.summary, stepCount: plan.steps?.length ?? 0, timestamp: Date.now(),
141
+ }), 'utf-8');
142
+ try {
143
+ fs.unlinkSync(decisionPath);
152
144
  }
145
+ catch { /* clean stale */ }
146
+ }
147
+ catch { /* non-fatal */ }
148
+ let filePollingActive = true;
149
+ const filePollInterval = setInterval(() => {
150
+ try {
151
+ if (fs.existsSync(decisionPath)) {
152
+ const raw = fs.readFileSync(decisionPath, 'utf-8');
153
+ fs.unlinkSync(decisionPath);
154
+ const d = JSON.parse(raw);
155
+ approvalRegistryLocal.resolve(approvalKey, {
156
+ approved: !!d.approved,
157
+ reason: d.reason,
158
+ mode: 'file',
159
+ });
160
+ }
161
+ }
162
+ catch { /* retry */ }
163
+ }, 500);
164
+ // Also put the resolve function directly on globalThis as the most direct path.
165
+ // fw_weaver_approve checks this first before trying the registry or file.
166
+ const registryWait = approvalRegistryLocal.wait(approvalKey, timeoutMs);
167
+ const directResolve = new Promise((resolve) => {
168
+ globalThis.__fw_pending_approval_resolve__ = (d) => {
169
+ resolve(d);
170
+ };
171
+ });
172
+ const decision = await Promise.race([registryWait, directResolve]);
173
+ // Cleanup
174
+ delete globalThis.__fw_pending_approval_resolve__;
175
+ clearInterval(filePollInterval);
176
+ try {
177
+ fs.unlinkSync(nodePath.join(weaverDir, 'pending-approval.json'));
178
+ }
179
+ catch { /* ignore */ }
180
+ // Log the decision
181
+ const mode = decision.mode ?? 'unknown';
182
+ if (decision.approved) {
183
+ console.log(`\x1b[32m→ Plan approved (${mode})\x1b[0m`);
184
+ auditEmit('approval-decision', { approved: true, mode });
185
+ context.rejectionReason = '';
186
+ return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
187
+ }
188
+ else {
189
+ const reason = decision.reason || 'rejected';
190
+ console.log(`\x1b[33m→ Plan rejected: ${reason} (${mode})\x1b[0m`);
191
+ auditEmit('approval-decision', { approved: false, reason, mode });
192
+ context.rejectionReason = reason;
193
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
153
194
  }
154
- catch { /* retry */ }
155
- }, 500);
156
- // Also put the resolve function directly on globalThis as the most direct path.
157
- // fw_weaver_approve checks this first before trying the registry or file.
158
- const registryWait = approvalRegistryLocal.wait(approvalKey, timeoutMs);
159
- const directResolve = new Promise((resolve) => {
160
- globalThis.__fw_pending_approval_resolve__ = (d) => {
161
- resolve(d);
162
- };
163
- });
164
- const decision = await Promise.race([registryWait, directResolve]);
165
- // Cleanup
166
- delete globalThis.__fw_pending_approval_resolve__;
167
- clearInterval(filePollInterval);
168
- try {
169
- fs.unlinkSync(nodePath.join(weaverDir, 'pending-approval.json'));
170
- }
171
- catch { /* ignore */ }
172
- // Log the decision
173
- const mode = decision.mode ?? 'unknown';
174
- if (decision.approved) {
175
- console.log(`\x1b[32m→ Plan approved (${mode})\x1b[0m`);
176
- auditEmit('approval-decision', { approved: true, mode });
177
- context.rejectionReason = '';
178
- return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
179
195
  }
180
- else {
181
- const reason = decision.reason || 'rejected';
182
- console.log(`\x1b[33m→ Plan rejected: ${reason} (${mode})\x1b[0m`);
183
- auditEmit('approval-decision', { approved: false, reason, mode });
184
- context.rejectionReason = reason;
196
+ catch (err) {
197
+ const msg = err instanceof Error ? err.stack ?? err.message : String(err);
198
+ console.error(`[approval-gate] Unhandled error: ${msg}`);
199
+ context.rejectionReason = `Approval gate error: ${err instanceof Error ? err.message : String(err)}`;
185
200
  return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
186
201
  }
187
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-gate.js","sourceRoot":"","sources":["../../src/node-types/approval-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-gate.js","sourceRoot":"","sources":["../../src/node-types/approval-gate.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifestVersion": 2,
3
3
  "name": "@synergenius/flow-weaver-pack-weaver",
4
- "version": "0.9.111",
4
+ "version": "0.9.112",
5
5
  "description": "AI bot for Flow Weaver. Execute tasks, run workflows, evolve autonomously.",
6
6
  "engineVersion": ">=0.22.10",
7
7
  "categories": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synergenius/flow-weaver-pack-weaver",
3
- "version": "0.9.111",
3
+ "version": "0.9.112",
4
4
  "description": "AI bot for Flow Weaver. Execute tasks, run workflows, evolve autonomously.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -81,15 +81,22 @@ export async function weaverApprovalGate(
81
81
  onSuccess: boolean; onFailure: boolean;
82
82
  ctx: string;
83
83
  }> {
84
- const context = JSON.parse(ctx) as WeaverContext;
84
+ let context: WeaverContext;
85
+ try {
86
+ context = JSON.parse(ctx) as WeaverContext;
87
+ } catch (err) {
88
+ console.error(`[approval-gate] Failed to parse context: ${err instanceof Error ? err.message : err}`);
89
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify({ rejectionReason: 'Invalid context' }) };
90
+ }
85
91
 
86
92
  if (!execute) {
87
93
  context.rejectionReason = '';
88
94
  return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
89
95
  }
90
96
 
97
+ try {
91
98
  // Check for autoApprove in task options
92
- const task = JSON.parse(context.taskJson!) as { options?: { autoApprove?: boolean } };
99
+ const task = JSON.parse(context.taskJson ?? '{}') as { options?: { autoApprove?: boolean } };
93
100
  const { env } = context;
94
101
  const { config } = env;
95
102
  const approvalMode = typeof config.approval === 'string'
@@ -211,4 +218,10 @@ export async function weaverApprovalGate(
211
218
  context.rejectionReason = reason;
212
219
  return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
213
220
  }
221
+ } catch (err) {
222
+ const msg = err instanceof Error ? err.stack ?? err.message : String(err);
223
+ console.error(`[approval-gate] Unhandled error: ${msg}`);
224
+ context.rejectionReason = `Approval gate error: ${err instanceof Error ? err.message : String(err)}`;
225
+ return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
226
+ }
214
227
  }