@sena-ai/cli 1.4.0 → 1.4.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/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +63 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/worker-entry.js +19 -7
- package/dist/worker-entry.js.map +1 -1
- package/package.json +4 -3
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ import { registerStop } from './commands/stop.js';
|
|
|
8
8
|
import { registerRestart } from './commands/restart.js';
|
|
9
9
|
import { registerStatus } from './commands/status.js';
|
|
10
10
|
import { registerLogs } from './commands/logs.js';
|
|
11
|
+
import { registerInit } from './commands/init.js';
|
|
11
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
12
13
|
const __dirname = dirname(__filename);
|
|
13
14
|
// Read version from package.json
|
|
@@ -23,5 +24,6 @@ registerStop(program);
|
|
|
23
24
|
registerRestart(program);
|
|
24
25
|
registerStatus(program);
|
|
25
26
|
registerLogs(program);
|
|
27
|
+
registerInit(program);
|
|
26
28
|
program.parse();
|
|
27
29
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC,iCAAiC;AACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAwB,CAAA;AAE9G,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,iCAAiC,CAAC;KAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAA;AAE1D,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,YAAY,CAAC,OAAO,CAAC,CAAA;AAErB,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAErC,iCAAiC;AACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAwB,CAAA;AAE9G,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,iCAAiC,CAAC;KAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,CAAA;AAE1D,aAAa,CAAC,OAAO,CAAC,CAAA;AACtB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,eAAe,CAAC,OAAO,CAAC,CAAA;AACxB,cAAc,CAAC,OAAO,CAAC,CAAA;AACvB,YAAY,CAAC,OAAO,CAAC,CAAA;AACrB,YAAY,CAAC,OAAO,CAAC,CAAA;AAErB,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyDnD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, renameSync } from 'node:fs';
|
|
2
|
+
import { resolve, basename } from 'node:path';
|
|
3
|
+
import { execSync } from 'node:child_process';
|
|
4
|
+
const TEMPLATES = {
|
|
5
|
+
'slack-integration': {
|
|
6
|
+
repo: 'unlimiting-studio/sena-ai/templates/slack-integration',
|
|
7
|
+
envHint: ' # Edit .env with your Slack credentials',
|
|
8
|
+
},
|
|
9
|
+
'platform-integration': {
|
|
10
|
+
repo: 'unlimiting-studio/sena-ai/templates/platform-integration',
|
|
11
|
+
envHint: ' # Edit .env with your CONNECT_KEY and PLATFORM_URL',
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
const DEFAULT_TEMPLATE = 'slack-integration';
|
|
15
|
+
export function registerInit(program) {
|
|
16
|
+
program
|
|
17
|
+
.command('init <name>')
|
|
18
|
+
.description('Create a new Sena bot project')
|
|
19
|
+
.option('-t, --template <template>', `template to use (${Object.keys(TEMPLATES).join(', ')})`, DEFAULT_TEMPLATE)
|
|
20
|
+
.action(async (name, opts) => {
|
|
21
|
+
const targetDir = resolve(process.cwd(), name);
|
|
22
|
+
const botName = basename(targetDir);
|
|
23
|
+
const tmpl = TEMPLATES[opts.template];
|
|
24
|
+
if (!tmpl) {
|
|
25
|
+
console.error(`Unknown template '${opts.template}'. Available: ${Object.keys(TEMPLATES).join(', ')}`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
if (existsSync(targetDir)) {
|
|
29
|
+
console.error(`Directory '${botName}' already exists.`);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
console.log(`Creating '${botName}' (template: ${opts.template})...`);
|
|
33
|
+
// Download template via degit
|
|
34
|
+
const degit = (await import('degit')).default;
|
|
35
|
+
const emitter = degit(tmpl.repo, { cache: false });
|
|
36
|
+
await emitter.clone(targetDir);
|
|
37
|
+
// Replace placeholders
|
|
38
|
+
const configPath = resolve(targetDir, 'sena.config.ts');
|
|
39
|
+
const pkgPath = resolve(targetDir, 'package.json');
|
|
40
|
+
let config = readFileSync(configPath, 'utf-8');
|
|
41
|
+
config = config.replace(/%%BOT_NAME%%/g, botName);
|
|
42
|
+
writeFileSync(configPath, config);
|
|
43
|
+
let pkg = readFileSync(pkgPath, 'utf-8');
|
|
44
|
+
pkg = pkg.replace('"sena-bot"', `"${botName}"`);
|
|
45
|
+
writeFileSync(pkgPath, pkg);
|
|
46
|
+
// .env.template → .env
|
|
47
|
+
const envTemplate = resolve(targetDir, '.env.template');
|
|
48
|
+
if (existsSync(envTemplate)) {
|
|
49
|
+
renameSync(envTemplate, resolve(targetDir, '.env'));
|
|
50
|
+
}
|
|
51
|
+
// Install dependencies
|
|
52
|
+
console.log('Installing dependencies...');
|
|
53
|
+
execSync('pnpm install', { cwd: targetDir, stdio: 'inherit' });
|
|
54
|
+
console.log('');
|
|
55
|
+
console.log(`Done! Your bot '${botName}' is ready.`);
|
|
56
|
+
console.log('');
|
|
57
|
+
console.log('Next steps:');
|
|
58
|
+
console.log(` cd ${botName}`);
|
|
59
|
+
console.log(tmpl.envHint);
|
|
60
|
+
console.log(' npx sena start');
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/worker-entry.js
CHANGED
|
@@ -15,14 +15,26 @@ if (!configPath) {
|
|
|
15
15
|
}
|
|
16
16
|
// Use tsx tsImport for .ts config files (plain import won't work from compiled .js)
|
|
17
17
|
let config;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
try {
|
|
19
|
+
if (configPath.endsWith('.ts') || configPath.endsWith('.tsx')) {
|
|
20
|
+
const { tsImport } = await import('tsx/esm/api');
|
|
21
|
+
const mod = await tsImport(configPath, import.meta.url);
|
|
22
|
+
config = mod.default;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const mod = await import(configPath);
|
|
26
|
+
config = mod.default;
|
|
27
|
+
}
|
|
22
28
|
}
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
config
|
|
29
|
+
catch (err) {
|
|
30
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
31
|
+
console.error(`[worker-entry] failed to load config: ${message}`);
|
|
32
|
+
// Notify orchestrator about the boot error so it can relay to the requesting worker
|
|
33
|
+
try {
|
|
34
|
+
process.send?.({ type: 'boot-error', error: message });
|
|
35
|
+
}
|
|
36
|
+
catch { /* IPC closed */ }
|
|
37
|
+
process.exit(1);
|
|
26
38
|
}
|
|
27
39
|
const port = parseInt(process.env.SENA_WORKER_PORT || '0', 10);
|
|
28
40
|
// Remove early guard — createWorker registers its own graceful disconnect handler
|
package/dist/worker-entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-entry.js","sourceRoot":"","sources":["../src/worker-entry.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,sEAAsE;AACtE,2EAA2E;AAC3E,wEAAwE;AACxE,SAAS,oBAAoB;IAC3B,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAA;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;AAE9C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;AAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,oFAAoF;AACpF,IAAI,MAAoD,CAAA;AACxD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-entry.js","sourceRoot":"","sources":["../src/worker-entry.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,sEAAsE;AACtE,2EAA2E;AAC3E,wEAAwE;AACxE,SAAS,oBAAoB;IAC3B,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAA;IAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;AAE9C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;AAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,oFAAoF;AACpF,IAAI,MAAoD,CAAA;AACxD,IAAI,CAAC;IACH,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;QAChD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA;QACrF,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAA+B,CAAA;QAClE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;IACtB,CAAC;AACH,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAChE,OAAO,CAAC,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAA;IACjE,oFAAoF;IACpF,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;AAE9D,kFAAkF;AAClF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;AAE1D,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAC7C,MAAM,CAAC,KAAK,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sena-ai/cli",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sena": "dist/cli.js"
|
|
@@ -19,10 +19,11 @@
|
|
|
19
19
|
"access": "public"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"tsx": "^4.21.0",
|
|
23
22
|
"commander": "^13",
|
|
23
|
+
"degit": "^2.8.4",
|
|
24
24
|
"dotenv": "^16.6",
|
|
25
|
-
"
|
|
25
|
+
"tsx": "^4.21.0",
|
|
26
|
+
"@sena-ai/core": "1.4.2"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
28
29
|
"@types/node": "^25.5.0",
|