@descix/frqtl-node 0.6.0 → 0.6.1-p1.2
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/CLAUDE.md +1 -1
- package/LICENSE.md +79 -63
- package/README.md +3 -2
- package/dist/dist-manifest.json +8 -6
- package/dist/shim/engine/router.js +10 -17
- package/dist/shim/engine/site-graph.js +36 -0
- package/dist/shim/host/host-view.js +6 -2
- package/dist/shim/project/specifiers.js +5 -3
- package/dist/shim/registry/exhibits.js +1 -1
- package/dist/shim/registry/index.js +3 -0
- package/dist/shim/registry/showcase-link.js +61 -0
- package/llms.txt +2 -2
- package/package.json +3 -2
package/CLAUDE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A discrete cellular-automata physics engine (compiled Rust → WASM) for node: the same modules as
|
|
4
4
|
`@descix/frqtl-web` (one source, built twice), plus the node engine door `bootNode` and the hosted eyes.
|
|
5
|
-
`0.6.
|
|
5
|
+
`0.6.1-p1.2` (npm dist-tag `next`). Node ≥ 22.12.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
npm install @descix/frqtl-node
|
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
<!-- DeSciX Community License and Membership Agreement (DCMA), version 1. Rendered from its canonical source; do not edit by hand. -->
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# DeSciX Community License and Membership Agreement
|
|
4
|
+
|
|
5
|
+
Version 1, revised 2026-10-19: Section 3.3 (Pre-existing Material Under Separate Licenses) added; no other wording changed.
|
|
6
|
+
|
|
7
|
+
## 1 Preamble – The DeSciX Virtual University & App Store: Internal Collaboration, External Value Return
|
|
4
8
|
|
|
5
9
|
Welcome to the DeSciX Community, a dynamic ecosystem designed as a **virtual university and collaborative app store** for decentralized science (DeSci). This agreement outlines the contractual relationship between its members for the creation, sharing, and utilization of creative works, often referred to as "Intellectual Property" (IP) under relevant laws. Within this framework, certain IP is made available to the members who agree to these terms—the "Community."
|
|
6
10
|
|
|
@@ -20,11 +24,11 @@ The DeSciX Community, implemented as a DAO, is open for anyone to join, subject
|
|
|
20
24
|
|
|
21
25
|
The DeSciX Community Source and Services Licenses (DCSSL) is a term of convenience for referencing sections of the DCMA (encompassing the DCSL and DPLA terms defined later) and is not intended to supersede or limit the DCMA in any way. This license agreement draws inspiration from established open-source licenses, adapted for the unique structure and economic philosophy of DeSciX. The DeSciX Community License and Membership Agreement (DCMA), which you are reading, outlines the terms for participating in the DeSciX DAO and creating or joining COMMUNITIES. Only registered token holders who have accepted the DCMA are considered members of the DeSciX DAO and, similarly, only DCMA Members who are token holders of a Community DAO established under the DCMA are Member licensees of that Community under the DCMA relevant to that community.
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
### Nature of Tokens: License Access Keys, Not Equity
|
|
24
28
|
|
|
25
29
|
Tokens within the DeSciX ecosystem (DeSciX Tokens and COMMUNITY Tokens) are strictly **License Access Keys** and qualification criteria for DAO governance mechanics. They represent a revocable license to access services and participate in governance parameters. **Tokens do NOT convey title, ownership, intellectual property rights, or equity interest in the DeSciX platform, the DeSciX DAO, any COMMUNITY, or the underlying Code and IP.** Voting rights attached to tokens are limited to the specific governance parameters defined in the DPoS White Paper and do not extend to corporate governance or ownership control of the Licensor entities.
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
### Condition Precedent: No Acceptance, No Rights
|
|
28
32
|
|
|
29
33
|
All licenses, permissions, and rights described in this Agreement (including the DCSL and DPLA terms) are granted *only* upon: (i) Your affirmative acceptance of this Agreement, as recorded by the DeSciX platform, and (ii) satisfaction of DAO Membership requirements, including qualifying token ownership.
|
|
30
34
|
|
|
@@ -32,11 +36,11 @@ Holding a Token without affirmatively accepting this Agreement constitutes statu
|
|
|
32
36
|
|
|
33
37
|
**Absent such acceptance and membership, no license is granted**—express, implied, statutory, or equitable—and any access, copying, use, distribution, derivation, aggregation, training, commercialization, or other exploitation of DeSciX Community Software, DeSciX Source Code, DPaaS Service Offerings, Community IP, Apps, or Covered Works constitutes unauthorized use and infringement.
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
### Mandatory Tokenized Economics
|
|
36
40
|
|
|
37
41
|
The licenses granted under this Agreement are expressly conditioned upon Your compliance with the requirement that all economic activity involving Community IP, DeSciX Community Software, DPaaS Service Offerings, or Apps—including access, usage, monetization, licensing, sublicensing, resale, bundling, advertising monetization, subscription monetization, or derivative commercialization—**be routed through the DeSciX token economy** using the relevant DeSciX and/or COMMUNITY tokens, unless expressly approved in writing by the DeSciX DAO or required by law.
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
### 1.1 About the DeSciX Community
|
|
40
44
|
|
|
41
45
|
Think of the DeSciX Community as a collaborative **virtual university**. Its guiding principles reflect this academic and innovative spirit:
|
|
42
46
|
|
|
@@ -52,9 +56,9 @@ Think of the DeSciX Community as a collaborative **virtual university**. Its gui
|
|
|
52
56
|
|
|
53
57
|
Membership in the DeSciX Community grants Members access to the “university’s” resources, including:
|
|
54
58
|
|
|
55
|
-
1. The cloud-based DeSciX Platform as a Service (DPaaS) – the core **university infrastructure** – under the terms of the DeSciX Platform as a Service License Agreement (DPLA) (Section
|
|
59
|
+
1. The cloud-based DeSciX Platform as a Service (DPaaS) – the core **university infrastructure** – under the terms of the DeSciX Platform as a Service License Agreement (DPLA) (Section 3.4).
|
|
56
60
|
|
|
57
|
-
2. Access for qualifying Members (typically Private COMMUNITIES) to the DeSciX Source Code – foundational **research tools and code libraries** – under the terms of the DeSciX Community Source Code License (Section
|
|
61
|
+
2. Access for qualifying Members (typically Private COMMUNITIES) to the DeSciX Source Code – foundational **research tools and code libraries** – under the terms of the DeSciX Community Source Code License (Section 3.1), primarily while their COMMUNITY ("College/Department") is in the developmental (Private) stage.
|
|
58
62
|
|
|
59
63
|
3. A standardized framework for token creation, distribution, and administration – the **university’s internal economic system** for resource exchange.
|
|
60
64
|
|
|
@@ -94,9 +98,9 @@ The major purposes of this agreement are to:
|
|
|
94
98
|
|
|
95
99
|
- **Reinforce the “Open Inside, Value-Return Outside” Principle:** Clearly state the community’s intent that while internal collaboration is maximized, any commercialization or use of community-derived IP *outside* the DeSciX Community should ideally contribute value back to the relevant token economies. Specific mechanisms or requirements for this value return may be detailed in DAO policies or the DPoS White Paper.
|
|
96
100
|
|
|
97
|
-
- **Explicitly disclaim liability** for the inherent uncertainties in scientific research and AI development conducted on the platform (further detailed in Sections
|
|
101
|
+
- **Explicitly disclaim liability** for the inherent uncertainties in scientific research and AI development conducted on the platform (further detailed in Sections 11, 12, and 5). Science involves experimentation and potential errors; the platform provides tools “AS IS,” and users assume the risks associated with their use.
|
|
98
102
|
|
|
99
|
-
|
|
103
|
+
### 1.2 Examples
|
|
100
104
|
|
|
101
105
|
- **End User Accessing an App:** An end user Member ("student" or "researcher") uses an AI analysis App ("specialized software tool") developed by a Public COMMUNITY ("Established Department"). The user pays for the service in tokens, which are distributed according to the COMMUNITY’s rules and the DeSciX DPoS White Paper (potentially involving the COMMUNITY, the DeSciX DAO for platform fees, App developers, etc.). The user must use the App responsibly and in good faith, adhering to terms of service. Misuse could lead to suspension or loss of staked tokens.
|
|
102
106
|
|
|
@@ -126,7 +130,7 @@ The major purposes of this agreement are to:
|
|
|
126
130
|
|
|
127
131
|
- **Generic Simulation Engine:** A basic, configurable simulation framework (e.g., for particle systems) that other COMMUNITIES can build upon for more specific applications.
|
|
128
132
|
|
|
129
|
-
|
|
133
|
+
## 2 Membership Agreement Details
|
|
130
134
|
|
|
131
135
|
Membership in the DeSciX DAO ("Enrollment in the DeSciX University") is offered at the sole discretion of the DeSciX DAO, according to its governance processes. By registering and affirmatively accepting this DeSciX Community License and Membership Agreement (DCMA), You become a Member of the DeSciX Community.
|
|
132
136
|
|
|
@@ -138,7 +142,7 @@ As a Member, you are encouraged to contribute actively to the DeSciX ecosystem (
|
|
|
138
142
|
|
|
139
143
|
A primary objective of the DeSciX DAO is to serve as an enabling platform – an **App Store** built upon a **virtual university** framework – for COMMUNITIES and their associated Apps (DApps). The Community Source IP, licensed to the DeSciX DAO, represents the foundational technology ("core curriculum" and "research infrastructure") provided for the benefit of creating these COMMUNITIES ("Colleges/Departments") and Apps ("Courses/Projects").
|
|
140
144
|
|
|
141
|
-
|
|
145
|
+
### 2.1 Structure of Community Membership: Root and Branches
|
|
142
146
|
|
|
143
147
|
The DeSciX ecosystem operates on a recursive (fractal) membership model.
|
|
144
148
|
|
|
@@ -154,9 +158,9 @@ As the DAO Creator of a COMMUNITY, you are initially the Community Managing Dele
|
|
|
154
158
|
|
|
155
159
|
1. While the COMMUNITY is designated as Private ("in early development/research phase"), its native token will not be publicly tradable.
|
|
156
160
|
|
|
157
|
-
2. The COMMUNITY’s tokens will only become eligible for public trading after its core Intellectual Property (IP) has been deemed perfected to established standards (e.g., comparable to US constitutional standards for patents, copyright), as assessed through the DAO’s defined processes (see Section
|
|
161
|
+
2. The COMMUNITY’s tokens will only become eligible for public trading after its core Intellectual Property (IP) has been deemed perfected to established standards (e.g., comparable to US constitutional standards for patents, copyright), as assessed through the DAO’s defined processes (see Section 2.2 - IP Perfection), and the COMMUNITY demonstrates a viable operational model.
|
|
158
162
|
|
|
159
|
-
|
|
163
|
+
### 2.2 Definitions
|
|
160
164
|
|
|
161
165
|
“DeSciX” shall refer to the decentralized autonomous organization (DAO) and the associated licensing framework that governs the DeSciX Community, conceptualized as a **virtual university and app store**.
|
|
162
166
|
|
|
@@ -168,6 +172,8 @@ As the DAO Creator of a COMMUNITY, you are initially the Community Managing Dele
|
|
|
168
172
|
|
|
169
173
|
“Licensee” means a Member who has satisfied the conditions precedent and has been granted the rights and licenses under this Agreement.
|
|
170
174
|
|
|
175
|
+
“Pre-existing Material” means any work, file, dataset, document or code that is present in a repository, package or other collection together with Community IP or a Covered Work and that was created by a third party and made available under a license other than this Agreement (an “Original License”), including public-domain and historical primary-source material to which no license attaches.
|
|
176
|
+
|
|
171
177
|
“Non-Member” means any individual or entity that does not satisfy the definition of DAO Member.
|
|
172
178
|
|
|
173
179
|
“Community IP” means any copyrighted work, patentable invention, database right, compilation, documentation, dataset, workflow, prompt, model artifact, or other protectable work that is contributed to, hosted by, or made available through the DeSciX ecosystem, or that incorporates, derives from, or aggregates DeSciX Community Software, DPaaS Service Offerings, or other Community contributions.
|
|
@@ -196,7 +202,7 @@ As the DAO Creator of a COMMUNITY, you are initially the Community Managing Dele
|
|
|
196
202
|
|
|
197
203
|
"Token-Based Transactions" shall refer to the exchange of tokens for services or value within the DeSciX ecosystem, governed by the DeSciX DPoS White Paper.
|
|
198
204
|
|
|
199
|
-
“DeSciX Community Source and Services Licenses” or “DCSSL” shall collectively refer to the licenses governing participation and IP within the DeSciX Community, primarily the DeSciX Community Source Code License (DCSL - Section
|
|
205
|
+
“DeSciX Community Source and Services Licenses” or “DCSSL” shall collectively refer to the licenses governing participation and IP within the DeSciX Community, primarily the DeSciX Community Source Code License (DCSL - Section 3.1) and the DeSciX Platform as a Service License Agreement (DPLA - Section 3.4). The DCSSL is a term of convenience for referencing these sections of the DCMA and is not intended to supersede or limit the DCMA in any way.
|
|
200
206
|
|
|
201
207
|
“DeSciX Platform as a Service (DPaaS)” shall refer to the cloud-based infrastructure provided by the DeSciX DAO, serving as the **core technological backbone of the University**.
|
|
202
208
|
|
|
@@ -214,25 +220,25 @@ As the DAO Creator of a COMMUNITY, you are initially the Community Managing Dele
|
|
|
214
220
|
|
|
215
221
|
“DAO Participation Agreement” shall refer to the specific agreement governing membership and operation *within* a particular COMMUNITY, established by its DAO Creator in alignment with the overarching DCMA and DeSciX DAO rules. It serves as an addendum to the DCMA containing variable terms (e.g., fees, specific tokens) for that COMMUNITY.
|
|
216
222
|
|
|
217
|
-
**“AS IS” Nature of Science and AI:** All software, tools, data, AI models, and services provided through the DeSciX platform (including DPaaS and Apps) are offered strictly "AS IS," without warranty. The DeSciX ecosystem is a platform for research, development, and experimentation. Users acknowledge the inherent uncertainties, potential for errors, and exploratory nature of science and AI. Liability for outcomes, accuracy, or fitness for purpose is explicitly disclaimed as further detailed in Sections
|
|
223
|
+
**“AS IS” Nature of Science and AI:** All software, tools, data, AI models, and services provided through the DeSciX platform (including DPaaS and Apps) are offered strictly "AS IS," without warranty. The DeSciX ecosystem is a platform for research, development, and experimentation. Users acknowledge the inherent uncertainties, potential for errors, and exploratory nature of science and AI. Liability for outcomes, accuracy, or fitness for purpose is explicitly disclaimed as further detailed in Sections 11 and 12.
|
|
218
224
|
|
|
219
225
|
**Interpretation of Obligations.** Any obligation phrased as a covenant (e.g., "You shall," "You agree to") regarding the use of IP, Services, or participation in the DeSciX ecosystem shall be interpreted as a condition of the license granted herein. Breach of such obligation results in automatic revocation of the applicable license.
|
|
220
226
|
|
|
221
|
-
|
|
227
|
+
### 2.3 Notice
|
|
222
228
|
|
|
223
|
-
|
|
229
|
+
(a) **To DeSciX Community Members**. The Managing Delegate (the "MD"), acting on behalf of the DeSciX DAO where appropriate, may provide any notice to Members under this Agreement by: (i) posting a notice on the designated DeSciX platform website (e.g., DeSciX.net or its successor); or (ii) sending a message to the email address associated with the Member’s account. Notices posted on the website are effective upon posting. Notices sent by email are effective when the email is sent. It is the Member’s responsibility to maintain a current email address associated with their account. Members are deemed to have received any email sent to their registered email address upon dispatch, regardless of actual receipt.
|
|
224
230
|
|
|
225
|
-
|
|
231
|
+
(b) **To DeSciX DAO / Managing Delegate**. To provide notice to the DeSciX DAO or the Managing Delegate under this Agreement, a Member must use the following methods: (i) email to the official notices address designated by the MD (e.g., notices@DeSciX.net or its successor), which will be monitored by the MD; or (ii) personal delivery, overnight courier, or registered/certified mail to the current address of the Managing Delegate (initially Aspire GP, LLC, 100 North Queen Street, Suite 300, Lancaster, PA 17603, subject to updates posted on the DeSciX platform website). The MD may update the contact information via notice on the platform website. Notices by personal delivery are effective immediately. Notices by email are effective one business day after sending. Notices by registered/certified mail are effective three business days after sending.
|
|
226
232
|
|
|
227
|
-
|
|
233
|
+
(c) **Language**. All communications and notices pursuant to this Agreement must be in English.
|
|
228
234
|
|
|
229
|
-
|
|
235
|
+
## 3 Community Licenses: From DeSciX DAO’s to Members
|
|
230
236
|
|
|
231
|
-
|
|
237
|
+
### 3.1 DeSciX Community Source Code License (DCSL)
|
|
232
238
|
|
|
233
|
-
This DeSciX Community Source Code License (DCSL) is a term of convenience for referencing this section of the DCMA and is not intended to supersede or limit the DCMA in any way. The DCSL governs Your use of the **core DeSciX Community Source Code** provided by the DeSciX DAO – the foundational software (“university infrastructure code,” “shared lab software”) made available to Members for building within the ecosystem. This license applies *only* to You as a **DAO Member** of the DeSciX DAO granted access to this specific Source Code. Provisions related to “Covered Works” (defined below) derived from this Source Code survive termination of Your membership for the duration of the copyright term, as specified herein. **This license primarily governs the core platform code; it does NOT automatically govern the entirety of code within distinct Applications (Apps) built by Members, although Apps may utilize components licensed under the DCSL.** The terms for modifying, distributing, or forking specific Apps are often set by the App’s Creator (see Section
|
|
239
|
+
This DeSciX Community Source Code License (DCSL) is a term of convenience for referencing this section of the DCMA and is not intended to supersede or limit the DCMA in any way. The DCSL governs Your use of the **core DeSciX Community Source Code** provided by the DeSciX DAO – the foundational software (“university infrastructure code,” “shared lab software”) made available to Members for building within the ecosystem. This license applies *only* to You as a **DAO Member** of the DeSciX DAO granted access to this specific Source Code. Provisions related to “Covered Works” (defined below) derived from this Source Code survive termination of Your membership for the duration of the copyright term, as specified herein. **This license primarily governs the core platform code; it does NOT automatically govern the entirety of code within distinct Applications (Apps) built by Members, although Apps may utilize components licensed under the DCSL.** The terms for modifying, distributing, or forking specific Apps are often set by the App’s Creator (see Section 1.2 and Clause 4 below).
|
|
234
240
|
|
|
235
|
-
|
|
241
|
+
#### Definitions within the DCSL
|
|
236
242
|
|
|
237
243
|
- “This License” refers to the DeSciX Community Source Code License (DCSL).
|
|
238
244
|
|
|
@@ -254,11 +260,11 @@ This DeSciX Community Source Code License (DCSL) is a term of convenience for re
|
|
|
254
260
|
|
|
255
261
|
- “Appropriate Legal Notices” in an interface includes a visible copyright notice and a statement that the work is provided without warranty (unless specified otherwise), that it may be conveyed under This License, and how to view This License.
|
|
256
262
|
|
|
257
|
-
- **“App” or “Application”:** As defined in Section
|
|
263
|
+
- **“App” or “Application”:** As defined in Section 2.2, a distinct piece of software created by a Member/COMMUNITY, potentially utilizing The Program or DPaaS services. The App’s unique code, separate from The Program’s source, is not automatically governed by all terms of This License (specifically contribution requirements under Clause 3), unless explicitly stated otherwise by the App’s Creator or if the App itself is released under the DCSL.
|
|
258
264
|
|
|
259
265
|
- **“App Creator”:** The Member or entity primarily responsible for developing a specific App. App Creators generally retain rights to determine licensing and forking terms for their own App’s unique code, subject to the terms of This License for any incorporated Program components.
|
|
260
266
|
|
|
261
|
-
|
|
267
|
+
#### DCSL Terms and Conditions
|
|
262
268
|
|
|
263
269
|
1. **Source Code Definitions**. The “source code” for a work means the preferred form for making modifications. “Object code” means any non-source form. A “Standard Interface” is one defined by a recognized standards body or widely used in a programming language community. “System Libraries” of an executable include components needed for OS interaction or standard interfaces but aren’t part of the work itself. A “Major Component” is an essential part of the OS, compiler, or interpreter. The “Corresponding Source” for object code means all source needed to generate, install, and run the object code and modify the work (including scripts, interface definitions, linked subprograms source), excluding System Libraries and general-purpose tools. Corresponding Source doesn’t include things regeneratable from other parts. The Corresponding Source for source code is the same work.
|
|
264
270
|
|
|
@@ -268,7 +274,7 @@ This DeSciX Community Source Code License (DCSL) is a term of convenience for re
|
|
|
268
274
|
|
|
269
275
|
Conveying Covered Works under other circumstances is allowed only under the conditions below (Clauses 4, 5). Sublicensing is generally not permitted by This License itself (Clause 9 addresses downstream recipients). Building distinct Apps *using* The Program is permitted, but conveying or modifying the App itself may be subject to terms set by the App Creator in addition to the terms of This License applicable to the included Program components.
|
|
270
276
|
|
|
271
|
-
3. **Modifications to Core Source Code Belong To The Community**.
|
|
277
|
+
3. **Modifications to Core Source Code Belong To The Community**. This clause applies specifically to modifications made *directly to the DeSciX Community Source Code (The Program)* itself, typically by modifying the source files obtained from the official DeSciX repositories. Any such modifications You make to The Program constitute a modified version or a work based on The Program. The grant of rights to modify The Program is expressly conditioned upon your contribution of the Corresponding Source of these direct modifications back to the DeSciX DAO (for the benefit of The Licensor) by submitting them to the designated DeSciX Community software repository (e.g., GitHub) within a reasonable timeframe set by the DAO. This ensures improvements to the core platform benefit the entire Community. These contributed modifications become part of the DeSciX Community Source Code, owned by The Licensor and licensed under the DCSL.
|
|
272
278
|
|
|
273
279
|
**Crucially, this obligation does NOT automatically extend to novel source code You write for a distinct App** that merely *uses* or *links* to The Program (or its libraries) via APIs or other standard mechanisms without directly incorporating modified Program source code into the App’s own files. Such distinct App code remains under the copyright of its author(s) unless they explicitly contribute it to the DAO or license it under the DCSL or compatible terms. Failure to promptly submit required contributions of modifications *to The Program* constitutes a violation of This License and may lead to termination under Clause 7.
|
|
274
280
|
|
|
@@ -298,29 +304,29 @@ This DeSciX Community Source Code License (DCSL) is a term of convenience for re
|
|
|
298
304
|
|
|
299
305
|
Other non-permissive terms ("further restrictions") generally cannot be added. If You add terms, state them clearly in relevant source files or documentation.
|
|
300
306
|
|
|
301
|
-
7. **DCSL Termination**.
|
|
307
|
+
7. **DCSL Termination**. You may not propagate or modify The Program except as allowed by This License. Any attempt otherwise is void and automatically terminates Your rights under This License (including patent licenses under Clause 10). If You cease violation, Your license is reinstated provisionally (unless the copyright holder explicitly terminates) and permanently if the holder doesn’t notify You of the violation within 60 days of cessation. Permanent reinstatement also occurs if You cure a first-time violation within 30 days of receiving notice. Termination of Your rights under this section may impact downstream non-members who received copies from You. Disputes under this section may be settled by binding arbitration per DAO rules.
|
|
302
308
|
|
|
303
309
|
8. **Acceptance Required for Copying**. You must accept This License and be a **DAO Member** to receive or use copies of The Program.
|
|
304
310
|
|
|
305
311
|
**Non-Members receive no license rights of any kind**. Any copying, access, use, propagation, aggregation, training, distribution, or modification of The Program or any Covered Work by a Non-Member constitutes unauthorized use and infringement. Such actions infringe copyright if You do not accept This License or violate its terms.
|
|
306
312
|
|
|
307
|
-
9. **Automatic Licensing of Downstream Recipients**.
|
|
313
|
+
9. **Automatic Licensing of Downstream Recipients**. Downstream licenses are granted *only* to recipients who are DAO Members.
|
|
308
314
|
|
|
309
315
|
Non-Members receive no downstream license and no permissions whatsoever.
|
|
310
316
|
|
|
311
317
|
Each time You convey a Covered Work (e.g., an object code library derived from The Program, potentially as part of an App), the recipient automatically receives a license *from the original licensors of The Program* to run, modify (subject to Clause 3 if they modify The Program components), and propagate *the included Program components*, subject to This License. You are not responsible for enforcing third-party compliance. **This automatic license applies only to the components derived from The Program.** It does NOT automatically grant the recipient rights to any distinct App code created by You or another App Creator, unless that App code is also explicitly licensed under DCSL or compatible terms by its creator. If propagation results from an "entity transaction" (merger, acquisition), the receiving party gets the downstream license for the Program components but generally does not automatically gain rights to the Corresponding Source held by the predecessor, unless separately arranged.
|
|
312
318
|
|
|
313
|
-
10. **Patents Related to The Program**.
|
|
319
|
+
10. **Patents Related to The Program**. A “contributor” licenses their version of The Program under This License. A contributor’s “essential patent claims” are those they own/control (now or later) necessarily infringed by permitted use of their contributed version of *The Program*, excluding claims infringed only by *further modification*. Each contributor grants DeSciX Community members a non-exclusive, worldwide, royalty-free patent license under their essential claims related to their contributed Program version, allowing licensed activities with that version. A "patent license" is an agreement not to enforce a patent. If You convey a Covered Work and grant a patent license related to it, that license extends automatically to all DeSciX Community members receiving the work. Discriminatory patent licenses (those restricting DCSL rights) are generally prohibited in connection with conveying Covered Works. This License doesn’t limit implied licenses or patent defenses.
|
|
314
320
|
|
|
315
321
|
11. **No Surrender of Others’ Freedom**. If external conditions (court orders, agreements) contradict This License, they don’t excuse You from its terms. If You cannot satisfy both This License and other obligations simultaneously, You may not convey the Covered Work at all.
|
|
316
322
|
|
|
317
|
-
12. **Notice Integration**. The notice provisions for This License are governed by Section
|
|
323
|
+
12. **Notice Integration**. The notice provisions for This License are governed by Section 2.3 of the main DeSciX Community License and Membership Agreement (DCMA).
|
|
318
324
|
|
|
319
325
|
13. **Revised License Versions**. The DeSciX DAO may publish revised versions of the DCSL. You may follow the version specified for The Program or any later version published by the DAO. Later versions may offer different permissions but won’t impose additional obligations retroactively.
|
|
320
326
|
|
|
321
|
-
14. **Disclaimer of Warranty**.
|
|
327
|
+
14. **Disclaimer of Warranty**. TO THE EXTENT PERMITTED BY LAW, THE PROGRAM (DeSciX COMMUNITY SOURCE CODE) AND ANY COVERED WORKS ARE PROVIDED “AS IS.” THE DeSciX DAO, CONTRIBUTORS, AND OTHER PARTIES PROVIDE THE PROGRAM WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS DISCLAIMER EXTENDS TO ANY DATA PROCESSED OR GENERATED BY, AND ANY AI FUNCTIONALITY WITHIN OR ACCESSED THROUGH, THE PROGRAM OR APPS BUILT UPON IT. THE ENTIRE RISK AS TO THE QUALITY, PERFORMANCE, ACCURACY, AND RESULTS (ESPECIALLY IN SCIENTIFIC OR AI CONTEXTS) OF THE PROGRAM AND ANY APPS USING IT LIES WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. (See also Sections 11, 12, and 2.2).
|
|
322
328
|
|
|
323
|
-
15. **Limitation of Liability**.
|
|
329
|
+
15. **Limitation of Liability**. IN NO EVENT UNLESS REQUIRED BY LAW OR AGREED IN WRITING WILL ANY COPYRIGHT HOLDER, CONTRIBUTOR, THE DeSciX DAO, THE MD, OR ANY PARTY WHO MODIFIES/CONVEYS THE PROGRAM BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR INABILITY TO USE THE PROGRAM OR COVERED WORKS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA, DATA INACCURACY, BUSINESS INTERRUPTION, FAILED SCIENTIFIC EXPERIMENTS, INCORRECT AI OUTPUTS, LOSSES SUSTAINED BY YOU OR THIRD PARTIES, OR FAILURE TO OPERATE WITH OTHER PROGRAMS), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE EXPERIMENTAL AND EVOLVING NATURE OF DeSciX, DECENTRALIZED SCIENCE, AND AI MEANS ERRORS AND UNEXPECTED OUTCOMES ARE POSSIBLE; YOU USE THE PLATFORM AND ITS COMPONENTS AT YOUR OWN RISK. (See also Sections 11, 12, and 2.2).
|
|
324
330
|
|
|
325
331
|
16. **Interpretation of Disclaimers**. If the disclaimers and limitations above cannot be given full local legal effect, courts shall apply local law that most closely approximates an absolute waiver of all civil liability regarding The Program, unless a warranty or liability assumption is provided in writing for a fee.
|
|
326
332
|
|
|
@@ -355,7 +361,7 @@ For GUIs, use an "About box" with similar information.
|
|
|
355
361
|
|
|
356
362
|
**END OF DCSL TERMS AND CONDITIONS**
|
|
357
363
|
|
|
358
|
-
|
|
364
|
+
### 3.2 Unauthorized Use; Non-Member License Forfeiture; Aggregation Penalties
|
|
359
365
|
|
|
360
366
|
**No Non-Member License.** Non-Members receive no license rights or permissions of any kind under this Agreement.
|
|
361
367
|
|
|
@@ -377,17 +383,27 @@ For GUIs, use an "About box" with similar information.
|
|
|
377
383
|
|
|
378
384
|
**Apps; Forking; No Preemption.** App-level terms may not in any way restrict or change the DCMA with respect to DAO Members no extend DAO Membership to non-members except through the DCMA provisions itself (i.e. as a non-limiting example, if you promote your App to non-members a condition of use is becoming a Member). As an App Creator, with respect to your own Content within your App and to the App itself you may offer less restrictive terms to other DAO Members so long as those terms are digitally represented in entitlements system of the DeSciX platform (i.e. you can sell your App to Members but not allow forking and you don’t need to disclose the App’s source code except that the specific COMMUNITY Source you employed). App terms may not bypass Mandatory Tokenized Economics (i.e. as a non-limiting example, you may not "open-source your App" and disclose COMMUNITY Source to Non-Members or give away your App off-platform "for free" while employing COMMUNITY Source).
|
|
379
385
|
|
|
380
|
-
|
|
386
|
+
### 3.3 Pre-existing Material Under Separate Licenses; No Override Either Way
|
|
387
|
+
|
|
388
|
+
**Scope.** Where this Agreement is adopted in a repository, package or other collection that also contains Pre-existing Material, this Agreement applies to that Pre-existing Material only to the extent its Original License allows, and otherwise does not apply to it at all. Placement of this Agreement at the root of such a collection, or beside Pre-existing Material, is not a claim of rights over the Pre-existing Material and does not relicense it. The Covered Works and Community IP in the same collection remain governed by this Agreement in full.
|
|
389
|
+
|
|
390
|
+
**The Original License is not displaced.** Nothing in this Agreement relieves You of any obligation the Original License imposes on Pre-existing Material. By way of example, if Pre-existing Material is licensed under the Mozilla Public License, its file-level copyleft, notice and source-availability obligations continue to bind You for that material; this Agreement neither absolves You of them nor extends them to Covered Works.
|
|
391
|
+
|
|
392
|
+
**This Agreement is not displaced.** No Original License shall be read to invalidate, override, relicense or extend its terms to any Covered Work or Community IP. If You combine, link or otherwise mix a Covered Work with Pre-existing Material whose Original License would, by its terms, purport to govern the combination or require the Covered Work to be licensed under that Original License (by way of example, the GNU General Public License), You are in breach of this Agreement from the moment of the combination: Your license under this Agreement terminates as to that combination under Clause 7, You lose the protections this Agreement affords Members with respect to it, and the Original License shall not be read to apply to the Covered Work or Community IP, whose terms remain those of this Agreement.
|
|
393
|
+
|
|
394
|
+
**Marking.** An adopter that places this Agreement in a collection containing Pre-existing Material shall place it within, or clearly identify, the directories or files it covers, so that no Pre-existing Material is represented as licensed under this Agreement.
|
|
395
|
+
|
|
396
|
+
### 3.4 DeSciX Platform as a Service License Agreement (DPLA)
|
|
381
397
|
|
|
382
398
|
This DeSciX Platform as a Service License Agreement (DPLA) is a term of convenience for referencing this section of the DCMA and is not intended to supersede or limit the DCMA in any way. The DPLA contains the terms and conditions that govern your access to and use of the Service Offerings (as defined below) and is an agreement between the Licensor(s) and you or the entity you represent. You, or the entity you represent, are a Member of the DeSciX DAO and any relevant COMMUNITY DAO. This agreement is separate and apart from the license associated with the Community Source. This agreement concerns the platform on which the COMMUNITIES provide their respective DApps and services.
|
|
383
399
|
|
|
384
|
-
Please see Section
|
|
400
|
+
Please see Section Definitions for definitions of certain capitalized terms used in this Agreement.
|
|
385
401
|
|
|
386
402
|
1. **Use of the Service Offerings**.
|
|
387
403
|
|
|
388
|
-
1. **Generally**. You may access and use the Service Offerings in accordance with this Agreement. Service Level Agreements may apply to certain Service Offerings. You will adhere to all laws, rules, and regulations applicable to your use of the Service Offerings, including the Service Terms, the Acceptable Use Policy and the other Policies as defined in Section
|
|
404
|
+
1. **Generally**. You may access and use the Service Offerings in accordance with this Agreement. Service Level Agreements may apply to certain Service Offerings. You will adhere to all laws, rules, and regulations applicable to your use of the Service Offerings, including the Service Terms, the Acceptable Use Policy and the other Policies as defined in Section Definitions.
|
|
389
405
|
|
|
390
|
-
2. **Your Account**. To access the Services, You must create a DPaaS account associated with a valid email address. Unless explicitly permitted by the Service Terms, you may only create one account per email address. You are responsible for all activities that occur under your account, regardless of whether the activities are undertaken by You, your employees or a third party (including your contractors or agents) and, except to the extent caused by our breach of this Agreement, the DeSciX DAO and its affiliates are not responsible for unauthorized access to your account. You will contact the MD immediately if you believe an unauthorized third party may be using your account or if your account information is lost or stolen. You may terminate your account and this Agreement at any time in accordance with Section
|
|
406
|
+
2. **Your Account**. To access the Services, You must create a DPaaS account associated with a valid email address. Unless explicitly permitted by the Service Terms, you may only create one account per email address. You are responsible for all activities that occur under your account, regardless of whether the activities are undertaken by You, your employees or a third party (including your contractors or agents) and, except to the extent caused by our breach of this Agreement, the DeSciX DAO and its affiliates are not responsible for unauthorized access to your account. You will contact the MD immediately if you believe an unauthorized third party may be using your account or if your account information is lost or stolen. You may terminate your account and this Agreement at any time in accordance with Section 7.
|
|
391
407
|
|
|
392
408
|
3. **Support to You**. If you would like support for the Services other than the support generally provided to other users of the Services without charge, You may enroll for customer support in accordance with the terms of the DPaaS Support Guidelines, if they exist.
|
|
393
409
|
|
|
@@ -403,13 +419,13 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
403
419
|
|
|
404
420
|
3. **Security and Data Privacy**.
|
|
405
421
|
|
|
406
|
-
1. **DPaaS Security**. Without limiting Section
|
|
422
|
+
1. **DPaaS Security**. Without limiting Section 11 or your obligations under Section 4.2, the MD will implement reasonable and appropriate measures designed to help You secure Your Content against accidental or unlawful loss, access or disclosure.
|
|
407
423
|
|
|
408
424
|
2. **Data Privacy**. You may specify the DPaaS regions (currently corresponding to Amazon AWS Regions but may not necessarily be in the future) in which Your Content will be stored and accessible by End Users. The MD will comply with the Privacy Policy. The MD will not move Your Content from your selected DPaaS regions without notifying You, unless required to comply with the law or requests of governmental entities. You consent to our collection, use and disclosure of information associated with the Service Offerings in accordance with our Privacy Policy, and to the processing of Your Content in, and the transfer of Your Content into, the DPaaS regions you select.
|
|
409
425
|
|
|
410
426
|
4. **Your Responsibilities**
|
|
411
427
|
|
|
412
|
-
1. **Your Content**. The license granted in Section
|
|
428
|
+
1. **Your Content**. The license granted in Section 9.4 is conditioned on your continued compliance with the responsibilities in this Section. You are solely responsible for the development, content, operation, maintenance, and use of Your Content. For example, You are solely responsible for:
|
|
413
429
|
|
|
414
430
|
1. the technical operation of Your Content, including ensuring that calls you make to any Service are compatible with then-current APIs for that Service;
|
|
415
431
|
|
|
@@ -455,11 +471,11 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
455
471
|
|
|
456
472
|
4. we will not erase any of Your Content as a result of your suspension, except as specified elsewhere in this Agreement.
|
|
457
473
|
|
|
458
|
-
The MD’s right to suspend your or any End User’s right to access or use the Service Offerings is in addition to the MD’s right to terminate this Agreement pursuant to Section
|
|
474
|
+
The MD’s right to suspend your or any End User’s right to access or use the Service Offerings is in addition to the MD’s right to terminate this Agreement pursuant to Section 7.
|
|
459
475
|
|
|
460
|
-
7. **Term; Termination**
|
|
476
|
+
7. **Term; Termination**
|
|
461
477
|
|
|
462
|
-
1. **Term**. The term of this Agreement will commence on the Effective Date and will remain in effect until terminated by You or the MD in accordance with Section
|
|
478
|
+
1. **Term**. The term of this Agreement will commence on the Effective Date and will remain in effect until terminated by You or the MD in accordance with Section 7.2.
|
|
463
479
|
|
|
464
480
|
2. **Termination**.
|
|
465
481
|
|
|
@@ -471,7 +487,7 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
471
487
|
|
|
472
488
|
1. **By Either Party**. Either party may terminate this Agreement for cause upon 90 days advance notice to the other party if there is any material default or breach of this Agreement by the other party, unless the defaulting party has cured the material default or breach within the 90 day notice period.
|
|
473
489
|
|
|
474
|
-
2. **By the MD**. The MD may also terminate this Agreement immediately upon notice to You (A) for cause, if any act or omission by you or any End User results in a suspension described in Section
|
|
490
|
+
2. **By the MD**. The MD may also terminate this Agreement immediately upon notice to You (A) for cause, if any act or omission by you or any End User results in a suspension described in Section 6.1, (B) if our relationship with a third party partner who provides software or other technology we use to provide the Service Offerings expires, terminates or requires Us to change the way we provide the software or other technology as part of the Services, (C) if the MD believes providing the Services could create a substantial economic or technical burden or material security risk for the DeSciX DAO, (D) in order to comply with the law or requests of governmental entities, or (E) if the MD determines use of the Service Offerings by You or any End Users or our provision of any of the Services to You or any End Users has become impractical or unfeasible for any legal or regulatory reason.
|
|
475
491
|
|
|
476
492
|
8. **Effect of Termination**.
|
|
477
493
|
|
|
@@ -483,9 +499,9 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
483
499
|
|
|
484
500
|
3. You will immediately return or, if instructed by the MD, destroy all DeSciX Content in your possession; and
|
|
485
501
|
|
|
486
|
-
4. Sections
|
|
502
|
+
4. Sections 4.1, 5.2, 8, 9 (except the license granted to You in Section 9.4), 10, 11, 12, 13, 14 and Definitions will continue to apply in accordance with their terms.
|
|
487
503
|
|
|
488
|
-
2. **Post-Termination Assistance**. Unless the MD terminates your use of the Service Offerings pursuant to Section
|
|
504
|
+
2. **Post-Termination Assistance**. Unless the MD terminates your use of the Service Offerings pursuant to Section 7.2(b), during the 30 days following termination:
|
|
489
505
|
|
|
490
506
|
1. we will not erase any of Your Content as a result of the termination;
|
|
491
507
|
|
|
@@ -495,15 +511,15 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
495
511
|
|
|
496
512
|
Any additional post-termination assistance from the MD is subject to mutual agreement by You and the MD and will be charged at the MD’s then prevailing rates for the needed technical assistance.
|
|
497
513
|
|
|
498
|
-
9. **Proprietary Rights**
|
|
514
|
+
9. **Proprietary Rights**
|
|
499
515
|
|
|
500
|
-
1. **Your Content**. As between You and the DeSciX DAO and its Members, You or your licensors own all right, title, and interest in and to Your Content. Except as provided in this Section
|
|
516
|
+
1. **Your Content**. As between You and the DeSciX DAO and its Members, You or your licensors own all right, title, and interest in and to Your Content. Except as provided in this Section 9, the DeSciX DAO and its Members obtain no rights under this Agreement from You or your licensors to Your Content, including any related intellectual property rights except to the extent that you consent to the use of Your Content to provide the Service Offerings to You and any End Users. The MD may disclose Your Content to provide the Service Offerings to You or any End Users or to comply with any request of a governmental or regulatory body (including subpoenas or court orders).
|
|
501
517
|
|
|
502
518
|
2. **Your Submissions**. Your Submissions will be governed by the terms of this agreement including, but not limited to, the DCSL.
|
|
503
519
|
|
|
504
520
|
3. **Adequate Rights**. You represent and warrant to the MD that: (a) You or your licensors own all right, title, and interest in and to Your Content and Your Submissions; (b) You have all rights in Your Content and Your Submissions necessary to grant the rights contemplated by this Agreement; and (c) none of Your Content, Your Submissions or End Users’ use of Your Content, Your Submissions or the Services Offerings will violate the Acceptable Use Policy.
|
|
505
521
|
|
|
506
|
-
4. **Service Offerings License**.
|
|
522
|
+
4. **Service Offerings License**. As between You and the DeSciX DAO, the DeSciX DAO or its affiliates or licensors own and reserve all right, title, and interest in and to the Service Offerings exclusive of any Service Offerings that You provide to the DeSciX Community in your capacity as a Member. The MD grants You a limited, revocable, non-exclusive, non-sublicensable, non-transferrable license to do the following during the Term: (i) access and use the Services solely in accordance with this Agreement; and (ii) copy and use the DeSciX Content solely in connection with your permitted use of the Services. Except as provided in this Section 9.4, You obtain no rights under this Agreement from the DeSciX DAO or its licensors to the Service Offerings, including any related intellectual property rights. Some DeSciX Content may be provided to You under a separate license, such as the DeSciX Community Source Code License or other open source license. In the event of a conflict between this Agreement and any separate license, the separate license will prevail with respect to that DeSciX Content.
|
|
507
523
|
|
|
508
524
|
5. **License Restrictions**. Neither You nor any End User may use the Service Offerings in any manner or for any purpose other than as expressly permitted by this Agreement. Neither You nor any End User may, or may attempt to, (a) modify, alter, tamper with, repair, or otherwise create derivative works of any software included in the Service Offerings (except to the extent software included in the Service Offerings are provided to You under a separate license that expressly permits the creation of derivative works), (b) reverse engineer, disassemble, or decompile the Service Offerings or apply any other process or procedure to derive the source code of any software included in the Service Offerings, (c) access or use the Service Offerings in a way intended to avoid incurring fees or exceeding usage limits or quotas, or (d) resell or sublicense the Service Offerings. All licenses granted to You in this Agreement are conditional on your continued compliance this Agreement, and will immediately and automatically terminate if You do not comply with any term or condition of this Agreement. During and after the Term, You will not assert, nor will You authorize, assist, or encourage any third party to assert, against the DeSciX DAO or any of its affiliates, customers, vendors, business partners, or licensors, any patent infringement or other intellectual property infringement claim regarding any Service Offerings You have used. You may only use the DeSciX Marks in accordance with the Trademark Use Guidelines.
|
|
509
525
|
|
|
@@ -511,25 +527,25 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
511
527
|
|
|
512
528
|
7. **Limited Grant of Right To the DeSciX DAO For Research Purposes**. (a) For non-commercial research purposes You grant to the DeSciX DAO a limited right to make anonymized copies of Your Content which contains no personally identifiable data about You, your customers, or anyone else (the Anonymized Data) and to publish the finding of our research and the Anonymized Data. The choice to allow any commercial application or on-going use of Your Content for commercial uses is made by you and propagated in the operations of the DeSciX DAO and the related platform. (b) For purposes of this section, Anonymized Data shall comply with HIPAA and associated requirements for data subject to those obligations. Further, your Terms of Service and Privacy Policies must, at all times, reflect the obligations of this provision.
|
|
513
529
|
|
|
514
|
-
10. **Indemnification**.
|
|
530
|
+
10. **Indemnification**.
|
|
515
531
|
|
|
516
532
|
1. **General**. You will defend, indemnify, and hold harmless the DeSciX DAO, its affiliates and licensors, and each of their respective employees, officers, directors, and representatives from and against any claims, damages, losses, liabilities, costs, and expenses (including reasonable attorneys’ fees) arising out of or relating to any third party claim concerning: (a) Your or any End Users’ use of the Service Offerings (including any activities under Your DPaaS account and use by Your employees and personnel); (b) breach of this Agreement or violation of applicable law by You or any End User; (c) Your Content or the combination of Your Content with other applications, content or processes, including any claim involving alleged infringement or misappropriation of third-party rights by Your Content or by the use, development, design, production, advertising or marketing of Your Content; or (d) a dispute between You and any End User. If the DeSciX DAO or its affiliates are obligated to respond to a third party subpoena or other compulsory legal order or process described above, You will also reimburse the DeSciX DAO for reasonable attorneys’ fees, as well as our employees’ and contractors’ time and materials spent responding to the third party subpoena or other compulsory legal order or process at our then-current hourly rates.
|
|
517
533
|
|
|
518
|
-
2. **Process**. The MD will promptly notify You of any claim subject to Section
|
|
534
|
+
2. **Process**. The MD will promptly notify You of any claim subject to Section 10.1, but the MD’s failure to promptly notify You will only affect your obligations under Section 10.1 to the extent that our failure prejudices your ability to defend the claim. You may: (a) use counsel of your own choosing (subject to our written consent) to defend against any claim; and (b) settle the claim as you deem appropriate, provided that you obtain our prior written consent before entering into any settlement. The MD may also assume control of the defense and settlement of the claim at any time.
|
|
519
535
|
|
|
520
|
-
11. **Disclaimers**.
|
|
536
|
+
11. **Disclaimers**.
|
|
521
537
|
|
|
522
538
|
THE SERVICE OFFERINGS ARE PROVIDED “AS IS.” THE DeSciX DAO AND ITS AFFILIATES AND LICENSORS MAKE NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY OR OTHERWISE REGARDING THE SERVICE OFFERINGS OR THE THIRD PARTY CONTENT, INCLUDING ANY WARRANTY THAT THE SERVICE OFFERINGS OR THIRD PARTY CONTENT WILL BE UNINTERRUPTED, ERROR FREE OR FREE OF HARMFUL COMPONENTS, OR THAT ANY CONTENT, INCLUDING YOUR CONTENT OR THE THIRD PARTY CONTENT, WILL BE SECURE OR NOT OTHERWISE LOST OR DAMAGED. EXCEPT TO THE EXTENT PROHIBITED BY LAW, WE AND OUR AFFILIATES AND LICENSORS DISCLAIM ALL WARRANTIES, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR QUIET ENJOYMENT, AND ANY WARRANTIES ARISING OUT OF ANY COURSE OF DEALING OR USAGE OF TRADE.
|
|
523
539
|
|
|
524
|
-
12. **Limitations of Liability**.
|
|
540
|
+
12. **Limitations of Liability**.
|
|
525
541
|
|
|
526
542
|
THE DeSciX DAO AND ITS AFFILIATES OR LICENSORS WILL NOT BE LIABLE TO YOU FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES (INCLUDING DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, OR DATA), EVEN IF A PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. FURTHER, NEITHER WE NOR ANY OF OUR AFFILIATES OR LICENSORS WILL BE RESPONSIBLE FOR ANY COMPENSATION, REIMBURSEMENT, OR DAMAGES ARISING IN CONNECTION WITH: (A) YOUR INABILITY TO USE THE SERVICES, INCLUDING AS A RESULT OF ANY (I) TERMINATION OR SUSPENSION OF THIS AGREEMENT OR YOUR USE OF OR ACCESS TO THE SERVICE OFFERINGS, (II) OUR DISCONTINUATION OF ANY OR ALL OF THE SERVICE OFFERINGS, OR, (III) WITHOUT LIMITING ANY OBLIGATIONS UNDER THE SLAS, ANY UNANTICIPATED OR UNSCHEDULED DOWNTIME OF ALL OR A PORTION OF THE SERVICES FOR ANY REASON, INCLUDING AS A RESULT OF POWER OUTAGES, SYSTEM FAILURES OR OTHER INTERRUPTIONS; (B) THE COST OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; (c) ANY INVESTMENTS, EXPENDITURES, OR COMMITMENTS BY YOU IN CONNECTION WITH THIS AGREEMENT OR YOUR USE OF OR ACCESS TO THE SERVICE OFFERINGS; OR (D) ANY UNAUTHORIZED ACCESS TO, ALTERATION OF, OR THE DELETION, DESTRUCTION, DAMAGE, LOSS OR FAILURE TO STORE ANY OF YOUR CONTENT OR OTHER DATA. IN ANY CASE, OUR AND OUR AFFILIATES’ AND LICENSORS’ AGGREGATE LIABILITY UNDER THIS AGREEMENT WILL BE LIMITED TO THE AMOUNT YOU ACTUALLY PAY US UNDER THIS AGREEMENT FOR THE SERVICE THAT GAVE RISE TO THE CLAIM DURING THE 12 MONTHS PRECEDING THE CLAIM.
|
|
527
543
|
|
|
528
|
-
13. **Modifications to the Agreement**.
|
|
544
|
+
13. **Modifications to the Agreement**.
|
|
529
545
|
|
|
530
|
-
The MD may modify this Agreement (including any Policies) at any time by posting a revised version on the DPaaS Site or by otherwise notifying You in accordance with Section
|
|
546
|
+
The MD may modify this Agreement (including any Policies) at any time by posting a revised version on the DPaaS Site or by otherwise notifying You in accordance with Section 2.3. The modified terms will become effective upon posting or, if we notify You by email, as stated in the email message. By continuing to use the Service Offerings after the effective date of any modifications to this Agreement, You agree to be bound by the modified terms. It is Your responsibility to check the DPaaS Site regularly for modifications to this Agreement. We last modified this Agreement on the date listed at the beginning of this Agreement.
|
|
531
547
|
|
|
532
|
-
14. **Miscellaneous**.
|
|
548
|
+
14. **Miscellaneous**.
|
|
533
549
|
|
|
534
550
|
1. **Confidentiality and Publicity**. The license to access DeSciX Confidential Information is conditioned upon your strict adherence to these non-disclosure requirements. You may use DeSciX Confidential information only in connection with Your use of the Service Offerings as permitted under this Agreement. You will not disclose DeSciX Confidential Information during the Term or at any time during the 5 year period following the end of the Term. You will take all reasonable measures to avoid disclosure, dissemination or unauthorized use of DeSciX Confidential Information, including, at a minimum, those measures You take to protect your own confidential information of a similar nature. You will not issue any press release or make any other public communication with respect to this Agreement or Your use of the Service Offerings. You will not misrepresent or embellish the relationship between Us and You (including by expressing or implying that we support, sponsor, endorse, or contribute to You or Your business endeavors), or express or imply any relationship or affiliation between Us and You or any other person or entity except as expressly permitted by this Agreement.
|
|
535
551
|
|
|
@@ -551,7 +567,7 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
551
567
|
|
|
552
568
|
8. **Language**. All communications and notices to be made or given pursuant to this Agreement must be in the English language.
|
|
553
569
|
|
|
554
|
-
9. **Assignment**. You will not assign this Agreement, or delegate or sublicense any of Your rights under this Agreement, without our prior written consent. Any assignment or transfer in violation of this Section
|
|
570
|
+
9. **Assignment**. You will not assign this Agreement, or delegate or sublicense any of Your rights under this Agreement, without our prior written consent. Any assignment or transfer in violation of this Section 14.9 will be void. Subject to the foregoing, this Agreement will be binding upon, and inure to the benefit of the parties and their respective successors and assigns.
|
|
555
571
|
|
|
556
572
|
10. **No Waivers**. The failure by the DeSciX DAO to enforce any provision of this Agreement will not constitute a present or future waiver of such provision nor limit our right to enforce such provision at a later time. All waivers by the DeSciX DAO must be in writing to be effective.
|
|
557
573
|
|
|
@@ -559,9 +575,9 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
559
575
|
|
|
560
576
|
12. **Governing Law; Venue**. The laws of the State of Delaware, without reference to conflict of law rules, govern this Agreement and any dispute of any sort that might arise between You and Us. Any dispute relating in any way to the Service Offerings or this Agreement where a party seeks aggregate relief of $7,500 or more will be adjudicated in any state or federal court located in the State of Delaware. You consent to exclusive jurisdiction and venue in those courts. We may seek injunctive or other relief in any state, federal, or national court of competent jurisdiction for any actual or alleged infringement of our, our affiliates’, or any third party’s intellectual property or other proprietary rights. The United Nations Convention for the International Sale of Goods does not apply to this Agreement.
|
|
561
577
|
|
|
562
|
-
13. **Entire Agreement; English Language**. This Agreement includes the Policies and is the entire agreement between You and the DeSciX DAO regarding the subject matter of this Agreement. This Agreement supersedes all prior or contemporaneous representations, understandings, agreements, or communications between You and the DeSciX DAO, whether written or verbal, regarding the subject matter of this Agreement. Notwithstanding any other agreement between You and the DeSciX DAO, the security and data privacy provisions in Section
|
|
578
|
+
13. **Entire Agreement; English Language**. This Agreement includes the Policies and is the entire agreement between You and the DeSciX DAO regarding the subject matter of this Agreement. This Agreement supersedes all prior or contemporaneous representations, understandings, agreements, or communications between You and the DeSciX DAO, whether written or verbal, regarding the subject matter of this Agreement. Notwithstanding any other agreement between You and the DeSciX DAO, the security and data privacy provisions in Section 3 of this Agreement contain our and our affiliates’ entire obligation regarding the security, privacy and confidentiality of Your Content. The DeSciX DAO will not be bound by, and specifically object to, any term, condition or other provision which is different from or in addition to the provisions of this Agreement (whether or not it would materially alter this Agreement) and which is submitted by You in any order, receipt, acceptance, confirmation, correspondence or other document. If the terms of this document are inconsistent with the terms contained in any Policy, the terms contained in this document will control, except that the Service Terms will control over this document. If we provide a translation of the English language version of this Agreement, the English language version of the Agreement will control if there is any conflict.
|
|
563
579
|
|
|
564
|
-
|
|
580
|
+
#### Definitions
|
|
565
581
|
|
|
566
582
|
“Acceptable Use Policy” means the policy currently available at DeSciX.net/aup, as it may be updated by Us from time to time.
|
|
567
583
|
|
|
@@ -597,7 +613,7 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
597
613
|
|
|
598
614
|
“Suggestions” means all suggested improvements to the Service Offerings that You provide to the MD or the DeSciX DAO.
|
|
599
615
|
|
|
600
|
-
“Term” means the term of this Agreement described in Section
|
|
616
|
+
“Term” means the term of this Agreement described in Section 7.1.
|
|
601
617
|
|
|
602
618
|
“Third Party Content” means Content made available to You by any third party on the DPaaS Site or in conjunction with the Services.
|
|
603
619
|
|
|
@@ -611,13 +627,13 @@ Please see Section <a href="#sec:dpaas_definitions" data-reference-type="ref" da
|
|
|
611
627
|
|
|
612
628
|
“Your Submissions” means Content that You post or otherwise submit to developer forums, sample code repositories, public data repositories, or similar community-focused areas of the DPaaS Site or the Services under the terms of the DCSL or other applicable license.
|
|
613
629
|
|
|
614
|
-
|
|
630
|
+
## 4 Enforcement of IP Rights
|
|
615
631
|
|
|
616
|
-
|
|
632
|
+
### 4.1 Licensor Retains Enforcement Rights
|
|
617
633
|
|
|
618
634
|
The Licensor (The Creator and any Tenants in Common) retains the exclusive right to enforce the intellectual property rights in the DeSciX Community Software, DeSciX Source Code, and any other Community IP owned by The Licensor. This includes the right to initiate legal action, seek injunctive relief, and recover damages for unauthorized use, infringement, or violation of this Agreement.
|
|
619
635
|
|
|
620
|
-
|
|
636
|
+
### 4.2 Managing Delegate as Authorized Agent
|
|
621
637
|
|
|
622
638
|
The Licensor hereby designates the Managing Delegate (MD) as its authorized agent to exercise these enforcement rights on behalf of The Licensor. The MD is empowered to:
|
|
623
639
|
|
|
@@ -631,7 +647,7 @@ The Licensor hereby designates the Managing Delegate (MD) as its authorized agen
|
|
|
631
647
|
|
|
632
648
|
DAO Members acknowledge the MD’s authority to act as the Licensor’s agent in these matters.
|
|
633
649
|
|
|
634
|
-
|
|
650
|
+
## 5 Living Community Agreement, AI Enabled Smart Contract
|
|
635
651
|
|
|
636
652
|
The DeSciX Community is envisioned as a dynamic and evolving ecosystem. To foster this dynamism and ensure the continued alignment of the community with its core principles, the Managing Delegate shall maintain a trained AI agent (the "DeSciX AI"). This AI will be trained on this Agreement, the DeSciX DPoS White Paper, the DeSciX Community Source Code License, and other relevant documents related to the structure, spirit, implementation, and operation of the DeSciX ecosystem.
|
|
637
653
|
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ FRQTL for node: a discrete cellular-automata physics engine (compiled Rust → W
|
|
|
4
4
|
local per-pixel rules — a frame moves one pixel per tick, single occupancy, momentum — rather than force
|
|
5
5
|
equations. Interference, blackbody spectra and atom-like binding emerge from the automaton.
|
|
6
6
|
|
|
7
|
-
`0.6.
|
|
7
|
+
`0.6.1-p1.2` (npm dist-tag `next`). Node ≥ 22.12.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -32,9 +32,10 @@ const tick = u.doTick(); // TickData: fr
|
|
|
32
32
|
| `./eyes` | `openHostedEyes` — a `composite` still through the REAL renderer, in a managed headless browser (pulls the pinned `playwright`) |
|
|
33
33
|
| `./parts`, `./parts/*` | the parts barrel; one part = one file |
|
|
34
34
|
| `./project` | `FRQTL_WEB_SPECIFIERS`, `libPathOf`, `importMapFor`, `pageImportMapFor`, `FRQTL_WEB_HOST_SPECIFIERS`, `linkProject`, `sketchProject`, `SKETCH_ENTRY`, `projectIdentity`, `MANIFEST_FILE`, `MANIFEST_KEYS`, `normalizeManifest`, `parseManifest`, `serializeManifest`, `manifestFor`, `RECORD_FILES`, `RECORD_KEYS`, `CHANGE_KEYS`, `OPS`, `BY`, `CLIP_SECONDS`, `CLIP_NAME`, `clipName`, `jsonText`, `recordFolderFaults` |
|
|
35
|
-
| `./registry` | the walk-through rungs, the showcase roster, the scene list (`sceneGroups`), `projectOf` |
|
|
35
|
+
| `./registry` | the walk-through rungs, the showcase roster, the scene list (`sceneGroups`), `projectOf`, a showcase tile's link (`showcaseHref(row)` relative to the serving site, `showcaseUrl(row)` absolute on `SHOWCASE_SITE.origin`; `row` is an element of the same imported `EXHIBITS`, and the link carries the row's effective mode on a multi-mode rung) |
|
|
36
36
|
| `./kinds` | `registerKind`, `kindNamed`, `kindOf`, `registeredKinds` |
|
|
37
37
|
| `./host-view` | `declareHostView`, `HOST_VIEW_OUTCOMES`, `CONTRACT_VIOLATIONS`, `HOST_SDK_SCRIPT` — the DeSciX host-view declarer (pure: a node test can drive a call site with a stub SDK) |
|
|
38
|
+
| `./site-graph` | `SITE_GRAPH_DIR`, `SITE_BUILD_ATTR`, `SITE_BUILD_ID_RE`, `STATIC_APP_PAGE` — the static site's shape (graph directory, build-stamp attribute, build id pattern, IDE entry page), for a reader of a served site (both packages) |
|
|
38
39
|
| `./register` | installs the resolve hook for a sketch's `@descix/frqtl-web/...` imports (`node --import @descix/frqtl-node/register`) |
|
|
39
40
|
| `./shim/controls/registry.js`, `./shim/render/sun-look.js`, `./compat/renderer/display-slot.js`, `./compat/renderer/orbit-bag.js`, `./objects/setup/_collisionMatrixLanes.js`, `./compat/engine.js` | the six non-part modules a scene may import (the rows of `FRQTL_WEB_SPECIFIERS`) |
|
|
40
41
|
| `./objects/objects/tagger.js`, `./objects/schema/index.js`, `./shim/render/heat-colormap.js`, `./objects/schema/valueNormalizer.js`, `./objects/objects/Box.js`, `./objects/objects/QuantumEmitter.js`, `./shim/expr/ast-schema.js`, `./objects/objects/actionCompiler.js`, `./objects/v1-replacements.js`, `./objects/objects/slitLinerScatter.js`, `./objects/setup/setupSphereEmitter3D.js`, `./objects/objects/directedRedirectProgram.js`, `./compat/renderer/lo-drawn-center.js`, `./objects/setup/setupTunnelPointExit.js`, `./objects/constants/WallBehaviors.js`, `./objects/objects/absorbRadiation.js`, `./objects/geometry/SlabFace.js` | the 17 part-internal modules a forked part file imports (the `tier: 'part-internal'` rows of `FRQTL_WEB_SPECIFIERS`): not a scene API — the linker admits them only from a `parts/*.js` file — and they move with the parts |
|
package/dist/dist-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descix/frqtl-node",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1-p1.2",
|
|
4
4
|
"files": {
|
|
5
5
|
"eyes/index.js": "b3563421030bb7fdd277eb697959fbe9107463cbb5478160edc7d887daa67be3",
|
|
6
6
|
"fat/pkg-node/egpt_wasm.js": "5e6af1f6725c93c0e9ad7386f1785cbe639ce596a4caa19ca85729c1f2bea04d",
|
|
@@ -166,12 +166,13 @@
|
|
|
166
166
|
"shim/engine/artifact-shell.js": "f23c327500f8174b12d464868f6ec9c1701e7a9a5faa1c43a2ddafc3191dc38c",
|
|
167
167
|
"shim/engine/boot-phases.js": "c6e12e12824bcf6f1a289f46e41c898a5416c80c131594525145aae9a3eefbfa",
|
|
168
168
|
"shim/engine/engine-stack-boot.js": "0abf57dcff2ca2bb025c787a17875d49d54d9218ac08c78cb9c678dbb6118d08",
|
|
169
|
-
"shim/engine/router.js": "
|
|
169
|
+
"shim/engine/router.js": "e0563d9b6cc9da08fe915b1d0218faf446a827ff9196038c9f85622f7d1c0fcd",
|
|
170
|
+
"shim/engine/site-graph.js": "55276c1aa1a4d64f2939610993b00b6bf9d10b331361ac2c4997b949303b7fd4",
|
|
170
171
|
"shim/experiment-frame/index.js": "5a0219aaa225d8f808c405b08623ce85ada37d83fb4f55f983db3303e431e47f",
|
|
171
172
|
"shim/expr/ast-schema.js": "4f1133b887639bbd86fab976292323bf4a955cdc873ff7ca8e8a8eb3b416923f",
|
|
172
173
|
"shim/field-descriptor/index.js": "6647d57d1523519114adc0a5cb66335ec5121c39ab294b9c97bdfb9e5d7f61e0",
|
|
173
174
|
"shim/frame-data/index.js": "df6957b0b4a8e0ee0035bc970647b90089b421ae7f05911cc047d48457164be6",
|
|
174
|
-
"shim/host/host-view.js": "
|
|
175
|
+
"shim/host/host-view.js": "38aa2ae18c89dd5a80dd35fa5a1a6d9597d33fa2c8596a93bdb86149dbcf52dc",
|
|
175
176
|
"shim/host/index.js": "67691951a7ff35b4baf7332987d0128d1eefd0ad185d2989674bea90b17c02f3",
|
|
176
177
|
"shim/index.js": "96165c6161ffddbace0be0cde0b3a83943298531537dd2cc9c6e281b8274ff19",
|
|
177
178
|
"shim/notebook/canvas-guard.js": "b19d3a86df3835bd617c7130cde997b6f8a8a0c140f95338b733115d5947ed7b",
|
|
@@ -205,12 +206,13 @@
|
|
|
205
206
|
"shim/project/read-text.js": "b89bd70e3a271e1f42c8ce9427a20cdd9a4c4c9c31b64c49ff1f56b095620136",
|
|
206
207
|
"shim/project/record-format.js": "b680c3752f20535c08be832c6808fae000c2d2325f8caee57f98351043d091be",
|
|
207
208
|
"shim/project/register-node.mjs": "9b408da7dc1b11d16237cd62caca281c823ea80173d386ad35e41ea17c34857f",
|
|
208
|
-
"shim/project/specifiers.js": "
|
|
209
|
+
"shim/project/specifiers.js": "c8bbff6bfbbdf00d09a39500daf54a952e1447522ecebb808a3838c9d534387e",
|
|
209
210
|
"shim/registry/copy-gate.js": "cfbf52669c849b8837b326f2743458f1ead0720cad51a6c6d409c9bd6c7f9495",
|
|
210
|
-
"shim/registry/exhibits.js": "
|
|
211
|
-
"shim/registry/index.js": "
|
|
211
|
+
"shim/registry/exhibits.js": "e137951429929dae6c38e996546b66dd19b575ee4f0aafbddf28096c847a27fc",
|
|
212
|
+
"shim/registry/index.js": "eb805ee170ee8be71c179577fcb48b9845012ba63674316fbf9b5d7664f86f1f",
|
|
212
213
|
"shim/registry/scene-roster.js": "318fe373f71b1c58d05425693f2fad4bd5368f6095b65817c6d637430a0bfb73",
|
|
213
214
|
"shim/registry/scene-source.js": "c9c4b48c24d4b1ebee1549a7891a1ba708909b94b9403ce28eefbd902cacf49f",
|
|
215
|
+
"shim/registry/showcase-link.js": "daf5c1426aeb3c578bace5e0edea9ba2538cd82336d2cdc944e5fed6decd7551",
|
|
214
216
|
"shim/registry/walkthrough.js": "8f8b6f59e9e81c67c9c62f8fb271eee2e4d6e1fba6e116b227a2f1e3f9930230",
|
|
215
217
|
"shim/render-state/apply.js": "94a9e60cb1722c9a82aa00f2f161fd65e6f438147333856a786e42a4ad5b7064",
|
|
216
218
|
"shim/render-state/index.js": "72a6a3dcd8037893cb8fbd7ef32b126770e7efaec70847f8e4f2915ddb690b43",
|
|
@@ -35,6 +35,10 @@
|
|
|
35
35
|
|
|
36
36
|
'use strict';
|
|
37
37
|
|
|
38
|
+
// The static site's shape (graph dir, build stamp, build id, entry page) — owned by site-graph.js, imported from
|
|
39
|
+
// there by every consumer; the router uses them and does not re-export them.
|
|
40
|
+
import { SITE_GRAPH_DIR, SITE_BUILD_ATTR, SITE_BUILD_ID_RE, STATIC_APP_PAGE } from './site-graph.js';
|
|
41
|
+
|
|
38
42
|
// ── Path profiles ────────────────────────────────────────────────────────────
|
|
39
43
|
//
|
|
40
44
|
// Each profile maps a frqtl-relative prefix → URL prefix.
|
|
@@ -148,7 +152,7 @@ var DIST_PROFILE = buildDistProfile('../..');
|
|
|
148
152
|
// lib/shim/engine/test/router.test.mjs asserts them against the two
|
|
149
153
|
// package.json#version fields so a forgotten bump fails `make verify`, not a
|
|
150
154
|
// silent stale-CDN-URL bug.
|
|
151
|
-
var CDN_SDK_VERSION = '0.6.
|
|
155
|
+
var CDN_SDK_VERSION = '0.6.1-p1.2'; // sdk/frqtl-web/package.json#version (the ONE version owner) — bound by router.test.mjs
|
|
152
156
|
var CDN_MATH_SDK_VERSION = '0.3.2'; // sdk/egpt-math-sdk/package.json#version — bound by router.test.mjs; bumped with each npm publish
|
|
153
157
|
|
|
154
158
|
/**
|
|
@@ -302,15 +306,9 @@ function buildStaticProfile(graphBase, entryBase) {
|
|
|
302
306
|
};
|
|
303
307
|
}
|
|
304
308
|
|
|
305
|
-
// The static site's sdk directory, relative to the site's document.
|
|
306
|
-
//
|
|
307
|
-
var STATIC_SDK_DIR = './
|
|
308
|
-
|
|
309
|
-
// The <html> attribute carrying the static site's build id — the cross-repo contract
|
|
310
|
-
// (egpt-frqtl scripts/refresh-site.sh reads it). Every reader and writer names it through here.
|
|
311
|
-
var SITE_BUILD_ATTR = 'data-frqtl-site-build';
|
|
312
|
-
// A build id: the 8-hex-digit short sha of the commit the bundle was built from.
|
|
313
|
-
var SITE_BUILD_ID_RE = /^[0-9a-f]{8}$/;
|
|
309
|
+
// The static site's sdk directory, relative to the site's document (site-graph.js::SITE_GRAPH_DIR);
|
|
310
|
+
// the entries sit directly in it, the graph under its build-stamped child.
|
|
311
|
+
var STATIC_SDK_DIR = './' + SITE_GRAPH_DIR;
|
|
314
312
|
|
|
315
313
|
/**
|
|
316
314
|
* The validated build id, or a thrown error naming what was supplied.
|
|
@@ -381,11 +379,6 @@ function documentSiteBuild() {
|
|
|
381
379
|
return assertSiteBuildId(attr);
|
|
382
380
|
}
|
|
383
381
|
|
|
384
|
-
// The static IDE bundle's entry document, beside its front page. The bundle ships THIS name and no
|
|
385
|
-
// index.html: a site's index.html is the publisher's front page (lib/shim/host/host-view.js::HOST_FRONT_PAGE),
|
|
386
|
-
// which the IDE brand links home to.
|
|
387
|
-
var STATIC_APP_PAGE = 'app.html';
|
|
388
|
-
|
|
389
382
|
// The static IDE bundle's own chunk directory (vite assetsDir), relative to the document. Not
|
|
390
383
|
// `assets/`: the DeSciX platform routes `/assets/` on an app subdomain to app MEDIA, not the site.
|
|
391
384
|
var STATIC_APP_ASSETS_DIR = 'app-assets';
|
|
@@ -507,7 +500,7 @@ var _assertProfileParity = (function () {
|
|
|
507
500
|
* // CDN mode (static hosting — the artifact host shell has no server, no page anchor):
|
|
508
501
|
* const cdnRouter = engineRouter({ mode: 'cdn', engine: 'wasm' });
|
|
509
502
|
* console.log(cdnRouter.resolve('compat/engine.js'));
|
|
510
|
-
* // 'https://cdn.jsdelivr.net/npm/@descix/frqtl-web@0.6.
|
|
503
|
+
* // 'https://cdn.jsdelivr.net/npm/@descix/frqtl-web@0.6.1-p1.2/dist/frqtl/compat/engine.js'
|
|
511
504
|
*
|
|
512
505
|
* // CDN mode, self-hosted: a copy of dist/ served from the consumer's own origin:
|
|
513
506
|
* const selfHosted = engineRouter({ mode: 'cdn', engine: 'wasm', base: 'https://example.org/vendor/frqtl-web/dist' });
|
|
@@ -687,4 +680,4 @@ export function engineRouter(opts) {
|
|
|
687
680
|
|
|
688
681
|
|
|
689
682
|
// Export profiles for the sdk build to consume.
|
|
690
|
-
export { LIB_IDENTITY_PREFIXES, DEV_CORE_PROFILE, DIST_PROFILE, CDN_PROFILE, STATIC_SDK_DIR,
|
|
683
|
+
export { LIB_IDENTITY_PREFIXES, DEV_CORE_PROFILE, DIST_PROFILE, CDN_PROFILE, STATIC_SDK_DIR, STATIC_APP_ASSETS_DIR, STATIC_HOST_VIEW_ENTRY, CDN_SDK_VERSION, CDN_MATH_SDK_VERSION, CDN_BASE, cdnDistBaseFor, CDN_MATH_BASE, buildCdnProfile, buildDistProfile, buildStaticProfile, staticGraphDir, staticSdkBase, staticEntryBase };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* Copyright 2023-2026 by Essam Abadir */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* site-graph.js — the shape of a static FRQTL site: the names a site's documents carry and the
|
|
5
|
+
* directory its build-stamped graph sits in. The ONE owner and the ONE import door of each: lib/shim/engine/router.js
|
|
6
|
+
* and every other consumer import them from here (the router never re-exports them), and a node consumer that reads a SERVED
|
|
7
|
+
* site (a publisher's gate) imports them through the package export `@descix/frqtl-web/site-graph`
|
|
8
|
+
* (or `@descix/frqtl-node/site-graph`), never typing them.
|
|
9
|
+
*
|
|
10
|
+
* SITE_GRAPH_DIR 'pub' — the site directory holding the fixed entries and, under
|
|
11
|
+
* SITE_GRAPH_DIR/<build>/, the build-stamped module graph
|
|
12
|
+
* SITE_BUILD_ATTR the <html> attribute of the IDE document carrying <build>
|
|
13
|
+
* SITE_BUILD_ID_RE a <build>: the 8-hex-digit short sha of the commit the bundle was built from
|
|
14
|
+
* STATIC_APP_PAGE the IDE bundle's entry document, beside the publisher's front page
|
|
15
|
+
* SITE_GRAPH_EXPORTS the published names (the parity gate holds both packages' ./site-graph to this table)
|
|
16
|
+
*
|
|
17
|
+
* Host-neutral ESM with no imports: it loads unchanged in node and in a page.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/** The names `./site-graph` publishes. */
|
|
21
|
+
export const SITE_GRAPH_EXPORTS = Object.freeze(['SITE_GRAPH_DIR', 'SITE_BUILD_ATTR', 'SITE_BUILD_ID_RE', 'STATIC_APP_PAGE']);
|
|
22
|
+
|
|
23
|
+
/** The static site's graph directory name (the entries sit in it, the graph under its build-stamped child). */
|
|
24
|
+
export const SITE_GRAPH_DIR = 'pub';
|
|
25
|
+
|
|
26
|
+
/** The <html> attribute carrying the static site's build id — the cross-repo contract. */
|
|
27
|
+
export const SITE_BUILD_ATTR = 'data-frqtl-site-build';
|
|
28
|
+
|
|
29
|
+
/** A build id: the 8-hex-digit short sha of the commit the bundle was built from. */
|
|
30
|
+
export const SITE_BUILD_ID_RE = /^[0-9a-f]{8}$/;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The static IDE bundle's entry document, beside its front page. The bundle ships THIS name and no
|
|
34
|
+
* index.html: a site's index.html is the publisher's front page (lib/shim/host/host-view.js::HOST_FRONT_PAGE).
|
|
35
|
+
*/
|
|
36
|
+
export const STATIC_APP_PAGE = 'app.html';
|
|
@@ -42,7 +42,7 @@ export const HOST_SDK_SCRIPT = 'DeSciXAppSDK.js';
|
|
|
42
42
|
export const HOST_PROVIDED_ATTR = 'data-frqtl-host-provided';
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
* The publisher's front page, beside the IDE entry (
|
|
45
|
+
* The publisher's front page, beside the IDE entry (site-graph.js::STATIC_APP_PAGE). PUBLISHER-provided
|
|
46
46
|
* like HOST_SDK_SCRIPT: the static build declares it once as `<link rel="home" href=HOST_FRONT_PAGE
|
|
47
47
|
* HOST_PROVIDED_ATTR>` (apps/ide/vite.config.js), the bundle gate asserts the bundle does not ship
|
|
48
48
|
* it, and lib/features/ide/home-link.js::homeHrefOf reads the declaration back.
|
|
@@ -83,7 +83,7 @@ export const CONTRACT_VIOLATIONS = Object.freeze({
|
|
|
83
83
|
'view-no-available': Object.freeze({ setCalls: 0, means: 'view has no available() function' }),
|
|
84
84
|
'view-no-set': Object.freeze({ setCalls: 0, means: 'view has no set() function' }),
|
|
85
85
|
'available-threw': Object.freeze({ setCalls: 0, means: 'view.available() threw' }),
|
|
86
|
-
'view-no-modes': Object.freeze({ setCalls: 0, means: 'a fallback was given but view.MODES is not published' }),
|
|
86
|
+
'view-no-modes': Object.freeze({ setCalls: 0, means: 'a fallback was given but view.MODES is not published as the contract\'s object (absent, or an array)' }),
|
|
87
87
|
'set-threw': Object.freeze({ setCalls: 1, means: 'view.set(mode) threw (or view.set(fallback), the mode view.MODES offered)' }),
|
|
88
88
|
'set-returned-other': Object.freeze({ setCalls: 1, means: 'view.set(mode) returned something other than the mode it was asked for' }),
|
|
89
89
|
});
|
|
@@ -191,6 +191,10 @@ export async function declareHostView({ sdk, mode, fallback, root } = {}) {
|
|
|
191
191
|
if (!modes || typeof modes !== 'object') {
|
|
192
192
|
return violated(target, 'view-no-modes', 'fallback given but view.MODES is not published (got ' + String(modes) + ')');
|
|
193
193
|
}
|
|
194
|
+
if (Array.isArray(modes)) {
|
|
195
|
+
return violated(target, 'view-no-modes', 'fallback given but view.MODES is an array ([' + modes.join(', ') + ']), ' +
|
|
196
|
+
'not the published { NAME: mode } object');
|
|
197
|
+
}
|
|
194
198
|
const offered = Object.values(modes);
|
|
195
199
|
const list = '[' + offered.join(', ') + ']';
|
|
196
200
|
if (!offered.includes(mode)) {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* stay prefixes. No filesystem computation, so a vendored dist root
|
|
21
21
|
* takes the same call.
|
|
22
22
|
* FRQTL_WEB_HOST_SPECIFIERS rows { specifier, libPath, why } a HOST PAGE imports and a sketch never does:
|
|
23
|
-
* ./boot (FRQTL_WEB_BOOT, the scene doors), ./registry and ./
|
|
23
|
+
* ./boot (FRQTL_WEB_BOOT, the scene doors), ./registry, ./project, ./host-view and ./site-graph. libPathOf
|
|
24
24
|
* refuses every one of them, so a sketch cannot boot a page.
|
|
25
25
|
* pageImportMapFor(libRootUrl) → importMapFor(libRootUrl) plus every FRQTL_WEB_HOST_SPECIFIERS row: the map
|
|
26
26
|
* of a page that boots a scene through the doors and runs sketches beside it.
|
|
@@ -103,11 +103,13 @@ export const FRQTL_WEB_BOOT = Object.freeze({ specifier: '@descix/frqtl-web/boot
|
|
|
103
103
|
export const FRQTL_WEB_HOST_SPECIFIERS = Object.freeze([
|
|
104
104
|
FRQTL_WEB_BOOT,
|
|
105
105
|
Object.freeze({ specifier: '@descix/frqtl-web/registry', libPath: 'shim/registry/index.js',
|
|
106
|
-
why: 'the walk-through rungs, the showcase roster, the scene list (sceneGroups), projectOf' }),
|
|
106
|
+
why: 'the walk-through rungs, the showcase roster, the scene list (sceneGroups), projectOf, showcaseHref + showcaseUrl + SHOWCASE_SITE' }),
|
|
107
107
|
Object.freeze({ specifier: '@descix/frqtl-web/project', libPath: 'shim/project/index.js',
|
|
108
108
|
why: 'the specifier table, the link site, sketchProject and the project identity' }),
|
|
109
109
|
Object.freeze({ specifier: '@descix/frqtl-web/host-view', libPath: 'shim/host/index.js',
|
|
110
|
-
why: 'the DeSciX host-view declarer: a page declares its own view' })
|
|
110
|
+
why: 'the DeSciX host-view declarer: a page declares its own view' }),
|
|
111
|
+
Object.freeze({ specifier: '@descix/frqtl-web/site-graph', libPath: 'shim/engine/site-graph.js',
|
|
112
|
+
why: 'the static site\'s shape: the graph directory, the build-stamp attribute, the build id pattern, the IDE entry page' })
|
|
111
113
|
]);
|
|
112
114
|
|
|
113
115
|
/** The package a self-reference names. */
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* roster scene the GYM plays, and the showcase copy around them (the intro card, the through-line
|
|
6
6
|
* and the one invitation). It is the ONE owner of every word of that copy.
|
|
7
7
|
*
|
|
8
|
-
* EXHIBITS is the ONE source for the front-page tiles
|
|
8
|
+
* EXHIBITS is the ONE source for the front-page tiles (their links: showcase-link.js::showcaseHref) and the scene card:
|
|
9
9
|
* nine rows in front-page order, each
|
|
10
10
|
* `{ kind, id, mode, title, tile, what, why, how, controls, still }`.
|
|
11
11
|
* - `kind` is 'rung' (a walk-through rung, lib/shim/registry/walkthrough.js); `id` resolves there. A row of
|
|
@@ -11,9 +11,12 @@
|
|
|
11
11
|
* exhibits.js the showcase roster
|
|
12
12
|
* scene-roster.js sceneGroups() — THE scene list both views show (the showcase, then the walk-through groups)
|
|
13
13
|
* scene-source.js projectOf(id, { mode }) — a rung as a project folder + its renderState (fetch in a page, file read in node)
|
|
14
|
+
* showcase-link.js showcaseHref(row), showcaseUrl(row), SHOWCASE_SITE — a showcase tile's link (relative, absolute)
|
|
15
|
+
* and the site that serves it; `row` is an element of THIS barrel's EXHIBITS
|
|
14
16
|
*/
|
|
15
17
|
|
|
16
18
|
export * from './walkthrough.js';
|
|
17
19
|
export * from './exhibits.js';
|
|
18
20
|
export * from './scene-roster.js';
|
|
19
21
|
export * from './scene-source.js';
|
|
22
|
+
export * from './showcase-link.js';
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/* Copyright 2023-2026 by Essam Abadir */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* showcase-link.js — the ONE writer of a showcase tile's link: where a roster row opens on the site that serves
|
|
5
|
+
* the IDE. Every front page (the publisher sites, Gods World) composes its tile hrefs from these two names and types
|
|
6
|
+
* no query, page or origin of its own.
|
|
7
|
+
*
|
|
8
|
+
* showcaseHref(row) → 'app.html?preset=author&walkthrough=<id>[&mode=<mode>]', relative to the serving site's root:
|
|
9
|
+
* the IDE entry page (site-graph.js::STATIC_APP_PAGE) opened on STUDIO at the row's rung. `mode`
|
|
10
|
+
* is the row's EFFECTIVE mode (exhibits.js normalizes it: on a multi-mode rung the mode the row
|
|
11
|
+
* names, else the rung's default; null on a single-mode rung, which carries no `mode`), so the
|
|
12
|
+
* link opens the mode the tile's still shows.
|
|
13
|
+
* showcaseUrl(row) → the same link, absolute on SHOWCASE_SITE.origin: what a front page on ANY other origin uses.
|
|
14
|
+
* Whether a page links relative (it is the serving site) or absolute is the page's own fact.
|
|
15
|
+
* SHOWCASE_SITE → { app, origin } — the DeSciX app that serves the IDE and its public origin.
|
|
16
|
+
*
|
|
17
|
+
* `row` must be an element of the EXHIBITS array imported from the SAME module instance (the ./registry export):
|
|
18
|
+
* a copied, JSON-deserialized or second-copy row is refused, loudly.
|
|
19
|
+
*
|
|
20
|
+
* It writes no IDE state: the query is a link, read by the one parser (lib/features/ide/deep-link.js::parseDeepLink).
|
|
21
|
+
* The shim cannot import that parser (shim → features is illegal), so the binding is a round-trip conformance test
|
|
22
|
+
* in lib/features/ide/test/showcase-link-round-trip.test.mjs: for every EXHIBITS row the parsed link shows STUDIO,
|
|
23
|
+
* names the row's rung and mode, and is refused by nothing.
|
|
24
|
+
*
|
|
25
|
+
* Host-neutral ESM: it runs unchanged in node and in a page (the `./registry` export).
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
import { STATIC_APP_PAGE } from '../engine/site-graph.js';
|
|
29
|
+
import { EXHIBITS } from './exhibits.js';
|
|
30
|
+
|
|
31
|
+
/** The IDE surface a showcase tile opens: STUDIO (presets.js PRESETS.author; the round-trip test binds the two). */
|
|
32
|
+
const SHOWCASE_SURFACE = 'author';
|
|
33
|
+
|
|
34
|
+
/** The DeSciX app serving the IDE every showcase tile opens, and its public origin (no trailing slash). */
|
|
35
|
+
export const SHOWCASE_SITE = Object.freeze({ app: 'egpt-frqtl', origin: 'https://egpt-frqtl.descix.net' });
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {object} row an element of EXHIBITS (exhibits.js)
|
|
39
|
+
* @returns {string} the tile's link, relative to the serving site's root
|
|
40
|
+
* @throws {Error} a row that is not on the roster
|
|
41
|
+
*/
|
|
42
|
+
export function showcaseHref(row) {
|
|
43
|
+
if (EXHIBITS.indexOf(row) === -1) {
|
|
44
|
+
throw new Error('[showcase-link] showcaseHref(row): not a showcase roster row — pass an element of EXHIBITS ' +
|
|
45
|
+
'(lib/shim/registry/exhibits.js), got ' + JSON.stringify(row && { kind: row.kind, id: row.id }) + '. (FAIL-LOUD.)');
|
|
46
|
+
}
|
|
47
|
+
const params = new URLSearchParams();
|
|
48
|
+
params.set('preset', SHOWCASE_SURFACE);
|
|
49
|
+
params.set('walkthrough', row.id);
|
|
50
|
+
if (row.mode !== null) { params.set('mode', row.mode); }
|
|
51
|
+
return STATIC_APP_PAGE + '?' + params.toString();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @param {object} row an element of EXHIBITS (exhibits.js), from the same module instance
|
|
56
|
+
* @returns {string} the tile's link, absolute on SHOWCASE_SITE.origin
|
|
57
|
+
* @throws {Error} a row that is not on the roster
|
|
58
|
+
*/
|
|
59
|
+
export function showcaseUrl(row) {
|
|
60
|
+
return new URL(showcaseHref(row), SHOWCASE_SITE.origin + '/').href;
|
|
61
|
+
}
|
package/llms.txt
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @descix/frqtl-node
|
|
2
2
|
|
|
3
3
|
> The FRQTL physics engine (compiled Rust → WASM) for node: the same modules as @descix/frqtl-web, plus
|
|
4
|
-
> `bootNode` and the hosted eyes. 0.6.
|
|
4
|
+
> `bootNode` and the hosted eyes. 0.6.1-p1.2 on npm dist-tag `next`. Node ≥ 22.12.
|
|
5
5
|
|
|
6
6
|
- Install: `npm install @descix/frqtl-node`
|
|
7
7
|
- `import { bootNode, Wall } from '@descix/frqtl-node'` (require() works too); `await bootNode()` → the engine handle.
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
- `./project`: `linkProject` links a scene file against this package's own copy.
|
|
10
10
|
- `./host-view`: `declareHostView`, `HOST_VIEW_OUTCOMES`, `CONTRACT_VIOLATIONS`, `HOST_SDK_SCRIPT` — the same declarer as @descix/frqtl-web/host-view, pure, for a node test of a call site.
|
|
11
11
|
- `./register`: `node --import @descix/frqtl-node/register scene.mjs` resolves a scene's `@descix/frqtl-web/...` imports to this package.
|
|
12
|
-
- Full agent guide: https://cdn.jsdelivr.net/npm/@descix/frqtl-node@0.6.
|
|
12
|
+
- Full agent guide: https://cdn.jsdelivr.net/npm/@descix/frqtl-node@0.6.1-p1.2/CLAUDE.md
|
|
13
13
|
- Acceptance is visual; no CLI ships. No account, credits or tokens are needed.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descix/frqtl-node",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1-p1.2",
|
|
4
4
|
"description": "FRQTL for node \u2014 the discrete fractal physics engine (compiled Rust \u2192 WASM), its parts as ES modules, the node engine door (bootNode) and the hosted eyes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"./project": "./dist/shim/project/index.js",
|
|
15
15
|
"./registry": "./dist/shim/registry/index.js",
|
|
16
16
|
"./host-view": "./dist/shim/host/index.js",
|
|
17
|
+
"./site-graph": "./dist/shim/engine/site-graph.js",
|
|
17
18
|
"./register": "./dist/shim/project/register-node.mjs",
|
|
18
19
|
"./shim/controls/registry.js": "./dist/shim/controls/registry.js",
|
|
19
20
|
"./shim/render/sun-look.js": "./dist/shim/render/sun-look.js",
|
|
@@ -42,7 +43,7 @@
|
|
|
42
43
|
"./dist-manifest.json": "./dist/dist-manifest.json",
|
|
43
44
|
"./package.json": "./package.json"
|
|
44
45
|
},
|
|
45
|
-
"exportsNotes": "
|
|
46
|
+
"exportsNotes": "The exports map is documented in README.md, section Exports.",
|
|
46
47
|
"files": [
|
|
47
48
|
"dist",
|
|
48
49
|
"README.md",
|