specimba commited on
Commit
4c4521d
·
verified ·
1 Parent(s): c7b4d47

fix: practical creation path layout

Browse files
.gitattributes CHANGED
@@ -9,9 +9,3 @@
9
  *.jpeg binary
10
  *.webp binary
11
 
12
- assets/readme/blackwell-runtime.png filter=lfs diff=lfs merge=lfs -text
13
- assets/readme/governance-workflow.png filter=lfs diff=lfs merge=lfs -text
14
- assets/readme/live-command-surface.png filter=lfs diff=lfs merge=lfs -text
15
- assets/readme/model-catalog.png filter=lfs diff=lfs merge=lfs -text
16
- assets/readme/real-flux-artifact.png filter=lfs diff=lfs merge=lfs -text
17
- assets/readme/wardrobe-controls.png filter=lfs diff=lfs merge=lfs -text
 
9
  *.jpeg binary
10
  *.webp binary
11
 
 
 
 
 
 
 
app.py CHANGED
@@ -823,25 +823,26 @@ with gr.Blocks(title="NEXUS Visual Weaver") as demo:
823
  scale=2,
824
  )
825
  with gr.Row():
826
- upload = gr.File(
827
- label="Reference / Output For ST3GG Scan",
828
- file_count="single",
829
- type="filepath",
830
- scale=3,
831
- )
832
  adult_mode = gr.Checkbox(
833
  value=False,
834
  label="Adult Mode 18+ catalog scope",
835
  info="Off by default. Enables adult-tagged catalog entries but does not disable security, consent, or export gates.",
836
  scale=2,
837
  )
838
- run_btn = gr.Button("Run Active Weave", variant="primary", scale=1)
839
- stop_btn = gr.Button("Stop Provider Job", variant="stop", interactive=False, scale=1)
840
- with gr.Row(elem_id="nw-operator-actions", elem_classes=["nw-operator-actions"]):
841
- scan_btn = gr.Button("Scan Reference", scale=1)
842
  checkpoint_btn = gr.Button("Approve Checkpoint", scale=1)
843
  export_btn = gr.Button("Prepare Export Packet", scale=1)
844
  reset_btn = gr.Button("Reset Demo State", scale=1)
 
 
 
 
 
 
 
 
 
 
845
  override_reason = gr.Textbox(
846
  label="ST3GG Override Reason",
847
  placeholder="Required when ST3GG is review/blocked; explain why this audit packet may be written.",
@@ -859,13 +860,14 @@ with gr.Blocks(title="NEXUS Visual Weaver") as demo:
859
  )
860
  command_rail_html = gr.HTML(initial_regions["command_rail"], container=False)
861
  with gr.Column(scale=5, min_width=620, elem_id="nw-main-column"):
 
862
  workflow_html = gr.HTML(initial_regions["workflow"], container=False)
863
  operations_html = gr.HTML(initial_regions["operations"], container=False)
864
- artifact_html = gr.HTML(initial_regions["artifacts"], container=False)
865
  drawer_html = gr.HTML(initial_regions["drawer"], container=False)
866
  with gr.Column(scale=2, min_width=340, elem_id="nw-side-column"):
867
  inspector_html = gr.HTML(initial_regions["inspector"], container=False)
868
- provider_html = gr.HTML(initial_regions["providers"], container=False)
 
869
 
870
  status_html = gr.HTML(initial_regions["status"], container=False)
871
 
 
823
  scale=2,
824
  )
825
  with gr.Row():
 
 
 
 
 
 
826
  adult_mode = gr.Checkbox(
827
  value=False,
828
  label="Adult Mode 18+ catalog scope",
829
  info="Off by default. Enables adult-tagged catalog entries but does not disable security, consent, or export gates.",
830
  scale=2,
831
  )
832
+ run_btn = gr.Button("Run Active Weave", variant="primary", scale=2)
 
 
 
833
  checkpoint_btn = gr.Button("Approve Checkpoint", scale=1)
834
  export_btn = gr.Button("Prepare Export Packet", scale=1)
835
  reset_btn = gr.Button("Reset Demo State", scale=1)
836
+ with gr.Row(elem_id="nw-operator-actions", elem_classes=["nw-operator-actions"]):
837
+ stop_btn = gr.Button("Stop Provider Job", variant="stop", interactive=False, scale=1)
838
+ with gr.Accordion("Optional ST3GG file/reference scan", open=False):
839
+ gr.Markdown("Upload only when you want ST3GG to inspect an external reference or output file. Generation does not require an upload.")
840
+ upload = gr.File(
841
+ label="Optional file for ST3GG scan",
842
+ file_count="single",
843
+ type="filepath",
844
+ )
845
+ scan_btn = gr.Button("Scan Uploaded File", scale=1)
846
  override_reason = gr.Textbox(
847
  label="ST3GG Override Reason",
848
  placeholder="Required when ST3GG is review/blocked; explain why this audit packet may be written.",
 
860
  )
861
  command_rail_html = gr.HTML(initial_regions["command_rail"], container=False)
862
  with gr.Column(scale=5, min_width=620, elem_id="nw-main-column"):
863
+ artifact_html = gr.HTML(initial_regions["artifacts"], container=False)
864
  workflow_html = gr.HTML(initial_regions["workflow"], container=False)
865
  operations_html = gr.HTML(initial_regions["operations"], container=False)
 
