@tonk/cli 0.3.2 → 0.4.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 (129) hide show
  1. package/README.md +15 -200
  2. package/bin/tonk.js +36 -1
  3. package/package.json +24 -86
  4. package/dist/commands/auth.d.ts +0 -3
  5. package/dist/commands/auth.d.ts.map +0 -1
  6. package/dist/commands/auth.js +0 -184
  7. package/dist/commands/auth.js.map +0 -1
  8. package/dist/commands/create.d.ts +0 -3
  9. package/dist/commands/create.d.ts.map +0 -1
  10. package/dist/commands/create.js +0 -55
  11. package/dist/commands/create.js.map +0 -1
  12. package/dist/commands/delete.d.ts +0 -3
  13. package/dist/commands/delete.d.ts.map +0 -1
  14. package/dist/commands/delete.js +0 -67
  15. package/dist/commands/delete.js.map +0 -1
  16. package/dist/commands/deploy.d.ts +0 -3
  17. package/dist/commands/deploy.d.ts.map +0 -1
  18. package/dist/commands/deploy.js +0 -336
  19. package/dist/commands/deploy.js.map +0 -1
  20. package/dist/commands/hello/index.d.ts +0 -3
  21. package/dist/commands/hello/index.d.ts.map +0 -1
  22. package/dist/commands/hello/index.js +0 -296
  23. package/dist/commands/hello/index.js.map +0 -1
  24. package/dist/commands/hello.d.ts +0 -3
  25. package/dist/commands/hello.d.ts.map +0 -1
  26. package/dist/commands/hello.js +0 -83
  27. package/dist/commands/hello.js.map +0 -1
  28. package/dist/commands/init.d.ts +0 -3
  29. package/dist/commands/init.d.ts.map +0 -1
  30. package/dist/commands/init.js +0 -137
  31. package/dist/commands/init.js.map +0 -1
  32. package/dist/commands/kill.d.ts +0 -3
  33. package/dist/commands/kill.d.ts.map +0 -1
  34. package/dist/commands/kill.js +0 -66
  35. package/dist/commands/kill.js.map +0 -1
  36. package/dist/commands/ls.d.ts +0 -3
  37. package/dist/commands/ls.d.ts.map +0 -1
  38. package/dist/commands/ls.js +0 -52
  39. package/dist/commands/ls.js.map +0 -1
  40. package/dist/commands/proxy.d.ts +0 -3
  41. package/dist/commands/proxy.d.ts.map +0 -1
  42. package/dist/commands/proxy.js +0 -86
  43. package/dist/commands/proxy.js.map +0 -1
  44. package/dist/commands/ps.d.ts +0 -3
  45. package/dist/commands/ps.d.ts.map +0 -1
  46. package/dist/commands/ps.js +0 -56
  47. package/dist/commands/ps.js.map +0 -1
  48. package/dist/commands/push.d.ts +0 -3
  49. package/dist/commands/push.d.ts.map +0 -1
  50. package/dist/commands/push.js +0 -238
  51. package/dist/commands/push.js.map +0 -1
  52. package/dist/commands/server.d.ts +0 -3
  53. package/dist/commands/server.d.ts.map +0 -1
  54. package/dist/commands/server.js +0 -619
  55. package/dist/commands/server.js.map +0 -1
  56. package/dist/commands/start.d.ts +0 -3
  57. package/dist/commands/start.d.ts.map +0 -1
  58. package/dist/commands/start.js +0 -82
  59. package/dist/commands/start.js.map +0 -1
  60. package/dist/commands/worker/commands.d.ts +0 -42
  61. package/dist/commands/worker/commands.d.ts.map +0 -1
  62. package/dist/commands/worker/commands.js +0 -968
  63. package/dist/commands/worker/commands.js.map +0 -1
  64. package/dist/commands/worker/index.d.ts +0 -7
  65. package/dist/commands/worker/index.d.ts.map +0 -1
  66. package/dist/commands/worker/index.js +0 -30
  67. package/dist/commands/worker/index.js.map +0 -1
  68. package/dist/commands/worker/utils/config.d.ts +0 -26
  69. package/dist/commands/worker/utils/config.d.ts.map +0 -1
  70. package/dist/commands/worker/utils/config.js +0 -197
  71. package/dist/commands/worker/utils/config.js.map +0 -1
  72. package/dist/commands/worker/utils/display.d.ts +0 -6
  73. package/dist/commands/worker/utils/display.d.ts.map +0 -1
  74. package/dist/commands/worker/utils/display.js +0 -32
  75. package/dist/commands/worker/utils/display.js.map +0 -1
  76. package/dist/commands/worker/utils/finder.d.ts +0 -12
  77. package/dist/commands/worker/utils/finder.d.ts.map +0 -1
  78. package/dist/commands/worker/utils/finder.js +0 -60
  79. package/dist/commands/worker/utils/finder.js.map +0 -1
  80. package/dist/config/environment.d.ts +0 -52
  81. package/dist/config/environment.d.ts.map +0 -1
  82. package/dist/config/environment.js +0 -83
  83. package/dist/config/environment.js.map +0 -1
  84. package/dist/index.d.ts +0 -1
  85. package/dist/index.d.ts.map +0 -1
  86. package/dist/index.js +0 -3
  87. package/dist/index.js.map +0 -1
  88. package/dist/lib/tonkAuth.d.ts +0 -21
  89. package/dist/lib/tonkAuth.d.ts.map +0 -1
  90. package/dist/lib/tonkAuth.js +0 -140
  91. package/dist/lib/tonkAuth.js.map +0 -1
  92. package/dist/lib/workerManager.d.ts +0 -60
  93. package/dist/lib/workerManager.d.ts.map +0 -1
  94. package/dist/lib/workerManager.js +0 -417
  95. package/dist/lib/workerManager.js.map +0 -1
  96. package/dist/scripts/aws/create-key.sh +0 -20
  97. package/dist/scripts/aws/ec2-dns.sh +0 -20
  98. package/dist/scripts/aws/provision.sh +0 -93
  99. package/dist/tonk.d.ts +0 -2
  100. package/dist/tonk.d.ts.map +0 -1
  101. package/dist/tonk.js +0 -106
  102. package/dist/tonk.js.map +0 -1
  103. package/dist/types/worker.d.ts +0 -161
  104. package/dist/types/worker.d.ts.map +0 -1
  105. package/dist/types/worker.js +0 -7
  106. package/dist/types/worker.js.map +0 -1
  107. package/dist/types/workerConfig.d.ts +0 -164
  108. package/dist/types/workerConfig.d.ts.map +0 -1
  109. package/dist/types/workerConfig.js +0 -80
  110. package/dist/types/workerConfig.js.map +0 -1
  111. package/dist/utils/analytics.d.ts +0 -26
  112. package/dist/utils/analytics.d.ts.map +0 -1
  113. package/dist/utils/analytics.js +0 -218
  114. package/dist/utils/analytics.js.map +0 -1
  115. package/dist/utils/messages.d.ts +0 -6
  116. package/dist/utils/messages.d.ts.map +0 -1
  117. package/dist/utils/messages.js +0 -18
  118. package/dist/utils/messages.js.map +0 -1
  119. package/dist/utils/serverUtils.d.ts +0 -5
  120. package/dist/utils/serverUtils.d.ts.map +0 -1
  121. package/dist/utils/serverUtils.js +0 -34
  122. package/dist/utils/serverUtils.js.map +0 -1
  123. package/dist/utils/version.d.ts +0 -2
  124. package/dist/utils/version.d.ts.map +0 -1
  125. package/dist/utils/version.js +0 -3
  126. package/dist/utils/version.js.map +0 -1
  127. package/scripts/aws/create-key.sh +0 -20
  128. package/scripts/aws/ec2-dns.sh +0 -20
  129. package/scripts/aws/provision.sh +0 -93
