telemeister 0.1.0

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.
Files changed (133) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +460 -0
  3. package/bin/telemeister.js +18 -0
  4. package/dist/bot/polling.d.ts +20 -0
  5. package/dist/bot/polling.d.ts.map +1 -0
  6. package/dist/bot/polling.js +115 -0
  7. package/dist/bot/polling.js.map +1 -0
  8. package/dist/bot/session.d.ts +50 -0
  9. package/dist/bot/session.d.ts.map +1 -0
  10. package/dist/bot/session.js +92 -0
  11. package/dist/bot/session.js.map +1 -0
  12. package/dist/bot/webhook.d.ts +36 -0
  13. package/dist/bot/webhook.d.ts.map +1 -0
  14. package/dist/bot/webhook.js +199 -0
  15. package/dist/bot/webhook.js.map +1 -0
  16. package/dist/bot-state-types.d.ts +10 -0
  17. package/dist/bot-state-types.d.ts.map +1 -0
  18. package/dist/bot-state-types.js +3 -0
  19. package/dist/bot-state-types.js.map +1 -0
  20. package/dist/cli/cli.d.ts +14 -0
  21. package/dist/cli/cli.d.ts.map +1 -0
  22. package/dist/cli/cli.js +57 -0
  23. package/dist/cli/cli.js.map +1 -0
  24. package/dist/cli/create-bot.d.ts +5 -0
  25. package/dist/cli/create-bot.d.ts.map +1 -0
  26. package/dist/cli/create-bot.js +275 -0
  27. package/dist/cli/create-bot.js.map +1 -0
  28. package/dist/cli/index.d.ts +4 -0
  29. package/dist/cli/index.d.ts.map +1 -0
  30. package/dist/cli/index.js +4 -0
  31. package/dist/cli/index.js.map +1 -0
  32. package/dist/cli/state-manager.d.ts +9 -0
  33. package/dist/cli/state-manager.d.ts.map +1 -0
  34. package/dist/cli/state-manager.js +381 -0
  35. package/dist/cli/state-manager.js.map +1 -0
  36. package/dist/config.d.ts +24 -0
  37. package/dist/config.d.ts.map +1 -0
  38. package/dist/config.js +52 -0
  39. package/dist/config.js.map +1 -0
  40. package/dist/core/app-states.d.ts +8 -0
  41. package/dist/core/app-states.d.ts.map +1 -0
  42. package/dist/core/app-states.js +8 -0
  43. package/dist/core/app-states.js.map +1 -0
  44. package/dist/core/builder.d.ts +138 -0
  45. package/dist/core/builder.d.ts.map +1 -0
  46. package/dist/core/builder.js +195 -0
  47. package/dist/core/builder.js.map +1 -0
  48. package/dist/core/compact-machine.d.ts +57 -0
  49. package/dist/core/compact-machine.d.ts.map +1 -0
  50. package/dist/core/compact-machine.js +113 -0
  51. package/dist/core/compact-machine.js.map +1 -0
  52. package/dist/core/index.d.ts +13 -0
  53. package/dist/core/index.d.ts.map +1 -0
  54. package/dist/core/index.js +9 -0
  55. package/dist/core/index.js.map +1 -0
  56. package/dist/core/types.d.ts +47 -0
  57. package/dist/core/types.d.ts.map +1 -0
  58. package/dist/core/types.js +3 -0
  59. package/dist/core/types.js.map +1 -0
  60. package/dist/database.d.ts +43 -0
  61. package/dist/database.d.ts.map +1 -0
  62. package/dist/database.js +127 -0
  63. package/dist/database.js.map +1 -0
  64. package/dist/generated/prisma/browser.d.ts +15 -0
  65. package/dist/generated/prisma/browser.d.ts.map +1 -0
  66. package/dist/generated/prisma/browser.js +18 -0
  67. package/dist/generated/prisma/browser.js.map +1 -0
  68. package/dist/generated/prisma/client.d.ts +32 -0
  69. package/dist/generated/prisma/client.d.ts.map +1 -0
  70. package/dist/generated/prisma/client.js +33 -0
  71. package/dist/generated/prisma/client.js.map +1 -0
  72. package/dist/generated/prisma/commonInputTypes.d.ts +166 -0
  73. package/dist/generated/prisma/commonInputTypes.d.ts.map +1 -0
  74. package/dist/generated/prisma/commonInputTypes.js +11 -0
  75. package/dist/generated/prisma/commonInputTypes.js.map +1 -0
  76. package/dist/generated/prisma/enums.d.ts +2 -0
  77. package/dist/generated/prisma/enums.d.ts.map +1 -0
  78. package/dist/generated/prisma/enums.js +11 -0
  79. package/dist/generated/prisma/enums.js.map +1 -0
  80. package/dist/generated/prisma/internal/class.d.ts +138 -0
  81. package/dist/generated/prisma/internal/class.d.ts.map +1 -0
  82. package/dist/generated/prisma/internal/class.js +50 -0
  83. package/dist/generated/prisma/internal/class.js.map +1 -0
  84. package/dist/generated/prisma/internal/prismaNamespace.d.ts +591 -0
  85. package/dist/generated/prisma/internal/prismaNamespace.d.ts.map +1 -0
  86. package/dist/generated/prisma/internal/prismaNamespace.js +96 -0
  87. package/dist/generated/prisma/internal/prismaNamespace.js.map +1 -0
  88. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +56 -0
  89. package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -0
  90. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +67 -0
  91. package/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map +1 -0
  92. package/dist/generated/prisma/models/User.d.ts +1181 -0
  93. package/dist/generated/prisma/models/User.d.ts.map +1 -0
  94. package/dist/generated/prisma/models/User.js +2 -0
  95. package/dist/generated/prisma/models/User.js.map +1 -0
  96. package/dist/generated/prisma/models/UserInfo.d.ts +1101 -0
  97. package/dist/generated/prisma/models/UserInfo.d.ts.map +1 -0
  98. package/dist/generated/prisma/models/UserInfo.js +2 -0
  99. package/dist/generated/prisma/models/UserInfo.js.map +1 -0
  100. package/dist/generated/prisma/models.d.ts +4 -0
  101. package/dist/generated/prisma/models.d.ts.map +1 -0
  102. package/dist/generated/prisma/models.js +2 -0
  103. package/dist/generated/prisma/models.js.map +1 -0
  104. package/dist/handlers/idle/index.d.ts +2 -0
  105. package/dist/handlers/idle/index.d.ts.map +1 -0
  106. package/dist/handlers/idle/index.js +22 -0
  107. package/dist/handlers/idle/index.js.map +1 -0
  108. package/dist/handlers/index.d.ts +12 -0
  109. package/dist/handlers/index.d.ts.map +1 -0
  110. package/dist/handlers/index.js +14 -0
  111. package/dist/handlers/index.js.map +1 -0
  112. package/dist/handlers/menu/index.d.ts +2 -0
  113. package/dist/handlers/menu/index.d.ts.map +1 -0
  114. package/dist/handlers/menu/index.js +35 -0
  115. package/dist/handlers/menu/index.js.map +1 -0
  116. package/dist/handlers/menu.d.ts +2 -0
  117. package/dist/handlers/menu.d.ts.map +1 -0
  118. package/dist/handlers/menu.js +37 -0
  119. package/dist/handlers/menu.js.map +1 -0
  120. package/dist/handlers/welcome/index.d.ts +2 -0
  121. package/dist/handlers/welcome/index.d.ts.map +1 -0
  122. package/dist/handlers/welcome/index.js +22 -0
  123. package/dist/handlers/welcome/index.js.map +1 -0
  124. package/dist/handlers/welcome.d.ts +2 -0
  125. package/dist/handlers/welcome.d.ts.map +1 -0
  126. package/dist/handlers/welcome.js +30 -0
  127. package/dist/handlers/welcome.js.map +1 -0
  128. package/dist/index.d.ts +3 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +39 -0
  131. package/dist/index.js.map +1 -0
  132. package/package.json +111 -0
  133. package/templates/handler.ts.ejs +36 -0
