@octonodes/cli 0.2.13 → 0.2.26
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 +277 -34
- package/dist/apps/build.d.ts +38 -0
- package/dist/apps/build.d.ts.map +1 -1
- package/dist/apps/build.js +13 -5
- package/dist/apps/build.js.map +1 -1
- package/dist/apps/constants.d.ts +2 -1
- package/dist/apps/constants.d.ts.map +1 -1
- package/dist/apps/constants.js +7 -3
- package/dist/apps/constants.js.map +1 -1
- package/dist/apps/create.d.ts.map +1 -1
- package/dist/apps/create.js +84 -35
- package/dist/apps/create.js.map +1 -1
- package/dist/apps/dev.js +3 -3
- package/dist/apps/dev.js.map +1 -1
- package/dist/apps/development.d.ts.map +1 -1
- package/dist/apps/development.js +7 -5
- package/dist/apps/development.js.map +1 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +5 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/preview.d.mts.map +1 -1
- package/dist/apps/preview.mjs +58 -14
- package/dist/apps/preview.mjs.map +1 -1
- package/dist/apps/publish.js +2 -2
- package/dist/apps/publish.js.map +1 -1
- package/dist/apps/server.d.ts.map +1 -1
- package/dist/apps/server.js +18 -3
- package/dist/apps/server.js.map +1 -1
- package/dist/apps/source.d.ts +74 -2
- package/dist/apps/source.d.ts.map +1 -1
- package/dist/apps/source.js +17 -5
- package/dist/apps/source.js.map +1 -1
- package/dist/apps/types.d.ts +9 -3
- package/dist/apps/types.d.ts.map +1 -1
- package/dist/apps/welcome.d.ts +1 -0
- package/dist/apps/welcome.d.ts.map +1 -1
- package/dist/apps/welcome.js +32 -23
- package/dist/apps/welcome.js.map +1 -1
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/plugins/build.d.ts.map +1 -1
- package/dist/plugins/build.js +1 -0
- package/dist/plugins/build.js.map +1 -1
- package/dist/plugins/constants.d.ts +2 -0
- package/dist/plugins/constants.d.ts.map +1 -1
- package/dist/plugins/constants.js +3 -1
- package/dist/plugins/constants.js.map +1 -1
- package/dist/plugins/create.d.ts.map +1 -1
- package/dist/plugins/create.js +8 -5
- package/dist/plugins/create.js.map +1 -1
- package/dist/plugins/publish.d.ts +74 -2
- package/dist/plugins/publish.d.ts.map +1 -1
- package/dist/plugins/release.d.ts +2 -0
- package/dist/plugins/release.d.ts.map +1 -1
- package/package.json +3 -3
- package/runtime/plugin-lifecycle.cjs +1925 -378
package/README.md
CHANGED
|
@@ -3,11 +3,259 @@
|
|
|
3
3
|
Command-line access to the public [Octonode cloud API](https://octonodes.com/api/docs). The CLI
|
|
4
4
|
wraps `@octonodes/sdk`, so every generated SDK operation is available without writing TypeScript.
|
|
5
5
|
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
The npm package is `@octonodes/cli`; the installed command is `octonodes`.
|
|
9
|
+
It creates apps and plugins and calls the Octonode API. The separate `octonode`
|
|
10
|
+
workflow engine uses a different executable.
|
|
11
|
+
|
|
12
|
+
**Available now:** npm, npx, pnpm, Yarn and Bun use the published npm package.
|
|
13
|
+
**Pending publication:** Homebrew, WinGet, Scoop, Chocolatey, DEB/APT, RPM/DNF,
|
|
14
|
+
Arch/AUR, Snap, Docker and direct installers have prepared distribution recipes.
|
|
15
|
+
Their commands below become usable when the corresponding channel is published.
|
|
16
|
+
An npm release does not automatically make those channels available.
|
|
17
|
+
|
|
18
|
+
### Prerequisites
|
|
19
|
+
|
|
20
|
+
For npm-based installation, install [Node.js 24](https://nodejs.org/en/download)
|
|
21
|
+
and your chosen package manager. Check the runtime before installing:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
node --version
|
|
25
|
+
npm --version
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Node should report `v24.x.x`. Homebrew will install `node@24` as a dependency;
|
|
29
|
+
the planned portable, MSI, DEB, RPM, Scoop, Chocolatey, Arch and Snap packages
|
|
30
|
+
include their own Node 24 runtime. App and plugin projects still need a separate
|
|
31
|
+
Node 24 development toolchain and a package manager to install project dependencies.
|
|
32
|
+
|
|
33
|
+
### npm, pnpm, Yarn and Bun
|
|
34
|
+
|
|
35
|
+
Choose one global installation method:
|
|
36
|
+
|
|
37
|
+
| Package manager | Install globally | Run once without a global install |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| npm | `npm install --global @octonodes/cli` | `npx --yes @octonodes/cli@latest --help` |
|
|
40
|
+
| pnpm | `pnpm add --global @octonodes/cli` | `pnpm dlx @octonodes/cli --help` |
|
|
41
|
+
| Yarn Classic (1.x) | `yarn global add @octonodes/cli` | Use npm's `npx` command above |
|
|
42
|
+
| Yarn 2+ / 4 | Use npm or pnpm for global installation | `yarn dlx @octonodes/cli --help` |
|
|
43
|
+
| Bun | `bun add --global @octonodes/cli` | `bunx @octonodes/cli --help` |
|
|
44
|
+
|
|
45
|
+
One-off commands do not add `octonodes` permanently to your PATH. To run another
|
|
46
|
+
command once, replace `--help`, for example `npx --yes @octonodes/cli@latest login`.
|
|
47
|
+
To pin a release, replace `@latest` with an exact published version, such as
|
|
48
|
+
`npx --yes @octonodes/cli@0.2.16 --help`.
|
|
49
|
+
|
|
50
|
+
If pnpm reports no global bin directory, run [pnpm setup](https://pnpm.io/cli/setup)
|
|
51
|
+
and open a new terminal. For [Yarn Classic](https://classic.yarnpkg.com/en/docs/cli/global),
|
|
52
|
+
ensure the directory from `yarn global bin` is on PATH. Bun's global binaries
|
|
53
|
+
normally live in `~/.bun/bin`; see [Bun installation](https://bun.com/docs/installation).
|
|
54
|
+
Keep Node 24 on PATH even when using Bun as the package manager.
|
|
55
|
+
|
|
56
|
+
### Homebrew — macOS and Linux
|
|
57
|
+
|
|
58
|
+
**Pending tap publication.** Install [Homebrew](https://brew.sh/) first.
|
|
59
|
+
The planned tap is `nivdoron1/homebrew-tap`:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
brew install nivdoron1/tap/octonodes
|
|
63
|
+
octonodes --version
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The equivalent two-step setup is `brew tap nivdoron1/tap`, then
|
|
67
|
+
`brew install octonodes`. The formula selects its Node 24 dependency automatically.
|
|
68
|
+
|
|
69
|
+
### Windows — WinGet, Scoop, Chocolatey or MSI
|
|
70
|
+
|
|
71
|
+
**Pending channel publication; Windows x64.** Install your chosen package manager
|
|
72
|
+
first: [WinGet](https://learn.microsoft.com/en-us/windows/package-manager/winget/),
|
|
73
|
+
[Scoop](https://scoop.sh/) or [Chocolatey](https://chocolatey.org/install).
|
|
74
|
+
|
|
75
|
+
```powershell
|
|
76
|
+
# WinGet, after the manifest is published to its community source
|
|
77
|
+
winget install --id Octonode.CLI --exact --source winget
|
|
78
|
+
|
|
79
|
+
# Chocolatey, in an administrator terminal after community publication
|
|
80
|
+
choco install octonodes --yes
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For Scoop, add the published bucket before installing. The bucket URL has not
|
|
84
|
+
been assigned yet; replace `PUBLISHED_BUCKET_URL` with the announced Git URL:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
scoop bucket add octonode PUBLISHED_BUCKET_URL
|
|
88
|
+
scoop install octonode/octonodes
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Alternatively, download `octonodes-X.Y.Z-win32-x64.msi` and `SHA256SUMS` from the
|
|
92
|
+
published release. Compare `Get-FileHash .\octonodes-X.Y.Z-win32-x64.msi -Algorithm SHA256`
|
|
93
|
+
with the matching checksum, then run the MSI. It installs for all users, requires
|
|
94
|
+
administrator permission and registers the command on the system PATH.
|
|
95
|
+
Open a new terminal after any Windows installation.
|
|
96
|
+
|
|
97
|
+
### Linux — DEB/APT, RPM/DNF, Arch/AUR and Snap
|
|
98
|
+
|
|
99
|
+
**Pending package or repository publication.** DEB/RPM/Arch/Snap target Linux x64
|
|
100
|
+
and arm64. Portable Linux packages need glibc 2.28+ and libstdc++; Alpine/musl
|
|
101
|
+
is outside the prepared portable build matrix.
|
|
102
|
+
|
|
103
|
+
Download a matching package and `SHA256SUMS` from the published release and
|
|
104
|
+
verify it with `sha256sum --check --ignore-missing SHA256SUMS` before installing:
|
|
105
|
+
|
|
106
|
+
```sh
|
|
107
|
+
# Debian / Ubuntu: use amd64 for x64, or arm64 for ARM64
|
|
108
|
+
sudo apt install ./octonodes_X.Y.Z_amd64.deb
|
|
109
|
+
|
|
110
|
+
# Fedora / RHEL: use x86_64 for x64, or aarch64 for ARM64
|
|
111
|
+
sudo dnf install ./octonodes-X.Y.Z-1.x86_64.rpm
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
After configuring the publisher's signed APT or DNF repository, installation
|
|
115
|
+
and updates use the package manager directly:
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
# Debian / Ubuntu, after adding the published APT URL and signing key
|
|
119
|
+
sudo apt update
|
|
120
|
+
sudo apt install octonodes
|
|
121
|
+
|
|
122
|
+
# Fedora / RHEL, after adding the published DNF URL and signing key
|
|
123
|
+
sudo dnf install octonodes
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Repository URLs and signing-key fingerprints will be announced when those
|
|
127
|
+
repositories are published. Do not disable signature verification.
|
|
128
|
+
|
|
129
|
+
For Arch, review the published AUR recipe before building. With Git and
|
|
130
|
+
`base-devel` installed:
|
|
131
|
+
|
|
132
|
+
```sh
|
|
133
|
+
git clone https://aur.archlinux.org/octonodes-bin.git
|
|
134
|
+
cd octonodes-bin
|
|
135
|
+
less PKGBUILD
|
|
136
|
+
makepkg -si
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If you already use an AUR helper, `yay -S octonodes-bin` is an alternative.
|
|
140
|
+
For Snap, install [snapd](https://snapcraft.io/docs/installing-snapd) first;
|
|
141
|
+
the listing also requires publisher approval for classic confinement:
|
|
142
|
+
|
|
143
|
+
```sh
|
|
144
|
+
sudo snap install octonodes --classic
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Direct installation — macOS, Linux and Windows
|
|
148
|
+
|
|
149
|
+
**Pending release-asset hosting.** Choose an installer release from
|
|
150
|
+
[GitHub Releases](https://github.com/nivdoron1/octonode-devtools/releases).
|
|
151
|
+
Replace `X.Y.Z` with its exact published installer version; the commands assume
|
|
152
|
+
the planned GitHub release asset location.
|
|
153
|
+
|
|
154
|
+
On macOS or Linux, download and inspect the installer before running it:
|
|
155
|
+
|
|
156
|
+
```sh
|
|
157
|
+
CLI_VERSION=X.Y.Z
|
|
158
|
+
RELEASE_URL="https://github.com/nivdoron1/octonode-devtools/releases/download/cli-v${CLI_VERSION}"
|
|
159
|
+
curl --fail --location --proto '=https' "$RELEASE_URL/install.sh" -o install-octonodes.sh
|
|
160
|
+
less install-octonodes.sh
|
|
161
|
+
sh install-octonodes.sh
|
|
162
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
163
|
+
octonodes --version
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Add the PATH line to your shell profile for future terminals. The installer
|
|
167
|
+
detects macOS/Linux x64 or arm64, verifies the archive checksum, and installs
|
|
168
|
+
under `~/.local/share/octonodes`, with a command link in `~/.local/bin`.
|
|
169
|
+
Set `OCTONODES_INSTALL_DIR` and `OCTONODES_BIN_DIR` before running it to choose
|
|
170
|
+
different locations. The macOS portable runtime requires macOS 13.5 or later.
|
|
171
|
+
|
|
172
|
+
On Windows x64, download and inspect the PowerShell installer:
|
|
173
|
+
|
|
174
|
+
```powershell
|
|
175
|
+
$CliVersion = 'X.Y.Z'
|
|
176
|
+
$ReleaseUrl = "https://github.com/nivdoron1/octonode-devtools/releases/download/cli-v$CliVersion"
|
|
177
|
+
Invoke-WebRequest "$ReleaseUrl/install.ps1" -OutFile install-octonodes.ps1
|
|
178
|
+
Get-Content .\install-octonodes.ps1
|
|
179
|
+
& .\install-octonodes.ps1
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Use your organization's PowerShell execution policy for downloaded scripts.
|
|
183
|
+
The installer verifies the ZIP checksum, installs under `%LOCALAPPDATA%\Octonodes`
|
|
184
|
+
and updates your user PATH. Open a new terminal afterwards. Set
|
|
185
|
+
`OCTONODES_INSTALL_DIR` beforehand to choose a different installation directory.
|
|
186
|
+
Installing the same version again refuses to overwrite its directory.
|
|
187
|
+
|
|
188
|
+
### Docker
|
|
189
|
+
|
|
190
|
+
**Pending image publication.** Install [Docker](https://docs.docker.com/get-started/get-docker/)
|
|
191
|
+
and replace `PUBLISHED_IMAGE:VERSION` with the announced image and immutable tag:
|
|
192
|
+
|
|
193
|
+
```sh
|
|
194
|
+
docker run --rm PUBLISHED_IMAGE:VERSION --help
|
|
195
|
+
docker run --rm PUBLISHED_IMAGE:VERSION --version
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
The image uses `octonodes` as its entrypoint and includes Node 24. Pass CLI
|
|
199
|
+
arguments after the image name. Bind-mount your project to a working directory
|
|
200
|
+
for file-based commands; interactive login state is not retained by `--rm`.
|
|
201
|
+
|
|
202
|
+
### Verify and sign in
|
|
203
|
+
|
|
204
|
+
After a global, native or direct installation:
|
|
205
|
+
|
|
206
|
+
```sh
|
|
207
|
+
octonodes --version
|
|
208
|
+
octonodes --help
|
|
209
|
+
octonodes login
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Login opens browser authentication. For a terminal-only session, use
|
|
213
|
+
`octonodes login --email you@example.com`. If the command is not found, open a
|
|
214
|
+
new terminal and check your package manager's global bin directory or the direct
|
|
215
|
+
installer PATH. Use `command -v octonodes` on macOS/Linux or
|
|
216
|
+
`Get-Command octonodes` in PowerShell to see which installation is selected.
|
|
217
|
+
|
|
218
|
+
### Update or uninstall
|
|
219
|
+
|
|
220
|
+
Use the same channel that installed the CLI:
|
|
221
|
+
|
|
222
|
+
| Channel | Update | Uninstall |
|
|
223
|
+
| --- | --- | --- |
|
|
224
|
+
| npm | `npm install --global @octonodes/cli@latest` | `npm uninstall --global @octonodes/cli` |
|
|
225
|
+
| pnpm | `pnpm add --global @octonodes/cli@latest` | `pnpm remove --global @octonodes/cli` |
|
|
226
|
+
| Yarn Classic | `yarn global add @octonodes/cli@latest` | `yarn global remove @octonodes/cli` |
|
|
227
|
+
| Bun | `bun add --global @octonodes/cli@latest` | `bun remove --global @octonodes/cli` |
|
|
228
|
+
| Homebrew | `brew update` then `brew upgrade octonodes` | `brew uninstall octonodes` |
|
|
229
|
+
| WinGet | `winget upgrade --id Octonode.CLI --exact` | `winget uninstall --id Octonode.CLI --exact` |
|
|
230
|
+
| Scoop | `scoop update octonodes` | `scoop uninstall octonodes` |
|
|
231
|
+
| Chocolatey | `choco upgrade octonodes --yes` | `choco uninstall octonodes --yes` |
|
|
232
|
+
| APT repository | `sudo apt update` then `sudo apt install --only-upgrade octonodes` | `sudo apt remove octonodes` |
|
|
233
|
+
| DNF repository | `sudo dnf upgrade octonodes` | `sudo dnf remove octonodes` |
|
|
234
|
+
| Arch / AUR helper | `yay -S octonodes-bin` | `sudo pacman -R octonodes-bin` |
|
|
235
|
+
| Snap | `sudo snap refresh octonodes` | `sudo snap remove octonodes` |
|
|
236
|
+
|
|
237
|
+
For a downloaded DEB/RPM/MSI, download and verify the newer package and install
|
|
238
|
+
it with the same tool. Remove an MSI through Windows Installed apps. For direct
|
|
239
|
+
installations, run the newer version's installer; to uninstall, remove its managed
|
|
240
|
+
command link or PATH entry and its version directory. For Docker, pull the newer
|
|
241
|
+
tag and recreate the container, or remove the image with `docker image rm`.
|
|
242
|
+
Login data under `~/.octonode` is separate from installed binaries; use
|
|
243
|
+
`octonodes logout` before uninstalling to remove the saved login and revoke a
|
|
244
|
+
saved Studio session. Static API tokens must be revoked separately in Studio.
|
|
245
|
+
|
|
246
|
+
See the [full installation guide](https://playbook.octonodes.com/docs/installation)
|
|
247
|
+
for signed APT/DNF repository setup.
|
|
248
|
+
|
|
6
249
|
## Create an app
|
|
7
250
|
|
|
8
251
|
Use Node 24 and a CLI release containing `octonodes app`. The default scaffold
|
|
9
|
-
is a full Vite app with
|
|
10
|
-
Use `--template extension` for
|
|
252
|
+
is a full Vite app with one hosted page and a backend. Contributions are optional.
|
|
253
|
+
Use `--template extension` for a navbar launcher and panel inside Octonode.
|
|
254
|
+
Run `octonodes app targets` to list supported view/action/launcher targets; add a
|
|
255
|
+
contextual entry with `octonodes app extension add explain-node --target node.action`.
|
|
256
|
+
The extension starter uses `octonode.app/v2` and builds an app manifest v3 release.
|
|
257
|
+
These targets require the branch-built SDK/CLI and a matching host until publication;
|
|
258
|
+
see the [native extension API guide](../ui-extensions/README.md#native-app-contributions-v3).
|
|
11
259
|
|
|
12
260
|
```sh
|
|
13
261
|
octonodes app create workspace-notice
|
|
@@ -17,7 +265,7 @@ npm test
|
|
|
17
265
|
npm run dev
|
|
18
266
|
```
|
|
19
267
|
|
|
20
|
-
Edit `octonode.app.json` and `src/
|
|
268
|
+
Edit `octonode.app.json`, `src/web/App.tsx`, and `src/server.ts`. `npm test`
|
|
21
269
|
checks types and verifies build hashes. `npm run dev` watches changes and starts
|
|
22
270
|
a verified public HTTPS Quick Tunnel automatically. Branded Octonode preview URLs
|
|
23
271
|
are planned for a later rollout.
|
|
@@ -27,15 +275,18 @@ in Studio with `octonodes login` followed by
|
|
|
27
275
|
`octonodes app dev --workspace user:<id>`.
|
|
28
276
|
Octonode colors are enabled automatically in interactive terminals.
|
|
29
277
|
Redirected output stays plain for scripts.
|
|
278
|
+
For extension-only projects, edit `octonode.app.json` and `src/extensions/assistant.tsx`.
|
|
279
|
+
Local preview supplies read-only context and starts actions from an explicit Run button;
|
|
280
|
+
commands requiring native resources need Studio preview or an installed app.
|
|
30
281
|
|
|
31
282
|
```sh
|
|
32
283
|
octonodes app extension add overview --target app.page
|
|
33
284
|
octonodes app publish --workspace user:<id>
|
|
34
285
|
```
|
|
35
286
|
|
|
36
|
-
The default app
|
|
37
|
-
Install through Studio → Apps; a
|
|
38
|
-
workspace
|
|
287
|
+
The default app opens its hosted page inside Studio. The command above adds an optional app-page contribution.
|
|
288
|
+
Install through Studio → Apps; the extension starter adds a navbar button that opens
|
|
289
|
+
its panel. A declared workspace block appears on workspace home; page-capable apps open from Apps. An administrator can
|
|
39
290
|
configure or disable an installation. The first publication returns the app ID
|
|
40
291
|
and revision. Increment the source version and publish an update with
|
|
41
292
|
`--app-id <id> --revision <current-revision>`; existing installs remain pinned
|
|
@@ -59,11 +310,17 @@ octonodes app create my-plain-app --platform plain
|
|
|
59
310
|
```
|
|
60
311
|
|
|
61
312
|
Vite and Next.js create a full app with a real framework page in `src/web/App.tsx`,
|
|
62
|
-
|
|
313
|
+
verified workspace content, a Projects route registered in Studio, and the verified `/api/context` and `/api/projects` backend routes. The CLI
|
|
63
314
|
builds Vite or a Next.js static export into the same verified web artifact and
|
|
64
315
|
serves it through the development tunnel. Next.js server features are outside
|
|
65
316
|
this static export; add backend routes in `src/server.ts`.
|
|
66
|
-
Plain uses `src/welcome.html` and the same backend without Vite or Next.js.
|
|
317
|
+
Plain uses `src/welcome.html`, `src/hosted.ts`, and the same backend without Vite or Next.js.
|
|
318
|
+
|
|
319
|
+
Generated workspaces include `installConfig.hoistingLimits: workspaces` for Yarn 4.
|
|
320
|
+
The hosted SDK keeps normal browser history and mirrors embedded routes into Studio’s
|
|
321
|
+
`appPath` query parameter. Development starts with no grants; approve temporary,
|
|
322
|
+
selected-project access in Studio to load project data. See the
|
|
323
|
+
[Apps development guide](https://playbook.octonodes.com/docs/apps/development).
|
|
67
324
|
|
|
68
325
|
## Create and publish plugins
|
|
69
326
|
|
|
@@ -108,21 +365,6 @@ For definitions without a release file, set `scope: ["public"]` in TypeScript an
|
|
|
108
365
|
rebuild first. Artifact publication accepts `--org` and `--team`; the optional
|
|
109
366
|
`OCTONODE_MARKETPLACE_TOKEN` overrides normal CLI authentication.
|
|
110
367
|
|
|
111
|
-
## Run
|
|
112
|
-
|
|
113
|
-
Use it directly with `npx`:
|
|
114
|
-
|
|
115
|
-
```sh
|
|
116
|
-
npx @octonodes/cli --help
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Or install it globally. The installed command is `octonodes`:
|
|
120
|
-
|
|
121
|
-
```sh
|
|
122
|
-
npm install --global @octonodes/cli
|
|
123
|
-
octonodes --version
|
|
124
|
-
```
|
|
125
|
-
|
|
126
368
|
## Sign in
|
|
127
369
|
|
|
128
370
|
The default login opens GitHub authentication in your browser and signs in as the same user as
|
|
@@ -152,7 +394,7 @@ For CI and temporary shell sessions, set `OCTONODE_TOKEN` instead of saving a lo
|
|
|
152
394
|
|
|
153
395
|
```sh
|
|
154
396
|
export OCTONODE_TOKEN=octo_svc_...
|
|
155
|
-
octonodes projects
|
|
397
|
+
octonodes projects api get
|
|
156
398
|
```
|
|
157
399
|
|
|
158
400
|
Authentication is resolved in this order: `OCTONODE_TOKEN`, a saved API token, then a saved Studio
|
|
@@ -176,8 +418,9 @@ octonodes operations projects
|
|
|
176
418
|
octonodes operations workflows
|
|
177
419
|
```
|
|
178
420
|
|
|
179
|
-
Operation
|
|
180
|
-
`GET /api/projects/{projectId}` becomes `projects
|
|
421
|
+
Operation commands follow the SDK property path and HTTP method. For example,
|
|
422
|
+
`GET /api/projects/{projectId}` becomes `projects api projectId get`. Run
|
|
423
|
+
`octonodes projects --help` or `octonodes projects api --help` to browse each level. Use the
|
|
181
424
|
[API reference](https://octonodes.com/api/docs) to find endpoints and their parameters.
|
|
182
425
|
|
|
183
426
|
## Call the API
|
|
@@ -186,22 +429,22 @@ Pass path parameters, query parameters, and request bodies together as JSON thro
|
|
|
186
429
|
|
|
187
430
|
```sh
|
|
188
431
|
# List projects
|
|
189
|
-
octonodes projects
|
|
432
|
+
octonodes projects api get
|
|
190
433
|
|
|
191
434
|
# Read one project
|
|
192
|
-
octonodes projects
|
|
435
|
+
octonodes projects api projectId get \
|
|
193
436
|
--input '{"path":{"projectId":"project_123"}}'
|
|
194
437
|
|
|
195
438
|
# List runs with query parameters
|
|
196
|
-
octonodes runs
|
|
439
|
+
octonodes runs api get \
|
|
197
440
|
--input '{"query":{"workflowId":"daily-report","limit":20}}'
|
|
198
441
|
|
|
199
442
|
# Search project knowledge
|
|
200
|
-
octonodes knowledge
|
|
443
|
+
octonodes knowledge api search post \
|
|
201
444
|
--input '{"query":{"workspace":"acme","project":"support"},"body":{"query":"refund policy","topK":5}}'
|
|
202
445
|
|
|
203
446
|
# Cancel an execution
|
|
204
|
-
octonodes executions
|
|
447
|
+
octonodes executions api runId cancel post \
|
|
205
448
|
--input '{"path":{"runId":"run_123"}}'
|
|
206
449
|
```
|
|
207
450
|
|
|
@@ -209,12 +452,12 @@ Normal responses are printed as formatted JSON. Server-sent event operations pri
|
|
|
209
452
|
per line, which works well with `jq` and shell pipelines:
|
|
210
453
|
|
|
211
454
|
```sh
|
|
212
|
-
octonodes workflows
|
|
455
|
+
octonodes workflows api workflowId run post \
|
|
213
456
|
--input '{"path":{"workflowId":"daily-report"},"body":{"input":{"date":"2026-09-18"}}}' \
|
|
214
457
|
| jq -c .
|
|
215
458
|
```
|
|
216
459
|
|
|
217
|
-
Run `octonodes <
|
|
460
|
+
Run `octonodes <resource> <command> --help` for the accepted flags. The exact input shape for each operation
|
|
218
461
|
is defined by the exported TypeScript types in `@octonodes/sdk`. For workflow behavior and setup,
|
|
219
462
|
see the [Playbook documentation](https://playbook.octonodes.com/docs); for shared examples, browse
|
|
220
463
|
the [Octonode community](https://community.octonodes.com/community).
|
|
@@ -230,7 +473,7 @@ the [Octonode community](https://community.octonodes.com/community).
|
|
|
230
473
|
Use `--base-url <url>` to override the API URL for one login or API command:
|
|
231
474
|
|
|
232
475
|
```sh
|
|
233
|
-
octonodes projects
|
|
476
|
+
octonodes projects api get --base-url http://localhost:4000
|
|
234
477
|
```
|
|
235
478
|
|
|
236
479
|
## Log out
|
package/dist/apps/build.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare function verifyWebBuild(directory: string): {
|
|
|
8
8
|
apiVersion: "1";
|
|
9
9
|
hosting: "self-hosted";
|
|
10
10
|
applicationUrl: string;
|
|
11
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
11
12
|
iconUrl?: string | undefined;
|
|
12
13
|
privacyUrl?: string | undefined;
|
|
13
14
|
supportUrl?: string | undefined;
|
|
@@ -23,6 +24,7 @@ export declare function verifyWebBuild(directory: string): {
|
|
|
23
24
|
} | {
|
|
24
25
|
apiVersion: "2";
|
|
25
26
|
hosting: "extension-only";
|
|
27
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
26
28
|
iconUrl?: string | undefined;
|
|
27
29
|
settings: {
|
|
28
30
|
id: string;
|
|
@@ -38,5 +40,41 @@ export declare function verifyWebBuild(directory: string): {
|
|
|
38
40
|
path: string;
|
|
39
41
|
sha256: string;
|
|
40
42
|
}[];
|
|
43
|
+
} | {
|
|
44
|
+
hosting: "extension-only";
|
|
45
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
46
|
+
iconUrl?: string | undefined;
|
|
47
|
+
settings: {
|
|
48
|
+
id: string;
|
|
49
|
+
label: string;
|
|
50
|
+
defaultValue: string;
|
|
51
|
+
}[];
|
|
52
|
+
privacyUrl?: string | undefined;
|
|
53
|
+
supportUrl?: string | undefined;
|
|
54
|
+
apiVersion: "3";
|
|
55
|
+
requestedActions: ("data:read" | "data:write" | "projects:read" | "workflows:run")[];
|
|
56
|
+
extensions: {
|
|
57
|
+
id: string;
|
|
58
|
+
target: "app.page" | "app.settings.section" | "document.action" | "document.block.action" | "document.panel" | "document.review.action" | "document.selection-action" | "document.slash-command" | "document.tab" | "editor.action" | "editor.panel" | "editor.selection-action" | "execution.action" | "execution.details.block" | "file.action" | "git.diff.action" | "git.diff.panel" | "node.action" | "node.inspector.block" | "node.inspector.tab" | "node.view" | "project.action" | "project.overview.block" | "project.settings.section" | "project.tab" | "shell.dock" | "shell.panel" | "table.action" | "table.view" | "task.action" | "task.card.badge" | "task.details.block" | "task.details.tab" | "task.space.action" | "task.space.view" | "workflow.action" | "workflow.canvas.action" | "workflow.edge.action" | "workflow.inspector.block" | "workflow.selection-action" | "workflow.tab" | "workspace.block";
|
|
59
|
+
title: string;
|
|
60
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
61
|
+
path: string;
|
|
62
|
+
sha256: string;
|
|
63
|
+
when?: {
|
|
64
|
+
hasProject?: boolean | undefined;
|
|
65
|
+
hasSelection?: boolean | undefined;
|
|
66
|
+
readOnly?: boolean | undefined;
|
|
67
|
+
nodeKind?: string | undefined;
|
|
68
|
+
documentFormat?: "html" | "latex" | "markdown" | undefined;
|
|
69
|
+
} | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
launchers: {
|
|
72
|
+
id: string;
|
|
73
|
+
target: "shell.command" | "shell.navbar.action" | "shell.navigation.item";
|
|
74
|
+
title: string;
|
|
75
|
+
icon?: "arrow-up-down" | "binary" | "bomb" | "boxes" | "braces" | "calculator" | "calendar" | "camera" | "clock" | "code" | "copy-x" | "database" | "dices" | "filter" | "flag" | "flask" | "function" | "git-branch" | "git-merge" | "group" | "hook" | "list-filter" | "merge" | "octagon-x" | "package" | "package-x" | "pencil" | "play" | "regex" | "repeat" | "replace" | "ruler" | "scan-eye" | "scissors" | "search" | "server-cog" | "settings" | "sigma" | "split" | "terminal" | "test-tube" | "text-cursor-input" | "ticket" | "truck" | "type" | "typescript" | "ungroup" | "variable" | "wand" | "wave" | "webhook" | "workflow" | "x" | undefined;
|
|
76
|
+
opens: string;
|
|
77
|
+
}[];
|
|
78
|
+
locales: Record<string, Record<string, string>>;
|
|
41
79
|
};
|
|
42
80
|
//# sourceMappingURL=build.d.ts.map
|
package/dist/apps/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAKxD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;GA4K/E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/C"}
|
package/dist/apps/build.js
CHANGED
|
@@ -8,6 +8,7 @@ const node_child_process_1 = require("node:child_process");
|
|
|
8
8
|
const node_util_1 = require("node:util");
|
|
9
9
|
const esbuild_1 = require("esbuild");
|
|
10
10
|
const plugins_1 = require("@octonodes/sdk/plugins");
|
|
11
|
+
const plugins_2 = require("@octonodes/sdk/plugins");
|
|
11
12
|
const app_1 = require("../plugins/app");
|
|
12
13
|
const artifact_1 = require("../plugins/artifact");
|
|
13
14
|
const source_1 = require("./source");
|
|
@@ -31,7 +32,7 @@ async function buildAppProject(directory, applicationUrl) {
|
|
|
31
32
|
const result = await (0, esbuild_1.build)({
|
|
32
33
|
absWorkingDir: root,
|
|
33
34
|
stdin: {
|
|
34
|
-
contents: `import extension from ${JSON.stringify(entry)}; import { startExtension } from "@octonodes/ui-extensions/react"; if (extension.target !== ${JSON.stringify(extension.target)}) throw new Error("Extension target mismatch"); startExtension(extension)
|
|
35
|
+
contents: `import extension from ${JSON.stringify(entry)}; import { startExtension } from "@octonodes/ui-extensions/react"; import { startAction } from "@octonodes/ui-extensions"; if (extension.target !== ${JSON.stringify(extension.target)}) throw new Error("Extension target mismatch"); if ((extension.kind === "action") !== ${JSON.stringify(plugins_1.APP_ACTION_TARGETS.includes(extension.target))}) throw new Error("Extension kind mismatch"); ${source.apiVersion === "octonode.app/v2" ? 'extension.kind === "action" ? startAction(extension) : startExtension(extension);' : 'startExtension(extension);'}`,
|
|
35
36
|
resolveDir: root,
|
|
36
37
|
loader: "ts",
|
|
37
38
|
},
|
|
@@ -68,7 +69,7 @@ async function buildAppProject(directory, applicationUrl) {
|
|
|
68
69
|
const normalized = new URL(origin);
|
|
69
70
|
if (normalized.origin !== origin.replace(/\/$/, ""))
|
|
70
71
|
throw new Error("App URL must be an HTTPS origin");
|
|
71
|
-
const manifest =
|
|
72
|
+
const manifest = plugins_2.PluginManifest.parse({
|
|
72
73
|
id: source.id,
|
|
73
74
|
name: source.name,
|
|
74
75
|
version: source.version,
|
|
@@ -114,7 +115,13 @@ async function buildAppProject(directory, applicationUrl) {
|
|
|
114
115
|
(0, node_fs_1.cpSync)(site, (0, node_path_1.join)(stage, "site"), { recursive: true, dereference: false });
|
|
115
116
|
}
|
|
116
117
|
else if ((0, node_fs_1.existsSync)((0, node_path_1.join)(root, "src/welcome.html"))) {
|
|
117
|
-
(0, node_fs_1.
|
|
118
|
+
let html = (0, node_fs_1.readFileSync)((0, source_1.sourceFile)(root, "src/welcome.html"), "utf8");
|
|
119
|
+
if (html.includes("/* OCTONODE_HOSTED_BRIDGE */")) {
|
|
120
|
+
const browser = await (0, esbuild_1.build)({ entryPoints: [(0, source_1.sourceFile)(root, "src/hosted.ts")], absWorkingDir: root, bundle: true, platform: "browser", format: "iife", preserveSymlinks: true, write: false, metafile: true, logLevel: "silent" });
|
|
121
|
+
assertSourceInputs(root, Object.keys(browser.metafile.inputs));
|
|
122
|
+
html = html.replace("/* OCTONODE_HOSTED_BRIDGE */", browser.outputFiles[0].text.replaceAll("</script", "<\\/script"));
|
|
123
|
+
}
|
|
124
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(stage, "welcome.html"), html);
|
|
118
125
|
}
|
|
119
126
|
const previousWeb = (0, node_path_1.join)(root, "dist/web", source.id);
|
|
120
127
|
if ((0, node_fs_1.existsSync)(previousWeb)) {
|
|
@@ -138,7 +145,7 @@ const actual=files("").filter(file=>file!=="octonode-web.json").sort();
|
|
|
138
145
|
if(record.format!==1 || JSON.stringify(actual)!==JSON.stringify(Object.keys(record.files).sort()))throw Error("Web build changed");
|
|
139
146
|
for(const file of actual)if(createHash("sha256").update(readFileSync(join(root,file))).digest("hex")!==record.files[file])throw Error("Web build changed");
|
|
140
147
|
const port=Number(process.env.PORT??3000);if(!Number.isInteger(port)||port<0||port>65535)throw Error("Invalid PORT");
|
|
141
|
-
const source={id:
|
|
148
|
+
const source={id:record.id,version:"1.0.0",extensions:record.app.extensions};
|
|
142
149
|
const host=createAppServer({port,source,development:false});
|
|
143
150
|
host.listen().then(()=>{host.setOrigin(record.app.applicationUrl);host.update(source,root,require(join(root,"server.cjs")).default);process.stdout.write("App server ready\\n");});
|
|
144
151
|
process.once("SIGINT",()=>host.close());process.once("SIGTERM",()=>host.close());`,
|
|
@@ -153,6 +160,7 @@ process.once("SIGINT",()=>host.close());process.once("SIGTERM",()=>host.close())
|
|
|
153
160
|
});
|
|
154
161
|
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(stage, "octonode-web.json"), JSON.stringify({
|
|
155
162
|
format: 1,
|
|
163
|
+
id: source.id,
|
|
156
164
|
app: manifest.app,
|
|
157
165
|
files: Object.fromEntries((0, artifact_1.pluginFiles)(stage).map((file) => [file, (0, artifact_1.fileHash)((0, node_path_1.join)(stage, file))])),
|
|
158
166
|
}));
|
|
@@ -196,7 +204,7 @@ function verifyWebBuild(directory) {
|
|
|
196
204
|
for (const file of actual)
|
|
197
205
|
if (record.files[file] !== (0, artifact_1.fileHash)((0, node_path_1.join)(directory, file)))
|
|
198
206
|
throw new Error("Web build changed; rebuild first");
|
|
199
|
-
const manifest =
|
|
207
|
+
const manifest = plugins_2.PluginManifest.parse({ id: record.id, name: "web", version: "1.0.0", app: record.app });
|
|
200
208
|
return manifest.app;
|
|
201
209
|
}
|
|
202
210
|
function assertSourceInputs(root, inputs) {
|
package/dist/apps/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":";;;;AAAA,qCAWiB;AACjB,yCAAoD;AACpD,2DAA8C;AAC9C,yCAAsC;AACtC,qCAAgC;AAChC,oDAAwD;AACxD,wCAA0C;AAC1C,kDAAsE;AACtE,qCAAkE;AAE3D,KAAK,0BAA0B,SAAiB,EAAE,cAAuB;IAC9E,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAA,mBAAS,EAAC,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YAAE,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC,cAAc,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,IAAA,mBAAS,EAAC,IAAA,gBAAI,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC;gBACzB,aAAa,EAAE,IAAI;gBACnB,KAAK,EAAE;oBACL,QAAQ,EAAE,yBAAyB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/apps/build.ts"],"names":[],"mappings":"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"}
|
package/dist/apps/constants.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export declare const APP_STUDIO_URL = "https://octonodes.com";
|
|
1
2
|
export declare const APP_SOURCE = "octonode.app.json";
|
|
2
|
-
export declare const APP_HELP = "Usage:\n octonodes app create <name> [--template extension|full] [--platform plain|vite|next]\n octonodes app extension add <id> --target
|
|
3
|
+
export declare const APP_HELP = "Usage:\n octonodes app create <name> [--template extension|full] [--platform plain|vite|next]\n octonodes app targets\n octonodes app extension add <id> --target <target> [--cwd <directory>]\n octonodes app dev [directory] [--use-localhost | --tunnel-url <https-origin>] [--port <port>] [--no-open] [--workspace kind:id]\n octonodes app build [directory] [--app-url <https-origin>]\n octonodes app serve [directory] [--port <port>]\n octonodes app publish [directory] --workspace kind:id [--app-id <id> --revision <n>]\n octonodes app validate <artifact-directory>\n\nCreate defaults to a full Vite app (--platform vite). Use --platform plain for HTML or\n--platform next for Next.js. Use --template extension for an in-app panel and navbar launcher.\nExtension templates use octonode.app/v2; app targets lists the supported view/action/launcher targets.\nBuild compiles declared browser entries and generates\nrelease hashes in dist/apps/<id>. Existing projects are never overwritten. No login is needed.\napp dev opens a public Quick Tunnel automatically.\napp dev automatically downloads and caches its tunnel helper. No Cloudflare account or install is needed. --workspace opens an expiring Studio preview after login.\napp publish creates an immutable release; full apps must deploy their backend separately.\nInstallation requires Studio consent.\n";
|
|
3
4
|
export declare const CLOUDFLARED_VERSION = "2026.9.3";
|
|
4
5
|
export declare const CLOUDFLARED_ASSETS: Record<string, import("./types").CloudflaredAsset>;
|
|
5
6
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,0BAA0B,CAAC;AACtD,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAC9C,eAAO,MAAM,QAAQ,u1CAmBpB,CAAC;AAGF,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,SAAS,EAAE,gBAAgB,CAuBjF,CAAC"}
|
package/dist/apps/constants.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CLOUDFLARED_ASSETS = exports.CLOUDFLARED_VERSION = exports.APP_HELP = exports.APP_SOURCE = void 0;
|
|
3
|
+
exports.CLOUDFLARED_ASSETS = exports.CLOUDFLARED_VERSION = exports.APP_HELP = exports.APP_SOURCE = exports.APP_STUDIO_URL = void 0;
|
|
4
|
+
// App installation and preview routes are served by the Studio gateway.
|
|
5
|
+
exports.APP_STUDIO_URL = "https://octonodes.com";
|
|
4
6
|
exports.APP_SOURCE = "octonode.app.json";
|
|
5
7
|
exports.APP_HELP = `Usage:
|
|
6
8
|
octonodes app create <name> [--template extension|full] [--platform plain|vite|next]
|
|
7
|
-
octonodes app
|
|
9
|
+
octonodes app targets
|
|
10
|
+
octonodes app extension add <id> --target <target> [--cwd <directory>]
|
|
8
11
|
octonodes app dev [directory] [--use-localhost | --tunnel-url <https-origin>] [--port <port>] [--no-open] [--workspace kind:id]
|
|
9
12
|
octonodes app build [directory] [--app-url <https-origin>]
|
|
10
13
|
octonodes app serve [directory] [--port <port>]
|
|
@@ -12,7 +15,8 @@ exports.APP_HELP = `Usage:
|
|
|
12
15
|
octonodes app validate <artifact-directory>
|
|
13
16
|
|
|
14
17
|
Create defaults to a full Vite app (--platform vite). Use --platform plain for HTML or
|
|
15
|
-
--platform next for Next.js. Use --template extension for an
|
|
18
|
+
--platform next for Next.js. Use --template extension for an in-app panel and navbar launcher.
|
|
19
|
+
Extension templates use octonode.app/v2; app targets lists the supported view/action/launcher targets.
|
|
16
20
|
Build compiles declared browser entries and generates
|
|
17
21
|
release hashes in dist/apps/<id>. Existing projects are never overwritten. No login is needed.
|
|
18
22
|
app dev opens a public Quick Tunnel automatically.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/apps/constants.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AAC3D,QAAA,cAAc,GAAG,uBAAuB,CAAC;AACzC,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC;AAEF,2FAA2F;AAC9E,QAAA,mBAAmB,GAAG,UAAU,CAAC;AACjC,QAAA,kBAAkB,GAAuD;IACpF,YAAY,EAAE;QACZ,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,kEAAkE;QAC1E,YAAY,EAAE,kEAAkE;KACjF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,kEAAkE;QAC1E,YAAY,EAAE,kEAAkE;KACjF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,kEAAkE;KAC3E;IACD,aAAa,EAAE;QACb,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,kEAAkE;KAC3E;IACD,WAAW,EAAE;QACX,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE,kEAAkE;KAC3E;CACF,CAAC"}
|