Our ‘Top AI Coding Agents and Development Platforms‘ guide covered what each AI coding agent does and where it fits. This piece is for a different reader. It is written for the procurement lead, the general counsel and the security reviewer.
Those readers ask 4 questions before any rollout. Who pays if generated code triggers an IP claim? Where do prompts live? What can admins log? What do 500 seats actually cost?
We read the current contract language for GitHub Copilot, AWS Kiro, Cursor, Devin and Windsurf. Every term below was checked against the vendor’s own pages on September 26, 2026. This is reporting, not legal advice. Run final terms past counsel.
First, 5 Brands are Really 4 Contracts
Cognition acquired Windsurf. On June 2, 2026, Cognition renamed the Windsurf editor Devin Desktop. Devin and Windsurf now sit on one pricing table and one set of terms.
The Indemnity Table Nobody Publishes
This is the clause that blocks enterprise rollouts. Each row uses the vendor’s current contract. Quotes are short and taken directly from the linked source.
| Vendor (plan) | Governing contract | What the vendor says | Covers generated code? | Cap | Key conditions |
|---|---|---|---|---|---|
| GitHub Copilot (Business, Enterprise) | Copilot Product Specific Terms or Microsoft Product Terms | “uncapped IP indemnification for unmodified outputs” (Copilot Trust Center) | Yes, unmodified output. The Trust Center says this includes unmodified code from the Copilot coding agent. | Uncapped | Duplicate Detection filter no longer required since April 3, 2026. Free, Pro, Pro+ and Max are excluded. |
| AWS Kiro (Pro, Pro+, Pro Max, Power) | AWS Customer Agreement and AWS Service Terms | “Kiro offers indemnity for its output.” (Kiro Enterprise) | Yes, for copyright claims on output | Uncapped for copyright claims, per the AWS Bedrock FAQ | No infringing inputs. Do not disable service filtering features. Free tier not covered. |
| Cursor (business customers) | Cursor MSA, updated August 13, 2026 | Defends claims “that the Service or any Suggestion infringes or misappropriates” third-party IP | Yes, Suggestions are named explicitly | Indemnity is carved out of the 12-month fee cap | Excluded if modified or combined code causes the claim, filters are disabled, or you knew it likely infringed. |
| Cognition: Devin and Devin Desktop (Enterprise) | Cognition MSA, updated June 8, 2026 | Defends claims that the Services infringe patents, copyrights or trade secrets. Excludes Customer Data, defined as “including Outputs”. | No. Outputs fall inside excluded Customer Data. | Supercap: 2x fees paid in the prior 12 months | An executed order form controls over the MSA. Negotiate here. |
| Cognition (Pro, Max, Teams) | Platform Terms, updated June 30, 2026 | Indemnity “applies only to Customers on the Paid Service Tiers” | No. Same Customer Data exclusion. | Greater of 6 months of fees or US$100 | Free tier gets no indemnity. |
Axis 1: Legal Exposure on Generated Code
GitHub Copilot: Microsoft’s April 3, 2026 change matters more than any feature launch. Before it, one admin setting could void coverage. Microsoft’s required-mitigations page now lists no additional mitigations for GitHub offerings. The remaining limit is the word “unmodified”. Most shipped code gets edited, so ask counsel how far edits move code outside scope.
AWS Kiro: Kiro inherits AWS’s generative AI indemnity. AWS describes it as uncapped for copyright claims on output from services listed in Section 50.10. Coverage drops if your inputs infringe or you disable filtering features. Kiro states that paid subscribers ship with this protection included.
Cursor: The MSA is the broadest on paper. It names Suggestions and removes indemnity from the fee cap. The exclusions still bite when a claim relates to a modification or an unapproved combination. The consumer Terms of Service run the other way: users indemnify Anysphere.
Cognition (Devin, Windsurf): Cognition is the outlier. Its MSA defines Customer Data to include Outputs, then excludes Customer Data from indemnity. Generated code therefore sits outside the standard promise. Indemnity is also capped at 2x trailing 12-month fees. Any Devin or Devin Desktop rollout needs this fixed in the order form.
Axis 2: Where Prompts Are Stored
GitHub Copilot: For Business and Enterprise, the plans FAQ says IDE chat and completion prompts are not retained. Prompts from other surfaces, such as github.com, mobile and CLI, are retained for 28 days. User engagement data is kept for 2 years. GitHub does not train on Business or Enterprise data.
Enterprises on GitHub Enterprise Cloud with data residency can pin Copilot inference to the United States or the European Union. That policy adds 10% to AI credit consumption. Each region also exposes a narrower model list.
AWS Kiro: Per Kiro’s data protection page, enterprise content is never used for service improvement. It is stored in the region where your Kiro profile is configured. Inference stays inside the US or Europe geography, except for models tagged experimental. Admins can encrypt data with customer-managed KMS keys.
Cursor: With Privacy Mode on, Cursor holds zero data retention agreements with all model providers and does not train on your code. File contents are cached temporarily, encrypted with client-generated keys. Cursor’s public pages do not offer a customer-selectable processing region. Every request still passes through Cursor’s backend.
Cognition: The MSA bars training on Customer Data without written consent. The Customer Dedicated Deployment runs Devin’s devbox in a single-tenant VPC linked by AWS PrivateLink. The agent’s reasoning layer still runs in Cognition’s cloud. On self-serve paid tiers, Cognition may train on Customer Data until the customer opts out. On Teams, only an admin can opt out.
Axis 3: Audit Logging and Admin Controls
GitHub Copilot: The enterprise audit log records Copilot events under action:copilot. Agent activity appears under actor:Copilot for 180 days, per GitHub’s agent audit reference. GitHub is explicit that prompts sent locally are not in the audit log. Admins also set model, preview-feature and spending policies.
AWS Kiro: SSO runs through IAM Identity Center, Okta or Entra ID. Admins can enable prompt logging and daily user activity reports. Both land in an S3 bucket inside the customer’s AWS account, so prompt records stay under your control.
Cursor: Teams includes SAML or OIDC SSO, team-wide Privacy Mode and usage analytics. Audit logs, SCIM, repository and model access controls, and an AI code tracking API require Enterprise.
Cognition: Teams offers an admin dashboard with analytics. SAML or OIDC SSO, centralized admin controls and VPC deployment are Enterprise only. Cognition’s Enterprise API exposes audit log endpoints.
Axis 4: True Per-Seat Cost at 500 Seats
List prices below are monthly, in USD, before usage overages and taxes. The ‘true’ figure is the cheapest tier that delivers indemnity plus SSO.
| Option | Per seat / month | 500 seats / month | 500 seats / year | Included usage | Buyer note |
|---|---|---|---|---|---|
| GitHub Copilot Business | $19 | $9,500 | $114,000 | 1,900 AI credits per seat, pooled | SAML SSO and data residency need GitHub Enterprise Cloud |
| Copilot Business + GitHub Enterprise Cloud | $40 | $20,000 | $240,000 | Same pool | Real cost if you do not already pay for Enterprise Cloud |
| Copilot Enterprise + GitHub Enterprise Cloud | $60 | $30,000 | $360,000 | 3,900 AI credits per seat, pooled | Adds codebase indexing and github.com integration |
| AWS Kiro Pro | $20 | $10,000 | $120,000 | 1,000 credits per user | Add-on credits $0.04 each. Self-serve tiers cover teams up to 500. |
| AWS Kiro Pro+ | $40 | $20,000 | $240,000 | 2,000 credits per user | Same indemnity as Pro |
| Cursor Teams | $40 | $20,000 | $240,000 | Per plan allowance | Lacks audit logs and SCIM. Enterprise is custom priced. |
| Cognition Teams (Devin, Devin Desktop) | $40 + $80 team fee | Not available | Not available | Daily and weekly quotas | Teams is capped at 200 users. 500 seats means Enterprise, custom priced. |
Sources: GitHub Copilot billing docs, GitHub pricing (Enterprise Cloud from $21 per user), Kiro pricing, Cursor pricing, Devin pricing.
Two meters sit on top of every seat. GitHub moved Copilot to usage-based AI credits on June 1, 2026, where 1 credit equals $0.01. Kiro bills extra credits at $0.04, and enterprise overages are off by default. Agent-heavy teams should model usage, not just seats.
Feature Comparison: Copilot vs Kiro vs Cursor vs Cognition
| Feature | GitHub Copilot | AWS Kiro | Cursor | Cognition (Devin, Windsurf) |
|---|---|---|---|---|
| IP indemnity on generated code | Yes, unmodified output | Yes, copyright claims | Yes, Suggestions | No, Outputs excluded in standard terms |
| Indemnity cap | Uncapped | Uncapped (copyright) | Outside fee cap | 2x trailing 12-month fees (MSA) |
| Trains on business data | No | No (enterprise users) | No, with Privacy Mode | No (Enterprise). Self-serve opt-out needed. |
| Prompt retention | IDE: not retained. Other surfaces: 28 days. | Profile region; optional logging to your S3 | ZDR with model providers under Privacy Mode | Customer tenant with dedicated VPC deployment |
| Customer-selectable region | US or EU (+10% credits) | US or Europe geography, plus GovCloud | Not offered publicly | Dedicated single-tenant VPC (Enterprise) |
| SSO | SAML via GitHub Enterprise Cloud | IAM Identity Center, Okta, Entra ID | SAML or OIDC on Teams | SAML or OIDC on Enterprise |
| Audit logs | Yes, prompts excluded | Prompt logs and activity reports | Enterprise only | Enterprise API audit endpoints |
| 500-seat list price, monthly | $9,500 to $30,000 | $10,000 (Pro) | $20,000 (Teams) or custom | Custom |
Interactive Explainer: Run the Contract Scenarios
Toggle a claim scenario, trace where a prompt travels, and price your own seat count.
‘
#mtp-aicp-x9 .dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(–pu),var(–bl));box-shadow:0 0 12px var(–pu);animation:mtpPulse 2s infinite}
@keyframes mtpPulse{50%{box-shadow:0 0 2px var(–pu)}}
#mtp-aicp-x9 h3{margin:0!important;font-size:19px;color:var(–tx)!important;font-weight:700}
#mtp-aicp-x9 .sub{color:var(–mu)!important;font-size:13px;margin:0 0 14px}
#mtp-aicp-x9 .tabs{display:flex;gap:6px;border-bottom:1px solid var(–line);margin-bottom:16px;overflow-x:auto}
#mtp-aicp-x9 .tab{background:none!important;border:0!important;color:var(–mu)!important;padding:9px 12px;cursor:pointer;font-size:14px;border-bottom:2px solid transparent!important;white-space:nowrap;font-family:inherit}
#mtp-aicp-x9 .tab.on{color:var(–tx)!important;border-bottom-color:var(–pu)!important}
#mtp-aicp-x9 .pane{display:none;animation:mtpFade .35s ease}
#mtp-aicp-x9 .pane.on{display:block}
@keyframes mtpFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#mtp-aicp-x9 .pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
#mtp-aicp-x9 .pill{background:var(–panel)!important;border:1px solid var(–line)!important;color:var(–tx)!important;border-radius:999px;padding:6px 14px;cursor:pointer;font-size:13px;font-family:inherit;transition:all .2s}
#mtp-aicp-x9 .pill.on{border-color:var(–pu)!important;background:rgba(163,113,247,.15)!important}
#mtp-aicp-x9 .tg{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0 14px}
#mtp-aicp-x9 .tg label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(–tx)!important;cursor:pointer}
#mtp-aicp-x9 .sw{position:relative;width:34px;height:18px;background:var(–line);border-radius:9px;transition:.2s;flex:none}
#mtp-aicp-x9 .sw::after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:.2s}
#mtp-aicp-x9 input:checked+.sw{background:var(–pu2)}
#mtp-aicp-x9 input:checked+.sw::after{left:18px}
#mtp-aicp-x9 .tg input{display:none}
#mtp-aicp-x9 .card{background:var(–panel)!important;border:1px solid var(–line)!important;border-radius:10px;padding:14px}
#mtp-aicp-x9 svg text{font-family:inherit}
#mtp-aicp-x9 .flow{width:100%;height:auto;display:block}
#mtp-aicp-x9 .verdict{display:flex;align-items:center;gap:10px;margin-top:10px;font-weight:700;font-size:16px}
#mtp-aicp-x9 .badge{padding:3px 10px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.3px}
#mtp-aicp-x9 .b-g{background:rgba(63,185,80,.18);color:var(–gr)!important}
#mtp-aicp-x9 .b-a{background:rgba(210,153,34,.18);color:var(–am)!important}
#mtp-aicp-x9 .b-r{background:rgba(248,81,73,.18);color:var(–rd)!important}
#mtp-aicp-x9 .why{color:var(–tx)!important;font-size:14px;margin:8px 0 0}
#mtp-aicp-x9 .src{color:var(–mu)!important;font-size:12px;margin-top:8px}
#mtp-aicp-x9 a{color:var(–bl)!important;text-decoration:none}
#mtp-aicp-x9 .cap{margin-top:12px}
#mtp-aicp-x9 .capbar{height:10px;background:var(–panel2);border-radius:5px;overflow:hidden;border:1px solid var(–line)}
#mtp-aicp-x9 .capfill{height:100%;width:0;border-radius:5px;transition:width .9s cubic-bezier(.2,.8,.2,1),background .4s}
#mtp-aicp-x9 .caplbl{display:flex;justify-content:space-between;font-size:12px;color:var(–mu)!important;margin-bottom:4px}
#mtp-aicp-x9 .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
#mtp-aicp-x9 .node{background:var(–panel2)!important;border:1px solid var(–line)!important;border-radius:8px;padding:10px;font-size:12.5px;min-height:92px}
#mtp-aicp-x9 .node b{display:block;font-size:12px;color:var(–pu)!important;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
#mtp-aicp-x9 .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
#mtp-aicp-x9 .chip{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(–line);color:var(–tx)!important;background:var(–panel2)}
#mtp-aicp-x9 .mx{display:grid;grid-template-columns:1.5fr repeat(4,1fr);border:1px solid var(–line);border-radius:10px;overflow:hidden;font-size:13px}
#mtp-aicp-x9 .mx div{padding:9px 8px;border-bottom:1px solid var(–line);border-right:1px solid var(–line)}
#mtp-aicp-x9 .mx .h{background:var(–panel2)!important;font-weight:700;font-size:12px;color:var(–mu)!important}
#mtp-aicp-x9 .mx .c{text-align:center;cursor:pointer;transition:background .2s}
#mtp-aicp-x9 .mx .c:hover{background:rgba(163,113,247,.08)}
#mtp-aicp-x9 .mk{display:inline-block;transform:scale(0);transition:transform .35s cubic-bezier(.3,1.6,.5,1);font-weight:700}
#mtp-aicp-x9 .mk.in{transform:scale(1)}
#mtp-aicp-x9 .ok{color:var(–gr)!important}#mtp-aicp-x9 .pa{color:var(–am)!important}#mtp-aicp-x9 .no{color:var(–rd)!important}
#mtp-aicp-x9 .det{margin-top:10px;min-height:44px;font-size:13.5px}
#mtp-aicp-x9 .ctl{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-bottom:14px}
#mtp-aicp-x9 input[type=range]{width:220px;accent-color:#a371f7}
#mtp-aicp-x9 .seats{font-size:22px;font-weight:700;color:var(–tx)!important}
#mtp-aicp-x9 .bar{margin:10px 0}
#mtp-aicp-x9 .bl{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;gap:8px}
#mtp-aicp-x9 .bl span:last-child{font-weight:700;white-space:nowrap}
#mtp-aicp-x9 .bt{height:14px;background:var(–panel2);border-radius:7px;overflow:hidden;border:1px solid var(–line)}
#mtp-aicp-x9 .bf{height:100%;width:0;border-radius:7px;background:linear-gradient(90deg,var(–pu2),var(–pu));transition:width .8s cubic-bezier(.2,.8,.2,1)}
#mtp-aicp-x9 .bf.k{background:linear-gradient(90deg,#b8860b,#ff9900)}
#mtp-aicp-x9 .bf.cu{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
#mtp-aicp-x9 .bf.na{background:repeating-linear-gradient(45deg,#30363d 0 6px,#21262d 6px 12px)}
#mtp-aicp-x9 .note{font-size:12px;color:var(–mu)!important;margin-top:2px}
#mtp-aicp-x9 .ft{margin-top:16px;padding-top:10px;border-top:1px solid var(–line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:11.5px;color:var(–mu)!important}
#mtp-aicp-x9 .ft .br{color:var(–mtp)!important;font-weight:700}
#mtp-aicp-x9 .pk{fill:var(–pu)}
@media(max-width:640px){#mtp-aicp-x9{padding:14px;font-size:14px}#mtp-aicp-x9 .grid4{grid-template-columns:1fr 1fr}#mtp-aicp-x9 .mx{font-size:11.5px;grid-template-columns:1.3fr repeat(4,1fr)}#mtp-aicp-x9 .mx div{padding:7px 4px}#mtp-aicp-x9 input[type=range]{width:100%}}
</style>
<div class="hd"><span class="dot"></span><h3>AI Coding Agent Contract Explainer</h3></div>
<p class="sub">Contract terms verified September 26, 2026. Reporting, not legal advice.</p>
<div class="tabs" role="tablist">
<button class="tab on" data-p="p1">1. Legal exposure</button>
<button class="tab" data-p="p2">2. Where prompts go</button>
<button class="tab" data-p="p3">3. Audit and admin</button>
<button class="tab" data-p="p4">4. 500-seat cost</button>
</div>
<!– PANE 1 –>
<div class="pane on" id="p1">
<div class="pills" id="v1">
<button class="pill on" data-v="gh">GitHub Copilot</button>
<button class="pill" data-v="ki">AWS Kiro</button>
<button class="pill" data-v="cu">Cursor</button>
<button class="pill" data-v="co">Cognition (Devin, Windsurf)</button>
</div>
<div class="tg">
<label><input type="checkbox" id="t-ed"><span class="sw"></span>Developer edited the generated code</label>
<label><input type="checkbox" id="t-fi"><span class="sw"></span>Vendor content filter turned off</label>
<label><input type="checkbox" id="t-ag"><span class="sw"></span>Code written by the autonomous agent</label>
</div>
<div class="card">
<svg class="flow" viewBox="0 0 640 150" aria-label="Claim flow">
<defs><marker id="mtpA" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#8b949e"/></marker></defs>
<rect x="10" y="45" width="140" height="60" rx="10" fill="#1c2129" stroke="#30363d"/>
<text x="80" y="72" text-anchor="middle" fill="#e6edf3" font-size="13" font-weight="700">3rd-party IP claim</text>
<text x="80" y="90" text-anchor="middle" fill="#8b949e" font-size="11">copyright, patent</text>
<rect x="250" y="45" width="140" height="60" rx="10" fill="#1c2129" stroke="#30363d"/>
<text x="320" y="72" text-anchor="middle" fill="#e6edf3" font-size="13" font-weight="700">Your company</text>
<text x="320" y="90" text-anchor="middle" fill="#8b949e" font-size="11">ships the code</text>
<g id="shield"><path id="shp" d="M555 30 L605 45 L605 85 Q605 115 555 128 Q505 115 505 85 L505 45 Z" fill="#1c2129" stroke="#3fb950" stroke-width="2.5"/>
<text id="shT" x="555" y="84" text-anchor="middle" fill="#3fb950" font-size="13" font-weight="700">Vendor</text></g>
<line x1="150" y1="75" x2="245" y2="75" stroke="#8b949e" stroke-width="1.5" marker-end="url(#mtpA)"/>
<line id="ln2" x1="390" y1="75" x2="500" y2="75" stroke="#8b949e" stroke-width="1.5" stroke-dasharray="6 5" marker-end="url(#mtpA)"/>
<circle id="pkt" class="pk" r="6" cx="150" cy="75"/>
</svg>
<div class="verdict"><span class="badge b-g" id="vb">COVERED</span><span id="vt">Vendor defends the claim</span></div>
<p class="why" id="vw"></p>
<div class="cap"><div class="caplbl"><span>Indemnity cap</span><span id="cl"></span></div><div class="capbar"><div class="capfill" id="cf"></div></div></div>
<p class="src" id="vs"></p>
</div>
</div>
<!– PANE 2 –>
<div class="pane" id="p2">
<div class="pills" id="v2">
<button class="pill on" data-v="gh">GitHub Copilot</button>
<button class="pill" data-v="ki">AWS Kiro</button>
<button class="pill" data-v="cu">Cursor</button>
<button class="pill" data-v="co">Cognition (Devin, Windsurf)</button>
</div>
<div class="card">
<svg class="flow" viewBox="0 0 640 70" aria-label="Prompt path">
<line x1="60" y1="35" x2="580" y2="35" stroke="#30363d" stroke-width="3"/>
<line id="pl" x1="60" y1="35" x2="580" y2="35" stroke="#a371f7" stroke-width="3" stroke-dasharray="4 14"><animate attributeName="stroke-dashoffset" from="36" to="0" dur="0.9s" repeatCount="indefinite"/></line>
<circle cx="60" cy="35" r="11" fill="#161b22" stroke="#a371f7" stroke-width="2"/><circle cx="233" cy="35" r="11" fill="#161b22" stroke="#a371f7" stroke-width="2"/><circle cx="406" cy="35" r="11" fill="#161b22" stroke="#a371f7" stroke-width="2"/><circle cx="580" cy="35" r="11" fill="#161b22" stroke="#a371f7" stroke-width="2"/>
<circle r="5" fill="#58a6ff"><animateMotion dur="2.6s" repeatCount="indefinite" path="M60,35 L580,35"/></circle>
<circle r="5" fill="#58a6ff" opacity=".6"><animateMotion dur="2.6s" begin="1.3s" repeatCount="indefinite" path="M60,35 L580,35"/></circle>
</svg>
<div class="grid4">
<div class="node"><b>1. Developer</b><span id="n1"></span></div>
<div class="node"><b>2. Vendor service</b><span id="n2"></span></div>
<div class="node"><b>3. Model inference</b><span id="n3"></span></div>
<div class="node"><b>4. Storage</b><span id="n4"></span></div>
</div>
<div class="chips" id="pc"></div>
<p class="src" id="ps"></p>
</div>
</div>
<!– PANE 3 –>
<div class="pane" id="p3">
<div class="mx" id="mx"></div>
<div class="det card" id="md">Tap any cell for the detail behind it.</div>
</div>
<!– PANE 4 –>
<div class="pane" id="p4">
<div class="ctl">
<div><div class="note">Seats</div><div class="seats" id="sv">500</div></div>
<input type="range" id="sr" min="50" max="1000" step="50" value="500" aria-label="Seat count">
<div class="tg" style="margin:0"><label><input type="checkbox" id="ghec"><span class="sw"></span>Already paying for GitHub Enterprise Cloud</label></div>
</div>
<div id="bars"></div>
<p class="src">Monthly USD list prices before usage overages and taxes. Sources: GitHub, Kiro, Cursor and Devin pricing pages. Enterprise Cloud priced from $21 per user.</p>
</div>
<div class="ft"><span>Sources linked in the article above. Prices and terms change; confirm in your order form.</span><span class="br">Built by Marktechpost</span></div>
<script>
(function(){
var R=document.getElementById(‘mtp-aicp-x9’);
function $(id){return document.getElementById(id)}
function all(s){return R.querySelectorAll(s)}
/* tabs */
all(‘.tab’).forEach(function(t){t.onclick=function(){all(‘.tab’).forEach(function(x){x.classList.remove(‘on’)});all(‘.pane’).forEach(function(x){x.classList.remove(‘on’)});t.classList.add(‘on’);$(t.dataset.p).classList.add(‘on’);if(t.dataset.p===’p3′)drawMx();if(t.dataset.p===’p4′)drawBars();if(t.dataset.p===’p1′)runClaim();post();}});
/* PANE 1 data */
var L={
gh:{cap:’Uncapped’,capW:100,capC:’#3fb950′,src:’GitHub Copilot Trust Center FAQ; Microsoft CCC required mitigations (April 3, 2026).’,
base:[‘g’,’Covered: uncapped indemnity for unmodified output on Copilot Business and Enterprise.’],
ed:[‘a’,’Outside the stated scope. GitHub promises coverage for "unmodified outputs". Ask counsel how edits change that.’],
fi:[‘g’,’No effect. Since April 3, 2026 the Duplicate Detection filter is no longer required for coverage.’],
ag:[‘g’,’Covered. The Trust Center says unmodified code from the Copilot coding agent stays covered.’]},
ki:{cap:’Uncapped (copyright claims)’,capW:100,capC:’#3fb950′,src:’Kiro Enterprise page; AWS Bedrock FAQ on Indemnified Generative AI Services (Service Terms 50.10).’,
base:[‘g’,’Covered: Kiro offers indemnity for its output on Pro, Pro+, Pro Max and Power.’],
ed:[‘a’,’Not addressed in the summaries we verified. Check the exclusions in AWS Service Terms 50.10.2.’],
fi:[‘r’,’Not covered. AWS requires customers not to disable a service\’s filtering features.’],
ag:[‘g’,’Kiro states its indemnity covers its output, which includes agent task output.’]},
cu:{cap:’Outside the 12-month fee cap’,capW:92,capC:’#3fb950′,src:’Cursor Master Services Agreement, Sections 8(a), 8(b), 9(b), updated August 13, 2026.’,
base:[‘g’,’Covered: Anysphere defends claims that any Suggestion infringes third-party IP.’],
ed:[‘a’,’Excluded where the alleged infringement relates to the modification (Section 8(a)(B)).’],
fi:[‘r’,’Not covered for Suggestions if filters or safety systems were disabled (Section 8(b)(i)).’],
ag:[‘g’,’Suggestions include code and outputs the Service generates, so agent output is in scope.’]},
co:{cap:’2x fees paid in prior 12 months (MSA)’,capW:18,capC:’#f85149′,src:’Cognition MSA Sections 1.4, 9.2(vii), 10.3 (June 8, 2026); Platform Terms 9.1, 10.2 (June 30, 2026).’,
base:[‘r’,’Not covered: the MSA defines Customer Data "including Outputs" and excludes Customer Data from indemnity.’],
ed:[‘r’,’Still not covered. Outputs are excluded whether or not they are edited.’],
fi:[‘r’,’Not covered. The Output exclusion applies regardless of filters.’],
ag:[‘r’,’Not covered. Devin agent Output is still Customer Data under the standard terms.’]}
};
var v1=’gh’;
all(‘#v1 .pill’).forEach(function(p){p.onclick=function(){all(‘#v1 .pill’).forEach(function(x){x.classList.remove(‘on’)});p.classList.add(‘on’);v1=p.dataset.v;runClaim()}});
[‘t-ed’,’t-fi’,’t-ag’].forEach(function(i){$(i).onchange=runClaim});
var anim;
function runClaim(){
var d=L[v1],st=[d.base],sev={g:0,a:1,r:2};
if($(‘t-ed’).checked)st.push(d.ed);if($(‘t-fi’).checked)st.push(d.fi);if($(‘t-ag’).checked)st.push(d.ag);
var worst=st.reduce(function(m,x){return sev[x[0]]>sev[m]?x[0]:m},’g’);
var col={g:’#3fb950′,a:’#d29922′,r:’#f85149′}[worst];
var lab={g:’COVERED’,a:’VERIFY WITH COUNSEL’,r:’NOT COVERED’}[worst];
var txt={g:’Vendor defends and pays the claim’,a:’Coverage depends on contract reading’,r:’Your company carries the claim’}[worst];
$(‘vb’).className=” badge=”” b-=””>’);
$(‘vs’).textContent=”Source: “+d.src;
$(‘shp’).setAttribute(‘stroke’,col);$(‘shT’).setAttribute(‘fill’,col);$(‘shT’).textContent=worst===’r’?’No shield’:’Vendor’;
$(‘ln2’).setAttribute(‘stroke’,worst===’r’?’#f85149′:’#8b949e’);
$(‘cl’).textContent=d.cap;var cf=$(‘cf’);cf.style.width=”0”;cf.style.background=d.capC;setTimeout(function(){cf.style.width=d.capW+’%’},60);
/* packet animation */
cancelAnimationFrame(anim);var p=$(‘pkt’),t0=null,end=worst===’r’?395:500;
function step(ts){if(!t0)t0=ts;var k=Math.min((ts-t0)/1400,1);var x=150+(end-150)*(1-Math.pow(1-k,3));p.setAttribute(‘cx’,x);p.style.fill=k>.7?col:’#a371f7′;if(k<1)anim=requestAnimationFrame(step)}
anim=requestAnimationFrame(step);post();
}
/* PANE 2 */
var P={
gh:{n:[‘IDE, CLI, github.com, mobile’,’GitHub Copilot service’,’Region pinned to US or EU with GHE.com data residency policy (+10% AI credits)’,’IDE chat and completions: prompts not retained. Other surfaces: 28 days. Engagement data: 2 years.’],c:[‘No training on Business or Enterprise data’,’US or EU inference option’,’Prompts absent from audit log’],s:’GitHub Copilot plans FAQ; GitHub Docs, Copilot with data residency.’},
ki:{n:[‘Kiro IDE, CLI, web’,’Kiro on AWS (Bedrock)’,’Cross-region inference kept inside the US or Europe geography; experimental models may route globally’,’Profile region. Optional prompt logs and activity reports in your own S3 bucket.’],c:[‘Enterprise content not used for service improvement’,’Customer-managed KMS keys’,’GovCloud option (~20% higher price)’],s:’Kiro data protection documentation (updated September 17, 2026); Kiro pricing FAQ.’},
cu:{n:[‘Cursor editor, CLI, cloud agents’,’Cursor backend (all requests, even with your own API key)’,’Model providers under zero data retention agreements with Privacy Mode on’,’Temporary file cache encrypted with client-generated keys; not permanently stored’],c:[‘No training with Privacy Mode’,’No customer-selectable region published’,’CMEK documented for Enterprise’],s:’Cursor Data Use page (September 3, 2026); Cursor Security page.’},
co:{n:[‘Devin Desktop (ex-Windsurf), Devin Cloud, CLI’,’Cognition cloud runs the agent “brain”‘,’Model providers; ZDR after a paid-tier opt-out’,’Dedicated deployment: devbox in a single-tenant VPC via AWS PrivateLink’],c:[‘Enterprise: no training without written consent’,’Self-serve paid: training on until opt-out’,’VPC option is Enterprise only’],s:’Cognition MSA 3.3; Platform Terms 3.3.1; Devin enterprise deployment docs.’}
};
var v2=’gh’;
all(‘#v2 .pill’).forEach(function(p){p.onclick=function(){all(‘#v2 .pill’).forEach(function(x){x.classList.remove(‘on’)});p.classList.add(‘on’);v2=p.dataset.v;drawPath()}});
function drawPath(){var d=P[v2];for(var i=0;i<4;i++){var n=$(‘n’+(i+1));n.style.opacity=0;n.textContent=d.n[i];(function(n,i){setTimeout(function(){n.style.transition=’opacity .4s’;n.style.opacity=1},120*i)})(n,i)}
$(‘pc’).innerHTML=d.c.map(function(c){return ‘‘+c+’‘}).join(”);$(‘ps’).textContent=”Source: “+d.s;post()}
/* PANE 3 */
var cols=[‘Copilot’,’Kiro’,’Cursor’,’Cognition’];
var rows=[
[‘SSO’,[[‘ok’,’SAML via GitHub Enterprise Cloud’],[‘ok’,’IAM Identity Center, Okta, Entra ID on paid tiers’],[‘ok’,’SAML or OIDC on Teams’],[‘pa’,’SAML or OIDC on Enterprise only’]]],
[‘SCIM’,[[‘ok’,’Via Enterprise Managed Users on GitHub Enterprise Cloud’],[‘ok’,’SAML and SCIM through IAM Identity Center’],[‘pa’,’Enterprise only’],[‘pa’,’Not listed on the public pricing page’]]],
[‘Audit log’,[[‘ok’,’action:copilot events; agent activity under actor:Copilot for 180 days’],[‘ok’,’Daily user activity reports to your S3 bucket’],[‘pa’,’Enterprise only’],[‘pa’,’Enterprise API audit endpoints’]]],
[‘Prompt logs’,[[‘pa’,’Not in audit log. API usage streaming is in public preview for EMU and data-residency enterprises.’],[‘ok’,’Admin-enabled prompt logging to your S3 bucket’],[‘pa’,’Not listed as an admin feature’],[‘pa’,’Not listed as an admin feature’]]],
[‘Model policy’,[[‘ok’,’Admins control models and preview features’],[‘ok’,’Admins allowlist MCP servers and manage features’],[‘pa’,’Model access controls on Enterprise’],[‘pa’,’Centralized admin controls on Enterprise’]]],
[‘Spend caps’,[[‘ok’,’Admin budgets; admins decide whether paid overage is allowed’],[‘ok’,’Overages disabled by default’],[‘pa’,’Usage analytics on Teams; on-demand usage billed in arrears’],[‘pa’,’Daily and weekly quotas; Enterprise custom’]]]
];
var sym={ok:’✓’,pa:’●’,no:’✗’};
function drawMx(){var h=”
Control
“+cols.map(function(c){return ‘
‘+c+’
‘}).join(”);
rows.forEach(function(r,ri){h+=’
‘+r[0]+’
‘;r[1].forEach(function(c,ci){h+=’
‘+sym[c[0]]+’
‘})});
$(‘mx’).innerHTML=h;var mks=R.querySelectorAll(‘#mx .mk’);mks.forEach(function(m,i){setTimeout(function(){m.classList.add(‘in’)},40*i)});
R.querySelectorAll(‘#mx .c’).forEach(function(c){c.onclick=function(){var r=rows[c.dataset.r];$(‘md’).innerHTML=’‘+cols[c.dataset.c]+’ / ‘+r[0]+’: ‘+r[1][c.dataset.c][1];post()}});
$(‘md’).innerHTML=’✓ published and available ● higher tier, partial, or not published. Tap any cell for detail.’;post()}
/* PANE 4 */
function fmt(n){return ‘$’+n.toLocaleString(‘en-US’)}
function drawBars(){var s=+$(‘sr’).value,g=$(‘ghec’).checked;$(‘sv’).textContent=s;
var o=[
{n:’Copilot Business’+(g?”:’ + Enterprise Cloud’),p:g?19:40,c:”,note:g?’Indemnity, audit log; SSO via your existing Enterprise Cloud’:’$19 Copilot + $21 Enterprise Cloud for SAML SSO and data residency’},
{n:’Copilot Enterprise + Enterprise Cloud’,p:g?39:60,c:”,note:’Adds codebase indexing; 3,900 pooled AI credits per seat’},
{n:’AWS Kiro Pro’,p:20,c:’k’,lim:500,note:’1,000 credits per user; add-ons $0.04 each’},
{n:’Cursor Teams’,p:40,c:’cu’,note:’No audit logs or SCIM on Teams; Enterprise is custom priced’},
{n:’Cognition Teams’,p:40,fee:80,c:”,lim:200,note:’$80 team fee + $40 per seat; capped at 200 users’}];
var max=60*s;var h=””;
o.forEach(function(x){var tot=x.p*s+(x.fee||0),na=x.lim&&s>x.lim;
h+=’
‘});
$(‘bars’).innerHTML=h;setTimeout(function(){R.querySelectorAll(‘#bars .bf’).forEach(function(b){b.style.width=b.dataset.w+’%’})},40);post()}
$(‘sr’).oninput=drawBars;$(‘ghec’).onchange=drawBars;
/* resize to parent */
function post(){try{var h=R.offsetHeight+40;parent.postMessage({mtpEmbed:’mtp-aicp-x9′,height:h},’*’)}catch(e){}}
window.addEventListener(‘resize’,post);
runClaim();drawPath();setTimeout(post,300);
})();