@@ -0,0 +1,275 @@
1
+ /**
2
+ * Create Bot Project scaffolding
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ const DEFAULT_BOT_JSON = {
7
+ idle: ['welcome'],
8
+ welcome: ['menu'],
9
+ menu: ['welcome'],
10
+ };
11
+ const GITIGNORE_CONTENT = `# Dependencies
12
+ node_modules/
13
+
14
+ # Environment variables
15
+ .env
16
+ .env.local
17
+ .env.*.local
18
+
19
+ # Build output
20
+ dist/
21
+
22
+ # Bot configuration (generated)
23
+ bot.json
24
+ src/bot-state-types.ts
25
+ src/bot-diagram.md
26
+ src/bot-diagram.png
27
+
28
+ # Prisma
29
+ prisma/*.db
30
+ prisma/*.db-journal
31
+
32
+ # Logs
33
+ *.log
34
+
35
+ # OS
36
+ .DS_Store
37
+ Thumbs.db
38
+ `;
39
+ const TS_CONFIG_CONTENT = `{
40
+ "compilerOptions": {
41
+ "target": "ES2022",
42
+ "module": "NodeNext",
43
+ "moduleResolution": "NodeNext",
44
+ "esModuleInterop": true,
45
+ "strict": true,
46
+ "skipLibCheck": true,
47
+ "forceConsistentCasingInFileNames": true,
48
+ "resolveJsonModule": true,
49
+ "outDir": "./dist",
50
+ "rootDir": "./src",
51
+ "declaration": true,
52
+ "declarationMap": true,
53
+ "sourceMap": true
54
+ },
55
+ "include": ["src/**/*"],
56
+ "exclude": ["node_modules", "dist"]
57
+ }
58
+ `;
59
+ const INDEX_TS_CONTENT = `/**
60
+ * Bot entry point
61
+ */
62
+
63
+ import { botBuilder } from 'telemeister/core';
64
+ import './handlers/index.js';
65
+
66
+ const bot = botBuilder.build();
67
+
68
+ // Start bot
69
+ bot.start();
70
+ `;
71
+ const HANDLERS_INDEX_CONTENT = `/**
72
+ * State Handlers Index
73
+ *
74
+ * Import all your state handler files here.
75
+ */
76
+
77
+ import './idle/index.js';
78
+ import './welcome/index.js';
79
+ import './menu/index.js';
80
+ `;
81
+ const IDLE_HANDLER_CONTENT = `import { appBuilder, type AppContext } from 'telemeister/core';
82
+ import type { IdleTransitions } from '../bot-state-types.js';
83
+
84
+ appBuilder
85
+ .forState('idle')
86
+ .onEnter(async (context: AppContext): IdleTransitions => {
87
+ // Bot is idle, ready for user interaction
88
+ // This state is typically the entry point
89
+ return 'welcome';
90
+ })
91
+ .onResponse(async (context: AppContext, response): IdleTransitions => {
92
+ // Handle user messages when in idle state
93
+ const text = response.trim();
94
+ await context.send('Welcome! Type anything to start.');
95
+ });
96
+
97
+ console.log('✅ State handler registered: idle');
98
+ `;
99
+ const WELCOME_HANDLER_CONTENT = `import { appBuilder, type AppContext } from 'telemeister/core';
100
+ import type { WelcomeTransitions } from '../bot-state-types.js';
101
+
102
+ appBuilder
103
+ .forState('welcome')
104
+ .onEnter(async (context: AppContext): WelcomeTransitions => {
105
+ await context.send('Hello! Welcome to the bot!');
106
+ return 'menu';
107
+ })
108
+ .onResponse(async (context: AppContext, response): WelcomeTransitions => {
109
+ const text = response.trim();
110
+ await context.send('Welcome! Choose an option:');
111
+ });
112
+
113
+ console.log('✅ State handler registered: welcome');
114
+ `;
115
+ const MENU_HANDLER_CONTENT = `import { appBuilder, type AppContext } from 'telemeister/core';
116
+ import type { MenuTransitions } from '../bot-state-types.js';
117
+
118
+ appBuilder
119
+ .forState('menu')
120
+ .onEnter(async (context: AppContext): MenuTransitions => {
121
+ await context.send('Main Menu\\n\\n1. Start over\\n2. Exit');
122
+ })
123
+ .onResponse(async (context: AppContext, response): MenuTransitions => {
124
+ const text = response.trim();
125
+
126
+ if (text === '1') {
127
+ return 'welcome';
128
+ }
129
+
130
+ await context.send('Menu option selected: ' + text);
131
+ });
132
+
133
+ console.log('✅ State handler registered: menu');
134
+ `;
135
+ const ENV_CONTENT = `# Telegram Bot Configuration
136
+ BOT_TOKEN=your_bot_token_here
137
+
138
+ # Database (SQLite for development)
139
+ DATABASE_URL=file:./prisma/dev.db
140
+ `;
141
+ const PRISMA_SCHEMA_CONTENT = `generator client {
142
+ provider = "prisma-client-js"
143
+ }
144
+
145
+ datasource db {
146
+ provider = "sqlite"
147
+ url = env("DATABASE_URL")
148
+ }
149
+
150
+ model User {
151
+ id Int @id @default(autoincrement())
152
+ telegramId BigInt @unique
153
+ chatId BigInt
154
+ currentState String @default("idle")
155
+ createdAt DateTime @default(now())
156
+ updatedAt DateTime @updatedAt
157
+ }
158
+ `;
159
+ const README_CONTENT = (botName) => `# ${botName}
160
+
161
+ Telegram bot built with Telemeister.
162
+
163
+ ## Getting Started
164
+
165
+ 1. Install dependencies:
166
+ \`\`\`bash
167
+ npm install
168
+ \`\`\`
169
+
170
+ 2. Set up environment variables:
171
+ \`\`\`bash
172
+ cp .env.example .env
173
+ # Edit .env and add your bot token
174
+ \`\`\`
175
+
176
+ 3. Set up the database:
177
+ \`\`\`bash
178
+ npm run db:generate
179
+ npm run db:migrate
180
+ \`\`\`
181
+
182
+ 4. Run the bot:
183
+ \`\`\`bash
184
+ npm run dev
185
+ \`\`\`
186
+
187
+ ## State Management
188
+
189
+ - \`npm run state:add <name\u003e\` - Add a new state
190
+ - \`npm run state:delete <name\u003e\` - Delete a state
191
+ - \`npm run state:sync\` - Sync types and handlers
192
+ - \`npm run state:transition:add <from> <to>\` - Add transition
193
+ - \`npm run state:transition:delete <from> <to>\` - Delete transition
194
+
195
+ ## Project Structure
196
+
197
+ - \`bot.json\` - State machine configuration (do not commit)
198
+ - \`src/handlers/\` - State handler implementations
199
+ - \`src/bot-state-types.ts\` - Generated types (do not edit)
200
+ `;
201
+ export async function createBot(botName) {
202
+ if (!botName) {
203
+ console.error('❌ Error: Bot name is required');
204
+ console.error('Usage: telemeister create-bot <bot-name>');
205
+ process.exit(1);
206
+ }
207
+ // Validate bot name (similar to state name validation)
208
+ if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(botName)) {
209
+ console.error('❌ Error: Bot name must start with a letter and contain only letters, numbers, underscores, and hyphens');
210
+ process.exit(1);
211
+ }
212
+ const targetDir = path.resolve(process.cwd(), botName);
213
+ // Check if directory already exists
214
+ if (fs.existsSync(targetDir)) {
215
+ console.error(`❌ Error: Directory "${botName}" already exists`);
216
+ process.exit(1);
217
+ }
218
+ console.log(`🚀 Creating new bot: ${botName}\n`);
219
+ // Create directory structure
220
+ fs.mkdirSync(targetDir, { recursive: true });
221
+ fs.mkdirSync(path.join(targetDir, 'src', 'handlers', 'idle'), { recursive: true });
222
+ fs.mkdirSync(path.join(targetDir, 'src', 'handlers', 'welcome'), { recursive: true });
223
+ fs.mkdirSync(path.join(targetDir, 'src', 'handlers', 'menu'), { recursive: true });
224
+ fs.mkdirSync(path.join(targetDir, 'prisma'), { recursive: true });
225
+ // Create files
226
+ fs.writeFileSync(path.join(targetDir, '.gitignore'), GITIGNORE_CONTENT);
227
+ fs.writeFileSync(path.join(targetDir, 'tsconfig.json'), TS_CONFIG_CONTENT);
228
+ fs.writeFileSync(path.join(targetDir, '.env.example'), ENV_CONTENT);
229
+ fs.writeFileSync(path.join(targetDir, 'bot.json'), JSON.stringify(DEFAULT_BOT_JSON, null, 2) + '\n');
230
+ fs.writeFileSync(path.join(targetDir, 'src', 'index.ts'), INDEX_TS_CONTENT);
231
+ fs.writeFileSync(path.join(targetDir, 'src', 'handlers', 'index.ts'), HANDLERS_INDEX_CONTENT);
232
+ fs.writeFileSync(path.join(targetDir, 'src', 'handlers', 'idle', 'index.ts'), IDLE_HANDLER_CONTENT);
233
+ fs.writeFileSync(path.join(targetDir, 'src', 'handlers', 'welcome', 'index.ts'), WELCOME_HANDLER_CONTENT);
234
+ fs.writeFileSync(path.join(targetDir, 'src', 'handlers', 'menu', 'index.ts'), MENU_HANDLER_CONTENT);
235
+ fs.writeFileSync(path.join(targetDir, 'prisma', 'schema.prisma'), PRISMA_SCHEMA_CONTENT);
236
+ fs.writeFileSync(path.join(targetDir, 'README.md'), README_CONTENT(botName));
237
+ // Create package.json with telemeister dependency
238
+ const packageJson = {
239
+ name: botName,
240
+ version: '0.0.1',
241
+ type: 'module',
242
+ scripts: {
243
+ dev: 'tsx src/index.ts',
244
+ build: 'tsc',
245
+ start: 'node dist/index.js',
246
+ 'db:generate': 'prisma generate',
247
+ 'db:migrate': 'prisma migrate dev',
248
+ 'db:studio': 'prisma studio',
249
+ 'state:add': 'telemeister state:add',
250
+ 'state:delete': 'telemeister state:delete',
251
+ 'state:sync': 'telemeister state:sync',
252
+ 'state:transition:add': 'telemeister state:transition:add',
253
+ 'state:transition:delete': 'telemeister state:transition:delete',
254
+ },
255
+ dependencies: {
256
+ telemeister: '^0.0.1',
257
+ },
258
+ devDependencies: {
259
+ '@types/node': '^20.0.0',
260
+ prisma: '^5.0.0',
261
+ tsx: '^4.0.0',
262
+ typescript: '^5.0.0',
263
+ },
264
+ };
265
+ fs.writeFileSync(path.join(targetDir, 'package.json'), JSON.stringify(packageJson, null, 2) + '\n');
266
+ console.log(`✅ Bot "${botName}" created successfully!\n`);
267
+ console.log('Next steps:');
268
+ console.log(` cd ${botName}`);
269
+ console.log(' npm install');
270
+ console.log(' cp .env.example .env # Add your bot token');
271
+ console.log(' npm run db:generate');
272
+ console.log(' npm run db:migrate');
273
+ console.log(' npm run dev');
274
+ }
275
+ //# sourceMappingURL=create-bot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-bot.js","sourceRoot":"","sources":["../../src/cli/create-bot.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;CAmBzB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAWxB,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;CAS9B,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;CAiB5B,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;CAe/B,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;CAmB5B,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;CAKnB,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;CAiB7B,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCvD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA2B;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CACX,wGAAwG,CACzG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAEvD,oCAAoC;IACpC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,kBAAkB,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,IAAI,CAAC,CAAC;IAEjD,6BAA6B;IAC7B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,eAAe;IACf,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC3E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IACpE,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACjD,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC5E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAC9F,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAC3D,oBAAoB,CACrB,CAAC;IACF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,EAC9D,uBAAuB,CACxB,CAAC;IACF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAC3D,oBAAoB,CACrB,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACzF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7E,kDAAkD;IAClD,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,GAAG,EAAE,kBAAkB;YACvB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,oBAAoB;YAC3B,aAAa,EAAE,iBAAiB;YAChC,YAAY,EAAE,oBAAoB;YAClC,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,uBAAuB;YACpC,cAAc,EAAE,0BAA0B;YAC1C,YAAY,EAAE,wBAAwB;YACtC,sBAAsB,EAAE,kCAAkC;YAC1D,yBAAyB,EAAE,qCAAqC;SACjE;QACD,YAAY,EAAE;YACZ,WAAW,EAAE,QAAQ;SACtB;QACD,eAAe,EAAE;YACf,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,QAAQ;YACb,UAAU,EAAE,QAAQ;SACrB;KACF,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAC5C,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,2BAA2B,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './state-manager.js';
2
+ export * from './create-bot.js';
3
+ export { runCLI } from './cli.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './state-manager.js';
2
+ export * from './create-bot.js';
3
+ export { runCLI } from './cli.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * State Management for Telemeister CLI
3
+ */
4
+ export declare function stateAdd(stateName: string | undefined): Promise<void>;
5
+ export declare function stateDelete(stateName: string | undefined): Promise<void>;
6
+ export declare function stateSync(): Promise<void>;
7
+ export declare function transitionAdd(fromState: string | undefined, toState: string | undefined): Promise<void>;
8
+ export declare function transitionDelete(fromState: string | undefined, toState: string | undefined): Promise<void>;
9
+ //# sourceMappingURL=state-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/cli/state-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2PH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C3E;AAED,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE9E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA2B/C;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CAkCf"}