motia 0.6.4-beta.131-876960 → 0.7.0-beta.131

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.
@@ -33,4 +33,10 @@ describe('extractPythonData', () => {
33
33
  const requirements = (0, read_requirements_1.readRequirements)(path_1.default.join(rootDir, 'requirements.txt'), mockPackageDescriber);
34
34
  expect(() => (0, extract_python_data_1.extractPythonData)(rootDir, `/steps/api_step.py`, requirements)).toThrow(new python_errors_1.PythonError("Compilation error: no viable alternative at input ':' at line 3:10 in /steps/api_step.py", '/steps/api_step.py'));
35
35
  });
36
+ test('extracts python data with nested import from requirements', () => {
37
+ const rootDir = path_1.default.join(__dirname, './examples/chessarena');
38
+ const requirements = (0, read_requirements_1.readRequirements)(path_1.default.join(rootDir, 'requirements.txt'), mockPackageDescriber);
39
+ const result = (0, extract_python_data_1.extractPythonData)(rootDir, `/steps/evaluate_player_move_step.py`, requirements);
40
+ expect(result.externalDependencies).toEqual({ chess: 'chess>=1.0.0', pydantic: 'pydantic>=2.6.1' });
41
+ });
36
42
  });
@@ -53,13 +53,14 @@ const getDependenciesFromFile = (content, path, requirements) => {
53
53
  projectDependencies: new Set(),
54
54
  };
