Skip to content

Commit dc85818

Browse files
fix urls
1 parent 6f8183d commit dc85818

File tree

10 files changed

+45
-31
lines changed

10 files changed

+45
-31
lines changed

docs/assets/invariant.css

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
font-family: NeueMontreal;
33
src: url("./NeueMontreal-Regular.otf") format("opentype");
44
}
5+
56
@font-face {
67
font-family: NeueMontreal;
78
src: url("./NeueMontreal-Medium.otf") format("opentype");
@@ -17,7 +18,7 @@ body {
1718
overflow-x: hidden;
1819
-webkit-font-smoothing: antialiased !important;
1920
text-rendering: optimizeLegibility;
20-
21+
2122
background-color: #f6f6f6;
2223

2324
--text-color: #0C0C13;
@@ -66,7 +67,7 @@ h1 {
6667

6768
.md-typeset h1 {
6869
color: var(--text-color);
69-
70+
7071
color: #0C0C13;
7172
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
7273
font-size: 38px;
@@ -246,7 +247,9 @@ h1 {
246247
font-weight: 600 !important;
247248
}
248249

249-
h2, h3, h4 {
250+
h2,
251+
h3,
252+
h4 {
250253
margin-top: 40pt !important;
251254
font-weight: 500 !important;
252255
}
@@ -293,7 +296,10 @@ h5 span.optional:after {
293296

294297

295298
/* p when preceded by h5 */
296-
h5 + p, h5 + p + p, h5 + p + p + p, h5 + p + p + p + p {
299+
h5+p,
300+
h5+p+p,
301+
h5+p+p+p,
302+
h5+p+p+p+p {
297303
font-size: 12pt !important;
298304
margin-top: -5pt !important;
299305
}
@@ -302,7 +308,8 @@ a {
302308
text-decoration: underline;
303309
}
304310

305-
.md-nav__list a, .tiles a {
311+
.md-nav__list a,
312+
.tiles a {
306313
text-decoration: none;
307314
}
308315

@@ -319,7 +326,8 @@ a {
319326
font-size: 12pt;
320327
}
321328

322-
.jupyter-wrapper .jp-InputPrompt, .jupyter-wrapper .jp-CodeCell .jp-Cell-inputWrapper .jp-InputPrompt {
329+
.jupyter-wrapper .jp-InputPrompt,
330+
.jupyter-wrapper .jp-CodeCell .jp-Cell-inputWrapper .jp-InputPrompt {
323331
display: none !important;
324332
}
325333

@@ -334,7 +342,8 @@ a {
334342
padding-left: 8pt;
335343
}
336344

337-
.jupyter-wrapper .jp-Cell-inputArea, .jupyter-wrapper .jp-Cell-outputArea {
345+
.jupyter-wrapper .jp-Cell-inputArea,
346+
.jupyter-wrapper .jp-Cell-outputArea {
338347
margin-top: 10pt;
339348
}
340349

@@ -357,7 +366,7 @@ span.llm::before {
357366
background-color: rgb(199, 130, 199);
358367
display: inline-block;
359368
height: 10pt;
360-
369+
361370
padding: 2pt 4pt;
362371
border-radius: 4pt;
363372
}
@@ -370,6 +379,7 @@ label.md-nav__title {
370379
img {
371380
display: inline;
372381
}
382+
373383
background-color: blue;
374384
}
375385

@@ -470,7 +480,8 @@ label.md-nav__title {
470480
background-color: transparent;
471481
}
472482

473-
.online div.title, .offline div.title {
483+
.online div.title,
484+
.offline div.title {
474485
position: absolute;
475486
top: 4pt;
476487
left: 4pt;
@@ -489,7 +500,8 @@ label.md-nav__title {
489500
color: white;
490501
}
491502

492-
.overview .box p, .overview .box i {
503+
.overview .box p,
504+
.overview .box i {
493505
padding: 0pt;
494506
margin: 0pt;
495507
white-space: nowrap;
@@ -519,7 +531,7 @@ label.md-nav__title {
519531
background-color: rgb(239, 239, 239);
520532
}
521533

522-
.overview .box.thirdparty:hover {
534+
.overview .box.thirdparty:hover {
523535
background: none;
524536
cursor: default;
525537
}
@@ -615,11 +627,13 @@ code {
615627
background-color: #f6f6f6;
616628
height: 41pt;
617629
}
630+
618631
.md-header__topic {
619632
font-size: 16pt;
620-
font-family: NeueMontreal,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;
633+
font-family: NeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue, sans-serif;
621634
font-weight: 500;
622635
}
636+
623637
.md-header img {
624638
width: 20pt !important;
625639
height: 20pt !important;
@@ -630,7 +644,8 @@ code {
630644
box-shadow: none !important;
631645
}
632646

633-
.md-nav--primary .md-nav__title[for=__drawer], .md-nav__title {
647+
.md-nav--primary .md-nav__title[for=__drawer],
648+
.md-nav__title {
634649
background: transparent !important;
635650
}
636651

@@ -653,10 +668,6 @@ ul.md-nav__list {
653668
font-weight: 400;
654669
}
655670

656-
.md-nav__item.md-nav__item--section.md-nav__item--nested {
657-
margin-top: 20pt !important;
658-
}
659-
660671
.md-nav__item.md-nav__item--section.md-nav__item--nested>label {
661672
color: black !important;
662673
}

docs/explorer/api/annotations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Annotations provide additional context, facilitating collaboration and agent err
88

99
<figure class='wide'>
1010

11-
<img src="../../assets/annotated-trace.png" alt="An annotated trace" style="width: 100%;">
11+
<img src="{{ base_url }}/assets/annotated-trace.png" alt="An annotated trace" style="width: 100%;">
1212

1313
<figcaption>An annotated trace in Explorer</figcaption>
1414

docs/explorer/api/client-setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The SDK exposes a `Client` class. To create an object of this type, you need two variables: the Invariant API endpoint URL and the API key.
44

55
## Getting the API Key
6-
Navigate to the <img class='inline-invariant' src="../../assets/logo.svg"/> [Invariant Explorer](https://explorer.invariantlabs.ai) and create an account via GitHub Sign-In.
6+
Navigate to the <img class='inline-invariant' src="{{ base_url }}/assets/logo.svg"/> [Invariant Explorer](https://explorer.invariantlabs.ai) and create an account via GitHub Sign-In.
77

88
Once you have created an account, go to your [User Settings](https://explorer.invariantlabs.ai/settings) and generate an API key.
99

docs/explorer/api/uploading-traces/file-uploads.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Apart from API-based uploads, you can also upload datasets to Explorer using the
88

99
To upload a dataset to Explorer, navigate to the [home page](https://explorer.invariantlabs.ai) and click on the `New Dataset` button. This will open the file upload dialog.
1010

11-
![File Upload Dialog](../../assets/explorer-create-dataset.png)
11+
![File Upload Dialog]({{ base_url }}/assets/explorer-create-dataset.png)
1212

1313
Click on the `Choose a File` button and select the dataset file from your local machine. Once the file is selected, click on the `Create` button to start the upload process.
1414

docs/gateway/agent-integrations/openhands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Enable the `Advanced Options` toggle under settings and update the `Base URL` to
3131
https://explorer.invariantlabs.ai/api/v1/gateway/{add-your-dataset-name-here}/openai
3232
```
3333

34-
<img src="../../assets/openhands-integration.png" style="height: 400px !important; display: block; margin: 0 auto;"/>
34+
<img src="{{ base_url }}/assets/openhands-integration.png" style="height: 400px !important; display: block; margin: 0 auto;"/>
3535

3636
> **Note:** Do not include the curly braces `{}`.
3737

docs/guardrails/dataflow-rules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Secure the dataflow of your agentic system, to ensure that sensitive data never
77
Due to their dynamic nature, agentic systems often mix and combine data from different sources, and can easily leak sensitive information. Guardrails provides a simple way to define dataflow rules, to ensure that sensitive data never leaves the system through unintended channels.
88

99
<br/><br/>
10-
<img src="../../assets/guardrails/dataflow.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 400pt;"/>
10+
<img src="{{ base_url }}/assets/guardrails/dataflow.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 400pt;"/>
1111
<br/><br/>
1212

1313
<div class='risks'/>

docs/guardrails/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Before securing an agent, it is important to understand its capabilities. This i
2020
This is important to understand, as it forms the basis for threat modeling and risk assessment. In contrast to traditional software, agentic systems are highly dynamic, meaning tools and APIs can be called in arbitrary ways, and the agent's behavior can change based on the context and the task at hand.
2121

2222
<br/><br/>
23-
<img src="../../assets/guardrails/tool-calls.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 400pt;"/>
23+
<img src="{{ base_url }}/assets/guardrails/tool-calls.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 400pt;"/>
2424
<br/><br/>
2525

2626
## Constraining Your Agent's Capability space with Rules
@@ -30,7 +30,7 @@ Once you have a good understanding of your agent's capabilities, you can start w
3030
Invariant’s guardrailing runtime allows you to express these constraints declaratively, ensuring the agent only operates within predefined security boundaries—even in dynamic and open-ended environments. This makes it easier to detect policy violations, reduce risk exposure, and maintain trust in agentic systems.
3131

3232
<br/><br/>
33-
<img src="../../assets/guardrails/space-overlap.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 290pt;"/>
33+
<img src="{{ base_url }}/assets/guardrails/space-overlap.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 290pt;"/>
3434
<br/><br/>
3535

3636
## Writing Your First Rule
@@ -41,7 +41,7 @@ Let's assume a simple example agent that is capable of managing a user's email i
4141
* `send_email(recipient: str, subject: str, body: str)` to send an email to a user.
4242

4343
<br/><br/>
44-
<img src="../../assets/guardrails/email-agent-example.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 290pt;"/>
44+
<img src="{{ base_url }}/assets/guardrails/email-agent-example.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 290pt;"/>
4545
<br/><br/>
4646

4747
Unconstrained, this agent can easily fail, allowing a bad actor or sheer malfunction to induce failure states such as data leaks, spamming, or even phishing attacks.
@@ -99,7 +99,7 @@ Next, let's also consider different workflows our agent may carry out. For examp
9999
This behavior has the risk that the agent may be prompt injected by an untrusted email, leading to malicious behavior. A possible such scenario is illustratd in the figure below, where an attacker sends a malicious email to the agent, which then leaks sensitive information to the attacker.
100100

101101
<figure>
102-
<img src="../../assets/guardrails/email-agent-flow.png" alt="Malicious email agent flow" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 450pt;"/>
102+
<img src="{{ base_url }}/assets/guardrails/email-agent-flow.png" alt="Malicious email agent flow" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 450pt;"/>
103103
<figcaption>An email agent is prompt injected in a malicious email and then leaks information to an attacker.</figcaption>
104104
</figure>
105105

docs/guardrails/tool-calls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ For security reasons, it is important to ensure that all tool calls an agent exe
1111
Guardrails provide you a powerful way to enforce such security policies, and to limit the agent's tool interface to only the tools and functions that are necessary for the task at hand.
1212

1313
<br/><br/>
14-
<img src="../../assets/guardrails/tool-calls.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 400pt;"/>
14+
<img src="{{ base_url }}/assets/guardrails/tool-calls.svg" alt="Invariant Architecture" class="invariant-architecture" style="display: block; margin: 0 auto; width: 100%; max-width: 400pt;"/>
1515
<br/><br/>
1616

1717
<div class='risks'/>

docs/overrides/main.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
<script src="/assets/js/js-base64/base64.js"></script>
2-
<script src="/assets/js/highlight.js"></script>
3-
41
{% extends "base.html" %}
2+
3+
{% block extrahead %}
4+
{{ super() }}
5+
<script src="{{ base_url }}/assets/js/js-base64/base64.js"></script>
6+
<script src="{{ base_url }}/assets/js/highlight.js"></script>
7+
{% endblock %}

docs/testing/writing/parameterized-tests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,4 @@ def test_check_weather_in(city: str):
4444

4545
When pushing the parameterized test results to Explorer (`invariant test --push`), the resulting test instances will be listed separately:
4646

47-
<img src="../../assets/parameterized_tests.png"/>
47+
<img src="{{ base_url }}/assets/parameterized_tests.png"/>

0 commit comments

Comments
 (0)