motia 0.12.0-beta.157 → 0.12.0-beta.158-009673

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.
@@ -3,12 +3,13 @@
3
3
  "id": "hello-world-flow",
4
4
  "config": {
5
5
  "steps/hello/process-greeting.step.ts": {
6
- "x": 451,
7
- "y": -24
6
+ "x": 409,
7
+ "y": 44
8
8
  },
9
9
  "steps/hello/hello-api.step.ts": {
10
- "x": -37,
11
- "y": -68
10
+ "x": 0,
11
+ "y": 0,
12
+ "sourceHandlePosition": "right"
12
13
  }
13
14
  }
14
15
  }
@@ -1,13 +1,16 @@
1
- {
2
- "id": "hello-world-flow",
3
- "config": {
4
- "steps/hello/process-greeting.step.js": {
5
- "x": 451,
6
- "y": -24
7
- },
8
- "steps/hello/hello-api.step.js": {
9
- "x": -37,
10
- "y": -68
1
+ [
2
+ {
3
+ "id": "hello-world-flow",
4
+ "config": {
5
+ "steps/hello/process-greeting.step.js": {
6
+ "x": 409,
7
+ "y": 44
8
+ },
9
+ "steps/hello/hello-api.step.js": {
10
+ "x": 0,
11
+ "y": 0,
12
+ "sourceHandlePosition": "right"
13
+ }
11
14
  }
12
15
  }
13
- }
16
+ ]
@@ -1,13 +1,16 @@
1
- {
2
- "id": "hello-world-flow",
3
- "config": {
4
- "steps/hello/process_greeting_step.py": {
5
- "x": 451,
6
- "y": -24
7
- },
8
- "steps/hello/hello_api_step.py": {
9
- "x": -37,
10
- "y": -68
1
+ [
2
+ {
3
+ "id": "hello-world-flow",
4
+ "config": {
5
+ "steps/hello/process_greeting_step.py": {
6
+ "x": 409,
7
+ "y": 44
8
+ },
9
+ "steps/hello/hello_api_step.py": {
10
+ "x": 0,
11
+ "y": 0,
12
+ "sourceHandlePosition": "right"
13
+ }
11
14
  }
12
15
  }
13
- }
16
+ ]
@@ -3,25 +3,24 @@
3
3
  "id": "basic-tutorial",
4
4
  "config": {
5
5
  "steps/petstore/state-audit-cron.step.ts": {
6
- "x": -165,
7
- "y": 217,
6
+ "x": -175,
7
+ "y": 219,
8
8
  "sourceHandlePosition": "right"
9
9
  },
10
10
  "steps/petstore/process-food-order.step.ts": {
11
- "x": 211,
11
+ "x": 144,
12
12
  "y": 17,
13
- "sourceHandlePosition": "bottom",
14
- "targetHandlePosition": "left"
13
+ "sourceHandlePosition": "bottom"
14
+ },
15
+ "steps/petstore/notification.step.ts": {
16
+ "x": 331,
17
+ "y": 261,
18
+ "sourceHandlePosition": "bottom"
15
19
  },
16
20
  "steps/petstore/api.step.ts": {
17
- "x": -100,
21
+ "x": -175,
18
22
  "y": 3,
19
- "sourceHandlePosition": "right",
20
- "targetHandlePosition": "left"
21
- },
22
- "steps/petstore/notification.step.ts": {
23
- "x": 300,
24
- "y": 264
23
+ "sourceHandlePosition": "right"
25
24
  }
26
25
  }
27
26
  }
@@ -3,23 +3,23 @@
3
3
  "id": "basic-tutorial",
4
4
  "config": {
5
5
  "steps/petstore/state_audit_cron_step.py": {
6
- "x": -38,
7
- "y": 683,
6
+ "x": -175,
7
+ "y": 219,
8
8
  "sourceHandlePosition": "right"
9
9
  },
10
10
  "steps/petstore/process_food_order_step.py": {
11
- "x": 384,
12
- "y": 476,
13
- "targetHandlePosition": "left"
11
+ "x": 144,
12
+ "y": 17,
13
+ "sourceHandlePosition": "bottom"
14
14
  },
15
15
  "steps/petstore/notification_step.py": {
16
- "x": 601,
17
- "y": 724,
18
- "targetHandlePosition": "left"
16
+ "x": 331,
17
+ "y": 261,
18
+ "sourceHandlePosition": "bottom"
19
19
  },
20
20
  "steps/petstore/api_step.py": {
21
- "x": 15,
22
- "y": 461,
21
+ "x": -175,
22
+ "y": 3,
23
23
  "sourceHandlePosition": "right"
24
24
  }
25
25
  }
@@ -73,6 +73,11 @@ const collectFlows = async (projectDir, lockedData) => {
73
73
  }
74
74
  }
75
75
  catch (err) {
76
+ const errorMessage = err instanceof Error ? err.message : String(err);
77
+ if (errorMessage.includes('Executable ruby not found') || errorMessage.includes('Executable python not found')) {
78
+ console.warn(colors_1.default.yellow(`! [WARNING] Skipping step ${filePath}: ${errorMessage}`));
79
+ continue;
80
+ }
76
81
  throw new compilation_error_1.CompilationError(`Error collecting flow ${filePath}`, path_1.default.relative(projectDir, filePath), err);
77
82
  }
78
83
  }
@@ -36,6 +36,17 @@ async function getPythonCommand(requestedVersion, baseDir) {
36
36
  catch (error) {
37
37
  // If error, python command doesn't exist or can't be executed
38
38
  }
39
+ // Check if python3 exists
40
+ try {
41
+ const result = await (0, execute_command_1.executeCommand)('python3 --version', baseDir, { silent: true });
42
+ const versionMatch = result.match(/Python\s+(\d+)\.(\d+)\.(\d+)/);
43
+ if (versionMatch && parseInt(versionMatch[1], 10) >= 3) {
44
+ return 'python3';
45
+ }
46
+ }
47
+ catch (error) {
48
+ // If error, python3 command doesn't exist or can't be executed
49
+ }
39
50
  throw new Error('No compatible Python 3 installation found. Please install Python 3.');
40
51
  }
41
52
  function findPythonSitePackagesDir(venvLibPath, pythonVersion) {
@@ -3,12 +3,13 @@
3
3
  "id": "hello-world-flow",
4
4
  "config": {
5
5
  "steps/hello/process-greeting.step.ts": {
6
- "x": 451,
7
- "y": -24
6
+ "x": 409,
7
+ "y": 44
8
8
  },
9
9
  "steps/hello/hello-api.step.ts": {
10
- "x": -37,
11
- "y": -68
10
+ "x": 0,
11
+ "y": 0,
12
+ "sourceHandlePosition": "right"
12
13
  }
13
14
  }
14
15
  }
@@ -1,13 +1,16 @@
1
- {
2
- "id": "hello-world-flow",
3
- "config": {
4
- "steps/hello/process-greeting.step.js": {
5
- "x": 451,
6
- "y": -24
7
- },
8
- "steps/hello/hello-api.step.js": {
9
- "x": -37,
10
- "y": -68
1
+ [
2
+ {
3
+ "id": "hello-world-flow",
4
+ "config": {
5
+ "steps/hello/process-greeting.step.js": {
6
+ "x": 409,
7
+ "y": 44
8
+ },
9
+ "steps/hello/hello-api.step.js": {
10
+ "x": 0,
11
+ "y": 0,
12
+ "sourceHandlePosition": "right"
13
+ }
11
14
  }
12
15
  }
13
- }
16
+ ]
@@ -1,13 +1,16 @@
1
- {
2
- "id": "hello-world-flow",
3
- "config": {
4
- "steps/hello/process_greeting_step.py": {
5
- "x": 451,
6
- "y": -24
7
- },
8
- "steps/hello/hello_api_step.py": {
9
- "x": -37,
10
- "y": -68
1
+ [
2
+ {
3
+ "id": "hello-world-flow",
4
+ "config": {
5
+ "steps/hello/process_greeting_step.py": {
6
+ "x": 409,
7
+ "y": 44
8
+ },
9
+ "steps/hello/hello_api_step.py": {
10
+ "x": 0,
11
+ "y": 0,
12
+ "sourceHandlePosition": "right"
13
+ }
11
14
  }
12
15
  }
13
- }
16
+ ]
@@ -3,25 +3,24 @@
3
3
  "id": "basic-tutorial",
4
4
  "config": {
5
5
  "steps/petstore/state-audit-cron.step.ts": {
6
- "x": -165,
7
- "y": 217,
6
+ "x": -175,
7
+ "y": 219,
8
8
  "sourceHandlePosition": "right"
9
9
  },
10
10
  "steps/petstore/process-food-order.step.ts": {
11
- "x": 211,
11
+ "x": 144,
12
12
  "y": 17,
13
- "sourceHandlePosition": "bottom",
14
- "targetHandlePosition": "left"
13
+ "sourceHandlePosition": "bottom"
14
+ },
15
+ "steps/petstore/notification.step.ts": {
16
+ "x": 331,
17
+ "y": 261,
18
+ "sourceHandlePosition": "bottom"
15
19
  },
16
20
  "steps/petstore/api.step.ts": {
17
- "x": -100,
21
+ "x": -175,
18
22
  "y": 3,
19
- "sourceHandlePosition": "right",
20
- "targetHandlePosition": "left"
21
- },
22
- "steps/petstore/notification.step.ts": {
23
- "x": 300,
24
- "y": 264
23
+ "sourceHandlePosition": "right"
25
24
  }
26
25
  }
27
26
  }
@@ -3,23 +3,23 @@
3
3
  "id": "basic-tutorial",
4
4
  "config": {
5
5
  "steps/petstore/state_audit_cron_step.py": {
6
- "x": -38,
7
- "y": 683,
6
+ "x": -175,
7
+ "y": 219,
8
8
  "sourceHandlePosition": "right"
9
9
  },
10
10
  "steps/petstore/process_food_order_step.py": {
11
- "x": 384,
12
- "y": 476,
13
- "targetHandlePosition": "left"
11
+ "x": 144,
12
+ "y": 17,
13
+ "sourceHandlePosition": "bottom"
14
14
  },
15
15
  "steps/petstore/notification_step.py": {
16
- "x": 601,
17
- "y": 724,
18
- "targetHandlePosition": "left"
16
+ "x": 331,
17
+ "y": 261,
18
+ "sourceHandlePosition": "bottom"
19
19
  },
20
20
  "steps/petstore/api_step.py": {
21
- "x": 15,
22
- "y": 461,
21
+ "x": -175,
22
+ "y": 3,
23
23
  "sourceHandlePosition": "right"
24
24
  }
25
25
  }
@@ -65,6 +65,11 @@ export const collectFlows = async (projectDir, lockedData) => {
65
65
  }
66
66
  }
67
67
  catch (err) {
68
+ const errorMessage = err instanceof Error ? err.message : String(err);
69
+ if (errorMessage.includes('Executable ruby not found') || errorMessage.includes('Executable python not found')) {
70
+ console.warn(colors.yellow(`! [WARNING] Skipping step ${filePath}: ${errorMessage}`));
71
+ continue;
72
+ }
68
73
  throw new CompilationError(`Error collecting flow ${filePath}`, path.relative(projectDir, filePath), err);
69
74
  }
70
75
  }
@@ -28,6 +28,17 @@ export async function getPythonCommand(requestedVersion, baseDir) {
28
28
  catch (error) {
29
29
  // If error, python command doesn't exist or can't be executed
30
30
  }
31
+ // Check if python3 exists
32
+ try {
33
+ const result = await executeCommand('python3 --version', baseDir, { silent: true });
34
+ const versionMatch = result.match(/Python\s+(\d+)\.(\d+)\.(\d+)/);
35
+ if (versionMatch && parseInt(versionMatch[1], 10) >= 3) {
36
+ return 'python3';
37
+ }
38
+ }
39
+ catch (error) {
40
+ // If error, python3 command doesn't exist or can't be executed
41
+ }
31
42
  throw new Error('No compatible Python 3 installation found. Please install Python 3.');
32
43
  }
33
44
  export function findPythonSitePackagesDir(venvLibPath, pythonVersion) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "motia",
3
3
  "description": "Build production-grade backends with a single primitive. APIs, background jobs, Queues, Workflows, and AI agents - unified in one system with built-in State management, Streaming, and Observability.",
4
- "version": "0.12.0-beta.157",
4
+ "version": "0.12.0-beta.158-009673",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -48,11 +48,11 @@
48
48
  "redis-memory-server": "^0.14.0",
49
49
  "table": "^6.9.0",
50
50
  "ts-node": "^10.9.2",
51
- "@motiadev/adapter-redis-state": "0.12.0-beta.157",
52
- "@motiadev/core": "0.12.0-beta.157",
53
- "@motiadev/stream-client-node": "0.12.0-beta.157",
54
- "@motiadev/workbench": "0.12.0-beta.157",
55
- "@motiadev/adapter-redis-streams": "0.12.0-beta.157"
51
+ "@motiadev/adapter-redis-state": "0.12.0-beta.158-009673",
52
+ "@motiadev/core": "0.12.0-beta.158-009673",
53
+ "@motiadev/stream-client-node": "0.12.0-beta.158-009673",
54
+ "@motiadev/adapter-redis-streams": "0.12.0-beta.158-009673",
55
+ "@motiadev/workbench": "0.12.0-beta.158-009673"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@amplitude/analytics-types": "^2.9.2",