866
  drawer_html = gr.HTML(initial_regions["drawer"], container=False)
867
  with gr.Column(scale=2, min_width=340, elem_id="nw-side-column"):
868
  inspector_html = gr.HTML(initial_regions["inspector"], container=False)
869
+ with gr.Accordion("Optional provider lanes", open=False):
870
+ provider_html = gr.HTML(initial_regions["providers"], container=False)
871
 
872
  status_html = gr.HTML(initial_regions["status"], container=False)
873
 
src/nexus_visual_weaver/render.py CHANGED
@@ -59,6 +59,7 @@ def _display_state(value: str) -> str:
59
  normalized = str(value or "").replace("_", " ").strip().lower()
60
  labels = {
61
  "blocked": "Export Gate Active",
 
62
  "missing secret": "Optional - Secret Required",
63
  "missing_secret": "Optional - Secret Required",
64
  "export_ready": "Export Ready",
@@ -947,7 +948,13 @@ def render_status_bar(operator_state: dict | None = None) -> str:
947
  operator_state = operator_state or {}
948
  raw_provider_state = str(operator_state.get("provider_state", "idle"))
949
  provider_state = _display_state(raw_provider_state)
950
- stop_class = "nw-stop-idle" if provider_state == "Idle" else "nw-stop-active"
 
 
 
 
 
 
951
  return f"""
952
  <footer class="nw-statusbar">
953
  {_metric("Runs", "112")}
 
59
  normalized = str(value or "").replace("_", " ").strip().lower()
60
  labels = {
61
  "blocked": "Export Gate Active",
62
+ "generated": "Generated",
63
  "missing secret": "Optional - Secret Required",
64
  "missing_secret": "Optional - Secret Required",
65
  "export_ready": "Export Ready",
 
948
  operator_state = operator_state or {}
949
  raw_provider_state = str(operator_state.get("provider_state", "idle"))
950
  provider_state = _display_state(raw_provider_state)
951
+ stop_class = (
952
+ "nw-stop-idle"
953
+ if provider_state == "Idle"
954
+ else "nw-stop-pass"
955
+ if raw_provider_state in {"generated", "exported", "export_ready", "checkpointed"}
956
+ else "nw-stop-active"
957
+ )
958
  return f"""
959
  <footer class="nw-statusbar">
960
  {_metric("Runs", "112")}
src/nexus_visual_weaver/styles.py CHANGED
@@ -713,12 +713,12 @@ footer { display: none !important; }
713
  }
714
  .nw-preview-stage {
715
  display: grid;
716
- grid-template-columns: minmax(280px, 1fr) 190px;
717
  gap: 10px;
718
  padding: 12px 12px 0;
719
  }
720
  .nw-preview-frame {
721
- min-height: 190px;
722
  border: 1px solid rgba(255,255,255,.08);
723
  border-radius: 7px;
724
  overflow: hidden;
@@ -729,7 +729,7 @@ footer { display: none !important; }
729
  linear-gradient(135deg, #0a0d11, #111820 52%, #080a0d);
730
  }
731
  .nw-preview-image {
732
- min-height: 190px;
733
  display: block;
734
  background:
735
  linear-gradient(130deg, rgba(255,255,255,.16) 0 2px, transparent 3px 52%),
@@ -740,7 +740,7 @@ footer { display: none !important; }
740
  }
741
  .nw-preview-real-image {
742
  width: 100%;
743
- min-height: 190px;
744
  height: 100%;
745
  object-fit: cover;
746
  display: block;
@@ -968,6 +968,13 @@ footer { display: none !important; }
968
  display: grid;
969
  place-items: center;
970
  }
 
 
 
 
 
 
 
971
  @media (max-width: 1100px) {
972
  .nw-topbar { grid-template-columns: 1fr; }
973
  .nw-trust-strip { grid-template-columns: 1fr; }
 
713
  }
714
  .nw-preview-stage {
715
  display: grid;
716
+ grid-template-columns: minmax(420px, 1fr) 190px;
717
  gap: 10px;
718
  padding: 12px 12px 0;
719
  }
720
  .nw-preview-frame {
721
+ min-height: 300px;
722
  border: 1px solid rgba(255,255,255,.08);
723
  border-radius: 7px;
724
  overflow: hidden;
 
729
  linear-gradient(135deg, #0a0d11, #111820 52%, #080a0d);
730
  }
731
  .nw-preview-image {
732
+ min-height: 300px;
733
  display: block;
734
  background:
735
  linear-gradient(130deg, rgba(255,255,255,.16) 0 2px, transparent 3px 52%),
 
740
  }
741
  .nw-preview-real-image {
742
  width: 100%;
743
+ min-height: 300px;
744
  height: 100%;
745
  object-fit: cover;
746
  display: block;
 
968
  display: grid;
969
  place-items: center;
970
  }
971
+ .nw-stop-pass {
972
+ display: grid;
973
+ place-items: center;
974
+ border-color: rgba(46, 229, 157, .45);
975
+ background: linear-gradient(180deg, rgba(38,215,130,.22), rgba(38,215,130,.08));
976
+ color: var(--nw-green);
977
+ }
978
  @media (max-width: 1100px) {
979
  .nw-topbar { grid-template-columns: 1fr; }
980
  .nw-trust-strip { grid-template-columns: 1fr; }