motia 0.13.0-beta.160 → 0.13.0-beta.162-986908

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":"cli-output-manager.d.ts","sourceRoot":"","sources":["../../../src/cloud/cli-output-manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI;;;;;;CAMA,CAAA;AAEV,QAAA,MAAM,SAAS;;;;;;;;;;CAUL,CAAA;AAEV,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAU;;IAMxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,IAAI,GAAG,OAAO;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,OAAO;IAShE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,OAAO,SAAkB,GAAG,OAAO;IAgBxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO;IAiC/D,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAsBpD,aAAa,IAAI,OAAO;CAGzB"}
1
+ {"version":3,"file":"cli-output-manager.d.ts","sourceRoot":"","sources":["../../../src/cloud/cli-output-manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI;;;;;;CAMA,CAAA;AAEV,QAAA,MAAM,SAAS;;;;;;;;;;CAUL,CAAA;AAEV,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAU;;IAMxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,IAAI,GAAG,OAAO;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,OAAO;IAShE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,OAAO,SAAkB,GAAG,OAAO;IA0CxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO;IAiC/D,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAsBpD,aAAa,IAAI,OAAO;CAGzB"}
@@ -55,17 +55,46 @@ class Message {
55
55
  return this;
56
56
  }
57
57
  box(messages, color = 'blue') {
58
- const message = messages.join('\n \n');
59
- const lines = message.match(/.{1,40}/g) || [message];
60
- const width = Math.min(40, Math.max(...lines.map((line) => line.length)));
61
- const border = '─'.repeat(width + 2);
58
+ const ansiEscape = String.fromCharCode(0x1b);
59
+ const stripAnsi = (str) => str.replace(new RegExp(`${ansiEscape}\\[[0-9;]*m`, 'g'), '');
60
+ const contentWidth = 40;
61
+ const border = '─'.repeat(contentWidth + 2);
62
62
  const borderColor = colorTags[color];
63
- this.output.push(borderColor('\n ┌' + border + '┐\n'));
64
- lines.forEach((line) => {
65
- const padding = ' '.repeat(width - line.trim().length);
66
- this.output.push(borderColor('│ ') + line.trim() + padding + borderColor(' │\n'));
63
+ const processedLines = [];
64
+ messages.forEach((msg) => {
65
+ const trimmed = msg.trim();
66
+ if (trimmed.length === 0)
67
+ return;
68
+ const visibleLength = stripAnsi(trimmed).length;
69
+ if (visibleLength <= contentWidth) {
70
+ processedLines.push(trimmed);
71
+ }
72
+ else {
73
+ const words = trimmed.split(/\s+/);
74
+ let currentLine = '';
75
+ words.forEach((word) => {
76
+ const wordLength = stripAnsi(word).length;
77
+ const currentLength = stripAnsi(currentLine).length;
78
+ if (currentLength + wordLength + 1 <= contentWidth) {
79
+ currentLine = currentLine ? `${currentLine} ${word}` : word;
80
+ }
81
+ else {
82
+ if (currentLine)
83
+ processedLines.push(currentLine);
84
+ currentLine = word;
85
+ }
86
+ });
87
+ if (currentLine)
88
+ processedLines.push(currentLine);
89
+ }
67
90
  });
68
- this.output.push(borderColor('└' + border + '┘'));
91
+ this.output.push(borderColor(`\n ┌${border}┐\n`));
92
+ processedLines.forEach((line) => {
93
+ const lineLength = stripAnsi(line).length;
94
+ const padding = ' '.repeat(contentWidth - lineLength);
95
+ this.output.push(`${borderColor(' │')} ${line}${padding} ${borderColor('│\n')}`);
96
+ });
97
+ this.output.push(borderColor(` └${border}┘`));
69
98
  return this;
70
99
  }
71
100
  table(headers, rows) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/cloud/new-deployment/build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAwB,MAAM,kBAAkB,CAAA;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,eAAO,MAAM,KAAK,GAAU,UAAU,aAAa,KAAG,OAAO,CAAC,OAAO,CAsDpE,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/cloud/new-deployment/build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAwB,MAAM,kBAAkB,CAAA;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,eAAO,MAAM,KAAK,GAAU,UAAU,aAAa,KAAG,OAAO,CAAC,OAAO,CAuDpE,CAAA"}
@@ -20,6 +20,7 @@ const hasPythonSteps = (stepFiles) => {
20
20
  const build = async (listener) => {
21
21
  const builder = new builder_1.Builder(constants_1.projectDir, listener);
22
22
  const stepFiles = (0, generate_locked_data_1.getStepFiles)(constants_1.projectDir);
23
+ const streamFiles = (0, generate_locked_data_1.getStreamFiles)(constants_1.projectDir);
23
24
  if (stepFiles.length === 0) {
24
25
  throw new Error('Project contains no steps, please add some steps before building');
25
26
  }
@@ -29,7 +30,7 @@ const build = async (listener) => {
29
30
  fs_1.default.mkdirSync(constants_1.distDir, { recursive: true });
30
31
  const redisClient = await (0, redis_memory_manager_1.instanceRedisMemoryServer)(constants_1.projectDir, false);
31
32
  const lockedData = new core_1.LockedData(constants_1.projectDir, new core_1.MemoryStreamAdapterManager(), new printer_1.NoPrinter(), redisClient);
32
- if (hasPythonSteps(stepFiles)) {
33
+ if (hasPythonSteps([...stepFiles, ...streamFiles])) {
33
34
  builder.registerBuilder('python', new python_1.PythonBuilder(builder, listener));
34
35
  }
35
36
  const invalidSteps = await (0, generate_locked_data_1.collectFlows)(constants_1.projectDir, lockedData).catch((err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/create/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAwEvD,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,mDAAmD,IAAI,KAAG,OAAO,CAAC,IAAI,CA8KlG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/create/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAwEvD,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,mDAAmD,IAAI,KAAG,OAAO,CAAC,IAAI,CAmLlG,CAAA"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.create = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
7
8
  const fs_1 = __importDefault(require("fs"));
8
9
  const path_1 = __importDefault(require("path"));
9
10
  const generate_types_1 = require("../generate-types");
@@ -60,14 +61,14 @@ const installNodeDependencies = async (rootDir, context) => {
60
61
  const create = async ({ projectName, template, cursorEnabled, context }) => {
61
62
  console.log('\n\n' +
62
63
  `
63
- _____ ______ ______ ______
64
- /'\\_/\`\\/\\ __\`\\/\\__ _\\/\\__ _\\ /\\ _ \\
65
- /\\ \\ \\ \\/\\ \\/_/\\ \\/\\/_/\\ \\/ \\ \\ \\L\\ \\
66
- \\ \\ \\__\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ __ \\
67
- \\ \\ \\_/\\ \\ \\ \\_\\ \\ \\ \\ \\ \\_\\ \\__\\ \\ \\/\\ \\
68
- \\ \\_\\\\ \\_\\ \\_____\\ \\ \\_\\ /\\_____\\\\ \\_\\ \\_\\
69
- \\/_/ \\/_/\\/_____/ \\/_/ \\/_____/ \\/_/\\/_/
70
- ` +
64
+ _____ ______ ______ ______
65
+ /'\\_/\`\\/\\ __\`\\/\\__ _\\/\\__ _\\ /\\ _ \\
66
+ /\\ \\ \\ \\/\\ \\/_/\\ \\/\\/_/\\ \\/ \\ \\ \\L\\ \\
67
+ \\ \\ \\__\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ __ \\
68
+ \\ \\ \\_/\\ \\ \\ \\_\\ \\ \\ \\ \\ \\_\\ \\__\\ \\ \\/\\ \\
69
+ \\ \\_\\\\ \\_\\ \\_____\\ \\ \\_\\ /\\_____\\\\ \\_\\ \\_\\
70
+ \\/_/ \\/_/\\/_____/ \\/_/ \\/_____/ \\/_/\\/_/
71
+ ` +
71
72
  '\n\n');
72
73
  const isCurrentDir = projectName === '.' || projectName === './' || projectName === '.\\';
73
74
  const rootDir = isCurrentDir ? process.cwd() : path_1.default.join(process.cwd(), projectName);
@@ -186,12 +187,18 @@ const create = async ({ projectName, template, cursorEnabled, context }) => {
186
187
  .append('Created at')
187
188
  .append(`./${path_1.default.basename(rootDir)}`, 'cyan')
188
189
  .append('- happy coding!'));
189
- context.log('starting-development-server-command', (message) => message
190
- .tag('info')
191
- .append('Next steps:')
192
- .append(`cd ${path_1.default.basename(rootDir)}`, 'gray')
193
- .append('then run', 'dark')
194
- .append(`${packageManager} run dev`, 'gray')
195
- .append('to start the development server.', 'dark'));
190
+ const projectDirName = path_1.default.basename(rootDir);
191
+ const devCommand = `${packageManager} run dev`;
192
+ const nextSteps = [];
193
+ if (isCurrentDir) {
194
+ nextSteps.push(`Run ${colors_1.default.cyan(devCommand)}`);
195
+ }
196
+ else {
197
+ nextSteps.push(`cd ${colors_1.default.cyan(projectDirName)}`, `then run ${colors_1.default.cyan(devCommand)}`);
198
+ }
199
+ context.log('starting-development-server-command', (message) => {
200
+ message.tag('info').append('Next steps:');
201
+ message.box([...nextSteps, 'to start the development server.'], 'cyan');
202
+ });
196
203
  };
197
204
  exports.create = create;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-locked-data.d.ts","sourceRoot":"","sources":["../../src/generate-locked-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAiB5C,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,MAAM,EAIvD,CAAA;AAYD,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,EAIzD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,IAAI,EAAE,CAkF7F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B,KAAG,OAAO,CAAC,UAAU,CAuBrB,CAAA"}
1
+ {"version":3,"file":"generate-locked-data.d.ts","sourceRoot":"","sources":["../../src/generate-locked-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAiB5C,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,MAAM,EAIvD,CAAA;AAYD,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,EAIzD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,IAAI,EAAE,CAmF7F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B,KAAG,OAAO,CAAC,UAAU,CAuBrB,CAAA"}
@@ -56,7 +56,7 @@ const collectFlows = async (projectDir, lockedData) => {
56
56
  ...((0, fs_1.existsSync)(stepsDir) ? (0, glob_1.globSync)('**/*.step.py', { absolute: true, cwd: stepsDir }) : []),
57
57
  ...((0, fs_1.existsSync)(srcDir) ? (0, glob_1.globSync)('**/*.step.py', { absolute: true, cwd: srcDir }) : []),
58
58
  ];
59
- const hasPythonFiles = stepFiles.some((file) => file.endsWith('.py'));
59
+ const hasPythonFiles = stepFiles.some((file) => file.endsWith('.py')) || streamFiles.some((file) => file.endsWith('.py'));
60
60
  if (hasPythonFiles) {
61
61
  (0, activate_python_env_1.activatePythonVenv)({ baseDir: projectDir });
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,eAAO,MAAM,aAAa,GAAU,wCAIjC,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkDpC,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,8BAA+C,aAAa,KAAG,OAAO,CAAC,IAAI,CAWxG,CAAA"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,eAAO,MAAM,aAAa,GAAU,wCAIjC,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkDpC,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,8BAA+C,aAAa,KAAG,OAAO,CAAC,IAAI,CAYxG,CAAA"}
@@ -58,7 +58,8 @@ exports.pythonInstall = pythonInstall;
58
58
  const install = async ({ isVerbose = false, pythonVersion = '3.13' }) => {
59
59
  const baseDir = process.cwd();
60
60
  const steps = (0, generate_locked_data_1.getStepFiles)(baseDir);
61
- if (steps.some((file) => file.endsWith('.py'))) {
61
+ const streams = (0, generate_locked_data_1.getStreamFiles)(baseDir);
62
+ if (steps.some((file) => file.endsWith('.py')) || streams.some((file) => file.endsWith('.py'))) {
62
63
  await (0, exports.pythonInstall)({ baseDir, isVerbose, pythonVersion });
63
64
  }
64
65
  console.info('✅ Installation completed successfully!');
@@ -1 +1 @@
1
- {"version":3,"file":"cli-output-manager.d.ts","sourceRoot":"","sources":["../../../src/cloud/cli-output-manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI;;;;;;CAMA,CAAA;AAEV,QAAA,MAAM,SAAS;;;;;;;;;;CAUL,CAAA;AAEV,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAU;;IAMxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,IAAI,GAAG,OAAO;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,OAAO;IAShE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,OAAO,SAAkB,GAAG,OAAO;IAgBxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO;IAiC/D,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAsBpD,aAAa,IAAI,OAAO;CAGzB"}
1
+ {"version":3,"file":"cli-output-manager.d.ts","sourceRoot":"","sources":["../../../src/cloud/cli-output-manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI;;;;;;CAMA,CAAA;AAEV,QAAA,MAAM,SAAS;;;;;;;;;;CAUL,CAAA;AAEV,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAU;;IAMxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,IAAI,GAAG,OAAO;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,OAAO;IAShE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,OAAO,SAAkB,GAAG,OAAO;IA0CxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO;IAiC/D,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAsBpD,aAAa,IAAI,OAAO;CAGzB"}
@@ -49,17 +49,46 @@ export class Message {
49
49
  return this;
50
50
  }
51
51
  box(messages, color = 'blue') {
52
- const message = messages.join('\n \n');
53
- const lines = message.match(/.{1,40}/g) || [message];
54
- const width = Math.min(40, Math.max(...lines.map((line) => line.length)));
55
- const border = '─'.repeat(width + 2);
52
+ const ansiEscape = String.fromCharCode(0x1b);
53
+ const stripAnsi = (str) => str.replace(new RegExp(`${ansiEscape}\\[[0-9;]*m`, 'g'), '');
54
+ const contentWidth = 40;
55
+ const border = '─'.repeat(contentWidth + 2);
56
56
  const borderColor = colorTags[color];
57
- this.output.push(borderColor('\n ┌' + border + '┐\n'));
58
- lines.forEach((line) => {
59
- const padding = ' '.repeat(width - line.trim().length);
60
- this.output.push(borderColor('│ ') + line.trim() + padding + borderColor(' │\n'));
57
+ const processedLines = [];
58
+ messages.forEach((msg) => {
59
+ const trimmed = msg.trim();
60
+ if (trimmed.length === 0)
61
+ return;
62
+ const visibleLength = stripAnsi(trimmed).length;
63
+ if (visibleLength <= contentWidth) {
64
+ processedLines.push(trimmed);
65
+ }
66
+ else {
67
+ const words = trimmed.split(/\s+/);
68
+ let currentLine = '';
69
+ words.forEach((word) => {
70
+ const wordLength = stripAnsi(word).length;
71
+ const currentLength = stripAnsi(currentLine).length;
72
+ if (currentLength + wordLength + 1 <= contentWidth) {
73
+ currentLine = currentLine ? `${currentLine} ${word}` : word;
74
+ }
75
+ else {
76
+ if (currentLine)
77
+ processedLines.push(currentLine);
78
+ currentLine = word;
79
+ }
80
+ });
81
+ if (currentLine)
82
+ processedLines.push(currentLine);
83
+ }
61
84
  });
62
- this.output.push(borderColor('└' + border + '┘'));
85
+ this.output.push(borderColor(`\n ┌${border}┐\n`));
86
+ processedLines.forEach((line) => {
87
+ const lineLength = stripAnsi(line).length;
88
+ const padding = ' '.repeat(contentWidth - lineLength);
89
+ this.output.push(`${borderColor(' │')} ${line}${padding} ${borderColor('│\n')}`);
90
+ });
91
+ this.output.push(borderColor(` └${border}┘`));
63
92
  return this;
64
93
  }
65
94
  table(headers, rows) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/cloud/new-deployment/build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAwB,MAAM,kBAAkB,CAAA;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,eAAO,MAAM,KAAK,GAAU,UAAU,aAAa,KAAG,OAAO,CAAC,OAAO,CAsDpE,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/cloud/new-deployment/build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAwB,MAAM,kBAAkB,CAAA;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,eAAO,MAAM,KAAK,GAAU,UAAU,aAAa,KAAG,OAAO,CAAC,OAAO,CAuDpE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { isApiStep, LockedData, MemoryStreamAdapterManager } from '@motiadev/core';
2
2
  import { NoPrinter } from '@motiadev/core/dist/src/printer';
3
3
  import fs from 'fs';
4
- import { collectFlows, getStepFiles } from '../../generate-locked-data';
4
+ import { collectFlows, getStepFiles, getStreamFiles } from '../../generate-locked-data';
5
5
  import { instanceRedisMemoryServer } from '../../redis-memory-manager';
6
6
  import { BuildError, BuildErrorType } from '../../utils/errors/build.error';
7
7
  import { Builder } from '../build/builder';
@@ -14,6 +14,7 @@ const hasPythonSteps = (stepFiles) => {
14
14
  export const build = async (listener) => {
15
15
  const builder = new Builder(projectDir, listener);
16
16
  const stepFiles = getStepFiles(projectDir);
17
+ const streamFiles = getStreamFiles(projectDir);
17
18
  if (stepFiles.length === 0) {
18
19
  throw new Error('Project contains no steps, please add some steps before building');
19
20
  }
@@ -23,7 +24,7 @@ export const build = async (listener) => {
23
24
  fs.mkdirSync(distDir, { recursive: true });
24
25
  const redisClient = await instanceRedisMemoryServer(projectDir, false);
25
26
  const lockedData = new LockedData(projectDir, new MemoryStreamAdapterManager(), new NoPrinter(), redisClient);
26
- if (hasPythonSteps(stepFiles)) {
27
+ if (hasPythonSteps([...stepFiles, ...streamFiles])) {
27
28
  builder.registerBuilder('python', new PythonBuilder(builder, listener));
28
29
  }
29
30
  const invalidSteps = await collectFlows(projectDir, lockedData).catch((err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/create/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAwEvD,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,mDAAmD,IAAI,KAAG,OAAO,CAAC,IAAI,CA8KlG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/create/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAwEvD,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,mDAAmD,IAAI,KAAG,OAAO,CAAC,IAAI,CAmLlG,CAAA"}
@@ -1,3 +1,4 @@
1
+ import colors from 'colors';
1
2
  import fs from 'fs';
2
3
  import path from 'path';
3
4
  import { generateTypes } from '../generate-types';
@@ -54,14 +55,14 @@ const installNodeDependencies = async (rootDir, context) => {
54
55
  export const create = async ({ projectName, template, cursorEnabled, context }) => {
55
56
  console.log('\n\n' +
56
57
  `
57
- _____ ______ ______ ______
58
- /'\\_/\`\\/\\ __\`\\/\\__ _\\/\\__ _\\ /\\ _ \\
59
- /\\ \\ \\ \\/\\ \\/_/\\ \\/\\/_/\\ \\/ \\ \\ \\L\\ \\
60
- \\ \\ \\__\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ __ \\
61
- \\ \\ \\_/\\ \\ \\ \\_\\ \\ \\ \\ \\ \\_\\ \\__\\ \\ \\/\\ \\
62
- \\ \\_\\\\ \\_\\ \\_____\\ \\ \\_\\ /\\_____\\\\ \\_\\ \\_\\
63
- \\/_/ \\/_/\\/_____/ \\/_/ \\/_____/ \\/_/\\/_/
64
- ` +
58
+ _____ ______ ______ ______
59
+ /'\\_/\`\\/\\ __\`\\/\\__ _\\/\\__ _\\ /\\ _ \\
60
+ /\\ \\ \\ \\/\\ \\/_/\\ \\/\\/_/\\ \\/ \\ \\ \\L\\ \\
61
+ \\ \\ \\__\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ __ \\
62
+ \\ \\ \\_/\\ \\ \\ \\_\\ \\ \\ \\ \\ \\_\\ \\__\\ \\ \\/\\ \\
63
+ \\ \\_\\\\ \\_\\ \\_____\\ \\ \\_\\ /\\_____\\\\ \\_\\ \\_\\
64
+ \\/_/ \\/_/\\/_____/ \\/_/ \\/_____/ \\/_/\\/_/
65
+ ` +
65
66
  '\n\n');
66
67
  const isCurrentDir = projectName === '.' || projectName === './' || projectName === '.\\';
67
68
  const rootDir = isCurrentDir ? process.cwd() : path.join(process.cwd(), projectName);
@@ -180,11 +181,17 @@ export const create = async ({ projectName, template, cursorEnabled, context })
180
181
  .append('Created at')
181
182
  .append(`./${path.basename(rootDir)}`, 'cyan')
182
183
  .append('- happy coding!'));
183
- context.log('starting-development-server-command', (message) => message
184
- .tag('info')
185
- .append('Next steps:')
186
- .append(`cd ${path.basename(rootDir)}`, 'gray')
187
- .append('then run', 'dark')
188
- .append(`${packageManager} run dev`, 'gray')
189
- .append('to start the development server.', 'dark'));
184
+ const projectDirName = path.basename(rootDir);
185
+ const devCommand = `${packageManager} run dev`;
186
+ const nextSteps = [];
187
+ if (isCurrentDir) {
188
+ nextSteps.push(`Run ${colors.cyan(devCommand)}`);
189
+ }
190
+ else {
191
+ nextSteps.push(`cd ${colors.cyan(projectDirName)}`, `then run ${colors.cyan(devCommand)}`);
192
+ }
193
+ context.log('starting-development-server-command', (message) => {
194
+ message.tag('info').append('Next steps:');
195
+ message.box([...nextSteps, 'to start the development server.'], 'cyan');
196
+ });
190
197
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate-locked-data.d.ts","sourceRoot":"","sources":["../../src/generate-locked-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAiB5C,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,MAAM,EAIvD,CAAA;AAYD,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,EAIzD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,IAAI,EAAE,CAkF7F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B,KAAG,OAAO,CAAC,UAAU,CAuBrB,CAAA"}
1
+ {"version":3,"file":"generate-locked-data.d.ts","sourceRoot":"","sources":["../../src/generate-locked-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAiB5C,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,MAAM,EAIvD,CAAA;AAYD,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,EAIzD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,IAAI,EAAE,CAmF7F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B,KAAG,OAAO,CAAC,UAAU,CAuBrB,CAAA"}
@@ -48,7 +48,7 @@ export const collectFlows = async (projectDir, lockedData) => {
48
48
  ...(existsSync(stepsDir) ? globSync('**/*.step.py', { absolute: true, cwd: stepsDir }) : []),
49
49
  ...(existsSync(srcDir) ? globSync('**/*.step.py', { absolute: true, cwd: srcDir }) : []),
50
50
  ];
51
- const hasPythonFiles = stepFiles.some((file) => file.endsWith('.py'));
51
+ const hasPythonFiles = stepFiles.some((file) => file.endsWith('.py')) || streamFiles.some((file) => file.endsWith('.py'));
52
52
  if (hasPythonFiles) {
53
53
  activatePythonVenv({ baseDir: projectDir });
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,eAAO,MAAM,aAAa,GAAU,wCAIjC,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkDpC,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,8BAA+C,aAAa,KAAG,OAAO,CAAC,IAAI,CAWxG,CAAA"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,eAAO,MAAM,aAAa,GAAU,wCAIjC,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkDpC,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,8BAA+C,aAAa,KAAG,OAAO,CAAC,IAAI,CAYxG,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import { getStepFiles } from './generate-locked-data';
3
+ import { getStepFiles, getStreamFiles } from './generate-locked-data';
4
4
  import { activatePythonVenv } from './utils/activate-python-env';
5
5
  import { ensureUvInstalled } from './utils/ensure-uv';
6
6
  import { executeCommand } from './utils/execute-command';
@@ -51,7 +51,8 @@ export const pythonInstall = async ({ baseDir, isVerbose = false, pythonVersion
51
51
  export const install = async ({ isVerbose = false, pythonVersion = '3.13' }) => {
52
52
  const baseDir = process.cwd();
53
53
  const steps = getStepFiles(baseDir);
54
- if (steps.some((file) => file.endsWith('.py'))) {
54
+ const streams = getStreamFiles(baseDir);
55
+ if (steps.some((file) => file.endsWith('.py')) || streams.some((file) => file.endsWith('.py'))) {
55
56
  await pythonInstall({ baseDir, isVerbose, pythonVersion });
56
57
  }
57
58
  console.info('✅ Installation completed successfully!');
@@ -1 +1 @@
1
- {"version":3,"file":"cli-output-manager.d.ts","sourceRoot":"","sources":["../../../src/cloud/cli-output-manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI;;;;;;CAMA,CAAA;AAEV,QAAA,MAAM,SAAS;;;;;;;;;;CAUL,CAAA;AAEV,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAU;;IAMxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,IAAI,GAAG,OAAO;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,OAAO;IAShE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,OAAO,SAAkB,GAAG,OAAO;IAgBxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO;IAiC/D,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAsBpD,aAAa,IAAI,OAAO;CAGzB"}
1
+ {"version":3,"file":"cli-output-manager.d.ts","sourceRoot":"","sources":["../../../src/cloud/cli-output-manager.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAU3B,QAAA,MAAM,IAAI;;;;;;CAMA,CAAA;AAEV,QAAA,MAAM,SAAS;;;;;;;;;;CAUL,CAAA;AAEV,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAU;;IAMxB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,GAAG,CAAC,GAAG,EAAE,MAAM,OAAO,IAAI,GAAG,OAAO;IAKpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,SAAS,GAAG,OAAO;IAShE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAM,OAAO,SAAkB,GAAG,OAAO;IA0CxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO;IAiC/D,QAAQ,IAAI,MAAM;CAGnB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAI;IAErB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI;IAsBpD,aAAa,IAAI,OAAO;CAGzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/cloud/new-deployment/build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAwB,MAAM,kBAAkB,CAAA;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,eAAO,MAAM,KAAK,GAAU,UAAU,aAAa,KAAG,OAAO,CAAC,OAAO,CAsDpE,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/cloud/new-deployment/build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAwB,MAAM,kBAAkB,CAAA;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM/D,eAAO,MAAM,KAAK,GAAU,UAAU,aAAa,KAAG,OAAO,CAAC,OAAO,CAuDpE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/create/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAwEvD,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,mDAAmD,IAAI,KAAG,OAAO,CAAC,IAAI,CA8KlG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/create/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAwEvD,KAAK,IAAI,GAAG;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,OAAO,EAAE,UAAU,CAAA;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,mDAAmD,IAAI,KAAG,OAAO,CAAC,IAAI,CAmLlG,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-locked-data.d.ts","sourceRoot":"","sources":["../../src/generate-locked-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAiB5C,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,MAAM,EAIvD,CAAA;AAYD,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,EAIzD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,IAAI,EAAE,CAkF7F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B,KAAG,OAAO,CAAC,UAAU,CAuBrB,CAAA"}
1
+ {"version":3,"file":"generate-locked-data.d.ts","sourceRoot":"","sources":["../../src/generate-locked-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,UAAU,EACf,UAAU,EACV,KAAK,IAAI,EACT,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAiB5C,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,KAAG,MAAM,EAIvD,CAAA;AAYD,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,KAAG,MAAM,EAIzD,CAAA;AAGD,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,EAAE,YAAY,UAAU,KAAG,OAAO,CAAC,IAAI,EAAE,CAmF7F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAC9C,aAAa,CAAC,EAAE,UAAU,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,QAAQ;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,oBAAoB,CAAA;IACnC,WAAW,EAAE,eAAe,CAAA;IAC5B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAC/B,KAAG,OAAO,CAAC,UAAU,CAuBrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,eAAO,MAAM,aAAa,GAAU,wCAIjC,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkDpC,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,8BAA+C,aAAa,KAAG,OAAO,CAAC,IAAI,CAWxG,CAAA"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,KAAK,mBAAmB,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D,eAAO,MAAM,aAAa,GAAU,wCAIjC,mBAAmB,KAAG,OAAO,CAAC,IAAI,CAkDpC,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,8BAA+C,aAAa,KAAG,OAAO,CAAC,IAAI,CAYxG,CAAA"}
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.13.0-beta.160",
4
+ "version": "0.13.0-beta.162-986908",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -40,8 +40,8 @@
40
40
  "dotenv": "^16.4.7",
41
41
  "esbuild": "^0.25.0",
42
42
  "express": "^4.21.2",
43
- "glob": "^11.0.1",
44
- "inquirer": "^8.2.5",
43
+ "glob": "^11.0.3",
44
+ "inquirer": "^8.2.7",
45
45
  "node-cron": "^3.0.3",
46
46
  "python-ast": "^0.1.0",
47
47
  "redis": "^5.9.0",
@@ -49,11 +49,11 @@
49
49
  "table": "^6.9.0",
50
50
  "ts-node": "^10.9.2",
51
51
  "zod": "^4.1.12",
52
- "@motiadev/adapter-redis-state": "0.13.0-beta.160",
53
- "@motiadev/core": "0.13.0-beta.160",
54
- "@motiadev/adapter-redis-streams": "0.13.0-beta.160",
55
- "@motiadev/workbench": "0.13.0-beta.160",
56
- "@motiadev/stream-client-node": "0.13.0-beta.160"
52
+ "@motiadev/adapter-redis-state": "0.13.0-beta.162-986908",
53
+ "@motiadev/adapter-redis-streams": "0.13.0-beta.162-986908",
54
+ "@motiadev/core": "0.13.0-beta.162-986908",
55
+ "@motiadev/stream-client-node": "0.13.0-beta.162-986908",
56
+ "@motiadev/workbench": "0.13.0-beta.162-986908"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@amplitude/analytics-types": "^2.9.2",