@rool-dev/cli 0.1.10 → 0.1.11-dev.0d43779
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/README.md +25 -12
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +34 -13
- package/dist/app.js.map +1 -1
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +14 -4
- package/dist/chat.js.map +1 -1
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +4 -2
- package/dist/client.js.map +1 -1
- package/dist/constants.d.ts +6 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -1
- package/dist/constants.js.map +1 -1
- package/dist/create.d.ts +3 -0
- package/dist/create.d.ts.map +1 -0
- package/dist/create.js +119 -0
- package/dist/create.js.map +1 -0
- package/dist/logout.d.ts.map +1 -1
- package/dist/logout.js +7 -4
- package/dist/logout.js.map +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +14 -4
- package/dist/media.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +11 -2
- package/dist/program.js.map +1 -1
- package/dist/space.d.ts.map +1 -1
- package/dist/space.js +29 -15
- package/dist/space.js.map +1 -1
- package/dist/user.d.ts.map +1 -1
- package/dist/user.js +7 -4
- package/dist/user.js.map +1 -1
- package/package.json +4 -3
- package/templates/svelte/AGENTS.md +57 -0
- package/templates/svelte/index.html +12 -0
- package/templates/svelte/package.json +25 -0
- package/templates/svelte/src/App.svelte +54 -0
- package/templates/svelte/src/Chat.svelte +92 -0
- package/templates/svelte/src/Header.svelte +26 -0
- package/templates/svelte/src/Objects.svelte +39 -0
- package/templates/svelte/src/Splash.svelte +21 -0
- package/templates/svelte/src/app.css +1 -0
- package/templates/svelte/src/main.ts +5 -0
- package/templates/svelte/tsconfig.json +13 -0
- package/templates/svelte/vite.config.ts +8 -0
- package/templates/vanilla/AGENTS.md +63 -0
- package/templates/vanilla/index.html +12 -0
- package/templates/vanilla/package.json +21 -0
- package/templates/vanilla/src/app.css +1 -0
- package/templates/vanilla/src/main.ts +158 -0
- package/templates/vanilla/tsconfig.json +10 -0
- package/templates/vanilla/vite.config.ts +7 -0
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ rool <command> [options]
|
|
|
19
19
|
| Command | Description |
|
|
20
20
|
|---------|-------------|
|
|
21
21
|
| `chat [prompt]` | Chat with a space (interactive if no prompt) |
|
|
22
|
+
| `create <name>` | Create a new Rool app |
|
|
22
23
|
| `media upload <file>` | Upload a file to a space and create an object with the media URL |
|
|
23
24
|
| `space list` | List all spaces |
|
|
24
25
|
| `space create <name>` | Create a new space |
|
|
@@ -43,7 +44,8 @@ rool <command> [options]
|
|
|
43
44
|
|--------|-------------|---------|---------|
|
|
44
45
|
| `-s, --space <name>` | space name | `Rool CLI` | `chat`, `media upload` |
|
|
45
46
|
| `-c, --conversation <id>` | conversation ID | `rool-dev` | `chat` |
|
|
46
|
-
|
|
|
47
|
+
| `--svelte` | use Svelte template | | `create` |
|
|
48
|
+
| `--vanilla` | use vanilla TypeScript template | | `create` |
|
|
47
49
|
| `-m, --message <text>` | optional comment/description | | `media upload` |
|
|
48
50
|
| `-y, --yes` | skip confirmation prompt | | `space delete` |
|
|
49
51
|
| `-n, --name <name>` | app display name (defaults to app-id) | | `app publish` |
|
|
@@ -61,17 +63,14 @@ rool chat
|
|
|
61
63
|
# Use a specific space
|
|
62
64
|
rool chat -s "My Project" "Summarize the current state"
|
|
63
65
|
|
|
64
|
-
#
|
|
65
|
-
rool
|
|
66
|
+
# Create a Svelte app
|
|
67
|
+
rool create --svelte my-app
|
|
66
68
|
|
|
67
|
-
# Create a
|
|
68
|
-
rool
|
|
69
|
+
# Create a vanilla TypeScript app
|
|
70
|
+
rool create --vanilla my-app
|
|
69
71
|
|
|
70
|
-
#
|
|
71
|
-
rool
|
|
72
|
-
|
|
73
|
-
# Delete without confirmation
|
|
74
|
-
rool space delete "Old Project" -y
|
|
72
|
+
# Using npx
|
|
73
|
+
npx @rool-dev/cli create --svelte my-app
|
|
75
74
|
|
|
76
75
|
# Upload a file
|
|
77
76
|
rool media upload photo.jpg
|
|
@@ -82,6 +81,18 @@ rool media upload report.pdf -m "Q4 sales report"
|
|
|
82
81
|
# Upload to a specific space
|
|
83
82
|
rool media upload logo.png -s "My Project"
|
|
84
83
|
|
|
84
|
+
# List your spaces
|
|
85
|
+
rool space list
|
|
86
|
+
|
|
87
|
+
# Create a new space
|
|
88
|
+
rool space create "My New Project"
|
|
89
|
+
|
|
90
|
+
# Delete a space (with confirmation)
|
|
91
|
+
rool space delete "Old Project"
|
|
92
|
+
|
|
93
|
+
# Delete without confirmation
|
|
94
|
+
rool space delete "Old Project" -y
|
|
95
|
+
|
|
85
96
|
# Publish a directory as an app
|
|
86
97
|
rool app publish my-app ./dist
|
|
87
98
|
|
|
@@ -94,8 +105,10 @@ rool app list
|
|
|
94
105
|
# Unpublish an app
|
|
95
106
|
rool app unpublish my-app
|
|
96
107
|
|
|
97
|
-
# Show
|
|
108
|
+
# Show your user slug
|
|
98
109
|
rool app slug
|
|
110
|
+
|
|
111
|
+
# Set your user slug
|
|
99
112
|
rool app slug my-slug
|
|
100
113
|
|
|
101
114
|
# Show user info
|
|
@@ -111,7 +124,7 @@ On first use, the CLI opens your browser to authenticate. Credentials are stored
|
|
|
111
124
|
|
|
112
125
|
## Version
|
|
113
126
|
|
|
114
|
-
Current version: `0.1.
|
|
127
|
+
Current version: `0.1.11`. Use `rool --version` to check your installed version.
|
|
115
128
|
|
|
116
129
|
## License
|
|
117
130
|
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmJlD"}
|
package/dist/app.js
CHANGED
|
@@ -3,7 +3,6 @@ import * as path from 'node:path';
|
|
|
3
3
|
import archiver from 'archiver';
|
|
4
4
|
import { getClient } from './client.js';
|
|
5
5
|
import { formatBytes } from './format.js';
|
|
6
|
-
import { DEFAULT_API_URL } from './constants.js';
|
|
7
6
|
async function zipDirectory(dirPath) {
|
|
8
7
|
return new Promise((resolve, reject) => {
|
|
9
8
|
const archive = archiver('zip', { zlib: { level: 9 } });
|
|
@@ -26,8 +25,15 @@ export function registerApp(program) {
|
|
|
26
25
|
.argument('<path>', 'directory to publish')
|
|
27
26
|
.option('-n, --name <name>', 'app display name (defaults to app-id)')
|
|
28
27
|
.option('--no-spa', 'disable SPA routing (404s will not serve index.html)')
|
|
29
|
-
.
|
|
30
|
-
|
|
28
|
+
.addHelpText('after', `
|
|
29
|
+
Examples:
|
|
30
|
+
# Publish a directory as an app
|
|
31
|
+
$ rool app publish my-app ./dist
|
|
32
|
+
|
|
33
|
+
# Publish with a custom name
|
|
34
|
+
$ rool app publish my-app ./dist -n "My App"`)
|
|
35
|
+
.action(async (appId, dirPath, opts, command) => {
|
|
36
|
+
const { env } = command.optsWithGlobals();
|
|
31
37
|
// Validate directory exists
|
|
32
38
|
const resolvedPath = path.resolve(dirPath);
|
|
33
39
|
if (!fs.existsSync(resolvedPath)) {
|
|
@@ -49,7 +55,7 @@ export function registerApp(program) {
|
|
|
49
55
|
console.log(`Packaging ${resolvedPath}...`);
|
|
50
56
|
const zipBuffer = await zipDirectory(resolvedPath);
|
|
51
57
|
console.log(`Bundle size: ${formatBytes(zipBuffer.length)}`);
|
|
52
|
-
const client = await getClient(
|
|
58
|
+
const client = await getClient(env);
|
|
53
59
|
try {
|
|
54
60
|
console.log(`Publishing ${appId}...`);
|
|
55
61
|
const blob = new Blob([new Uint8Array(zipBuffer)], { type: 'application/zip' });
|
|
@@ -67,9 +73,13 @@ export function registerApp(program) {
|
|
|
67
73
|
app
|
|
68
74
|
.command('list')
|
|
69
75
|
.description('List published apps')
|
|
70
|
-
.
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
.addHelpText('after', `
|
|
77
|
+
Examples:
|
|
78
|
+
# List published apps
|
|
79
|
+
$ rool app list`)
|
|
80
|
+
.action(async (_opts, command) => {
|
|
81
|
+
const { env } = command.optsWithGlobals();
|
|
82
|
+
const client = await getClient(env);
|
|
73
83
|
try {
|
|
74
84
|
const apps = await client.listApps();
|
|
75
85
|
if (apps.length === 0) {
|
|
@@ -97,9 +107,13 @@ export function registerApp(program) {
|
|
|
97
107
|
.command('unpublish')
|
|
98
108
|
.description('Unpublish an app')
|
|
99
109
|
.argument('<app-id>', 'app to unpublish')
|
|
100
|
-
.
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
.addHelpText('after', `
|
|
111
|
+
Examples:
|
|
112
|
+
# Unpublish an app
|
|
113
|
+
$ rool app unpublish my-app`)
|
|
114
|
+
.action(async (appId, _opts, command) => {
|
|
115
|
+
const { env } = command.optsWithGlobals();
|
|
116
|
+
const client = await getClient(env);
|
|
103
117
|
try {
|
|
104
118
|
const a = await client.getAppInfo(appId);
|
|
105
119
|
if (!a) {
|
|
@@ -117,9 +131,16 @@ export function registerApp(program) {
|
|
|
117
131
|
.command('slug')
|
|
118
132
|
.description('Show or set your user slug')
|
|
119
133
|
.argument('[new-slug]', 'new slug to set')
|
|
120
|
-
.
|
|
121
|
-
|
|
122
|
-
|
|
134
|
+
.addHelpText('after', `
|
|
135
|
+
Examples:
|
|
136
|
+
# Show your user slug
|
|
137
|
+
$ rool app slug
|
|
138
|
+
|
|
139
|
+
# Set your user slug
|
|
140
|
+
$ rool app slug my-slug`)
|
|
141
|
+
.action(async (newSlug, _opts, command) => {
|
|
142
|
+
const { env } = command.optsWithGlobals();
|
|
143
|
+
const client = await getClient(env);
|
|
123
144
|
try {
|
|
124
145
|
const user = await client.getCurrentUser();
|
|
125
146
|
if (newSlug) {
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,KAAK,UAAU,YAAY,CAAC,OAAe;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5B,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE1C,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;SAC7C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;SAC1C,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,CAAC;SACpE,MAAM,CAAC,UAAU,EAAE,sDAAsD,CAAC;SAC1E,WAAW,CAAC,OAAO,EAAE;;;;;;+CAMqB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAe,EAAE,IAAqC,EAAE,OAAgB,EAAE,EAAE;QACxG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,EAA0B,CAAC;QAClE,4BAA4B;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,aAAa,YAAY,KAAK,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAEzG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qBAAqB,CAAC;SAClC,WAAW,CAAC,OAAO,EAAE;;;kBAGR,CAAC;SACd,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,EAA0B,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;SACxC,WAAW,CAAC,OAAO,EAAE;;;8BAGI,CAAC;SAC1B,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,EAA0B,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACzC,WAAW,CAAC,OAAO,EAAE;;;;;;0BAMA,CAAC;SACtB,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;QAC7E,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,EAA0B,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;YAE3C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8CnD"}
|
package/dist/chat.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as readline from 'node:readline';
|
|
2
2
|
import { getClient } from './client.js';
|
|
3
3
|
import { formatMarkdown } from './format.js';
|
|
4
|
-
import {
|
|
4
|
+
import { DEFAULT_SPACE_NAME, DEFAULT_CONVERSATION_ID } from './constants.js';
|
|
5
5
|
export function registerChat(program) {
|
|
6
6
|
program
|
|
7
7
|
.command('chat')
|
|
@@ -9,10 +9,20 @@ export function registerChat(program) {
|
|
|
9
9
|
.argument('[prompt...]', 'prompt to send')
|
|
10
10
|
.option('-s, --space <name>', 'space name', DEFAULT_SPACE_NAME)
|
|
11
11
|
.option('-c, --conversation <id>', 'conversation ID', DEFAULT_CONVERSATION_ID)
|
|
12
|
-
.
|
|
13
|
-
|
|
12
|
+
.addHelpText('after', `
|
|
13
|
+
Examples:
|
|
14
|
+
# Chat with the default space
|
|
15
|
+
$ rool chat "What is the capital of France?"
|
|
16
|
+
|
|
17
|
+
# Interactive chat mode
|
|
18
|
+
$ rool chat
|
|
19
|
+
|
|
20
|
+
# Use a specific space
|
|
21
|
+
$ rool chat -s "My Project" "Summarize the current state"`)
|
|
22
|
+
.action(async (promptWords, opts, command) => {
|
|
23
|
+
const { env } = command.optsWithGlobals();
|
|
14
24
|
const prompt = promptWords.join(' ');
|
|
15
|
-
const client = await getClient(
|
|
25
|
+
const client = await getClient(env);
|
|
16
26
|
// Find or create space by name
|
|
17
27
|
const spaces = await client.listSpaces();
|
|
18
28
|
const spaceInfo = spaces.find(s => s.name === opts.space);
|
package/dist/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAoB,MAAM,gBAAgB,CAAC;AAE/F,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8CAA8C,CAAC;SAC3D,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,oBAAoB,EAAE,YAAY,EAAE,kBAAkB,CAAC;SAC9D,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,uBAAuB,CAAC;SAC7E,WAAW,CAAC,OAAO,EAAE;;;;;;;;;4DASkC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,WAAqB,EAAE,IAA6C,EAAE,OAAgB,EAAE,EAAE;QACvG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,EAA0B,CAAC;QAClE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAEpC,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,KAAgB,CAAC;QACrB,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,gBAAgB;YAChB,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAAgB,EAAE,MAAc;IACxD,gCAAgC;IAChC,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QAE9C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,eAAe,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,KAAK,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,eAAe,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,EAAE,CAAC;QAClB,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAgB,EAAE,MAAkB;IACjE,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACzC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RoolClient } from '@rool-dev/sdk';
|
|
2
|
-
|
|
2
|
+
import { type Environment } from './constants.js';
|
|
3
|
+
export declare function getClient(env: Environment, options?: {
|
|
3
4
|
autoLogin?: boolean;
|
|
4
5
|
}): Promise<RoolClient>;
|
|
5
6
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAI9D,wBAAsB,SAAS,CAC7B,GAAG,EAAE,WAAW,EAChB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,UAAU,CAAC,CAcrB"}
|
package/dist/client.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { RoolClient } from '@rool-dev/sdk';
|
|
2
2
|
import { NodeAuthProvider } from '@rool-dev/sdk/node';
|
|
3
|
+
import { getApiUrls } from './constants.js';
|
|
3
4
|
const APP_NAME = 'Rool CLI';
|
|
4
|
-
export async function getClient(
|
|
5
|
+
export async function getClient(env, options) {
|
|
5
6
|
const authProvider = new NodeAuthProvider();
|
|
6
|
-
const
|
|
7
|
+
const urls = getApiUrls(env);
|
|
8
|
+
const client = new RoolClient({ baseUrl: urls.baseUrl, authUrl: urls.authUrl, authProvider });
|
|
7
9
|
if (!await client.isAuthenticated()) {
|
|
8
10
|
if (options?.autoLogin === false) {
|
|
9
11
|
return client;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAoB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAgB,EAChB,OAAiC;IAEjC,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9F,IAAI,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QACpC,IAAI,OAAO,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export declare const VERSION: string;
|
|
2
|
-
export declare const DEFAULT_API_URL = "https://api.rool.dev";
|
|
3
2
|
export declare const DEFAULT_SPACE_NAME = "Rool CLI";
|
|
4
3
|
export declare const DEFAULT_CONVERSATION_ID = "rool-dev";
|
|
4
|
+
export type Environment = 'local' | 'dev' | 'prod';
|
|
5
|
+
export declare const DEFAULT_ENV: Environment;
|
|
6
|
+
export declare function getApiUrls(env: Environment): {
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
authUrl: string;
|
|
9
|
+
};
|
|
5
10
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,QAAc,CAAC;AACnC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,QAAc,CAAC;AACnC,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAC7C,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AACnD,eAAO,MAAM,WAAW,EAAE,WAAoB,CAAC;AAQ/C,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGjF"}
|
package/dist/constants.js
CHANGED
|
@@ -2,7 +2,16 @@ import { createRequire } from 'node:module';
|
|
|
2
2
|
const require = createRequire(import.meta.url);
|
|
3
3
|
const pkg = require('../package.json');
|
|
4
4
|
export const VERSION = pkg.version;
|
|
5
|
-
export const DEFAULT_API_URL = 'https://api.rool.dev';
|
|
6
5
|
export const DEFAULT_SPACE_NAME = 'Rool CLI';
|
|
7
6
|
export const DEFAULT_CONVERSATION_ID = 'rool-dev';
|
|
7
|
+
export const DEFAULT_ENV = 'prod';
|
|
8
|
+
const ENV_URLS = {
|
|
9
|
+
local: { target: 'http://localhost:1357', auth: 'https://api.dev.rool.dev/auth' },
|
|
10
|
+
dev: { target: 'https://api.dev.rool.dev', auth: 'https://api.dev.rool.dev/auth' },
|
|
11
|
+
prod: { target: 'https://api.rool.dev', auth: 'https://api.rool.dev/auth' },
|
|
12
|
+
};
|
|
13
|
+
export function getApiUrls(env) {
|
|
14
|
+
const urls = ENV_URLS[env];
|
|
15
|
+
return { baseUrl: urls.target, authUrl: urls.auth };
|
|
16
|
+
}
|
|
8
17
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAC7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAGlD,MAAM,CAAC,MAAM,WAAW,GAAgB,MAAM,CAAC;AAE/C,MAAM,QAAQ,GAA0D;IACtE,KAAK,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,IAAI,EAAE,+BAA+B,EAAE;IACjF,GAAG,EAAE,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,+BAA+B,EAAE;IAClF,IAAI,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,2BAA2B,EAAE;CAC5E,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,GAAgB;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC"}
|
package/dist/create.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6ErD"}
|
package/dist/create.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
function getTemplatesDir() {
|
|
6
|
+
// In development: packages/cli/src -> packages/cli/templates
|
|
7
|
+
// In production: packages/cli/dist -> packages/cli/templates
|
|
8
|
+
return path.resolve(__dirname, '..', 'templates');
|
|
9
|
+
}
|
|
10
|
+
const SKIP_DIRS = new Set(['node_modules', '.git', 'dist']);
|
|
11
|
+
function copyDir(src, dest, replacements) {
|
|
12
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
13
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
14
|
+
const srcPath = path.join(src, entry.name);
|
|
15
|
+
const destPath = path.join(dest, entry.name);
|
|
16
|
+
if (entry.isDirectory()) {
|
|
17
|
+
if (!SKIP_DIRS.has(entry.name)) {
|
|
18
|
+
copyDir(srcPath, destPath, replacements);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
let content = fs.readFileSync(srcPath, 'utf-8');
|
|
23
|
+
for (const [from, to] of replacements) {
|
|
24
|
+
content = content.replaceAll(from, to);
|
|
25
|
+
}
|
|
26
|
+
fs.writeFileSync(destPath, content);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function toValidPackageName(name) {
|
|
31
|
+
return name
|
|
32
|
+
.toLowerCase()
|
|
33
|
+
.replace(/\s+/g, '-')
|
|
34
|
+
.replace(/[^a-z0-9-_]/g, '');
|
|
35
|
+
}
|
|
36
|
+
function toTitleCase(name) {
|
|
37
|
+
return name
|
|
38
|
+
.split(/[-_\s]+/)
|
|
39
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
40
|
+
.join(' ');
|
|
41
|
+
}
|
|
42
|
+
export function registerCreate(program) {
|
|
43
|
+
program
|
|
44
|
+
.command('create')
|
|
45
|
+
.description('Create a new Rool app')
|
|
46
|
+
.argument('<name>', 'project name')
|
|
47
|
+
.option('--svelte', 'use Svelte template')
|
|
48
|
+
.option('--vanilla', 'use vanilla TypeScript template')
|
|
49
|
+
.addHelpText('after', `
|
|
50
|
+
Examples:
|
|
51
|
+
# Create a Svelte app
|
|
52
|
+
$ rool create --svelte my-app
|
|
53
|
+
|
|
54
|
+
# Create a vanilla TypeScript app
|
|
55
|
+
$ rool create --vanilla my-app
|
|
56
|
+
|
|
57
|
+
# Using npx
|
|
58
|
+
$ npx @rool-dev/cli create --svelte my-app`)
|
|
59
|
+
.action(async (name, opts) => {
|
|
60
|
+
// Determine framework
|
|
61
|
+
let framework;
|
|
62
|
+
if (opts.svelte && opts.vanilla) {
|
|
63
|
+
console.error('Error: Cannot use both --svelte and --vanilla');
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
else if (opts.svelte) {
|
|
67
|
+
framework = 'svelte';
|
|
68
|
+
}
|
|
69
|
+
else if (opts.vanilla) {
|
|
70
|
+
framework = 'vanilla';
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.error('Error: Please specify a framework: --svelte or --vanilla');
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
// Check if directory exists
|
|
77
|
+
const targetDir = path.resolve(process.cwd(), name);
|
|
78
|
+
if (fs.existsSync(targetDir)) {
|
|
79
|
+
console.error(`Error: Directory "${name}" already exists`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
// Find template
|
|
83
|
+
const templatesDir = getTemplatesDir();
|
|
84
|
+
const templateDir = path.join(templatesDir, framework);
|
|
85
|
+
if (!fs.existsSync(templateDir)) {
|
|
86
|
+
console.error(`Error: Template "${framework}" not found at ${templateDir}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
// Copy template with replacements
|
|
90
|
+
const packageName = toValidPackageName(name);
|
|
91
|
+
const title = toTitleCase(name);
|
|
92
|
+
console.log(`Creating ${framework} app in ${name}/...\n`);
|
|
93
|
+
copyDir(templateDir, targetDir, [
|
|
94
|
+
['rool-app', packageName],
|
|
95
|
+
['Rool App', title],
|
|
96
|
+
['"@rool-dev/sdk": "workspace:*"', '"@rool-dev/sdk": "^0.1.16"'],
|
|
97
|
+
['"@rool-dev/svelte": "workspace:*"', '"@rool-dev/svelte": "^0.1.12"'],
|
|
98
|
+
]);
|
|
99
|
+
// Print next steps
|
|
100
|
+
console.log(`Done! Next steps:\n`);
|
|
101
|
+
console.log(` cd ${name}`);
|
|
102
|
+
console.log(` pnpm install`);
|
|
103
|
+
console.log(` pnpm dev\n`);
|
|
104
|
+
console.log(`Key patterns:`);
|
|
105
|
+
if (framework === 'svelte') {
|
|
106
|
+
console.log(` • createRool() initializes the reactive client`);
|
|
107
|
+
console.log(` • rool.openSpace() connects to a space`);
|
|
108
|
+
console.log(` • space.collection() creates reactive queries`);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(` • new RoolClient() initializes the client`);
|
|
112
|
+
console.log(` • client.openSpace() connects to a space`);
|
|
113
|
+
console.log(` • space.on() subscribes to real-time events`);
|
|
114
|
+
}
|
|
115
|
+
console.log(` • space.prompt() invokes the AI agent\n`);
|
|
116
|
+
console.log(`Docs: https://docs.rool.dev`);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/dist/logout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../src/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../src/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsBrD"}
|
package/dist/logout.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { getClient } from './client.js';
|
|
2
|
-
import { DEFAULT_API_URL } from './constants.js';
|
|
3
2
|
export function registerLogout(program) {
|
|
4
3
|
program
|
|
5
4
|
.command('logout')
|
|
6
5
|
.description('Log out')
|
|
7
|
-
.
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
.addHelpText('after', `
|
|
7
|
+
Examples:
|
|
8
|
+
# Log out
|
|
9
|
+
$ rool logout`)
|
|
10
|
+
.action(async (_opts, command) => {
|
|
11
|
+
const { env } = command.optsWithGlobals();
|
|
12
|
+
const client = await getClient(env, { autoLogin: false });
|
|
10
13
|
try {
|
|
11
14
|
if (!await client.isAuthenticated()) {
|
|
12
15
|
console.log('Not logged in.');
|
package/dist/logout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../src/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../src/logout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,SAAS,CAAC;SACtB,WAAW,CAAC,OAAO,EAAE;;;gBAGV,CAAC;SACZ,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAgB,EAAE,EAAE;QAChD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,EAA0B,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/media.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6EpD"}
|
package/dist/media.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as fs from 'node:fs';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { getClient } from './client.js';
|
|
5
5
|
import { formatBytes } from './format.js';
|
|
6
|
-
import {
|
|
6
|
+
import { DEFAULT_SPACE_NAME } from './constants.js';
|
|
7
7
|
function getContentType(filePath) {
|
|
8
8
|
try {
|
|
9
9
|
return execSync(`file --mime-type -b "${filePath}"`, { encoding: 'utf-8' }).trim();
|
|
@@ -22,8 +22,18 @@ export function registerMedia(program) {
|
|
|
22
22
|
.argument('<file>', 'file to upload')
|
|
23
23
|
.option('-m, --message <text>', 'optional comment/description')
|
|
24
24
|
.option('-s, --space <name>', 'space name', DEFAULT_SPACE_NAME)
|
|
25
|
-
.
|
|
26
|
-
|
|
25
|
+
.addHelpText('after', `
|
|
26
|
+
Examples:
|
|
27
|
+
# Upload a file
|
|
28
|
+
$ rool media upload photo.jpg
|
|
29
|
+
|
|
30
|
+
# Upload with a comment
|
|
31
|
+
$ rool media upload report.pdf -m "Q4 sales report"
|
|
32
|
+
|
|
33
|
+
# Upload to a specific space
|
|
34
|
+
$ rool media upload logo.png -s "My Project"`)
|
|
35
|
+
.action(async (filePath, opts, command) => {
|
|
36
|
+
const { env } = command.optsWithGlobals();
|
|
27
37
|
if (!fs.existsSync(filePath)) {
|
|
28
38
|
console.error(`File not found: ${filePath}`);
|
|
29
39
|
process.exit(1);
|
|
@@ -36,7 +46,7 @@ export function registerMedia(program) {
|
|
|
36
46
|
const filename = path.basename(filePath);
|
|
37
47
|
const contentType = getContentType(filePath);
|
|
38
48
|
const size = stats.size;
|
|
39
|
-
const client = await getClient(
|
|
49
|
+
const client = await getClient(env);
|
|
40
50
|
// Find or create space by name
|
|
41
51
|
const spaces = await client.listSpaces();
|
|
42
52
|
const spaceInfo = spaces.find(s => s.name === opts.space);
|
package/dist/media.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,aAAa,IAAI,OAAO,CAkBvC"}
|
package/dist/program.js
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import { VERSION } from './constants.js';
|
|
2
|
+
import { VERSION, DEFAULT_ENV } from './constants.js';
|
|
3
3
|
import { registerChat } from './chat.js';
|
|
4
|
+
import { registerCreate } from './create.js';
|
|
4
5
|
import { registerMedia } from './media.js';
|
|
5
6
|
import { registerSpace } from './space.js';
|
|
6
7
|
import { registerApp } from './app.js';
|
|
7
8
|
import { registerUser } from './user.js';
|
|
8
9
|
import { registerLogout } from './logout.js';
|
|
10
|
+
function validateEnv(value) {
|
|
11
|
+
if (value !== 'local' && value !== 'dev' && value !== 'prod') {
|
|
12
|
+
throw new Error(`Invalid environment: ${value}. Must be local, dev, or prod.`);
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
9
16
|
export function createProgram() {
|
|
10
17
|
const program = new Command();
|
|
11
18
|
program
|
|
12
19
|
.name('rool')
|
|
13
20
|
.version(VERSION)
|
|
14
|
-
.description('Command-line interface for the Rool platform')
|
|
21
|
+
.description('Command-line interface for the Rool platform')
|
|
22
|
+
.option('-e, --env <environment>', 'target environment (local, dev, prod)', validateEnv, DEFAULT_ENV);
|
|
15
23
|
registerChat(program);
|
|
24
|
+
registerCreate(program);
|
|
16
25
|
registerMedia(program);
|
|
17
26
|
registerSpace(program);
|
|
18
27
|
registerApp(program);
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,gCAAgC,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAExG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IAExB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/space.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyFpD"}
|