@rool-dev/cli 0.1.4-dev.ad81199 → 0.1.5-dev.404734a

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/chat.js CHANGED
@@ -48,7 +48,7 @@ async function sendPrompt(space, prompt) {
48
48
  clearStatusLine();
49
49
  process.stdout.write(tool ? `[${tool.name}]` : 'Thinking...');
50
50
  };
51
- space.on('interactionsUpdated', onUpdate);
51
+ space.on('conversationUpdated', onUpdate);
52
52
  try {
53
53
  const result = await space.prompt(prompt);
54
54
  clearStatusLine();
@@ -59,7 +59,7 @@ async function sendPrompt(space, prompt) {
59
59
  throw err;
60
60
  }
61
61
  finally {
62
- space.off('interactionsUpdated', onUpdate);
62
+ space.off('conversationUpdated', onUpdate);
63
63
  }
64
64
  }
65
65
  async function interactiveMode(space, client) {
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { chat } from './chat.js';
3
3
  import { space } from './space.js';
4
+ import { publish } from './publish.js';
4
5
  import { user } from './user.js';
5
6
  import { logout } from './logout.js';
6
7
  import { printCommonOptions } from './args.js';
@@ -10,6 +11,7 @@ function printUsage() {
10
11
  console.error('Commands:');
11
12
  console.error(' chat [prompt] Chat with a space (interactive if no prompt)');
12
13
  console.error(' space <subcommand> Manage spaces (list, create, delete)');
14
+ console.error(' publish <subcommand> Publish apps (list, unpublish, slug)');
13
15
  console.error(' user Show current user info');
14
16
  console.error(' logout Log out');
15
17
  console.error('');
@@ -28,6 +30,9 @@ async function main() {
28
30
  // Alias: "rool spaces" = "rool space list"
29
31
  await space(['list', ...args]);
30
32
  break;
33
+ case 'publish':
34
+ await publish(args);
35
+ break;
31
36
  case 'user':
32
37
  await user(args);
33
38
  break;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,SAAS,UAAU;IACjB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACrF,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM;QACR,KAAK,QAAQ;YACX,2CAA2C;YAC3C,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR;YACE,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,SAAS,UAAU;IACjB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACrF,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,OAAO;YACV,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM;QACR,KAAK,QAAQ;YACX,2CAA2C;YAC3C,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAC/B,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR;YACE,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function publish(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAqKA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE3D"}
@@ -0,0 +1,199 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import archiver from 'archiver';
4
+ import { RoolClient } from '@rool-dev/client';
5
+ import { NodeAuthProvider } from '@rool-dev/client/node';
6
+ import { parseArgs } from './args.js';
7
+ function printUsage() {
8
+ console.error('Usage: rool publish <command> [options]');
9
+ console.error('');
10
+ console.error('Commands:');
11
+ console.error(' <app-id> <path> Publish a directory as an app');
12
+ console.error(' list List published apps');
13
+ console.error(' unpublish <app-id> Unpublish an app');
14
+ console.error(' slug [new-slug] Show or set your publishing slug');
15
+ console.error('');
16
+ console.error('Options:');
17
+ console.error(' -n, --name <name> App display name (defaults to app-id)');
18
+ console.error(' --no-spa Disable SPA routing (404s won\'t serve index.html)');
19
+ console.error(' -u, --url <url> API URL (default: https://api.rool.dev)');
20
+ console.error('');
21
+ console.error('Examples:');
22
+ console.error(' rool publish my-app ./dist');
23
+ console.error(' rool publish my-app ./dist -n "My App"');
24
+ console.error(' rool publish list');
25
+ console.error(' rool publish unpublish my-app');
26
+ console.error(' rool publish slug');
27
+ console.error(' rool publish slug myusername');
28
+ }
29
+ async function getClient(apiUrl) {
30
+ const authProvider = new NodeAuthProvider();
31
+ const client = new RoolClient({ baseUrl: apiUrl, authProvider });
32
+ if (!await client.isAuthenticated()) {
33
+ console.log('Opening browser to authenticate...');
34
+ await client.login("Rool CLI");
35
+ }
36
+ return client;
37
+ }
38
+ async function zipDirectory(dirPath) {
39
+ return new Promise((resolve, reject) => {
40
+ const archive = archiver('zip', { zlib: { level: 9 } });
41
+ const chunks = [];
42
+ archive.on('data', (chunk) => chunks.push(chunk));
43
+ archive.on('end', () => resolve(Buffer.concat(chunks)));
44
+ archive.on('error', reject);
45
+ archive.directory(dirPath, false);
46
+ archive.finalize();
47
+ });
48
+ }
49
+ function formatBytes(bytes) {
50
+ if (bytes < 1024)
51
+ return `${bytes} B`;
52
+ if (bytes < 1024 * 1024)
53
+ return `${(bytes / 1024).toFixed(1)} KB`;
54
+ return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
55
+ }
56
+ async function publishApp(apiUrl, appId, dirPath, name, spa) {
57
+ // Validate directory exists
58
+ const resolvedPath = path.resolve(dirPath);
59
+ if (!fs.existsSync(resolvedPath)) {
60
+ console.error(`Directory not found: ${resolvedPath}`);
61
+ process.exit(1);
62
+ }
63
+ const stat = fs.statSync(resolvedPath);
64
+ if (!stat.isDirectory()) {
65
+ console.error(`Not a directory: ${resolvedPath}`);
66
+ process.exit(1);
67
+ }
68
+ // Check for index.html
69
+ const indexPath = path.join(resolvedPath, 'index.html');
70
+ if (!fs.existsSync(indexPath)) {
71
+ console.error(`No index.html found in ${resolvedPath}`);
72
+ console.error('The directory must contain an index.html file at the root.');
73
+ process.exit(1);
74
+ }
75
+ console.log(`Packaging ${resolvedPath}...`);
76
+ const zipBuffer = await zipDirectory(resolvedPath);
77
+ console.log(`Bundle size: ${formatBytes(zipBuffer.length)}`);
78
+ const client = await getClient(apiUrl);
79
+ console.log(`Publishing ${appId}...`);
80
+ const blob = new Blob([new Uint8Array(zipBuffer)], { type: 'application/zip' });
81
+ const result = await client.publishApp(appId, { name, bundle: blob, spa });
82
+ console.log('');
83
+ console.log(`Published: ${result.name}`);
84
+ console.log(`URL: ${result.url}`);
85
+ console.log(`Size: ${formatBytes(result.sizeBytes)}`);
86
+ console.log(`SPA routing: ${result.spa ? 'enabled' : 'disabled'}`);
87
+ client.destroy();
88
+ }
89
+ async function listApps(apiUrl) {
90
+ const client = await getClient(apiUrl);
91
+ const apps = await client.listApps();
92
+ if (apps.length === 0) {
93
+ console.log('No published apps.');
94
+ }
95
+ else {
96
+ console.log('Published apps:');
97
+ console.log('');
98
+ for (const app of apps) {
99
+ console.log(` ${app.appId}`);
100
+ console.log(` Name: ${app.name}`);
101
+ console.log(` URL: ${app.url}`);
102
+ console.log(` Size: ${formatBytes(app.sizeBytes)}`);
103
+ console.log(` SPA: ${app.spa ? 'yes' : 'no'}`);
104
+ console.log(` Updated: ${new Date(app.updatedAt).toLocaleString()}`);
105
+ console.log('');
106
+ }
107
+ }
108
+ client.destroy();
109
+ }
110
+ async function unpublishApp(apiUrl, appId) {
111
+ const client = await getClient(apiUrl);
112
+ // Check if app exists
113
+ const app = await client.getAppInfo(appId);
114
+ if (!app) {
115
+ console.error(`App not found: ${appId}`);
116
+ client.destroy();
117
+ process.exit(1);
118
+ }
119
+ await client.unpublishApp(appId);
120
+ console.log(`Unpublished: ${appId}`);
121
+ client.destroy();
122
+ }
123
+ async function showOrSetSlug(apiUrl, newSlug) {
124
+ const client = await getClient(apiUrl);
125
+ const user = await client.getCurrentUser();
126
+ if (newSlug) {
127
+ await client.setSlug(newSlug);
128
+ console.log(`Slug updated to: ${newSlug}`);
129
+ console.log(`Your apps will be published at: https://.../${newSlug}/<app-id>/`);
130
+ }
131
+ else {
132
+ console.log(`Your publishing slug: ${user.slug}`);
133
+ console.log(`Your apps are published at: https://.../${user.slug}/<app-id>/`);
134
+ }
135
+ client.destroy();
136
+ }
137
+ export async function publish(args) {
138
+ const { url: apiUrl, rest } = parseArgs(args);
139
+ const [subcommand, ...subargs] = rest;
140
+ // Parse additional flags from subargs
141
+ let name;
142
+ let spa = true;
143
+ const positional = [];
144
+ for (let i = 0; i < subargs.length; i++) {
145
+ const arg = subargs[i];
146
+ if (arg === '-n' || arg === '--name') {
147
+ name = subargs[++i];
148
+ if (!name) {
149
+ console.error('Missing value for --name');
150
+ process.exit(1);
151
+ }
152
+ }
153
+ else if (arg === '--no-spa') {
154
+ spa = false;
155
+ }
156
+ else if (arg.startsWith('-')) {
157
+ console.error(`Unknown option: ${arg}`);
158
+ process.exit(1);
159
+ }
160
+ else {
161
+ positional.push(arg);
162
+ }
163
+ }
164
+ switch (subcommand) {
165
+ case 'list':
166
+ await listApps(apiUrl);
167
+ break;
168
+ case 'unpublish': {
169
+ const appId = positional[0];
170
+ if (!appId) {
171
+ console.error('Usage: rool publish unpublish <app-id>');
172
+ process.exit(1);
173
+ }
174
+ await unpublishApp(apiUrl, appId);
175
+ break;
176
+ }
177
+ case 'slug': {
178
+ const newSlug = positional[0];
179
+ await showOrSetSlug(apiUrl, newSlug);
180
+ break;
181
+ }
182
+ case undefined:
183
+ printUsage();
184
+ process.exit(1);
185
+ break;
186
+ default: {
187
+ // Treat as: rool publish <app-id> <path>
188
+ const appId = subcommand;
189
+ const dirPath = positional[0];
190
+ if (!dirPath) {
191
+ console.error('Usage: rool publish <app-id> <path>');
192
+ process.exit(1);
193
+ }
194
+ await publishApp(apiUrl, appId, dirPath, name ?? appId, spa);
195
+ break;
196
+ }
197
+ }
198
+ }
199
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rool-dev/cli",
3
- "version": "0.1.4-dev.ad81199",
3
+ "version": "0.1.5-dev.404734a",
4
4
  "description": "Command-line interface for the Rool platform",
5
5
  "packageManager": "pnpm@10.17.1",
6
6
  "type": "module",
@@ -39,11 +39,13 @@
39
39
  },
40
40
  "license": "UNLICENSED",
41
41
  "dependencies": {
42
- "@rool-dev/client": "^0.8.3",
42
+ "@rool-dev/client": "^0.8.6",
43
+ "archiver": "^7.0.1",
43
44
  "marked": "^15.0.12",
44
45
  "marked-terminal": "^7.3.0"
45
46
  },
46
47
  "devDependencies": {
48
+ "@types/archiver": "^7.0.0",
47
49
  "@types/marked-terminal": "^6.1.1",
48
50
  "@types/node": "^25.0.2",
49
51
  "typescript": "^5.9.3"