omnius 1.0.649 → 1.0.651
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2455 -1156
- package/dist/launcher.cjs +0 -0
- package/dist/update-worker.js +4 -5
- package/docs/OMNIUS-RELIABILITY-LONG-HORIZON-TODO.md +189 -7
- package/npm-shrinkwrap.json +11 -11
- package/package.json +1 -1
package/dist/launcher.cjs
CHANGED
|
File without changes
|
package/dist/update-worker.js
CHANGED
|
@@ -293856,6 +293856,7 @@ async function getDaemonReportedIdentity(port) {
|
|
|
293856
293856
|
const resp = await fetch(`http://127.0.0.1:${p}/health`, { signal: AbortSignal.timeout(2e3) });
|
|
293857
293857
|
if (!resp.ok) return null;
|
|
293858
293858
|
const data = await resp.json();
|
|
293859
|
+
if (data.status !== "ok") return null;
|
|
293859
293860
|
const version = data.boot_version ?? data.version;
|
|
293860
293861
|
if (!version) return null;
|
|
293861
293862
|
return {
|
|
@@ -293867,15 +293868,13 @@ async function getDaemonReportedIdentity(port) {
|
|
|
293867
293868
|
return null;
|
|
293868
293869
|
}
|
|
293869
293870
|
}
|
|
293870
|
-
async function getDaemonReportedVersion(port) {
|
|
293871
|
-
return (await getDaemonReportedIdentity(port))?.bootVersion ?? null;
|
|
293872
|
-
}
|
|
293873
293871
|
async function waitForDaemonReady(port, expectedVersion, attempts = 24) {
|
|
293874
293872
|
let observedVersion = null;
|
|
293875
293873
|
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
293876
293874
|
await new Promise((resolve11) => setTimeout(resolve11, 500));
|
|
293877
|
-
|
|
293878
|
-
|
|
293875
|
+
const identity = await getDaemonReportedIdentity(port);
|
|
293876
|
+
if (!identity) continue;
|
|
293877
|
+
observedVersion = identity.bootVersion;
|
|
293879
293878
|
if (!expectedVersion || expectedVersion === "0.0.0" || observedVersion === expectedVersion) {
|
|
293880
293879
|
return { ok: true, observedVersion };
|
|
293881
293880
|
}
|
|
@@ -61,11 +61,63 @@ It records scope, dependencies, evidence, and closure rules.
|
|
|
61
61
|
- Test an abort that forbids unary fallback.
|
|
62
62
|
- [x] Run focused Telegram suites.
|
|
63
63
|
- [x] Build the CLI package.
|
|
64
|
+
- [x] Stop treating a clean admin-chat answer as an incomplete agentic task.
|
|
65
|
+
- Root cause: the live model returned a valid visible reply on each turn, but
|
|
66
|
+
`AgenticRunner` required a `task_complete` tool call on the conversational
|
|
67
|
+
Telegram surface. It therefore repeated the generation three times and
|
|
68
|
+
committed the run as incomplete after 55,193 tokens and zero tool calls.
|
|
69
|
+
- Add an explicit `acceptTextOnlyCompletion` runner contract. Enable it only
|
|
70
|
+
for admin-DM chat; action and mutation runs retain authoritative completion
|
|
71
|
+
and evidence gates.
|
|
72
|
+
- Retain the first completed stream answer before completion-boundary
|
|
73
|
+
filtering so Telegram cannot discard the terminal conversational reply.
|
|
74
|
+
- [x] Separate the Telegram admin reply from internal run diagnostics.
|
|
75
|
+
- Render only the natural answer, concise work summary, or artifact
|
|
76
|
+
description on the Reply tab.
|
|
77
|
+
- Do not prepend `Admin run`, echo the request, append a page marker, expose
|
|
78
|
+
raw exceptions, or persist completion reports as assistant conversation.
|
|
79
|
+
- Put lifecycle status and mutations in Activity, tool results in Tools,
|
|
80
|
+
completion and verification reports in Evidence, and prompt/context data in
|
|
81
|
+
Context.
|
|
82
|
+
- Return the panel to Reply when a run finishes, while marking updated
|
|
83
|
+
internal tabs for inspection.
|
|
84
|
+
- Preserve and deliver a usable draft and generated artifacts when the runner
|
|
85
|
+
misses `task_complete`; keep the incomplete report in Evidence.
|
|
86
|
+
- [x] Add Telegram reply-versus-evidence regressions.
|
|
87
|
+
- Assert exact clean Reply rendering for completed and failed panels.
|
|
88
|
+
- Assert that the literal `back at it?` incomplete-run failure delivers only
|
|
89
|
+
its usable conversational draft and stores `INCOMPLETE` behind Evidence.
|
|
90
|
+
- Assert that a one-turn admin chat delivery and persisted assistant history
|
|
91
|
+
contain the exact model answer, not the panel report.
|
|
92
|
+
- [ ] QUEUED — Make automatic generated-artifact upload receipts authoritative.
|
|
93
|
+
- Return delivered and failed artifact receipts from the automatic sender.
|
|
94
|
+
- Put raw upload diagnostics in Tools or Evidence.
|
|
95
|
+
- If an attachment cannot be delivered, replace any success claim with one
|
|
96
|
+
concise user-facing blocker without exposing a local path.
|
|
97
|
+
- [x] Make Telegram intake completion depend on a delivery receipt.
|
|
98
|
+
- Require `ok: true` and a positive Telegram `message_id`.
|
|
99
|
+
- Try the existing HTML-to-plain fallback, then fail the run if both sends
|
|
100
|
+
fail or neither returns a receipt.
|
|
101
|
+
- Mark the intake consumed only after a confirmed visible delivery; otherwise
|
|
102
|
+
mark it failed for replay and diagnosis.
|
|
64
103
|
- [ ] VERIFY — Run live Telegram route inference.
|
|
65
104
|
- Endpoint: `http://127.0.0.1:11434`.
|
|
66
105
|
- Model: `robit/ornith-1.5:9b`.
|
|
67
106
|
- Required GPU: a broker-selected A100 80 GB GPU.
|
|
68
107
|
- Forbidden GPU: the GT 1030.
|
|
108
|
+
- Partial live evidence: Telegram intake accepted `back at it?`, created a task
|
|
109
|
+
epoch, and completed broker-backed `/v1/chat/completions` and `/api/chat`
|
|
110
|
+
requests without the former 30-second abort.
|
|
111
|
+
- The earlier open-ledger result is now diagnosed as a conversational
|
|
112
|
+
completion-policy mismatch, not a transport or model failure.
|
|
113
|
+
- Direct live proof after the causal fix: the exact Ornith model returned
|
|
114
|
+
`TELEGRAM_CHAT_TERMINAL_OK`; the runner completed in one turn with zero tool
|
|
115
|
+
calls and 30 completion tokens while resident on an A100 80 GB GPU.
|
|
116
|
+
- Open gate: receive and deliver one fresh real Telegram message through the
|
|
117
|
+
rebuilt installed CLI. Mocked Bot API coverage is complete, but it does not
|
|
118
|
+
replace an end-to-end Telegram delivery receipt.
|
|
119
|
+
- Ready state: the rebuilt `/usr/local/bin/omnius` TUI is running in
|
|
120
|
+
`telegram_test`; its Telegram poller owns the live workspace lock.
|
|
69
121
|
- Required result: valid visible route JSON.
|
|
70
122
|
- Required result: nonzero generated token telemetry.
|
|
71
123
|
- Required result: no 30-second abort.
|
|
@@ -96,11 +148,100 @@ It records scope, dependencies, evidence, and closure rules.
|
|
|
96
148
|
- [x] Confirm the exact model tag `robit/ornith-1.5:9b`.
|
|
97
149
|
- [x] Confirm model context length `262144`.
|
|
98
150
|
- [x] Confirm model capabilities for completion, vision, tools, and thinking.
|
|
99
|
-
- [
|
|
100
|
-
- [
|
|
151
|
+
- [x] Replace per-request capacity polling with one FIFO scheduler and one reconciler.
|
|
152
|
+
- [x] Cancel disconnected queued clients before backend inference starts.
|
|
153
|
+
- [x] Add queue IDs, positions, phases, depth, age, and aggregate timing metrics.
|
|
154
|
+
- [x] Make queue time exclude backend generation and time to first response.
|
|
155
|
+
- [x] Warm each managed model with zero generated tokens before lane readiness.
|
|
156
|
+
- [x] Verify model residency before admitting a lane.
|
|
157
|
+
- [x] Canonicalize only an omitted `:latest` tag.
|
|
158
|
+
- [x] Preserve separately configured model aliases.
|
|
159
|
+
- [x] Replace least-recently-used idle lanes for mixed-model demand.
|
|
160
|
+
- [x] Remove the system-lane block on independent managed-lane expansion.
|
|
161
|
+
- [x] Scope anonymous CUDA handling to selected GPUs and broker-external processes.
|
|
162
|
+
- [x] Ignore foreign-process departure and unselected-GPU churn.
|
|
163
|
+
- [x] Retire only affected managed lanes after stable allocation growth.
|
|
164
|
+
- [x] Protect queued timeout and client-write paths from broken-pipe tracebacks.
|
|
165
|
+
- [x] Keep `/api/tags`, `/api/ps`, `/api/version`, `/api/show`, and `/v1/models`
|
|
166
|
+
available during cooperative GPU-lease drains.
|
|
167
|
+
- [x] Add broker regressions for lazy three-lane scaling, FIFO, cancellation, aliases,
|
|
168
|
+
mixed models, warm readiness, queue telemetry, and CUDA process churn.
|
|
169
|
+
- [x] Add the negotiator suite to the broker repository CI workflow.
|
|
170
|
+
- [x] Commit broker scheduler repair locally on `main` as `4fbad0c`.
|
|
171
|
+
- [x] Commit drain-safe metadata repair locally on `main` as `cd344e3`.
|
|
172
|
+
- [x] Commit host-memory restart preflight repair on `main` as `4a24eb5`.
|
|
173
|
+
- [x] Commit endpoint-aware queue admission repair on `main` as `4349a5b`.
|
|
174
|
+
- [x] Commit the public private-lane range contract on `main` as `c98492f`.
|
|
175
|
+
- [x] Deploy the repaired broker through `./ollama-unify.sh --install-safety`.
|
|
176
|
+
- Installed helper SHA-256:
|
|
177
|
+
`39458260611a80f50d87f03e7567bcdcc632ebd1af421e9d94f69521410d80cd`.
|
|
178
|
+
- `ollama-unify-negotiator.service` and `ollama.service` are active.
|
|
179
|
+
- Public port `11434` and system backend port `11436` report Ollama `0.32.13`.
|
|
180
|
+
- [x] Disable the conflicting legacy `ollama-env-update.service` unit.
|
|
181
|
+
- [x] Confirm that Omnius can request broker capacity without bypass.
|
|
182
|
+
- Discovery published managed ports `11437` through `11468`.
|
|
183
|
+
- Omnius created no private `ollama serve` owner during the live run.
|
|
184
|
+
- [x] Confirm parallel requests on separate host lanes.
|
|
185
|
+
- Live discovery showed two concurrent `robit/ornith-1.5:9b` lanes on separate
|
|
186
|
+
A100 80 GB GPUs and a separate embedding lane.
|
|
101
187
|
- [ ] VERIFY — Confirm that broker queue time remains visible to Telegram.
|
|
102
|
-
- [
|
|
103
|
-
|
|
188
|
+
- [x] Confirm broker commits `4fbad0c`, `cd344e3`, `4a24eb5`, `4349a5b`, and
|
|
189
|
+
`c98492f` are pushed to `origin/main`.
|
|
190
|
+
- [x] Confirm local and remote broker `main` are identical at `c98492f`.
|
|
191
|
+
- [x] Confirm the required broker service restart state.
|
|
192
|
+
|
|
193
|
+
## P0: Broker ownership incident root cause
|
|
194
|
+
|
|
195
|
+
- [x] Identify the duplicate scheduler and port-ownership race.
|
|
196
|
+
- Root cause: an older Omnius elastic-pool worker survived independently and
|
|
197
|
+
spawned detached Ollama servers on ports `11436` through `11438` while the
|
|
198
|
+
broker installer temporarily stopped the supervised services.
|
|
199
|
+
- Result: the system Ollama service could not reclaim `11436`, and the host
|
|
200
|
+
broker opened another managed set on later ports.
|
|
201
|
+
- [x] Remove the stale Omnius worker and its detached Ollama process groups.
|
|
202
|
+
- [x] Route broker-managed setup and recovery through systemd.
|
|
203
|
+
- [x] Fail closed when local broker discovery is malformed or temporarily absent.
|
|
204
|
+
- [x] Remove the unsafe `OMNIUS_OLLAMA_UNIFY_ALLOW_POOL` ownership bypass.
|
|
205
|
+
- [x] Prevent `/parallel` from detached-spawning Ollama for a broker-managed endpoint.
|
|
206
|
+
- [x] Keep one supervised system Ollama owner and one broker scheduler.
|
|
207
|
+
|
|
208
|
+
## P0: Runtime package and daemon integrity
|
|
209
|
+
|
|
210
|
+
- [x] Replace the Zod-4-only `z.json()` runtime contract with a recursive JSON
|
|
211
|
+
schema that works with the bundled Zod runtime.
|
|
212
|
+
- [x] Add nested JSON acceptance and `undefined` rejection tests.
|
|
213
|
+
- [x] Make `publish/dist/launcher.cjs` executable during every publish build.
|
|
214
|
+
- [x] Confirm the source artifact and `/usr/local` installed CLI have the same
|
|
215
|
+
SHA-256 and report Omnius `1.0.649`.
|
|
216
|
+
- Current installed `dist/index.js` SHA-256:
|
|
217
|
+
`9e7a830d1370c0127f38fa4e24b8b15cc9069746904d80a26e41f9ee48a59b8b`.
|
|
218
|
+
- [x] Remove the stale user-service drop-in that moved the shared daemon from
|
|
219
|
+
port `11435` to the Cygnus port `11535`.
|
|
220
|
+
- [x] Confirm the shared Omnius daemon is active on `11435` and the separate
|
|
221
|
+
Cygnus daemon is active on `11535`, both at `1.0.649`.
|
|
222
|
+
- [x] Replace the stale `telegram_test` main-model identifier with the exact tag
|
|
223
|
+
`robit/ornith-1.5:9b`.
|
|
224
|
+
- [x] Stop the diagnostic TUI and remove its dead-PID Telegram ownership lock.
|
|
225
|
+
|
|
226
|
+
## P0: Startup control-plane recovery
|
|
227
|
+
|
|
228
|
+
- [x] Replace boolean model availability with `available`, `unavailable`, and
|
|
229
|
+
`unknown` outcomes.
|
|
230
|
+
- [x] Treat timeout, HTTP 502, and connection failure as `unknown`.
|
|
231
|
+
- [x] Preserve the configured model when availability is unknown.
|
|
232
|
+
- [x] Run first-run setup only after a successful catalog proves the model absent.
|
|
233
|
+
- [x] Match omitted Ollama `:latest` with strict canonical equality.
|
|
234
|
+
- [x] Use one coalesced names-only `/api/tags` request for startup availability
|
|
235
|
+
and readline completion.
|
|
236
|
+
- [x] Keep full per-model `/api/show` discovery out of startup checks.
|
|
237
|
+
- [x] Classify Telegram startup failures as retryable or terminal.
|
|
238
|
+
- [x] Retry network errors, HTTP/Bot API 429, 5xx, and webhook propagation delay.
|
|
239
|
+
- [x] Do not retry invalid tokens or duplicate long-poller ownership conflicts.
|
|
240
|
+
- [x] Add a bounded TUI Telegram auto-start supervisor.
|
|
241
|
+
- [x] Cancel pending Telegram auto-start when the operator stops Telegram.
|
|
242
|
+
- [x] Use one daemon `/health` response for liveness and immutable boot identity.
|
|
243
|
+
- [x] Tolerate bounded transient daemon health-read failures before recovery.
|
|
244
|
+
- [x] Require daemon health payload `status: ok` before accepting identity.
|
|
104
245
|
|
|
105
246
|
## P0: Live inference hardware gate
|
|
106
247
|
|
|
@@ -115,9 +256,18 @@ It records scope, dependencies, evidence, and closure rules.
|
|
|
115
256
|
- [x] Inspect `nvidia-smi` model process placement.
|
|
116
257
|
- [x] Confirm model runner PID `2199237` on an A100.
|
|
117
258
|
- [x] Confirm that no test runner uses the GT 1030.
|
|
118
|
-
- [
|
|
119
|
-
-
|
|
120
|
-
-
|
|
259
|
+
- [x] Send the first generated-token request.
|
|
260
|
+
- Exact response text: `BROKER_OK`.
|
|
261
|
+
- Provider usage: 5 evaluated tokens.
|
|
262
|
+
- [x] Inspect GPU placement during generation.
|
|
263
|
+
- The Ornith runner was resident on an A100 80 GB GPU.
|
|
264
|
+
- No Ollama runner was resident on the GT 1030.
|
|
265
|
+
- [x] Re-preflight the final installed live session.
|
|
266
|
+
- The broker admitted zero-token capacity on managed lane 10.
|
|
267
|
+
- Runner PID `3179075` is resident on A100 GPU 2.
|
|
268
|
+
- No Ollama runner is resident on the GT 1030.
|
|
269
|
+
- [x] Record response text, provider usage, and broker admission.
|
|
270
|
+
- [ ] VERIFY — Record live ontology graph validity.
|
|
121
271
|
|
|
122
272
|
## P1: Ontology long-horizon work graph
|
|
123
273
|
|
|
@@ -298,9 +448,41 @@ It records scope, dependencies, evidence, and closure rules.
|
|
|
298
448
|
- [x] Telegram transport, observability, link, and Bot API suites: 161 passed.
|
|
299
449
|
- [x] Native Ollama transport suite: 19 passed.
|
|
300
450
|
- [x] Model-broker focused suite: 6 passed.
|
|
451
|
+
- [x] Model availability and first-run setup regressions: 11 passed.
|
|
452
|
+
- [x] Telegram Bot API, startup retry, and routing suite: 91 passed.
|
|
453
|
+
- [x] Daemon identity, singleton, and listener-reclaim regressions: 23 passed.
|
|
454
|
+
- [x] CLI typecheck passed after startup control-plane repairs.
|
|
455
|
+
- [x] CLI build passed after startup control-plane repairs.
|
|
456
|
+
- [x] Inference visibility, terminal links, Telegram transport, and GPU policy:
|
|
457
|
+
81 focused tests passed.
|
|
458
|
+
- [x] Completion authority, evidence, feature verification, and broker ownership:
|
|
459
|
+
79 focused orchestrator tests passed.
|
|
460
|
+
- [x] `task_complete`, broker execution, and todo persistence: 46 focused tests passed.
|
|
461
|
+
- [x] Cross-version operational-world JSON schema: 15 tests passed.
|
|
462
|
+
- [x] Published and installed launchers are mode `0755` and their bundled CLI
|
|
463
|
+
hashes match.
|
|
301
464
|
- [x] Rerun Telegram focused suites after the timeout repair.
|
|
465
|
+
- [x] Telegram routing, inference, observability, and receipt regressions after
|
|
466
|
+
the conversational completion repair: 158 passed.
|
|
467
|
+
- [x] Functional admin-chat regression proves one tool-bearing runner inference,
|
|
468
|
+
exact visible reply delivery, positive message receipt, and one persisted
|
|
469
|
+
assistant history record.
|
|
470
|
+
- [x] Telegram Reply/Evidence isolation suite: 101 focused tests passed, including
|
|
471
|
+
the literal incomplete `back at it?` delivery regression.
|
|
472
|
+
- [x] CLI typecheck, all workspace builds, publish generation, and publish
|
|
473
|
+
artifact audit passed after Reply/Evidence isolation.
|
|
474
|
+
- [ ] VERIFY — Restart the operator-owned `telegram_test` TUI so its in-memory
|
|
475
|
+
process loads the rebuilt bundle, then confirm one fresh private DM keeps
|
|
476
|
+
diagnostics behind the buttons.
|
|
477
|
+
- [x] Direct live `AgenticRunner` inference with `robit/ornith-1.5:9b` completed
|
|
478
|
+
in one turn with 5,837 total provider tokens and no `task_complete` demand.
|
|
479
|
+
- [x] Legacy `maxTurns` control passed alone with a 60-second harness timeout
|
|
480
|
+
(20.9-second test body); its earlier 30-second failure occurred only under
|
|
481
|
+
concurrent test-worker contention.
|
|
302
482
|
- [x] Rerun CLI typecheck and build after link support.
|
|
303
483
|
- [x] Rerun all workspace TypeScript builds after the transport repair.
|
|
484
|
+
- [x] Rebuild all workspaces, regenerate `publish/`, pass the publish artifact
|
|
485
|
+
audit, install the rebuilt package, and restart both user daemons.
|
|
304
486
|
- [ ] VERIFY — Run live Telegram inference.
|
|
305
487
|
- [ ] VERIFY — Run live ontology patch inference.
|
|
306
488
|
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnius",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.651",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "omnius",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.651",
|
|
10
10
|
"bundleDependencies": [
|
|
11
11
|
"image-to-ascii"
|
|
12
12
|
],
|
|
@@ -3775,9 +3775,9 @@
|
|
|
3775
3775
|
"license": "BSD-3-Clause"
|
|
3776
3776
|
},
|
|
3777
3777
|
"node_modules/fastq": {
|
|
3778
|
-
"version": "1.20.
|
|
3779
|
-
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.
|
|
3780
|
-
"integrity": "sha512-
|
|
3778
|
+
"version": "1.20.3",
|
|
3779
|
+
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
|
|
3780
|
+
"integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
|
|
3781
3781
|
"license": "ISC",
|
|
3782
3782
|
"dependencies": {
|
|
3783
3783
|
"reusify": "^1.0.4"
|
|
@@ -4375,9 +4375,9 @@
|
|
|
4375
4375
|
"license": "Apache-2.0 OR MIT"
|
|
4376
4376
|
},
|
|
4377
4377
|
"node_modules/ip-address": {
|
|
4378
|
-
"version": "10.
|
|
4379
|
-
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.
|
|
4380
|
-
"integrity": "sha512-
|
|
4378
|
+
"version": "10.7.0",
|
|
4379
|
+
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.0.tgz",
|
|
4380
|
+
"integrity": "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==",
|
|
4381
4381
|
"license": "MIT",
|
|
4382
4382
|
"engines": {
|
|
4383
4383
|
"node": ">= 12"
|
|
@@ -7930,9 +7930,9 @@
|
|
|
7930
7930
|
}
|
|
7931
7931
|
},
|
|
7932
7932
|
"node_modules/zod": {
|
|
7933
|
-
"version": "4.5.
|
|
7934
|
-
"resolved": "https://registry.npmjs.org/zod/-/zod-4.5.
|
|
7935
|
-
"integrity": "sha512-
|
|
7933
|
+
"version": "4.5.4",
|
|
7934
|
+
"resolved": "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz",
|
|
7935
|
+
"integrity": "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==",
|
|
7936
7936
|
"license": "MIT",
|
|
7937
7937
|
"funding": {
|
|
7938
7938
|
"url": "https://github.com/sponsors/colinhacks"
|
package/package.json
CHANGED