@@ -1,296 +0,0 @@
1
- import React, { useState, useEffect } from 'react';
2
- import { render, Box, Text, useInput } from 'ink';
3
- // Original ascii art for reference (using template literals to preserve exact spacing)
4
- // const ORIGINAL_ASCII = `
5
- // _____ U ___ u _ _ _ __
6
- // |_ " _| \\/"_ \\/ | \\ |"| |"|/ /
7
- // | | | | | |<| \\| |> | ' /
8
- // /| |\\.-,_| |_| |U| |\\ |u U/| . \\\\u
9
- // u |_|U \\_)-\\___/ |_| \\_| |_|\\_\\
10
- // _// \\\\_ \\\\ || \\\\,-.,-,>> \\\\,-.
11
- // (__) (__) (__) (_") (_/ \\.) (_/
12
- // `;
13
- // T character frames (using template literals to preserve exact spacing)
14
- const T_FRAMES = [
15
- // Frame 0 - regular T
16
- ` _____
17
- |_ " _|
18
- | |
19
- /| |\\
20
- u |_| U
21
- _// \\\\_
22
- (__) (__) `,
23
- // Frame 1 - T with right arm
24
- ` _____
25
- |_ "_|
26
- | |
27
- /| |--u
28
- u |_|
29
- _// \\\\_
30
- (__) (__) `,
31
- // Frame 2 - T with left arm
32
- ` _____
33
- |_" _|u
34
- | | /
35
- u--| |
36
- |_|
37
- _// \\\\_
38
- (__) (__) `,
39
- ];
40
- // O character frames (using template literals to preserve exact spacing)
41
- const O_FRAMES = [
42
- // Frame 0 - regular O
43
- ` U ___ u
44
- \\/"_ \\/
45
- | | | |
46
- .-,_| |_| |
47
- \\_)-\\___/
48
- \\\\
49
- (__) `,
50
- // Frame 1 - O with arms
51
- ` ___
52
- u—— / _"\\——u
53
- | | | |
54
- | |_| |
55
- .-/,/\___/
56
- \\_) ||
57
- (__) `,
58
- // Frame 2 - O with stretched legs
59
- ` ___
60
- /"_ \\
61
- /| | | |\\
62
- u | |_| | u
63
- \\___/
64
- _// \\\\_
65
- (__) (__) `,
66
- ];
67
- // N character frames (using template literals to preserve exact spacing)
68
- const N_FRAMES = [
69
- // Frame 0 - regular N
70
- ` _ _
71
- | \\ |"|
72
- <| \\| |>
73
- U| |\\ |u
74
- |_| \\_|
75
- || \\\\,-.
76
- (_") (_/ `,
77
- // Frame 1 - N with different arms
78
- ` - -
79
- | \\ |"|
80
- <| \\| |>
81
- U| |\\ |u
82
- |_| \\_|
83
- ,-,>> ||
84
- \\.) (_") `,
85
- // Frame 2 - N with different legs
86
- ` _ _
87
- | \\ |"|
88
- <| \\| |>
89
- U| |\\ |u
90
- |_| \\_|
91
- //,-,>>
92
- (_")\\.) `,
93
- ];
94
- // K character frames (using template literals to preserve exact spacing)
95
- const K_FRAMES = [
96
- // Frame 0 - regular K
97
- ` _ __
98
- |"|/ /
99
- | ' /
100
- U/| . \\u
101
- |_|\\_\\
102
- || \\\\,-.
103
- (_") (_/ `,
104
- // Frame 1 - K with arm
105
- ` _ _
106
- |"|/ /
107
- | ' /
108
- U/| . \\—u
109
- |_|\\_\\
110
- || ||
111
- (_")(_") `,
112
- // Frame 2 - K with legs
113
- ` _ __
114
- |"|/ /
115
- | ' /
116
- U/| . \\u
117
- |_|\\_\\
118
- ,-,> \\\\,-.
119
- \\.) (_/ `,
120
- // Frame 3 - K with all limbs
121
- ` _ __
122
- u |"|/ /
123
- \\| ' /_u
124
- | . \\
125
- |_|\\_\\
126
- _//,-,>>
127
- \\.) \\.) `,
128
- ];
129
- // Star characters
130
- const STAR_CHARS = '・。゜☆。・゜。・。゜☆。・゜★・。゜☆。・゜。・。゜☆。・゜☆。・゜☆。・゜☆。・゜';
131
- // Animation configuration
132
- const ANIMATION_CONFIG = {
133
- // Time between frame changes during an animation sequence (milliseconds)
134
- frameSpeed: 200,
135
- // Number of frames to show in a sequence
136
- sequenceLength: 3,
137
- // Min and max time between animation sequences (milliseconds)
138
- minPauseBetweenSequences: 1000,
139
- maxPauseBetweenSequences: 3000,
140
- };
141
- // Welcome message component
142
- const WelcomeMessage = () => {
143
- return (React.createElement(Box, { flexDirection: "column", marginTop: 1, width: 80 },
144
- React.createElement(Text, null,
145
- React.createElement(Text, { bold: true, color: "green" }, "Hello Builder!")),
146
- React.createElement(Box, { marginTop: 1 },
147
- React.createElement(Text, null, "Thank you for choosing Tonk! We're thrilled to have you onboard and excited to see what we can build together.")),
148
- React.createElement(Box, { marginTop: 2 },
149
- React.createElement(Text, { bold: true, underline: true, color: "cyan" }, "Getting Started:")),
150
- React.createElement(Box, { marginLeft: 2, marginTop: 1 },
151
- React.createElement(Text, null,
152
- "\u2022 Create a new Tonk app or worker:",
153
- ' ',
154
- React.createElement(Text, { bold: true, color: "yellow" }, "tonk create"))),
155
- React.createElement(Box, { marginLeft: 2, marginTop: 1 },
156
- React.createElement(Text, null, "\u2022 Open in your agentic editor and let the vibecode flow \uD83D\uDE0E")),
157
- React.createElement(Box, { marginLeft: 2, marginTop: 1 },
158
- React.createElement(Text, null,
159
- "\u2022 View your project:",
160
- ' ',
161
- React.createElement(Text, { bold: true, color: "yellow" }, "tonk start"))),
162
- React.createElement(Box, { marginLeft: 2, marginTop: 1 },
163
- React.createElement(Text, null,
164
- "\u2022 Share it out:",
165
- ' ',
166
- React.createElement(Text, { bold: true, color: "yellow" }, "tonk deploy"))),
167
- React.createElement(Box, { marginLeft: 2, marginTop: 1 },
168
- React.createElement(Text, null,
169
- "\u2022 Read the documentation:",
170
- ' ',
171
- React.createElement(Text, { bold: true, color: "blue" }, "https://tonk-labs.github.io/tonk/"))),
172
- React.createElement(Box, { marginTop: 2 },
173
- React.createElement(Text, { bold: true, underline: true, color: "cyan" }, "Community:")),
174
- React.createElement(Box, { marginLeft: 2, marginTop: 1 },
175
- React.createElement(Text, null,
176
- "\u2022 Join our Telegram:",
177
- ' ',
178
- React.createElement(Text, { bold: true, color: "blue" }, "https://t.me/+9W-4wDR9RcM2NWZk"))),
179
- React.createElement(Box, { marginTop: 2 },
180
- React.createElement(Text, null, "Our team would love to hear from you. If you need any assistance or have questions, please don't hesitate to reach out through our community channels.")),
181
- React.createElement(Box, { marginTop: 1 },
182
- React.createElement(Text, { bold: true, color: "green" }, "Happy building with Tonk!")),
183
- React.createElement(Box, { marginTop: 1 },
184
- React.createElement(Text, { color: "yellow" }, "(Press any key to exit)"))));
185
- };
186
- // Component for rendering animated ASCII art
187
- const TonkAsciiAnimated = () => {
188
- // States to track current frame for each letter
189
- const [tFrame, setTFrame] = useState(0);
190
- const [oFrame, setOFrame] = useState(0);
191
- const [nFrame, setNFrame] = useState(0);
192
- const [kFrame, setKFrame] = useState(0);
193
- // Add state for exit handling
194
- const [shouldExit, setShouldExit] = useState(false);
195
- // Capture key input to exit
196
- useInput(() => {
197
- setShouldExit(true);
198
- });
199
- // Exit effect
200
- useEffect(() => {
201
- if (shouldExit) {
202
- process.exit(0);
203
- }
204
- }, [shouldExit]);
205
- // State for star characters
206
- const [starIndex, setStarIndex] = useState(0);
207
- // Helper to get random pause duration
208
- const getRandomPause = () => {
209
- return Math.floor(ANIMATION_CONFIG.minPauseBetweenSequences +
210
- Math.random() *
211
- (ANIMATION_CONFIG.maxPauseBetweenSequences -
212
- ANIMATION_CONFIG.minPauseBetweenSequences));
213
- };
214
- // Animation function for the star border
215
- useEffect(() => {
216
- const starInterval = setInterval(() => {
217
- setStarIndex(prev => (prev + 1) % STAR_CHARS.length);
218
- }, 500);
219
- return () => clearInterval(starInterval);
220
- }, []);
221
- // Animation function for a letter
222
- const animateCharacter = (setFrame, maxFrames, animatingRef) => {
223
- // Don't start a new animation if one is already running
224
- if (animatingRef.current)
225
- return;
226
- animatingRef.current = true;
227
- let frameCount = 0;
228
- // Start animation sequence
229
- const sequenceInterval = setInterval(() => {
230
- setFrame(prev => (prev + 1) % maxFrames);
231
- frameCount++;
232
- // End sequence after desired number of frames
233
- if (frameCount >= ANIMATION_CONFIG.sequenceLength) {
234
- clearInterval(sequenceInterval);
235
- animatingRef.current = false;
236
- // Schedule the next animation sequence after a random pause
237
- setTimeout(() => {
238
- animateCharacter(setFrame, maxFrames, animatingRef);
239
- }, getRandomPause());
240
- }
241
- }, ANIMATION_CONFIG.frameSpeed);
242
- };
243
- // Animation references
244
- const tAnimating = React.useRef(false);
245
- const oAnimating = React.useRef(false);
246
- const nAnimating = React.useRef(false);
247
- const kAnimating = React.useRef(false);
248
- // Start animations with delays
249
- useEffect(() => {
250
- const tDelay = Math.random() * 1000;
251
- const oDelay = Math.random() * 2000 + 300;
252
- const nDelay = Math.random() * 1000 + 600;
253
- const kDelay = Math.random() * 500 + 900;
254
- // Initial animation sequences
255
- const tTimeout = setTimeout(() => animateCharacter(setTFrame, T_FRAMES.length, tAnimating), tDelay);
256
- const oTimeout = setTimeout(() => animateCharacter(setOFrame, O_FRAMES.length, oAnimating), oDelay);
257
- const nTimeout = setTimeout(() => animateCharacter(setNFrame, N_FRAMES.length, nAnimating), nDelay);
258
- const kTimeout = setTimeout(() => animateCharacter(setKFrame, K_FRAMES.length, kAnimating), kDelay);
259
- // Cleanup timeouts on unmount
260
- return () => {
261
- clearTimeout(tTimeout);
262
- clearTimeout(oTimeout);
263
- clearTimeout(nTimeout);
264
- clearTimeout(kTimeout);
265
- };
266
- }, []);
267
- // Get rotated star border
268
- const getStarBorder = () => {
269
- return STAR_CHARS.slice(starIndex) + STAR_CHARS.slice(0, starIndex);
270
- };
271
- return (React.createElement(Box, { flexDirection: "column", alignItems: "flex-start" },
272
- React.createElement(Text, null, getStarBorder()),
273
- React.createElement(Box, { marginY: 1 },
274
- React.createElement(Box, { flexDirection: "row" },
275
- React.createElement(Box, { marginRight: 1 },
276
- React.createElement(Text, { color: "green" }, T_FRAMES[tFrame])),
277
- React.createElement(Box, { marginRight: 1 },
278
- React.createElement(Text, { color: "magenta" }, O_FRAMES[oFrame])),
279
- React.createElement(Box, { marginRight: 1 },
280
- React.createElement(Text, { color: "cyan" }, N_FRAMES[nFrame])),
281
- React.createElement(Box, null,
282
- React.createElement(Text, { color: "yellow" }, K_FRAMES[kFrame])))),
283
- React.createElement(Text, null, getStarBorder()),
284
- React.createElement(WelcomeMessage, null)));
285
- };
286
- // Function to render the animation and return a function to stop it
287
- const displayTonkAnimation = () => {
288
- // Render the component using Ink
289
- const { unmount } = render(React.createElement(TonkAsciiAnimated, null));
290
- // Return a cleanup function
291
- return () => {
292
- unmount();
293
- };
294
- };
295
- export default displayTonkAnimation;
296
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hello/index.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const helloCommand: Command;
3
- //# sourceMappingURL=hello.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hello.d.ts","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAelC,eAAO,MAAM,YAAY,SAuFrB,CAAC"}
@@ -1,83 +0,0 @@
1
- import { Command } from 'commander';
2
- import displayTonkAnimation from './hello/index.js';
3
- import chalk from 'chalk';
4
- import envPaths from 'env-paths';
5
- import { exec } from 'child_process';
6
- import { promisify } from 'util';
7
- import { trackCommand, trackCommandError, trackCommandSuccess, shutdownAnalytics, } from '../utils/analytics.js';
8
- const execAsync = promisify(exec);
9
- export const helloCommand = new Command('hello')
10
- .description('Say hello to start and launch the tonk daemon')
11
- .action(async () => {
12
- const startTime = Date.now();
13
- try {
14
- trackCommand('hello', {});
15
- // Check if pm2 is installed
16
- let pm2Exists = false;
17
- try {
18
- await execAsync('pm2 --version');
19
- pm2Exists = true;
20
- }
21
- catch (error) {
22
- // pm2 is not installed or not in PATH
23
- console.log(chalk.blue('PM2 is required to run Tonk. Installing now...'));
24
- await execAsync('npm install -g pm2');
25
- pm2Exists = true;
26
- console.log(chalk.green('PM2 installed successfully.'));
27
- }
28
- if (pm2Exists) {
29
- console.log(chalk.blue('Starting Tonk daemon...'));
30
- try {
31
- // Check if tonk process is already running in PM2
32
- const { stdout } = await execAsync('pm2 list');
33
- if (stdout.includes('tonkserver')) {
34
- console.log(chalk.yellow('Tonk daemon is already running. Restarting...'));
35
- await execAsync('pm2 restart tonkserver');
36
- }
37
- else {
38
- // Start the tonk daemon with PM2
39
- const { stdout: whichTonk } = await execAsync('which tonk');
40
- const tonkPath = whichTonk.trim();
41
- // Check if tonk executable is a bash script or Node.js file
42
- const { stdout: fileHead } = await execAsync(`head -1 ${tonkPath}`);
43
- const isBashScript = fileHead.includes('#!/bin/bash');
44
- //development is for when running locally, we don't use an NGINX instance in local development mode
45
- if (isBashScript) {
46
- await execAsync(`NODE_ENV=development pm2 start bash --name tonkserver -- ${tonkPath} -d`);
47
- }
48
- else {
49
- await execAsync(`NODE_ENV=development pm2 start ${tonkPath} --name tonkserver -- -d`);
50
- }
51
- }
52
- console.log(chalk.green('Tonk daemon started successfully!'));
53
- const paths = envPaths('tonk', { suffix: '' });
54
- const tonkHome = paths.data;
55
- // Pretty print the Tonk home location
56
- console.log(chalk.cyan('🏠 Tonk Home:'), chalk.bold.green(tonkHome));
57
- // Display the welcome animation
58
- displayTonkAnimation();
59
- const duration = Date.now() - startTime;
60
- trackCommandSuccess('hello', duration, {
61
- pm2AlreadyInstalled: pm2Exists,
62
- tonkAlreadyRunning: stdout.includes('tonkserver'),
63
- });
64
- await shutdownAnalytics();
65
- }
66
- catch (error) {
67
- const duration = Date.now() - startTime;
68
- trackCommandError('hello', error, duration);
69
- console.error(chalk.red('Failed to start tonk daemon:'), error);
70
- await shutdownAnalytics();
71
- process.exitCode = 1;
72
- }
73
- }
74
- }
75
- catch (error) {
76
- const duration = Date.now() - startTime;
77
- trackCommandError('hello', error, duration);
78
- console.error(chalk.red('An error occurred:'), error);
79
- await shutdownAnalytics();
80
- process.exitCode = 1;
81
- }
82
- });
83
- //# sourceMappingURL=hello.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hello.js","sourceRoot":"","sources":["../../src/commands/hello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,oBAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,MAAM,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE1B,4BAA4B;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC;YACjC,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAC7D,CAAC;YACF,MAAM,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC;gBACH,kDAAkD;gBAClD,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;gBAE7C,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAC9D,CAAC;oBACF,MAAM,SAAS,CAAC,wBAAwB,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,iCAAiC;oBACjC,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;oBAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;oBAElC,4DAA4D;oBAC5D,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,MAAM,SAAS,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;oBAClE,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAEtD,mGAAmG;oBACnG,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,SAAS,CACb,4DAA4D,QAAQ,KAAK,CAC1E,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,SAAS,CACb,kCAAkC,QAAQ,0BAA0B,CACrE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAE9D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,EAAE,EAAC,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE5B,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAErE,gCAAgC;gBAChC,oBAAoB,EAAE,CAAC;gBAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACxC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE;oBACrC,mBAAmB,EAAE,SAAS;oBAC9B,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAClD,CAAC,CAAC;gBACH,MAAM,iBAAiB,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACxC,iBAAiB,CAAC,OAAO,EAAE,KAAc,EAAE,QAAQ,CAAC,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC,CAAC;gBAChE,MAAM,iBAAiB,EAAE,CAAC;gBAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,iBAAiB,CAAC,OAAO,EAAE,KAAc,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,iBAAiB,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const initCommand: Command;
3
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAsDlC,eAAO,MAAM,WAAW,SAgHpB,CAAC"}
@@ -1,137 +0,0 @@
1
- import { Command } from 'commander';
2
- import path from 'path';
3
- import chalk from 'chalk';
4
- import fs from 'fs-extra';
5
- import { fileURLToPath } from 'url';
6
- import { trackCommand, trackCommandError, trackCommandSuccess, shutdownAnalytics, } from '../utils/analytics.js';
7
- /**
8
- * Resolves a package path by checking both local development and global installation paths
9
- * @param relativePath Path relative to the package root
10
- * @returns Resolved absolute path to the requested file/directory
11
- */
12
- async function resolvePackagePath(relativePath) {
13
- try {
14
- // For ESM, get the directory name using import.meta.url
15
- const moduleUrl = import.meta.url;
16
- const moduleDirPath = path.dirname(fileURLToPath(moduleUrl));
17
- // Try local development path first
18
- const localPath = path.resolve(moduleDirPath, '..', relativePath);
19
- if (await fs.pathExists(localPath)) {
20
- return localPath;
21
- }
22
- else {
23
- // If local path doesn't exist, try global node_modules
24
- const { execSync } = await import('child_process');
25
- const globalNodeModules = execSync('npm root -g').toString().trim();
26
- // Look for the package in global node_modules
27
- const globalPath = path.join(globalNodeModules, '@tonk/create', relativePath);
28
- if (await fs.pathExists(globalPath)) {
29
- return globalPath;
30
- }
31
- else {
32
- throw new Error(`Could not locate ${relativePath} in local or global paths`);
33
- }
34
- }
35
- }
36
- catch (error) {
37
- console.error(`Error resolving path ${relativePath}:`, error);
38
- throw error;
39
- }
40
- }
41
- export const initCommand = new Command('init')
42
- .description('Create a new Tonk repo')
43
- .argument('[<directory>]', 'optionally creates a directory and initializes the tonk repo in that directory')
44
- .action(async (dirPath) => {
45
- const startTime = Date.now();
46
- try {
47
- trackCommand('init', {
48
- hasDirectory: !!dirPath,
49
- targetDirectory: dirPath || 'current',
50
- });
51
- const cwd = process.cwd();
52
- const target = dirPath ? path.join(cwd, dirPath) : cwd;
53
- // Check if target already exists and has files
54
- const targetExists = await fs.pathExists(target);
55
- let existingFiles = 0;
56
- if (targetExists) {
57
- const files = await fs.readdir(target);
58
- existingFiles = files.filter(file => !file.startsWith('.')).length;
59
- }
60
- console.log(chalk.blue(`🚀 Initializing Tonk repository in ${target}`));
61
- const templatePath = await resolvePackagePath(`template`);
62
- // Create directory if needed
63
- let directoryCreated = false;
64
- if (dirPath && !targetExists) {
65
- await fs.mkdir(target);
66
- directoryCreated = true;
67
- console.log(chalk.green(`✅ Created directory: ${dirPath}`));
68
- }
69
- // Count files to be copied
70
- let copiedFiles = 0;
71
- let skippedFiles = 0;
72
- await fs.copy(templatePath, target, {
73
- filter: (src) => {
74
- // Get the relative path from the template directory
75
- const relativePath = path.relative(templatePath, src);
76
- // Only filter out node_modules and .git within the template
77
- const shouldCopy = !relativePath
78
- .split(path.sep)
79
- .some(part => part === 'node_modules' || part === '.git');
80
- if (!shouldCopy) {
81
- console.log(chalk.yellow(`Skipping: ${relativePath}`));
82
- skippedFiles++;
83
- }
84
- else if (relativePath) {
85
- copiedFiles++;
86
- }
87
- return shouldCopy;
88
- },
89
- overwrite: true,
90
- errorOnExist: false,
91
- });
92
- console.log(chalk.green(`✅ Successfully initialized Tonk repository!`));
93
- console.log(chalk.cyan(`📁 Files copied: ${copiedFiles}`));
94
- if (skippedFiles > 0) {
95
- console.log(chalk.yellow(`📁 Files skipped: ${skippedFiles}`));
96
- }
97
- const duration = Date.now() - startTime;
98
- trackCommandSuccess('init', duration, {
99
- hasDirectory: !!dirPath,
100
- directoryCreated,
101
- existingFiles,
102
- copiedFiles,
103
- skippedFiles,
104
- targetPath: target,
105
- templatePath,
106
- });
107
- await shutdownAnalytics();
108
- }
109
- catch (error) {
110
- const duration = Date.now() - startTime;
111
- // Determine error type
112
- let errorType = 'unknown_error';
113
- if (error instanceof Error) {
114
- if (error.message.includes('ENOENT')) {
115
- errorType = 'template_not_found';
116
- }
117
- else if (error.message.includes('EACCES')) {
118
- errorType = 'permission_denied';
119
- }
120
- else if (error.message.includes('EEXIST')) {
121
- errorType = 'directory_exists';
122
- }
123
- else if (error.message.includes('Could not locate')) {
124
- errorType = 'package_resolution_failed';
125
- }
126
- }
127
- trackCommandError('init', error, duration, {
128
- hasDirectory: !!dirPath,
129
- errorType,
130
- targetPath: dirPath ? path.join(process.cwd(), dirPath) : process.cwd(),
131
- });
132
- console.error(chalk.red('❌ Failed to initialize Tonk repository:'), error);
133
- await shutdownAnalytics();
134
- process.exitCode = 1;
135
- }
136
- });
137
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const killCommand: Command;
3
- //# sourceMappingURL=kill.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kill.d.ts","sourceRoot":"","sources":["../../src/commands/kill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAWlC,eAAO,MAAM,WAAW,SA+EpB,CAAC"}
@@ -1,66 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import fetch from 'node-fetch';
4
- import { trackCommand, trackCommandError, trackCommandSuccess, shutdownAnalytics, } from '../utils/analytics.js';
5
- import { getServerConfig } from '../config/environment.js';
6
- export const killCommand = new Command('kill')
7
- .description('Stop a running bundle server')
8
- .option('-u, --url <url>', 'URL of the Tonk server', getServerConfig().defaultUrl)
9
- .argument('<serverId>', 'ID of the server to stop')
10
- .action(async (serverId, options) => {
11
- const startTime = Date.now();
12
- const serverUrl = options.url;
13
- try {
14
- trackCommand('kill', {
15
- serverId,
16
- serverUrl,
17
- });
18
- console.log(chalk.blue(`Stopping server with ID: ${serverId}...`));
19
- const response = await fetch(`${serverUrl}/kill`, {
20
- method: 'POST',
21
- headers: {
22
- 'Content-Type': 'application/json',
23
- },
24
- body: JSON.stringify({ id: serverId }),
25
- });
26
- if (!response.ok) {
27
- const errorText = await response.text();
28
- throw new Error(`Server error: ${errorText}`);
29
- }
30
- const result = (await response.json());
31
- if (result.success) {
32
- console.log(chalk.green('Server stopped successfully!'));
33
- console.log(chalk.green(result.message));
34
- const duration = Date.now() - startTime;
35
- trackCommandSuccess('kill', duration, {
36
- serverId,
37
- serverUrl,
38
- success: true,
39
- });
40
- await shutdownAnalytics();
41
- }
42
- else {
43
- console.log(chalk.yellow('Server stop command sent, but with warnings:'));
44
- console.log(chalk.yellow(result.message));
45
- const duration = Date.now() - startTime;
46
- trackCommandSuccess('kill', duration, {
47
- serverId,
48
- serverUrl,
49
- success: false,
50
- message: result.message,
51
- });
52
- await shutdownAnalytics();
53
- }
54
- }
55
- catch (error) {
56
- const duration = Date.now() - startTime;
57
- trackCommandError('kill', error, duration, {
58
- serverId,
59
- serverUrl,
60
- });
61
- console.error(chalk.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
62
- await shutdownAnalytics();
63
- process.exitCode = 1;
64
- }
65
- });
66
- //# sourceMappingURL=kill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kill.js","sourceRoot":"","sources":["../../src/commands/kill.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const lsCommand: Command;
3
- //# sourceMappingURL=ls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAWlC,eAAO,MAAM,SAAS,SA8DlB,CAAC"}