@synergenius/flowweaver-pack-weaver 0.5.1 → 0.5.2
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/README.md +167 -0
- package/dist/bot/agent-provider.d.ts +15 -1
- package/dist/bot/agent-provider.d.ts.map +1 -1
- package/dist/bot/agent-provider.js +78 -2
- package/dist/bot/agent-provider.js.map +1 -1
- package/dist/bot/ai-client.d.ts +4 -0
- package/dist/bot/ai-client.d.ts.map +1 -0
- package/dist/bot/ai-client.js +46 -0
- package/dist/bot/ai-client.js.map +1 -0
- package/dist/bot/bot-agent-channel.d.ts +14 -1
- package/dist/bot/bot-agent-channel.d.ts.map +1 -1
- package/dist/bot/bot-agent-channel.js +16 -0
- package/dist/bot/bot-agent-channel.js.map +1 -1
- package/dist/bot/cli-provider.d.ts +16 -1
- package/dist/bot/cli-provider.d.ts.map +1 -1
- package/dist/bot/cli-provider.js +10 -0
- package/dist/bot/cli-provider.js.map +1 -1
- package/dist/bot/dashboard.d.ts.map +1 -1
- package/dist/bot/dashboard.js +2 -2
- package/dist/bot/dashboard.js.map +1 -1
- package/dist/bot/file-lock.d.ts +7 -0
- package/dist/bot/file-lock.d.ts.map +1 -0
- package/dist/bot/file-lock.js +64 -0
- package/dist/bot/file-lock.js.map +1 -0
- package/dist/bot/file-validator.d.ts +7 -0
- package/dist/bot/file-validator.d.ts.map +1 -0
- package/dist/bot/file-validator.js +20 -0
- package/dist/bot/file-validator.js.map +1 -0
- package/dist/bot/genesis-store.d.ts +18 -0
- package/dist/bot/genesis-store.d.ts.map +1 -0
- package/dist/bot/genesis-store.js +89 -0
- package/dist/bot/genesis-store.js.map +1 -0
- package/dist/bot/index.d.ts +7 -1
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +8 -0
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/runner.d.ts.map +1 -1
- package/dist/bot/runner.js +2 -4
- package/dist/bot/runner.js.map +1 -1
- package/dist/bot/session-state.d.ts +3 -3
- package/dist/bot/session-state.d.ts.map +1 -1
- package/dist/bot/session-state.js +24 -15
- package/dist/bot/session-state.js.map +1 -1
- package/dist/bot/steering.d.ts +2 -2
- package/dist/bot/steering.d.ts.map +1 -1
- package/dist/bot/steering.js +20 -15
- package/dist/bot/steering.js.map +1 -1
- package/dist/bot/step-executor.d.ts +9 -0
- package/dist/bot/step-executor.d.ts.map +1 -0
- package/dist/bot/step-executor.js +51 -0
- package/dist/bot/step-executor.js.map +1 -0
- package/dist/bot/task-queue.d.ts +8 -8
- package/dist/bot/task-queue.d.ts.map +1 -1
- package/dist/bot/task-queue.js +58 -47
- package/dist/bot/task-queue.js.map +1 -1
- package/dist/bot/types.d.ts +131 -0
- package/dist/bot/types.d.ts.map +1 -1
- package/dist/cli-bridge.d.ts.map +1 -1
- package/dist/cli-bridge.js +2 -1
- package/dist/cli-bridge.js.map +1 -1
- package/dist/cli-handlers.d.ts +4 -1
- package/dist/cli-handlers.d.ts.map +1 -1
- package/dist/cli-handlers.js +84 -8
- package/dist/cli-handlers.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-tools.d.ts.map +1 -1
- package/dist/mcp-tools.js +27 -5
- package/dist/mcp-tools.js.map +1 -1
- package/dist/node-types/abort-task.d.ts +5 -12
- package/dist/node-types/abort-task.d.ts.map +1 -1
- package/dist/node-types/abort-task.js +11 -16
- package/dist/node-types/abort-task.js.map +1 -1
- package/dist/node-types/approval-gate.d.ts +4 -21
- package/dist/node-types/approval-gate.d.ts.map +1 -1
- package/dist/node-types/approval-gate.js +17 -23
- package/dist/node-types/approval-gate.js.map +1 -1
- package/dist/node-types/bot-report.d.ts +8 -10
- package/dist/node-types/bot-report.d.ts.map +1 -1
- package/dist/node-types/bot-report.js +28 -24
- package/dist/node-types/bot-report.js.map +1 -1
- package/dist/node-types/build-context.d.ts +5 -18
- package/dist/node-types/build-context.d.ts.map +1 -1
- package/dist/node-types/build-context.js +14 -23
- package/dist/node-types/build-context.js.map +1 -1
- package/dist/node-types/detect-provider.d.ts +7 -10
- package/dist/node-types/detect-provider.d.ts.map +1 -1
- package/dist/node-types/detect-provider.js +8 -12
- package/dist/node-types/detect-provider.js.map +1 -1
- package/dist/node-types/exec-validate-retry.d.ts +5 -26
- package/dist/node-types/exec-validate-retry.d.ts.map +1 -1
- package/dist/node-types/exec-validate-retry.js +21 -144
- package/dist/node-types/exec-validate-retry.js.map +1 -1
- package/dist/node-types/execute-plan.d.ts +10 -18
- package/dist/node-types/execute-plan.d.ts.map +1 -1
- package/dist/node-types/execute-plan.js +13 -68
- package/dist/node-types/execute-plan.js.map +1 -1
- package/dist/node-types/execute-target.d.ts +5 -15
- package/dist/node-types/execute-target.d.ts.map +1 -1
- package/dist/node-types/execute-target.js +17 -85
- package/dist/node-types/execute-target.js.map +1 -1
- package/dist/node-types/fix-errors.d.ts +9 -17
- package/dist/node-types/fix-errors.d.ts.map +1 -1
- package/dist/node-types/fix-errors.js +13 -64
- package/dist/node-types/fix-errors.js.map +1 -1
- package/dist/node-types/genesis-apply-retry.d.ts +24 -0
- package/dist/node-types/genesis-apply-retry.d.ts.map +1 -0
- package/dist/node-types/genesis-apply-retry.js +95 -0
- package/dist/node-types/genesis-apply-retry.js.map +1 -0
- package/dist/node-types/genesis-apply.d.ts +29 -0
- package/dist/node-types/genesis-apply.d.ts.map +1 -0
- package/dist/node-types/genesis-apply.js +76 -0
- package/dist/node-types/genesis-apply.js.map +1 -0
- package/dist/node-types/genesis-approve.d.ts +19 -0
- package/dist/node-types/genesis-approve.d.ts.map +1 -0
- package/dist/node-types/genesis-approve.js +54 -0
- package/dist/node-types/genesis-approve.js.map +1 -0
- package/dist/node-types/genesis-check-stabilize.d.ts +16 -0
- package/dist/node-types/genesis-check-stabilize.d.ts.map +1 -0
- package/dist/node-types/genesis-check-stabilize.js +32 -0
- package/dist/node-types/genesis-check-stabilize.js.map +1 -0
- package/dist/node-types/genesis-check-threshold.d.ts +15 -0
- package/dist/node-types/genesis-check-threshold.d.ts.map +1 -0
- package/dist/node-types/genesis-check-threshold.js +29 -0
- package/dist/node-types/genesis-check-threshold.js.map +1 -0
- package/dist/node-types/genesis-commit.d.ts +17 -0
- package/dist/node-types/genesis-commit.d.ts.map +1 -0
- package/dist/node-types/genesis-commit.js +59 -0
- package/dist/node-types/genesis-commit.js.map +1 -0
- package/dist/node-types/genesis-compile-validate.d.ts +26 -0
- package/dist/node-types/genesis-compile-validate.d.ts.map +1 -0
- package/dist/node-types/genesis-compile-validate.js +60 -0
- package/dist/node-types/genesis-compile-validate.js.map +1 -0
- package/dist/node-types/genesis-diff-fingerprint.d.ts +15 -0
- package/dist/node-types/genesis-diff-fingerprint.d.ts.map +1 -0
- package/dist/node-types/genesis-diff-fingerprint.js +59 -0
- package/dist/node-types/genesis-diff-fingerprint.js.map +1 -0
- package/dist/node-types/genesis-diff-workflow.d.ts +15 -0
- package/dist/node-types/genesis-diff-workflow.d.ts.map +1 -0
- package/dist/node-types/genesis-diff-workflow.js +39 -0
- package/dist/node-types/genesis-diff-workflow.js.map +1 -0
- package/dist/node-types/genesis-load-config.d.ts +17 -0
- package/dist/node-types/genesis-load-config.d.ts.map +1 -0
- package/dist/node-types/genesis-load-config.js +35 -0
- package/dist/node-types/genesis-load-config.js.map +1 -0
- package/dist/node-types/genesis-observe.d.ts +18 -0
- package/dist/node-types/genesis-observe.d.ts.map +1 -0
- package/dist/node-types/genesis-observe.js +101 -0
- package/dist/node-types/genesis-observe.js.map +1 -0
- package/dist/node-types/genesis-propose.d.ts +17 -0
- package/dist/node-types/genesis-propose.d.ts.map +1 -0
- package/dist/node-types/genesis-propose.js +67 -0
- package/dist/node-types/genesis-propose.js.map +1 -0
- package/dist/node-types/genesis-report.d.ts +18 -0
- package/dist/node-types/genesis-report.d.ts.map +1 -0
- package/dist/node-types/genesis-report.js +61 -0
- package/dist/node-types/genesis-report.js.map +1 -0
- package/dist/node-types/genesis-snapshot.d.ts +15 -0
- package/dist/node-types/genesis-snapshot.d.ts.map +1 -0
- package/dist/node-types/genesis-snapshot.js +26 -0
- package/dist/node-types/genesis-snapshot.js.map +1 -0
- package/dist/node-types/genesis-try-apply.d.ts +18 -0
- package/dist/node-types/genesis-try-apply.d.ts.map +1 -0
- package/dist/node-types/genesis-try-apply.js +109 -0
- package/dist/node-types/genesis-try-apply.js.map +1 -0
- package/dist/node-types/genesis-update-history.d.ts +15 -0
- package/dist/node-types/genesis-update-history.d.ts.map +1 -0
- package/dist/node-types/genesis-update-history.js +57 -0
- package/dist/node-types/genesis-update-history.js.map +1 -0
- package/dist/node-types/genesis-validate-proposal.d.ts +16 -0
- package/dist/node-types/genesis-validate-proposal.d.ts.map +1 -0
- package/dist/node-types/genesis-validate-proposal.js +52 -0
- package/dist/node-types/genesis-validate-proposal.js.map +1 -0
- package/dist/node-types/git-ops.d.ts +5 -8
- package/dist/node-types/git-ops.d.ts.map +1 -1
- package/dist/node-types/git-ops.js +16 -14
- package/dist/node-types/git-ops.js.map +1 -1
- package/dist/node-types/index.d.ts +17 -0
- package/dist/node-types/index.d.ts.map +1 -1
- package/dist/node-types/index.js +17 -0
- package/dist/node-types/index.js.map +1 -1
- package/dist/node-types/load-config.d.ts +4 -2
- package/dist/node-types/load-config.d.ts.map +1 -1
- package/dist/node-types/load-config.js +3 -2
- package/dist/node-types/load-config.js.map +1 -1
- package/dist/node-types/plan-task.d.ts +5 -20
- package/dist/node-types/plan-task.d.ts.map +1 -1
- package/dist/node-types/plan-task.js +16 -85
- package/dist/node-types/plan-task.js.map +1 -1
- package/dist/node-types/read-workflow.d.ts +5 -20
- package/dist/node-types/read-workflow.d.ts.map +1 -1
- package/dist/node-types/read-workflow.js +16 -28
- package/dist/node-types/read-workflow.js.map +1 -1
- package/dist/node-types/receive-task.d.ts +9 -20
- package/dist/node-types/receive-task.d.ts.map +1 -1
- package/dist/node-types/receive-task.js +16 -19
- package/dist/node-types/receive-task.js.map +1 -1
- package/dist/node-types/report.d.ts +3 -4
- package/dist/node-types/report.d.ts.map +1 -1
- package/dist/node-types/report.js +6 -6
- package/dist/node-types/report.js.map +1 -1
- package/dist/node-types/resolve-target.d.ts +7 -15
- package/dist/node-types/resolve-target.d.ts.map +1 -1
- package/dist/node-types/resolve-target.js +47 -47
- package/dist/node-types/resolve-target.js.map +1 -1
- package/dist/node-types/route-task.d.ts +4 -16
- package/dist/node-types/route-task.d.ts.map +1 -1
- package/dist/node-types/route-task.js +6 -13
- package/dist/node-types/route-task.js.map +1 -1
- package/dist/node-types/send-notify.d.ts +5 -11
- package/dist/node-types/send-notify.d.ts.map +1 -1
- package/dist/node-types/send-notify.js +17 -24
- package/dist/node-types/send-notify.js.map +1 -1
- package/dist/node-types/validate-result.d.ts +11 -19
- package/dist/node-types/validate-result.d.ts.map +1 -1
- package/dist/node-types/validate-result.js +18 -33
- package/dist/node-types/validate-result.js.map +1 -1
- package/dist/workflows/genesis-task.d.ts +52 -0
- package/dist/workflows/genesis-task.d.ts.map +1 -0
- package/dist/workflows/genesis-task.js +56 -0
- package/dist/workflows/genesis-task.js.map +1 -0
- package/dist/workflows/index.d.ts +1 -1
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/weaver-bot-batch.d.ts +15 -26
- package/dist/workflows/weaver-bot-batch.d.ts.map +1 -1
- package/dist/workflows/weaver-bot-batch.js +15 -26
- package/dist/workflows/weaver-bot-batch.js.map +1 -1
- package/dist/workflows/weaver-bot.d.ts +18 -32
- package/dist/workflows/weaver-bot.d.ts.map +1 -1
- package/dist/workflows/weaver-bot.js +18 -32
- package/dist/workflows/weaver-bot.js.map +1 -1
- package/dist/workflows/weaver.d.ts +9 -9
- package/dist/workflows/weaver.js +9 -9
- package/flowweaver.manifest.json +493 -557
- package/package.json +1 -1
- package/dist/workflows/weaver-bot-session.d.ts +0 -65
- package/dist/workflows/weaver-bot-session.d.ts.map +0 -1
- package/dist/workflows/weaver-bot-session.js +0 -68
- package/dist/workflows/weaver-bot-session.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-target.js","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute-target.js","sourceRoot":"","sources":["../../src/node-types/execute-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,23 @@
|
|
|
1
|
+
import type { WeaverEnv } from '../bot/types.js';
|
|
1
2
|
/**
|
|
2
3
|
* When validation fails, sends errors + context to the AI and
|
|
3
4
|
* asks it to produce a repair plan.
|
|
4
5
|
*
|
|
5
6
|
* @flowWeaver nodeType
|
|
6
7
|
* @label Fix Errors
|
|
7
|
-
* @input
|
|
8
|
-
* @input
|
|
9
|
-
* @input
|
|
10
|
-
* @
|
|
11
|
-
* @
|
|
12
|
-
* @
|
|
13
|
-
* @output projectDir [order:0] - Project root directory (pass-through)
|
|
14
|
-
* @output config [order:1] - Config (pass-through)
|
|
15
|
-
* @output providerType [order:2] - Provider type (pass-through)
|
|
16
|
-
* @output providerInfo [order:3] - Provider info (pass-through)
|
|
17
|
-
* @output fixPlanJson [order:4] - Fix plan (JSON, same schema as planJson)
|
|
18
|
-
* @output taskJson [order:5] - Task (pass-through)
|
|
8
|
+
* @input env [order:0] - Weaver environment bundle
|
|
9
|
+
* @input validationResultJson [order:1] - Validation results (JSON)
|
|
10
|
+
* @input taskJson [order:2] - Task (JSON, pass-through)
|
|
11
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
12
|
+
* @output fixPlanJson [order:1] - Fix plan (JSON, same schema as planJson)
|
|
13
|
+
* @output taskJson [order:2] - Task (pass-through)
|
|
19
14
|
* @output onSuccess [order:-2] - On Success
|
|
20
15
|
* @output onFailure [order:-1] - On Failure
|
|
21
16
|
*/
|
|
22
|
-
export declare function weaverFixErrors(execute: boolean,
|
|
17
|
+
export declare function weaverFixErrors(execute: boolean, env: WeaverEnv, validationResultJson: string, taskJson: string): Promise<{
|
|
23
18
|
onSuccess: boolean;
|
|
24
19
|
onFailure: boolean;
|
|
25
|
-
|
|
26
|
-
config: string;
|
|
27
|
-
providerType: string;
|
|
28
|
-
providerInfo: string;
|
|
20
|
+
env: WeaverEnv;
|
|
29
21
|
fixPlanJson: string;
|
|
30
22
|
taskJson: string;
|
|
31
23
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-errors.d.ts","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fix-errors.d.ts","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CACvC,CAAC,CAwCD"}
|
|
@@ -1,79 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function callCli(provider, prompt) {
|
|
3
|
-
if (provider === 'claude-cli') {
|
|
4
|
-
return execSync('claude -p --output-format text', {
|
|
5
|
-
input: prompt, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 120_000,
|
|
6
|
-
}).trim();
|
|
7
|
-
}
|
|
8
|
-
if (provider === 'copilot-cli') {
|
|
9
|
-
return execSync('copilot -p --silent --allow-all-tools', {
|
|
10
|
-
input: prompt, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'], timeout: 120_000,
|
|
11
|
-
}).trim();
|
|
12
|
-
}
|
|
13
|
-
throw new Error(`Unknown CLI provider: ${provider}`);
|
|
14
|
-
}
|
|
15
|
-
async function callApi(apiKey, model, maxTokens, systemPrompt, userPrompt) {
|
|
16
|
-
const body = JSON.stringify({
|
|
17
|
-
model, max_tokens: maxTokens, system: systemPrompt,
|
|
18
|
-
messages: [{ role: 'user', content: userPrompt }],
|
|
19
|
-
});
|
|
20
|
-
const response = await fetch('https://api.anthropic.com/v1/messages', {
|
|
21
|
-
method: 'POST',
|
|
22
|
-
headers: { 'x-api-key': apiKey, 'anthropic-version': '2023-06-01', 'content-type': 'application/json' },
|
|
23
|
-
body,
|
|
24
|
-
});
|
|
25
|
-
if (!response.ok) {
|
|
26
|
-
const text = await response.text();
|
|
27
|
-
throw new Error(`Anthropic API error ${response.status}: ${text.slice(0, 200)}`);
|
|
28
|
-
}
|
|
29
|
-
const json = await response.json();
|
|
30
|
-
return json.content[0]?.text ?? '';
|
|
31
|
-
}
|
|
32
|
-
function parseJsonResponse(text) {
|
|
33
|
-
let cleaned = text.trim();
|
|
34
|
-
if (cleaned.startsWith('```')) {
|
|
35
|
-
cleaned = cleaned.replace(/^```(?:json)?\s*\n?/, '').replace(/\n?```\s*$/, '');
|
|
36
|
-
}
|
|
37
|
-
try {
|
|
38
|
-
return JSON.parse(cleaned);
|
|
39
|
-
}
|
|
40
|
-
catch { /* fallthrough */ }
|
|
41
|
-
const match = cleaned.match(/\{[\s\S]*\}/);
|
|
42
|
-
if (match)
|
|
43
|
-
return JSON.parse(match[0]);
|
|
44
|
-
throw new Error(`Failed to parse AI response as JSON: ${text.slice(0, 200)}`);
|
|
45
|
-
}
|
|
1
|
+
import { callCli, callApi, parseJsonResponse } from '../bot/ai-client.js';
|
|
46
2
|
/**
|
|
47
3
|
* When validation fails, sends errors + context to the AI and
|
|
48
4
|
* asks it to produce a repair plan.
|
|
49
5
|
*
|
|
50
6
|
* @flowWeaver nodeType
|
|
51
7
|
* @label Fix Errors
|
|
52
|
-
* @input
|
|
53
|
-
* @input
|
|
54
|
-
* @input
|
|
55
|
-
* @
|
|
56
|
-
* @
|
|
57
|
-
* @
|
|
58
|
-
* @output projectDir [order:0] - Project root directory (pass-through)
|
|
59
|
-
* @output config [order:1] - Config (pass-through)
|
|
60
|
-
* @output providerType [order:2] - Provider type (pass-through)
|
|
61
|
-
* @output providerInfo [order:3] - Provider info (pass-through)
|
|
62
|
-
* @output fixPlanJson [order:4] - Fix plan (JSON, same schema as planJson)
|
|
63
|
-
* @output taskJson [order:5] - Task (pass-through)
|
|
8
|
+
* @input env [order:0] - Weaver environment bundle
|
|
9
|
+
* @input validationResultJson [order:1] - Validation results (JSON)
|
|
10
|
+
* @input taskJson [order:2] - Task (JSON, pass-through)
|
|
11
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
12
|
+
* @output fixPlanJson [order:1] - Fix plan (JSON, same schema as planJson)
|
|
13
|
+
* @output taskJson [order:2] - Task (pass-through)
|
|
64
14
|
* @output onSuccess [order:-2] - On Success
|
|
65
15
|
* @output onFailure [order:-1] - On Failure
|
|
66
16
|
*/
|
|
67
|
-
export async function weaverFixErrors(execute,
|
|
68
|
-
const passthrough = { projectDir, config, providerType, providerInfo, taskJson };
|
|
17
|
+
export async function weaverFixErrors(execute, env, validationResultJson, taskJson) {
|
|
69
18
|
if (!execute) {
|
|
70
|
-
return { onSuccess: true, onFailure: false,
|
|
19
|
+
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: '{"steps":[],"summary":"dry run"}' };
|
|
71
20
|
}
|
|
72
|
-
const pInfo =
|
|
21
|
+
const { providerInfo: pInfo } = env;
|
|
73
22
|
const validation = JSON.parse(validationResultJson);
|
|
74
23
|
const errors = validation.filter(v => !v.valid);
|
|
75
24
|
if (errors.length === 0) {
|
|
76
|
-
return { onSuccess: true, onFailure: false,
|
|
25
|
+
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: '{"steps":[],"summary":"no errors to fix"}' };
|
|
77
26
|
}
|
|
78
27
|
let systemPrompt;
|
|
79
28
|
try {
|
|
@@ -95,12 +44,12 @@ export async function weaverFixErrors(execute, projectDir, config, providerType,
|
|
|
95
44
|
}
|
|
96
45
|
const plan = parseJsonResponse(text);
|
|
97
46
|
console.log(`\x1b[36m→ Fix plan: ${plan.summary ?? 'generated'}\x1b[0m`);
|
|
98
|
-
return { onSuccess: true, onFailure: false,
|
|
47
|
+
return { onSuccess: true, onFailure: false, env, taskJson, fixPlanJson: JSON.stringify(plan) };
|
|
99
48
|
}
|
|
100
49
|
catch (err) {
|
|
101
50
|
const msg = err instanceof Error ? err.message : String(err);
|
|
102
51
|
console.error(`\x1b[31m→ Fix planning failed: ${msg}\x1b[0m`);
|
|
103
|
-
return { onSuccess: false, onFailure: true,
|
|
52
|
+
return { onSuccess: false, onFailure: true, env, taskJson, fixPlanJson: JSON.stringify({ steps: [], summary: `Fix failed: ${msg}` }) };
|
|
104
53
|
}
|
|
105
54
|
}
|
|
106
55
|
//# sourceMappingURL=fix-errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-errors.js","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fix-errors.js","sourceRoot":"","sources":["../../src/node-types/fix-errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB,EAChB,GAAc,EACd,oBAA4B,EAC5B,QAAgB;IAMhB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;IAC/G,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAA8D,CAAC;IACjH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;IACxH,CAAC;IAED,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpD,YAAY,GAAG,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,yCAAyC,CAAC;IAC3D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,8CAA8C,YAAY,0HAA0H,CAAC;IAExM,IAAI,CAAC;QACH,IAAI,IAAY,CAAC;QACjB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAO,EAAE,KAAK,CAAC,KAAK,IAAI,mBAAmB,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7H,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,uBAAwB,IAA6B,CAAC,OAAO,IAAI,WAAW,SAAS,CAAC,CAAC;QACnG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IACjG,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,SAAS,CAAC,CAAC;QAC9D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;IACzI,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scoped retry loop for apply + compile. Delegates the actual work to
|
|
3
|
+
* a child node via the attempt callback, and between failures restores
|
|
4
|
+
* the snapshot and asks the AI to revise the proposal.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @label Genesis Apply Retry
|
|
8
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
9
|
+
* @output attemptCtx scope:attempt [order:11] - Context for child (JSON)
|
|
10
|
+
* @input attemptCtx scope:attempt [order:12] - Result context from child (JSON)
|
|
11
|
+
* @output ctx [order:0] - Genesis context with applyResultJson (JSON)
|
|
12
|
+
* @output onSuccess [order:-2] - On Success
|
|
13
|
+
* @output onFailure [order:-1] - On Failure
|
|
14
|
+
*/
|
|
15
|
+
export declare function genesisApplyRetry(execute: boolean, ctx: string, attempt: (start: boolean, attemptCtx: string) => {
|
|
16
|
+
success: boolean;
|
|
17
|
+
failure: boolean;
|
|
18
|
+
attemptCtx: string;
|
|
19
|
+
}): Promise<{
|
|
20
|
+
onSuccess: boolean;
|
|
21
|
+
onFailure: boolean;
|
|
22
|
+
ctx: string;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=genesis-apply-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply-retry.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-apply-retry.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CACP,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,KACf;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9D,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC,CA4DD"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { callCli, callApi, parseJsonResponse } from '../bot/ai-client.js';
|
|
4
|
+
import { GenesisStore } from '../bot/genesis-store.js';
|
|
5
|
+
/**
|
|
6
|
+
* Scoped retry loop for apply + compile. Delegates the actual work to
|
|
7
|
+
* a child node via the attempt callback, and between failures restores
|
|
8
|
+
* the snapshot and asks the AI to revise the proposal.
|
|
9
|
+
*
|
|
10
|
+
* @flowWeaver nodeType
|
|
11
|
+
* @label Genesis Apply Retry
|
|
12
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
13
|
+
* @output attemptCtx scope:attempt [order:11] - Context for child (JSON)
|
|
14
|
+
* @input attemptCtx scope:attempt [order:12] - Result context from child (JSON)
|
|
15
|
+
* @output ctx [order:0] - Genesis context with applyResultJson (JSON)
|
|
16
|
+
* @output onSuccess [order:-2] - On Success
|
|
17
|
+
* @output onFailure [order:-1] - On Failure
|
|
18
|
+
*/
|
|
19
|
+
export async function genesisApplyRetry(execute, ctx, attempt) {
|
|
20
|
+
const context = JSON.parse(ctx);
|
|
21
|
+
if (!execute) {
|
|
22
|
+
const result = { applied: 0, failed: 0, errors: [] };
|
|
23
|
+
context.applyResultJson = JSON.stringify(result);
|
|
24
|
+
context.error = '';
|
|
25
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
26
|
+
}
|
|
27
|
+
const { env } = context;
|
|
28
|
+
const maxAttempts = 3;
|
|
29
|
+
let lastResult = '';
|
|
30
|
+
let lastErrors = '';
|
|
31
|
+
for (let i = 1; i <= maxAttempts; i++) {
|
|
32
|
+
console.log(`\x1b[36m→ Apply attempt ${i}/${maxAttempts}\x1b[0m`);
|
|
33
|
+
const outcome = attempt(true, JSON.stringify(context));
|
|
34
|
+
const childCtx = JSON.parse(outcome.attemptCtx);
|
|
35
|
+
lastResult = childCtx.applyResultJson ?? '';
|
|
36
|
+
lastErrors = childCtx.error ?? '';
|
|
37
|
+
if (outcome.success) {
|
|
38
|
+
// Merge child results back
|
|
39
|
+
context.applyResultJson = childCtx.applyResultJson;
|
|
40
|
+
context.error = '';
|
|
41
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
42
|
+
}
|
|
43
|
+
if (i < maxAttempts) {
|
|
44
|
+
console.log('\x1b[33m→ Requesting revised proposal from AI...\x1b[0m');
|
|
45
|
+
const config = JSON.parse(context.genesisConfigJson);
|
|
46
|
+
const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
|
|
47
|
+
const store = new GenesisStore(env.projectDir);
|
|
48
|
+
const snapshot = store.loadSnapshot(context.snapshotPath);
|
|
49
|
+
if (snapshot) {
|
|
50
|
+
fs.writeFileSync(targetPath, snapshot, 'utf-8');
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
const revisedProposal = await reviseProposal(env, context.proposalJson, lastErrors);
|
|
54
|
+
context.proposalJson = revisedProposal;
|
|
55
|
+
console.log('\x1b[36m→ Revised proposal received\x1b[0m');
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
59
|
+
console.error(`\x1b[31m→ AI revision failed: ${msg}\x1b[0m`);
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const errorDesc = lastErrors
|
|
65
|
+
? `Apply/compile failed after ${maxAttempts} attempts. Last errors: ${lastErrors}`
|
|
66
|
+
: `Apply failed after ${maxAttempts} attempts (all operations failed)`;
|
|
67
|
+
context.applyResultJson = lastResult;
|
|
68
|
+
context.error = errorDesc;
|
|
69
|
+
return { onSuccess: false, onFailure: true, ctx: JSON.stringify(context) };
|
|
70
|
+
}
|
|
71
|
+
async function reviseProposal(env, currentProposal, compileErrors) {
|
|
72
|
+
const { providerInfo: pInfo } = env;
|
|
73
|
+
const systemPrompt = 'You are a workflow evolution engine. Return ONLY valid JSON matching the GenesisProposal schema (operations array with type, args, costUnits, rationale; totalCost; impactLevel; summary).';
|
|
74
|
+
const userPrompt = [
|
|
75
|
+
'The following proposal caused compile/validate errors when applied:',
|
|
76
|
+
'',
|
|
77
|
+
'## Current Proposal',
|
|
78
|
+
currentProposal,
|
|
79
|
+
'',
|
|
80
|
+
'## Compile Errors',
|
|
81
|
+
compileErrors,
|
|
82
|
+
'',
|
|
83
|
+
'Revise the proposal to fix these errors. Return the full revised proposal as JSON.',
|
|
84
|
+
].join('\n');
|
|
85
|
+
let text;
|
|
86
|
+
if (pInfo.type === 'anthropic') {
|
|
87
|
+
text = await callApi(pInfo.apiKey, pInfo.model ?? 'claude-sonnet-4-6', pInfo.maxTokens ?? 8192, systemPrompt, userPrompt);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
text = callCli(pInfo.type, systemPrompt + '\n\n' + userPrompt);
|
|
91
|
+
}
|
|
92
|
+
const parsed = parseJsonResponse(text);
|
|
93
|
+
return JSON.stringify(parsed);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=genesis-apply-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply-retry.js","sourceRoot":"","sources":["../../src/node-types/genesis-apply-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { WeaverEnv } from '../bot/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Applies proposal operations to the target workflow by invoking the
|
|
4
|
+
* flow-weaver CLI modify command for each operation.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @label Genesis Apply
|
|
8
|
+
* @input env [order:0] - Weaver environment bundle
|
|
9
|
+
* @input genesisConfigJson [order:1] - Genesis configuration (JSON)
|
|
10
|
+
* @input proposalJson [order:2] - Genesis proposal (JSON)
|
|
11
|
+
* @input snapshotPath [order:3] - Path to the pre-apply snapshot
|
|
12
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
13
|
+
* @output genesisConfigJson [order:1] - Genesis configuration (pass-through)
|
|
14
|
+
* @output proposalJson [order:2] - Genesis proposal (pass-through)
|
|
15
|
+
* @output snapshotPath [order:3] - Path to the pre-apply snapshot (pass-through)
|
|
16
|
+
* @output applyResultJson [order:4] - Apply result (JSON)
|
|
17
|
+
* @output onSuccess [order:-2] - On Success
|
|
18
|
+
* @output onFailure [order:-1] - On Failure
|
|
19
|
+
*/
|
|
20
|
+
export declare function genesisApply(execute: boolean, env: WeaverEnv, genesisConfigJson: string, proposalJson: string, snapshotPath: string): Promise<{
|
|
21
|
+
onSuccess: boolean;
|
|
22
|
+
onFailure: boolean;
|
|
23
|
+
env: WeaverEnv;
|
|
24
|
+
genesisConfigJson: string;
|
|
25
|
+
proposalJson: string;
|
|
26
|
+
snapshotPath: string;
|
|
27
|
+
applyResultJson: string;
|
|
28
|
+
}>;
|
|
29
|
+
//# sourceMappingURL=genesis-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-apply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAoD,MAAM,iBAAiB,CAAC;AAEnG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CA2CD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import { execFileSync } from 'node:child_process';
|
|
3
|
+
/**
|
|
4
|
+
* Applies proposal operations to the target workflow by invoking the
|
|
5
|
+
* flow-weaver CLI modify command for each operation.
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Apply
|
|
9
|
+
* @input env [order:0] - Weaver environment bundle
|
|
10
|
+
* @input genesisConfigJson [order:1] - Genesis configuration (JSON)
|
|
11
|
+
* @input proposalJson [order:2] - Genesis proposal (JSON)
|
|
12
|
+
* @input snapshotPath [order:3] - Path to the pre-apply snapshot
|
|
13
|
+
* @output env [order:0] - Weaver environment bundle (pass-through)
|
|
14
|
+
* @output genesisConfigJson [order:1] - Genesis configuration (pass-through)
|
|
15
|
+
* @output proposalJson [order:2] - Genesis proposal (pass-through)
|
|
16
|
+
* @output snapshotPath [order:3] - Path to the pre-apply snapshot (pass-through)
|
|
17
|
+
* @output applyResultJson [order:4] - Apply result (JSON)
|
|
18
|
+
* @output onSuccess [order:-2] - On Success
|
|
19
|
+
* @output onFailure [order:-1] - On Failure
|
|
20
|
+
*/
|
|
21
|
+
export async function genesisApply(execute, env, genesisConfigJson, proposalJson, snapshotPath) {
|
|
22
|
+
if (!execute) {
|
|
23
|
+
const result = { applied: 0, failed: 0, errors: [] };
|
|
24
|
+
return { onSuccess: true, onFailure: false, env, genesisConfigJson, proposalJson, snapshotPath, applyResultJson: JSON.stringify(result) };
|
|
25
|
+
}
|
|
26
|
+
const config = JSON.parse(genesisConfigJson);
|
|
27
|
+
const proposal = JSON.parse(proposalJson);
|
|
28
|
+
const targetPath = path.resolve(env.projectDir, config.targetWorkflow);
|
|
29
|
+
let applied = 0;
|
|
30
|
+
let failed = 0;
|
|
31
|
+
const errors = [];
|
|
32
|
+
for (const op of proposal.operations) {
|
|
33
|
+
try {
|
|
34
|
+
const cliArgs = buildModifyArgs(op, targetPath);
|
|
35
|
+
execFileSync('flow-weaver', cliArgs, {
|
|
36
|
+
cwd: env.projectDir,
|
|
37
|
+
encoding: 'utf-8',
|
|
38
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
39
|
+
timeout: 30_000,
|
|
40
|
+
});
|
|
41
|
+
applied++;
|
|
42
|
+
console.log(`\x1b[32m + ${op.type}: ${op.rationale}\x1b[0m`);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
failed++;
|
|
46
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
47
|
+
errors.push(`${op.type}: ${msg}`);
|
|
48
|
+
console.error(`\x1b[31m x ${op.type}: ${msg}\x1b[0m`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const result = { applied, failed, errors };
|
|
52
|
+
const success = failed === 0 && applied > 0;
|
|
53
|
+
console.log(`\x1b[36m→ Apply: ${applied} succeeded, ${failed} failed\x1b[0m`);
|
|
54
|
+
return {
|
|
55
|
+
onSuccess: success, onFailure: !success,
|
|
56
|
+
env, genesisConfigJson, proposalJson, snapshotPath,
|
|
57
|
+
applyResultJson: JSON.stringify(result),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function buildModifyArgs(op, targetPath) {
|
|
61
|
+
switch (op.type) {
|
|
62
|
+
case 'addNode':
|
|
63
|
+
return ['modify', 'addNode', '--file', targetPath, '--nodeId', String(op.args.nodeId), '--nodeType', String(op.args.nodeType)];
|
|
64
|
+
case 'removeNode':
|
|
65
|
+
return ['modify', 'removeNode', '--file', targetPath, '--nodeId', String(op.args.nodeId)];
|
|
66
|
+
case 'addConnection':
|
|
67
|
+
return ['modify', 'addConnection', '--file', targetPath, '--from', String(op.args.from), '--to', String(op.args.to)];
|
|
68
|
+
case 'removeConnection':
|
|
69
|
+
return ['modify', 'removeConnection', '--file', targetPath, '--from', String(op.args.from), '--to', String(op.args.to)];
|
|
70
|
+
case 'implementNode':
|
|
71
|
+
return ['implement', targetPath, '--nodeId', String(op.args.nodeId)];
|
|
72
|
+
default:
|
|
73
|
+
throw new Error(`Unknown genesis operation type: ${op.type}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=genesis-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-apply.js","sourceRoot":"","sources":["../../src/node-types/genesis-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles approval for genesis proposals. Auto-approves when approval
|
|
3
|
+
* is not required or when config approval mode is 'auto'. Otherwise
|
|
4
|
+
* displays the proposal summary and diff, then rejects (non-interactive
|
|
5
|
+
* environments cannot prompt).
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Approve
|
|
9
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
10
|
+
* @output ctx [order:0] - Genesis context with approved (JSON)
|
|
11
|
+
* @output onSuccess [order:-2] - On Success
|
|
12
|
+
* @output onFailure [order:-1] [hidden] - On Failure
|
|
13
|
+
*/
|
|
14
|
+
export declare function genesisApprove(execute: boolean, ctx: string): Promise<{
|
|
15
|
+
onSuccess: boolean;
|
|
16
|
+
onFailure: boolean;
|
|
17
|
+
ctx: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=genesis-approve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-approve.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-approve.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,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,CA8CD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles approval for genesis proposals. Auto-approves when approval
|
|
3
|
+
* is not required or when config approval mode is 'auto'. Otherwise
|
|
4
|
+
* displays the proposal summary and diff, then rejects (non-interactive
|
|
5
|
+
* environments cannot prompt).
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @label Genesis Approve
|
|
9
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
10
|
+
* @output ctx [order:0] - Genesis context with approved (JSON)
|
|
11
|
+
* @output onSuccess [order:-2] - On Success
|
|
12
|
+
* @output onFailure [order:-1] [hidden] - On Failure
|
|
13
|
+
*/
|
|
14
|
+
export async function genesisApprove(execute, ctx) {
|
|
15
|
+
const context = JSON.parse(ctx);
|
|
16
|
+
if (!execute) {
|
|
17
|
+
context.approved = true;
|
|
18
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
19
|
+
}
|
|
20
|
+
// Auto-approve when approval is not required
|
|
21
|
+
if (!context.approvalRequired) {
|
|
22
|
+
console.log('\x1b[32m→ Auto-approved (below threshold)\x1b[0m');
|
|
23
|
+
context.approved = true;
|
|
24
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
25
|
+
}
|
|
26
|
+
const { config } = context.env;
|
|
27
|
+
const approvalMode = typeof config.approval === 'string' ? config.approval : config.approval?.mode ?? 'prompt';
|
|
28
|
+
// Display proposal summary
|
|
29
|
+
const proposal = JSON.parse(context.proposalJson);
|
|
30
|
+
const diffData = JSON.parse(context.workflowDiffJson);
|
|
31
|
+
console.log('\n\x1b[1m┌─ Genesis Proposal ─────────────────────┐\x1b[0m');
|
|
32
|
+
console.log(`\x1b[1m│\x1b[0m Impact: ${proposal.impactLevel}`);
|
|
33
|
+
console.log(`\x1b[1m│\x1b[0m Summary: ${proposal.summary}`);
|
|
34
|
+
console.log(`\x1b[1m│\x1b[0m Operations: ${proposal.operations.length} (cost: ${proposal.totalCost})`);
|
|
35
|
+
for (const op of proposal.operations) {
|
|
36
|
+
console.log(`\x1b[1m│\x1b[0m ${op.type}: ${op.rationale}`);
|
|
37
|
+
}
|
|
38
|
+
console.log('\x1b[1m├─ Diff ─────────────────────────────────┤\x1b[0m');
|
|
39
|
+
for (const line of diffData.diff.split('\n').slice(0, 20)) {
|
|
40
|
+
console.log(`\x1b[1m│\x1b[0m ${line}`);
|
|
41
|
+
}
|
|
42
|
+
console.log('\x1b[1m└────────────────────────────────────────┘\x1b[0m\n');
|
|
43
|
+
// Auto mode approves automatically
|
|
44
|
+
if (approvalMode === 'auto') {
|
|
45
|
+
console.log('\x1b[32m→ Auto-approved (approval mode: auto)\x1b[0m');
|
|
46
|
+
context.approved = true;
|
|
47
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
48
|
+
}
|
|
49
|
+
// Non-auto modes reject in non-interactive context
|
|
50
|
+
console.log('\x1b[33m→ Rejected (approval required, non-auto mode)\x1b[0m');
|
|
51
|
+
context.approved = false;
|
|
52
|
+
return { onSuccess: true, onFailure: false, ctx: JSON.stringify(context) };
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=genesis-approve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-approve.js","sourceRoot":"","sources":["../../src/node-types/genesis-approve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines whether genesis should enter stabilize mode. This happens
|
|
3
|
+
* when the config flag is set or when the last 3 cycles were all
|
|
4
|
+
* rollbacks or rejections.
|
|
5
|
+
*
|
|
6
|
+
* @flowWeaver nodeType
|
|
7
|
+
* @expression
|
|
8
|
+
* @label Genesis Check Stabilize
|
|
9
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
10
|
+
* @output ctx [order:0] - Genesis context with stabilized (JSON)
|
|
11
|
+
* @output onFailure [hidden]
|
|
12
|
+
*/
|
|
13
|
+
export declare function genesisCheckStabilize(ctx: string): {
|
|
14
|
+
ctx: string;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=genesis-check-stabilize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-check-stabilize.d.ts","sourceRoot":"","sources":["../../src/node-types/genesis-check-stabilize.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAqBlE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { GenesisStore } from '../bot/genesis-store.js';
|
|
2
|
+
/**
|
|
3
|
+
* Determines whether genesis should enter stabilize mode. This happens
|
|
4
|
+
* when the config flag is set or when the last 3 cycles were all
|
|
5
|
+
* rollbacks or rejections.
|
|
6
|
+
*
|
|
7
|
+
* @flowWeaver nodeType
|
|
8
|
+
* @expression
|
|
9
|
+
* @label Genesis Check Stabilize
|
|
10
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
11
|
+
* @output ctx [order:0] - Genesis context with stabilized (JSON)
|
|
12
|
+
* @output onFailure [hidden]
|
|
13
|
+
*/
|
|
14
|
+
export function genesisCheckStabilize(ctx) {
|
|
15
|
+
const context = JSON.parse(ctx);
|
|
16
|
+
const config = JSON.parse(context.genesisConfigJson);
|
|
17
|
+
if (config.stabilize) {
|
|
18
|
+
console.log('\x1b[33m→ Stabilize mode: enabled by config\x1b[0m');
|
|
19
|
+
context.stabilized = true;
|
|
20
|
+
return { ctx: JSON.stringify(context) };
|
|
21
|
+
}
|
|
22
|
+
const store = new GenesisStore(context.env.projectDir);
|
|
23
|
+
const recent = store.getRecentOutcomes(3);
|
|
24
|
+
if (recent.length >= 3 && recent.every(o => o === 'rolled-back' || o === 'rejected')) {
|
|
25
|
+
console.log('\x1b[33m→ Stabilize mode: 3+ consecutive rollbacks/rejections\x1b[0m');
|
|
26
|
+
context.stabilized = true;
|
|
27
|
+
return { ctx: JSON.stringify(context) };
|
|
28
|
+
}
|
|
29
|
+
context.stabilized = false;
|
|
30
|
+
return { ctx: JSON.stringify(context) };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=genesis-check-stabilize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"genesis-check-stabilize.js","sourceRoot":"","sources":["../../src/node-types/genesis-check-stabilize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAkB,CAAC;IAEtE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;IAC3B,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares the proposal's impact level against the configured approval
|
|
3
|
+
* threshold to decide if human approval is required.
|
|
4
|
+
*
|
|
5
|
+
* @flowWeaver nodeType
|
|
6
|
+
* @expression
|
|
7
|
+
* @label Genesis Check Threshold
|
|
8
|
+
* @input ctx [order:0] - Genesis context (JSON)
|
|
9
|
+
* @output ctx [order:0] - Genesis context with approvalRequired (JSON)
|
|
10
|
+
* @output onFailure [hidden]
|
|
11
|
+
*/
|
|
12
|
+
export declare function genesisCheckThreshold(ctx: string): {
|
|
13
|
+
ctx: string;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=genesis-check-threshold.d.ts.map
|