55
55
  for (const module of modulesSet) {
56
+ const [moduleName] = module.split('.');
56
57
  if (module[0] === '.') {
57
58
  dependencies.projectDependencies.add(module);
58
59
  }
59
60
  else if (constants_1.STANDARD_LIB_MODULES.has(module)) {
60
61
  dependencies.standardLibDependencies.add(module);
61
62
  }
62
- else if (requirements[module]) {
63
+ else if (requirements[module] || requirements[moduleName]) {
63
64
  dependencies.externalDependencies.add(module);
64
65
  }
65
66
  else {
@@ -8,7 +8,6 @@ const build_1 = require("./new-deployment/build");
8
8
  const upload_artifacts_1 = require("./new-deployment/upload-artifacts");
9
9
  const deployment_stream_1 = require("./new-deployment/streams/deployment-stream");
10
10
  const cloud_api_1 = require("./new-deployment/cloud-api");
11
- const version_1 = require("../version");
12
11
  const deployEndpoints = (server, lockedData) => {
13
12
  const { app } = server;
14
13
  // Criar stream de deployment se não existir
@@ -22,9 +21,6 @@ const deployEndpoints = (server, lockedData) => {
22
21
  },
23
22
  })();
24
23
  const deploymentManager = new deployment_stream_1.DeploymentStreamManager(deploymentStream);
25
- app.get('/__motia', (_, res) => {
26
- res.status(200).json({ version: version_1.version });
27
- });
28
24
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
25
  app.post('/__motia/cloud/deploy/start', async (req, res) => {
30
26
  try {
package/dist/cjs/dev.js CHANGED
@@ -45,7 +45,7 @@ const dev = async (port, hostname, disableVerbose, enableMermaid) => {
45
45
  adapter: 'default',
46
46
  filePath: path_1.default.join(baseDir, '.motia'),
47
47
  });
48
- const config = { isVerbose };
48
+ const config = { isVerbose, isDev: true, version: version_1.version };
49
49
  const motiaServer = (0, core_1.createServer)(lockedData, eventManager, state, config);
50
50
  const watcher = (0, dev_watchers_1.createDevWatchers)(lockedData, motiaServer, motiaServer.motiaEventManager, motiaServer.cronManager);
51
51
  // Initialize mermaid generator
package/dist/cjs/start.js CHANGED
@@ -9,6 +9,7 @@ const path_1 = __importDefault(require("path"));
9
9
  const generate_locked_data_1 = require("./generate-locked-data");
10
10
  const state_endpoints_1 = require("./dev/state-endpoints");
11
11
  const activate_python_env_1 = require("./utils/activate-python-env");
12
+ const version_1 = require("./version");
12
13
  // eslint-disable-next-line @typescript-eslint/no-require-imports
13
14
  require('ts-node').register({
14
15
  transpileOnly: true,
@@ -23,13 +24,11 @@ const start = async (port, hostname, disableVerbose) => {
23
24
  console.log('⚙️ Activating Python environment...');
24
25
  (0, activate_python_env_1.activatePythonVenv)({ baseDir, isVerbose });
25
26
  }
27
+ const dotMotia = path_1.default.join(baseDir, '.motia');
26
28
  const lockedData = await (0, generate_locked_data_1.generateLockedData)(baseDir);
27
29
  const eventManager = (0, core_1.createEventManager)();
28
- const state = (0, core_1.createStateAdapter)({
29
- adapter: 'default',
30
- filePath: path_1.default.join(baseDir, '.motia'),
31
- });
32
- const config = { isVerbose };
30
+ const state = (0, core_1.createStateAdapter)({ adapter: 'default', filePath: dotMotia });
31
+ const config = { isVerbose, isDev: false, version: version_1.version };
33
32
  const motiaServer = (0, core_1.createServer)(lockedData, eventManager, state, config);
34
33
  motiaServer.server.listen(port, hostname);
35
34
  console.log('🚀 Server ready and listening on port', port);
@@ -28,4 +28,10 @@ describe('extractPythonData', () => {
28
28
  const requirements = readRequirements(path.join(rootDir, 'requirements.txt'), mockPackageDescriber);
29
29
  expect(() => extractPythonData(rootDir, `/steps/api_step.py`, requirements)).toThrow(new PythonError("Compilation error: no viable alternative at input ':' at line 3:10 in /steps/api_step.py", '/steps/api_step.py'));
30
30
  });
31
+ test('extracts python data with nested import from requirements', () => {
32
+ const rootDir = path.join(__dirname, './examples/chessarena');
33
+ const requirements = readRequirements(path.join(rootDir, 'requirements.txt'), mockPackageDescriber);
34
+ const result = extractPythonData(rootDir, `/steps/evaluate_player_move_step.py`, requirements);
35
+ expect(result.externalDependencies).toEqual({ chess: 'chess>=1.0.0', pydantic: 'pydantic>=2.6.1' });
36
+ });
31
37
  });
@@ -50,13 +50,14 @@ export const getDependenciesFromFile = (content, path, requirements) => {
50
50
  projectDependencies: new Set(),
51
51
  };
52
52
  for (const module of modulesSet) {
53
+ const [moduleName] = module.split('.');
53
54
  if (module[0] === '.') {
54
55
  dependencies.projectDependencies.add(module);
55
56
  }
56
57
  else if (STANDARD_LIB_MODULES.has(module)) {
57
58
  dependencies.standardLibDependencies.add(module);
58
59
  }
59
- else if (requirements[module]) {
60
+ else if (requirements[module] || requirements[moduleName]) {
60
61
  dependencies.externalDependencies.add(module);
61
62
  }
62
63
  else {
@@ -5,7 +5,6 @@ import { build } from './new-deployment/build';
5
5
  import { uploadArtifacts } from './new-deployment/upload-artifacts';
6
6
  import { DeploymentStreamManager } from './new-deployment/streams/deployment-stream';
7
7
  import { cloudApi } from './new-deployment/cloud-api';
8
- import { version } from '../version';
9
8
  export const deployEndpoints = (server, lockedData) => {
10
9
  const { app } = server;
11
10
  // Criar stream de deployment se não existir
@@ -19,9 +18,6 @@ export const deployEndpoints = (server, lockedData) => {
19
18
  },
20
19
  })();
21
20
  const deploymentManager = new DeploymentStreamManager(deploymentStream);
22
- app.get('/__motia', (_, res) => {
23
- res.status(200).json({ version: version });
24
- });
25
21
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
22
  app.post('/__motia/cloud/deploy/start', async (req, res) => {
27
23
  try {
package/dist/esm/dev.js CHANGED
@@ -39,7 +39,7 @@ export const dev = async (port, hostname, disableVerbose, enableMermaid) => {
39
39
  adapter: 'default',
40
40
  filePath: path.join(baseDir, '.motia'),
41
41
  });
42
- const config = { isVerbose };
42
+ const config = { isVerbose, isDev: true, version };
43
43
  const motiaServer = createServer(lockedData, eventManager, state, config);
44
44
  const watcher = createDevWatchers(lockedData, motiaServer, motiaServer.motiaEventManager, motiaServer.cronManager);
45
45
  // Initialize mermaid generator
package/dist/esm/start.js CHANGED
@@ -3,6 +3,7 @@ import path from 'path';
3
3
  import { generateLockedData, getStepFiles } from './generate-locked-data';
4
4
  import { stateEndpoints } from './dev/state-endpoints';
5
5
  import { activatePythonVenv } from './utils/activate-python-env';
6
+ import { version } from './version';
6
7
  // eslint-disable-next-line @typescript-eslint/no-require-imports
7
8
  require('ts-node').register({
8
9
  transpileOnly: true,
@@ -17,13 +18,11 @@ export const start = async (port, hostname, disableVerbose) => {
17
18
  console.log('⚙️ Activating Python environment...');
18
19
  activatePythonVenv({ baseDir, isVerbose });
19
20
  }
21
+ const dotMotia = path.join(baseDir, '.motia');
20
22
  const lockedData = await generateLockedData(baseDir);
21
23
  const eventManager = createEventManager();
22
- const state = createStateAdapter({
23
- adapter: 'default',
24
- filePath: path.join(baseDir, '.motia'),
25
- });
26
- const config = { isVerbose };
24
+ const state = createStateAdapter({ adapter: 'default', filePath: dotMotia });
25
+ const config = { isVerbose, isDev: false, version };
27
26
  const motiaServer = createServer(lockedData, eventManager, state, config);
28
27
  motiaServer.server.listen(port, hostname);
29
28
  console.log('🚀 Server ready and listening on port', port);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "motia",
3
3
  "description": "A Modern Unified Backend Framework for APIs, Events and Agents",
4
- "version": "0.6.4-beta.131-876960",
4
+ "version": "0.7.0-beta.131",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -46,9 +46,9 @@
46
46
  "python-ast": "^0.1.0",
47
47
  "table": "^6.9.0",
48
48
  "ts-node": "^10.9.2",
49
- "@motiadev/stream-client-node": "0.6.4-beta.131-876960",
50
- "@motiadev/core": "0.6.4-beta.131-876960",
51
- "@motiadev/workbench": "0.6.4-beta.131-876960"
49
+ "@motiadev/core": "0.7.0-beta.131",
50
+ "@motiadev/workbench": "0.7.0-beta.131",
51
+ "@motiadev/stream-client-node": "0.7.0-beta.131"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@amplitude/analytics-types": "^2.9.2",