diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Collab_Reposit.iml b/.idea/Collab_Reposit.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/Collab_Reposit.iml
@@ -0,0 +1,9 @@
+
+
# Default ignored files +/shelf/ +/workspace.xml ++ + \ No newline at end of file diff --git a/exportToHTML/Collab_Reposit.iml.html b/exportToHTML/Collab_Reposit.iml.html new file mode 100644 index 0000000..179637a --- /dev/null +++ b/exportToHTML/Collab_Reposit.iml.html @@ -0,0 +1,28 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<module type="JAVA_MODULE" version="4"> + <component name="NewModuleRootManager" inherit-compiler-output="true"> + <exclude-output /> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module>+ + \ No newline at end of file diff --git a/exportToHTML/README.md.html b/exportToHTML/README.md.html new file mode 100644 index 0000000..aa79748 --- /dev/null +++ b/exportToHTML/README.md.html @@ -0,0 +1,21 @@ + + +
# Collab_Reposit +The place to discuss plans and share ideas for the game. ++ + \ No newline at end of file diff --git a/exportToHTML/aws.yml.html b/exportToHTML/aws.yml.html new file mode 100644 index 0000000..3114100 --- /dev/null +++ b/exportToHTML/aws.yml.html @@ -0,0 +1,116 @@ + + +
# This workflow will build and push a new container image to Amazon ECR, +# and then will deploy a new task definition to Amazon ECS, when there is a push to the "master" branch. +# +# To use this workflow, you will need to complete the following set-up steps: +# +# 1. Create an ECR repository to store your images. +# For example: `aws ecr create-repository --repository-name my-ecr-repo --region us-east-2`. +# Replace the value of the `ECR_REPOSITORY` environment variable in the workflow below with your repository's name. +# Replace the value of the `AWS_REGION` environment variable in the workflow below with your repository's region. +# +# 2. Create an ECS task definition, an ECS cluster, and an ECS service. +# For example, follow the Getting Started guide on the ECS console: +# https://us-east-2.console.aws.amazon.com/ecs/home?region=us-east-2#/firstRun +# Replace the value of the `ECS_SERVICE` environment variable in the workflow below with the name you set for the Amazon ECS service. +# Replace the value of the `ECS_CLUSTER` environment variable in the workflow below with the name you set for the cluster. +# +# 3. Store your ECS task definition as a JSON file in your repository. +# The format should follow the output of `aws ecs register-task-definition --generate-cli-skeleton`. +# Replace the value of the `ECS_TASK_DEFINITION` environment variable in the workflow below with the path to the JSON file. +# Replace the value of the `CONTAINER_NAME` environment variable in the workflow below with the name of the container +# in the `containerDefinitions` section of the task definition. +# +# 4. Store an IAM user access key in GitHub Actions secrets named `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`. +# See the documentation for each action used below for the recommended IAM policies for this IAM user, +# and best practices on handling the access key credentials. + +name: Deploy to Amazon ECS + +on: + push: + branches: [ "master" ] + +env: + AWS_REGION: MY_AWS_REGION # set this to your preferred AWS region, e.g. us-west-1 + ECR_REPOSITORY: MY_ECR_REPOSITORY # set this to your Amazon ECR repository name + ECS_SERVICE: MY_ECS_SERVICE # set this to your Amazon ECS service name + ECS_CLUSTER: MY_ECS_CLUSTER # set this to your Amazon ECS cluster name + ECS_TASK_DEFINITION: MY_ECS_TASK_DEFINITION # set this to the path to your Amazon ECS task definition + # file, e.g. .aws/task-definition.json + CONTAINER_NAME: MY_CONTAINER_NAME # set this to the name of the container in the + # containerDefinitions section of your task definition + +permissions: + contents: read + +jobs: + deploy: + name: Deploy + runs-on: ubuntu-latest + environment: production + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Build, tag, and push image to Amazon ECR + id: build-image + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + IMAGE_TAG: ${{ github.sha }} + run: | + # Build a docker container and + # push it to ECR so that it can + # be deployed to ECS. + docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG + echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT + + - name: Fill in the new image ID in the Amazon ECS task definition + id: task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1 + with: + task-definition: ${{ env.ECS_TASK_DEFINITION }} + container-name: ${{ env.CONTAINER_NAME }} + image: ${{ steps.build-image.outputs.image }} + + - name: Deploy Amazon ECS task definition + uses: aws-actions/amazon-ecs-deploy-task-definition@v1 + with: + task-definition: ${{ steps.task-def.outputs.task-definition }} + service: ${{ env.ECS_SERVICE }} + cluster: ${{ env.ECS_CLUSTER }} + wait-for-service-stability: true ++ + \ No newline at end of file diff --git a/exportToHTML/deviceStreaming.xml.html b/exportToHTML/deviceStreaming.xml.html new file mode 100644 index 0000000..01c9a88 --- /dev/null +++ b/exportToHTML/deviceStreaming.xml.html @@ -0,0 +1,1096 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="DeviceStreaming"> + <option name="deviceSelectionList"> + <list> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="Sony" /> + <option name="codename" value="A402SO" /> + <option name="id" value="A402SO" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Sony" /> + <option name="name" value="Xperia 10" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2520" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="27" /> + <option name="brand" value="DOCOMO" /> + <option name="codename" value="F01L" /> + <option name="id" value="F01L" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="FUJITSU" /> + <option name="name" value="F-01L" /> + <option name="screenDensity" value="360" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1280" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="OnePlus" /> + <option name="codename" value="OP535DL1" /> + <option name="id" value="OP535DL1" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="OnePlus" /> + <option name="name" value="CPH2409" /> + <option name="screenDensity" value="401" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2412" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="OnePlus" /> + <option name="codename" value="OP5552L1" /> + <option name="id" value="OP5552L1" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="OnePlus" /> + <option name="name" value="CPH2415" /> + <option name="screenDensity" value="480" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2412" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="OnePlus" /> + <option name="codename" value="OP5552L1" /> + <option name="id" value="OP5552L1" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="OnePlus" /> + <option name="name" value="CPH2415" /> + <option name="screenDensity" value="480" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2412" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="OPPO" /> + <option name="codename" value="OP573DL1" /> + <option name="id" value="OP573DL1" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="OPPO" /> + <option name="name" value="CPH2557" /> + <option name="screenDensity" value="480" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="28" /> + <option name="brand" value="DOCOMO" /> + <option name="codename" value="SH-01L" /> + <option name="id" value="SH-01L" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="SHARP" /> + <option name="name" value="AQUOS sense2 SH-01L" /> + <option name="screenDensity" value="480" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2160" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="Lenovo" /> + <option name="codename" value="TB330FU" /> + <option name="formFactor" value="Tablet" /> + <option name="id" value="TB330FU" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Lenovo" /> + <option name="name" value="Tab M11" /> + <option name="screenDensity" value="240" /> + <option name="screenX" value="1200" /> + <option name="screenY" value="1920" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a05s" /> + <option name="id" value="a05s" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="A05s" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a06" /> + <option name="id" value="a06" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy A06" /> + <option name="screenDensity" value="300" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1600" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a14m" /> + <option name="id" value="a14m" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-A145R" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2408" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a15" /> + <option name="id" value="a15" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="A15" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a15x" /> + <option name="id" value="a15x" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="A15 5G" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a16" /> + <option name="id" value="a16" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-A165M" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a16x" /> + <option name="id" value="a16x" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="A16 5G" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a26x" /> + <option name="id" value="a26x" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-A266B" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a35x" /> + <option name="id" value="a35x" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="A35" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a35x" /> + <option name="id" value="a35x" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="A35" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a36xq" /> + <option name="id" value="a36xq" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-A366E" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="a56x" /> + <option name="id" value="a56x" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-A566E" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="akita" /> + <option name="id" value="akita" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 8a" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="google" /> + <option name="codename" value="akita" /> + <option name="id" value="akita" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 8a" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="arcfox" /> + <option name="id" value="arcfox" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="razr plus 2024" /> + <option name="screenDensity" value="360" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="1272" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="motorola" /> + <option name="codename" value="austin" /> + <option name="id" value="austin" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g 5G (2022)" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1600" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="samsung" /> + <option name="codename" value="b0q" /> + <option name="id" value="b0q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S22 Ultra" /> + <option name="screenDensity" value="600" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3088" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="b6q" /> + <option name="id" value="b6q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Flip 6" /> + <option name="screenDensity" value="340" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2640" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="google" /> + <option name="codename" value="blazer" /> + <option name="id" value="blazer" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 10 Pro" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2410" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="32" /> + <option name="brand" value="google" /> + <option name="codename" value="bluejay" /> + <option name="id" value="bluejay" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 6a" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="caiman" /> + <option name="id" value="caiman" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9 Pro" /> + <option name="screenDensity" value="360" /> + <option name="screenX" value="960" /> + <option name="screenY" value="2142" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="google" /> + <option name="codename" value="caiman" /> + <option name="id" value="caiman" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9 Pro" /> + <option name="screenDensity" value="360" /> + <option name="screenX" value="960" /> + <option name="screenY" value="2142" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="comet" /> + <option name="default" value="true" /> + <option name="id" value="comet" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9 Pro Fold" /> + <option name="screenDensity" value="390" /> + <option name="screenX" value="2076" /> + <option name="screenY" value="2152" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="google" /> + <option name="codename" value="comet" /> + <option name="default" value="true" /> + <option name="id" value="comet" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9 Pro Fold" /> + <option name="screenDensity" value="390" /> + <option name="screenX" value="2076" /> + <option name="screenY" value="2152" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="29" /> + <option name="brand" value="samsung" /> + <option name="codename" value="crownqlteue" /> + <option name="id" value="crownqlteue" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy Note9" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="2220" /> + <option name="screenY" value="1080" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="dm1q" /> + <option name="id" value="dm1q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="S23" /> + <option name="screenDensity" value="480" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="dm2q" /> + <option name="id" value="dm2q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="S23 Plus" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="dm3q" /> + <option name="id" value="dm3q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S23 Ultra" /> + <option name="screenDensity" value="600" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3088" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="dubai" /> + <option name="id" value="dubai" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="edge 30" /> + <option name="screenDensity" value="405" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="e1q" /> + <option name="default" value="true" /> + <option name="id" value="e1q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S24" /> + <option name="screenDensity" value="480" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="e3q" /> + <option name="id" value="e3q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S24 Ultra" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3120" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="samsung" /> + <option name="codename" value="e3q" /> + <option name="id" value="e3q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S24 Ultra" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3120" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="google" /> + <option name="codename" value="eos" /> + <option name="id" value="eos" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Eos" /> + <option name="screenDensity" value="320" /> + <option name="screenX" value="384" /> + <option name="screenY" value="384" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="google" /> + <option name="codename" value="felix" /> + <option name="id" value="felix" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel Fold" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="2208" /> + <option name="screenY" value="1840" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="felix" /> + <option name="id" value="felix" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel Fold" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="2208" /> + <option name="screenY" value="1840" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="google" /> + <option name="codename" value="felix_camera" /> + <option name="id" value="felix_camera" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel Fold (Camera-enabled)" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="2208" /> + <option name="screenY" value="1840" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="fogona" /> + <option name="id" value="fogona" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g play - 2024" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1600" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="fogos" /> + <option name="id" value="fogos" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g34 5G" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1600" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="google" /> + <option name="codename" value="frankel" /> + <option name="id" value="frankel" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 10" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2424" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="g0q" /> + <option name="id" value="g0q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-S906U1" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gta9pwifi" /> + <option name="id" value="gta9pwifi" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-X210" /> + <option name="screenDensity" value="240" /> + <option name="screenX" value="1200" /> + <option name="screenY" value="1920" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gts7lwifi" /> + <option name="id" value="gts7lwifi" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-T870" /> + <option name="screenDensity" value="340" /> + <option name="screenX" value="1600" /> + <option name="screenY" value="2560" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gts7xllite" /> + <option name="id" value="gts7xllite" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-T738U" /> + <option name="screenDensity" value="340" /> + <option name="screenX" value="1600" /> + <option name="screenY" value="2560" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gts8uwifi" /> + <option name="formFactor" value="Tablet" /> + <option name="id" value="gts8uwifi" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy Tab S8 Ultra" /> + <option name="screenDensity" value="320" /> + <option name="screenX" value="1848" /> + <option name="screenY" value="2960" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gts8wifi" /> + <option name="formFactor" value="Tablet" /> + <option name="id" value="gts8wifi" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy Tab S8" /> + <option name="screenDensity" value="274" /> + <option name="screenX" value="1600" /> + <option name="screenY" value="2560" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gts9fe" /> + <option name="id" value="gts9fe" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy Tab S9 FE 5G" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="2304" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="gts9wifi" /> + <option name="id" value="gts9wifi" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-X710" /> + <option name="screenDensity" value="340" /> + <option name="screenX" value="1600" /> + <option name="screenY" value="2560" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="husky" /> + <option name="id" value="husky" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 8 Pro" /> + <option name="screenDensity" value="390" /> + <option name="screenX" value="1008" /> + <option name="screenY" value="2244" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="30" /> + <option name="brand" value="motorola" /> + <option name="codename" value="java" /> + <option name="id" value="java" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="G20" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1600" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="motorola" /> + <option name="codename" value="kansas" /> + <option name="id" value="kansas" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g - 2025" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1604" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="komodo" /> + <option name="id" value="komodo" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9 Pro XL" /> + <option name="screenDensity" value="360" /> + <option name="screenX" value="1008" /> + <option name="screenY" value="2244" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="google" /> + <option name="codename" value="komodo" /> + <option name="id" value="komodo" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9 Pro XL" /> + <option name="screenDensity" value="360" /> + <option name="screenX" value="1008" /> + <option name="screenY" value="2244" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="motorola" /> + <option name="codename" value="lamul" /> + <option name="id" value="lamul" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g05" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1604" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="lion" /> + <option name="id" value="lion" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g04" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1612" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="google" /> + <option name="codename" value="lynx" /> + <option name="id" value="lynx" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 7a" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="lyriq" /> + <option name="id" value="lyriq" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="edge 40" /> + <option name="screenDensity" value="400" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="motorola" /> + <option name="codename" value="manaus" /> + <option name="id" value="manaus" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="edge 40 neo" /> + <option name="screenDensity" value="400" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="motorola" /> + <option name="codename" value="maui" /> + <option name="id" value="maui" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Motorola" /> + <option name="name" value="moto g play - 2023" /> + <option name="screenDensity" value="280" /> + <option name="screenX" value="720" /> + <option name="screenY" value="1600" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="google" /> + <option name="codename" value="mustang" /> + <option name="id" value="mustang" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 10 Pro XL" /> + <option name="screenDensity" value="390" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2404" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="o1q" /> + <option name="id" value="o1q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S21" /> + <option name="screenDensity" value="421" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="31" /> + <option name="brand" value="google" /> + <option name="codename" value="oriole" /> + <option name="id" value="oriole" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 6" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="samsung" /> + <option name="codename" value="pa2q" /> + <option name="id" value="pa2q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="S25+" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="pa3q" /> + <option name="id" value="pa3q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S25 Ultra" /> + <option name="screenDensity" value="600" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3120" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="samsung" /> + <option name="codename" value="pa3q" /> + <option name="id" value="pa3q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S25 Ultra" /> + <option name="screenDensity" value="600" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3120" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="google" /> + <option name="codename" value="panther" /> + <option name="id" value="panther" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 7" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="samsung" /> + <option name="codename" value="psq" /> + <option name="id" value="psq" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S25 Edge" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1440" /> + <option name="screenY" value="3120" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="q5q" /> + <option name="id" value="q5q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy Z Fold5" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1812" /> + <option name="screenY" value="2176" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="q6q" /> + <option name="id" value="q6q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy Z Fold6" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1856" /> + <option name="screenY" value="2160" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="30" /> + <option name="brand" value="google" /> + <option name="codename" value="r11" /> + <option name="formFactor" value="Wear OS" /> + <option name="id" value="r11" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel Watch" /> + <option name="screenDensity" value="320" /> + <option name="screenX" value="384" /> + <option name="screenY" value="384" /> + <option name="type" value="WEAR_OS" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="r11q" /> + <option name="id" value="r11q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-S711U" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="google" /> + <option name="codename" value="rango" /> + <option name="id" value="rango" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 10 Pro Fold" /> + <option name="screenDensity" value="390" /> + <option name="screenX" value="2076" /> + <option name="screenY" value="2152" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="30" /> + <option name="brand" value="google" /> + <option name="codename" value="redfin" /> + <option name="id" value="redfin" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 5" /> + <option name="screenDensity" value="440" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2340" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="shiba" /> + <option name="id" value="shiba" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 8" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="t2q" /> + <option name="id" value="t2q" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="Galaxy S21 Plus" /> + <option name="screenDensity" value="394" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2400" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="33" /> + <option name="brand" value="google" /> + <option name="codename" value="tangorpro" /> + <option name="formFactor" value="Tablet" /> + <option name="id" value="tangorpro" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel Tablet" /> + <option name="screenDensity" value="320" /> + <option name="screenX" value="1600" /> + <option name="screenY" value="2560" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="google" /> + <option name="codename" value="tegu" /> + <option name="id" value="tegu" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9a" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2424" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="google" /> + <option name="codename" value="tokay" /> + <option name="default" value="true" /> + <option name="id" value="tokay" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2424" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="35" /> + <option name="brand" value="google" /> + <option name="codename" value="tokay" /> + <option name="default" value="true" /> + <option name="id" value="tokay" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2424" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="36" /> + <option name="brand" value="google" /> + <option name="codename" value="tokay" /> + <option name="default" value="true" /> + <option name="id" value="tokay" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Google" /> + <option name="name" value="Pixel 9" /> + <option name="screenDensity" value="420" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2424" /> + </PersistentDeviceSelectionData> + <PersistentDeviceSelectionData> + <option name="api" value="34" /> + <option name="brand" value="samsung" /> + <option name="codename" value="xcover7" /> + <option name="id" value="xcover7" /> + <option name="labId" value="google" /> + <option name="manufacturer" value="Samsung" /> + <option name="name" value="SM-G556B" /> + <option name="screenDensity" value="450" /> + <option name="screenX" value="1080" /> + <option name="screenY" value="2408" /> + </PersistentDeviceSelectionData> + </list> + </option> + </component> +</project>+ + \ No newline at end of file diff --git a/exportToHTML/halo (3).js.html b/exportToHTML/halo (3).js.html new file mode 100644 index 0000000..b395f16 --- /dev/null +++ b/exportToHTML/halo (3).js.html @@ -0,0 +1,209 @@ + + +
// HALO Meta-Oracle skeleton script. +// This script defines the HALO core engine (dice roll), plugin hooks, and local storage. +// The detailed symbol definitions (Tarot cards, runes, I Ching, etc.) and deeper synthesis logic +// should be filled in later. + +(function() { + const STORAGE_KEY_PROFILE = 'halo_profile_v1'; + const STORAGE_KEY_READINGS = 'halo_meta_readings_v1'; + // Replace the placeholder with your actual API Gateway invoke URL once deployed. + const API_URL = 'https://YOUR_API_ID.execute-api.YOUR_REGION.amazonaws.com/readings'; + + // Axis definitions + const AXES = ['Body & Hardware','Mind & Narrative','Heart & Relationships','Domain & Magic']; + const VECTORS = ['Ingress','Grow','Stabilize','Release','Transmute','Witness']; + const TIMELINES = [ + 'Right now','Today','This week','This month','This season','This year', + '1–3 years','3–7 years','7–20 years','Lifetime','Generational','Meta' + ]; + const ARCHETYPES = [ + 'The Fool','The Magician','The Healer','The Warrior','The Shield','The Hermit','The Lover', + 'The Trickster','The Phoenix','The Architect','The Bridge','The Teacher','The Explorer', + 'The Mirror','The Guardian','The Key','The Storm','The Weaver','The Sovereign' + ]; + + // Basic utility to roll a die + function rollDie(sides) { + return Math.floor(Math.random() * sides) + 1; + } + + // Load/save profile + function loadProfile() { + try { + return JSON.parse(localStorage.getItem(STORAGE_KEY_PROFILE)) || {}; + } catch (err) { + return {}; + } + } + + function saveProfile(profile) { + localStorage.setItem(STORAGE_KEY_PROFILE, JSON.stringify(profile)); + } + + // Load/save readings + function loadReadings() { + try { + return JSON.parse(localStorage.getItem(STORAGE_KEY_READINGS)) || []; + } catch (err) { + return []; + } + } + + function saveReadings(readings) { + localStorage.setItem(STORAGE_KEY_READINGS, JSON.stringify(readings)); + } + + // Fire-and-forget sync to server if API_URL is set. + async function syncReadingToServer(reading) { + if (!API_URL || API_URL.includes('YOUR_API_ID')) { + return; + } + try { + const payload = { + userId: reading.user?.name || 'anonymous', + reading + }; + await fetch(API_URL, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload) + }); + } catch (err) { + console.warn('Sync failed', err); + } + } + + // Create a new reading + function createReading(question, profile) { + const timestamp = new Date().toISOString(); + const d4 = rollDie(4); + const d6 = rollDie(6); + const d12 = rollDie(12); + const d20 = rollDie(20); + + const reading = { + id: `${Date.now().toString(36)}-${Math.random().toString(16).slice(2,8)}`, + question: question || '', + created_at: timestamp, + halo: { + axis: d4, + vector: d6, + timeline: d12, + archetype: d20, + dice: { d4, d6, d12, d20 } + }, + user: profile, + // plugin results can be added here in the future + }; + + const readings = loadReadings(); + readings.push(reading); + saveReadings(readings); + syncReadingToServer(reading); + return reading; + } + + // Render functions + function renderHistory() { + const historyEl = document.getElementById('history'); + const readings = loadReadings(); + if (!readings.length) { + historyEl.innerHTML = '<p>No readings yet.</p>'; + return; + } + const rows = readings.slice().reverse().map(reading => { + const date = new Date(reading.created_at).toLocaleString(); + const axis = AXES[(reading.halo.axis - 1) % AXES.length]; + const vector = VECTORS[(reading.halo.vector - 1) % VECTORS.length]; + const timeline = TIMELINES[(reading.halo.timeline - 1) % TIMELINES.length]; + const archetype = ARCHETYPES[(reading.halo.archetype - 1) % ARCHETYPES.length]; + return ` + <tr> + <td>${date}</td> + <td>${axis}</td> + <td>${vector}</td> + <td>${timeline}</td> + <td>${archetype}</td> + </tr> + `; + }).join(''); + historyEl.innerHTML = ` + <table> + <thead> + <tr><th>When</th><th>Axis</th><th>Vector</th><th>Timeline</th><th>Archetype</th></tr> + </thead> + <tbody>${rows}</tbody> + </table> + `; + } + + function renderCurrentReading(reading) { + const container = document.getElementById('current-reading'); + if (!reading) { + container.innerHTML = ''; + return; + } + const halo = reading.halo; + container.innerHTML = ` + <h3>HALO Roll</h3> + <p><strong>Axis:</strong> ${AXES[(halo.axis - 1) % AXES.length]} (${halo.dice.d4})</p> + <p><strong>Vector:</strong> ${VECTORS[(halo.vector - 1) % VECTORS.length]} (${halo.dice.d6})</p> + <p><strong>Timeline:</strong> ${TIMELINES[(halo.timeline - 1) % TIMELINES.length]} (${halo.dice.d12})</p> + <p><strong>Archetype:</strong> ${ARCHETYPES[(halo.archetype - 1) % ARCHETYPES.length]} (${halo.dice.d20})</p> + <p><em>This is a bare-bones skeleton. Interpretations and plugin hooks go here.</em></p> + `; + } + + // Initialize UI + function init() { + const profile = loadProfile(); + document.getElementById('profile-name').value = profile.name || ''; + document.getElementById('profile-sun').value = profile.sun || ''; + document.getElementById('profile-moon').value = profile.moon || ''; + document.getElementById('profile-rising').value = profile.rising || ''; + + document.getElementById('save-profile').addEventListener('click', () => { + const p = { + name: document.getElementById('profile-name').value.trim(), + sun: document.getElementById('profile-sun').value.trim(), + moon: document.getElementById('profile-moon').value.trim(), + rising: document.getElementById('profile-rising').value.trim() + }; + saveProfile(p); + }); + + document.getElementById('roll-btn').addEventListener('click', () => { + const q = document.getElementById('question').value.trim(); + const p = loadProfile(); + const r = createReading(q, p); + renderCurrentReading(r); + renderHistory(); + }); + + renderHistory(); + } + + // run + init(); +})(); ++ + \ No newline at end of file diff --git a/exportToHTML/halo.js.html b/exportToHTML/halo.js.html new file mode 100644 index 0000000..1d2872c --- /dev/null +++ b/exportToHTML/halo.js.html @@ -0,0 +1,209 @@ + + +
// HALO Meta-Oracle skeleton script. +// This script defines the HALO core engine (dice roll), plugin hooks, and local storage. +// The detailed symbol definitions (Tarot cards, runes, I Ching, etc.) and deeper synthesis logic +// should be filled in later. + +(function() { + const STORAGE_KEY_PROFILE = 'halo_profile_v1'; + const STORAGE_KEY_READINGS = 'halo_meta_readings_v1'; + // Replace the placeholder with your actual API Gateway invoke URL once deployed. + const API_URL = 'https://YOUR_API_ID.execute-api.YOUR_REGION.amazonaws.com/readings'; + + // Axis definitions + const AXES = ['Body & Hardware','Mind & Narrative','Heart & Relationships','Domain & Magic']; + const VECTORS = ['Ingress','Grow','Stabilize','Release','Transmute','Witness']; + const TIMELINES = [ + 'Right now','Today','This week','This month','This season','This year', + '1–3 years','3–7 years','7–20 years','Lifetime','Generational','Meta' + ]; + const ARCHETYPES = [ + 'The Fool','The Magician','The Healer','The Warrior','The Shield','The Hermit','The Lover', + 'The Trickster','The Phoenix','The Architect','The Bridge','The Teacher','The Explorer', + 'The Mirror','The Guardian','The Key','The Storm','The Weaver','The Sovereign' + ]; + + // Basic utility to roll a die + function rollDie(sides) { + return Math.floor(Math.random() * sides) + 1; + } + + // Load/save profile + function loadProfile() { + try { + return JSON.parse(localStorage.getItem(STORAGE_KEY_PROFILE)) || {}; + } catch (err) { + return {}; + } + } + + function saveProfile(profile) { + localStorage.setItem(STORAGE_KEY_PROFILE, JSON.stringify(profile)); + } + + // Load/save readings + function loadReadings() { + try { + return JSON.parse(localStorage.getItem(STORAGE_KEY_READINGS)) || []; + } catch (err) { + return []; + } + } + + function saveReadings(readings) { + localStorage.setItem(STORAGE_KEY_READINGS, JSON.stringify(readings)); + } + + // Fire-and-forget sync to server if API_URL is set. + async function syncReadingToServer(reading) { + if (!API_URL || API_URL.includes('YOUR_API_ID')) { + return; + } + try { + const payload = { + userId: reading.user?.name || 'anonymous', + reading + }; + await fetch(API_URL, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload) + }); + } catch (err) { + console.warn('Sync failed', err); + } + } + + // Create a new reading + function createReading(question, profile) { + const timestamp = new Date().toISOString(); + const d4 = rollDie(4); + const d6 = rollDie(6); + const d12 = rollDie(12); + const d20 = rollDie(20); + + const reading = { + id: `${Date.now().toString(36)}-${Math.random().toString(16).slice(2,8)}`, + question: question || '', + created_at: timestamp, + halo: { + axis: d4, + vector: d6, + timeline: d12, + archetype: d20, + dice: { d4, d6, d12, d20 } + }, + user: profile, + // plugin results can be added here in the future + }; + + const readings = loadReadings(); + readings.push(reading); + saveReadings(readings); + syncReadingToServer(reading); + return reading; + } + + // Render functions + function renderHistory() { + const historyEl = document.getElementById('history'); + const readings = loadReadings(); + if (!readings.length) { + historyEl.innerHTML = '<p>No readings yet.</p>'; + return; + } + const rows = readings.slice().reverse().map(reading => { + const date = new Date(reading.created_at).toLocaleString(); + const axis = AXES[(reading.halo.axis - 1) % AXES.length]; + const vector = VECTORS[(reading.halo.vector - 1) % VECTORS.length]; + const timeline = TIMELINES[(reading.halo.timeline - 1) % TIMELINES.length]; + const archetype = ARCHETYPES[(reading.halo.archetype - 1) % ARCHETYPES.length]; + return ` + <tr> + <td>${date}</td> + <td>${axis}</td> + <td>${vector}</td> + <td>${timeline}</td> + <td>${archetype}</td> + </tr> + `; + }).join(''); + historyEl.innerHTML = ` + <table> + <thead> + <tr><th>When</th><th>Axis</th><th>Vector</th><th>Timeline</th><th>Archetype</th></tr> + </thead> + <tbody>${rows}</tbody> + </table> + `; + } + + function renderCurrentReading(reading) { + const container = document.getElementById('current-reading'); + if (!reading) { + container.innerHTML = ''; + return; + } + const halo = reading.halo; + container.innerHTML = ` + <h3>HALO Roll</h3> + <p><strong>Axis:</strong> ${AXES[(halo.axis - 1) % AXES.length]} (${halo.dice.d4})</p> + <p><strong>Vector:</strong> ${VECTORS[(halo.vector - 1) % VECTORS.length]} (${halo.dice.d6})</p> + <p><strong>Timeline:</strong> ${TIMELINES[(halo.timeline - 1) % TIMELINES.length]} (${halo.dice.d12})</p> + <p><strong>Archetype:</strong> ${ARCHETYPES[(halo.archetype - 1) % ARCHETYPES.length]} (${halo.dice.d20})</p> + <p><em>This is a bare-bones skeleton. Interpretations and plugin hooks go here.</em></p> + `; + } + + // Initialize UI + function init() { + const profile = loadProfile(); + document.getElementById('profile-name').value = profile.name || ''; + document.getElementById('profile-sun').value = profile.sun || ''; + document.getElementById('profile-moon').value = profile.moon || ''; + document.getElementById('profile-rising').value = profile.rising || ''; + + document.getElementById('save-profile').addEventListener('click', () => { + const p = { + name: document.getElementById('profile-name').value.trim(), + sun: document.getElementById('profile-sun').value.trim(), + moon: document.getElementById('profile-moon').value.trim(), + rising: document.getElementById('profile-rising').value.trim() + }; + saveProfile(p); + }); + + document.getElementById('roll-btn').addEventListener('click', () => { + const q = document.getElementById('question').value.trim(); + const p = loadProfile(); + const r = createReading(q, p); + renderCurrentReading(r); + renderHistory(); + }); + + renderHistory(); + } + + // run + init(); +})(); ++ + \ No newline at end of file diff --git a/exportToHTML/index (3) (1).html.html b/exportToHTML/index (3) (1).html.html new file mode 100644 index 0000000..d49faa1 --- /dev/null +++ b/exportToHTML/index (3) (1).html.html @@ -0,0 +1,287 @@ + + +
<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>HALO Meta-Oracle – Local Prototype</title> + <style> + body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + sans-serif; + margin: 0; + padding: 0; + background: #02030a; + color: #dde3ff; + } + + .app-shell { + max-width: 960px; + margin: 0 auto; + padding: 1.25rem; + } + + h1 { + font-size: 1.6rem; + margin: 0 0 0.75rem; + } + + h2 { + font-size: 1.2rem; + margin-top: 1.5rem; + margin-bottom: 0.5rem; + } + + .card { + background: rgba(6, 10, 30, 0.98); + border-radius: 0.9rem; + padding: 1rem 1.1rem; + margin-bottom: 1rem; + box-shadow: 0 10px 28px rgba(0, 0, 0, 0.6); + border: 1px solid rgba(60, 100, 180, 0.35); + } + + label { + display: block; + font-size: 0.85rem; + margin-bottom: 0.15rem; + opacity: 0.9; + } + + input[type="text"], + textarea, + select { + width: 100%; + box-sizing: border-box; + border-radius: 0.6rem; + border: 1px solid rgba(132, 183, 255, 0.4); + padding: 0.55rem 0.65rem; + font-size: 0.95rem; + background: rgba(4, 9, 29, 0.96); + color: #f7fbff; + outline: none; + } + + textarea { + min-height: 70px; + resize: vertical; + } + + input::placeholder, + textarea::placeholder { + color: rgba(199, 214, 255, 0.6); + } + + .row { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + } + + .row > .col { + flex: 1 1 150px; + } + + button { + border-radius: 999px; + border: none; + padding: 0.55rem 1.2rem; + font-size: 0.95rem; + font-weight: 600; + letter-spacing: 0.02em; + background: linear-gradient(120deg, #355a9f, #5c4fa8, #8a4f9a); + color: #f3f3ff; + cursor: pointer; + margin-top: 0.5rem; + } + + button:disabled { + opacity: 0.5; + cursor: default; + } + + small { + opacity: 0.85; + font-size: 0.78rem; + } + + .pill { + display: inline-flex; + align-items: center; + padding: 0.15rem 0.65rem; + border-radius: 999px; + border: 1px solid rgba(171, 208, 255, 0.4); + font-size: 0.72rem; + margin-right: 0.35rem; + margin-bottom: 0.2rem; + text-transform: uppercase; + letter-spacing: 0.06em; + } + + .reading-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 0.75rem; + margin-top: 0.7rem; + } + + .reading-block { + border-radius: 0.75rem; + border: 1px dashed rgba(152, 196, 255, 0.5); + padding: 0.6rem 0.7rem; + background: rgba(9, 20, 52, 0.8); + font-size: 0.86rem; + } + + .reading-block h3 { + font-size: 0.9rem; + margin: 0 0 0.3rem; + text-transform: uppercase; + letter-spacing: 0.08em; + opacity: 0.9; + } + + .mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + font-size: 0.8rem; + } + + details { + margin-top: 0.4rem; + } + + details summary { + cursor: pointer; + font-size: 0.82rem; + opacity: 0.95; + } + + table { + width: 100%; + border-collapse: collapse; + font-size: 0.8rem; + margin-top: 0.5rem; + } + + th, + td { + border-bottom: 1px solid rgba(106, 151, 230, 0.35); + padding: 0.35rem 0.25rem; + text-align: left; + } + + th { + font-weight: 600; + opacity: 0.9; + } + + .muted { + opacity: 0.7; + font-size: 0.8rem; + } + + .timestamp { + font-size: 0.78rem; + opacity: 0.7; + } + + @media (max-width: 640px) { + .app-shell { + padding: 0.8rem; + } + } + </style> +</head> +<body> + <div class="app-shell"> + <h1>HALO Meta-Oracle – Local Prototype</h1> + + <div class="card"> + <h2>1. Profile</h2> + <p class="muted">Optional but helpful—used for tags and flavor text.</p> + <div class="row"> + <div class="col"> + <label for="profile-name">Name / handle</label> + <input id="profile-name" type="text" placeholder="Player Zero, Apocky, etc." /> + </div> + <div class="col"> + <label for="profile-sun">Sun sign</label> + <input id="profile-sun" type="text" placeholder="Taurus, Leo, etc." /> + </div> + <div class="col"> + <label for="profile-moon">Moon sign</label> + <input id="profile-moon" type="text" placeholder="Gemini, Pisces, etc." /> + </div> + <div class="col"> + <label for="profile-rising">Rising / Ascendant</label> + <input id="profile-rising" type="text" placeholder="Scorpio Rising, etc." /> + </div> + </div> + <button id="save-profile">Save profile locally</button> + <small class="muted">Stored only in this browser using localStorage.</small> + </div> + + <div class="card"> + <h2>2. Ask HALO</h2> + <label for="question">Question or focus</label> + <textarea id="question" placeholder="What do I most need to understand about…?"></textarea> + <button id="roll-btn">Roll the Meta-Oracle</button> + <div id="current-reading" style="margin-top:0.75rem;"></div> + </div> + + <div class="card"> + <h2>3. Past Readings (this device)</h2> + <p class="muted"> + Local Spiritual Blockchain prototype – readings are chained with simple hashes. + </p> + <div id="history"></div> + </div> + + <!-- Co‑op Session card: allows generating shareable sessions --> + <div class="card"> + <h2>4. Co‑op Session</h2> + <p class="muted">Share your Labyrinth session with a friend.</p> + <button id="start-coop">Start Co‑op Session</button> + <button id="copy-coop" style="display:none;">Copy Link</button> + <input + id="coop-link" + type="text" + readonly + placeholder="Your co‑op link will appear here" + style="width:100%;box-sizing:border-box;margin-top:0.5rem;" + /> + </div> + + <!-- Support card: optional tip jar for those who wish to support the project --> + <div class="card"> + <h2>5. Support the Oracle</h2> + <p class="muted">Optional – helps keep the project going.</p> + <button id="support-button">☕ Support the Oracle</button> + <span id="support-badge" class="pill" style="display:none; margin-left:0.5rem;">★ Supporter Mode</span> + </div> + </div> + + <script src="halo.js"></script> +</body> +</html> ++ + \ No newline at end of file diff --git a/exportToHTML/index (3).html.html b/exportToHTML/index (3).html.html new file mode 100644 index 0000000..0160ccf --- /dev/null +++ b/exportToHTML/index (3).html.html @@ -0,0 +1,263 @@ + + +
<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>HALO Meta-Oracle – Local Prototype</title> + <style> + body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + sans-serif; + margin: 0; + padding: 0; + background: #02030a; + color: #dde3ff; + } + + .app-shell { + max-width: 960px; + margin: 0 auto; + padding: 1.25rem; + } + + h1 { + font-size: 1.6rem; + margin: 0 0 0.75rem; + } + + h2 { + font-size: 1.2rem; + margin-top: 1.5rem; + margin-bottom: 0.5rem; + } + + .card { + background: rgba(6, 10, 30, 0.98); + border-radius: 0.9rem; + padding: 1rem 1.1rem; + margin-bottom: 1rem; + box-shadow: 0 10px 28px rgba(0, 0, 0, 0.6); + border: 1px solid rgba(60, 100, 180, 0.35); + } + + label { + display: block; + font-size: 0.85rem; + margin-bottom: 0.15rem; + opacity: 0.9; + } + + input[type="text"], + textarea, + select { + width: 100%; + box-sizing: border-box; + border-radius: 0.6rem; + border: 1px solid rgba(132, 183, 255, 0.4); + padding: 0.55rem 0.65rem; + font-size: 0.95rem; + background: rgba(4, 9, 29, 0.96); + color: #f7fbff; + outline: none; + } + + textarea { + min-height: 70px; + resize: vertical; + } + + input::placeholder, + textarea::placeholder { + color: rgba(199, 214, 255, 0.6); + } + + .row { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + } + + .row > .col { + flex: 1 1 150px; + } + + button { + border-radius: 999px; + border: none; + padding: 0.55rem 1.2rem; + font-size: 0.95rem; + font-weight: 600; + letter-spacing: 0.02em; + background: linear-gradient(120deg, #355a9f, #5c4fa8, #8a4f9a); + color: #f3f3ff; + cursor: pointer; + margin-top: 0.5rem; + } + + button:disabled { + opacity: 0.5; + cursor: default; + } + + small { + opacity: 0.85; + font-size: 0.78rem; + } + + .pill { + display: inline-flex; + align-items: center; + padding: 0.15rem 0.65rem; + border-radius: 999px; + border: 1px solid rgba(171, 208, 255, 0.4); + font-size: 0.72rem; + margin-right: 0.35rem; + margin-bottom: 0.2rem; + text-transform: uppercase; + letter-spacing: 0.06em; + } + + .reading-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 0.75rem; + margin-top: 0.7rem; + } + + .reading-block { + border-radius: 0.75rem; + border: 1px dashed rgba(152, 196, 255, 0.5); + padding: 0.6rem 0.7rem; + background: rgba(9, 20, 52, 0.8); + font-size: 0.86rem; + } + + .reading-block h3 { + font-size: 0.9rem; + margin: 0 0 0.3rem; + text-transform: uppercase; + letter-spacing: 0.08em; + opacity: 0.9; + } + + .mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + font-size: 0.8rem; + } + + details { + margin-top: 0.4rem; + } + + details summary { + cursor: pointer; + font-size: 0.82rem; + opacity: 0.95; + } + + table { + width: 100%; + border-collapse: collapse; + font-size: 0.8rem; + margin-top: 0.5rem; + } + + th, + td { + border-bottom: 1px solid rgba(106, 151, 230, 0.35); + padding: 0.35rem 0.25rem; + text-align: left; + } + + th { + font-weight: 600; + opacity: 0.9; + } + + .muted { + opacity: 0.7; + font-size: 0.8rem; + } + + .timestamp { + font-size: 0.78rem; + opacity: 0.7; + } + + @media (max-width: 640px) { + .app-shell { + padding: 0.8rem; + } + } + </style> +</head> +<body> + <div class="app-shell"> + <h1>HALO Meta-Oracle – Local Prototype</h1> + + <div class="card"> + <h2>1. Profile</h2> + <p class="muted">Optional but helpful—used for tags and flavor text.</p> + <div class="row"> + <div class="col"> + <label for="profile-name">Name / handle</label> + <input id="profile-name" type="text" placeholder="Player Zero, Apocky, etc." /> + </div> + <div class="col"> + <label for="profile-sun">Sun sign</label> + <input id="profile-sun" type="text" placeholder="Taurus, Leo, etc." /> + </div> + <div class="col"> + <label for="profile-moon">Moon sign</label> + <input id="profile-moon" type="text" placeholder="Gemini, Pisces, etc." /> + </div> + <div class="col"> + <label for="profile-rising">Rising / Ascendant</label> + <input id="profile-rising" type="text" placeholder="Scorpio Rising, etc." /> + </div> + </div> + <button id="save-profile">Save profile locally</button> + <small class="muted">Stored only in this browser using localStorage.</small> + </div> + + <div class="card"> + <h2>2. Ask HALO</h2> + <label for="question">Question or focus</label> + <textarea id="question" placeholder="What do I most need to understand about…?"></textarea> + <button id="roll-btn">Roll the Meta-Oracle</button> + <div id="current-reading" style="margin-top:0.75rem;"></div> + </div> + + <div class="card"> + <h2>3. Past Readings (this device)</h2> + <p class="muted"> + Local Spiritual Blockchain prototype – readings are chained with simple hashes. + </p> + <div id="history"></div> + </div> + </div> + + <script src="halo.js"></script> +</body> +</html> ++ + \ No newline at end of file diff --git a/exportToHTML/index.html b/exportToHTML/index.html new file mode 100644 index 0000000..e12b0d7 --- /dev/null +++ b/exportToHTML/index.html @@ -0,0 +1 @@ +
<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>HALO Meta-Oracle – Local Prototype</title> + <style> + body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + sans-serif; + margin: 0; + padding: 0; + background: #02030a; + color: #dde3ff; + } + + .app-shell { + max-width: 960px; + margin: 0 auto; + padding: 1.25rem; + } + + h1 { + font-size: 1.6rem; + margin: 0 0 0.75rem; + } + + h2 { + font-size: 1.2rem; + margin-top: 1.5rem; + margin-bottom: 0.5rem; + } + + .card { + background: rgba(6, 10, 30, 0.98); + border-radius: 0.9rem; + padding: 1rem 1.1rem; + margin-bottom: 1rem; + box-shadow: 0 10px 28px rgba(0, 0, 0, 0.6); + border: 1px solid rgba(60, 100, 180, 0.35); + } + + label { + display: block; + font-size: 0.85rem; + margin-bottom: 0.15rem; + opacity: 0.9; + } + + input[type="text"], + textarea, + select { + width: 100%; + box-sizing: border-box; + border-radius: 0.6rem; + border: 1px solid rgba(132, 183, 255, 0.4); + padding: 0.55rem 0.65rem; + font-size: 0.95rem; + background: rgba(4, 9, 29, 0.96); + color: #f7fbff; + outline: none; + } + + textarea { + min-height: 70px; + resize: vertical; + } + + input::placeholder, + textarea::placeholder { + color: rgba(199, 214, 255, 0.6); + } + + .row { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + } + + .row > .col { + flex: 1 1 150px; + } + + button { + border-radius: 999px; + border: none; + padding: 0.55rem 1.2rem; + font-size: 0.95rem; + font-weight: 600; + letter-spacing: 0.02em; + background: linear-gradient(120deg, #355a9f, #5c4fa8, #8a4f9a); + color: #f3f3ff; + cursor: pointer; + margin-top: 0.5rem; + } + + button:disabled { + opacity: 0.5; + cursor: default; + } + + small { + opacity: 0.85; + font-size: 0.78rem; + } + + .pill { + display: inline-flex; + align-items: center; + padding: 0.15rem 0.65rem; + border-radius: 999px; + border: 1px solid rgba(171, 208, 255, 0.4); + font-size: 0.72rem; + margin-right: 0.35rem; + margin-bottom: 0.2rem; + text-transform: uppercase; + letter-spacing: 0.06em; + } + + .reading-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 0.75rem; + margin-top: 0.7rem; + } + + .reading-block { + border-radius: 0.75rem; + border: 1px dashed rgba(152, 196, 255, 0.5); + padding: 0.6rem 0.7rem; + background: rgba(9, 20, 52, 0.8); + font-size: 0.86rem; + } + + .reading-block h3 { + font-size: 0.9rem; + margin: 0 0 0.3rem; + text-transform: uppercase; + letter-spacing: 0.08em; + opacity: 0.9; + } + + .mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + font-size: 0.8rem; + } + + details { + margin-top: 0.4rem; + } + + details summary { + cursor: pointer; + font-size: 0.82rem; + opacity: 0.95; + } + + table { + width: 100%; + border-collapse: collapse; + font-size: 0.8rem; + margin-top: 0.5rem; + } + + th, + td { + border-bottom: 1px solid rgba(106, 151, 230, 0.35); + padding: 0.35rem 0.25rem; + text-align: left; + } + + th { + font-weight: 600; + opacity: 0.9; + } + + .muted { + opacity: 0.7; + font-size: 0.8rem; + } + + .timestamp { + font-size: 0.78rem; + opacity: 0.7; + } + + @media (max-width: 640px) { + .app-shell { + padding: 0.8rem; + } + } + </style> +</head> +<body> + <div class="app-shell"> + <h1>HALO Meta-Oracle – Local Prototype</h1> + + <div class="card"> + <h2>1. Profile</h2> + <p class="muted">Optional but helpful—used for tags and flavor text.</p> + <div class="row"> + <div class="col"> + <label for="profile-name">Name / handle</label> + <input id="profile-name" type="text" placeholder="Player Zero, Apocky, etc." /> + </div> + <div class="col"> + <label for="profile-sun">Sun sign</label> + <input id="profile-sun" type="text" placeholder="Taurus, Leo, etc." /> + </div> + <div class="col"> + <label for="profile-moon">Moon sign</label> + <input id="profile-moon" type="text" placeholder="Gemini, Pisces, etc." /> + </div> + <div class="col"> + <label for="profile-rising">Rising / Ascendant</label> + <input id="profile-rising" type="text" placeholder="Scorpio Rising, etc." /> + </div> + </div> + <button id="save-profile">Save profile locally</button> + <small class="muted">Stored only in this browser using localStorage.</small> + </div> + + <div class="card"> + <h2>2. Ask HALO</h2> + <label for="question">Question or focus</label> + <textarea id="question" placeholder="What do I most need to understand about…?"></textarea> + <button id="roll-btn">Roll the Meta-Oracle</button> + <div id="current-reading" style="margin-top:0.75rem;"></div> + </div> + + <div class="card"> + <h2>3. Past Readings (this device)</h2> + <p class="muted"> + Local Spiritual Blockchain prototype – readings are chained with simple hashes. + </p> + <div id="history"></div> + </div> + </div> + + <script src="halo.js"></script> +</body> +</html> ++ + \ No newline at end of file diff --git a/exportToHTML/index.js.html b/exportToHTML/index.js.html new file mode 100644 index 0000000..66c3bff --- /dev/null +++ b/exportToHTML/index.js.html @@ -0,0 +1,103 @@ + + +
// HALO Oracle Serverless Lambda handler +// This Lambda function provides two API methods via API Gateway: +// - GET /readings : Returns all reading items from DynamoDB. +// - POST /readings : Stores a new reading item in DynamoDB. + +// The function uses the AWS SDK v3 for DynamoDB with the DocumentClient +// to handle marshalling between native JavaScript types and DynamoDB item +// structures automatically. The target DynamoDB table name can be +// configured via the TABLE_NAME environment variable; otherwise it +// defaults to "HaloReadings". + +const { DynamoDBClient } = require("@aws-sdk/client-dynamodb"); +const { + DynamoDBDocumentClient, + ScanCommand, + PutCommand, +} = require("@aws-sdk/lib-dynamodb"); + +// Create low‑level and Document clients. The region and credentials +// are resolved automatically from the Lambda execution environment. +const ddbClient = new DynamoDBClient({}); +const ddbDocClient = DynamoDBDocumentClient.from(ddbClient); + +exports.handler = async (event) => { + const tableName = process.env.TABLE_NAME || "HaloReadings"; + + try { + // Inspect the HTTP method from the event (when invoked via API Gateway) + const method = (event.httpMethod || event.method || "GET").toUpperCase(); + + // Handle GET requests to list all readings + if (method === "GET") { + const data = await ddbDocClient.send( + new ScanCommand({ TableName: tableName }) + ); + return { + statusCode: 200, + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(data.Items || []), + }; + } + + // Handle POST requests to create a new reading entry + if (method === "POST") { + // Parse the JSON body from the request + let item; + try { + item = JSON.parse(event.body || "{}"); + } catch (parseErr) { + return { + statusCode: 400, + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ message: "Invalid JSON payload" }), + }; + } + + // Write the item to DynamoDB + await ddbDocClient.send( + new PutCommand({ TableName: tableName, Item: item }) + ); + return { + statusCode: 201, + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ message: "Reading stored", item }), + }; + } + + // Method not allowed + return { + statusCode: 405, + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ message: "Method not allowed" }), + }; + } catch (err) { + console.error("Error handling request", err); + return { + statusCode: 500, + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ message: err.message || "Internal server error" }), + }; + } +}; ++ + \ No newline at end of file diff --git a/exportToHTML/markdown.xml.html b/exportToHTML/markdown.xml.html new file mode 100644 index 0000000..de454c0 --- /dev/null +++ b/exportToHTML/markdown.xml.html @@ -0,0 +1,27 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="MarkdownSettings"> + <option name="previewPanelProviderInfo"> + <ProviderInfo name="Compose (experimental)" className="com.intellij.markdown.compose.preview.ComposePanelProvider" /> + </option> + </component> +</project>+ + \ No newline at end of file diff --git a/exportToHTML/misc.xml.html b/exportToHTML/misc.xml.html new file mode 100644 index 0000000..be7e096 --- /dev/null +++ b/exportToHTML/misc.xml.html @@ -0,0 +1,25 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/out" /> + </component> +</project>+ + \ No newline at end of file diff --git a/exportToHTML/modules.xml.html b/exportToHTML/modules.xml.html new file mode 100644 index 0000000..ccbe0eb --- /dev/null +++ b/exportToHTML/modules.xml.html @@ -0,0 +1,27 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/Collab_Reposit.iml" filepath="$PROJECT_DIR$/.idea/Collab_Reposit.iml" /> + </modules> + </component> +</project>+ + \ No newline at end of file diff --git a/exportToHTML/vcs.xml.html b/exportToHTML/vcs.xml.html new file mode 100644 index 0000000..6a0414a --- /dev/null +++ b/exportToHTML/vcs.xml.html @@ -0,0 +1,25 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="Git" /> + </component> +</project>+ + \ No newline at end of file diff --git a/exportToHTML/workspace.xml.html b/exportToHTML/workspace.xml.html new file mode 100644 index 0000000..798a646 --- /dev/null +++ b/exportToHTML/workspace.xml.html @@ -0,0 +1,70 @@ + + +
<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="AutoImportSettings"> + <option name="autoReloadType" value="NONE" /> + </component> + <component name="ChangeListManager"> + <list default="true" id="97a950fa-db8c-4e93-8516-864b9f7aa068" name="Changes" comment="" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ClangdSettings"> + <option name="formatViaClangd" value="false" /> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="ProjectColorInfo"><![CDATA[{ + "associatedIndex": 0 +}]]></component> + <component name="ProjectId" id="36a2yNK1rKNiJ4Kwcf1mJarKpvq" /> + <component name="ProjectViewState"> + <option name="hideEmptyMiddlePackages" value="true" /> + <option name="showLibraryContents" value="true" /> + </component> + <component name="PropertiesComponent"><![CDATA[{ + "keyToString": { + "ModuleVcsDetector.initialDetectionPerformed": "true", + "RunOnceActivity.ShowReadmeOnStart": "true", + "RunOnceActivity.cidr.known.project.marker": "true", + "RunOnceActivity.git.unshallow": "true", + "RunOnceActivity.readMode.enableVisualFormatting": "true", + "cf.first.check.clang-format": "false", + "cidr.known.project.marker": "true", + "git-widget-placeholder": "master", + "ignore.virus.scanning.warn.message": "true", + "kotlin-language-version-configured": "true" + } +}]]></component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="97a950fa-db8c-4e93-8516-864b9f7aa068" name="Changes" comment="" /> + <created>1765230615534</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1765230615534</updated> + </task> + <servers /> + </component> +</project>+ + \ No newline at end of file