@synergenius/flow-weaver-pack-weaver 0.9.191 → 0.9.193
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":"build-context.d.ts","sourceRoot":"","sources":["../../src/node-types/build-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-context.d.ts","sourceRoot":"","sources":["../../src/node-types/build-context.ts"],"names":[],"mappings":"AA6DA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CA+D/D"}
|
|
@@ -3,32 +3,62 @@ import * as fs from 'node:fs';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { HierarchyEventLog } from '../bot/hierarchy-event-log.js';
|
|
5
5
|
import { KnowledgeStore } from '../bot/knowledge-store.js';
|
|
6
|
-
/**
|
|
7
|
-
const
|
|
6
|
+
/** Profiles that work with Flow Weaver workflows and need FW context. */
|
|
7
|
+
const FW_PROFILES = new Set(['fw-developer']);
|
|
8
8
|
/**
|
|
9
|
-
* Check whether
|
|
10
|
-
*
|
|
9
|
+
* Check whether this task needs Flow Weaver context.
|
|
10
|
+
* Only fw-developer profile gets FW grammar/templates — plain developer doesn't.
|
|
11
|
+
* The profile is the signal, not keyword heuristics.
|
|
11
12
|
*/
|
|
12
|
-
function
|
|
13
|
+
function needsFwContext(taskJson) {
|
|
13
14
|
if (!taskJson)
|
|
14
15
|
return false;
|
|
15
16
|
try {
|
|
16
17
|
const task = JSON.parse(taskJson);
|
|
17
|
-
return
|
|
18
|
+
return FW_PROFILES.has(task.assignedProfile ?? '');
|
|
18
19
|
}
|
|
19
20
|
catch {
|
|
20
21
|
return false;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
|
-
* Resolve the flow-weaver binary
|
|
25
|
-
*
|
|
25
|
+
* Resolve the flow-weaver binary. Same search order as detect-provider's whichSafe:
|
|
26
|
+
* 1. .fw/tools/bin/flow-weaver (platform-installed)
|
|
27
|
+
* 2. node_modules/.bin/flow-weaver (npm-installed)
|
|
28
|
+
* 3. Walk up to 5 parents for both paths (monorepo/workspace root)
|
|
29
|
+
* 4. Global PATH via `which` (last resort)
|
|
30
|
+
* 5. null if not found (skip FW context, don't hang)
|
|
26
31
|
*/
|
|
27
32
|
function resolveFwBin(projectDir) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
// 1. Check project-local paths
|
|
34
|
+
const fwScoped = path.join(projectDir, '.fw', 'tools', 'bin', 'flow-weaver');
|
|
35
|
+
if (fs.existsSync(fwScoped))
|
|
36
|
+
return fwScoped;
|
|
37
|
+
const npmLocal = path.join(projectDir, 'node_modules', '.bin', 'flow-weaver');
|
|
38
|
+
if (fs.existsSync(npmLocal))
|
|
39
|
+
return npmLocal;
|
|
40
|
+
// 2. Walk parents
|
|
41
|
+
let dir = projectDir;
|
|
42
|
+
for (let i = 0; i < 5; i++) {
|
|
43
|
+
const parent = path.dirname(dir);
|
|
44
|
+
if (parent === dir)
|
|
45
|
+
break;
|
|
46
|
+
dir = parent;
|
|
47
|
+
const fwCandidate = path.join(dir, '.fw', 'tools', 'bin', 'flow-weaver');
|
|
48
|
+
if (fs.existsSync(fwCandidate))
|
|
49
|
+
return fwCandidate;
|
|
50
|
+
const npmCandidate = path.join(dir, 'node_modules', '.bin', 'flow-weaver');
|
|
51
|
+
if (fs.existsSync(npmCandidate))
|
|
52
|
+
return npmCandidate;
|
|
53
|
+
}
|
|
54
|
+
// 3. Global PATH
|
|
55
|
+
try {
|
|
56
|
+
const cmd = process.platform === 'win32' ? 'where' : 'which';
|
|
57
|
+
return execFileSync(cmd, ['flow-weaver'], { encoding: 'utf-8', timeout: 3000 }).trim() || null;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
32
62
|
}
|
|
33
63
|
/**
|
|
34
64
|
* Builds the knowledge bundle the AI needs for planning.
|
|
@@ -49,7 +79,7 @@ export function weaverBuildContext(ctx) {
|
|
|
49
79
|
const { projectDir } = context.env;
|
|
50
80
|
const task = JSON.parse(context.taskJson);
|
|
51
81
|
const sections = [];
|
|
52
|
-
const needsFw =
|
|
82
|
+
const needsFw = needsFwContext(context.taskJson);
|
|
53
83
|
const fwBin = needsFw ? resolveFwBin(projectDir) : null;
|
|
54
84
|
if (task.mode === 'modify' && task.targets?.length) {
|
|
55
85
|
// Adaptive context: minimal grammar + target files + referenced node types
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/node-types/build-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,
|
|
1
|
+
{"version":3,"file":"build-context.js","sourceRoot":"","sources":["../../src/node-types/build-context.ts"],"names":[],"mappings":"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"}
|
package/flowweaver.manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifestVersion": 2,
|
|
3
3
|
"name": "@synergenius/flow-weaver-pack-weaver",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.193",
|
|
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
|
@@ -5,31 +5,58 @@ import type { WeaverContext } from '../bot/types.js';
|
|
|
5
5
|
import { HierarchyEventLog } from '../bot/hierarchy-event-log.js';
|
|
6
6
|
import { KnowledgeStore } from '../bot/knowledge-store.js';
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
const
|
|
8
|
+
/** Profiles that work with Flow Weaver workflows and need FW context. */
|
|
9
|
+
const FW_PROFILES = new Set(['fw-developer']);
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Check whether
|
|
13
|
-
*
|
|
12
|
+
* Check whether this task needs Flow Weaver context.
|
|
13
|
+
* Only fw-developer profile gets FW grammar/templates — plain developer doesn't.
|
|
14
|
+
* The profile is the signal, not keyword heuristics.
|
|
14
15
|
*/
|
|
15
|
-
function
|
|
16
|
+
function needsFwContext(taskJson: string | undefined): boolean {
|
|
16
17
|
if (!taskJson) return false;
|
|
17
18
|
try {
|
|
18
|
-
const task = JSON.parse(taskJson) as {
|
|
19
|
-
return
|
|
19
|
+
const task = JSON.parse(taskJson) as { assignedProfile?: string };
|
|
20
|
+
return FW_PROFILES.has(task.assignedProfile ?? '');
|
|
20
21
|
} catch {
|
|
21
22
|
return false;
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
|
-
* Resolve the flow-weaver binary
|
|
27
|
-
*
|
|
27
|
+
* Resolve the flow-weaver binary. Same search order as detect-provider's whichSafe:
|
|
28
|
+
* 1. .fw/tools/bin/flow-weaver (platform-installed)
|
|
29
|
+
* 2. node_modules/.bin/flow-weaver (npm-installed)
|
|
30
|
+
* 3. Walk up to 5 parents for both paths (monorepo/workspace root)
|
|
31
|
+
* 4. Global PATH via `which` (last resort)
|
|
32
|
+
* 5. null if not found (skip FW context, don't hang)
|
|
28
33
|
*/
|
|
29
34
|
function resolveFwBin(projectDir: string): string | null {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return
|
|
35
|
+
// 1. Check project-local paths
|
|
36
|
+
const fwScoped = path.join(projectDir, '.fw', 'tools', 'bin', 'flow-weaver');
|
|
37
|
+
if (fs.existsSync(fwScoped)) return fwScoped;
|
|
38
|
+
const npmLocal = path.join(projectDir, 'node_modules', '.bin', 'flow-weaver');
|
|
39
|
+
if (fs.existsSync(npmLocal)) return npmLocal;
|
|
40
|
+
|
|
41
|
+
// 2. Walk parents
|
|
42
|
+
let dir = projectDir;
|
|
43
|
+
for (let i = 0; i < 5; i++) {
|
|
44
|
+
const parent = path.dirname(dir);
|
|
45
|
+
if (parent === dir) break;
|
|
46
|
+
dir = parent;
|
|
47
|
+
const fwCandidate = path.join(dir, '.fw', 'tools', 'bin', 'flow-weaver');
|
|
48
|
+
if (fs.existsSync(fwCandidate)) return fwCandidate;
|
|
49
|
+
const npmCandidate = path.join(dir, 'node_modules', '.bin', 'flow-weaver');
|
|
50
|
+
if (fs.existsSync(npmCandidate)) return npmCandidate;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// 3. Global PATH
|
|
54
|
+
try {
|
|
55
|
+
const cmd = process.platform === 'win32' ? 'where' : 'which';
|
|
56
|
+
return execFileSync(cmd, ['flow-weaver'], { encoding: 'utf-8', timeout: 3000 }).trim() || null;
|
|
57
|
+
} catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
33
60
|
}
|
|
34
61
|
|
|
35
62
|
/**
|
|
@@ -51,7 +78,7 @@ export function weaverBuildContext(ctx: string): { ctx: string } {
|
|
|
51
78
|
const { projectDir } = context.env;
|
|
52
79
|
const task = JSON.parse(context.taskJson!) as { mode?: string; targets?: string[] };
|
|
53
80
|
const sections: string[] = [];
|
|
54
|
-
const needsFw =
|
|
81
|
+
const needsFw = needsFwContext(context.taskJson);
|
|
55
82
|
const fwBin = needsFw ? resolveFwBin(projectDir) : null;
|
|
56
83
|
|
|
57
84
|
if (task.mode === 'modify' && task.targets?.length) {
|