@genesislcap/blank-app-seed 5.27.2-prerelease.3 → 5.28.0

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.
Files changed (36) hide show
  1. package/.genx/ai-consumer.json +18 -0
  2. package/.genx/configure.js +122 -0
  3. package/.genx/package.json +1 -1
  4. package/.genx/scripts/check-ai-declaration.mjs +116 -0
  5. package/.genx/scripts/check-ai-emission.sh +974 -0
  6. package/.genx/scripts/generate-test-apps.sh +38 -4
  7. package/.genx/templates/react/ai/assistant-host.ts.hbs +30 -0
  8. package/.genx/templates/react/ai/assistant.ts.hbs +52 -0
  9. package/.genx/templates/react/ai/extensions.ts.hbs +17 -0
  10. package/.genx/templates/react/ai/pbc-elements.ts.hbs +17 -0
  11. package/.genx/templates/server/ai-service-web-handler.kts.hbs +394 -0
  12. package/.genx/tests/contracts/ai/ai-resolver-cases.json +6807 -0
  13. package/.genx/tests/contracts/ai/ui-config-ai.schema.json +203 -0
  14. package/.genx/tests/fixtures/ai-config-parse-breakers.json +16 -0
  15. package/.genx/tests/fixtures/ai-config.json +41 -0
  16. package/.genx/versions.json +3 -3
  17. package/.github/workflows/build.yml +20 -4
  18. package/CHANGELOG.md +55 -43
  19. package/README.md +139 -0
  20. package/bdd-tests/build.gradle.kts +1 -1
  21. package/bdd-tests/gradle/wrapper/gradle-wrapper.properties +1 -1
  22. package/bdd-tests/gradle.properties +0 -1
  23. package/bdd-tests/settings.gradle.kts +2 -2
  24. package/client-tmp/angular/package.json +3 -0
  25. package/client-tmp/react/.oxfmtrc.json +3 -0
  26. package/client-tmp/react/package.json +6 -2
  27. package/client-tmp/web-components/package.json +3 -0
  28. package/client-tmp/web-components/settings.gradle.kts +0 -22
  29. package/gradle/wrapper/gradle-wrapper.properties +1 -1
  30. package/package.json +1 -1
  31. package/server/build.gradle.kts +8 -1
  32. package/server/gradle/wrapper/gradle-wrapper.properties +1 -1
  33. package/server/gradle.properties +3 -3
  34. package/server/settings.gradle.kts +2 -2
  35. package/server/{{appName}}-app/src/main/genesis/scripts/genesis-router.kts +10 -0
  36. package/server/{{appName}}-app/src/test/kotlin/global/genesis/EventHandlerTest.kt +1 -1
@@ -6,6 +6,8 @@ pluginManagement {
6
6
  }
7
7
 
