lumiverse-spindle-types 0.6.16 → 0.6.18
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/LICENSE.md
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
# Lumiverse Community License (Version 2.
|
|
1
|
+
# Lumiverse Community License (Version 2.1)
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
_Effective Date:
|
|
5
|
+
_Effective Date: August 16, 2026_
|
|
6
6
|
|
|
7
|
-
_Plain-Language Preamble:_ The Lumiverse Community License is a custom source-available license that allows you to view, use, and modify the Lumiverse platform and its associated projects for personal, academic, and non-profit research purposes, while protecting the project from unauthorized commercial, governmental, or parasitic exploitation. In essence, you can use Lumiverse freely for yourself or your non-profit organization, and you can fork or modify it internally. However, you **must** contribute back any improvements you make, and you **cannot** redistribute the software or deploy it publicly — only the project founder and the Lumiverse organization can release or host Lumiverse for public use. Commercial (for-profit) use is not covered by this license and requires a separate arrangement. Likewise, no government agency — and no entity acting on behalf of a government agency — may use Lumiverse in an official capacity. This license also forbids use of the Lumiverse name or logo without permission, and expressly prohibits the use of the Software or its source code as training data for machine learning models. The goal is to keep Lumiverse open and accessible in alignment with the ideology that software is a human right for end-users, while ensuring community enhancements are shared and preventing companies or governments from taking advantage of the software without contributing. The following terms are the legally binding conditions of the Lumiverse Community License:
|
|
7
|
+
_Plain-Language Preamble:_ The Lumiverse Community License is a custom source-available license that allows you to view, use, and modify the Lumiverse platform and its associated projects for personal, academic, and non-profit research purposes, while protecting the project from unauthorized commercial, governmental, or parasitic exploitation. In essence, you can use Lumiverse freely for yourself or your non-profit organization, and you can fork or modify it internally. However, you **must** contribute back any improvements you make, and you **cannot** redistribute the software or deploy it publicly — only the project founder and the Lumiverse organization can release or host Lumiverse for public use. Commercial (for-profit) use is not covered by this license and requires a separate arrangement. Likewise, no government agency — and no entity acting on behalf of a government agency — may use Lumiverse in an official capacity. This license also forbids use of the Lumiverse name or logo without permission, and expressly prohibits the use of the Software or its source code as training data for machine learning models. The goal is to keep Lumiverse open and accessible in alignment with the ideology that software is a human right for end-users, while ensuring community enhancements are shared and preventing companies or governments from taking advantage of the software without contributing. One deliberate exception exists: the License permits community-built **extensions and integrations** — plugins, connectors, tooling, and similar separate works that interoperate with Lumiverse — to be created, published under their own open or source-available licenses, and even hosted as free services, provided they are made available entirely without charge or any form of income generation (no fees, advertising, sponsorships, or barter), their source remains open or fully reviewable by the Licensor, and they neither misrepresent themselves as official Lumiverse offerings nor serve as a disguise for public deployment of Lumiverse itself. The following terms are the legally binding conditions of the Lumiverse Community License:
|
|
8
8
|
|
|
9
9
|
## 1. Definitions
|
|
10
10
|
|
|
11
11
|
For purposes of this License, the following terms have the meanings given:
|
|
12
12
|
|
|
13
|
-
**"Improvements"** refers to any changes, additions, or derivatives of the Software that alter, in either a significant or insignificant way, the original source code, configuration, or operational behavior. **This includes, but is not limited to**: alterations to execution flow; use of new modules or libraries; insertions or changes to core modules; additions of extensions that enable communications with external platforms or utilities; modifications to deployment configurations, infrastructure-as-code, container definitions, or orchestration files; modifications to prompt templates, system instructions, or any text-based directives that alter the behavior of AI/ML components within the Software; and any other work product that derives from or builds upon the Software's codebase in a way that enhances, extends, or modifies its functionality.
|
|
13
|
+
**"Improvements"** refers to any changes, additions, or derivatives of the Software that alter, in either a significant or insignificant way, the original source code, configuration, or operational behavior. **This includes, but is not limited to**: alterations to execution flow; use of new modules or libraries; insertions or changes to core modules; additions of extensions that enable communications with external platforms or utilities; modifications to deployment configurations, infrastructure-as-code, container definitions, or orchestration files; modifications to prompt templates, system instructions, or any text-based directives that alter the behavior of AI/ML components within the Software; and any other work product that derives from or builds upon the Software's codebase in a way that enhances, extends, or modifies its functionality. For the avoidance of doubt, Improvements do **not** include a Community Extension distributed in compliance with Section 2.2, except to the extent such Extension contains or constitutes a modification of the Software itself (which portion remains an Improvement subject to Section 3).
|
|
14
14
|
|
|
15
15
|
**"Software"** refers to the Lumiverse platform and all related Lumiverse projects, including their source code, documentation, configuration files, prompt templates, deployment scripts, and any associated materials made available under this License.
|
|
16
16
|
|
|
@@ -36,6 +36,14 @@ For purposes of this License, the following terms have the meanings given:
|
|
|
36
36
|
|
|
37
37
|
**"AI/ML Training"** means the use of the Software's source code, documentation, configuration files, prompt templates, or any other materials covered by this License as input data for training, fine-tuning, distilling, or otherwise developing any machine learning model, artificial intelligence system, or automated code generation tool, whether or not the resulting model is distributed or deployed.
|
|
38
38
|
|
|
39
|
+
**"Extension"** refers to any software, configuration, data, or documentation created by You that interoperates with, communicates with, or augments the Software — including plugins, connectors, adapters, clients, tooling, themes, language bindings, and integrations with external platforms or utilities — but that is maintained and distributed as a separate work, and that is not itself a modification of the Software's source code, configuration, or prompt templates, except for de minimis excerpts as permitted under Section 2.2(b)(i).
|
|
40
|
+
|
|
41
|
+
**"Community Extension"** means an Extension that is created, distributed, and (where applicable) operated in full compliance with Section 2.2.
|
|
42
|
+
|
|
43
|
+
**"Hosted Community Extension"** means a Community Extension that You operate as a remotely accessible service (including a website, API, relay, bridge, or similar) through which third parties may access or use that Extension over a network, as permitted under Section 2.2(c).
|
|
44
|
+
|
|
45
|
+
**"Open Distribution"** means distribution of a work under license terms that: (i) make the work's complete human-readable source code publicly available at no charge; (ii) grant all recipients royalty-free rights to use, modify, and redistribute the work, at minimum for personal, non-commercial, and internal purposes; and (iii) do not prohibit recipients from further distributing the work or modifications of it. Licenses approved by the Open Source Initiative satisfy this definition, as do source-available licenses (including non-commercial source-available licenses) that grant the equivalent freedoms.
|
|
46
|
+
|
|
39
47
|
## 2. Grant of License and Permitted Uses
|
|
40
48
|
|
|
41
49
|
Subject to your compliance with **all** terms and conditions of this License, the Licensor hereby grants You a worldwide, royalty-free, non-exclusive, non-transferable, and non-sublicensable license to use, reproduce, and modify the Software, **solely** for the following permitted purposes (collectively, "Permitted Uses"):
|
|
@@ -46,7 +54,7 @@ b. **Non-Profit Use** — If you are a Non-Profit Organization (or an individual
|
|
|
46
54
|
|
|
47
55
|
c. **Internal Use (Including Internal Corporate Use)** — You may use, run, and modify the Software within your organization for internal development, testing, and operations. This includes for-profit companies using the Software internally (for example, for internal research or to assist in internal business functions), **provided** such use is not a Public Use, is not part of providing services or products to any third party or Affiliate, and does not produce outputs, data, or derivative value that is subsequently made available to or exploited by any external party or Affiliate.
|
|
48
56
|
|
|
49
|
-
**No Distribution Rights:** This License **does not** grant you any right to distribute, publish, or make available copies of the Software or any modified version of the Software to **any** other party. Except for sharing within your own organization for Internal Use, you may not transfer, sublicense, rent, sell, lease, or otherwise convey the Software (or any portion of it) to anyone else. The source code may be publicly visible in an official Lumiverse repository, but You are not licensed to redistribute it yourself. **All distribution rights are reserved to the Licensor (the Lumiverse organization and its founder).** The Licensor is the only party authorized to release or distribute the Software (including any modified versions) to the public.
|
|
57
|
+
**No Distribution Rights:** This License **does not** grant you any right to distribute, publish, or make available copies of the Software or any modified version of the Software to **any** other party. Except for sharing within your own organization for Internal Use, you may not transfer, sublicense, rent, sell, lease, or otherwise convey the Software (or any portion of it) to anyone else. The source code may be publicly visible in an official Lumiverse repository, but You are not licensed to redistribute it yourself. **All distribution rights are reserved to the Licensor (the Lumiverse organization and its founder).** The Licensor is the only party authorized to release or distribute the Software (including any modified versions) to the public. The limited right to publish and distribute Extensions as Community Extensions under Section 2.2 is an express exception to this paragraph; such distribution does not constitute distribution of the Software or of any modified version of the Software.
|
|
50
58
|
|
|
51
59
|
**All Other Rights Reserved:** Any use of the Software outside the scope of these Permitted Uses (and outside the other express terms of this License) is prohibited. All rights not expressly granted to You in this License are reserved by the Licensor. You acquire no rights or licenses to the Software other than those expressly granted herein. You may not sublicense, transfer, or assign this License to any third party. This License also does not limit the Licensor's right to offer the Software under different terms (or to refuse contributions or usage from any party in violation of these terms).
|
|
52
60
|
|
|
@@ -76,6 +84,40 @@ f. **Pre-Publication Review:** While not required, the Licensor welcomes the opp
|
|
|
76
84
|
|
|
77
85
|
The Licensor recognizes the importance of academic freedom and the publication of research findings, and these rights are intended to support the advancement of knowledge while respecting the Licensor's intellectual property rights.
|
|
78
86
|
|
|
87
|
+
### 2.2 Community Extensions and Integrations
|
|
88
|
+
|
|
89
|
+
Notwithstanding Sections 3, 4, and 5.5(a), and subject to all conditions of this Section 2.2, the Licensor grants You the limited right to create, publicly distribute, maintain, and (under Section 2.2(c)) host Extensions. The purpose of this section is to enable a community ecosystem of extensions and integrations around the Software while keeping that ecosystem non-commercial, open, and non-exploitative.
|
|
90
|
+
|
|
91
|
+
a. **Grant.** You may make an Extension available to the public — for example, by publishing its source code in a public repository, or by publishing installable packages through a package registry or marketplace — provided You do so in full compliance with this Section 2.2. Distribution under this section is an exception to the restrictions of Section 2 (No Distribution Rights), Section 3.2, Section 4.1, and Section 5.5(a), and remains conditioned on Your continuing compliance.
|
|
92
|
+
|
|
93
|
+
b. **Conditions.** You may distribute an Extension as a Community Extension only if all of the following conditions are satisfied:
|
|
94
|
+
|
|
95
|
+
i. **Separation.** The Extension is a separate work and does not incorporate the Software's source code, except for excerpts that do not exceed one hundred (100) lines in aggregate, which must retain all original copyright and license notices (per Section 4.4).
|
|
96
|
+
|
|
97
|
+
ii. **No Profit.** You must distribute the Extension free of charge, and You must not generate any income or other value from the Extension or its distribution, directly or indirectly. This prohibits, without limitation: any sale, license fee, subscription, paid tier, paywall, or required payment for access to the Extension or any of its features; any advertising or sponsorship revenue attributable to the Extension; and any barter-based arrangement in which access to, features of, or support for the Extension — or any capability derived from the Software or the Extension — is exchanged for anything of value (including goods, services, data, or other consideration). Voluntary donations are permitted only if they are entirely uncoupled from access, features, or support.
|
|
98
|
+
|
|
99
|
+
iii. **Open Distribution.** You must distribute the Extension (including its complete source code) under terms meeting the definition of Open Distribution in Section 1. You may not distribute the Extension in closed-source or proprietary form, you may not withhold or obfuscate its source code, and you may not gate access to its source code behind any payment, registration, or other barrier that prevents free public inspection.
|
|
100
|
+
|
|
101
|
+
iv. **No Circumvention.** An Extension must not be designed or used primarily to circumvent this License — including by enabling or facilitating AI/ML Training, by facilitating use of the Software by Government Entities, or by any other scheme to enjoy rights not granted herein. Sections 6 and 7 apply to Extensions and their distribution.
|
|
102
|
+
|
|
103
|
+
v. **Marks and Non-Endorsement.** Section 8 applies to Extensions. The Extension's name must not include "Lumiverse" or any confusingly similar name, and the Extension must clearly identify itself as an independent, unofficial work that is not affiliated with, endorsed by, or supported by the Licensor, while it may truthfully state that it is designed to interoperate with the Software.
|
|
104
|
+
|
|
105
|
+
c. **Hosted Community Extensions.** You may operate a Community Extension as a hosted service that is accessible to third parties over a network (a "Hosted Community Extension"), including a service that enables third parties to interact with the Software or with instances of the Software operated by You or by such third parties. A Hosted Community Extension is an express exception to the prohibition on Public Use in Section 4.2, subject to all of the following:
|
|
106
|
+
|
|
107
|
+
i. All conditions of this Section 2.2 — including the No Profit condition, which applies equally to hosted access — continue to apply.
|
|
108
|
+
|
|
109
|
+
ii. **Openness or Full Review.** Either (a) the complete source code and configuration of the hosted service — meaning all software and configuration You operate as part of the service, other than the Software itself and unmodified third-party dependencies — is publicly available under Open Distribution terms, with no proprietary blobs, closed components, or withheld portions; or (b) upon the Licensor's reasonable request, You will provide the Licensor complete access to that source code and configuration for compliance review, in full and without gaps. For a Hosted Community Extension, satisfying this subsection also satisfies the Open Distribution condition in (b)(iii). Failure to provide such access when requested is a material breach of this License.
|
|
110
|
+
|
|
111
|
+
iii. **No Substitution for Public Deployment.** The hosted service must remain an Extension within the meaning of Section 1 — a separate work that interoperates with the Software — and must not serve as a mere vehicle for offering the Software itself, or its core functionality as a whole, to the public as the service. Whether a hosted offering is a genuine Extension or a disguised public deployment of the Software shall be determined based on its substance, not its form.
|
|
112
|
+
|
|
113
|
+
d. **Relationship to Section 3 (Contribute-Back).** A Community Extension is not an "Improvement" and is exempt from the contribution requirement of Section 3.1, provided it contains no modification to the Software itself. To the extent an Extension includes changes to the Software's own source code, configuration, or prompt templates, those changes remain Improvements subject to Section 3 in their entirety and must be contributed under the Lumiverse Community License. Nothing in this section obligates You to license Your Extension to the Licensor, though You are welcome to offer it for incorporation into the official project under this License.
|
|
114
|
+
|
|
115
|
+
e. **No Endorsement or Warranty.** Extensions (including Hosted Community Extensions) are third-party works. The Licensor does not author, endorse, or support any Extension, and has no liability for Extensions or their effects (see Sections 12 and 13). You are solely responsible for Your Extension, including for any claims arising from its distribution, operation, or use.
|
|
116
|
+
|
|
117
|
+
f. **Enforcement.** Distributing or operating an Extension in violation of this Section 2.2 constitutes unauthorized distribution of a work derived from or interoperating with the Software, is a material breach of this License, and is subject to termination under Section 14 — including the obligation to cease distribution and operation and to destroy copies.
|
|
118
|
+
|
|
119
|
+
_(In plain terms: you can build plugins, connectors, and integrations for Lumiverse and share them publicly under your own open or source-available license — MIT, GPL, a PolyForm-style license, your choice — and you can even run one as a free hosted service that others can reach over the network, as long as the service's full code is either publicly open or fully reviewable by the project founder with nothing hidden. In exchange: everything must be free — no fees, no ads, no sponsorships, no barter, nothing of value changing hands; the source stays open and inspectable; you don't dress it up as official Lumiverse; and you don't use an integration as a disguise for hosting Lumiverse itself. Changes to Lumiverse's own code still have to come back to the project.)_
|
|
120
|
+
|
|
79
121
|
## 3. Contribution of Modifications and Improvements
|
|
80
122
|
|
|
81
123
|
If You modify, improve, extend, or otherwise change the Software, or create any derivative works based on the Software, **and** those changes enhance or add to the functionality, performance, configuration, or operational behavior of the Software (collectively, "Improvements"), You are **obligated** to contribute those Improvements back to the official Lumiverse project as outlined below:
|
|
@@ -104,9 +146,9 @@ _(In summary: if you improve Lumiverse, you must try to contribute those improve
|
|
|
104
146
|
|
|
105
147
|
## 4. No Unauthorized Distribution or Public Deployment
|
|
106
148
|
|
|
107
|
-
**4.1 No Redistribution:** Except as expressly allowed for Contributions (per Section 3.1) or internal sharing within your organization, You may not distribute, publish, release, or disseminate the Software or any derivative works of the Software to any third party. This prohibition on distribution applies to both source code and compiled/object code forms, and it includes uploading the Software to any public repository, package manager, container registry, or distribution channel that is not controlled by the Licensor. You are not allowed to re-post the code or binaries publicly, include it in any open source project release of your own, or otherwise share it outside the bounds of your own personal or internal use. The **exclusive** right to distribute the Software (or to authorize distribution) belongs to the Licensor (Darran Hall and the Lumiverse organization).
|
|
149
|
+
**4.1 No Redistribution:** Except as expressly allowed for Contributions (per Section 3.1), for Community Extensions (per Section 2.2), or for internal sharing within your organization, You may not distribute, publish, release, or disseminate the Software or any derivative works of the Software to any third party. This prohibition on distribution applies to both source code and compiled/object code forms, and it includes uploading the Software to any public repository, package manager, container registry, or distribution channel that is not controlled by the Licensor. You are not allowed to re-post the code or binaries publicly, include it in any open source project release of your own, or otherwise share it outside the bounds of your own personal or internal use. The **exclusive** right to distribute the Software (or to authorize distribution) belongs to the Licensor (Darran Hall and the Lumiverse organization).
|
|
108
150
|
|
|
109
|
-
**4.2 No Public-Facing Service or Deployment:** You are expressly **forbidden** from making the Software available for use by anyone other than yourself or your Internal Users. This means You **cannot** deploy or use the Software in any public-facing or externally accessible manner — for example, you may not host a website or service powered by Lumiverse for users outside your organization; you may not offer Lumiverse as a service (SaaS) or otherwise enable others to use or interact with Lumiverse functionality over a network; and you may not integrate Lumiverse into a product (open-source or proprietary) that is distributed to or accessible by third parties. Any such public deployment or external availability of the Software is a violation of this License. The only entities permitted to deploy or offer Lumiverse to the public (whether free or for a fee) are the Licensor and those specifically authorized in writing by the Licensor. If you have improvements or features you wish to see in a public Lumiverse service, you are encouraged to contribute them to the official project rather than running your own public instance.
|
|
151
|
+
**4.2 No Public-Facing Service or Deployment:** You are expressly **forbidden** from making the Software available for use by anyone other than yourself or your Internal Users. This means You **cannot** deploy or use the Software in any public-facing or externally accessible manner — for example, you may not host a website or service powered by Lumiverse for users outside your organization; you may not offer Lumiverse as a service (SaaS) or otherwise enable others to use or interact with Lumiverse functionality over a network; and you may not integrate Lumiverse into a product (open-source or proprietary) that is distributed to or accessible by third parties. Any such public deployment or external availability of the Software is a violation of this License. The only entities permitted to deploy or offer Lumiverse to the public (whether free or for a fee) are the Licensor and those specifically authorized in writing by the Licensor. If you have improvements or features you wish to see in a public Lumiverse service, you are encouraged to contribute them to the official project rather than running your own public instance. This prohibition is subject to an express exception for Hosted Community Extensions operated in compliance with Section 2.2(c): publishing or distributing an Extension is not a public deployment of the Software, and a qualifying Hosted Community Extension may enable third parties to interact with the Software over a network. However, hosting or offering the Software itself — or its core functionality as a whole — to the public remains exclusively reserved to the Licensor and those it authorizes in writing, and using an Extension as a mere vehicle for such hosting is a circumvention of this License.
|
|
110
152
|
|
|
111
153
|
**4.3 Internal Use Sharing:** If you are using the Software internally (e.g., within a company or research lab), you may allow access to the Software by your colleagues, employees, or contractors as needed for that internal use, and you may share modified versions with them, **provided** this remains solely within your organization and they are bound to respect the terms of this License. Such internal sharing is not considered "distribution" for the purposes of this License. However, you must ensure that anyone within your organization who receives a copy of the Software or modified Software is made aware of, and agrees to abide by, the terms of this License (including the prohibition on further distribution and the requirement to keep changes under this License). If you provide any portion of the Software to your internal team, you should include a copy of this License and any relevant copyright notices.
|
|
112
154
|
|
|
@@ -126,7 +168,7 @@ _(In summary: if you improve Lumiverse, you must try to contribute those improve
|
|
|
126
168
|
|
|
127
169
|
a. The Lumiverse Community License is a custom source-available license that is not directly compatible with major open-source licenses including GPL, MIT, Apache, or BSD licenses. This means:
|
|
128
170
|
|
|
129
|
-
i. You cannot incorporate code licensed under the Lumiverse Community License into projects that are distributed under open-source licenses without separate permission from the Licensor.
|
|
171
|
+
i. You cannot incorporate code licensed under the Lumiverse Community License into projects that are distributed under open-source licenses without separate permission from the Licensor. This restriction does not apply to Community Extensions distributed in compliance with Section 2.2 (subject to the excerpt limit in Section 2.2(b)(i)).
|
|
130
172
|
|
|
131
173
|
ii. You cannot relicense Lumiverse or derivative works under any open-source license.
|
|
132
174
|
|
|
@@ -140,6 +182,8 @@ c. **Integration with Other Software:** You may create integration points or wra
|
|
|
140
182
|
|
|
141
183
|
iii. You do not attempt to circumvent the restrictions of this License through such integration.
|
|
142
184
|
|
|
185
|
+
The separate right to publish, distribute, and host such integrations as Community Extensions is set out in Section 2.2.
|
|
186
|
+
|
|
143
187
|
d. **Dual Licensing:** If you wish to combine the Software with code under incompatible licenses for distribution, or to use the Software in ways not permitted by this License, you must negotiate a separate commercial license with the Licensor as described in Section 5.2.
|
|
144
188
|
|
|
145
189
|
The Licensor may, at its sole discretion, grant exceptions to these compatibility restrictions on a case-by-case basis, particularly for non-commercial or research purposes.
|
|
@@ -266,7 +310,7 @@ This section shall survive the termination of this License. Nothing in this Lice
|
|
|
266
310
|
|
|
267
311
|
## 16. License Versioning and Updates
|
|
268
312
|
|
|
269
|
-
**16.1 Version Identification:** This Lumiverse Community License is designated as Version 2.
|
|
313
|
+
**16.1 Version Identification:** This Lumiverse Community License is designated as Version 2.1. Each version of the License will be clearly marked with a version number. The version number will be incremented for substantial changes to the License terms.
|
|
270
314
|
|
|
271
315
|
**16.2 License Updates:** The Licensor may publish updated or revised versions of this License from time to time. New versions will be similar in spirit to the present version but may differ in detail to address new concerns or issues. Each version will be distinguished by a unique version number.
|
|
272
316
|
|
package/package.json
CHANGED
package/src/api.ts
CHANGED
|
@@ -1556,6 +1556,8 @@ export interface RegexScriptDTO {
|
|
|
1556
1556
|
sort_order: number;
|
|
1557
1557
|
description: string;
|
|
1558
1558
|
folder: string;
|
|
1559
|
+
/** Host-validated version badge for this Spindle-owned folder, or null when unversioned/unfiled. */
|
|
1560
|
+
readonly folder_version?: string | null;
|
|
1559
1561
|
metadata: Record<string, unknown>;
|
|
1560
1562
|
created_at: number;
|
|
1561
1563
|
updated_at: number;
|
|
@@ -1595,6 +1597,13 @@ export interface RegexScriptCreateDTO {
|
|
|
1595
1597
|
sort_order?: number;
|
|
1596
1598
|
description?: string;
|
|
1597
1599
|
folder?: string;
|
|
1600
|
+
/**
|
|
1601
|
+
* Optional version label rendered on the regex folder created by this
|
|
1602
|
+
* extension. It is applied only when `folder` is non-empty. Omit it for the
|
|
1603
|
+
* normal unversioned folder display; pass null or an empty string on update
|
|
1604
|
+
* to clear an existing label.
|
|
1605
|
+
*/
|
|
1606
|
+
folder_version?: string | null;
|
|
1598
1607
|
metadata?: Record<string, unknown>;
|
|
1599
1608
|
script_id?: string;
|
|
1600
1609
|
}
|
package/src/permissions.ts
CHANGED
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
* (eval / new Function) for runtime-compiling frameworks.
|
|
29
29
|
* - "final_response" — replace the authoritative assistant response from
|
|
30
30
|
* an interceptor (privileged; never auto-granted)
|
|
31
|
+
* - "regex_scripts_unrestricted" — update/delete any regex script in the user's
|
|
32
|
+
* library (privileged; additive to "regex_scripts")
|
|
31
33
|
*/
|
|
32
34
|
export type SpindlePermission =
|
|
33
35
|
| "generation"
|
|
@@ -46,6 +48,7 @@ export type SpindlePermission =
|
|
|
46
48
|
| "presets"
|
|
47
49
|
| "world_books"
|
|
48
50
|
| "regex_scripts"
|
|
51
|
+
| "regex_scripts_unrestricted"
|
|
49
52
|
| "databanks"
|
|
50
53
|
| "memories"
|
|
51
54
|
| "media"
|
|
@@ -76,6 +79,7 @@ export const ALL_PERMISSIONS: readonly SpindlePermission[] = [
|
|
|
76
79
|
"presets",
|
|
77
80
|
"world_books",
|
|
78
81
|
"regex_scripts",
|
|
82
|
+
"regex_scripts_unrestricted",
|
|
79
83
|
"databanks",
|
|
80
84
|
"memories",
|
|
81
85
|
"media",
|
package/src/spindle-api.ts
CHANGED
|
@@ -1022,7 +1022,12 @@ export interface SpindleAPI {
|
|
|
1022
1022
|
* access to unbound scripts created by the calling extension. Legacy or
|
|
1023
1023
|
* unattributed scripts, preset-bound scripts, and scripts owned by another
|
|
1024
1024
|
* extension remain readable and executable but cannot be updated or deleted.
|
|
1025
|
+
* Extensions that also hold the privileged "regex_scripts_unrestricted"
|
|
1026
|
+
* permission may update or delete any script in the user's library. The
|
|
1027
|
+
* elevated permission is additive and does not replace "regex_scripts".
|
|
1025
1028
|
* Check `RegexScriptDTO.can_mutate` before presenting mutation controls.
|
|
1029
|
+
* Set `RegexScriptCreateDTO.folder_version` alongside a non-empty `folder`
|
|
1030
|
+
* to render a version badge for an extension-installed regex folder.
|
|
1026
1031
|
* Uses the same shape Lumiverse applies internally during prompt assembly,
|
|
1027
1032
|
* response baking, and display rendering.
|
|
1028
1033
|
* For user-scoped extensions, userId is inferred from the extension owner.
|
|
@@ -10,6 +10,11 @@ test("final-response permission is valid and publicly declared", () => {
|
|
|
10
10
|
expect(isValidPermission("final_response")).toBe(true);
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
+
test("unrestricted regex mutation permission is valid and publicly declared", () => {
|
|
14
|
+
expect(ALL_PERMISSIONS).toContain("regex_scripts_unrestricted");
|
|
15
|
+
expect(isValidPermission("regex_scripts_unrestricted")).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
|
|
13
18
|
test("host compatibility constants are canonical and immutable", () => {
|
|
14
19
|
expect(SPINDLE_COMPATIBILITY_ERROR_CODE).toBe("SPINDLE_COMPATIBILITY_ERROR");
|
|
15
20
|
expect(SPINDLE_HOST_CAPABILITIES).toEqual({
|
|
@@ -99,6 +99,16 @@ void result;
|
|
|
99
99
|
void legacyManifest;
|
|
100
100
|
|
|
101
101
|
declare const spindle: SpindleAPI;
|
|
102
|
+
const versionedRegex = spindle.regex_scripts.create({
|
|
103
|
+
name: "Versioned extension regex",
|
|
104
|
+
find_regex: "example",
|
|
105
|
+
folder: "Extension scripts",
|
|
106
|
+
folder_version: "2.4.0",
|
|
107
|
+
});
|
|
108
|
+
versionedRegex.then((script) => {
|
|
109
|
+
const folderVersion: string | null | undefined = script.folder_version;
|
|
110
|
+
void folderVersion;
|
|
111
|
+
});
|
|
102
112
|
const backendHost: SpindleHostDescriptorV1 = spindle.host;
|
|
103
113
|
// @ts-expect-error the host descriptor is exposed as a readonly API property
|
|
104
114
|
spindle.host = host;
|