omnigateway 0.6.0 → 0.7.1
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 +35 -6
- package/bin/omni.js +6014 -5688
- package/gateway.js +4731 -4468
- package/package.json +1 -1
- package/public/assets/{_app.console-CZiI6B3b.js → _app.console-D6lrTxJt.js} +2 -2
- package/public/assets/_app.index-DUFa7RRT.js +62 -0
- package/public/assets/{_app.models-eOJ6ofIb.js → _app.models-CDpbIYHW.js} +1 -1
- package/public/assets/{client-Pvf9SEam.js → client-_6YMm6vh.js} +1 -1
- package/public/assets/{index-Cn4_VeBU.js → index-BRrBGt1i.js} +3 -3
- package/public/assets/stream-BD4FhzLn.js +1 -0
- package/public/index.html +2 -2
- package/public/shared/dashboard-sdk.js +1 -1
- package/public/assets/_app.index-BZCUXxIF.js +0 -62
- package/public/assets/stream-BXI9HD3l.js +0 -1
package/README.md
CHANGED
|
@@ -182,6 +182,9 @@ Connect an account. The CLI prints a URL to open, and waits:
|
|
|
182
182
|
omni connect anthropic # or: openai, kimi, kilo, grok
|
|
183
183
|
```
|
|
184
184
|
|
|
185
|
+
An installed [plugin](#plugins) that supplies its own provider is connected the
|
|
186
|
+
same way, under its plugin id.
|
|
187
|
+
|
|
185
188
|
Every provider also takes a plain API key, if that is what you hold rather than
|
|
186
189
|
a subscription:
|
|
187
190
|
|
|
@@ -373,7 +376,7 @@ Use `--db <path>` to point one command somewhere else.
|
|
|
373
376
|
| `omni credentials …` | list, show, enable, disable, `set`, `rm`, refresh, `add-key`, health |
|
|
374
377
|
| `omni models …` | list, show, put, `rm`, `dry-run`, `catalog` |
|
|
375
378
|
| `omni keys …` | list, create, `limits`, revoke |
|
|
376
|
-
| `omni plugin …` | list, verify, install, remove; see [Plugins](#plugins) |
|
|
379
|
+
| `omni plugin …` | list, verify, install, update, remove; see [Plugins](#plugins) |
|
|
377
380
|
| `omni service install` / `uninstall` | write or remove a systemd unit for this installation |
|
|
378
381
|
| `omni setup claude` / `opencode` | point a client's config at this gateway |
|
|
379
382
|
| `omni settings get` / `set` | routing weights, retention, deadlines, and the runtime switches |
|
|
@@ -381,7 +384,7 @@ Use `--db <path>` to point one command somewhere else.
|
|
|
381
384
|
| `omni db migrate` | create or upgrade the database |
|
|
382
385
|
| `omni db stats` | size on disk, free pages, schema version, and what snapshots are held |
|
|
383
386
|
| `omni db backup` / `snapshots` | take a snapshot, and list the ones retention has kept |
|
|
384
|
-
| `omni db restore <id>` | put a snapshot back;
|
|
387
|
+
| `omni db restore <id>` | put a snapshot back; shows a live-vs-snapshot count table, then asks. `--dry-run` shows the table and stops |
|
|
385
388
|
| `omni db vacuum` | rewrite the database, reclaiming the pages deletion left free |
|
|
386
389
|
|
|
387
390
|
Two worth knowing:
|
|
@@ -613,6 +616,12 @@ request-log rows, 1.6 s at 2M, 6.5 s at 8M. A failure is logged rather than
|
|
|
613
616
|
raised — the database is live either way, and `omni doctor` reports a rollup
|
|
614
617
|
that disagrees with its rows.
|
|
615
618
|
|
|
619
|
+
Before it asks, `restore` prints one row per table with what the snapshot holds
|
|
620
|
+
against what is live, so the confirmation is informed rather than a judgement on
|
|
621
|
+
an id and an mtime. `--dry-run` prints the same table and exits without asking.
|
|
622
|
+
The counts cover the tables the integrity check reads, so they are a floor on
|
|
623
|
+
what a restore replaces rather than the whole of it.
|
|
624
|
+
|
|
616
625
|
**`omni db restore <id>` refuses while a gateway is running** against that
|
|
617
626
|
installation, and there is no override flag. A second process can open its own
|
|
618
627
|
handle but cannot quiesce the gateway's, and moving the file out from under a live
|
|
@@ -712,9 +721,16 @@ omni plugin install https://…/x.tgz # a tarball over https, never http
|
|
|
712
721
|
omni plugin install some-plugin@1.2.3 # a package name, through the npm registry
|
|
713
722
|
omni plugin verify some-plugin # every check the next boot will run
|
|
714
723
|
omni plugin list # what is installed, and whether it would load
|
|
724
|
+
omni plugin update some-plugin # reinstall from whatever it was installed from
|
|
715
725
|
omni restart # plugins load at boot, so this is required
|
|
716
726
|
```
|
|
717
727
|
|
|
728
|
+
`update` needs no spec: `install` records the one you typed in
|
|
729
|
+
`.omni-install.json` beside the plugin, so picking up a patch release is the
|
|
730
|
+
plugin's id and nothing else. A bare package name re-resolves to the current
|
|
731
|
+
release; `name@1.2.3` reinstalls that version exactly. A plugin copied in by
|
|
732
|
+
hand has no record and `update` says so rather than guessing.
|
|
733
|
+
|
|
718
734
|
**Nothing in the package is executed by any of these.** There is no dependency
|
|
719
735
|
resolution, no `node_modules`, and no lifecycle script — the installer fetches,
|
|
720
736
|
checks, and unpacks, and the plugin's own code is first imported at the next boot.
|
|
@@ -741,13 +757,26 @@ and whether the gateway would load it:
|
|
|
741
757
|
|
|
742
758
|
```
|
|
743
759
|
ID NAME VERSION API SDK CAPABILITIES STATE
|
|
744
|
-
pokemon Pokémon Companion 1.0.0
|
|
760
|
+
pokemon Pokémon Companion 1.0.0 2 ^1.0.0 storage,files,net:outbound,… ok
|
|
745
761
|
```
|
|
746
762
|
|
|
763
|
+
The API column is the plugin API generation, and it is matched **exactly** — a
|
|
764
|
+
plugin built against an older one is listed with that as its reason rather than
|
|
765
|
+
loaded.
|
|
766
|
+
|
|
747
767
|
The capabilities a manifest may declare are `storage`, `files`, `net:outbound`,
|
|
748
|
-
`events:request`, `events:limit` and `channels`
|
|
749
|
-
topics on the gateway's push socket, which a plugin owns without ever
|
|
750
|
-
connection.
|
|
768
|
+
`events:request`, `events:limit`, `channels` and `provider`. `channels` is
|
|
769
|
+
namespaced topics on the gateway's push socket, which a plugin owns without ever
|
|
770
|
+
touching a connection. `provider` lets a plugin supply a provider of its own —
|
|
771
|
+
the models, the wire format, and optionally the OAuth flow, so
|
|
772
|
+
`omni connect <plugin-id>` works for it exactly as it does for a built-in.
|
|
773
|
+
Anything a plugin did not declare is absent from what it is handed.
|
|
774
|
+
|
|
775
|
+
`net:outbound` and `provider` each require the manifest to declare `origins`,
|
|
776
|
+
and both are enforced: a plugin's own `fetch` and the requests the gateway makes
|
|
777
|
+
on a provider plugin's behalf are both refused outside them. That is what makes
|
|
778
|
+
`omni plugin verify <id>` worth reading before you install one — where your
|
|
779
|
+
prompts can be sent is in the manifest, not only in the code.
|
|
751
780
|
|
|
752
781
|
A plugin that would *not* load is listed with the reason rather than hidden,
|
|
753
782
|
because a plugin missing from the console is exactly what you are trying to
|