Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions demo-agents/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,18 @@
<script>window.lucide = { createIcons: function () {} };</script>
<script src="https://unpkg.com/lucide@1.52.0/dist/umd/lucide.min.js" integrity="sha384-SSRIJfpvnhji4rCcULgpNXRJjQ9P/odU9OaWxSumsZiokvJ7zAu4PGQVWyWxTG3u" crossorigin="anonymous" defer></script>

<!-- Privacy-light analytics (no cookies, no personal data). -->
<script defer data-domain="joltrinhq.com" src="https://plausible.io/js/script.js"></script>
<script>
window.plausible = window.plausible || function () { (window.plausible.q = window.plausible.q || []).push(arguments); };
function track(name) { try { window.plausible(name); } catch (e) {} }
document.addEventListener('click', function (e) {
var a = e.target.closest && e.target.closest('a[href]'); if (!a) return;
var h = a.getAttribute('href') || '';
if (/\/docs\/|README|#try-it-in-five-minutes/.test(h)) track('docs_click');
else if (/^https:\/\/github\.com\//.test(h)) track('github_click');
});
</script>
<script src="wasm_exec.js"></script>

<!--
Expand Down Expand Up @@ -771,6 +783,7 @@ <h3 class="font-mono text-xs uppercase font-bold text-white mb-3">Open Source &a

function attemptStep(id) {
if (!ready) return;
if (!window.__demoStarted) { window.__demoStarted = true; track('demo_start'); }
const res = JSON.parse(sopAgentsExecuteStep(id));
if (res.blocked) {
log(`<span class="text-rose-400">→ execute_step(${id}) ... BLOCKED</span>`);
Expand All @@ -782,6 +795,7 @@ <h3 class="font-mono text-xs uppercase font-bold text-white mb-3">Open Source &a
}
} else {
log(`<span class="text-brand-400">→ execute_step(${id}) ... committed</span>`);
if (id === 'drop_prod_db') track('demo_complete');
}
renderSteps(res.trace);
afterStep(id, res);
Expand Down
27 changes: 27 additions & 0 deletions demo/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,19 @@
<script>window.lucide = { createIcons: function () {} };</script>
<script src="https://unpkg.com/lucide@1.52.0/dist/umd/lucide.min.js" integrity="sha384-SSRIJfpvnhji4rCcULgpNXRJjQ9P/odU9OaWxSumsZiokvJ7zAu4PGQVWyWxTG3u" crossorigin="anonymous" defer></script>

<!-- Privacy-light analytics (no cookies, no personal data). Events are sent through track() below. -->
<script defer data-domain="joltrinhq.com" src="https://plausible.io/js/script.js"></script>
<script>
window.plausible = window.plausible || function () { (window.plausible.q = window.plausible.q || []).push(arguments); };
function track(name) { try { window.plausible(name); } catch (e) {} }
document.addEventListener('click', function (e) {
var a = e.target.closest && e.target.closest('a[href]'); if (!a) return;
var h = a.getAttribute('href') || '';
if (/\/docs\/|README|#try-it-in-five-minutes/.test(h)) track('docs_click');
else if (/^https:\/\/github\.com\//.test(h)) track('github_click');
});
</script>

<!-- Go WebAssembly Runtime Support -->
<script src="wasm_exec.js"></script>

Expand Down Expand Up @@ -505,6 +518,11 @@
<span class="sm:hidden">Demo</span><span class="hidden sm:inline">Watch demo</span>
</a>

<button type="button" id="top-pro-btn" onclick="track('pro_click'); openProCheckoutModal()"
class="flex items-center space-x-1.5 px-3 py-1.5 rounded-lg bg-gradient-to-r from-brand-600 to-brand-500 hover:from-brand-500 hover:to-brand-400 text-black text-xs font-bold whitespace-nowrap shadow-lg shadow-brand-500/20 transition cursor-pointer">
<span>Get Pro</span><span class="hidden sm:inline font-mono font-medium">$49/mo</span>
</button>

<button onclick="openCommandPalette()" aria-label="Open command palette"
class="hidden sm:flex items-center space-x-2 px-3 py-1.5 rounded-lg bg-dark-800 hover:bg-dark-700 border border-dark-700 text-xs text-slate-400 hover:text-slate-200 transition">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="w-4 h-4"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
Expand Down Expand Up @@ -538,6 +556,7 @@
<a href="./agents/" class="block px-3 py-2 rounded-lg text-slate-300 hover:text-white hover:bg-dark-800 transition">Agents</a>
<a href="./docs/" class="block px-3 py-2 rounded-lg text-slate-400 hover:text-white hover:bg-dark-800 transition">Docs</a>
<a href="#pricing" onclick="closeMobileMenu()" class="block px-3 py-2 rounded-lg text-slate-400 hover:text-white hover:bg-dark-800 transition">Pricing</a>
<button type="button" onclick="closeMobileMenu(); track('pro_click'); openProCheckoutModal()" class="w-full text-left block px-3 py-2 rounded-lg text-brand-400 font-semibold hover:bg-dark-800 transition">Get Pro, $49/mo</button>
<a href="#enterprise" onclick="closeMobileMenu()" class="block px-3 py-2 rounded-lg text-slate-400 hover:text-white hover:bg-dark-800 transition">Enterprise</a>
</nav>
</header>
Expand Down Expand Up @@ -637,6 +656,11 @@ <h1 class="text-3xl sm:text-4xl lg:text-5xl font-extrabold text-white tracking-t
<span>Quickstart on GitHub</span>
</a>
</div>
<div class="mt-5 min-w-0">
<p class="text-[11px] font-mono uppercase tracking-wider text-slate-500 mb-1.5">Or run it now (Go 1.26.10 or newer)</p>
<pre class="rounded-lg bg-dark-950 border border-dark-700 px-3 py-2 font-mono text-xs text-slate-200 overflow-x-auto"><code>go run github.com/sharedcode/joltrin/v5/examples/verify_barrier@latest</code></pre>
<p class="text-[11px] text-slate-500 mt-1.5">It checks the recorded trace, not the world. <a href="#limits" class="underline text-brand-400 hover:text-brand-300">What this does not prove</a></p>
</div>
</div>

<div class="min-w-0">
Expand Down Expand Up @@ -2668,6 +2692,7 @@ <h3 class="font-bold text-white text-sm">${res.title}</h3>
const cycle = form.elements['billing_cycle'].value;

if (!workspace || !email) return;
track('pro_request');

btn.disabled = true;
btnText.innerText = 'Creating Checkout Session...';
Expand Down Expand Up @@ -2777,6 +2802,7 @@ <h3 class="font-bold text-white text-sm">${res.title}</h3>
while (log.children.length > 6) log.removeChild(log.firstChild);
}
function attempt(step) {
if (steps === 0) track('demo_start');
steps++;
var need = rules[step];
if (need && !state[need]) {
Expand All @@ -2786,6 +2812,7 @@ <h3 class="font-bold text-white text-sm">${res.title}</h3>
state[gives[step]] = true;
line('text-brand-400', step + ' ALLOWED');
if (step === 'drop_prod_db') {
track('demo_complete');
line('text-slate-300', blocks === 0 ? 'Done in the right order, with no blocks. Nicely done.' : 'Done. You hit ' + blocks + (blocks === 1 ? ' block' : ' blocks') + ' on the way, which is the barrier doing its job.');
}
}
Expand Down
2 changes: 1 addition & 1 deletion demo/tailwind.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/MONETIZATION_AND_TIERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Commercial tiers are focused entirely on **enterprise governance, compliance, po
| Tier / Edition | Pricing | Distribution | Licensing | Key Capabilities | Implementation Status |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **Free / Open-Source Core** | **$0** (Forever) | Embedded Library & CLI | **MIT License** | • Embedded copy-on-write B-Tree storage engine<br>• WAL + 2PC strict ACID transactions<br>• Reed-Solomon erasure coding and bitrot healing<br>• Durable AI agent memory & checkpointed buffers<br>• In-memory 128-d cosine vector similarity<br>• Embedded MCP server (`cmd/sop-mcp-server`)<br>• Embedded A2A agent runtime (`cmd/sop-a2a-agent`)<br>• Local runbook verification barrier (`verify`)<br>• Developer GitHub OIDC authentication | **Available Today** |
| **Pro Governance** | **$49** / team / mo | Self-Hosted Add-on | Commercial | • Declarative Policy-as-Code compilation<br>• Tamper-evident SHA-256 audit lineage<br>• Signed cryptographic audit export<br>• Team-level workspaces and quota controls<br>• Priority MCP gateways and traffic shaping<br>• Automated Stripe Checkout & Customer Portal | **Available Today** (`governance/`) |
| **Pro Governance** | **$49** / team / mo | Self-Hosted Add-on | Commercial | • Declarative Policy-as-Code compilation<br>• Tamper-evident SHA-256 audit lineage<br>• Signed cryptographic audit export<br>• Team-level workspaces and quota controls<br>• Priority MCP gateways and traffic shaping<br>• Stripe Checkout & Customer Portal code (`governance/billing.go`), switched off on the public site | **Library code exists (`governance/`). Offered as design-partner access by request, not self-serve** |
| **Enterprise Governance** | **Custom** / Annual Contract | Self-Hosted Enterprise | Commercial | • Enterprise SSO: **Okta** & **Microsoft Entra ID**<br>• Multi-tenant RBAC & tenant isolation boundaries<br>• Real-time audit streaming (SIEM / Kafka)<br>• Custom safety invariant enforcement engine<br>• Fine-grained barrier verification rules<br>• Dedicated enterprise compliance & SLA guarantees | **Foundation Implemented** (`governance/`) |
| **Hosted Cloud** | *Usage-based* | Managed Cloud SaaS | Commercial | • Managed Joltrin instances (zero-ops)<br>• Cloud-hosted MCP hub & multi-agent routing<br>• Multi-region database replication<br>• Managed agent coordination network<br>• Automated off-site snapshots & backup verification | **Planned / In Development** |

Expand Down
Loading