8
8
  repositories {
9
+ gradlePluginPortal()
10
+ mavenCentral()
9
11
  maven {
10
12
  val repoUrl = if(extra.properties["useDevRepo"] == "true") {
11
13
  "https://genesisglobal.jfrog.io/genesisglobal/dev-repo"
@@ -18,8 +20,6 @@ pluginManagement {
18
20
  password = extra.properties["genesisArtifactoryPassword"].toString()
19
21
  }
20
22
  }
21
- gradlePluginPortal()
22
- mavenCentral()
23
23
  mavenLocal {
24
24
  content {
25
25
  excludeGroup("org.agrona")
@@ -28,6 +28,9 @@
28
28
  "dev:intellij": "npm run dev",
29
29
  "dev:https": "npm run dev -- --https",
30
30
  "dev:webpack": "npm run dev",
31
+ "genesis-start": "cd ../server && ./gradlew genesisStart",
32
+ "genesis-start:headless": "cd ../server && ./gradlew genesisStart -Pgenesis.start.headless=true -Pgenesis.start.restEnabled=true -Pgenesis.start.restPort=18080",
33
+ "genesis-start:write-script": "cd ../server && ./gradlew writeStartScript -Pgenesis.start.headless=true -Pgenesis.start.restEnabled=true -Pgenesis.start.restPort=18080",
31
34
  "git:setup": "cd .. && npx --no --prefix client husky install",
32
35
  "lint": "genx lint -l ox",
33
36
  "lint:fix": "genx lint -l ox --fix",
@@ -25,6 +25,9 @@
25
25
  "**/*.hbs",
26
26
  "**/.genx/**",
27
27
  "**/src/generated/**",
28
+ {{#if AI.enabled}}
29
+ "**/src/ai/generated/**",
30
+ {{/if}}
28
31
  "**/index.html"
29
32
  ]
30
33
  }
@@ -20,14 +20,17 @@
20
20
  "baseline": "npm run clean && npm run bootstrap",
21
21
  "bootstrap": "npm i --no-fund --no-audit",
22
22
  "bootstrap:ci": "npm ci --no-fund --no-audit",
23
- "build": "genx build -b vite",
23
+ "build": "genx build -b vite{{#if AI.enabled}} -e GENX_ENABLE_AI=true{{/if}}",
24
24
  "build:stats": "npm run build --stats-json",
25
25
  "clean": "genx clean dist node_modules",
26
- "dev": "genx dev -b vite -e API_HOST,PORT,ENABLE_SSO,PERSIST_LAYOUT_IN_DEV",
26
+ "dev": "genx dev -b vite -e API_HOST,PORT,ENABLE_SSO,PERSIST_LAYOUT_IN_DEV{{#if AI.enabled}} -e GENX_ENABLE_AI=true{{/if}}",
27
27
  "dev:docker": "npm run dev -- --host 0.0.0.0",
28
28
  "dev:no-open": "NO_OPEN=true npm run dev",
29
29
  "dev:intellij": "npm run dev",
30
30
  "dev:https": "HTTPS=true npm run dev",
31
+ "genesis-start": "cd ../server && ./gradlew genesisStart",
32
+ "genesis-start:headless": "cd ../server && ./gradlew genesisStart -Pgenesis.start.headless=true -Pgenesis.start.restEnabled=true -Pgenesis.start.restPort=18080",
33
+ "genesis-start:write-script": "cd ../server && ./gradlew writeStartScript -Pgenesis.start.headless=true -Pgenesis.start.restEnabled=true -Pgenesis.start.restPort=18080",
31
34
  "git:setup": "cd .. && npx --no --prefix client husky install",
32
35
  "lint": "genx lint -l ox",
33
36
  "lint:fix": "genx lint -l ox --fix",
@@ -54,6 +57,7 @@
54
57
  "dependencies": {
55
58
  "@microsoft/fast-react-wrapper": ">=0.3.25",
56
59
  "ag-grid-community": "36.0.0",
60
+ "@genesislcap/ai-assistant": "{{versions.UI}}",
57
61
  "@genesislcap/foundation-auth": "{{versions.UI}}",
58
62
  "@genesislcap/foundation-comms": "{{versions.UI}}",
59
63
  "@genesislcap/foundation-criteria": "{{versions.UI}}",
@@ -41,6 +41,9 @@
41
41
  "dev:https": "npm run dev -- -- --https",
42
42
  "dev:vite": "genx dev -e API_HOST,ENABLE_SSO -b vite",
43
43
  "dev:webpack": "genx dev -e API_HOST,ENABLE_SSO -b webpack",
44
+ "genesis-start": "cd ../server && ./gradlew genesisStart",
45
+ "genesis-start:headless": "cd ../server && ./gradlew genesisStart -Pgenesis.start.headless=true -Pgenesis.start.restEnabled=true -Pgenesis.start.restPort=18080",
46
+ "genesis-start:write-script": "cd ../server && ./gradlew writeStartScript -Pgenesis.start.headless=true -Pgenesis.start.restEnabled=true -Pgenesis.start.restPort=18080",
44
47
  "git:setup": "cd .. && npx --no --prefix client husky install",
45
48
  "lint": "genx lint -l ox",
46
49
  "lint:fix": "genx lint -l ox --fix",
@@ -1,23 +1 @@
1
- pluginManagement {
2
- repositories {
3
- if (providers.gradleProperty("useMavenLocal").orNull == "true") {
4
- mavenLocal()
5
- }
6
- maven {
7
- val repoUrl = if (extra.properties["useDevRepo"] == "true") {
8
- "https://genesisglobal.jfrog.io/genesisglobal/dev-repo"
9
- } else {
10
- "https://genesisglobal.jfrog.io/genesisglobal/libs-release-client"
11
- }
12
- url = uri(repoUrl)
13
- credentials {
14
- username = extra.properties["genesisArtifactoryUser"].toString()
15
- password = extra.properties["genesisArtifactoryPassword"].toString()
16
- }
17
- }
18
- gradlePluginPortal()
19
- mavenCentral()
20
- }
21
- }
22
-
23
1
  rootProject.name = "client"
@@ -1,6 +1,6 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
4
4
  networkTimeout=10000
5
5
  validateDistributionUrl=true
6
6
  zipStoreBase=GRADLE_USER_HOME
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/blank-app-seed",
3
3
  "description": "Genesis Blank App Seed",
4
- "version": "5.27.2-prerelease.3",
4
+ "version": "5.28.0",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
7
7
  "release": "semantic-release"
@@ -76,6 +76,7 @@ allprojects {
76
76
  excludeGroup("org.agrona")
77
77
  }
78
78
  }
79
+ mavenCentral()
79
80
  maven {
80
81
  val repoUrl = if(properties["useDevRepo"] == "true") {
81
82
  "https://genesisglobal.jfrog.io/genesisglobal/dev-repo"
@@ -88,7 +89,13 @@ allprojects {
88
89
  password = properties["genesisArtifactoryPassword"].toString()
89
90
  }
90
91
  }
91
- mavenCentral()
92
+ // The Genesis Start launcher (0.1.12+) needs androidx.* artifacts, which none of the repositories
93
+ // above have. Last, and for those groups only, so nothing else is ever looked up at Google.
94
+ google {
95
+ content {
96
+ includeGroupByRegex("androidx\\..*")
97
+ }
98
+ }
92
99
  }
93
100
 
94
101
  publishing {
@@ -1,6 +1,6 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
4
4
  networkTimeout=10000
5
5
  validateDistributionUrl=true
6
6
  zipStoreBase=GRADLE_USER_HOME
@@ -7,7 +7,9 @@ dockerCompactProcesses=true
7
7
  version={{applicationVersion}}
8
8
  genesisVersion={{ versions.GSF }}
9
9
  authVersion={{ versions.Auth }}
10
- startVersion=0.1.9
10
+ # Genesis Start launcher. 0.1.15 is the first release with a headless mode (-Pgenesis.start.headless=true);
11
+ # plain genesisStart still opens the desktop launcher.
12
+ startVersion=0.1.15
11
13
 
12
14
  # Default ssh config for the docker dev environment
13
15
  genesis-home=/app/run
@@ -19,5 +21,3 @@ ssh-port=1337
19
21
  enableDockerContainerTasks=true
20
22
 
21
23
  compactProcessesStrategy=DEV
22
-
23
- useDevRepo=true
@@ -9,6 +9,8 @@ pluginManagement {
9
9
  }
10
10
 
11
11
  repositories {
12
+ mavenCentral()
13
+ gradlePluginPortal()
12
14
  maven {
13
15
  val repoUrl = if(extra.properties["useDevRepo"] == "true") {
14
16
  "https://genesisglobal.jfrog.io/genesisglobal/dev-repo"
@@ -21,8 +23,6 @@ pluginManagement {
21
23
  password = extra.properties["genesisArtifactoryPassword"].toString()
22
24
  }
23
25
  }
24
- gradlePluginPortal()
25
- mavenCentral()
26
26
  mavenLocal {
27
27
  // VERY IMPORTANT!!! EXCLUDE AGRONA AS IT IS A POM DEPENDENCY AND DOES NOT PLAY NICELY WITH MAVEN LOCAL!
28
28
  content {
@@ -3,6 +3,16 @@ package scripts
3
3
  router {
4
4
  webPort = 9064
5
5
  socketPort = 9065
6
+ {{#if AI.enabled}}
7
+
8
+ // Raised for the AI chat proxy: a chat turn carrying history and tool definitions exceeds the
9
+ // platform default of 262144 bytes, and the router refuses an oversized request before the
10
+ // handler sees it. 6 MiB, a little above the proxy's own 5 MiB limit, so a turn just over that
11
+ // limit reaches the proxy and gets its REQUEST_TOO_LARGE code rather than an empty 413.
12
+ httpObjectAggregator {
13
+ maxContentLength = 6291456
14
+ }
15
+ {{/if}}
6
16
 
7
17
  cookieAuthentication {
8
18
  enabled = true
@@ -6,7 +6,7 @@ import global.genesis.db.rx.entity.multi.AsyncEntityDb
6
6
  import global.genesis.testsupport.client.eventhandler.EventClientSync
7
7
  import global.genesis.testsupport.jupiter.GenesisJunit
8
8
  import global.genesis.testsupport.jupiter.ScriptFile
9
- import jakarta.inject.Inject
9
+ import javax.inject.Inject
10
10
  import org.junit.jupiter.api.Test
11
11
  import org.junit.jupiter.api.extension.ExtendWith
12
12