@agdf/mcp-server 0.30.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ui/decision.html CHANGED
@@ -74,7 +74,7 @@ Boolean requesting whether a visible border and background is provided by the ho
74
74
  - omitted: host decides border`)}),F({method:B(`ui/request-display-mode`),params:F({mode:Ap.describe(`The display mode being requested.`)})});var qp=F({mode:Ap.describe(`The display mode that was actually set. May differ from requested if not supported.`)}).passthrough(),Jp=L([B(`model`),B(`app`)]).describe(`Tool visibility scope - who can access the tool.`);F({resourceUri:A().optional(),visibility:P(Jp).optional().describe(`Who can access this tool. Default: ["model", "app"]
75
75
  - "model": Tool visible to and callable by the agent
76
76
  - "app": Tool callable by the app from this server only`),csp:To().optional(),permissions:To().optional()}),F({mimeTypes:P(A()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')}),F({method:B(`ui/download-file`),params:F({contents:P(L([Jc,Yc])).describe(`Resource contents to download — embedded (inline data) or linked (host fetches). Uses standard MCP resource types.`)})}),F({method:B(`ui/message`),params:F({role:B(`user`).describe(`Message role, currently only "user" is supported.`),content:P(Xc).describe(`Message content blocks (text, image, etc.).`)})}),F({method:B(`ui/notifications/sandbox-resource-ready`),params:F({html:A().describe(`HTML content to load into the inner iframe.`),sandbox:A().optional().describe(`Optional override for the inner iframe's sandbox attribute.`),csp:Fp.optional().describe(`CSP configuration from resource metadata.`),permissions:Ip.optional().describe(`Sandbox permissions from resource metadata.`)})});var Yp=F({method:B(`ui/notifications/tool-result`),params:al.describe(`Standard MCP tool execution result.`)}),Xp=F({toolInfo:F({id:As.optional().describe(`JSON-RPC id of the tools/call request.`),tool:nl.describe(`Tool definition including name, inputSchema, etc.`)}).optional().describe(`Metadata of the tool call that instantiated this App.`),theme:kp.optional().describe(`Current color theme preference.`),styles:Vp.optional().describe(`Style configuration for theming the app.`),displayMode:Ap.optional().describe(`How the UI is currently displayed.`),availableDisplayModes:P(Ap).optional().describe(`Display modes the host supports.`),containerDimensions:L([F({height:j().describe(`Fixed container height in pixels.`)}),F({maxHeight:L([j(),vo()]).optional().describe(`Maximum container height in pixels.`)})]).and(L([F({width:j().describe(`Fixed container width in pixels.`)}),F({maxWidth:L([j(),vo()]).optional().describe(`Maximum container width in pixels.`)})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
77
- container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:A().optional().describe(`User's language and region preference in BCP 47 format.`),timeZone:A().optional().describe(`User's timezone in IANA format.`),userAgent:A().optional().describe(`Host application identifier.`),platform:L([B(`web`),B(`desktop`),B(`mobile`)]).optional().describe(`Platform type for responsive design decisions.`),deviceCapabilities:F({touch:M().optional().describe(`Whether the device supports touch input.`),hover:M().optional().describe(`Whether the device supports hover interactions.`)}).optional().describe(`Device input capabilities.`),safeAreaInsets:F({top:j().describe(`Top safe area inset in pixels.`),right:j().describe(`Right safe area inset in pixels.`),bottom:j().describe(`Bottom safe area inset in pixels.`),left:j().describe(`Left safe area inset in pixels.`)}).optional().describe(`Mobile safe area boundaries in pixels.`)}).passthrough(),Zp=F({method:B(`ui/notifications/host-context-changed`),params:Xp.describe(`Partial context update containing only changed fields.`)});F({method:B(`ui/update-model-context`),params:F({content:P(Xc).optional().describe(`Context content blocks (text, image, etc.).`),structuredContent:R(A(),N().describe(`Structured content for machine-readable context data.`)).optional().describe(`Structured content for machine-readable context data.`)})}),F({method:B(`ui/initialize`),params:F({appInfo:Us.describe(`App identification (name and version).`),appCapabilities:Kp.describe(`Features and capabilities this app provides.`),protocolVersion:A().describe(`Protocol version this app supports.`)})});var Qp=F({protocolVersion:A().describe(`Negotiated protocol version string (e.g., "2025-11-21").`),hostInfo:Us.describe(`Host application identification and version.`),hostCapabilities:Gp.describe(`Features and capabilities provided by the host.`),hostContext:Xp.describe(`Rich context about the host environment.`)}).passthrough(),$p={target:`draft-2020-12`};async function em(e,t){let n=e[`~standard`];if(n.jsonSchema)return n.jsonSchema[t]($p);throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function tm(e,t,n=``){let r=await e[`~standard`].validate(t);if(r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `);throw Error(n+e)}return r.value}function nm(e){let t=document.documentElement;t.setAttribute(`data-theme`,e),t.style.colorScheme=e}function rm(e,t=document.documentElement){for(let[n,r]of Object.entries(e))r!==void 0&&t.style.setProperty(n,r)}function im(e,t){let n={...e,...t};return t.experimental!==void 0&&(n.experimental={...e.experimental,...t.experimental}),t.tools!==void 0&&(n.tools={...e.tools,...t.tools}),n}var am=class e extends rp{_appInfo;_appCapabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_registeredEvents=new Set;_events=new Sp;_methods=new Cp;setRequestHandler=(...e)=>{let[t,...n]=Tp(`request`,e)??e;this._methods.claim(t,`setRequestHandler`),super.setRequestHandler.call(this,t,...n)};setNotificationHandler=(...e)=>{let[t,...n]=Tp(`notification`,e)??e;this._methods.claim(t,`setNotificationHandler`),super.setNotificationHandler.call(this,t,...n)};removeRequestHandler=e=>{this._methods.release(e),super.removeRequestHandler(e)};removeNotificationHandler=e=>{this._methods.release(e),super.removeNotificationHandler(e)};replaceRequestHandler=(e,...t)=>{this._methods.replace(e),super.setRequestHandler.call(this,e,...t)};_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:Lp,toolinputpartial:Rp,toolresult:Yp,toolcancelled:zp,hostcontextchanged:Zp};static ONE_SHOT_EVENTS=new Set([`toolinput`,`toolinputpartial`,`toolresult`,`toolcancelled`]);_everHadListener=new Set;_assertHandlerTiming(t){if(!e.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),this._ensureEventSlot(e),this._events.setHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),this._ensureEventSlot(e),this._events.addEventListener(e,t)}removeEventListener(e,t){this._events.removeEventListener(e,t)}_ensureEventSlot(e){if(this._registeredEvents.has(e))return;let t=this.eventSchemas[e];if(!t)throw Error(`Unknown event: ${String(e)}`);this.setNotificationHandler(t.shape.method.value,{params:t.shape.params},t=>{let n=t;e===`hostcontextchanged`&&(this._hostContext={...this._hostContext,...n}),this._events.dispatch(e,n)}),this._registeredEvents.add(e)}getEventHandler(e){return this._events.getHandler(e)}warnIfRequestHandlerReplaced(e,t,n){t&&n&&console.warn(`[MCP Apps] ${e} handler replaced. Previous handler will no longer be called.`)}constructor(e,t={},n={autoResize:!0}){super(n),this._appInfo=e,this._appCapabilities=t,this.options=n,this._methods.replace(`notifications/cancelled`),this._methods.replace(`notifications/progress`),!n.allowUnsafeEval&&w({jitless:!0}),this.replaceRequestHandler(`ping`,e=>(console.log(`Received ping:`,e.params),{})),this.setEventHandler(`hostcontextchanged`,void 0)}buildContext(e){return e}registerAppCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after transport is established`);this._appCapabilities=im(this._appCapabilities,e)}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,i=()=>{r._initializedSent&&r._appCapabilities.tools?.listChanged&&r.sendToolListChanged()},a=t.inputSchema!==void 0,o={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,i()},disable(){this.enabled=!1,i()},update(e){Object.assign(this,e),i()},remove(){r._registeredTools[e]===o&&(delete r._registeredTools[e],i())},handler:async(t,r)=>{if(!o.enabled)throw Error(`Tool ${e} is disabled`);let i;if(a){let a=o.inputSchema;i=await n(a?await tm(a,t??{},`Invalid input for tool ${e}: `):t??{},r)}else i=await n(r);return o.outputSchema&&!i.isError&&(i.structuredContent=await tm(o.outputSchema,i.structuredContent,`Invalid output for tool ${e}: `)),i}};return this._registeredTools[e]=o,!this._appCapabilities.tools&&!this.transport&&this.registerAppCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),i(),o}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let n=this._registeredTools[e.name];if(!n)throw Error(`Tool ${e.name} not found`);return n.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([e,t])=>t.enabled).map(async([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?await em(t.inputSchema,`input`):{type:`object`,properties:{}}};return t.outputSchema&&(n.outputSchema=await em(t.outputSchema,`output`)),t.annotations&&(n.annotations=t.annotations),t._meta&&(n._meta=t._meta),n}))}))}async sendToolListChanged(e={}){this._assertInitialized(`sendToolListChanged`),await this.notification({method:`notifications/tools/list_changed`,params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler(`toolinput`)}set ontoolinput(e){this.setEventHandler(`toolinput`,e)}get ontoolinputpartial(){return this.getEventHandler(`toolinputpartial`)}set ontoolinputpartial(e){this.setEventHandler(`toolinputpartial`,e)}get ontoolresult(){return this.getEventHandler(`toolresult`)}set ontoolresult(e){this.setEventHandler(`toolresult`,e)}get ontoolcancelled(){return this.getEventHandler(`toolcancelled`)}set ontoolcancelled(e){this.setEventHandler(`toolcancelled`,e)}get onhostcontextchanged(){return this.getEventHandler(`hostcontextchanged`)}set onhostcontextchanged(e){this.setEventHandler(`hostcontextchanged`,e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced(`onteardown`,this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(`ui/resource-teardown`,{params:Hp.shape.params,result:Up},(e,t)=>{if(!this._onteardown)throw Error(`No onteardown handler set`);return this._onteardown(e,t)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced(`oncalltool`,this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(`tools/call`,(e,t)=>{if(!this._oncalltool)throw Error(`No oncalltool handler set`);return this._oncalltool(e.params,t)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced(`onlisttools`,this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(`tools/list`,(e,t)=>{if(!this._onlisttools)throw Error(`No onlisttools handler set`);return this._onlisttools(e.params,t)})}assertCapabilityForMethod(e){if(e===`sampling/createMessage`&&!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`)}assertRequestHandlerCapability(e){switch(e){case`tools/call`:case`tools/list`:if(!this._appCapabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;default:return}}assertNotificationCapability(e){}async callServerTool(e,t){if(this._assertInitialized(`callServerTool`),typeof e==`string`)throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:`tools/call`,params:e},{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized(`readServerResource`),await this.request({method:`resources/read`,params:e},t)}async listServerResources(e,t){return this._assertInitialized(`listServerResources`),await this.request({method:`resources/list`,params:e},t)}async createSamplingMessage(e,t){return this._assertInitialized(`createSamplingMessage`),await this.request({method:`sampling/createMessage`,params:e},t)}sendMessage(e,t){return this._assertInitialized(`sendMessage`),this.request({method:`ui/message`,params:e},Pp,t)}sendLog(e){return this.notification({method:`notifications/message`,params:e})}updateModelContext(e,t){return this._assertInitialized(`updateModelContext`),this.request({method:`ui/update-model-context`,params:e},Ls,t)}openLink(e,t){return this._assertInitialized(`openLink`),this.request({method:`ui/open-link`,params:e},Mp,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized(`downloadFile`),this.request({method:`ui/download-file`,params:e},Np,t)}requestTeardown(e={}){return this.notification({method:`ui/notifications/request-teardown`,params:e})}requestDisplayMode(e,t){return this._assertInitialized(`requestDisplayMode`),this.request({method:`ui/request-display-mode`,params:e},qp,t)}sendSizeChanged(e){return this.notification({method:`ui/notifications/size-changed`,params:e})}setupSizeChangedNotifications(){let e=!1,t=0,n=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let r=document.documentElement,i=r.style.height;r.style.height=`max-content`;let a=Math.ceil(r.getBoundingClientRect().height);r.style.height=i;let o=Math.ceil(window.innerWidth);(o!==t||a!==n)&&(t=o,n=a,this.sendSizeChanged({width:o,height:a}))}))};r();let i=new ResizeObserver(r);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(e=new Op(window.parent,window.parent),t){if(this.transport)throw Error(`App is already connected. Call close() before connecting again.`);this._initializedSent=!1;try{await super.connect(e);let n=await this.request({method:`ui/initialize`,params:{appCapabilities:this._appCapabilities,appInfo:this._appInfo,protocolVersion:Dp}},Qp,t);if(n===void 0)throw Error(`Server sent invalid initialize result: ${n}`);this._hostCapabilities=n.hostCapabilities,this._hostInfo=n.hostInfo,this._hostContext=n.hostContext,await this.notification({method:`ui/notifications/initialized`}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(e){throw this.close(),e}}},om=/^[a-z0-9][a-z0-9._-]{0,127}$/;Object.freeze([`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`]),Object.freeze([`undecided`,`quick_task`,`verified_change`,`structured_slice`,`structured_delivery`,`block`]);function sm(e,t=``,n=``){if(!om.test(String(e??``)))throw Error(`AGDF_RUN_ID_INVALID`);if(![``,`documents`,`evidence`,`control`,`history`].includes(t)||typeof n!=`string`||n.includes(`\\`)||n.includes(`:`)||n.includes(`\0`)||n&&n.split(`/`).some(e=>!e||e===`.`||e===`..`)||!t&&n&&n!==`RUN_STATE.md`)throw Error(`AGDF_RUN_PATH_INVALID`);return[`.agdf/control/runs/${e}`,t,n].filter(Boolean).join(`/`)}var cm=(e,t)=>sm(e,`documents`,t),lm=(e,t)=>sm(e,`evidence`,t);function um(e,t){if(typeof t!=`string`)return!1;try{for(let n of[`documents`,`evidence`]){let r=sm(e,n)+`/`;if(t.startsWith(r))return sm(e,n,t.slice(r.length))===t}}catch{return!1}return!1}var dm=Object.freeze([`active`,`planned`,`completed`,`archive`]);function fm(e){return!e||e.layout!==`run-folders-v1`||!Array.isArray(e.entries)||!e.counts||typeof e.counts!=`object`||Object.keys(e.counts).length!==dm.length?!1:dm.every(t=>Number.isSafeInteger(e.counts[t])&&e.counts[t]===e.entries.filter(e=>e?.section===t).length)&&e.entries.every(e=>e&&dm.includes(e.section))}var pm=Object.freeze([`work_pending`,`approval_pending`,`qa_report_pending`,`qa_evidence_open`,`qa_correction_open`,`qa_source_decision`,`qa_blocked`,`source_unconfirmed`,`closeout_pending`,`completed`,`unconfirmed`,`run_ended`]);Object.freeze({work_pending:[`Work pending`,`Arbeit offen`],approval_pending:[`Approval pending`,`Freigabe ausstehend`],qa_report_pending:[`QA report pending`,`QA-Bericht ausstehend`],qa_evidence_open:[`QA evidence open`,`QA-Nachweis offen`],qa_correction_open:[`QA correction open`,`QA-Korrektur offen`],qa_source_decision:[`QA source decision required`,`QA: vorgelagerte Entscheidung erforderlich`],qa_blocked:[`QA blocked`,`QA blockiert`],source_unconfirmed:[`Source unconfirmed`,`Quelle nicht bestätigt`],closeout_pending:[`Closeout pending`,`Abschluss offen`],completed:[`Completed`,`Abgeschlossen`],unconfirmed:[`Unconfirmed`,`Nicht bestätigt`],run_ended:[`Run ended`,`Run beendet`]});var mm=(e,t)=>!!e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===t.length&&t.every(t=>Object.hasOwn(e,t)),hm=e=>typeof e==`string`&&om.test(e),gm=e=>typeof e==`string`&&/^sha256:[a-f0-9]{64}$/u.test(e),_m=e=>typeof e==`string`&&!e.includes(`\0`),vm=e=>Array.isArray(e)&&e.every(_m),ym=(e,t)=>typeof e==`string`&&[cm(t,``),lm(t,``)].some(t=>e.startsWith(`${t}/`))&&!/[\\:%?#\0]/u.test(e)&&e.split(`/`).every(e=>e&&e!==`.`&&e!==`..`);function bm(e,t){return!e||!hm(t)?!1:pm.includes(e.kind)&&_m(e.phase)&&[`not_applicable`,`missing`,`unconfirmed`,`pass`,`revise`,`block`].includes(e.qa_outcome)&&[`active`,`completed`,`superseded`,`abandoned`].includes(e.lifecycle)&&vm(e.recorded_approvals)&&e.recorded_approvals.length<=6&&e.recorded_approvals.every(e=>[`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`].includes(e))&&(e.decisive_obligation===null||mm(e.decisive_obligation,[`id`,`routing_target`,`action`,`source_path`])&&_m(e.decisive_obligation.id)&&e.decisive_obligation.id.length<=128&&[`UR`,`PRD`,`SD`,`TP`,`CD+Tests`,`evidence_obligation`].includes(e.decisive_obligation.routing_target)&&_m(e.decisive_obligation.action)&&ym(e.decisive_obligation.source_path,t))&&Number.isSafeInteger(e.open_obligation_count)&&e.open_obligation_count>=0&&e.open_obligation_count<=64&&_m(e.display_action)&&Array.isArray(e.sources)&&e.sources.length<=64&&e.sources.every(e=>mm(e,[`path`,`digest`,`state`])&&ym(e.path,t)&&gm(e.digest)&&e.state===`available`)&&vm(e.limitations)&&e.authorizes===!1}var xm=new Set([`available`,`empty`,`partial`,`invalid`,`missing`,`unsupported`,`blocked`,`stale`,`error`]),K=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Sm=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Sm(e,t[n]));if(!K(e)||!K(t))return!1;let n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.hasOwn(t,n)&&Sm(e[n],t[n]))},q=e=>typeof e==`string`,Cm=e=>e===null||q(e),wm=e=>K(e)&&[`current`,`superseded`,`applicability_unknown`].every(t=>{let n=e[t];return Array.isArray(n)&&n.every(e=>K(e)&&Cm(e.step)&&Cm(e.path)&&q(e.reason)&&(e.available===null||typeof e.available==`boolean`))}),Tm=e=>K(e)&&[`type`,`operation_key`,`effect`,`gate`].every(t=>q(e[t]))&&[`agent`,`human`].includes(String(e.actor)),Em=(e,t)=>K(e)&&bm(e,t)&&new TextEncoder().encode(JSON.stringify(e)).length<=65536,Dm=e=>Array.isArray(e)&&e.every(e=>K(e)&&q(e.resource_id)&&q(e.run_id)&&q(e.type)&&q(e.registered_reference)&&Cm(e.path)&&q(e.status)),Om=e=>Array.isArray(e)&&e.every(e=>K(e)&&q(e.code)&&[`message`,`path`,`next_step`,`severity`,`section`].every(t=>e[t]===void 0||q(e[t]))&&(e.key===void 0||Cm(e.key))),km=e=>typeof e==`string`&&/^sha256:[a-f0-9]{64}$/.test(e),Am=e=>typeof e==`string`&&/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e),jm=e=>typeof e==`string`&&/^[a-f0-9]{64}$/.test(e),Mm=new Set([`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`]);function Nm(e,t,n){if(!K(e)||!K(e.source)||!K(e.display))return!1;let r=e.source,i=e.display,a=e.result,o=[`UR`,`PRD`,`SD`,`TP`].includes(String(r.gate));return r.run_id!==t||!Am(r.revision_id)||r.revision_id!==n||!q(r.gate)||typeof r.available!=`boolean`||!Cm(r.reason)||r.artifact_path!==(o?cm(t,`${r.gate}.md`):null)||!(r.artifact_digest===null||km(r.artifact_digest))||r.available&&(!o||!km(r.artifact_digest)||r.reason!==null)||![`unchecked`,`passed`,`corrections_required`,`unavailable`].includes(String(i.state))||!Cm(i.reason)||![`check`,`authoring`,`reload`].includes(String(i.recovery))||i.findings!==void 0&&(!Om(i.findings)||i.state!==`corrections_required`&&i.findings.length>0)?!1:a===null?i.state===(r.available?`unchecked`:`unavailable`):r.available&&K(a)&&a.run_id===t&&a.gate===r.gate&&a.expected_revision_id===n&&a.revision_id===n&&a.artifact_path===r.artifact_path&&(a.artifact_digest===r.artifact_digest||a.artifact_digest===null&&(i.state===`unavailable`||a.current_gate===r.gate&&a.diagnostics instanceof Array&&a.diagnostics.length===1&&K(a.diagnostics[0])&&a.diagnostics[0].code===`artifact_gate_not_ready`))&&typeof a.ready==`boolean`&&a.readiness_scope===`authoring_checks`&&a.authorizes===!1&&a.semantic_review_required===!0&&a.registration_required===!0&&a.presentation_required===!0&&Array.isArray(a.checks)&&a.checks.every(e=>K(e)&&q(e.name)&&typeof e.ready==`boolean`)&&Array.isArray(a.diagnostics)&&Om(a.diagnostics)&&q(a.next_action)&&(a.readiness_details===void 0||K(a.readiness_details))&&(a.ready?i.state===`passed`&&a.artifact_digest===r.artifact_digest&&a.diagnostics.length===0&&a.checks.length>0&&a.checks.every(e=>e.ready):[`corrections_required`,`unavailable`].includes(String(i.state))&&a.diagnostics.length>0)}function Pm(e,t){if(!K(e)||!K(t)||!Mm.has(String(e.type))||e.schema_version!==`1`||e.authorizes!==!1||!Am(e.revision_id)||!Cm(e.reason)||![`available`,`missing`,`blocked`,`unsupported`,`unavailable`].includes(String(e.source_state))||![`approved`,`draft`,`draft_checked`,`revision_required`,`check_unavailable`,`approval_unconfirmed`,`unavailable`].includes(String(e.state))||![`approved`,`draft`,`current`,`unavailable`].includes(String(e.version_kind))||![`resource_id`,`run_id`,`type`,`registered_reference`].every(n=>e[n]===t[n])||t.status===`blocked`&&e.source_state!==`blocked`)return!1;let n=e.recorded_approval,r=e.check;return n===null||K(n)&&n.status===`approved`&&q(n.evidence)?e.source_state===`available`?!jm(e.content_digest)||r!==null&&!(K(r)&&r.content_digest===e.content_digest&&Nm(r,String(e.run_id),e.revision_id)&&K(r.source)&&r.source.gate===e.type&&r.source.artifact_path===e.registered_reference&&r.result!==null)?!1:e.state===`approved`?e.version_kind===`approved`&&n!==null&&r===null&&e.reason===null:e.state===`approval_unconfirmed`?e.version_kind===`current`&&n!==null&&r===null:n!==null||e.version_kind===`approved`?!1:e.state===`draft`?e.version_kind===`draft`&&r===null:e.state===`draft_checked`||e.state===`revision_required`?e.version_kind===`draft`&&K(r)&&K(r.display)&&r.display.state===(e.state===`draft_checked`?`passed`:`corrections_required`):e.state===`check_unavailable`?e.version_kind===`draft`&&(r===null||K(r)&&K(r.display)&&r.display.state===`unavailable`):e.state===`unavailable`&&e.version_kind===`current`&&r===null:e.content_digest===null&&e.state===`unavailable`&&e.version_kind===`unavailable`&&r===null:!1}function Fm(e){let t=e.document_states;if(t===void 0)return!0;if(!Array.isArray(t)||new TextEncoder().encode(JSON.stringify(t)).length>262144||!Array.isArray(e.resources))return!1;let n=e.resources.filter(e=>K(e)&&Mm.has(String(e.type)));return t.length!==n.length||new Set(t.map(e=>K(e)?e.resource_id:null)).size!==t.length?!1:t.every(t=>{if(!K(t)||t.run_id!==e.run_id||t.revision_id!==e.revision_id||!n.some(e=>Pm(t,e)))return!1;let r=t.recorded_approval,i=t.check,a=K(e.evaluation)&&Array.isArray(e.evaluation.approvals)?e.evaluation.approvals.find(e=>K(e)&&e.gate===t.type&&e.status===`approved`):void 0;return r===null!=(a===void 0)||!(r===null||K(r)&&r.status===`approved`&&q(r.evidence)&&K(e.evaluation)&&Array.isArray(e.evaluation.approvals)&&e.evaluation.approvals.some(e=>K(e)&&e.gate===t.type&&e.status===r.status&&e.evidence===r.evidence))?!1:i===null||K(i)&&Sm({source:i.source,result:i.result,display:i.display},e.draft_check)})}var Im=e=>Array.isArray(e)&&e.length<=64&&e.every(e=>K(e)&&[`resource_id`,`run_id`,`origin`,`path`].every(t=>q(e[t]))&&[`node_id`,`graph_digest`,`content_digest`,`content`,`code`].every(t=>Cm(e[t]))&&[`available`,`unresolved`,`missing`,`blocked`,`unsupported`].includes(String(e.state))&&(e.state!==`available`||q(e.node_id)&&q(e.content_digest)&&q(e.graph_digest)&&q(e.content))),Lm=(e,t)=>e===void 0||e===null&&![`superseded`,`abandoned`].includes(String(t))||K(e)&&e.outcome===t&&[`superseded`,`abandoned`].includes(String(e.outcome))&&Cm(e.reason)&&(e.successor===null||K(e.successor)&&[`run`,`reference`].includes(String(e.successor.kind))&&q(e.successor.value)&&e.successor.verified===(e.successor.kind===`run`))&&(e.confirmed_by===null||K(e.confirmed_by)&&(e.confirmed_by.statement===`unknown`||e.confirmed_by.statement===`cooperative`&&Cm(e.confirmed_by.name)&&Cm(e.confirmed_by.email)))&&Cm(e.closed_at)&&Cm(e.operation_id)&&[`recorded`,`unavailable`].includes(String(e.receipt))&&e.authorizes===!1,Rm=(e,t=!1)=>{if(!K(e)||!q(e.run_id)||!Cm(e.revision_id)||!Cm(e.lifecycle)||!Array.isArray(e.resources)||!Dm(e.resources)||e.resources.some(t=>!K(t)||t.run_id!==e.run_id)||e.title!==void 0&&!q(e.title)||e.diagnostics!==void 0&&!Om(e.diagnostics)||e.work_summary!==void 0&&e.work_summary!==null&&!Em(e.work_summary,e.run_id)||e.draft_check!==void 0&&!Nm(e.draft_check,e.run_id,e.revision_id)||!Fm(e)||!Lm(e.closure,e.lifecycle)||e.evidence_applicability!==void 0&&!wm(e.evidence_applicability))return!1;if(e.evaluation===void 0)return t&&Om(e.diagnostics);let n=e.evaluation,r=e.persisted;return K(n)&&[`status`,`current_gate`,`blocking_reason`,`missing_approval`,`next_allowed_action`,`doctor_status`,`git_evidence`].every(e=>q(n[e]))&&(n.next_operation===void 0||n.next_operation===null||Tm(n.next_operation))&&(n.completion===void 0||K(n.completion)&&[`pending`,`completed`,`unconfirmed`,`superseded`,`abandoned`].includes(String(n.completion.status))&&q(n.completion.gate)&&typeof n.completion.fulfilled==`boolean`&&n.completion.status===`completed`===n.completion.fulfilled)&&Cm(n.next_action_de)&&Om(n.diagnostics)&&Array.isArray(n.missing_evidence)&&(n.control_assessment===void 0||K(n.control_assessment)&&[`open`,`blocked`,`unconfirmed`,`completed`,`ended`].includes(String(n.control_assessment.state))&&n.control_assessment.authorizes===!1)&&Array.isArray(n.approvals)&&n.approvals.every(e=>K(e)&&[`gate`,`status`,`evidence`].every(t=>q(e[t])))&&K(r)&&[`current_gate`,`next_allowed_action`,`decision`].every(e=>q(r[e]))},zm=e=>K(e)&&Dm([e.resource])&&(e.content===void 0||q(e.content)&&[`markdown`,`json`,`text`].includes(String(e.format))&&q(e.content_digest)&&K(e.links)&&Object.values(e.links).every(q))&&(e.document_state===void 0||Pm(e.document_state,e.resource)&&e.document_state.content_digest===e.content_digest&&new TextEncoder().encode(JSON.stringify(e.document_state)).length<=262144);function Bm(e,t){if(t.data===null)return;if(!t.snapshot_id||!t.observed_as_of||!t.source_digest)throw Error(`dto_invalid`);let n=t.data,r=!1;if(K(n)){if(e.startsWith(`/api/changes`))r=typeof n.changed==`boolean`;else if(e.startsWith(`/api/freshness`))r=n.unchanged===!0;else if(n.kind===`runs`&&(e.startsWith(`/api/snapshot`)||e.startsWith(`/api/runs/`)))r=[`complete`,`incomplete`,`absent`].includes(String(n.state))&&n.authorizes===!1&&Array.isArray(n.runs)&&n.runs.every(e=>K(e)&&typeof e.valid==`boolean`&&q(e.run_id)&&e.selectable===/^[a-z0-9][a-z0-9._-]{0,127}$/.test(e.run_id)&&(e.selectable||e.valid===!1)&&q(e.title)&&[`objective`,`run_id`].includes(String(e.title_source))&&Cm(e.lifecycle)&&Cm(e.revision_id)&&Cm(e.next_action)&&q(e.basis)&&e.path===`.agdf/control/runs/${e.run_id}/RUN_STATE.md`&&K(e.attention)&&q(e.attention.label)&&[`decision_required`,`clarification_required`,`blocked`,`in_progress`,`unclear`,`none`].includes(String(e.attention.code))&&K(e.last_activity)&&Cm(e.last_activity.at)&&q(e.last_activity.source)&&Cm(e.last_activity.precision)&&Om(e.findings))&&new Set(n.runs.map(e=>e.run_id)).size===n.runs.length&&K(n.counts)&&n.counts.total===n.runs.length&&K(n.counts.lifecycle)&&K(n.counts.attention)&&[n.counts.lifecycle,n.counts.attention].every(e=>Object.values(e).every(e=>Number.isSafeInteger(e)&&e>=0)&&Object.values(e).reduce((e,t)=>e+t,0)===n.runs.length)&&Om(n.diagnostics)&&n.source_path===`.agdf/control/runs/`&&Number.isSafeInteger(n.file_count)&&Number.isSafeInteger(n.byte_count)&&(n.removed_run_id===void 0||q(n.removed_run_id)&&/^[a-z0-9][a-z0-9._-]{0,127}$/.test(n.removed_run_id));else if(n.kind===`work`&&(e.startsWith(`/api/snapshot`)||e.startsWith(`/api/runs/`)))r=Array.isArray(n.entries)&&n.entries.every(e=>K(e)&&[`section`,`key`,`original_key`,`title`,`stored_status`,`scope`,`stored_next_step`,`source_links`].every(t=>q(e[t]))&&!Object.hasOwn(e,`saved_summary`)&&!Object.hasOwn(e,`title_observation`)&&Cm(e.priority)&&Cm(e.current_spec)&&typeof e.selectable==`boolean`&&(e.row_id===void 0||q(e.row_id)&&/^[a-f0-9-]{36}$/.test(e.row_id))&&n.layout===`run-folders-v1`&&[`planned`,`run`,`archive`].includes(String(e.kind))&&q(e.identity)&&K(e.source)&&q(e.source.path)&&(e.source.digest===null||km(e.source.digest))&&q(e.coverage)&&typeof e.handoff_ready==`boolean`&&Array.isArray(e.actions)&&e.actions.every(q))&&Om(n.diagnostics)&&q(n.source_path)&&q(n.content_digest)&&K(n.counts)&&Object.values(n.counts).every(e=>Number.isSafeInteger(e)&&e>=0)&&fm(n)&&Number.isSafeInteger(n.file_count)&&n.file_count>=0&&Number.isSafeInteger(n.byte_count)&&n.byte_count>=0&&(n.removed_run_id===void 0||q(n.removed_run_id)&&/^[a-z0-9][a-z0-9._-]{0,127}$/.test(n.removed_run_id));else if(n.kind===`archive`&&e.startsWith(`/api/archive/`)){let e=n.entry,t=n.document;r=K(e)&&q(e.id)&&q(e.title)&&[`run`,`artefacts`,`project`].includes(String(e.entry_kind))&&[e.recorded_lifecycle,e.recorded_gate,e.source_control_version].every(Cm)&&e.authorizes===!1&&Array.isArray(e.recorded_approvals)&&e.recorded_approvals.every(e=>K(e)&&[`gate`,`status`,`evidence`].every(t=>q(e[t])))&&Array.isArray(e.resources)&&e.resources.every(e=>K(e)&&Am(e.resource_id)&&q(e.original_path)&&q(e.path)&&String(e.path).startsWith(`.agdf/control/archive/source/`)&&km(e.digest)&&Number.isSafeInteger(e.bytes)&&e.bytes>=0)&&(t===null||K(t)&&Am(t.resource_id)&&typeof t.available==`boolean`&&q(t.path)&&km(t.digest)&&Number.isSafeInteger(t.bytes)&&(t.available?q(t.content)&&new TextEncoder().encode(String(t.content)).length<=2097152:q(t.reason))&&e.resources.some(e=>K(e)&&e.resource_id===t.resource_id&&e.original_path===t.path&&e.digest===t.digest&&e.bytes===t.bytes))}else if(n.kind===`planned`&&e.startsWith(`/api/planned/`)){let e=n.entry;r=K(e)&&q(e.plan_id)&&/^[a-z0-9][a-z0-9._-]{0,127}$/.test(String(e.plan_id))&&q(e.title)&&[`high`,`normal`,`low`].includes(String(e.priority))&&e.path===`.agdf/control/planned/${e.plan_id}/UR.md`&&km(e.digest)&&q(e.content)&&new TextEncoder().encode(String(e.content)).length<=131072&&K(e.readiness)&&typeof e.readiness.ready==`boolean`&&e.authorizes===!1}else if([`run`,`document`,`context`].includes(String(n.kind))){if(r=n.run===null?n.kind===`run`&&q(n.requested_run_id)&&t.state===`missing`:Rm(n.run,n.kind===`run`&&t.state===`invalid`),(n.kind===`document`||n.kind===`context`)&&(r=r&&K(n.run)&&(n.document===null||zm(n.document)&&K(n.document)&&K(n.document.resource)&&n.document.resource.run_id===n.run.run_id&&Array.isArray(n.run.resources)&&n.run.resources.some(e=>K(e)&&K(n.document)&&K(n.document.resource)&&[`resource_id`,`run_id`,`type`,`path`,`registered_reference`,`status`].every(t=>e[t]===n.document.resource[t]))),r&&K(n.document)&&K(n.run))){let e=Array.isArray(n.run.document_states)?n.run.document_states.find(e=>K(e)&&K(n.document)&&K(n.document.resource)&&e.resource_id===n.document.resource.resource_id):void 0;r=n.document.document_state===void 0?e===void 0||n.document.content===void 0:e!==void 0&&Sm(e,n.document.document_state)&&K(e)&&e.source_state===`available`&&e.content_digest===n.document.content_digest}n.kind===`context`&&(r=r&&K(n.context)&&K(n.run)&&n.context.run_id===n.run.run_id&&Array.isArray(n.context.references)&&Im(n.context.references)&&n.context.references.every(e=>K(e)&&K(n.run)&&e.run_id===n.run.run_id));let i=e.startsWith(`/api/documents/`)?`document`:e.startsWith(`/api/context/`)?`context`:`run`;r&&=n.kind===i||t.state!==`available`&&n.kind===`run`}}if(!r)throw Error(`dto_invalid`);if(e.startsWith(`/api/draft-check/`)&&t.state===`available`){let t=new URL(e,`https://local.invalid`);if(!K(n)||!K(n.run)||!K(n.run.draft_check)||!K(n.run.draft_check.source)||n.kind!==`run`||n.run.run_id!==t.pathname.slice(17)||n.run.draft_check.result===null||n.run.draft_check.source.gate!==t.searchParams.get(`gate`)||n.run.revision_id!==t.searchParams.get(`expected_revision`))throw Error(`dto_invalid`)}}function Vm(e,t){if(!K(e)||e.schema_version!==`2`||!K(e.target)||typeof e.target.target_id!=`string`||typeof e.target.display_path!=`string`||!xm.has(String(e.state))||typeof e.retryable!=`boolean`||e.code!==null&&typeof e.code!=`string`||e.snapshot_id!==null&&typeof e.snapshot_id!=`string`||e.observed_as_of!==null&&typeof e.observed_as_of!=`string`||e.source_digest!==null&&typeof e.source_digest!=`string`||!Object.hasOwn(e,`data`)||t&&(e.target.target_id!==t.target||!t.replacement&&e.data!==null&&e.snapshot_id!==t.snapshot))throw Error(`dto_invalid`)}var Hm=class{app;constructor(e=`AGDF Cockpit`,t={autoResize:!0}){this.app=new am({name:e,version:`1.0.0`},{},t)}pending=0;closing=new Map;sessionId=``;resourceRuns=new Map;get session(){return this.sessionId}set session(e){e!==this.sessionId&&this.resourceRuns.clear(),this.sessionId=e}async request(e){if(this.pending>=8)throw Error(`busy`);this.pending+=1;try{return await this.deadline(e)}finally{--this.pending}}async deadline(e){let t;try{return await Promise.race([e(),new Promise((e,n)=>{t=setTimeout(()=>n(Error(`timeout`)),1e4)})])}finally{clearTimeout(t)}}close(e,t){let n=this.closing.get(e);if(n)return n;if(this.closing.size>=8)throw Error(`busy`);let r=this.deadline(()=>this.app.callServerTool({name:`agdf_cockpit_read`,arguments:{operation:`close`,session_id:e}},{timeout:1e4,signal:t}));return this.closing.set(e,r),r.finally(()=>{this.closing.get(e)===r&&this.closing.delete(e)}).catch(()=>{}),r}async operation(e,t,n){let r=n??this.session;if(!this.app.getHostCapabilities()?.serverTools||!r)throw Error(`session_invalid`);let i=e.operation===`close`;if(i&&Object.keys(e).length!==1)throw Error(`resource_denied`);let a=await(i?this.close(r,t):this.request(()=>this.app.callServerTool({name:`agdf_cockpit_read`,arguments:{...e,session_id:r}},{timeout:1e4,signal:t})));if(n===void 0&&r!==this.session||t?.aborted)throw Error(`session_invalid`);if(!a.structuredContent)throw Error(`read_failed`);if(a.isError){let e=a.structuredContent;if(e.schema_version===`1`&&e.outcome===`rejected`&&e.authorizes===!1&&[`session_expired`,`source_changed`,`resource_denied`].includes(String(e.reason))){if(i&&e.reason===`session_expired`)return e;throw Error(String(e.reason))}if(Vm(e),![`invalid`,`missing`,`unsupported`,`blocked`,`stale`,`error`].includes(e.state)||e.data!==null||typeof e.code!=`string`||!/^[a-z][a-z0-9_]{0,127}$/.test(e.code))throw Error(`read_failed`)}return a.structuredContent}readForSession(e){return this.reader(new Map,e)}read=this.reader(this.resourceRuns);reader(e,t){let n=async(n,r,i)=>{let a=new URL(n,`https://local.invalid`),o=a.searchParams.get(`snapshot`),s;if(a.pathname===`/api/snapshot`)e.clear(),s={operation:`snapshot`,...a.searchParams.has(`run_id`)?{run_id:a.searchParams.get(`run_id`)}:a.searchParams.has(`view`)?{view:a.searchParams.get(`view`)}:{}};else if(a.pathname===`/api/changes`)s={operation:`changes`,snapshot_id:o};else if(a.pathname===`/api/freshness`)s={operation:`freshness`,snapshot_id:o};else if(/^\/api\/archive\/[a-f0-9-]{36}$/.test(a.pathname)){let e=[...a.searchParams.keys()];if(e.length>2||new Set(e).size!==e.length||e.some(e=>![`snapshot`,`resource`].includes(e)))throw Error(`resource_denied`);s={operation:`archive`,snapshot_id:o,row_id:a.pathname.slice(13),...a.searchParams.has(`resource`)?{resource_id:a.searchParams.get(`resource`)}:{}}}else if(/^\/api\/planned\/[a-f0-9-]{36}$/.test(a.pathname))s={operation:`planned`,snapshot_id:o,row_id:a.pathname.slice(13)};else if(a.pathname.startsWith(`/api/runs/`))s={operation:`run`,snapshot_id:o,run_id:a.pathname.slice(10)};else if(a.pathname.startsWith(`/api/context/`))s={operation:`context`,snapshot_id:o,run_id:a.pathname.slice(13)};else if(/^\/api\/draft-check\/[a-z0-9][a-z0-9._-]{0,127}$/.test(a.pathname)){let e=[...a.searchParams.keys()];if(e.length!==3||new Set(e).size!==3||![`snapshot`,`gate`,`expected_revision`].every(t=>e.includes(t)))throw Error(`resource_denied`);s={operation:`artifact_readiness`,snapshot_id:o,run_id:a.pathname.slice(17),gate:a.searchParams.get(`gate`),expected_revision_id:a.searchParams.get(`expected_revision`)}}else if(a.pathname.startsWith(`/api/documents/`)){let t=a.pathname.slice(15),n=e.get(t);if(!n)throw Error(`resource_denied`);s={operation:`document`,snapshot_id:o,run_id:n,resource_id:t}}else throw Error(`resource_denied`);let c=await this.operation(s,r,t);if(Vm(c,i),Bm(n,c),[`snapshot`,`run`,`document`,`context`,`artifact_readiness`].includes(String(s.operation))){e.clear();let t=c.data;if(t?.run)for(let n of t.run.resources)e.set(n.resource_id,t.run.run_id)}return c};return n.waitForChanges=(e,t,r)=>n(`/api/changes?snapshot=`+e,t,{target:r,snapshot:e}),n}},J=p();function Um(e){return e&&typeof e==`object`&&(Object.values(e).forEach(Um),Object.freeze(e)),e}var Wm=Um({cancelled:{result:`cancelled`,actions:[`cancelled`]},control_unsupported:{result:`partial`,actions:[`inspect_control`]},control_repair_required:{result:`partial`,actions:[`inspect_control`]},plugin_ready_mcp_absent:{result:`success`,actions:[`restart_host`]},plugin_ready_mcp_in_plugin:{result:`success`,actions:[`restart_host`]},mcp_ready_hook_review_required:{result:`partial`,actions:[`review_codex_hook`]},mcp_ready_hook_verification_pending:{result:`partial`,actions:[`enable_codex_hook`,`verify_codex_hook`,`inspect_codex_hook`]},plugin_ready_mcp_unchanged:{result:`success`,actions:[`restart_host`]},configured_pending_restart:{result:`success`,actions:[`restart_host`]},configured_unverified:{result:`success`,actions:[`verify_host_discovery`]},discovered_ready:{result:`success`,actions:[`none`]},partial:{result:`partial`,actions:[`retry_mcp`,`retry_plugin`,`review_runtime_checks`,`resolve_mcp_registration`]},degraded_or_foreign:{result:`partial`,actions:[`resolve_mcp_registration`]},failed:{result:`failed`,actions:[`retry_plugin`,`resolve_mcp_registration`,`choose_plugin_only_or_cancel`]}});Um([`input_validation`,`setup_preflight`,`setup_selection`,`runtime_check_permission`,`plugin_operation`,`plugin_verification`,`mcp_preflight`,`mcp_enable`,`mcp_disable`,`plugin_disable`,`plugin_uninstall`,`result_validation`,`presentation`]),Um([`input_invalid`,`setup_preflight_failed`,`setup_selection_blocked`,`runtime_check_permission_failed`,`plugin_operation_failed`,`plugin_verification_failed`,`mcp_preflight_failed`,`mcp_enable_failed`,`mcp_disable_failed`,`plugin_disable_failed`,`plugin_uninstall_failed`,`result_invalid`,`presentation_failed`]),Um([...new Set(Object.values(Wm).flatMap(e=>e.actions))]);var Gm=Um([`target_evaluation_failed`,`target_presentation_failed`,`control_evaluation_failed`,`control_presentation_failed`,`runtime_contracts_unavailable`,`runtime_evidence_invalid`,`internal_failure`,`output_too_large`,`intake_run_collision`,`intake_scaffold_required`,`intake_run_id_invalid`,`run_assignment_inventory_invalid`,`prd_authoring_inputs_invalid`,`sd_authoring_inputs_invalid`,`tp_authoring_inputs_invalid`,`AGDF_ARTEFACT_TEMPLATE_UNSUPPORTED`,`AGDF_ARTEFACT_TEMPLATE_ROOT_UNAVAILABLE`,`AGDF_ARTEFACT_TEMPLATE_UNAVAILABLE`,`AGDF_ARTEFACT_TEMPLATE_UNSAFE`]);Um(Object.fromEntries(Gm.map(e=>[e,e]))),Um({hook_review_required:{state:`mcp_ready_hook_review_required`,action:`review_codex_hook`},hook_disabled:{state:`mcp_ready_hook_verification_pending`,action:`enable_codex_hook`},host_unverified:{state:`mcp_ready_hook_verification_pending`,action:`inspect_codex_hook`},hook_trusted_session_unverified:{state:`mcp_ready_hook_verification_pending`,action:`verify_codex_hook`}});var Km=Um(`title.connecting.unavailable.approve.request_change.reject.openDocument.back.comment.commentHelp.pending.uncertain.checkOperation.retryOriginal.confirmed.denied.notQualified.sourceChanged.expired.comparison.comparisonUnavailable.sources.run.gate.revision.consequence.permission.docUnavailable.commentRequired.commentTooLarge.documentTitle.notSaved.unknownCurrent.sourceLanguage.alreadyDecided.initialize.machineComparison.documentUnchanged.documentChanged.previousDocument.discussionHint.nextStep.nextInformation.nextChat.nextWaiting.continuationMessage.nextRequested.nextUnavailable.closeUnavailable.chatApprovalHint.approveWithDeviations.confirmedWithDeviations.deviationAcceptanceIntro.openPreview.previewTitle.previewUnavailable.previewChanged.retryPreview.previewIllustrative.previewTask.previewScenarios.previewCriteria.previewQuestions.previewUnsupported.previewLoading`.split(`.`));Um([`title`,`current`,`superseded`,`applicability_unknown`,`currentDescription`,`emptyDescription`,`historyDescription`,`unknownDescription`,`unavailable`,`open`,`next`,`human`,`agent`,`completed`,`unconfirmedDescription`,`retainedDescription`]),Um(Object.fromEntries(Km.map(e=>[e,[`title`,`comparison`,`documentTitle`].includes(e)?`title`:`connecting.unavailable.commentHelp.pending.uncertain.confirmed.denied.notQualified.sourceChanged.expired.comparisonUnavailable.consequence.permission.docUnavailable.commentRequired.commentTooLarge.notSaved.unknownCurrent.sourceLanguage.alreadyDecided.initialize.machineComparison.documentUnchanged.documentChanged.discussionHint.nextInformation.nextChat.nextWaiting.continuationMessage.nextRequested.nextUnavailable.closeUnavailable.chatApprovalHint.previewUnavailable.previewChanged.previewIllustrative.previewUnsupported`.split(`.`).includes(e)?`description`:`label`])));var qm=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Jm=e=>typeof e==`string`&&/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e),Ym=e=>typeof e==`string`&&/^sha256:[a-f0-9]{64}$/.test(e);function Xm(e){if(!qm(e)||e.isError===!0||!qm(e._meta)||!qm(e._meta.agdf_decision))return null;let t=e._meta.agdf_decision,n=t.binding,r=t.target;if(t.delivery_state!==void 0&&(t.delivery_state!==`preview`||!Jm(t.display_nonce)||t.surface_id!==null&&!Jm(t.surface_id)||!Array.isArray(t.enabled_actions)||t.enabled_actions.length)||t.source_digest!==void 0&&!Ym(t.source_digest)||!qm(n)||!qm(r)||!qm(t.labels)||!qm(t.comparison))return null;if(t.preview!==void 0){let e=t.preview;if(n.gate!==`PRD`||!qm(e)||!Jm(e.resource_id)||!Ym(e.content_digest)||typeof e.version!=`string`||!/^[a-z][a-z0-9-]{0,63}-v[1-9][0-9]{0,5}$/.test(e.version)||typeof e.task!=`string`||!e.task.trim()||e.task.length>1200||!Array.isArray(e.scenarios)||!e.scenarios.length||e.scenarios.length>16||!e.scenarios.every(e=>typeof e==`string`&&e.length>0&&e.length<=240)||e.open_questions!==void 0&&(!Array.isArray(e.open_questions)||e.open_questions.length>16||!e.open_questions.every(e=>typeof e==`string`&&e.trim().length>0&&e.length<=1200))||!Array.isArray(e.criterion_ids)||!e.criterion_ids.length||e.criterion_ids.length>64||!e.criterion_ids.every(e=>typeof e==`string`&&/^[A-Z][A-Z0-9-]*$/.test(e)))return null}return t.schema_version!==`1`||![`session_id`,`read_session_id`,`owner_epoch`,`snapshot_id`].every(e=>Jm(t[e]))||!Number.isSafeInteger(t.generation)||Number(t.generation)<1||typeof t.expires_at!=`number`||!Number.isFinite(t.expires_at)||typeof t.summary!=`string`||!t.summary.trim()||new TextEncoder().encode(t.summary).length>262144||typeof t.title!=`string`||!t.title.trim()||typeof r.display_path!=`string`||!Ym(r.target_id)||t.decision_brief!==void 0&&t.decision_brief!==null&&(typeof t.decision_brief!=`string`||new TextEncoder().encode(t.decision_brief).length>24e3)||[`gate_title`,`decision_heading`,`approval_effect`,`approval_effect_label`].some(e=>t[e]!==void 0&&(typeof t[e]!=`string`||!t[e].trim()||t[e].length>1200))||n.target_id!==r.target_id||typeof n.run_id!=`string`||!/^[a-z0-9][a-z0-9._-]{0,127}$/.test(n.run_id)||![`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`].includes(String(n.gate))||!Jm(n.expected_revision_id)||!Jm(n.presentation_id)||!Ym(n.material_version)||!Ym(n.presentation_digest)||typeof n.presentation_language!=`string`||!Array.isArray(n.material_sources)||!n.material_sources.length||n.material_sources.length>12||!n.material_sources.every(e=>qm(e)&&typeof e.type==`string`&&Ym(e.digest)&&typeof e.path==`string`&&um(String(n.run_id),e.path))||!(t.resource_id===null||Jm(t.resource_id))||!(t.document_digest===null||Ym(t.document_digest))||!Array.isArray(t.enabled_actions)||new Set(t.enabled_actions).size!==t.enabled_actions.length||!t.enabled_actions.every(e=>[`approve`,`request_change`,`reject`].includes(String(e)))||![`available`,`not_qualified`].includes(String(t.capability))||t.capability===`not_qualified`&&t.enabled_actions.length>0||!(t.comparison.state===`unavailable`&&typeof t.comparison.reason==`string`||t.comparison.state===`available`&&Jm(t.comparison.previous_revision_id)&&Ym(t.comparison.previous_digest)&&t.comparison.current_digest===(t.source_digest??t.document_digest)&&typeof t.comparison.unchanged==`boolean`&&t.comparison.unchanged===(t.comparison.previous_digest===t.comparison.current_digest)&&typeof t.comparison.previous_text==`string`&&new TextEncoder().encode(t.comparison.previous_text).length<=131072)||Km.some(e=>typeof t.labels[e]!=`string`||!t.labels[e].trim())?null:t}function Zm(e,t,n){if(!qm(e)||e.operation_id!==n.operation_id||!qm(e.effect))return!1;let r=qm(e.binding)?e.binding:e,i=e.effect,a=qm(i.record)?i.record:null;return r.run_id===t.binding.run_id&&r.target_id===t.binding.target_id&&r.expected_revision_id===t.binding.expected_revision_id&&i.previous_revision_id===t.binding.expected_revision_id&&(n.action===`approve`?e.action===`record_gate_approval`&&r.gate===t.binding.gate&&r.presentation_id===t.binding.presentation_id&&i.approval===`Approval: ${t.binding.gate}`&&i.presentation_digest===t.binding.presentation_digest&&i.material_version===t.binding.material_version:e.kind===`presentation_decision.record`&&a?.gate===t.binding.gate&&a.presentation_id===t.binding.presentation_id&&a.presentation_digest===t.binding.presentation_digest&&a.material_version===t.binding.material_version&&a.action===n.action&&a.comment===(n.comment??``))}function Qm(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var $m=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,eh=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,th={};function nh(e,t){return((t||th).jsx?eh:$m).test(e)}var rh=/[ \t\n\f\r]/g;function ih(e){return typeof e==`object`?e.type===`text`&&ah(e.value):ah(e)}function ah(e){return e.replace(rh,``)===``}var oh=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};oh.prototype.normal={},oh.prototype.property={},oh.prototype.space=void 0;function sh(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new oh(n,r,t)}function ch(e){return e.toLowerCase()}var lh=class{constructor(e,t){this.attribute=t,this.property=e}};lh.prototype.attribute=``,lh.prototype.booleanish=!1,lh.prototype.boolean=!1,lh.prototype.commaOrSpaceSeparated=!1,lh.prototype.commaSeparated=!1,lh.prototype.defined=!1,lh.prototype.mustUseProperty=!1,lh.prototype.number=!1,lh.prototype.overloadedBoolean=!1,lh.prototype.property=``,lh.prototype.spaceSeparated=!1,lh.prototype.space=void 0;var uh=s({boolean:()=>Y,booleanish:()=>fh,commaOrSpaceSeparated:()=>gh,commaSeparated:()=>hh,number:()=>X,overloadedBoolean:()=>ph,spaceSeparated:()=>mh}),dh=0,Y=_h(),fh=_h(),ph=_h(),X=_h(),mh=_h(),hh=_h(),gh=_h();function _h(){return 2**++dh}var vh=Object.keys(uh),yh=class extends lh{constructor(e,t,n,r){let i=-1;if(super(e,t),bh(this,`space`,r),typeof n==`number`)for(;++i<vh.length;){let e=vh[i];bh(this,vh[i],(n&uh[e])===uh[e])}}};yh.prototype.defined=!0;function bh(e,t,n){n&&(e[t]=n)}function xh(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new yh(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ch(r)]=r,n[ch(a.attribute)]=r}return new oh(t,n,e.space)}var Sh=xh({properties:{ariaActiveDescendant:null,ariaAtomic:fh,ariaAutoComplete:null,ariaBusy:fh,ariaChecked:fh,ariaColCount:X,ariaColIndex:X,ariaColSpan:X,ariaControls:mh,ariaCurrent:null,ariaDescribedBy:mh,ariaDetails:null,ariaDisabled:fh,ariaDropEffect:mh,ariaErrorMessage:null,ariaExpanded:fh,ariaFlowTo:mh,ariaGrabbed:fh,ariaHasPopup:null,ariaHidden:fh,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:mh,ariaLevel:X,ariaLive:null,ariaModal:fh,ariaMultiLine:fh,ariaMultiSelectable:fh,ariaOrientation:null,ariaOwns:mh,ariaPlaceholder:null,ariaPosInSet:X,ariaPressed:fh,ariaReadOnly:fh,ariaRelevant:null,ariaRequired:fh,ariaRoleDescription:mh,ariaRowCount:X,ariaRowIndex:X,ariaRowSpan:X,ariaSelected:fh,ariaSetSize:X,ariaSort:null,ariaValueMax:X,ariaValueMin:X,ariaValueNow:X,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function Ch(e,t){return t in e?e[t]:t}function wh(e,t){return Ch(e,t.toLowerCase())}var Th=xh({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:hh,acceptCharset:mh,accessKey:mh,action:null,allow:null,allowFullScreen:Y,allowPaymentRequest:Y,allowUserMedia:Y,alpha:Y,alt:null,as:null,async:Y,autoCapitalize:null,autoComplete:mh,autoFocus:Y,autoPlay:Y,blocking:mh,capture:null,charSet:null,checked:Y,cite:null,className:mh,closedBy:null,colorSpace:null,cols:X,colSpan:X,command:null,commandFor:null,content:null,contentEditable:fh,controls:Y,controlsList:mh,coords:X|hh,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Y,defer:Y,dir:null,dirName:null,disabled:Y,download:ph,draggable:fh,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Y,formTarget:null,headers:mh,height:X,hidden:ph,high:X,href:null,hrefLang:null,htmlFor:mh,httpEquiv:mh,id:null,imageSizes:null,imageSrcSet:null,inert:Y,inputMode:null,integrity:null,is:null,isMap:Y,itemId:null,itemProp:mh,itemRef:mh,itemScope:Y,itemType:mh,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Y,low:X,manifest:null,max:null,maxLength:X,media:null,method:null,min:null,minLength:X,multiple:Y,muted:Y,name:null,nonce:null,noModule:Y,noValidate:Y,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Y,optimum:X,pattern:null,ping:mh,placeholder:null,playsInline:Y,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Y,referrerPolicy:null,rel:mh,required:Y,reversed:Y,rows:X,rowSpan:X,sandbox:mh,scope:null,scoped:Y,seamless:Y,selected:Y,shadowRootClonable:Y,shadowRootCustomElementRegistry:Y,shadowRootDelegatesFocus:Y,shadowRootMode:null,shadowRootSerializable:Y,shape:null,size:X,sizes:null,slot:null,span:X,spellCheck:fh,src:null,srcDoc:null,srcLang:null,srcSet:null,start:X,step:null,style:null,tabIndex:X,target:null,title:null,translate:null,type:null,typeMustMatch:Y,useMap:null,value:fh,width:X,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:mh,axis:null,background:null,bgColor:null,border:X,borderColor:null,bottomMargin:X,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Y,declare:Y,event:null,face:null,frame:null,frameBorder:null,hSpace:X,leftMargin:X,link:null,longDesc:null,lowSrc:null,marginHeight:X,marginWidth:X,noResize:Y,noHref:Y,noShade:Y,noWrap:Y,object:null,profile:null,prompt:null,rev:null,rightMargin:X,rules:null,scheme:null,scrolling:fh,standby:null,summary:null,text:null,topMargin:X,valueType:null,version:null,vAlign:null,vLink:null,vSpace:X,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Y,disablePictureInPicture:Y,disableRemotePlayback:Y,exportParts:hh,part:mh,prefix:null,property:null,results:X,security:null,unselectable:null},space:`html`,transform:wh}),Eh=xh({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:gh,accentHeight:X,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:X,amplitude:X,arabicForm:null,ascent:X,attributeName:null,attributeType:null,azimuth:X,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:X,by:null,calcMode:null,capHeight:X,className:mh,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:X,diffuseConstant:X,direction:null,display:null,dur:null,divisor:X,dominantBaseline:null,download:Y,dx:null,dy:null,edgeMode:null,editable:null,elevation:X,enableBackground:null,end:null,event:null,exponent:X,externalResourcesRequired:null,fill:null,fillOpacity:X,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:hh,g2:hh,glyphName:hh,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:X,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:X,horizOriginX:X,horizOriginY:X,id:null,ideographic:X,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:X,k:X,k1:X,k2:X,k3:X,k4:X,kernelMatrix:gh,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:X,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:X,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:X,overlineThickness:X,paintOrder:null,panose1:null,path:null,pathLength:X,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:mh,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:X,pointsAtY:X,pointsAtZ:X,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:gh,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:gh,rev:gh,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:gh,requiredFeatures:gh,requiredFonts:gh,requiredFormats:gh,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:X,specularExponent:X,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:X,strikethroughThickness:X,string:null,stroke:null,strokeDashArray:gh,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:X,strokeOpacity:X,strokeWidth:null,style:null,surfaceScale:X,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:gh,tabIndex:X,tableValues:null,target:null,targetX:X,targetY:X,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:gh,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:X,underlineThickness:X,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:X,values:null,vAlphabetic:X,vMathematical:X,vectorEffect:null,vHanging:X,vIdeographic:X,version:null,vertAdvY:X,vertOriginX:X,vertOriginY:X,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:X,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:Ch}),Dh=xh({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),Oh=xh({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:wh}),kh=xh({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Ah={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},jh=/[A-Z]/g,Mh=/-[a-z]/g,Nh=/^data[-\w.:]+$/i;function Ph(e,t){let n=ch(t),r=t,i=lh;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&Nh.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(Mh,Ih);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!Mh.test(e)){let n=e.replace(jh,Fh);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=yh}return new i(r,t)}function Fh(e){return`-`+e.toLowerCase()}function Ih(e){return e.charAt(1).toUpperCase()}var Lh=sh([Sh,Th,Dh,Oh,kh],`html`),Rh=sh([Sh,Eh,Dh,Oh,kh],`svg`);function zh(e){return e.join(` `).trim()}var Bh=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(`
77
+ container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:A().optional().describe(`User's language and region preference in BCP 47 format.`),timeZone:A().optional().describe(`User's timezone in IANA format.`),userAgent:A().optional().describe(`Host application identifier.`),platform:L([B(`web`),B(`desktop`),B(`mobile`)]).optional().describe(`Platform type for responsive design decisions.`),deviceCapabilities:F({touch:M().optional().describe(`Whether the device supports touch input.`),hover:M().optional().describe(`Whether the device supports hover interactions.`)}).optional().describe(`Device input capabilities.`),safeAreaInsets:F({top:j().describe(`Top safe area inset in pixels.`),right:j().describe(`Right safe area inset in pixels.`),bottom:j().describe(`Bottom safe area inset in pixels.`),left:j().describe(`Left safe area inset in pixels.`)}).optional().describe(`Mobile safe area boundaries in pixels.`)}).passthrough(),Zp=F({method:B(`ui/notifications/host-context-changed`),params:Xp.describe(`Partial context update containing only changed fields.`)});F({method:B(`ui/update-model-context`),params:F({content:P(Xc).optional().describe(`Context content blocks (text, image, etc.).`),structuredContent:R(A(),N().describe(`Structured content for machine-readable context data.`)).optional().describe(`Structured content for machine-readable context data.`)})}),F({method:B(`ui/initialize`),params:F({appInfo:Us.describe(`App identification (name and version).`),appCapabilities:Kp.describe(`Features and capabilities this app provides.`),protocolVersion:A().describe(`Protocol version this app supports.`)})});var Qp=F({protocolVersion:A().describe(`Negotiated protocol version string (e.g., "2025-11-21").`),hostInfo:Us.describe(`Host application identification and version.`),hostCapabilities:Gp.describe(`Features and capabilities provided by the host.`),hostContext:Xp.describe(`Rich context about the host environment.`)}).passthrough(),$p={target:`draft-2020-12`};async function em(e,t){let n=e[`~standard`];if(n.jsonSchema)return n.jsonSchema[t]($p);throw Error(`Schema (vendor: ${n.vendor}) does not implement Standard JSON Schema (~standard.jsonSchema). Use a library that does (zod v4, ArkType, Valibot) or wrap your schema accordingly.`)}async function tm(e,t,n=``){let r=await e[`~standard`].validate(t);if(r.issues){let e=r.issues.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `);throw Error(n+e)}return r.value}function nm(e){let t=document.documentElement;t.setAttribute(`data-theme`,e),t.style.colorScheme=e}function rm(e,t=document.documentElement){for(let[n,r]of Object.entries(e))r!==void 0&&t.style.setProperty(n,r)}function im(e,t){let n={...e,...t};return t.experimental!==void 0&&(n.experimental={...e.experimental,...t.experimental}),t.tools!==void 0&&(n.tools={...e.tools,...t.tools}),n}var am=class e extends rp{_appInfo;_appCapabilities;options;_hostCapabilities;_hostInfo;_hostContext;_registeredTools={};_initializedSent=!1;_registeredEvents=new Set;_events=new Sp;_methods=new Cp;setRequestHandler=(...e)=>{let[t,...n]=Tp(`request`,e)??e;this._methods.claim(t,`setRequestHandler`),super.setRequestHandler.call(this,t,...n)};setNotificationHandler=(...e)=>{let[t,...n]=Tp(`notification`,e)??e;this._methods.claim(t,`setNotificationHandler`),super.setNotificationHandler.call(this,t,...n)};removeRequestHandler=e=>{this._methods.release(e),super.removeRequestHandler(e)};removeNotificationHandler=e=>{this._methods.release(e),super.removeNotificationHandler(e)};replaceRequestHandler=(e,...t)=>{this._methods.replace(e),super.setRequestHandler.call(this,e,...t)};_assertInitialized(e){if(this._initializedSent)return;let t=`[ext-apps] App.${e}() called before connect() completed the ui/initialize handshake. Await app.connect() before calling this method, or move data loading to an ontoolresult handler.`;if(this.options?.strict)throw Error(t);console.warn(`${t}. This will throw in a future release.`)}eventSchemas={toolinput:Lp,toolinputpartial:Rp,toolresult:Yp,toolcancelled:zp,hostcontextchanged:Zp};static ONE_SHOT_EVENTS=new Set([`toolinput`,`toolinputpartial`,`toolresult`,`toolcancelled`]);_everHadListener=new Set;_assertHandlerTiming(t){if(!e.ONE_SHOT_EVENTS.has(t)||this._everHadListener.has(t)||(this._everHadListener.add(t),!this._initializedSent))return;let n=`[ext-apps] "${String(t)}" handler registered after connect() completed the ui/initialize handshake. The host may have already sent this notification. Register handlers before calling app.connect().`;if(this.options?.strict)throw Error(n);console.warn(n)}setEventHandler(e,t){t&&this._assertHandlerTiming(e),this._ensureEventSlot(e),this._events.setHandler(e,t)}addEventListener(e,t){this._assertHandlerTiming(e),this._ensureEventSlot(e),this._events.addEventListener(e,t)}removeEventListener(e,t){this._events.removeEventListener(e,t)}_ensureEventSlot(e){if(this._registeredEvents.has(e))return;let t=this.eventSchemas[e];if(!t)throw Error(`Unknown event: ${String(e)}`);this.setNotificationHandler(t.shape.method.value,{params:t.shape.params},t=>{let n=t;e===`hostcontextchanged`&&(this._hostContext={...this._hostContext,...n}),this._events.dispatch(e,n)}),this._registeredEvents.add(e)}getEventHandler(e){return this._events.getHandler(e)}warnIfRequestHandlerReplaced(e,t,n){t&&n&&console.warn(`[MCP Apps] ${e} handler replaced. Previous handler will no longer be called.`)}constructor(e,t={},n={autoResize:!0}){super(n),this._appInfo=e,this._appCapabilities=t,this.options=n,this._methods.replace(`notifications/cancelled`),this._methods.replace(`notifications/progress`),!n.allowUnsafeEval&&w({jitless:!0}),this.replaceRequestHandler(`ping`,e=>(console.log(`Received ping:`,e.params),{})),this.setEventHandler(`hostcontextchanged`,void 0)}buildContext(e){return e}registerAppCapabilities(e){if(this.transport)throw Error(`Cannot register capabilities after transport is established`);this._appCapabilities=im(this._appCapabilities,e)}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let r=this,i=()=>{r._initializedSent&&r._appCapabilities.tools?.listChanged&&r.sendToolListChanged()},a=t.inputSchema!==void 0,o={title:t.title,description:t.description,inputSchema:t.inputSchema,outputSchema:t.outputSchema,annotations:t.annotations,_meta:t._meta,enabled:!0,enable(){this.enabled=!0,i()},disable(){this.enabled=!1,i()},update(e){Object.assign(this,e),i()},remove(){r._registeredTools[e]===o&&(delete r._registeredTools[e],i())},handler:async(t,r)=>{if(!o.enabled)throw Error(`Tool ${e} is disabled`);let i;if(a){let a=o.inputSchema;i=await n(a?await tm(a,t??{},`Invalid input for tool ${e}: `):t??{},r)}else i=await n(r);return o.outputSchema&&!i.isError&&(i.structuredContent=await tm(o.outputSchema,i.structuredContent,`Invalid output for tool ${e}: `)),i}};return this._registeredTools[e]=o,!this._appCapabilities.tools&&!this.transport&&this.registerAppCapabilities({tools:{listChanged:!0}}),this.ensureToolHandlersInitialized(),i(),o}_toolHandlersInitialized=!1;ensureToolHandlersInitialized(){this._toolHandlersInitialized||(this._toolHandlersInitialized=!0,this.oncalltool=async(e,t)=>{let n=this._registeredTools[e.name];if(!n)throw Error(`Tool ${e.name} not found`);return n.handler(e.arguments,t)},this.onlisttools=async(e,t)=>({tools:await Promise.all(Object.entries(this._registeredTools).filter(([e,t])=>t.enabled).map(async([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?await em(t.inputSchema,`input`):{type:`object`,properties:{}}};return t.outputSchema&&(n.outputSchema=await em(t.outputSchema,`output`)),t.annotations&&(n.annotations=t.annotations),t._meta&&(n._meta=t._meta),n}))}))}async sendToolListChanged(e={}){this._assertInitialized(`sendToolListChanged`),await this.notification({method:`notifications/tools/list_changed`,params:e})}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}get ontoolinput(){return this.getEventHandler(`toolinput`)}set ontoolinput(e){this.setEventHandler(`toolinput`,e)}get ontoolinputpartial(){return this.getEventHandler(`toolinputpartial`)}set ontoolinputpartial(e){this.setEventHandler(`toolinputpartial`,e)}get ontoolresult(){return this.getEventHandler(`toolresult`)}set ontoolresult(e){this.setEventHandler(`toolresult`,e)}get ontoolcancelled(){return this.getEventHandler(`toolcancelled`)}set ontoolcancelled(e){this.setEventHandler(`toolcancelled`,e)}get onhostcontextchanged(){return this.getEventHandler(`hostcontextchanged`)}set onhostcontextchanged(e){this.setEventHandler(`hostcontextchanged`,e)}_onteardown;get onteardown(){return this._onteardown}set onteardown(e){this.warnIfRequestHandlerReplaced(`onteardown`,this._onteardown,e),this._onteardown=e,this.replaceRequestHandler(`ui/resource-teardown`,{params:Hp.shape.params,result:Up},(e,t)=>{if(!this._onteardown)throw Error(`No onteardown handler set`);return this._onteardown(e,t)})}_oncalltool;get oncalltool(){return this._oncalltool}set oncalltool(e){this.warnIfRequestHandlerReplaced(`oncalltool`,this._oncalltool,e),this._oncalltool=e,this.replaceRequestHandler(`tools/call`,(e,t)=>{if(!this._oncalltool)throw Error(`No oncalltool handler set`);return this._oncalltool(e.params,t)})}_onlisttools;get onlisttools(){return this._onlisttools}set onlisttools(e){this.warnIfRequestHandlerReplaced(`onlisttools`,this._onlisttools,e),this._onlisttools=e,this.replaceRequestHandler(`tools/list`,(e,t)=>{if(!this._onlisttools)throw Error(`No onlisttools handler set`);return this._onlisttools(e.params,t)})}assertCapabilityForMethod(e){if(e===`sampling/createMessage`&&!this._hostCapabilities?.sampling)throw Error(`Host does not support sampling (required for ${e})`)}assertRequestHandlerCapability(e){switch(e){case`tools/call`:case`tools/list`:if(!this._appCapabilities.tools)throw Error(`Client does not support tool capability (required for ${e})`);return;default:return}}assertNotificationCapability(e){}async callServerTool(e,t){if(this._assertInitialized(`callServerTool`),typeof e==`string`)throw Error(`callServerTool() expects an object as its first argument, but received a string ("${e}"). Did you mean: callServerTool({ name: "${e}", arguments: { ... } })?`);return await this.request({method:`tools/call`,params:e},{onprogress:()=>{},resetTimeoutOnProgress:!0,...t})}async readServerResource(e,t){return this._assertInitialized(`readServerResource`),await this.request({method:`resources/read`,params:e},t)}async listServerResources(e,t){return this._assertInitialized(`listServerResources`),await this.request({method:`resources/list`,params:e},t)}async createSamplingMessage(e,t){return this._assertInitialized(`createSamplingMessage`),await this.request({method:`sampling/createMessage`,params:e},t)}sendMessage(e,t){return this._assertInitialized(`sendMessage`),this.request({method:`ui/message`,params:e},Pp,t)}sendLog(e){return this.notification({method:`notifications/message`,params:e})}updateModelContext(e,t){return this._assertInitialized(`updateModelContext`),this.request({method:`ui/update-model-context`,params:e},Ls,t)}openLink(e,t){return this._assertInitialized(`openLink`),this.request({method:`ui/open-link`,params:e},Mp,t)}sendOpenLink=this.openLink;downloadFile(e,t){return this._assertInitialized(`downloadFile`),this.request({method:`ui/download-file`,params:e},Np,t)}requestTeardown(e={}){return this.notification({method:`ui/notifications/request-teardown`,params:e})}requestDisplayMode(e,t){return this._assertInitialized(`requestDisplayMode`),this.request({method:`ui/request-display-mode`,params:e},qp,t)}sendSizeChanged(e){return this.notification({method:`ui/notifications/size-changed`,params:e})}setupSizeChangedNotifications(){let e=!1,t=0,n=0,r=()=>{e||(e=!0,requestAnimationFrame(()=>{e=!1;let r=document.documentElement,i=r.style.height;r.style.height=`max-content`;let a=Math.ceil(r.getBoundingClientRect().height);r.style.height=i;let o=Math.ceil(window.innerWidth);(o!==t||a!==n)&&(t=o,n=a,this.sendSizeChanged({width:o,height:a}))}))};r();let i=new ResizeObserver(r);return i.observe(document.documentElement),i.observe(document.body),()=>i.disconnect()}async connect(e=new Op(window.parent,window.parent),t){if(this.transport)throw Error(`App is already connected. Call close() before connecting again.`);this._initializedSent=!1;try{await super.connect(e);let n=await this.request({method:`ui/initialize`,params:{appCapabilities:this._appCapabilities,appInfo:this._appInfo,protocolVersion:Dp}},Qp,t);if(n===void 0)throw Error(`Server sent invalid initialize result: ${n}`);this._hostCapabilities=n.hostCapabilities,this._hostInfo=n.hostInfo,this._hostContext=n.hostContext,await this.notification({method:`ui/notifications/initialized`}),this._initializedSent=!0,this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(e){throw this.close(),e}}},om=/^[a-z0-9][a-z0-9._-]{0,127}$/;Object.freeze([`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`]),Object.freeze([`undecided`,`quick_task`,`verified_change`,`structured_slice`,`structured_delivery`,`block`]),Object.freeze({ur:`UR`,route:`Brownfield Review`,review:`CR`,evidence:`EVIDENCE`,closeout:`OR`});function sm(e,t=``,n=``){if(!om.test(String(e??``)))throw Error(`AGDF_RUN_ID_INVALID`);if(![``,`documents`,`evidence`,`control`,`history`].includes(t)||typeof n!=`string`||n.includes(`\\`)||n.includes(`:`)||n.includes(`\0`)||n&&n.split(`/`).some(e=>!e||e===`.`||e===`..`)||!t&&n&&n!==`RUN_STATE.md`)throw Error(`AGDF_RUN_PATH_INVALID`);return[`.agdf/control/runs/${e}`,t,n].filter(Boolean).join(`/`)}var cm=(e,t)=>sm(e,`documents`,t),lm=(e,t)=>sm(e,`evidence`,t);function um(e,t){if(typeof t!=`string`)return!1;try{for(let n of[`documents`,`evidence`]){let r=sm(e,n)+`/`;if(t.startsWith(r))return sm(e,n,t.slice(r.length))===t}}catch{return!1}return!1}var dm=Object.freeze([`active`,`planned`,`completed`,`archive`]);function fm(e){return!e||e.layout!==`run-folders-v1`||!Array.isArray(e.entries)||!e.counts||typeof e.counts!=`object`||Object.keys(e.counts).length!==dm.length?!1:dm.every(t=>Number.isSafeInteger(e.counts[t])&&e.counts[t]===e.entries.filter(e=>e?.section===t).length)&&e.entries.every(e=>e&&dm.includes(e.section))}var pm=Object.freeze([`work_pending`,`approval_pending`,`qa_report_pending`,`qa_evidence_open`,`qa_correction_open`,`qa_source_decision`,`qa_blocked`,`source_unconfirmed`,`closeout_pending`,`completed`,`unconfirmed`,`run_ended`]);Object.freeze({work_pending:[`Work pending`,`Arbeit offen`],approval_pending:[`Approval pending`,`Freigabe ausstehend`],qa_report_pending:[`QA report pending`,`QA-Bericht ausstehend`],qa_evidence_open:[`QA evidence open`,`QA-Nachweis offen`],qa_correction_open:[`QA correction open`,`QA-Korrektur offen`],qa_source_decision:[`QA source decision required`,`QA: vorgelagerte Entscheidung erforderlich`],qa_blocked:[`QA blocked`,`QA blockiert`],source_unconfirmed:[`Source unconfirmed`,`Quelle nicht bestätigt`],closeout_pending:[`Closeout pending`,`Abschluss offen`],completed:[`Completed`,`Abgeschlossen`],unconfirmed:[`Unconfirmed`,`Nicht bestätigt`],run_ended:[`Run ended`,`Run beendet`]});var mm=(e,t)=>!!e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===t.length&&t.every(t=>Object.hasOwn(e,t)),hm=e=>typeof e==`string`&&om.test(e),gm=e=>typeof e==`string`&&/^sha256:[a-f0-9]{64}$/u.test(e),_m=e=>typeof e==`string`&&!e.includes(`\0`),vm=e=>Array.isArray(e)&&e.every(_m),ym=(e,t)=>typeof e==`string`&&[cm(t,``),lm(t,``)].some(t=>e.startsWith(`${t}/`))&&!/[\\:%?#\0]/u.test(e)&&e.split(`/`).every(e=>e&&e!==`.`&&e!==`..`);function bm(e,t){return!e||!hm(t)?!1:pm.includes(e.kind)&&_m(e.phase)&&[`not_applicable`,`missing`,`unconfirmed`,`pass`,`revise`,`block`].includes(e.qa_outcome)&&[`active`,`completed`,`superseded`,`abandoned`].includes(e.lifecycle)&&vm(e.recorded_approvals)&&e.recorded_approvals.length<=6&&e.recorded_approvals.every(e=>[`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`].includes(e))&&(e.decisive_obligation===null||mm(e.decisive_obligation,[`id`,`routing_target`,`action`,`source_path`])&&_m(e.decisive_obligation.id)&&e.decisive_obligation.id.length<=128&&[`UR`,`PRD`,`SD`,`TP`,`CD+Tests`,`evidence_obligation`].includes(e.decisive_obligation.routing_target)&&_m(e.decisive_obligation.action)&&ym(e.decisive_obligation.source_path,t))&&Number.isSafeInteger(e.open_obligation_count)&&e.open_obligation_count>=0&&e.open_obligation_count<=64&&_m(e.display_action)&&Array.isArray(e.sources)&&e.sources.length<=64&&e.sources.every(e=>mm(e,[`path`,`digest`,`state`])&&ym(e.path,t)&&gm(e.digest)&&e.state===`available`)&&vm(e.limitations)&&e.authorizes===!1}var xm=new Set([`available`,`empty`,`partial`,`invalid`,`missing`,`unsupported`,`blocked`,`stale`,`error`]),K=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Sm=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Sm(e,t[n]));if(!K(e)||!K(t))return!1;let n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.hasOwn(t,n)&&Sm(e[n],t[n]))},q=e=>typeof e==`string`,Cm=e=>e===null||q(e),wm=e=>K(e)&&[`current`,`superseded`,`applicability_unknown`].every(t=>{let n=e[t];return Array.isArray(n)&&n.every(e=>K(e)&&Cm(e.step)&&Cm(e.path)&&q(e.reason)&&(e.available===null||typeof e.available==`boolean`))}),Tm=e=>K(e)&&[`type`,`operation_key`,`effect`,`gate`].every(t=>q(e[t]))&&[`agent`,`human`].includes(String(e.actor)),Em=(e,t)=>K(e)&&bm(e,t)&&new TextEncoder().encode(JSON.stringify(e)).length<=65536,Dm=e=>Array.isArray(e)&&e.every(e=>K(e)&&q(e.resource_id)&&q(e.run_id)&&q(e.type)&&q(e.registered_reference)&&Cm(e.path)&&q(e.status)),Om=e=>Array.isArray(e)&&e.every(e=>K(e)&&q(e.code)&&[`message`,`path`,`next_step`,`severity`,`section`].every(t=>e[t]===void 0||q(e[t]))&&(e.key===void 0||Cm(e.key))),km=e=>typeof e==`string`&&/^sha256:[a-f0-9]{64}$/.test(e),Am=e=>typeof e==`string`&&/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e),jm=e=>typeof e==`string`&&/^[a-f0-9]{64}$/.test(e),Mm=new Set([`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`]);function Nm(e,t,n){if(!K(e)||!K(e.source)||!K(e.display))return!1;let r=e.source,i=e.display,a=e.result,o=[`UR`,`PRD`,`SD`,`TP`].includes(String(r.gate));return r.run_id!==t||!Am(r.revision_id)||r.revision_id!==n||!q(r.gate)||typeof r.available!=`boolean`||!Cm(r.reason)||r.artifact_path!==(o?cm(t,`${r.gate}.md`):null)||!(r.artifact_digest===null||km(r.artifact_digest))||r.available&&(!o||!km(r.artifact_digest)||r.reason!==null)||![`unchecked`,`passed`,`corrections_required`,`unavailable`].includes(String(i.state))||!Cm(i.reason)||![`check`,`authoring`,`reload`].includes(String(i.recovery))||i.findings!==void 0&&(!Om(i.findings)||i.state!==`corrections_required`&&i.findings.length>0)?!1:a===null?i.state===(r.available?`unchecked`:`unavailable`):r.available&&K(a)&&a.run_id===t&&a.gate===r.gate&&a.expected_revision_id===n&&a.revision_id===n&&a.artifact_path===r.artifact_path&&(a.artifact_digest===r.artifact_digest||a.artifact_digest===null&&(i.state===`unavailable`||a.current_gate===r.gate&&a.diagnostics instanceof Array&&a.diagnostics.length===1&&K(a.diagnostics[0])&&a.diagnostics[0].code===`artifact_gate_not_ready`))&&typeof a.ready==`boolean`&&a.readiness_scope===`authoring_checks`&&a.authorizes===!1&&a.semantic_review_required===!0&&a.registration_required===!0&&a.presentation_required===!0&&Array.isArray(a.checks)&&a.checks.every(e=>K(e)&&q(e.name)&&typeof e.ready==`boolean`)&&Array.isArray(a.diagnostics)&&Om(a.diagnostics)&&q(a.next_action)&&(a.readiness_details===void 0||K(a.readiness_details))&&(a.ready?i.state===`passed`&&a.artifact_digest===r.artifact_digest&&a.diagnostics.length===0&&a.checks.length>0&&a.checks.every(e=>e.ready):[`corrections_required`,`unavailable`].includes(String(i.state))&&a.diagnostics.length>0)}function Pm(e,t){if(!K(e)||!K(t)||!Mm.has(String(e.type))||e.schema_version!==`1`||e.authorizes!==!1||!Am(e.revision_id)||!Cm(e.reason)||![`available`,`missing`,`blocked`,`unsupported`,`unavailable`].includes(String(e.source_state))||![`approved`,`draft`,`draft_checked`,`revision_required`,`check_unavailable`,`approval_unconfirmed`,`unavailable`].includes(String(e.state))||![`approved`,`draft`,`current`,`unavailable`].includes(String(e.version_kind))||![`resource_id`,`run_id`,`type`,`registered_reference`].every(n=>e[n]===t[n])||t.status===`blocked`&&e.source_state!==`blocked`)return!1;let n=e.recorded_approval,r=e.check;return n===null||K(n)&&n.status===`approved`&&q(n.evidence)?e.source_state===`available`?!jm(e.content_digest)||r!==null&&!(K(r)&&r.content_digest===e.content_digest&&Nm(r,String(e.run_id),e.revision_id)&&K(r.source)&&r.source.gate===e.type&&r.source.artifact_path===e.registered_reference&&r.result!==null)?!1:e.state===`approved`?e.version_kind===`approved`&&n!==null&&r===null&&e.reason===null:e.state===`approval_unconfirmed`?e.version_kind===`current`&&n!==null&&r===null:n!==null||e.version_kind===`approved`?!1:e.state===`draft`?e.version_kind===`draft`&&r===null:e.state===`draft_checked`||e.state===`revision_required`?e.version_kind===`draft`&&K(r)&&K(r.display)&&r.display.state===(e.state===`draft_checked`?`passed`:`corrections_required`):e.state===`check_unavailable`?e.version_kind===`draft`&&(r===null||K(r)&&K(r.display)&&r.display.state===`unavailable`):e.state===`unavailable`&&e.version_kind===`current`&&r===null:e.content_digest===null&&e.state===`unavailable`&&e.version_kind===`unavailable`&&r===null:!1}function Fm(e){let t=e.document_states;if(t===void 0)return!0;if(!Array.isArray(t)||new TextEncoder().encode(JSON.stringify(t)).length>262144||!Array.isArray(e.resources))return!1;let n=e.resources.filter(e=>K(e)&&Mm.has(String(e.type)));return t.length!==n.length||new Set(t.map(e=>K(e)?e.resource_id:null)).size!==t.length?!1:t.every(t=>{if(!K(t)||t.run_id!==e.run_id||t.revision_id!==e.revision_id||!n.some(e=>Pm(t,e)))return!1;let r=t.recorded_approval,i=t.check,a=K(e.evaluation)&&Array.isArray(e.evaluation.approvals)?e.evaluation.approvals.find(e=>K(e)&&e.gate===t.type&&e.status===`approved`):void 0;return r===null!=(a===void 0)||!(r===null||K(r)&&r.status===`approved`&&q(r.evidence)&&K(e.evaluation)&&Array.isArray(e.evaluation.approvals)&&e.evaluation.approvals.some(e=>K(e)&&e.gate===t.type&&e.status===r.status&&e.evidence===r.evidence))?!1:i===null||K(i)&&Sm({source:i.source,result:i.result,display:i.display},e.draft_check)})}var Im=e=>Array.isArray(e)&&e.length<=64&&e.every(e=>K(e)&&[`resource_id`,`run_id`,`origin`,`path`].every(t=>q(e[t]))&&[`node_id`,`graph_digest`,`content_digest`,`content`,`code`].every(t=>Cm(e[t]))&&[`available`,`unresolved`,`missing`,`blocked`,`unsupported`].includes(String(e.state))&&(e.state!==`available`||q(e.node_id)&&q(e.content_digest)&&q(e.graph_digest)&&q(e.content))),Lm=(e,t)=>e===void 0||e===null&&![`superseded`,`abandoned`].includes(String(t))||K(e)&&e.outcome===t&&[`superseded`,`abandoned`].includes(String(e.outcome))&&Cm(e.reason)&&(e.successor===null||K(e.successor)&&[`run`,`reference`].includes(String(e.successor.kind))&&q(e.successor.value)&&e.successor.verified===(e.successor.kind===`run`))&&(e.confirmed_by===null||K(e.confirmed_by)&&(e.confirmed_by.statement===`unknown`||e.confirmed_by.statement===`cooperative`&&Cm(e.confirmed_by.name)&&Cm(e.confirmed_by.email)))&&Cm(e.closed_at)&&Cm(e.operation_id)&&[`recorded`,`unavailable`].includes(String(e.receipt))&&e.authorizes===!1,Rm=(e,t=!1)=>{if(!K(e)||!q(e.run_id)||!Cm(e.revision_id)||!Cm(e.lifecycle)||!Array.isArray(e.resources)||!Dm(e.resources)||e.resources.some(t=>!K(t)||t.run_id!==e.run_id)||e.title!==void 0&&!q(e.title)||e.diagnostics!==void 0&&!Om(e.diagnostics)||e.work_summary!==void 0&&e.work_summary!==null&&!Em(e.work_summary,e.run_id)||e.draft_check!==void 0&&!Nm(e.draft_check,e.run_id,e.revision_id)||!Fm(e)||!Lm(e.closure,e.lifecycle)||e.evidence_applicability!==void 0&&!wm(e.evidence_applicability))return!1;if(e.evaluation===void 0)return t&&Om(e.diagnostics);let n=e.evaluation,r=e.persisted;return K(n)&&[`status`,`current_gate`,`blocking_reason`,`missing_approval`,`next_allowed_action`,`doctor_status`,`git_evidence`].every(e=>q(n[e]))&&(n.next_operation===void 0||n.next_operation===null||Tm(n.next_operation))&&(n.completion===void 0||K(n.completion)&&[`pending`,`completed`,`unconfirmed`,`superseded`,`abandoned`].includes(String(n.completion.status))&&q(n.completion.gate)&&typeof n.completion.fulfilled==`boolean`&&n.completion.status===`completed`===n.completion.fulfilled)&&Cm(n.next_action_de)&&Om(n.diagnostics)&&Array.isArray(n.missing_evidence)&&(n.control_assessment===void 0||K(n.control_assessment)&&[`open`,`blocked`,`unconfirmed`,`completed`,`ended`].includes(String(n.control_assessment.state))&&n.control_assessment.authorizes===!1)&&Array.isArray(n.approvals)&&n.approvals.every(e=>K(e)&&[`gate`,`status`,`evidence`].every(t=>q(e[t])))&&K(r)&&[`current_gate`,`next_allowed_action`,`decision`].every(e=>q(r[e]))},zm=e=>K(e)&&Dm([e.resource])&&(e.content===void 0||q(e.content)&&[`markdown`,`json`,`text`].includes(String(e.format))&&q(e.content_digest)&&K(e.links)&&Object.values(e.links).every(q))&&(e.document_state===void 0||Pm(e.document_state,e.resource)&&e.document_state.content_digest===e.content_digest&&new TextEncoder().encode(JSON.stringify(e.document_state)).length<=262144);function Bm(e,t){if(t.data===null)return;if(!t.snapshot_id||!t.observed_as_of||!t.source_digest)throw Error(`dto_invalid`);let n=t.data,r=!1;if(K(n)){if(e.startsWith(`/api/changes`))r=typeof n.changed==`boolean`;else if(e.startsWith(`/api/freshness`))r=n.unchanged===!0;else if(n.kind===`runs`&&(e.startsWith(`/api/snapshot`)||e.startsWith(`/api/runs/`)))r=[`complete`,`incomplete`,`absent`].includes(String(n.state))&&n.authorizes===!1&&Array.isArray(n.runs)&&n.runs.every(e=>K(e)&&typeof e.valid==`boolean`&&q(e.run_id)&&e.selectable===/^[a-z0-9][a-z0-9._-]{0,127}$/.test(e.run_id)&&(e.selectable||e.valid===!1)&&q(e.title)&&[`objective`,`run_id`].includes(String(e.title_source))&&Cm(e.lifecycle)&&Cm(e.revision_id)&&Cm(e.next_action)&&q(e.basis)&&e.path===`.agdf/control/runs/${e.run_id}/RUN_STATE.md`&&K(e.attention)&&q(e.attention.label)&&[`decision_required`,`clarification_required`,`blocked`,`in_progress`,`unclear`,`none`].includes(String(e.attention.code))&&K(e.last_activity)&&Cm(e.last_activity.at)&&q(e.last_activity.source)&&Cm(e.last_activity.precision)&&Om(e.findings))&&new Set(n.runs.map(e=>e.run_id)).size===n.runs.length&&K(n.counts)&&n.counts.total===n.runs.length&&K(n.counts.lifecycle)&&K(n.counts.attention)&&[n.counts.lifecycle,n.counts.attention].every(e=>Object.values(e).every(e=>Number.isSafeInteger(e)&&e>=0)&&Object.values(e).reduce((e,t)=>e+t,0)===n.runs.length)&&Om(n.diagnostics)&&n.source_path===`.agdf/control/runs/`&&Number.isSafeInteger(n.file_count)&&Number.isSafeInteger(n.byte_count)&&(n.removed_run_id===void 0||q(n.removed_run_id)&&/^[a-z0-9][a-z0-9._-]{0,127}$/.test(n.removed_run_id));else if(n.kind===`work`&&(e.startsWith(`/api/snapshot`)||e.startsWith(`/api/runs/`)))r=Array.isArray(n.entries)&&n.entries.every(e=>K(e)&&[`section`,`key`,`original_key`,`title`,`stored_status`,`scope`,`stored_next_step`,`source_links`].every(t=>q(e[t]))&&!Object.hasOwn(e,`saved_summary`)&&!Object.hasOwn(e,`title_observation`)&&Cm(e.priority)&&Cm(e.current_spec)&&typeof e.selectable==`boolean`&&(e.row_id===void 0||q(e.row_id)&&/^[a-f0-9-]{36}$/.test(e.row_id))&&n.layout===`run-folders-v1`&&[`planned`,`run`,`archive`].includes(String(e.kind))&&q(e.identity)&&K(e.source)&&q(e.source.path)&&(e.source.digest===null||km(e.source.digest))&&q(e.coverage)&&typeof e.handoff_ready==`boolean`&&Array.isArray(e.actions)&&e.actions.every(q))&&Om(n.diagnostics)&&q(n.source_path)&&q(n.content_digest)&&K(n.counts)&&Object.values(n.counts).every(e=>Number.isSafeInteger(e)&&e>=0)&&fm(n)&&Number.isSafeInteger(n.file_count)&&n.file_count>=0&&Number.isSafeInteger(n.byte_count)&&n.byte_count>=0&&(n.removed_run_id===void 0||q(n.removed_run_id)&&/^[a-z0-9][a-z0-9._-]{0,127}$/.test(n.removed_run_id));else if(n.kind===`archive`&&e.startsWith(`/api/archive/`)){let e=n.entry,t=n.document;r=K(e)&&q(e.id)&&q(e.title)&&[`run`,`artefacts`,`project`].includes(String(e.entry_kind))&&[e.recorded_lifecycle,e.recorded_gate,e.source_control_version].every(Cm)&&e.authorizes===!1&&Array.isArray(e.recorded_approvals)&&e.recorded_approvals.every(e=>K(e)&&[`gate`,`status`,`evidence`].every(t=>q(e[t])))&&Array.isArray(e.resources)&&e.resources.every(e=>K(e)&&Am(e.resource_id)&&q(e.original_path)&&q(e.path)&&String(e.path).startsWith(`.agdf/control/archive/source/`)&&km(e.digest)&&Number.isSafeInteger(e.bytes)&&e.bytes>=0)&&(t===null||K(t)&&Am(t.resource_id)&&typeof t.available==`boolean`&&q(t.path)&&km(t.digest)&&Number.isSafeInteger(t.bytes)&&(t.available?q(t.content)&&new TextEncoder().encode(String(t.content)).length<=2097152:q(t.reason))&&e.resources.some(e=>K(e)&&e.resource_id===t.resource_id&&e.original_path===t.path&&e.digest===t.digest&&e.bytes===t.bytes))}else if(n.kind===`planned`&&e.startsWith(`/api/planned/`)){let e=n.entry;r=K(e)&&q(e.plan_id)&&/^[a-z0-9][a-z0-9._-]{0,127}$/.test(String(e.plan_id))&&q(e.title)&&[`high`,`normal`,`low`].includes(String(e.priority))&&e.path===`.agdf/control/planned/${e.plan_id}/UR.md`&&km(e.digest)&&q(e.content)&&new TextEncoder().encode(String(e.content)).length<=131072&&K(e.readiness)&&typeof e.readiness.ready==`boolean`&&e.authorizes===!1}else if([`run`,`document`,`context`].includes(String(n.kind))){if(r=n.run===null?n.kind===`run`&&q(n.requested_run_id)&&t.state===`missing`:Rm(n.run,n.kind===`run`&&t.state===`invalid`),(n.kind===`document`||n.kind===`context`)&&(r=r&&K(n.run)&&(n.document===null||zm(n.document)&&K(n.document)&&K(n.document.resource)&&n.document.resource.run_id===n.run.run_id&&Array.isArray(n.run.resources)&&n.run.resources.some(e=>K(e)&&K(n.document)&&K(n.document.resource)&&[`resource_id`,`run_id`,`type`,`path`,`registered_reference`,`status`].every(t=>e[t]===n.document.resource[t]))),r&&K(n.document)&&K(n.run))){let e=Array.isArray(n.run.document_states)?n.run.document_states.find(e=>K(e)&&K(n.document)&&K(n.document.resource)&&e.resource_id===n.document.resource.resource_id):void 0;r=n.document.document_state===void 0?e===void 0||n.document.content===void 0:e!==void 0&&Sm(e,n.document.document_state)&&K(e)&&e.source_state===`available`&&e.content_digest===n.document.content_digest}n.kind===`context`&&(r=r&&K(n.context)&&K(n.run)&&n.context.run_id===n.run.run_id&&Array.isArray(n.context.references)&&Im(n.context.references)&&n.context.references.every(e=>K(e)&&K(n.run)&&e.run_id===n.run.run_id));let i=e.startsWith(`/api/documents/`)?`document`:e.startsWith(`/api/context/`)?`context`:`run`;r&&=n.kind===i||t.state!==`available`&&n.kind===`run`}}if(!r)throw Error(`dto_invalid`);if(e.startsWith(`/api/draft-check/`)&&t.state===`available`){let t=new URL(e,`https://local.invalid`);if(!K(n)||!K(n.run)||!K(n.run.draft_check)||!K(n.run.draft_check.source)||n.kind!==`run`||n.run.run_id!==t.pathname.slice(17)||n.run.draft_check.result===null||n.run.draft_check.source.gate!==t.searchParams.get(`gate`)||n.run.revision_id!==t.searchParams.get(`expected_revision`))throw Error(`dto_invalid`)}}function Vm(e,t){if(!K(e)||e.schema_version!==`2`||!K(e.target)||typeof e.target.target_id!=`string`||typeof e.target.display_path!=`string`||!xm.has(String(e.state))||typeof e.retryable!=`boolean`||e.code!==null&&typeof e.code!=`string`||e.snapshot_id!==null&&typeof e.snapshot_id!=`string`||e.observed_as_of!==null&&typeof e.observed_as_of!=`string`||e.source_digest!==null&&typeof e.source_digest!=`string`||!Object.hasOwn(e,`data`)||t&&(e.target.target_id!==t.target||!t.replacement&&e.data!==null&&e.snapshot_id!==t.snapshot))throw Error(`dto_invalid`)}var Hm=class{app;constructor(e=`AGDF Cockpit`,t={autoResize:!0}){this.app=new am({name:e,version:`1.0.0`},{},t)}pending=0;closing=new Map;sessionId=``;resourceRuns=new Map;get session(){return this.sessionId}set session(e){e!==this.sessionId&&this.resourceRuns.clear(),this.sessionId=e}async request(e){if(this.pending>=8)throw Error(`busy`);this.pending+=1;try{return await this.deadline(e)}finally{--this.pending}}async deadline(e){let t;try{return await Promise.race([e(),new Promise((e,n)=>{t=setTimeout(()=>n(Error(`timeout`)),1e4)})])}finally{clearTimeout(t)}}close(e,t){let n=this.closing.get(e);if(n)return n;if(this.closing.size>=8)throw Error(`busy`);let r=this.deadline(()=>this.app.callServerTool({name:`agdf_cockpit_read`,arguments:{operation:`close`,session_id:e}},{timeout:1e4,signal:t}));return this.closing.set(e,r),r.finally(()=>{this.closing.get(e)===r&&this.closing.delete(e)}).catch(()=>{}),r}async operation(e,t,n){let r=n??this.session;if(!this.app.getHostCapabilities()?.serverTools||!r)throw Error(`session_invalid`);let i=e.operation===`close`;if(i&&Object.keys(e).length!==1)throw Error(`resource_denied`);let a=await(i?this.close(r,t):this.request(()=>this.app.callServerTool({name:`agdf_cockpit_read`,arguments:{...e,session_id:r}},{timeout:1e4,signal:t})));if(n===void 0&&r!==this.session||t?.aborted)throw Error(`session_invalid`);if(!a.structuredContent)throw Error(`read_failed`);if(a.isError){let e=a.structuredContent;if(e.schema_version===`1`&&e.outcome===`rejected`&&e.authorizes===!1&&[`session_expired`,`source_changed`,`resource_denied`].includes(String(e.reason))){if(i&&e.reason===`session_expired`)return e;throw Error(String(e.reason))}if(Vm(e),![`invalid`,`missing`,`unsupported`,`blocked`,`stale`,`error`].includes(e.state)||e.data!==null||typeof e.code!=`string`||!/^[a-z][a-z0-9_]{0,127}$/.test(e.code))throw Error(`read_failed`)}return a.structuredContent}readForSession(e){return this.reader(new Map,e)}read=this.reader(this.resourceRuns);reader(e,t){let n=async(n,r,i)=>{let a=new URL(n,`https://local.invalid`),o=a.searchParams.get(`snapshot`),s;if(a.pathname===`/api/snapshot`)e.clear(),s={operation:`snapshot`,...a.searchParams.has(`run_id`)?{run_id:a.searchParams.get(`run_id`)}:a.searchParams.has(`view`)?{view:a.searchParams.get(`view`)}:{}};else if(a.pathname===`/api/changes`)s={operation:`changes`,snapshot_id:o};else if(a.pathname===`/api/freshness`)s={operation:`freshness`,snapshot_id:o};else if(/^\/api\/archive\/[a-f0-9-]{36}$/.test(a.pathname)){let e=[...a.searchParams.keys()];if(e.length>2||new Set(e).size!==e.length||e.some(e=>![`snapshot`,`resource`].includes(e)))throw Error(`resource_denied`);s={operation:`archive`,snapshot_id:o,row_id:a.pathname.slice(13),...a.searchParams.has(`resource`)?{resource_id:a.searchParams.get(`resource`)}:{}}}else if(/^\/api\/planned\/[a-f0-9-]{36}$/.test(a.pathname))s={operation:`planned`,snapshot_id:o,row_id:a.pathname.slice(13)};else if(a.pathname.startsWith(`/api/runs/`))s={operation:`run`,snapshot_id:o,run_id:a.pathname.slice(10)};else if(a.pathname.startsWith(`/api/context/`))s={operation:`context`,snapshot_id:o,run_id:a.pathname.slice(13)};else if(/^\/api\/draft-check\/[a-z0-9][a-z0-9._-]{0,127}$/.test(a.pathname)){let e=[...a.searchParams.keys()];if(e.length!==3||new Set(e).size!==3||![`snapshot`,`gate`,`expected_revision`].every(t=>e.includes(t)))throw Error(`resource_denied`);s={operation:`artifact_readiness`,snapshot_id:o,run_id:a.pathname.slice(17),gate:a.searchParams.get(`gate`),expected_revision_id:a.searchParams.get(`expected_revision`)}}else if(a.pathname.startsWith(`/api/documents/`)){let t=a.pathname.slice(15),n=e.get(t);if(!n)throw Error(`resource_denied`);s={operation:`document`,snapshot_id:o,run_id:n,resource_id:t}}else throw Error(`resource_denied`);let c=await this.operation(s,r,t);if(Vm(c,i),Bm(n,c),[`snapshot`,`run`,`document`,`context`,`artifact_readiness`].includes(String(s.operation))){e.clear();let t=c.data;if(t?.run)for(let n of t.run.resources)e.set(n.resource_id,t.run.run_id)}return c};return n.waitForChanges=(e,t,r)=>n(`/api/changes?snapshot=`+e,t,{target:r,snapshot:e}),n}},J=p();function Um(e){return e&&typeof e==`object`&&(Object.values(e).forEach(Um),Object.freeze(e)),e}var Wm=Um({cancelled:{result:`cancelled`,actions:[`cancelled`]},control_unsupported:{result:`partial`,actions:[`inspect_control`]},control_repair_required:{result:`partial`,actions:[`inspect_control`]},plugin_ready_mcp_absent:{result:`success`,actions:[`restart_host`]},plugin_ready_mcp_in_plugin:{result:`success`,actions:[`restart_host`]},mcp_ready_hook_review_required:{result:`partial`,actions:[`review_codex_hook`]},mcp_ready_hook_verification_pending:{result:`partial`,actions:[`enable_codex_hook`,`verify_codex_hook`,`inspect_codex_hook`]},plugin_ready_mcp_unchanged:{result:`success`,actions:[`restart_host`]},configured_pending_restart:{result:`success`,actions:[`restart_host`]},configured_unverified:{result:`success`,actions:[`verify_host_discovery`]},discovered_ready:{result:`success`,actions:[`none`]},partial:{result:`partial`,actions:[`retry_mcp`,`retry_plugin`,`review_runtime_checks`,`resolve_mcp_registration`]},degraded_or_foreign:{result:`partial`,actions:[`resolve_mcp_registration`]},failed:{result:`failed`,actions:[`retry_plugin`,`resolve_mcp_registration`,`choose_plugin_only_or_cancel`]}});Um([`input_validation`,`setup_preflight`,`setup_selection`,`runtime_check_permission`,`plugin_operation`,`plugin_verification`,`mcp_preflight`,`mcp_enable`,`mcp_disable`,`plugin_disable`,`plugin_uninstall`,`result_validation`,`presentation`]),Um([`input_invalid`,`setup_preflight_failed`,`setup_selection_blocked`,`runtime_check_permission_failed`,`plugin_operation_failed`,`plugin_verification_failed`,`mcp_preflight_failed`,`mcp_enable_failed`,`mcp_disable_failed`,`plugin_disable_failed`,`plugin_uninstall_failed`,`result_invalid`,`presentation_failed`]),Um([...new Set(Object.values(Wm).flatMap(e=>e.actions))]);var Gm=Um([`target_evaluation_failed`,`target_presentation_failed`,`control_evaluation_failed`,`control_presentation_failed`,`runtime_contracts_unavailable`,`runtime_evidence_invalid`,`internal_failure`,`output_too_large`,`intake_run_collision`,`intake_scaffold_required`,`intake_run_id_invalid`,`run_assignment_inventory_invalid`,`prd_authoring_inputs_invalid`,`sd_authoring_inputs_invalid`,`tp_authoring_inputs_invalid`,`AGDF_ARTEFACT_TEMPLATE_UNSUPPORTED`,`AGDF_ARTEFACT_TEMPLATE_ROOT_UNAVAILABLE`,`AGDF_ARTEFACT_TEMPLATE_UNAVAILABLE`,`AGDF_ARTEFACT_TEMPLATE_UNSAFE`]);Um(Object.fromEntries(Gm.map(e=>[e,e]))),Um({hook_review_required:{state:`mcp_ready_hook_review_required`,action:`review_codex_hook`},hook_disabled:{state:`mcp_ready_hook_verification_pending`,action:`enable_codex_hook`},host_unverified:{state:`mcp_ready_hook_verification_pending`,action:`inspect_codex_hook`},hook_trusted_session_unverified:{state:`mcp_ready_hook_verification_pending`,action:`verify_codex_hook`}});var Km=Um(`title.connecting.unavailable.approve.request_change.reject.openDocument.back.comment.commentHelp.pending.uncertain.checkOperation.retryOriginal.confirmed.denied.notQualified.sourceChanged.expired.comparison.comparisonUnavailable.sources.run.gate.revision.consequence.permission.docUnavailable.commentRequired.commentTooLarge.documentTitle.notSaved.unknownCurrent.sourceLanguage.alreadyDecided.initialize.machineComparison.documentUnchanged.documentChanged.previousDocument.discussionHint.nextStep.nextInformation.nextChat.nextWaiting.continuationMessage.nextRequested.nextUnavailable.closeUnavailable.chatApprovalHint.approveWithDeviations.confirmedWithDeviations.deviationAcceptanceIntro.openPreview.previewTitle.previewUnavailable.previewChanged.retryPreview.previewIllustrative.previewTask.previewScenarios.previewCriteria.previewQuestions.previewUnsupported.previewLoading`.split(`.`));Um([`title`,`current`,`superseded`,`applicability_unknown`,`currentDescription`,`emptyDescription`,`historyDescription`,`unknownDescription`,`unavailable`,`open`,`next`,`human`,`agent`,`completed`,`unconfirmedDescription`,`retainedDescription`]),Um(Object.fromEntries(Km.map(e=>[e,[`title`,`comparison`,`documentTitle`].includes(e)?`title`:`connecting.unavailable.commentHelp.pending.uncertain.confirmed.denied.notQualified.sourceChanged.expired.comparisonUnavailable.consequence.permission.docUnavailable.commentRequired.commentTooLarge.notSaved.unknownCurrent.sourceLanguage.alreadyDecided.initialize.machineComparison.documentUnchanged.documentChanged.discussionHint.nextInformation.nextChat.nextWaiting.continuationMessage.nextRequested.nextUnavailable.closeUnavailable.chatApprovalHint.previewUnavailable.previewChanged.previewIllustrative.previewUnsupported`.split(`.`).includes(e)?`description`:`label`]))),Um([`laeuft`,`baut`,`wartet`,`blockiert`,`fertig`,`bereit`]),Um([`run_version_unsupported`,`run_state_invalid`,`too_large`,`missing`,`control_layout_unsupported`,`control_invalid`,`read_failed`,`resource_denied`,`source_changed`,`timeout`,`resource_limit`,`unavailable`,`exit`,`malformed`]);var qm=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Jm=e=>typeof e==`string`&&/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e),Ym=e=>typeof e==`string`&&/^sha256:[a-f0-9]{64}$/.test(e);function Xm(e){if(!qm(e)||e.isError===!0||!qm(e._meta)||!qm(e._meta.agdf_decision))return null;let t=e._meta.agdf_decision,n=t.binding,r=t.target;if(t.delivery_state!==void 0&&(t.delivery_state!==`preview`||!Jm(t.display_nonce)||t.surface_id!==null&&!Jm(t.surface_id)||!Array.isArray(t.enabled_actions)||t.enabled_actions.length)||t.source_digest!==void 0&&!Ym(t.source_digest)||!qm(n)||!qm(r)||!qm(t.labels)||!qm(t.comparison))return null;if(t.preview!==void 0){let e=t.preview;if(n.gate!==`PRD`||!qm(e)||!Jm(e.resource_id)||!Ym(e.content_digest)||typeof e.version!=`string`||!/^[a-z][a-z0-9-]{0,63}-v[1-9][0-9]{0,5}$/.test(e.version)||typeof e.task!=`string`||!e.task.trim()||e.task.length>1200||!Array.isArray(e.scenarios)||!e.scenarios.length||e.scenarios.length>16||!e.scenarios.every(e=>typeof e==`string`&&e.length>0&&e.length<=240)||e.open_questions!==void 0&&(!Array.isArray(e.open_questions)||e.open_questions.length>16||!e.open_questions.every(e=>typeof e==`string`&&e.trim().length>0&&e.length<=1200))||!Array.isArray(e.criterion_ids)||!e.criterion_ids.length||e.criterion_ids.length>64||!e.criterion_ids.every(e=>typeof e==`string`&&/^[A-Z][A-Z0-9-]*$/.test(e)))return null}return t.schema_version!==`1`||![`session_id`,`read_session_id`,`owner_epoch`,`snapshot_id`].every(e=>Jm(t[e]))||!Number.isSafeInteger(t.generation)||Number(t.generation)<1||typeof t.expires_at!=`number`||!Number.isFinite(t.expires_at)||typeof t.summary!=`string`||!t.summary.trim()||new TextEncoder().encode(t.summary).length>262144||typeof t.title!=`string`||!t.title.trim()||typeof r.display_path!=`string`||!Ym(r.target_id)||t.decision_brief!==void 0&&t.decision_brief!==null&&(typeof t.decision_brief!=`string`||new TextEncoder().encode(t.decision_brief).length>24e3)||[`gate_title`,`decision_heading`,`approval_effect`,`approval_effect_label`].some(e=>t[e]!==void 0&&(typeof t[e]!=`string`||!t[e].trim()||t[e].length>1200))||n.target_id!==r.target_id||typeof n.run_id!=`string`||!/^[a-z0-9][a-z0-9._-]{0,127}$/.test(n.run_id)||![`UR`,`PRD`,`SD`,`TP`,`QA`,`UAT`].includes(String(n.gate))||!Jm(n.expected_revision_id)||!Jm(n.presentation_id)||!Ym(n.material_version)||!Ym(n.presentation_digest)||typeof n.presentation_language!=`string`||!Array.isArray(n.material_sources)||!n.material_sources.length||n.material_sources.length>12||!n.material_sources.every(e=>qm(e)&&typeof e.type==`string`&&Ym(e.digest)&&typeof e.path==`string`&&um(String(n.run_id),e.path))||!(t.resource_id===null||Jm(t.resource_id))||!(t.document_digest===null||Ym(t.document_digest))||!Array.isArray(t.enabled_actions)||new Set(t.enabled_actions).size!==t.enabled_actions.length||!t.enabled_actions.every(e=>[`approve`,`request_change`,`reject`].includes(String(e)))||![`available`,`not_qualified`].includes(String(t.capability))||t.capability===`not_qualified`&&t.enabled_actions.length>0||!(t.comparison.state===`unavailable`&&typeof t.comparison.reason==`string`||t.comparison.state===`available`&&Jm(t.comparison.previous_revision_id)&&Ym(t.comparison.previous_digest)&&t.comparison.current_digest===(t.source_digest??t.document_digest)&&typeof t.comparison.unchanged==`boolean`&&t.comparison.unchanged===(t.comparison.previous_digest===t.comparison.current_digest)&&typeof t.comparison.previous_text==`string`&&new TextEncoder().encode(t.comparison.previous_text).length<=131072)||Km.some(e=>typeof t.labels[e]!=`string`||!t.labels[e].trim())?null:t}function Zm(e,t,n){if(!qm(e)||e.operation_id!==n.operation_id||!qm(e.effect))return!1;let r=qm(e.binding)?e.binding:e,i=e.effect,a=qm(i.record)?i.record:null;return r.run_id===t.binding.run_id&&r.target_id===t.binding.target_id&&r.expected_revision_id===t.binding.expected_revision_id&&i.previous_revision_id===t.binding.expected_revision_id&&(n.action===`approve`?e.action===`record_gate_approval`&&r.gate===t.binding.gate&&r.presentation_id===t.binding.presentation_id&&i.approval===`Approval: ${t.binding.gate}`&&i.presentation_digest===t.binding.presentation_digest&&i.material_version===t.binding.material_version:e.kind===`presentation_decision.record`&&a?.gate===t.binding.gate&&a.presentation_id===t.binding.presentation_id&&a.presentation_digest===t.binding.presentation_digest&&a.material_version===t.binding.material_version&&a.action===n.action&&a.comment===(n.comment??``))}function Qm(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var $m=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,eh=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,th={};function nh(e,t){return((t||th).jsx?eh:$m).test(e)}var rh=/[ \t\n\f\r]/g;function ih(e){return typeof e==`object`?e.type===`text`&&ah(e.value):ah(e)}function ah(e){return e.replace(rh,``)===``}var oh=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};oh.prototype.normal={},oh.prototype.property={},oh.prototype.space=void 0;function sh(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new oh(n,r,t)}function ch(e){return e.toLowerCase()}var lh=class{constructor(e,t){this.attribute=t,this.property=e}};lh.prototype.attribute=``,lh.prototype.booleanish=!1,lh.prototype.boolean=!1,lh.prototype.commaOrSpaceSeparated=!1,lh.prototype.commaSeparated=!1,lh.prototype.defined=!1,lh.prototype.mustUseProperty=!1,lh.prototype.number=!1,lh.prototype.overloadedBoolean=!1,lh.prototype.property=``,lh.prototype.spaceSeparated=!1,lh.prototype.space=void 0;var uh=s({boolean:()=>Y,booleanish:()=>fh,commaOrSpaceSeparated:()=>gh,commaSeparated:()=>hh,number:()=>X,overloadedBoolean:()=>ph,spaceSeparated:()=>mh}),dh=0,Y=_h(),fh=_h(),ph=_h(),X=_h(),mh=_h(),hh=_h(),gh=_h();function _h(){return 2**++dh}var vh=Object.keys(uh),yh=class extends lh{constructor(e,t,n,r){let i=-1;if(super(e,t),bh(this,`space`,r),typeof n==`number`)for(;++i<vh.length;){let e=vh[i];bh(this,vh[i],(n&uh[e])===uh[e])}}};yh.prototype.defined=!0;function bh(e,t,n){n&&(e[t]=n)}function xh(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new yh(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ch(r)]=r,n[ch(a.attribute)]=r}return new oh(t,n,e.space)}var Sh=xh({properties:{ariaActiveDescendant:null,ariaAtomic:fh,ariaAutoComplete:null,ariaBusy:fh,ariaChecked:fh,ariaColCount:X,ariaColIndex:X,ariaColSpan:X,ariaControls:mh,ariaCurrent:null,ariaDescribedBy:mh,ariaDetails:null,ariaDisabled:fh,ariaDropEffect:mh,ariaErrorMessage:null,ariaExpanded:fh,ariaFlowTo:mh,ariaGrabbed:fh,ariaHasPopup:null,ariaHidden:fh,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:mh,ariaLevel:X,ariaLive:null,ariaModal:fh,ariaMultiLine:fh,ariaMultiSelectable:fh,ariaOrientation:null,ariaOwns:mh,ariaPlaceholder:null,ariaPosInSet:X,ariaPressed:fh,ariaReadOnly:fh,ariaRelevant:null,ariaRequired:fh,ariaRoleDescription:mh,ariaRowCount:X,ariaRowIndex:X,ariaRowSpan:X,ariaSelected:fh,ariaSetSize:X,ariaSort:null,ariaValueMax:X,ariaValueMin:X,ariaValueNow:X,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function Ch(e,t){return t in e?e[t]:t}function wh(e,t){return Ch(e,t.toLowerCase())}var Th=xh({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:hh,acceptCharset:mh,accessKey:mh,action:null,allow:null,allowFullScreen:Y,allowPaymentRequest:Y,allowUserMedia:Y,alpha:Y,alt:null,as:null,async:Y,autoCapitalize:null,autoComplete:mh,autoFocus:Y,autoPlay:Y,blocking:mh,capture:null,charSet:null,checked:Y,cite:null,className:mh,closedBy:null,colorSpace:null,cols:X,colSpan:X,command:null,commandFor:null,content:null,contentEditable:fh,controls:Y,controlsList:mh,coords:X|hh,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Y,defer:Y,dir:null,dirName:null,disabled:Y,download:ph,draggable:fh,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Y,formTarget:null,headers:mh,height:X,hidden:ph,high:X,href:null,hrefLang:null,htmlFor:mh,httpEquiv:mh,id:null,imageSizes:null,imageSrcSet:null,inert:Y,inputMode:null,integrity:null,is:null,isMap:Y,itemId:null,itemProp:mh,itemRef:mh,itemScope:Y,itemType:mh,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Y,low:X,manifest:null,max:null,maxLength:X,media:null,method:null,min:null,minLength:X,multiple:Y,muted:Y,name:null,nonce:null,noModule:Y,noValidate:Y,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Y,optimum:X,pattern:null,ping:mh,placeholder:null,playsInline:Y,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Y,referrerPolicy:null,rel:mh,required:Y,reversed:Y,rows:X,rowSpan:X,sandbox:mh,scope:null,scoped:Y,seamless:Y,selected:Y,shadowRootClonable:Y,shadowRootCustomElementRegistry:Y,shadowRootDelegatesFocus:Y,shadowRootMode:null,shadowRootSerializable:Y,shape:null,size:X,sizes:null,slot:null,span:X,spellCheck:fh,src:null,srcDoc:null,srcLang:null,srcSet:null,start:X,step:null,style:null,tabIndex:X,target:null,title:null,translate:null,type:null,typeMustMatch:Y,useMap:null,value:fh,width:X,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:mh,axis:null,background:null,bgColor:null,border:X,borderColor:null,bottomMargin:X,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Y,declare:Y,event:null,face:null,frame:null,frameBorder:null,hSpace:X,leftMargin:X,link:null,longDesc:null,lowSrc:null,marginHeight:X,marginWidth:X,noResize:Y,noHref:Y,noShade:Y,noWrap:Y,object:null,profile:null,prompt:null,rev:null,rightMargin:X,rules:null,scheme:null,scrolling:fh,standby:null,summary:null,text:null,topMargin:X,valueType:null,version:null,vAlign:null,vLink:null,vSpace:X,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:Y,disablePictureInPicture:Y,disableRemotePlayback:Y,exportParts:hh,part:mh,prefix:null,property:null,results:X,security:null,unselectable:null},space:`html`,transform:wh}),Eh=xh({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:gh,accentHeight:X,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:X,amplitude:X,arabicForm:null,ascent:X,attributeName:null,attributeType:null,azimuth:X,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:X,by:null,calcMode:null,capHeight:X,className:mh,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:X,diffuseConstant:X,direction:null,display:null,dur:null,divisor:X,dominantBaseline:null,download:Y,dx:null,dy:null,edgeMode:null,editable:null,elevation:X,enableBackground:null,end:null,event:null,exponent:X,externalResourcesRequired:null,fill:null,fillOpacity:X,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:hh,g2:hh,glyphName:hh,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:X,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:X,horizOriginX:X,horizOriginY:X,id:null,ideographic:X,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:X,k:X,k1:X,k2:X,k3:X,k4:X,kernelMatrix:gh,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:X,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:X,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:X,overlineThickness:X,paintOrder:null,panose1:null,path:null,pathLength:X,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:mh,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:X,pointsAtY:X,pointsAtZ:X,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:gh,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:gh,rev:gh,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:gh,requiredFeatures:gh,requiredFonts:gh,requiredFormats:gh,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:X,specularExponent:X,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:X,strikethroughThickness:X,string:null,stroke:null,strokeDashArray:gh,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:X,strokeOpacity:X,strokeWidth:null,style:null,surfaceScale:X,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:gh,tabIndex:X,tableValues:null,target:null,targetX:X,targetY:X,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:gh,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:X,underlineThickness:X,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:X,values:null,vAlphabetic:X,vMathematical:X,vectorEffect:null,vHanging:X,vIdeographic:X,version:null,vertAdvY:X,vertOriginX:X,vertOriginY:X,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:X,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:Ch}),Dh=xh({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),Oh=xh({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:wh}),kh=xh({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Ah={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},jh=/[A-Z]/g,Mh=/-[a-z]/g,Nh=/^data[-\w.:]+$/i;function Ph(e,t){let n=ch(t),r=t,i=lh;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&Nh.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(Mh,Ih);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!Mh.test(e)){let n=e.replace(jh,Fh);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=yh}return new i(r,t)}function Fh(e){return`-`+e.toLowerCase()}function Ih(e){return e.charAt(1).toUpperCase()}var Lh=sh([Sh,Th,Dh,Oh,kh],`html`),Rh=sh([Sh,Eh,Dh,Oh,kh],`svg`);function zh(e){return e.join(` `).trim()}var Bh=o(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(`
78
78
  `);u=~n?e.length-n:u+e.length}function p(){var e={line:l,column:u};return function(t){return t.position=new m(e),_(),t}}function m(e){this.start=e,this.end={line:l,column:u},this.source=t.source}m.prototype.content=e;function h(n){var r=Error(t.source+`:`+l+`:`+u+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=u,r.source=e,!t.silent)throw r}function g(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function _(){g(i)}function v(e){var t;for(e||=[];t=y();)t!==!1&&e.push(t);return e}function y(){var t=p();if(e.charAt(0)==`/`&&e.charAt(1)==`*`){for(var n=2;e.charAt(n)!=``&&(e.charAt(n)!=`*`||e.charAt(n+1)!=`/`);)++n;if(n+=2,e.charAt(n-1)===``)return h(`End of comment missing`);var r=e.slice(2,n-2);return u+=2,f(r),e=e.slice(n),u+=2,t({type:`comment`,comment:r})}}function b(){var e=p(),t=g(a);if(t){if(y(),!g(o))return h(`property missing ':'`);var r=g(s),i=e({type:`declaration`,property:d(t[0].replace(n,``)),value:r?d(r[0].replace(n,``)):``});return g(c),i}}function ee(){var e=[];v(e);for(var t;t=b();)t!==!1&&(e.push(t),v(e));return e}return _(),ee()}function d(e){return e?e.replace(l,``):``}t.exports=u})),Vh=o((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(Bh());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),Hh=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),Uh=o(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(Vh()),r=Hh();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),Wh=Kh(`end`),Gh=Kh(`start`);function Kh(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function qh(e){let t=Gh(e),n=Wh(e);if(t&&n)return{start:t,end:n}}function Jh(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?Xh(e.position):`start`in e||`end`in e?Xh(e):`line`in e||`column`in e?Yh(e):``}function Yh(e){return Zh(e&&e.line)+`:`+Zh(e&&e.column)}function Xh(e){return Yh(e&&e.start)+`-`+Yh(e&&e.end)}function Zh(e){return e&&typeof e==`number`?e:1}var Qh=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=Jh(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};Qh.prototype.file=``,Qh.prototype.name=``,Qh.prototype.reason=``,Qh.prototype.message=``,Qh.prototype.stack=``,Qh.prototype.column=void 0,Qh.prototype.line=void 0,Qh.prototype.ancestors=void 0,Qh.prototype.cause=void 0,Qh.prototype.fatal=void 0,Qh.prototype.place=void 0,Qh.prototype.ruleId=void 0,Qh.prototype.source=void 0;var $h=l(Uh(),1),eg={}.hasOwnProperty,tg=new Map,ng=/[A-Z]/g,rg=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),ig=new Set([`td`,`th`]),ag=`https://github.com/syntax-tree/hast-util-to-jsx-runtime`;function og(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=_g(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=gg(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?Rh:Lh,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=sg(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function sg(e,t,n){if(t.type===`element`)return cg(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return lg(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return dg(e,t,n);if(t.type===`mdxjsEsm`)return ug(e,t);if(t.type===`root`)return fg(e,t,n);if(t.type===`text`)return pg(e,t)}function cg(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=Rh,e.schema=i),e.ancestors.push(t);let a=Cg(e,t.tagName,!1),o=vg(e,t),s=bg(e,t);return rg.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!ih(e)})),mg(e,o,a,t),hg(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function lg(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}wg(e,t.position)}function ug(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);wg(e,t.position)}function dg(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=Rh,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:Cg(e,t.name,!0),o=yg(e,t),s=bg(e,t);return mg(e,o,a,t),hg(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function fg(e,t,n){let r={};return hg(r,bg(e,t)),e.create(t,e.Fragment,r,n)}function pg(e,t){return t.value}function mg(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function hg(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function gg(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function _g(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=Gh(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function vg(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&eg.call(t.properties,i)){let a=xg(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&ig.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function yg(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`){if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else wg(e,t.position)}else{let i=r.name,a;if(r.value&&typeof r.value==`object`){if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else wg(e,t.position)}else a=r.value===null||r.value;n[i]=a}return n}function bg(e,t){let n=[],r=-1,i=e.passKeys?new Map:tg;for(;++r<t.children.length;){let a=t.children[r],o;if(e.passKeys){let e=a.type===`element`?a.tagName:a.type===`mdxJsxFlowElement`||a.type===`mdxJsxTextElement`?a.name:void 0;if(e){let t=i.get(e)||0;o=e+`-`+t,i.set(e,t+1)}}let s=sg(e,a,o);s!==void 0&&n.push(s)}return n}function xg(e,t,n){let r=Ph(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?Qm(n):zh(n)),r.property===`style`){let t=typeof n==`object`?n:Sg(e,String(n));return e.stylePropertyNameCase===`css`&&(t=Tg(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?Ah[r.property]||r.property:r.attribute,n]}}function Sg(e,t){try{return(0,$h.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new Qh("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:`style`,source:`hast-util-to-jsx-runtime`});throw r.file=e.filePath||void 0,r.url=ag+`#cannot-parse-style-attribute`,r}}function Cg(e,t,n){let r;if(!n)r={type:`Literal`,value:t};else if(t.includes(`.`)){let e=t.split(`.`),n=-1,i;for(;++n<e.length;){let t=nh(e[n])?{type:`Identifier`,name:e[n]}:{type:`Literal`,value:e[n]};i=i?{type:`MemberExpression`,object:i,property:t,computed:!!(n&&t.type===`Literal`),optional:!1}:t}r=i}else r=nh(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return eg.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);wg(e)}function wg(e,t){let n=new Qh("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:`mdx-estree`,source:`hast-util-to-jsx-runtime`});throw n.file=e.filePath||void 0,n.url=ag+`#cannot-handle-mdx-estrees-without-createevaluater`,n}function Tg(e){let t={},n;for(n in e)eg.call(e,n)&&(t[Eg(n)]=e[n]);return t}function Eg(e){let t=e.replace(ng,Dg);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function Dg(e){return`-`+e.toLowerCase()}var Og={action:[`form`],cite:[`blockquote`,`del`,`ins`,`q`],data:[`object`],formAction:[`button`,`input`],href:[`a`,`area`,`base`,`link`],icon:[`menuitem`],itemId:null,manifest:[`html`],ping:[`a`,`area`],poster:[`video`],src:[`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]},kg=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Ag=o(((e,t)=>{t.exports=kg()})),jg={};function Mg(e,t){let n=t||jg;return Ng(e,typeof n.includeImageAlt!=`boolean`||n.includeImageAlt,typeof n.includeHtml!=`boolean`||n.includeHtml)}function Ng(e,t,n){if(Fg(e)){if(`value`in e)return e.type===`html`&&!n?``:e.value;if(t&&`alt`in e&&e.alt)return e.alt;if(`children`in e)return Pg(e.children,t,n)}return Array.isArray(e)?Pg(e,t,n):``}function Pg(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=Ng(e[i],t,n);return r.join(``)}function Fg(e){return!!(e&&typeof e==`object`)}var Ig=document.createElement(`i`);function Lg(e){let t=`&`+e+`;`;Ig.innerHTML=t;let n=Ig.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`?!1:n!==t&&n}function Rg(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function zg(e,t){return e.length>0?(Rg(e,e.length,0,t),e):t}var Bg={}.hasOwnProperty;function Vg(e){let t={},n=-1;for(;++n<e.length;)Hg(t,e[n]);return t}function Hg(e,t){let n;for(n in t){let r=(Bg.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){Bg.call(r,a)||(r[a]=[]);let e=i[a];Ug(r[a],Array.isArray(e)?e:e?[e]:[])}}}function Ug(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);Rg(e,0,0,r)}function Wg(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function Gg(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var Kg=n_(/[A-Za-z]/),qg=n_(/[\dA-Za-z]/),Jg=n_(/[#-'*+\--9=?A-Z^-~]/);function Yg(e){return e!==null&&(e<32||e===127)}var Xg=n_(/\d/),Zg=n_(/[\dA-Fa-f]/),Qg=n_(/[!-/:-@[-`{-~]/);function Z(e){return e!==null&&e<-2}function $g(e){return e!==null&&(e<0||e===32)}function Q(e){return e===-2||e===-1||e===32}var e_=n_(/\p{P}|\p{S}/u),t_=n_(/\s/);function n_(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function r_(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&qg(e.charCodeAt(n+1))&&qg(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function i_(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return Q(r)?(e.enter(n),s(r)):t(r)}function s(r){return Q(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}function a_(e,t,n,r,i,a){let o=0;return s;function s(t){return a>0&&Q(t)?(e.enter(r),c(t)):l(t)}function c(t){return Q(t)&&o<a?(e.consume(t),o++,c):(e.exit(r),l(t))}function l(e){return o>=i?t(e):n(e)}}var o_={tokenize:s_};function s_(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),i_(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return Z(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var c_=class{constructor(){this.index=new Map,this.map=[]}add(e,t,n){l_(this,e,t,n,!1)}addBefore(e,t,n){l_(this,e,t,n,!0)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0,this.index.clear()}};function l_(e,t,n,r,i){if(n===0&&r.length===0)return;let a=e.index.get(t);if(a){a[1]+=n,i?(r.push(...a[2]),a[2]=r):a[2].push(...r);return}let o=[t,n,r];e.map.push(o),e.index.set(t,o)}var u_={tokenize:f_},d_={tokenize:p_};function f_(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;let c=new c_;return c.add(a+1,0,t.events.slice(n)),c.add(n,s-n,[]),c.consume(t.events),l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!(!i.currentConstruct||i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(d_,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(d_,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i||=t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return Z(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;let l=new c_;l.add(a+1,0,t.events.slice(n)),l.add(n,e-n,[]),l.consume(t.events)}}function _(r){let i=n.length;for(;i-->r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function p_(e,t,n){return i_(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function m_(e){if(e===null||$g(e)||t_(e))return 1;if(e_(e))return 2}function h_(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var g_={name:`attention`,resolveAll:__,tokenize:v_};function __(e,t){let n=-1,r;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){let i=n;for(;i--;)if(e[i][0]===`exit`&&e[i][1].type===`attentionSequence`&&e[i][1]._open&&t.sliceSerialize(e[i][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[i][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[i][1].end.offset-e[i][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;let a=e[i][1].end.offset-e[i][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1,o={...e[i][1].end},s={...e[n][1].start};y_(o,-a),y_(s,a);let c={type:a>1?`strongSequence`:`emphasisSequence`,start:o,end:{...e[i][1].end}},l={type:a>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:s},u={type:a>1?`strongText`:`emphasisText`,start:{...e[i][1].end},end:{...e[n][1].start}},d={type:a>1?`strong`:`emphasis`,start:{...c.start},end:{...l.end}};e[i][1].end={...c.start},e[n][1].start={...l.end},r=[],e[i][1].end.offset-e[i][1].start.offset&&(r=zg(r,[[`enter`,e[i][1],t],[`exit`,e[i][1],t]])),r=zg(r,[[`enter`,d,t],[`enter`,c,t],[`exit`,c,t],[`enter`,u,t]]),r=zg(r,h_(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),r=zg(r,[[`exit`,u,t],[`enter`,l,t],[`exit`,l,t],[`exit`,d,t]]);let f=0;e[n][1].end.offset-e[n][1].start.offset&&(f=2,r=zg(r,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])),Rg(e,i-1,n-i+3,r),n=i+r.length-f-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function v_(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=m_(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=m_(o),u=!l||l===2&&i||n.includes(o)&&o!==42&&o!==95,d=!i||i===2&&l||n.includes(r)&&r!==42&&r!==95;return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function y_(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var b_={name:`autolink`,tokenize:x_};function x_(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return Kg(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||qg(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||qg(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||Yg(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Jg(t)?(e.consume(t),l):n(t)}function u(e){return qg(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||qg(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var S_={partial:!0,tokenize:C_};function C_(e,t,n){return r;function r(t){return Q(t)?i_(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||Z(e)?t(e):n(e)}}var w_={continuation:{tokenize:E_},exit:D_,name:`blockQuote`,tokenize:T_};function T_(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||=(e.enter(`blockQuote`,{_container:!0}),!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return Q(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function E_(e,t,n){let r=this;return i;function i(t){return Q(t)?i_(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(w_,t,n)(r)}}function D_(e){e.exit(`blockQuote`)}var O_={name:`characterEscape`,tokenize:k_};function k_(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return Qg(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var A_={name:`characterReference`,tokenize:j_};function j_(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=qg,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=Zg,u):(e.enter(`characterReferenceValue`),a=7,o=Xg,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===qg&&!Lg(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var M_={partial:!0,tokenize:N_};function N_(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var P_={concrete:!0,name:`codeFenced`,tokenize:F_};function F_(e,t,n){let r=this,i={partial:!0,tokenize:ee},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),Q(t)?i_(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||Z(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(M_,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||Z(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):Q(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),i_(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||Z(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||Z(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&Q(t)?i_(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||Z(t)?e.check(M_,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||Z(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function ee(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),Q(t)?i_(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),Q(t)?i_(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||Z(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}var I_={name:`codeIndented`,tokenize:R_},L_={partial:!0,tokenize:z_};function R_(e,t,n){return r;function r(t){return e.enter(`codeIndented`),a_(e,i,n,`linePrefix`,4,4)(t)}function i(t){return t===null?o(t):Z(t)?e.attempt(L_,i,o)(t):(e.enter(`codeFlowValue`),a(t))}function a(t){return t===null||Z(t)?(e.exit(`codeFlowValue`),i(t)):(e.consume(t),a)}function o(n){return e.exit(`codeIndented`),t(n)}}function z_(e,t,n){let r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):Z(o)?(e.enter(`lineEnding`),e.consume(o),e.exit(`lineEnding`),i):a_(e,t,a,`linePrefix`,4,4)(o)}function a(e){return Z(e)?i(e):n(e)}}var B_={name:`codeText`,previous:H_,resolve:V_,tokenize:U_};function V_(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function H_(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function U_(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):Z(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||Z(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var W_=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&G_(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),G_(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),G_(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0)){if(e<this.left.length){let t=this.left.splice(e,1/0);G_(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);G_(this.left,t.reverse())}}}};function G_(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function K_(e){let t={},n=-1,r,i,a,o,s,c,l,u=new W_(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,q_(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(o[1].type!==`linePrefix`&&o[1].type!==`listItemIndent`)break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return Rg(e,0,1/0,u.slice(0)),!l}function q_(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var J_={resolve:X_,tokenize:Z_},Y_={partial:!0,tokenize:Q_};function X_(e){return K_(e),e}function Z_(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):Z(t)?e.check(Y_,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function Q_(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i_(e,a,`linePrefix`)}function a(i){if(i===null||Z(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function $_(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||Yg(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||Z(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||$g(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||Yg(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function ev(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):Z(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||Z(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!Q(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function tv(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):Z(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i_(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||Z(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function nv(e,t){let n;return r;function r(i){return Z(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):Q(i)?i_(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var rv={name:`definition`,tokenize:av},iv={partial:!0,tokenize:ov};function av(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return ev.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=Gg(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return $g(t)?nv(e,l)(t):l(t)}function l(t){return $_(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(iv,d,d)(t)}function d(t){return Q(t)?i_(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||Z(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function ov(e,t,n){return r;function r(t){return $g(t)?nv(e,i)(t):n(t)}function i(t){return tv(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return Q(t)?i_(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||Z(e)?t(e):n(e)}}var sv={name:`hardBreakEscape`,tokenize:cv};function cv(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return Z(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var lv={name:`headingAtx`,resolve:uv,tokenize:dv};function uv(e,t){let n=e.length-2,r=3;if(e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r){let i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`};Rg(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])}return e}function dv(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||$g(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||Z(n)?(e.exit(`atxHeading`),t(n)):Q(n)?i_(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||$g(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var fv=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),pv=[`pre`,`script`,`style`,`textarea`],mv={concrete:!0,name:`htmlFlow`,resolveTo:gv,tokenize:_v},hv={partial:!0,tokenize:vv};function gv(e){let t=e.length;for(;t--&&(e[t][0]!==`enter`||e[t][1].type!==`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function _v(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:T):Kg(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):Kg(a)?(e.consume(a),i=4,r.interrupt?t:T):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:T):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:w:m):n(i)}function h(t){return Kg(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||$g(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&pv.includes(l)?(i=1,r.interrupt?t(s):w(s)):fv.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):w(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||qg(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:w):n(i)}function v(t){return Q(t)?(e.consume(t),v):re(t)}function y(t){return t===47?(e.consume(t),re):t===58||t===95||Kg(t)?(e.consume(t),b):Q(t)?(e.consume(t),y):re(t)}function b(t){return t===45||t===46||t===58||t===95||qg(t)?(e.consume(t),b):ee(t)}function ee(t){return t===61?(e.consume(t),te):Q(t)?(e.consume(t),ee):y(t)}function te(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,ne):Q(t)?(e.consume(t),te):x(t)}function ne(t){return t===c?(e.consume(t),c=null,S):t===null||Z(t)?n(t):(e.consume(t),ne)}function x(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||$g(t)?ee(t):(e.consume(t),x)}function S(e){return e===47||e===62||Q(e)?y(e):n(e)}function re(t){return t===62?(e.consume(t),C):n(t)}function C(t){return t===null||Z(t)?w(t):Q(t)?(e.consume(t),C):n(t)}function w(t){return t===45&&i===2?(e.consume(t),se):t===60&&i===1?(e.consume(t),ce):t===62&&i===4?(e.consume(t),de):t===63&&i===3?(e.consume(t),T):t===93&&i===5?(e.consume(t),ue):Z(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(hv,fe,ie)(t)):t===null||Z(t)?(e.exit(`htmlFlowData`),ie(t)):(e.consume(t),w)}function ie(t){return e.check(M_,ae,fe)(t)}function ae(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),oe}function oe(t){return t===null||Z(t)?ie(t):(e.enter(`htmlFlowData`),w(t))}function se(t){return t===45?(e.consume(t),T):w(t)}function ce(t){return t===47?(e.consume(t),o=``,le):w(t)}function le(t){if(t===62){let n=o.toLowerCase();return pv.includes(n)?(e.consume(t),de):w(t)}return Kg(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),le):w(t)}function ue(t){return t===93?(e.consume(t),T):w(t)}function T(t){return t===62?(e.consume(t),de):t===45&&i===2?(e.consume(t),T):w(t)}function de(t){return t===null||Z(t)?(e.exit(`htmlFlowData`),fe(t)):(e.consume(t),de)}function fe(n){return e.exit(`htmlFlow`),t(n)}}function vv(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(S_,t,n)}}var yv={name:`htmlText`,tokenize:bv};function bv(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),ee):t===63?(e.consume(t),y):Kg(t)?(e.consume(t),x):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):Kg(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):Z(t)?(o=d,ce(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?se(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):Z(t)?(o=h,ce(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?se(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?se(t):Z(t)?(o=v,ce(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):Z(t)?(o=y,ce(t)):(e.consume(t),y)}function b(e){return e===62?se(e):y(e)}function ee(t){return Kg(t)?(e.consume(t),te):n(t)}function te(t){return t===45||qg(t)?(e.consume(t),te):ne(t)}function ne(t){return Z(t)?(o=ne,ce(t)):Q(t)?(e.consume(t),ne):se(t)}function x(t){return t===45||qg(t)?(e.consume(t),x):t===47||t===62||$g(t)?S(t):n(t)}function S(t){return t===47?(e.consume(t),se):t===58||t===95||Kg(t)?(e.consume(t),re):Z(t)?(o=S,ce(t)):Q(t)?(e.consume(t),S):se(t)}function re(t){return t===45||t===46||t===58||t===95||qg(t)?(e.consume(t),re):C(t)}function C(t){return t===61?(e.consume(t),w):Z(t)?(o=C,ce(t)):Q(t)?(e.consume(t),C):S(t)}function w(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,ie):Z(t)?(o=w,ce(t)):Q(t)?(e.consume(t),w):(e.consume(t),ae)}function ie(t){return t===i?(e.consume(t),i=void 0,oe):t===null?n(t):Z(t)?(o=ie,ce(t)):(e.consume(t),ie)}function ae(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||$g(t)?S(t):(e.consume(t),ae)}function oe(e){return e===47||e===62||$g(e)?S(e):n(e)}function se(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function ce(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),le}function le(t){return Q(t)?i_(e,ue,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):ue(t)}function ue(t){return e.enter(`htmlTextData`),o(t)}}var xv={name:`labelEnd`,resolveAll:Tv,resolveTo:Ev,tokenize:Dv},Sv={tokenize:Ov},Cv={tokenize:kv},wv={tokenize:Av};function Tv(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&Rg(e,0,e.length,n),e}function Ev(e,t){let n=e.length,r=0,i,a,o;for(;n--;){let t=e[n][1];if(i){if(t.type===`link`||t.type===`labelLink`&&t._inactive)break;e[n][0]===`enter`&&t.type===`labelLink`&&(t._inactive=!0)}else if(a){if(e[n][0]===`enter`&&(t.type===`labelImage`||t.type===`labelLink`)&&!t._balanced&&(i=n,t.type!==`labelLink`)){r=2;break}}else t.type===`labelEnd`&&(a=n)}let s={type:e[i][1].type===`labelLink`?`link`:`image`,start:{...e[i][1].start},end:{...e[e.length-1][1].end}},c={type:`label`,start:{...e[i][1].start},end:{...e[a][1].end}},l={type:`labelText`,start:{...e[i+r+2][1].end},end:{...e[a-2][1].start}};return o=[[`enter`,s,t],[`enter`,c,t]],o=zg(o,e.slice(i+1,i+r+3)),o=zg(o,[[`enter`,l,t]]),o=zg(o,h_(t.parser.constructs.insideSpan.null,e.slice(i+r+4,a-3),t)),o=zg(o,[[`exit`,l,t],e[a-2],e[a-1],[`exit`,c,t]]),o=zg(o,e.slice(a+1)),o=zg(o,[[`exit`,s,t]]),Rg(e,i,e.length,o),e}function Dv(e,t,n){let r=this,i=r._labelStarts,a,o;if(i){for(;i.length>0&&i[i.length-1]._balanced;)i.pop();a=i[i.length-1]}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(Gg(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(Sv,u,o?u:d)(t):t===91?e.attempt(Cv,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(wv,u,d)(t)}function u(e){return i.pop(),t(e)}function d(e){return a._balanced=!0,n(e)}}function Ov(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return $g(t)?nv(e,a)(t):a(t)}function a(t){return t===41?u(t):$_(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return $g(t)?nv(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?tv(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return $g(t)?nv(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function kv(e,t,n){let r=this;return i;function i(t){return ev.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(Gg(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function Av(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var jv={name:`labelStartImage`,resolveAll:xv.resolveAll,tokenize:Mv};function Mv(e,t,n){let r=this,i;return a;function a(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),o}function o(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),i=e.exit(`labelImage`),s):n(t)}function s(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):(r._labelStarts=r._labelStarts||[],r._labelStarts.push(i),t(e))}}var Nv={name:`labelStartLink`,resolveAll:xv.resolveAll,tokenize:Pv};function Pv(e,t,n){let r=this,i;return a;function a(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),i=e.exit(`labelLink`),o}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):(r._labelStarts=r._labelStarts||[],r._labelStarts.push(i),t(e))}}var Fv={name:`lineEnding`,tokenize:Iv};function Iv(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),i_(e,t,`linePrefix`)}}var Lv={name:`thematicBreak`,tokenize:Rv};function Rv(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||Z(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),Q(t)?i_(e,s,`whitespace`)(t):s(t))}}var zv={continuation:{tokenize:Uv},exit:Gv,name:`list`,tokenize:Hv},Bv={partial:!0,tokenize:Kv},Vv={partial:!0,tokenize:Wv};function Hv(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:Xg(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(Lv,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return Xg(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(S_,r.interrupt?n:u,e.attempt(Bv,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return Q(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function Uv(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(S_,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,i_(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!Q(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Vv,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,i_(e,e.attempt(zv,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function Wv(e,t,n){let r=this;return i_(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function Gv(e){e.exit(this.containerState.type)}function Kv(e,t,n){let r=this;return i_(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!Q(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var qv={name:`setextUnderline`,resolveTo:Jv,tokenize:Yv};function Jv(e,t){let n=new c_,r=e.length,i,a,o;for(;r--;)if(e[r][0]===`enter`){if(e[r][1].type===`content`){i=r;break}e[r][1].type===`paragraph`&&(a=r)}else e[r][1].type===`content`&&n.add(r,1,[]),!o&&e[r][1].type===`definition`&&(o=r);let s={type:`setextHeading`,start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[a][1].type=`setextHeadingText`,o?(n.add(a,0,[[`enter`,s,t]]),n.add(o+1,0,[[`exit`,e[i][1],t]]),e[i][1].end={...e[o][1].end}):e[i][1]=s,n.add(e.length,0,[[`exit`,s,t]]),n.consume(e),e}function Yv(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),Q(t)?i_(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||Z(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var Xv={tokenize:Zv};function Zv(e){let t=this,n=e.attempt(S_,r,e.attempt(this.parser.constructs.flowInitial,i,i_(e,e.attempt(this.parser.constructs.flow,i,e.attempt(J_,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var Qv={resolveAll:ny()},$v=ty(`string`),ey=ty(`text`);function ty(e){return{resolveAll:ny(e===`text`?ry:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function ny(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function ry(e,t){let n=new c_,r=0;for(;++r<=e.length;)if((r===e.length||e[r][1].type===`lineEnding`)&&e[r-1][1].type===`data`){let i=e[r-1][1],a=t.sliceStream(i),o=a.length,s=-1,c=0,l;for(;o--;){let e=a[o];if(typeof e==`string`){for(s=e.length;e.charCodeAt(s-1)===32;)c++,s--;if(s)break;s=-1}else if(e===-2)l=!0,c++;else if(e!==-1){o++;break}}if(t._contentTypeTextTrailing&&r===e.length&&(c=0),c){let a={type:r===e.length||l||c<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:o?s:i.start._bufferIndex+s,_index:i.start._index+o,line:i.end.line,column:i.end.column-c,offset:i.end.offset-c},end:{...i.end}};i.end={...a.start},i.start.offset===i.end.offset?Object.assign(i,a):n.add(r,0,[[`enter`,a,t],[`exit`,a,t]])}r++}return n.consume(e),e}var iy=s({attentionMarkers:()=>fy,contentInitial:()=>oy,disable:()=>py,document:()=>ay,flow:()=>cy,flowInitial:()=>sy,insideSpan:()=>dy,string:()=>ly,text:()=>uy}),ay={42:zv,43:zv,45:zv,48:zv,49:zv,50:zv,51:zv,52:zv,53:zv,54:zv,55:zv,56:zv,57:zv,62:w_},oy={91:rv},sy={[-2]:I_,[-1]:I_,32:I_},cy={35:lv,42:Lv,45:[qv,Lv],60:mv,61:qv,95:Lv,96:P_,126:P_},ly={38:A_,92:O_},uy={[-5]:Fv,[-4]:Fv,[-3]:Fv,33:jv,38:A_,42:g_,60:[b_,yv],91:Nv,92:[sv,O_],93:xv,95:g_,96:B_},dy={null:[g_,Qv]},fy={null:[42,95]},py={null:[]};function my(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:ne(ee),check:ne(te),consume:v,enter:y,exit:b,interrupt:ne(te,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=zg(o,e),g(),o[o.length-1]===null?(x(t,0),l.events=h_(a,l.events,l),l.events):[]}function f(e,t){return gy(p(e),t)}function p(e){return hy(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,re()}function g(){for(;r._index<o.length;){let e=o[r._index];if(typeof e==`string`){let t=r._index;for(r._bufferIndex<0&&(r._bufferIndex=0);r._index===t&&r._bufferIndex<e.length;)_(e.charCodeAt(r._bufferIndex))}else _(e)}}function _(e){u=u(e)}function v(e){Z(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,re()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function ee(e,t){x(e,t.from)}function te(e,t){t.restore()}function ne(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=S(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function x(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&Rg(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function S(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,re()}}function re(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function hy(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function gy(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\r`;break;case-4:o=`
79
79
  `;break;case-3:o=`\r
80
80
  `;break;case-2:o=t?` `:` `;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function _y(e){let t={constructs:Vg([iy,...(e||{}).extensions||[]]),content:n(o_),defined:[],document:n(u_),flow:n(Xv),lazy:{},string:n($v),text:n(ey)};return t;function n(e){return n;function n(n){return my(t,e,n)}}}function vy(e){for(;!K_(e););return e}var yy=/[\0\t\n\r]/g;function by(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i));let s=[],c=0;for(t=``,n&&=(i.charCodeAt(0)===65279&&c++,void 0);c<i.length;){yy.lastIndex=c;let n=yy.exec(i),a=n&&n.index!==void 0?n.index:i.length,o=i.charCodeAt(a);if(!n){t=i.slice(c);break}if(o===10&&c===a&&r)s.push(-3),r=void 0;else switch(r&&=(s.push(-5),void 0),c<a&&(s.push(i.slice(c,a)),e+=a-c),o){case 0:s.push(65533),e++;break;case 9:{let t=Math.ceil(e/4)*4;for(s.push(-2);e++<t;)s.push(-1);break}case 10:s.push(-4),e=1;break;default:r=!0,e=1}c=a+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}var xy=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Sy(e){return e.replace(xy,Cy)}function Cy(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let e=n.charCodeAt(1),t=e===120||e===88;return Wg(n.slice(t?2:1),t?16:10)}return Lg(n)||e}var wy={}.hasOwnProperty;function Ty(e,t,n){return t&&typeof t==`object`&&(n=t,t=void 0),Ey(n)(vy(_y(n).document().write(by()(e,t,!0))))}function Ey(e){let t={afterExit:[],beforeEnter:[],transforms:[],canContainEols:[`emphasis`,`fragment`,`heading`,`paragraph`,`strong`],enter:{autolink:o(Oe),autolinkProtocol:re,autolinkEmail:re,atxHeading:o(we),blockQuote:o(xe),characterEscape:re,characterReference:re,codeFenced:o(Se),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:o(Se,s),codeText:o(E,s),codeTextData:re,data:re,codeFlowValue:re,definition:o(Ce),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:o(D),hardBreakEscape:o(Te),hardBreakTrailing:o(Te),htmlFlow:o(Ee,s),htmlFlowData:re,htmlText:o(Ee,s),htmlTextData:re,image:o(De),label:s,link:o(Oe),listItem:o(Ae),listItemValue:p,listOrdered:o(ke,f),listUnordered:o(ke),paragraph:o(je),reference:me,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:o(we),strong:o(Me),thematicBreak:o(Pe)},exit:{atxHeading:l(),atxHeadingSequence:te,autolink:l(),autolinkEmail:be,autolinkProtocol:ye,blockQuote:l(),characterEscapeValue:C,characterReferenceMarkerHexadecimal:ge,characterReferenceMarkerNumeric:ge,characterReferenceValue:_e,characterReference:ve,codeFenced:l(_),codeFencedFence:g,codeFencedFenceInfo:m,codeFencedFenceMeta:h,codeFlowValue:C,codeIndented:l(v),codeText:l(se),codeTextData:C,data:C,definition:l(),definitionDestinationString:ee,definitionLabelString:y,definitionTitleString:b,emphasis:l(),hardBreakEscape:l(ie),hardBreakTrailing:l(ie),htmlFlow:l(ae),htmlFlowData:C,htmlText:l(oe),htmlTextData:C,image:l(le),label:T,labelText:ue,lineEnding:w,link:l(ce),listItem:l(),listOrdered:l(),listUnordered:l(),paragraph:l(),referenceString:he,resourceDestinationString:de,resourceTitleString:fe,resource:pe,setextHeading:l(S),setextHeadingLineSequence:x,setextHeadingText:ne,strong:l(),thematicBreak:l()}};Oy(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(e){let r={type:`root`,children:[],position:void 0},o={stack:[r],tokenStack:[],config:t,enter:c,exit:u,buffer:s,resume:d,data:n},l=[],f=[],p=-1;for(;++p<e.length;)f.push(e[p]),(e[p][1].type===`listOrdered`||e[p][1].type===`listUnordered`)&&(e[p][0]===`enter`?l.push(f.length-1):a(f,l.pop()));for(e=f,p=-1;++p<e.length;){let n=t[e[p][0]];e[p][0]===`enter`&&t.beforeEnter.length>0&&i(t.beforeEnter,{...o,sliceSerialize:e[p][2].sliceSerialize},e[p][1]),wy.call(n,e[p][1].type)&&n[e[p][1].type].call({...o,sliceSerialize:e[p][2].sliceSerialize},e[p][1]),e[p][0]===`exit`&&t.afterExit.length>0&&i(t.afterExit,{...o,sliceSerialize:e[p][2].sliceSerialize},e[p][1])}if(o.tokenStack.length>0){let e=o.tokenStack[o.tokenStack.length-1];(e[1]||Ay).call(o,void 0,e[0])}for(r.position={start:Dy(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Dy(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},p=-1;++p<t.transforms.length;)r=t.transforms[p](r)||r;return r}function i(e,t,n){let r=-1;for(;++r<e.length;)e[r].call(t,n)}function a(e,t){let n=e.length-1,r=t-1,i=-1,a=!1,o,s,c,l,u=[];for(;++r<=n;){let t=e[r];switch(t[1].type){case`listUnordered`:case`listOrdered`:case`blockQuote`:t[0]===`enter`?i++:i--,l=void 0;break;case`lineEndingBlank`:t[0]===`enter`&&(o&&!l&&!i&&!c&&(c=r),l=void 0);break;case`linePrefix`:case`listItemValue`:case`listItemMarker`:case`listItemPrefix`:case`listItemPrefixWhitespace`:break;default:l=void 0}if(!i&&t[0]===`enter`&&t[1].type===`listItemPrefix`||i===-1&&t[0]===`exit`&&(t[1].type===`listUnordered`||t[1].type===`listOrdered`)){if(o){let n=r;for(s=void 0;n--;){let t=e[n];if(t[1].type===`lineEnding`||t[1].type===`lineEndingBlank`){if(t[0]===`exit`)continue;s&&(e[s][1].type=`lineEndingBlank`,a=!0),t[1].type=`lineEnding`,s=n}else if(t[1].type!==`linePrefix`&&t[1].type!==`blockQuotePrefix`&&t[1].type!==`blockQuotePrefixWhitespace`&&t[1].type!==`blockQuoteMarker`&&t[1].type!==`listItemIndent`)break}c&&(!s||c<s)&&(o._spread=!0),o.end=Object.assign({},s?e[s][1].start:t[1].end),u.push({at:s||r,event:[`exit`,o,t[2]]})}if(t[1].type===`listItemPrefix`){let e={type:`listItem`,_spread:!1,start:Object.assign({},t[1].start),end:void 0};o=e,u.push({at:r,event:[`enter`,e,t[2]]}),c=void 0,l=!0}}}let d=e.splice(t),f=0;for(r=-1;++r<d.length;){for(;f<u.length&&u[f].at===t+r;)e.push(u[f++].event);e.push(d[r])}e[t][1]._spread=a}function o(e,t){return n;function n(n){c.call(this,e(n),n),t&&t.call(this,n)}}function s(){this.stack.push({type:`fragment`,children:[]})}function c(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:Dy(t.start),end:void 0}}function l(e){return t;function t(t){e&&e.call(this,t),u.call(this,t)}}function u(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(!r)throw Error("Cannot close `"+e.type+"` ("+Jh({start:e.start,end:e.end})+`): it’s not open`);r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||Ay).call(this,e,r[0])),n.position.end=Dy(e.end)}function d(){return Mg(this.stack.pop())}function f(){this.data.expectingFirstListItemValue=!0}function p(e){if(this.data.expectingFirstListItemValue){let t=this.stack[this.stack.length-2];t.start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0}}function m(){let e=this.resume(),t=this.stack[this.stack.length-1];t.lang=e}function h(){let e=this.resume(),t=this.stack[this.stack.length-1];t.meta=e}function g(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function _(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,``),this.data.flowCodeInside=void 0}function v(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/(\r?\n|\r)$/g,``)}function y(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Gg(this.sliceSerialize(e)).toLowerCase()}function b(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function ee(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function te(e){let t=this.stack[this.stack.length-1];t.depth||=this.sliceSerialize(e).length}function ne(){this.data.setextHeadingSlurpLineEnding=!0}function x(e){let t=this.stack[this.stack.length-1];t.depth=this.sliceSerialize(e).codePointAt(0)===61?1:2}function S(){this.data.setextHeadingSlurpLineEnding=void 0}function re(e){let t=this.stack[this.stack.length-1].children,n=t[t.length-1];(!n||n.type!==`text`)&&(n=Ne(),n.position={start:Dy(e.start),end:void 0},t.push(n)),this.stack.push(n)}function C(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=Dy(e.end)}function w(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){let t=n.children[n.children.length-1];t.position.end=Dy(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(re.call(this,e),C.call(this,e))}function ie(){this.data.atHardBreak=!0}function ae(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function oe(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function se(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function ce(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function le(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function ue(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=Sy(t),n.identifier=Gg(t).toLowerCase()}function T(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];this.data.inReference=!0,n.type===`link`?n.children=e.children:n.alt=t}function de(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function fe(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function pe(){this.data.inReference=void 0}function me(){this.data.referenceType=`collapsed`}function he(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Gg(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType=`full`}function ge(e){this.data.characterReferenceType=e.type}function _e(e){let t=this.sliceSerialize(e),n=this.data.characterReferenceType,r;n?(r=Wg(t,n===`characterReferenceMarkerNumeric`?10:16),this.data.characterReferenceType=void 0):r=Lg(t);let i=this.stack[this.stack.length-1];i.value+=r}function ve(e){let t=this.stack.pop();t.position.end=Dy(e.end)}function ye(e){C.call(this,e);let t=this.stack[this.stack.length-1];t.url=this.sliceSerialize(e)}function be(e){C.call(this,e);let t=this.stack[this.stack.length-1];t.url=`mailto:`+this.sliceSerialize(e)}function xe(){return{type:`blockquote`,children:[],position:void 0}}function Se(){return{type:`code`,lang:null,meta:null,value:``,position:void 0}}function E(){return{type:`inlineCode`,value:``,position:void 0}}function Ce(){return{type:`definition`,identifier:``,label:null,title:null,url:``,position:void 0}}function D(){return{type:`emphasis`,children:[],position:void 0}}function we(){return{type:`heading`,depth:0,children:[],position:void 0}}function Te(){return{type:`break`,position:void 0}}function Ee(){return{type:`html`,value:``,position:void 0}}function De(){return{type:`image`,title:null,url:``,alt:null,position:void 0}}function Oe(){return{type:`link`,title:null,url:``,children:[],position:void 0}}function ke(e){return{type:`list`,ordered:e.type===`listOrdered`,start:null,spread:e._spread,children:[],position:void 0}}function Ae(e){return{type:`listItem`,spread:e._spread,checked:null,children:[],position:void 0}}function je(){return{type:`paragraph`,children:[],position:void 0}}function Me(){return{type:`strong`,children:[],position:void 0}}function Ne(){return{type:`text`,value:``,position:void 0}}function Pe(){return{type:`thematicBreak`,position:void 0}}}function Dy(e){return{line:e.line,column:e.column,offset:e.offset}}function Oy(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?Oy(e,r):ky(e,r)}}function ky(e,t){let n;for(n in t)if(wy.call(t,n))switch(n){case`canContainEols`:{let r=t[n];r&&e[n].push(...r);break}case`transforms`:{let r=t[n];r&&e[n].push(...r);break}case`afterExit`:case`beforeEnter`:{let r=t[n];r&&e[n].push(r);break}case`enter`:case`exit`:{let r=t[n];r&&Object.assign(e[n],r);break}}}function Ay(e,t){throw Error(e?"Cannot close `"+e.type+"` ("+Jh({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Jh({start:t.start,end:t.end})+`) is open`:"Cannot close document, a token (`"+t.type+"`, "+Jh({start:t.start,end:t.end})+`) is still open`)}function jy(e){let t=this;t.parser=n;function n(n){return Ty(n,{...t.data(`settings`),...e,extensions:t.data(`micromarkExtensions`)||[],mdastExtensions:t.data(`fromMarkdownExtensions`)||[]})}}function My(e,t){let n={type:`element`,tagName:`blockquote`,properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function Ny(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
@@ -102,7 +102,7 @@ container holding the app. Specify either width or maxWidth, and either height o
102
102
  `))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
103
103
  `,...a.current()}),u=l.charCodeAt(0);return(u===9||u===32)&&(l=QS(u)+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}tC.peek=nC;function tC(e){return e.value||``}function nC(){return`<`}rC.peek=iC;function rC(e,t,n,r){let i=KS(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function iC(){return`!`}aC.peek=oC;function aC(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=u.filter(function(e){return e!==`phrasing`}),o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function oC(){return`!`}sC.peek=cC;function sC(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^\n\r ]/.test(r)&&(/^[\n\r ]/.test(r)&&/[\n\r ]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e);if(!e.atBreak)continue;let i;for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function cC(){return"`"}function lC(e,t){let n=Mg(e);return!(t.options.resourceLink||!e.url||e.title||!e.children||e.children.length!==1||e.children[0].type!==`text`||n!==e.url&&`mailto:`+n!==e.url||!/^[a-z][+\-.a-z]+:/i.test(e.url)||/[\0- <>\u007F]/.test(e.url))}uC.peek=dC;function uC(e,t,n,r){let i=KS(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r);if(lC(e,n)){let t=n.stack;n.stack=t.filter(function(e){return e!==`phrasing`});let r=n.enter(`autolink`),i=o.move(`<`);return i+=o.move(n.containerPhrasing(e,{before:i,after:`>`,...o.current()})),i+=o.move(`>`),r(),n.stack=t,i}let s=n.enter(`link`),c=n.enter(`label`),l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function dC(e,t,n){return lC(e,n)?`<`:`[`}fC.peek=pC;function fC(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=u.filter(function(e){return e!==`phrasing`}),o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function pC(){return`[`}function mC(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function hC(e){let t=mC(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function gC(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function _C(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function vC(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?gC(n):mC(n),s=e.ordered?o===`.`?`)`:`.`:hC(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),_C(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function yC(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function bC(e,t,n,r){let i=yC(n),a=n.bulletCurrent||mC(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function xC(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}function SC(e,t,n,r){if(!e.children.some(function(e){return FS(e)}))return n.containerFlow(e,r);let i=n.enter(`phrasing`),a=n.containerPhrasing(e,r);return i(),a}function CC(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}wC.attention=TC,wC.peek=EC;function wC(e,t,n,r){let i=n.enter(`phrasing`),a=n.containerPhrasing({type:`root`,children:[e]},r);return i(),a}function TC(e,t){return{construct:`strong`,markers:CC(t)===`*`?[`*`,`_`]:[`_`,`*`],sizes:[2]}}function EC(e,t,n){return n.options.strong||`*`}function DC(e,t,n,r){let i=t?t.children:[],a=i.indexOf(e);return n.safe(e.value,{...r,afterNode:i[a+1],beforeNode:i[a-1]})}function OC(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function kC(e,t,n){let r=(_C(n)+(n.options.ruleSpaces?` `:``)).repeat(OC(n));return n.options.ruleSpaces?r.slice(0,-1):r}var AC={blockquote:IS,break:BS,code:WS,definition:qS,emphasis:YS,hardBreak:BS,heading:eC,html:tC,image:rC,imageReference:aC,inlineCode:sC,link:uC,linkReference:fC,list:vC,listItem:bC,paragraph:xC,root:SC,strong:wC,text:DC,thematicBreak:kC};function jC(){return{enter:{table:MC,tableData:IC,tableHeader:IC,tableRow:PC},exit:{codeText:LC,table:NC,tableData:FC,tableHeader:FC,tableRow:FC}}}function MC(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function NC(e){this.exit(e),this.data.inTable=void 0}function PC(e){this.enter({type:`tableRow`,children:[]},e)}function FC(e){this.exit(e)}function IC(e){this.enter({type:`tableCell`,children:[]},e)}function LC(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,RC));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function RC(e,t){return t===`|`?t:e}function zC(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
104
104
  `,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
105
- `))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return MS(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=AC.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function BC(){return{exit:{taskListCheckValueChecked:HC,taskListCheckValueUnchecked:HC,paragraph:UC}}}function VC(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:WC}}}function HC(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function UC(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function WC(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=AC.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function GC(){return[Yx(),yS(),wS(),jC(),BC()]}function KC(e){return{extensions:[Xx(),bS(e),TS(),zC(e),VC()]}}var qC={tokenize:sw,partial:!0},JC={tokenize:cw,partial:!0},YC={tokenize:lw,partial:!0},XC={tokenize:uw,partial:!0},ZC={tokenize:dw,partial:!0},QC={name:`wwwAutolink`,tokenize:aw,previous:fw},$C={name:`protocolAutolink`,tokenize:ow,previous:pw},ew={name:`emailAutolink`,tokenize:iw,previous:mw},tw={};function nw(){return{text:tw}}for(var rw=48;rw<123;)tw[rw]=ew,rw++,rw===58?rw=65:rw===91&&(rw=97);tw[43]=ew,tw[45]=ew,tw[46]=ew,tw[95]=ew,tw[72]=[ew,$C],tw[104]=[ew,$C],tw[87]=[ew,QC],tw[119]=[ew,QC];function iw(e,t,n){let r=this,i,a;return o;function o(t){return!hw(t)||!mw.call(r,r.previous)||gw(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return hw(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(ZC,u,l)(t):t===45||t===95||qg(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&Kg(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function aw(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!fw.call(r,r.previous)||gw(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(qC,e.attempt(JC,e.attempt(YC,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function ow(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&pw.call(r,r.previous)&&!gw(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(Kg(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Yg(t)||$g(t)||t_(t)||e_(t)?n(t):e.attempt(JC,e.attempt(YC,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function sw(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function cw(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(XC,c,s)(t):t===null||$g(t)||t_(t)||t!==45&&e_(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function lw(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(XC,t,a)(o):o===null||$g(o)||t_(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function uw(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||$g(o)||t_(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||$g(e)||t_(e)?t(e):r(e)}function a(e){return Kg(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):Kg(t)?(e.consume(t),o):n(t)}}function dw(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return qg(e)?n(e):t(e)}}function fw(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||$g(e)}function pw(e){return!Kg(e)}function mw(e){return!(e===47||hw(e))}function hw(e){return e===43||e===45||e===46||e===95||qg(e)}function gw(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var _w={tokenize:Tw,partial:!0};function vw(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Sw,continuation:{tokenize:Cw},exit:ww}},text:{91:{name:`gfmFootnoteCall`,tokenize:xw},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:yw,resolveTo:bw}}}}function yw(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=Gg(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function bw(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function xw(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||$g(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(Gg(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return $g(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Sw(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||$g(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=Gg(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return $g(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),i_(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Cw(e,t,n){return e.check(S_,t,e.attempt(_w,t,n))}function ww(e){e.exit(`gfmFootnoteDefinition`)}function Tw(e,t,n){let r=this;return i_(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Ew(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&Rg(o,o.length,0,h_(s,e.slice(r+1,n),t)),Rg(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),Rg(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=m_(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=m_(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Dw=class{constructor(){this.map=[],this.index=new Map}add(e,t,n){Ow(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0,this.index.clear()}};function Ow(e,t,n,r){if(n===0&&r.length===0)return;let i=e.index.get(t);if(i){i[1]+=n,i[2].push(...r);return}let a=[t,n,r];e.map.push(a),e.index.set(t,a)}function kw(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Aw(){return{flow:{null:{name:`table`,tokenize:jw,resolveAll:Mw}}}}function jw(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let{type:e}=r.events[t][1];if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?te:c;return a===te&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):Z(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Q(t)?i_(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||$g(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Q(t)?i_(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):ee(t)}function h(t){return Q(t)?i_(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||Z(t)?b(t):ee(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):ee(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Q(t)?i_(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||Z(n)?!o||i!==a?ee(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):ee(n)}function ee(e){return n(e)}function te(t){return e.enter(`tableRow`),ne(t)}function ne(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),ne):n===null||Z(n)?(e.exit(`tableRow`),t(n)):Q(n)?i_(e,ne,`whitespace`)(n):(e.enter(`data`),x(n))}function x(t){return t===null||t===124||$g(t)?(e.exit(`data`),ne(t)):(e.consume(t),t===92?S:x)}function S(t){return t===92||t===124?(e.consume(t),x):x(t)}}function Mw(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Dw;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(Pw(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Nw(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Nw(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Nw(f,t,o,i,n,d)):(o[0]=o[1],d=Nw(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&Pw(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=kw(t.events,n))}return e}function Nw(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Fw(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Fw(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Fw(t.events,n[2]),a=Fw(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Fw(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Pw(e,t,n,r,i){let a=[],o=Fw(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Fw(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var Iw={name:`tasklistCheck`,tokenize:Rw};function Lw(){return{text:{91:Iw}}}function Rw(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return $g(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return Z(r)?t(r):Q(r)?e.check({tokenize:zw},t,n)(r):n(r)}}function zw(e,t,n){return i_(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Bw(e){return Vg([nw(),vw(),Ew(e),Aw(),Lw()])}var Vw={};function Hw(e){let t=this,n=e||Vw,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Bw(n)),a.push(GC()),o.push(KC(n))}function Uw({content:e,links:t,onOpen:n}){return(0,$.jsx)(Ix,{remarkPlugins:[Hw],skipHtml:!0,components:{a:({href:e,children:r})=>e&&Object.hasOwn(t,e)?(0,$.jsx)(`button`,{className:`text-link`,onClick:()=>n(t[e]),children:r}):(0,$.jsxs)(`span`,{children:[r,e?(0,$.jsxs)(`span`,{className:`muted`,children:[` (`,e,`)`]}):null]}),img:({alt:e})=>(0,$.jsxs)(`span`,{className:`muted`,children:[`[Bild: `,e||`ohne Beschreibung`,`]`]}),input:({checked:e})=>(0,$.jsx)(`span`,{children:e?`☑`:`☐`})},children:e})}var Ww={schemaVersion:1,fallbackLocale:`en`,optionOrder:[`approve`,`revise`,`decline`,`cancel`],lengthBudgets:{label:40,description:160,title:100},locales:JSON.parse('{"en":{"runResolution":{"title":"Choose the delivery run","latest":"Most recently updated active run","gate":"Current gate","updated":"Last updated","objective":"Objective","otherRuns":"Other active runs","choosePrompt":"Reply with the run ID to continue, or describe a different action. This selects a run; it does not approve a gate.","noneTitle":"No active delivery run","nonePrompt":"Would you like to start a new run, or do something else? No run has been created."},"installSetup":{"title":"AGDF installation setup","choicePrompt":"Set up the local MCP server? (1-3): ","invalidChoice":"Choose exactly 1, 2 or 3.","emptyChoice":"No choice was made. Choose 1, 2 or 3.","blockedChoice":"Complete setup is unavailable: {reason}","scopeTitle":"Choose the MCP registration scope","scopeChoicePrompt":"Choose MCP scope (1-3): ","invalidScopeChoice":"Choose exactly 1, 2 or 3.","emptyScopeChoice":"No scope was selected. Choose 1, 2 or 3.","blockedScopeChoice":"This scope is unavailable: {reason}","labels":{"surface":"Host","version":"AGDF version","plugin":"Plugin state","mcp":"MCP state","target":"MCP target","targetSource":"Target source","invocationContext":"Invocation and precedence context","invocationDirectorySource":"Invocation directory source","scope":"MCP scope","selectedStatus":"Selected registration","effectiveSource":"Effective configuration source","registrationPath":"Native configuration source","pluginConfiguration":"Plugin configuration","localExecution":"Local execution","packageAcquisition":"Package acquisition","removal":"Safe removal","authorizes":"Grants governance authority","result":"Result","setupRequest":"Setup choice","effectiveState":"Effective state","runtimeChecks":"Automatic checks","discovery":"Host discovery","restart":"Restart required","failure":"Failure","nextAction":"Next action"},"choices":{"full":"Complete setup","fullDescription":"Install the plugin, prepare the local AGDF MCP server and register it for the shown target and scope.","plugin_only":"Plugin only","pluginOnlyDescription":"Install the plugin and leave every MCP registration unchanged.","cancel":"Cancel","cancelDescription":"Stop before installation or MCP changes.","recommended":"recommended"},"scopeChoices":{"project":"Set up for this project","projectDescription":"Register AGDF for the shown project. This project configuration has native priority over a user default.","user":"Set up for this user","userDescription":"Register AGDF once as the host user default. A project configuration can override it.","back":"Back","backDescription":"Return to the setup choice without making changes.","existing":"currently configured"},"values":{"yes":"yes","no":"no","none":"none","required":"required","not_required":"not required","expectedVersion":"expected {version}"},"targetSources":{"explicit_dir":"explicit --dir","interactive_invocation_cwd_proposal":"original invocation directory proposal","interactive_invocation_cwd_selection":"selected original invocation directory","none":"none"},"invocationDirectorySources":{"explicit_dir":"explicit --dir","npm_init_cwd":"original npm invocation directory","process_cwd":"current process directory","none":"none"},"pluginStates":{"observed":"observed","healthy":"healthy","degraded":"degraded","not_installed":"not installed","unavailable":"unavailable","unknown":"unknown","not_run":"not run"},"mcpStates":{"not_requested":"not requested","not_checked":"not checked","not_configured":"not configured","configured_pending_restart":"configured, restart pending","configured_unverified":"configured, discovery unverified","discovered_ready":"discovered and ready","unchanged":"unchanged","disabled":"disabled","degraded":"degraded","failed":"failed","plugin_managed":"included in the plugin"},"scopes":{"project":"project","user":"user"},"registrationStates":{"absent":"absent","matched":"matched","foreign":"foreign","owned_mismatch":"AGDF-owned version mismatch","precedence_conflict":"higher-priority conflict","invalid":"invalid"},"effectiveSources":{"none":"none","unknown":"unknown","user":"user configuration","project":"project configuration","project_override":"project override","local":"local project configuration","shared_project":"shared project configuration","inline":"inline configuration","custom":"custom configuration"},"versionTransitions":{"installed":"installed","updated":"updated","unchanged":"unchanged","unknown":"transition unknown"},"runtimeCheckStates":{"not_run":"not run","not_checked":"not checked","cancelled":"cancelled","manual":"manual","decision_required":"host permission pending","enabled":"enabled","renewal_required":"review required","degraded":"degraded","failed":"failed","unavailable":"unavailable","receipt_missing":"choice record missing","receipt_unowned":"choice record not owned by AGDF","receipt_invalid":"choice record invalid","unknown":"unknown"},"setupRequests":{"plugin_only":"plugin only","full":"complete setup","cancel":"cancel"},"results":{"success":"success","partial":"partial","failed":"failed","cancelled":"cancelled"},"effectiveStates":{"cancelled":"cancelled before changes","plugin_ready_mcp_absent":"plugin ready, MCP absent","plugin_ready_mcp_unchanged":"plugin ready, MCP unchanged","configured_pending_restart":"configured, restart pending","configured_unverified":"configured, discovery unverified","discovered_ready":"discovered and ready","partial":"partially completed","degraded_or_foreign":"MCP degraded or foreign","failed":"failed","plugin_ready_mcp_in_plugin":"plugin ready, MCP included in the plugin","mcp_ready_hook_review_required":"MCP ready – hook confirmation pending","mcp_ready_hook_verification_pending":"MCP ready – hook verification pending","control_repair_required":"repair required","control_unsupported":"unsupported control format"},"discoveryStates":{"not_checked":"not checked","pending_restart":"pending restart","discovered":"discovered"},"failurePhases":{"input_validation":"input validation","setup_preflight":"setup preflight","setup_selection":"setup selection","runtime_check_permission":"automatic-check choice","plugin_operation":"plugin operation","plugin_verification":"plugin verification","mcp_preflight":"MCP preflight","mcp_enable":"MCP enable","mcp_disable":"MCP disable","plugin_disable":"plugin disable","plugin_uninstall":"plugin uninstall","result_validation":"result validation","presentation":"presentation"},"failureCodes":{"input_invalid":"invalid input","setup_preflight_failed":"setup preflight failed","setup_selection_blocked":"setup choice blocked","runtime_check_permission_failed":"automatic-check choice failed","plugin_operation_failed":"plugin operation failed","plugin_verification_failed":"plugin verification failed","mcp_preflight_failed":"MCP preflight failed","mcp_enable_failed":"MCP enable failed","mcp_disable_failed":"MCP disable failed","plugin_disable_failed":"plugin disable failed","plugin_uninstall_failed":"plugin uninstall failed","result_invalid":"invalid setup result","presentation_failed":"presentation failed"},"actions":{"none":"No further action is required.","cancelled":"No changes were made. Start setup again when ready.","restart_host":"Restart the host and start a fresh session.","verify_host_discovery":"Start a fresh host session and verify AGDF MCP discovery.","retry_plugin":"Resolve the plugin failure, then rerun the same installation command with --verbose.","retry_mcp":"Keep the installed plugin, resolve the MCP failure and retry complete setup.","resolve_mcp_registration":"Resolve the conflicting MCP registration before complete setup.","review_runtime_checks":"Review the automatic-check state and retry setup.","review_codex_hook":"Review and trust the AGDF hook under /hooks, then start a fresh session. CLI MCP tests need no desktop restart.","enable_codex_hook":"Enable the AGDF hook under /hooks, then verify it in a fresh session.","verify_codex_hook":"Verify execution of the trusted AGDF hook in a fresh session. Trust alone is not execution evidence.","inspect_codex_hook":"Inspect the AGDF hook under /hooks and retry runtime-checks status --surface codex.","choose_plugin_only_or_cancel":"Choose plugin only or cancel; complete setup is blocked.","inspect_control":"Inspect the repository control without changes. Preserve unsupported data and use a fresh current target; there is no migration or reset."},"blockReasons":{"none":"none","target_required":"an absolute MCP target is required","mcp_foreign":"the MCP registration is foreign","mcp_precedence_conflict":"a higher-priority registration conflicts","mcp_invalid":"the MCP registration is invalid","mcp_preflight_failed":"the MCP preflight failed"},"restartReasons":{"plugin_reload":"plugin reload","mcp_discovery":"MCP discovery"},"runtimeConsent":{"title":"AGDF {version} for {host}","appliesTo":"Applies to this {host} installation for your user account.","question":"Let AGDF check your project status automatically at session start?","previousEnabled":"Your previous choice: automatic checks requested","previousManual":"Your previous choice: manual checks","permissionAfterInstall":"{host} permission: checked after installation","safeTitle":"Safe by design","reads":" Reads only AGDF runtime information and .agdf/control in this project","noProjectChanges":" Changes no project files and uses no network","noGovernanceAuthority":" Never approves AGDF work","savesChoice":"AGDF saves your choice. {host} remains in control of permission.","chooseAgain":"You choose again for every install or update and whenever the check changes.","turnOff":"Turn it off anytime: {revocation}","chooseTitle":"Choose","enableChoice":" [1] Yes, check automatically","manualChoice":" [2] No automatic checks","manualDescription":" AGDF still works. Checks run when you request them.","detailsChoice":" [D] Show technical details","cancelChoice":" [Esc] Cancel installation","progress":"Setting up AGDF {version} for {host}...","loadedSessions":"Note: {count} running Claude Code session(s) still use the old AGDF. Restart them for {version}; if the update fails, close them first.","linePrompt":"Choice (1/2/D/cancel): ","lineInvalid":"Choose 1, 2 or D, or type cancel.","keyPrompt":"Choice: ","keyInvalid":"Press 1, 2, D or Esc.","detailsEcho":"details","decisionEcho":{"enable":"enable","manual":"manual","cancel":"cancel"},"detailsTitle":"Technical details","detailsInstallationScope":"global user installation","detailsRuns":"one argument-free local session check at session start","detailsReads":"AGDF runtime identity and .agdf/control state in the current repository","detailsWrites":"one AGDF-owned intent receipt","detailsRenewal":"material command, runtime, source, scope or adapter identity change requires renewed consent","detailsLabels":{"appliesTo":"Applies to","runs":"Runs","reads":"Reads","saves":"Saves","permissionControl":"Permission control","command":"Command","renewal":"Renewal"},"permissionOwners":{"codex":"Codex native hook trust","claude":"Claude Code plugin enablement","copilot":"GitHub Copilot plugin hook review","opencode":"OpenCode plugin and explicit permission configuration"}},"controlRepair":{"title":"Repair repository control data","resultDescription":"Plugin successfully installed; repository control data needs repair.","searchDescription":"Search recovery journals and Git for original records. Nothing is changed until you select a concrete repair.","availableDescription":"{count} runs have a verified repair proposal.","repairedDescription":"Repaired runs: {count}","backupDescription":"Before repair, the current record and the selected originals are saved in a private repair journal.","resetDescription":"Restoring missing artefacts in unsealed runs also resets unproven approvals; these runs resume at UR.","manualDescription":"Original data or manual correction required","startChoice":"Start repair assistant","skipChoice":"Later","detailsChoice":"Show details","applyChoice":"Apply the proposed repairs","prompt":"Choice (empty = later): ","invalidChoice":"Choose 1, 2 or 3.","kinds":{"manual":"needs original data or correction","self_reference":"verified self-reference correction","run_snapshot":"verified original run snapshot","missing_artefacts":"original artefacts found in Git"},"reasons":{"AGDF_REPAIR_ORIGINAL_REQUIRED":"Restore the missing original file","AGDF_REPAIR_REFERENCE_REQUIRED":"Verified file references required","AGDF_RECOVERY_ARTEFACT_MISSING":"Restore the missing original file"}},"controlCompatibility":{"title":"Repository control compatibility","target":"Repository","state":"Control state","format":"Supported run format","historicalCount":"Historical runs retained: {count}","detailsDescription":"Use Details or control-maintenance --dir <absolute-repository> --details for run names and diagnostics.","states":{"not_checked":"not checked","absent":"no existing control state","current":"compatible","repair_required":"repair required","historical":"historical record retained","unsupported":"unsupported"}}},"statusCard":{"title":"AGDF status-card","status":"Status","field":"Status field","value":"Value","run":"Selected run","humanTitle":"Run title","gate":"Current gate","requiredDecision":"Required decision","blocked":"Blocked by","blockerDetails":"Affected item","sourceWording":"original wording","recovery":"Recovery action","prdReadinessItems":"PRD readiness items","traceabilityGaps":"Traceability gaps","missing":"Missing approval","maintenance":"Evidence maintenance","outcome":"Outcome after approval","internal":"Internal next step","userGate":"Next user gate","userAction":"User action required","nextGate":"Next gate after approval","allowedAfter":"Allowed after approval","skill":"Next skill","step":"Next step","quality":"Quality outlook","userDecision":"Your decision","agentAllowed":"Agent may work on now","waitingOn":"Waiting for","userTurn":"Your turn","userInputNeeded":"Provide the requested details.","agentWorking":"I am continuing","noReply":"No reply needed","summaryRecovery":"Correct the approval summary","summaryReason":"Validation reason","summaryExpected":"Required field","sourceLanguage":"Source language","languageEnglish":"English","languageGerman":"German","originalLanguageExcerpts":"summary follows the selected language","lifecycle":"Delivery status","allowed":"Allowed now","forbidden":"Forbidden now","artefacts":"Artefacts","breadcrumb":"Path","breadcrumbFulfilled":"✓","breadcrumbCurrent":"●","breadcrumbOpen":"○","breadcrumbSeparator":" · ","sdReadinessItems":"SD readiness items","agentNext":"Next permitted agent action","qaFollowUp":"QA follow-up"},"controlSetup":{"title":"AGDF control setup","field":"Setup field","value":"Value","status":"Status","target":"Target","durableScope":"Durable scope","plannedEffect":"Planned effect","excludedAuthority":"Not authorized","nextAction":"Next action","replyOptions":"Reply exactly with","required":"Control setup required","scopeValue":".agdf/control in the selected repository","effectValue":"Create an owned canonical control scaffold and empty canonical run store.","excludedValue":"This card creates no automatic run or UR and grants no gate approval.","actionValue":"An active delivery intake then persists its reviewed run and UR without another setup prompt; standalone init remains scaffold-only.","replyOptionsValue":"\\"Authorize setup\\" to create the shown scaffold, or \\"Cancel\\" to stop without changes."},"operationalValues":{"recoverOriginalLayoutMigration":"Inspect planned_layout.apply/original-UUID and recover only the original confirmed operation.","restoreContainedConfiguration":"Restore a supported contained configuration.","preserveUnsupportedHistory":"Use a compatible reader supporting the recorded format; preserve original history bytes and provenance.","inspectOriginalHistory":"Inspect the original version and integrity evidence; do not automatically rewrite, migrate or remove unrelated history.","inspectChangedApprovedSources":"inspect the changed approved sources through their existing revision/recovery owner","continueFromUnconfirmedApproval":"continue from an unconfirmed old approval","resolveChangedApprovedMaterial":"Resolve the changed approved material through its existing source/recovery owner; do not infer a fresh approval.","reviseCurrentDecidedMaterial":"revise the current material through its existing authoring or remediation owner","approveUnchangedDecidedMaterial":"approve unchanged decided material","invalidateApprovedUpstreamSources":"invalidate approved upstream sources without supported revision","reviseDecidedMaterialStep":"Revise the decided material through its existing owner, register the changed version and obtain a fresh presentation and deliberate decision.","explicitVcsHandoff":"prepare an explicitly requested VCS handoff","repeatCompletedRun":"repeat completed Run work","automaticVcsRelease":"perform VCS or release actions automatically","completedExplicitHandoff":"Run completed; prepare a VCS handoff only when explicitly requested.","endedRunForbidden":"continue or reopen an ended Run","endedSupersededNext":"Run ended as superseded; start a new run to continue the work.","endedAbandonedNext":"Run ended as abandoned; start a new run to continue the work.","inspectInconsistentCompletion":"inspect the inconsistent completion and route it to its existing recovery owner","repeatCompletedAutomatically":"repeat completed work automatically","claimCleanCompletion":"claim clean completion","resolveInconsistentCompletion":"Resolve the inconsistent completed Run obligations before claiming a clean closeout.","blockedPrdDecisionsOpen":"Required product decisions are unresolved","blockedSdTraceability":"Solution Design traceability is incomplete","blockedTpTraceability":"Task Plan traceability is incomplete","blockedControlMissing":"Durable AGDF control is missing","blockedRunMissing":"A canonical active run is missing","blockedRelationshipMissing":"A required artefact relationship is missing","blockedRelationshipEvidenceMissing":"Evidence for a required artefact relationship is missing","blockedRelationshipConflict":"Required artefact relationships conflict or are duplicated","relationshipCorrected":"The missing artefact relationship was restored from exact sealed reviewed evidence.","blockedEvidenceDeclared":"Required evidence is missing","blockedRiskDeclared":"A declared risk requires resolution","blockedUnknown":"An unresolved control finding needs attention","completeControlStateFields":"complete the current control-state fields","repairControlScaffold":"repair the AGDF control scaffold","clarifyUserNeed":"clarify user need","formulateAndPersistUr":"formulate and persist UR","draftOrRefinePrd":"draft or refine PRD","resolveListedPrdDecisions":"resolve the listed PRD decisions together and record a new run revision","resolveOpenPrdDecisions":"resolve the open PRD approval decisions together, then record the revision through the inspected current recording operation","noPrdBeforeDecisions":"present or approve PRD before required product decisions are resolved","completePrdReadinessItems":"complete the listed PRD readiness items together and record a new run revision","nextPrdReadinessItems":"complete the open PRD readiness items together, then record the revision through the inspected current recording operation","noPrdBeforeReadiness":"present or approve PRD before required decisions and acceptance criteria are ready","completeSdTraceability":"complete the listed SD traceability rows and record a new run revision","nextSdTraceability":"complete the listed SD traceability rows, then record the revision through the inspected current recording operation","completeTpTraceability":"complete the listed TP traceability rows and record a new run revision","nextTpTraceability":"complete the listed TP traceability rows, then record the revision through the inspected current recording operation","noTraceabilityBeforeApproval":"present or approve the current artefact before its traceability is complete","defineScope":"define scope","defineAcceptanceCriteria":"define acceptance criteria","defineNonGoals":"define non-goals","requestExactPrdApproval":"request exact PRD approval","forbidCreateSd":"create SD","forbidCreateTp":"create TP","forbidBrownfieldAnalysisBeforeTp":"run Brownfield Analysis as implementation preparation","forbidImplementCode":"implement code","afterPrdApproval":"Draft Solution Design; implementation remains forbidden.","draftOrRefineSd":"draft or refine Solution Design","defineArchitecture":"define architecture","defineOwnership":"define ownership","requestExactSdApproval":"request exact SD approval","afterSdApproval":"Draft Task/Test Plan; implementation remains forbidden.","draftOrRefineTp":"draft or refine Task/Test Plan","defineTaskIds":"define task IDs","defineTestEvidence":"define test evidence","requestExactTpApproval":"request exact TP approval","afterTpApproval":"Run implementation-prep Brownfield Analysis before CD+Tests; no further user approval is required at this internal step.","runBrownfieldForApprovedTp":"run Brownfield Analysis for the approved TP scope","verifyOwnersReuseRegression":"verify existing owners, reuse paths and regression risks","forbidImplementationBeforeBrownfield":"implement before Brownfield evidence supports the approved TP path","nextBrownfieldBeforeCdTests":"Run Brownfield Analysis for the approved TP scope before CD+Tests.","nextCdTestsBeforeCr":"Implement the approved TP scope, run its tests, and record CD+Tests evidence before CR.","nextCdTestsAfterTpApproval":"TP approved. Implementation, tests and CD+Tests evidence are permitted within the approved scope.","unknownRunAction":"I cannot safely identify the selected run\'s next action. Please clarify the intended next action for this run.","hostEvidenceProvisioningChoice":"Choose whether AC-006 stays open under this TP or a separate host-provisioning scope update starts. Host changes are not authorized by this TP.","approvalSummaryRecovery":"No approval is requested. Correct the named summary requirement in {language}; preserve the complete contents.","completeMissingApprovalSummary":"Add the complete localized summary to the linked artefact, record a new revision, and prepare a fresh approval presentation.","runMandatoryCodeReview":"run mandatory code review","recordCodeReviewFindings":"record correctness, regression, security and maintainability findings","fixBlockingReviewFindings":"fix blocking review findings","nextCodeReviewBeforeQa":"Run Code Review for the implemented TP scope and resolve blocking findings before QA.","nextReviewsBeforeQaApproval":"Record TP Review and Clean Implementation Review before requesting Approval: QA.","recordRequiredReviews":"record TP Review and Clean Implementation Review","nextRerunQaForCurrentEvidence":"Rerun QA against the current evidence before requesting Approval: QA.","nextQaGateAndApproval":"Run the QA gate, persist the QA report, and request exact approval: Approval: QA","recordEvidence":"record evidence","requestExactUrApproval":"request exact UR approval","reviseQaImplementation":"revise the implementation against the QA findings","refreshCdTestsAndReviews":"refresh CD+Tests and mandatory reviews","rerunQaWithEvidence":"rerun QA with refreshed evidence","runQaGate":"run QA gate","persistQaReport":"persist or refine the QA report","requestExactQaApproval":"request exact QA approval","requestExactUatApproval":"request exact UAT approval","prepareNonOperativeDeliverySummary":"prepare non-operative delivery summary","runDoctorAgain":"run doctor again","recordRunRevision":"Preserve unrecorded bytes, restore the trusted sealed state, then stage the intended change through its current recording owner.","restoreRecordedApprovals":"Restore the recorded Approvals rows; record a gate approval only with run-approve after the exact user reply.","repairRunSeal":"Restore trusted sealed bytes and inspect the change; never remove seals or adopt unknown edits.","recoverUnsealedRun":"Restore a trusted sealed revision or use the explicit legacy migration path; do not infer approvals from this file.","recoverPendingRunStep":"Use explicit supported recovery for this exact pending operation; preserve conflicting bytes.","implementApprovedTpTasks":"implement the approved TP tasks","runApprovedTestPlan":"run the approved test plan","recordImplementationTestEvidence":"record implementation and test evidence","createOrMigrateCanonicalRun":"create or migrate a canonical run with an explicit run id","selectCanonicalRunExplicitly":"select an existing canonical run explicitly","persistRealUrBeforeApproval":"persist a real UR revision before requesting gate approval","forbidLaterGateArtefacts":"create later-gate artefacts beyond the current allowed gate","forbidPrematureImplementation":"implement gated work before the gate allows it","forbidGatedImplementation":"implement gated work","forbidQaPass":"claim QA pass","forbidQaOrReleaseClaim":"claim QA or release readiness","forbidQaApproval":"request QA approval","forbidDeliveryReadiness":"claim delivery readiness","forbidUatApproval":"request UAT approval","forbidRelease":"release","forbidDeliveryReadinessBeforeQa":"claim delivery readiness before QA approval and report evidence","forbidPush":"push","forbidOpenPr":"open PR","forbidCommitWithoutInstruction":"commit without explicit user instruction and required approval","forbidApprovalWithoutDurableRun":"request gate approval without a durable run and artefact","repairRuntimePackagingBaseline":"Repair the separately owned runtime-packaging baseline, rerun complete smoke and refresh QA.","fillUrControlState":"Fill the current UR control state, persist the UR draft, and request exact approval: Approval: UR.","afterUrApproval":"Run Brownfield Review and proportional routing as one internal operation; no user action is required now.","runBrownfieldReviewAfterG00":"run Brownfield Review after G-00","identifyBrownfieldOwnersQuestions":"identify existing workstream, owners, SoT, reuse risks and open PRD/SD questions","markBrownfieldReviewDoneOrNotApplicable":"mark Brownfield Review as done or not_applicable in the selected RUN_STATE.md","forbidPrdBeforeBrownfieldResolved":"create PRD before Brownfield Review is resolved","nextBrownfieldReviewBeforePrd":"Run Brownfield Review after G-00 before drafting PRD, or mark Brownfield Review not_applicable with evidence.","nextStructuredPrdBeforeSdTp":"Draft or refine the PRD; do not implement before PRD, SD and TP are approved.","reviewLinkedArtefactForDecision":"Review the linked artefact and choose whether to approve, request revision, or decline it.","nextStructuredSlicePrdBeforeApproval":"Draft or refine the smallest PRD slice justified by Brownfield Review; do not implement before required artefacts are approved.","nextSdBeforeTp":"Draft or refine the Solution Design; do not implement before SD and TP are approved.","nextTpBeforeImplementation":"Draft or refine the Task/Test Plan; do not implement before TP is approved.","regenerateLegacyProjection":"Regenerate the explicit legacy projection or remove it after legacy consumers are retired.","requestQaApproval":"Request exact approval: Approval: QA.","afterQaApproval":"Request UAT when QA has passed; release remains gated.","afterQaDeviationApproval":"Request UAT after the explicitly presented QA deviations are accepted; native qualification remains unchanged.","afterUatApproval":"Produce OR or delivery closeout; VCS and release actions still require explicit instruction.","produceOrOrDeliveryCloseout":"produce OR or delivery closeout","prepareVcsHandoffWhenRequested":"prepare commit, push or PR handoff when requested","forbidAutomaticVcsAndRelease":"commit, push, open PR or release automatically","produceDeliveryCloseoutOrRequestedHandoff":"Produce delivery closeout or requested handoff; do not perform VCS actions automatically.","captureFreshSessionEvidence":"Restart GitHub Copilot and capture fresh-session installed-plugin, skill-discovery and SessionStart evidence before the UAT decision.","preserveInstalledLoadedBoundary":"Preserve the distinction between installed state and fresh-session loaded behavior.","resolveDeliveryFindings":"Resolve blocking or revise-level delivery-map findings before making stronger quality claims.","reviewDeliveryWarnings":"Review warning-level findings when investing further in delivery confidence.","noAdditionalQualityFollowUp":"No additional quality follow-up identified from the current control state.","renewCopilotTargetEvidence":"Obtain a separate runtime-check consent decision, restart Copilot and capture both fresh-session paths.","proveCopilotTargetContexts":"Prove both repo-less suppression and repository-bound gate selection in the installed Copilot host.","retestCopilotUnresolvedEarlyReturn":"Fully restart Copilot, start a new repo-less German GeneralChat and invoke `agdf-qa-gate`; capture the repository-bound path separately afterward.","proveCopilotUnresolvedEarlyReturn":"Prove that the loaded host derives language from the current conversation and transmits the canonical card verbatim.","createSelectOrMigrateRun":"Create, migrate or select the canonical run, then persist its UR revision before requesting approval.","selectIntendedRun":"Pass --run <run_id> or set AGDF_RUN_ID to select the intended run.","selectOrEvaluateActiveRuns":"Pass --run <run_id> or set AGDF_RUN_ID to select the intended run, or use --all-active to evaluate every active run independently.","resolveReportedFinding":"Resolve the finding named under Blocked by, then run gate-check again.","addEvidenceRow":"Add at least one evidence row or explicitly document that no evidence exists yet.","addBacklogPointer":"Add the active item or document that no governed delivery item is active.","alignVerifiedChangeRowStatus":"Align the run-state row and record status.","assignPrimarySot":"Assign one primary source of truth for at least the domains relevant to the next run.","verifiedChangeCaptureCommit":"Capture the current full Git commit id before eligibility or escalate.","verifiedChangeCaptureBaseline":"Capture the worktree baseline before marking the record eligible.","clarifyContextGraphImpact":"Clarify the Context Graph impact before advancing the gate.","closeExecutedVerifiedChange":"Close the executed Verified Change with its compact record and offer delivery closeout; do not perform VCS actions automatically.","completeBrownfieldSelection":"Complete Brownfield Selection before eligibility.","completeMiniCloseoutEvidence":"Complete execution and Mini-Closeout evidence before marking OR done.","confirmActiveScope":"Confirm the active scope from durable artefacts or record why branch/workspace evidence is only supporting evidence.","verifiedChangeCorrectDerivedPaths":"Correct the derived path list or escalate.","verifiedChangeCorrectSnapshot":"Correct the historical execution snapshot or escalate.","createOrActivateGovernedRun":"Create or activate a governed run.","nextRepairVerifiedChangeRecord":"Create or repair VERIFIED_CHANGE.md, capture the baseline and satisfy every eligibility check before implementation; escalate if any condition is unproven.","verifiedChangeDeclareSourcePaths":"Declare a bounded comma-separated source path list; otherwise escalate.","nextDraftMinimalUrThenSetup":"Draft the minimal UR, obtain explicit setup or link authority, then initialize and persist durable control before requesting any gate approval.","verifiedChangeCleanCandidate":"Escalate or start from a clean candidate path; do not adopt pre-existing edits.","fillMemoryReason":"Fill memory_reason or set memory_target to none.","fillArtefactChainRow":"Fill the Artefact Chain row with concrete evidence before treating the delivery map as complete.","fillNextAllowedAction":"Fill the next allowed action before asking an agent to continue delivery work.","nextImplementEligibleVerifiedChange":"Implement only the eligible Verified Change record scope, then record passing propagation and validation evidence.","keepRunsIndependentlyActionable":"Keep every active run independently actionable.","keepSingleActiveSot":"Keep exactly one active primary source of truth for this domain.","backlogOneLinkPerType":"Keep exactly one link per artefact type.","keepSingleArtefactRow":"Current document references derive from typed bindings; restore valid records instead of editing derived tables.","verifiedChangeLinkRecord":"Link a stable repository-relative VERIFIED_CHANGE.md artefact from the selected run state.","listCompetingScopes":"List competing scope lines with gate and artefact evidence, then clarify the active scope.","verifiedChangeMarkEscalated":"Mark the record escalated and continue at the declared structured target.","verifiedChangeNameOwner":"Name one canonical owner path; otherwise escalate.","nextPersistApprovedUr":"Persist the approved UR artefact and link it from the AGDF control state before continuing.","nextPersistApprovedPrd":"Persist the approved PRD artefact and link it from the AGDF control state before continuing.","nextPersistApprovedSd":"Persist the approved SD artefact and link it from the AGDF control state before continuing.","nextPersistApprovedTp":"Persist the approved TP artefact and link it from the AGDF control state before continuing.","nextPersistApprovedQa":"Persist the approved QA report and link it from the AGDF control state before continuing.","nextProceedAsStructuredSlice":"Proceed as structured_slice: draft the required PRD and request exact approval: Approval: PRD.","nextProceedAsStructuredDelivery":"Proceed as structured_delivery: draft the required PRD and request exact approval: Approval: PRD.","nextProceedAsQuickTask":"Proceed as a Quick Task within the Brownfield Review scope and record verification evidence.","verifiedChangeRecaptureBaseline":"Recapture the baseline before eligibility or escalate; do not reuse a stale or fabricated baseline identity.","verifiedChangeRecordAcceptanceCheck":"Record a deterministic acceptance or consistency check, or escalate.","verifiedChangeRecordExecutionScope":"Record complete execution-scope evidence or escalate.","verifiedChangeRecordValidation":"Record passing deterministic validation evidence or escalate.","verifiedChangeRecordPropagation":"Record successful propagation evidence or escalate.","verifiedChangeRecordEscalationTarget":"Record the Brownfield-selected structured escalation target.","nextRecordModeSliceDecision":"Record the Mode/Slice Decision from Brownfield Review with scope reason and evidence before choosing PRD depth or Quick Task execution.","verifiedChangeRecordChangedPaths":"Record the exact changed paths or escalate.","verifiedChangeRecordPropagationCommand":"Record the propagation command or escalate.","removeUnsafePathText":"Remove absolute, traversal, unsupported-backslash or otherwise non-normalized path text.","replaceContextGraphExample":"Remove the example or replace it with an evidenced node that has an exit criterion.","repairOrRemoveInvalidRun":"Repair or remove the invalid run entry.","nextRequestUatApproval":"Request exact approval: Approval: UAT before delivery handoff.","resolveContextGraphLink":"Resolve Context Graph action: link.","resolveContextGraphUpdate":"Resolve Context Graph action: update.","resolveContextGraphCreate":"Resolve Context Graph action: create.","resolveContextGraphResolveDrift":"Resolve Context Graph action: resolve_drift.","nextResolveBlockingQa":"Resolve or route the blocking QA findings via their authoritative owner, then rerun the required steps. Do not request Approval: QA from a block report.","resolvePerRunFindings":"Resolve per-run findings.","nextResolveBrownfieldBlocker":"Resolve the Brownfield Review blocker before choosing a delivery path.","nextResolveQaRevise":"Resolve the QA revise findings, refresh CD+Tests and reviews, then rerun QA. Do not request Approval: QA from a revise report.","verifiedChangeRestoreGit":"Restore Git repository access or use the structured path.","restoreQualityContracts":"Restore the generated contracts or fix the JSON contract schema.","initControlWhenNeeded":"Run npx --yes @agdf/cli@latest init only when the repository should own durable AGDF control state or deterministic setup is explicitly needed.","repairRunIdentity":"Preserve unsupported or unproven data; inspect the current target and use a fresh current Run without conversion.","verifiedChangeSetStatus":"Set a supported record status or escalate to the declared structured target.","setCurrentGate":"Set current_gate to the current delivery gate or none.","verifiedChangeSetRelatedUr":"Set related_ur to the selected run\'s durable UR artefact path.","updateUrArtefactRowStatus":"Update the UR artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updatePrdArtefactRowStatus":"Update the PRD artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updateSdArtefactRowStatus":"Update the SD artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updateTpArtefactRowStatus":"Update the TP artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updateQaArtefactRowStatus":"Update the QA artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","backlogArtefactTypes":"Use UR, Brownfield, PRD, SD, TP, QA or OR.","backlogLinkStyle":"Use [UR](artefacts/<key>/UR.md) style links separated by a middle dot.","backlogScopeTag":"Use [framework-maintenance] or [external-delivery], or remove the bracketed tag.","backlogArtefactTarget":"Use a document-relative artefact target such as artefacts/<key>/UR.md.","backlogStatusLabel":"Use a documented human status label or a supported legacy snake_case value.","useSafeArtefactPath":"Use a plain repository-relative path or one complete Markdown code span.","nextUseDeliveryCloseoutOnRequest":"Use delivery closeout only when an operative VCS handoff is explicitly requested.","useDistinctArtefacts":"Use distinct artefacts or a lifecycle-consistent Verified Change compact record.","useConsistentReviewAliasStatus":"Use one consistent status for aliases of the same artefact role.","backlogLayout":"Use the canonical compact layout or the supported legacy 13-column layout.","verifiedChangeStructuredOrWorktree":"Use the structured path or restore Git worktree access.","verifiedChangeStructuredForProhibitedImpact":"Use the structured path when any prohibited impact applies.","forbidAddProhibitedImpacts":"add prohibited impacts","captureBaselinePaths":"capture baseline paths","chooseNextGateDepth":"choose the next required gate depth before drafting PRD or implementing","forbidReadinessWithoutEvidence":"claim QA or release readiness without evidence","forbidQaUatReleaseClaim":"claim QA, UAT or release readiness","forbidReleaseClaim":"claim release readiness","forbidValidationReleaseClaim":"claim validation, QA, UAT or release readiness","forbidCreatePrd":"create PRD","forbidCreateBrownfieldAnalysis":"create Brownfield Analysis","forbidCreateUat":"create UAT","forbidPrdBeforeSizing":"create PRD before process size is decided","forbidRitualArtefacts":"create PRD, SD, TP, QA or UAT by ritual","forbidSdTpBeforePrdApproval":"create SD or TP before PRD approval","forbidBroadArtefacts":"create broad PRD/SD/TP artefacts by ritual","forbidAnyLaterGateArtefacts":"create later-gate artefacts","refineVerifiedChangeRecord":"create or refine the compact Verified Change record","decideModeSlice":"decide whether the approved UR is quick_task, verified_change, structured_slice, structured_delivery or block","draftMinimalUr":"draft the minimal UR for the requested change in the response","draftEscalatedPrd":"draft the structured PRD required by the declared escalation target","forbidScopeExpansion":"expand scope beyond the Brownfield Review decision","forbidImplementCandidate":"implement candidate changes","implementDeclaredPaths":"implement only declared source and derived paths","implementNarrowUrScope":"implement the narrow approved UR scope","forbidImplementViaVerifiedChange":"implement through Verified Change","initializeDurableControl":"initialize and persist durable control before requesting a gate approval","linkArtefactFromControl":"link the artefact from the selected RUN_STATE.md","obtainSetupAuthority":"obtain explicit authority to initialize or link durable control","offerDeliveryCloseout":"offer delivery closeout when requested","persistApprovedUrInStablePath":"persist the approved UR artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/UR.md","persistApprovedPrdInStablePath":"persist the approved PRD artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/PRD.md","persistApprovedSdInStablePath":"persist the approved SD artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/SD.md","persistApprovedTpInStablePath":"persist the approved TP artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/TP.md","persistApprovedQaInStablePath":"persist the approved QA report in a stable artefact path such as .agdf/control/runs/<run_id>/documents/QA_REPORT.md","proveVerifiedChangeEligibility":"prove fail-closed eligibility with doctor and gate-check","recordEvidenceAndOrLite":"record evidence and close with OR-lite","recordExecutionAndMiniCloseout":"record execution evidence and mini-closeout","recordModeSliceFields":"record scope reason, evidence and required next gate depth in the selected RUN_STATE.md","recordQaRemediation":"record the next permitted remediation or upstream decision","forbidRepeatQuickTask":"repeat Quick Task execution","rerunQaAfterBlocker":"rerun QA only after the blocker is resolved","resolveModeSliceUncertainty":"resolve ownership, SoT, evidence, impact or product-direction uncertainty","retainEscalationEvidence":"retain the Verified Change escalation evidence","routeBlockingQaFindings":"route the blocking QA findings to their authoritative owner","runDeclaredValidation":"run declared propagation and validation commands","runGateCheckAgain":"run gate-check again","runRelevantChecks":"run relevant checks","forbidTouchUnlistedPaths":"touch unlisted paths","useCloseoutWhenRequested":"use delivery closeout when explicitly requested","useVerifiedChangeMiniCloseout":"use the Verified Change mini-closeout","resolveOrAcceptMissingEvidence":"Resolve or explicitly accept the missing evidence before advancing the gate.","assignRiskMitigationOrOwner":"Assign mitigation or ownership before advancing the gate.","blockedUrRequirements":"UR requirements need clarification","completeUrRequirements":"complete the UR requirement clarification and record a new run revision","nextUrRequirements":"complete the UR requirement clarification, then record the revision through the inspected current recording operation","forbidUnreadyUr":"present or approve UR before requirement clarification is complete","completeSdReadinessItems":"complete the listed SD readiness items together and record a new run revision","forbidSdBeforeReady":"present or approve SD before required design decisions are ready","nextSdReadinessItems":"complete the open SD readiness items together, then record the revision with the shared artefact writer","blockedSdDecisionsOpen":"required design decisions are unresolved or malformed","sourceRevisionUxNext":"Reassess UX intent under the current approved UR before dependent source authoring.","sourceRevisionUxAssess":"reassess UX intent under the current approved UR and reviewed analytical context","sourceRevisionUxRecord":"record the renewed analysis before dependent authoring","sourceRevisionUxForbidden":"draft or approve a dependent source before analytical reassessment","sourceRevisionAuthoringNext":"reassess source analyses before renewing approvals","sourceRevisionResolveRoute":"resolve the analytical route under the retained approved UR","sourceRevisionSkipApprovals":"skip renewed source approvals","nextResolveReviseQa":"Resolve or route the QA revise findings through their authoritative owner before dependent work. Do not request Approval: QA from a revise report.","collectExactQaEvidence":"collect the exact QA evidence obligation through its existing owner","nextCollectQaEvidence":"Collect the exact QA evidence obligation through its existing owner. Prepare a complete observation sequence before necessary external action, then rerun QA.","blockedDecisionContent":"Required decision content is incomplete","completeDecisionContent":"Complete the current decision content through its existing owner, record it canonically, then recheck this exact Run.","correctDecisionContent":"correct only permitted current decision content through its existing owner","noIncompleteContentApproval":"request approval before required decision content is concrete","currentOperationRecovery":"Preserve the original bytes; inspect the original current operation and its supported recovery owner.","currentRunRecordEvidence":"Record actual evidence through the current Run evidence owner.","currentRunSelectNoConversion":"Select a valid current Run; unsupported control is never converted automatically.","currentRunCreateWithUuid":"create a current Run with an operation UUID","currentUrPersistBeforeApproval":"Create or select the current Run, then persist its UR revision before requesting approval."},"scopeClassification":{"title":"AGDF scope classification","field":"Field","value":"Value","classification":"Classification","mode":{"quick_task":"Quick Task"},"boundary":{"inside":"Trivial change boundary satisfied","outside":"Outside trivial change boundary"},"grounds":"UR trigger evaluation","allowed":"Currently allowed","forbidden":"Remains forbidden","escalation":"Escalation triggers","challenge":"Challenge path"},"taskTargetResolution":{"title":"AGDF task target","field":"Field","value":"Value","state":"Resolution","resolved":"Resolved","unresolved":"Clarification required","primaryTarget":"Primary target","governanceTarget":"Governance target","evidenceSources":"Evidence sources","workingDirectory":"Working directory","targetChanged":"Target changed","yes":"yes","none":"none","reason":"Reason","allowedValues":"Allowed values","nextAction":"Next action","examplesLabel":"Examples","reasonCodes":{"explicit_target":"Explicit current-turn target","continued_target":"Confirmed target continued","multiple_plausible_targets":"Multiple plausible work targets","target_content_mismatch":"Requested change mismatches target","target_unavailable":"Named target is unavailable","no_reliable_target":"No reliable work target","target_source_invalid":"Invalid target source","working_directory_invalid":"Invalid working directory","continued_target_changed":"Continued target replaced","target_path_relative":"Relative target path","target_not_in_repository":"No verified repository","current_repository_root_required":"Repository root required","current_repository_context_mismatch":"Repository context mismatch"},"nextActions":{"multiple_plausible_targets":"Choose one exact target by full path, Git URL or existing run ID.","target_content_mismatch":"Name the intended target by full path, Git URL or existing run ID.","target_unavailable":"Give a corrected full path, Git URL or existing run ID.","no_reliable_target":"Name one exact target by full path, Git URL or existing run ID.","target_source_invalid":"Use a supported target_source and provide a full path, Git URL or existing run ID.","examples":"Use a real value, e.g. `/Users/alex/work/project`, `https://github.com/org/project`, or `run-project-20260928`.","working_directory_invalid":"Provide an accessible absolute working directory.","continued_target_changed":"Classify the replacement as explicit_target.","target_path_relative":"Provide the absolute path of the requested target.","target_not_in_repository":"Provide a target inside the Git repository to inspect.","current_repository_root_required":"Provide the verified repository root for current_repository.","current_repository_context_mismatch":"Use current_repository only with a working directory inside that repository."}},"internalStateLabels":{"verifiedChange":"Compact change under review","verifiedChangeEscalated":"Escalated to structured delivery","contextGraphMaintained":"Project memory maintained","contextGraphOpenGap":"Graph gap open","multiScopeBlocked":"Ambiguous scope, clarification needed"},"qualityReadiness":{"title":"Quality Readiness","rows":{"plan_coverage":"Plan coverage","solution_integrity":"Solution integrity","code_quality":"Code quality","qa_decision":"QA decision"},"reason":"Reason","reference":"Evidence report","nextAction":"Next action","decisionOwner":"Decision owner","decisionOwnerValue":"QA Gate","unknown":"evidence missing","fallbackReasons":{"plan_coverage":"Plan coverage requires revision before QA can pass.","solution_integrity":"Solution integrity requires revision before QA can pass.","code_quality":"Code quality findings require revision before QA can pass.","qa_decision":"QA evidence requires revision before the gate can pass."}},"gateTitles":{"UR":"User requirements","PRD":"Product requirements","SD":"Solution design","TP":"Task and test plan","QA":"Quality assurance","UAT":"User acceptance","Brownfield Review":"Brownfield review","Mode/Slice Decision":"Delivery scope decision","Brownfield Analysis":"Implementation preparation","CD+Tests":"Implementation and tests","CR":"Code review","OR":"Delivery report","Verified Change":"Verified change","Quick Task":"Quick task","Compact Delivery":"Compact Delivery","Block":"Block"},"gateActionTitles":{"UR":"Review and decide on user requirements","PRD":"Review and decide on product requirements","SD":"Review and decide on solution design","TP":"Review and decide on task and test plan","QA":"Review and decide on quality assurance","UAT":"Review and decide on user acceptance"},"gateRequiredDecisions":{"UR":"User Requirements approval","PRD":"Product Requirements approval","SD":"Solution Design approval","TP":"Task and Test Plan approval","QA":"Quality Assurance approval","UAT":"User Acceptance decision"},"interaction":{"ready":"Ready for your decision","approveHeading":"Approve now","nextHeading":"Next","decisionInstruction":"Review the linked artefact; choose an option below.","decisionPrompt":"Choose approve, request revision or decline for {gate} in run {run_id}.","exactTextRequest":"To approve, reply exactly with `{approval}`; otherwise request revision or decline.","decisionFollows":"will be the next user decision","presentationFailure":"Approval cards could not be rendered safely.","statusPresentationFailure":"Status card could not render safely.","nonReadyDecision":"No decision requested: {reason}.","approveDescription":"Approve this gate with the exact authorization value.","reviseLabel":"Revise","reviseDescription":"Keep the gate open and request changes.","declineLabel":"Decline","declineDescription":"Reject this gate deliberately; authority remains unchanged.","cancelLabel":"Cancel","cancelDescription":"Close this decision without approving or declining it.","why":{"label":"Why?","fulfilledPrefix":"Fulfilled:","protectsPrefix":"Protects against:"}},"skillDispatch":{"invalidInputDescription":"Invalid dispatcher input for {field}. Correct it and retry once.","allowedValuesDescription":"Invalid value for {field}. Allowed: {allowed_values}. Correct it and retry once.","recoveries":{"target_evaluation_failed":"Repair task-target evaluation and retry once.","target_presentation_failed":"Repair task-target presentation and retry once.","control_evaluation_failed":"Repair gate evaluation and retry once.","control_presentation_failed":"Repair gate presentation and retry once.","internal_failure":"Repair the dispatcher and retry once.","runtime_contracts_unavailable":"Repair or reinstall the AGDF plugin: packaged runtime contracts could not be loaded. Then retry once.","runtime_evidence_invalid":"Repair the runtime evidence provider and retry once.","output_too_large":"Repair the dispatcher output bound and retry once.","intake_run_collision":"The run id already exists. Bind an explicit continuation or choose an unused id for the new scope.","intake_scaffold_required":"Inspect and restore the canonical control scaffold before creating the run.","intake_run_id_invalid":"A new run id must be run-<uuid>. Over MCP create the run with agdf_run run.create, then redispatch with intake_mode resume.","run_assignment_inventory_invalid":"Run inventory is incomplete or invalid. Resolve the listed control findings and retry intake; this failure does not establish a new scope.","prd_authoring_inputs_invalid":"PRD authoring blocked: check approved UR, Brownfield source, required ready UX input and contained PRD path. Repair inputs with their owner, then retry.","sd_authoring_inputs_invalid":"SD authoring blocked: check approved PRD, Brownfield/ready analysis and contained SD path. Repair inputs with their owner, then retry.","tp_authoring_inputs_invalid":"TP authoring blocked: check approved PRD/SD, Brownfield/ready analysis and contained TP path. Repair inputs with their owner, then retry.","AGDF_ARTEFACT_TEMPLATE_UNSUPPORTED":"Authoring blocked: unsupported canonical template. Repair the authoring owner and retry once.","AGDF_ARTEFACT_TEMPLATE_ROOT_UNAVAILABLE":"Authoring blocked: trusted plugin template root missing. Reinstall the matched AGDF plugin and retry once.","AGDF_ARTEFACT_TEMPLATE_UNAVAILABLE":"Authoring blocked: required plugin template missing. Reinstall the matched AGDF plugin and retry once.","AGDF_ARTEFACT_TEMPLATE_UNSAFE":"Authoring blocked: unsafe plugin template path. Repair or reinstall the matched plugin; no fallback."},"sourceInput":{"source":"Source","expected":"Expected field/value","observed":"Observed (original wording)","next":"Next action","prepare":"The UX owner may prepare or correct this unapproved analysis, validate it and record it canonically before fresh evaluation.","stop":"The source owner must resolve this condition before dependent work.","conditions":{"unsafe_destination":"The output path is unsafe.","source_unavailable":"A required source is unavailable.","unsafe_ux_source":"The UX source belongs to another path or is unsafe.","ux_source_missing":"The required UX analysis is missing.","ux_decision_malformed":"The UX readiness field is absent or ambiguous.","ux_not_ready":"The UX analysis is not ready.","ux_source_unrecorded":"The ready UX analysis is not canonically recorded."}}},"artefacts":{"notYetCreated":"not yet created"},"primary":{"readOnlyOrientationDescription":"Read-only check — no new AGDF run and no approval required.","lifecycleResult":{"title":"AGDF lifecycle result","statusTitle":"AGDF status","result":"Result","surface":"Surface","scope":"Installation scope","version":"AGDF version","verification":"Verification","restart":"Restart required","installation":"Installation","repository":"Repository","delivery":"Delivery","next":"Next action","yes":"yes","no":"no","unknown":"unknown"},"status":{"open":"open","blocked":"blocked","pass":"passed","warn":"attention needed","revise":"revision needed","in_progress":"in progress","closed":"closed"},"none":"none","blocked":"current gate prerequisites","quality":"Keep the presentation contract, evidence and gate authority aligned.","lifecycle":{"active":"in progress","completed_closeout_pending":"completed — delivery closeout pending","completed":"completed","blocked":"blocked","unknown":"status not available"},"actions":{"UR":"Clarify and approve the user requirements.","Brownfield Review":"Review existing owners and choose the smallest safe delivery path.","Mode/Slice Decision":"Decide the proportionate delivery scope from repository evidence.","PRD":"Define and approve the product behavior.","SD":"Define and approve the solution design.","TP":"Define and approve the task and test plan.","Brownfield Analysis":"Verify owners, reuse and regression coverage before implementation.","CD+Tests":"Implement the approved plan and collect test evidence.","CR":"Review the implementation and resolve blocking findings.","QA":"Evaluate quality evidence and make the QA decision.","UAT":"Make the deliberate user-acceptance decision.","OR":"Prepare the auditable delivery report."},"afterApproval":{"UR":"Review existing owners and choose the proportionate delivery path; implementation remains blocked.","PRD":"Draft the solution design; implementation remains blocked.","SD":"Draft the task and test plan; implementation remains blocked.","TP":"Run pre-implementation Brownfield Analysis; implementation starts only if it passes.","QA":"Prepare the user-acceptance decision; release remains blocked.","UAT":"Prepare the delivery report; version-control and release actions still require explicit instruction."},"narration":{"gateSatisfied":"{gate} approved","noAction":"No user action required now","gates":{"UR":{"agentNext":"Agent runs Brownfield Review next"},"PRD":{"agentNext":"After your PRD approval, the agent drafts the Solution Design","userAction":"Once the draft is ready, you will review and decide on the Solution Design"},"SD":{"agentNext":"Agent drafts the Task and Test Plan next"},"TP":{"agentNext":"Agent runs pre-implementation Brownfield Analysis next"},"QA":{"agentNext":"Agent prepares the user-acceptance decision","userAction":"user acceptance decision next"},"UAT":{"agentNext":"Agent prepares the delivery report"}}}},"gateRationale":{"UR":"UR clarifies what you want, why and for whom — before anything gets built that nobody needed.","PRD":"PRD defines product behavior before the solution design locks it in.","SD":"Solution design fixes ownership, architecture and dependencies — before code makes them permanent.","TP":"Task plan makes acceptance criteria and tests binding, so QA can measure later.","QA":"QA evaluates real evidence before a release relies on assumptions.","UAT":"UAT requires deliberate acceptance before the run counts as delivered.","Brownfield Review":"Checks whether existing systems, owners and conventions are affected, so nothing breaks or duplicates.","Mode/Slice Decision":"Decides the proportionate delivery scope, so the process fits the change — not the other way around.","Brownfield Analysis":"Verifies reuse paths, owners and regression risk before code exists.","CD+Tests":"Implementation and tests produce evidence — not just code.","CR":"Code review is mandatory before QA decides.","OR":"The delivery report makes the run auditable — not just claimed."},"mcpLifecycle":{"title":"AGDF MCP lifecycle","labels":{"operation":"Operation","result":"Result","capability":"Capability","surface":"Surface","scope":"Scope","scopeEffect":"Scope effect","target":"Target","authorizes":"Authorizes","runtime":"Runtime","registration":"Registration","discovery":"Discovery","permissionEffect":"Process access","diagnostics":"Diagnostics","nextAction":"Next action","fallback":"Compatible path"},"capabilities":{"supported":"supported","manual_compatible":"compatible path available","unavailable":"host unavailable","unsupported":"host version unsupported","unverified":"not directly qualified"},"registrations":{"absent":"absent","matched":"matched","foreign":"foreign entry","owned_mismatch":"owned entry differs","precedence_conflict":"higher-priority conflict","invalid":"invalid configuration"},"discoveries":{"not_checked":"not checked","pending_restart":"restart pending","discovered":"discovered","not_discovered":"not discovered","unavailable":"unavailable"},"results":{"not_configured":"not configured","configured_pending_restart":"configured; restart pending","configured_unverified":"configured; discovery unverified","discovered_ready":"discovered and ready","unchanged":"unchanged","disabled":"disabled","degraded":"degraded","failed":"failed"},"scopeEffects":{"project":"selected project only","user":"current user across projects"},"permissionEffects":{"inherited_host_user":"The MCP process inherits the host user permissions."},"diagnostics":{"none":"none","registration_inspection_failed":"The selected registration could not be inspected.","rollback_incomplete":"Rollback did not restore every applied lifecycle phase.","agdf_mcp_registration_foreign":"The selected registration is not owned by AGDF.","agdf_mcp_registration_precedence_conflict":"A higher-priority registration conflicts with the selected source.","agdf_mcp_registration_verification_failed":"Registration read-back did not match the intended state.","agdf_mcp_disable_verification_failed":"Registration removal could not be verified.","agdf_mcp_package_acquisition_failed":"The exact MCP server package could not be acquired.","agdf_mcp_runtime_unowned":"The runtime location contains content that AGDF cannot verify as owned.","agdf_mcp_server_manifest_invalid":"The MCP server package manifest is invalid.","agdf_mcp_dispatcher_manifest_invalid":"The dispatcher package manifest is invalid.","agdf_mcp_sdk_manifest_invalid":"The MCP SDK package manifest is invalid.","agdf_mcp_server_version_mismatch":"The acquired MCP runtime does not match the required versions.","agdf_mcp_server_entrypoint_invalid":"The MCP server entrypoint is missing or invalid.","agdf_mcp_server_verification_failed":"The installed MCP runtime failed exact verification.","agdf_mcp_claude_update_rollback_failed":"Claude Code could not restore the previous registration during update.","enable_failed":"MCP enablement failed.","disable_failed":"MCP disablement failed.","claude_plugin_managed":"Claude Code starts the AGDF MCP server from the installed AGDF plugin; no separate registration is used.","codex_plugin_managed":"Codex starts the AGDF MCP server from the installed AGDF plugin; no separate registration is used.","runtime_executables_retained":"The registration was removed. Executable files are retained while their use is active, historical or unconfirmed.","agdf_mcp_codex_source_changed":"Configuration changed after preview; nothing was overwritten.","agdf_mcp_codex_rollback_conflict":"A foreign change prevents safe rollback.","agdf_mcp_runtime_reference_changed":"Runtime references changed concurrently; resolve the conflict before retrying.","cockpit_transition_pending":"The Cockpit registration transition is written; refresh the host and verify discovery, rendering and interaction before completion.","cockpit_transition_failed":"Cockpit transition failed. Inspect the named evidence, ownership or concurrent-change conflict before retrying.","cockpit_legacy_retained":"The existing Cockpit ID is retained until ownership, consumer transition and deliberate session refresh are proven. No duplicate registration."},"actions":{"use_node_22":"Use Node.js 22 or later and retry.","install_host":"Install a supported host and retry.","resolve_registration":"Resolve the selected registration and retry.","enable_scope":"Run MCP enable explicitly for this scope.","restart_host":"Deliberately refresh the affected connection through the supported host action and verify discovery and runtime in the new session.","version_matched_cli_dispatch":"Use the version-matched AGDF CLI skill-dispatch path.","resolve_failure":"Resolve the reported lifecycle failure and retry.","resolve_precedence":"Resolve the higher-priority registration and retry.","disable_effective_scope":"Disable the remaining effective MCP registration explicitly in its scope.","inspect_effective_scope":"Inspect the remaining effective user registration with --scope user.","retry":"Retry the same explicit lifecycle action.","none":"No further lifecycle action is required.","use_claude_plugin_mcp":"Install or update the AGDF plugin for Claude Code; its MCP server starts with the plugin.","use_codex_plugin_mcp":"Install or update the AGDF plugin for Codex; its MCP server starts with the plugin."},"setup":{"title":"AGDF host setup","labels":{"source":"Source","role":"Role","owner":"Owner","configured":"Configuration","started":"Start","discovered":"Discovery","app_rendered":"App rendered","app_interacted":"Interaction","runtime":"Runtime"},"roles":{"product":"AGDF","cockpit":"AGDF Cockpit","diagnostic":"Diagnostic/test","legacy_or_conflict":"Legacy/conflict"},"states":{"declared":"declared","disabled":"disabled","unknown":"unknown","unobserved":"unobserved","unavailable":"unavailable"},"noticeDescription":"Declarations do not prove host, session or App state. Verify effective permissions and refreshed sessions directly; retain shared App data."}},"repositoryMaintenance":{"title":"Repository control inspection","unavailable":"Repository inspection unavailable","next":"Direct runtime command:","outcomes":{"not_started":"inspection only"}},"activeRunInventory":{"countDescription":"{count} active AGDF runs found.","noneDescription":"No active AGDF runs in this project.","absentDescription":"This project has no .agdf/control directory.","incompleteDescription":"The inventory is incomplete; the total number of active runs is unknown.","findingsDescription":"Inspection findings:"},"sourceRevision":{"title":"Source revision","preview":"Proposed only","reopened":"Revision applied","historical":"Historical evidence only","replayed":"Historical operation replay","recovered":"Recovery verified","recovery_required":"Recovery required","rejected":"Revision refused","not_found":"Operation not found","target":"Target","run":"Run","operation":"Operation","revision":"Current revision","original":"Original resulting revision","source":"Changed source","retained":"Retained approvals","superseded":"Superseded approvals","reason":"Reason","next":"Next action","none":"None","authority":"This result grants no implementation or gate approval.","reviewNext":"Review this proposal; apply its exact preview explicitly or cancel.","readNext":"Inspect the current bound run before taking its next permitted action.","refuseNext":"Inspect current facts and prepare a fresh reviewed proposal.","recoverNext":"Inspect the bound pending operation; recover it explicitly.","intent":"Intended change","binding":"Preview digest for explicit apply","sources":"Bound source contents","artefacts":"Artifacts requiring fresh recording and approval","evidence":"Steps requiring renewed evidence","work":"Retained work","retainedWork":"Code and tests remain; check fulfillment against the renewed TP.","analyses":"Analytical applicability","retain":"Retain","reassess":"Reassess"},"flowEvidence":{"title":"Evidence for this version","current":"Applicable current evidence","superseded":"Earlier evidence","applicability_unknown":"Applicability unconfirmed","currentDescription":"Only positively matched reports belong to the current source version. Earlier or unconfirmed evidence does not confirm current readiness.","emptyDescription":"No confirmed current association is available. This does not mean that all required evidence is fulfilled.","historyDescription":"Earlier evidence remains inspectable; it does not replace a current report.","unknownDescription":"The saved reference cannot be reliably assigned to this version. Its applicability remains unconfirmed.","unavailable":"Source unavailable","open":"Read registered source","next":"Next step according to the Core","human":"Your decision is required","agent":"The assistant continues","completed":"Approved scope completed","unconfirmedDescription":"Completion is unconfirmed. Follow the current Core result.","retainedDescription":"This is a retained observation. Reload before relying on its current applicability."},"decisionCard":{"title":"Review and decide","connecting":"Connecting to this presentation …","unavailable":"This exact presentation is unavailable. Use the current exact text presentation in chat.","approve":"Approve","request_change":"Request changes","reject":"Reject","openDocument":"Read presented document","back":"Return to decision","comment":"Comment","commentHelp":"A comment is required when requesting changes. Closing the view discards an unsent comment. Maximum 8 KiB.","pending":"Submitting decision …","uncertain":"The result is uncertain. Check the original operation before another submission.","checkOperation":"Check saved result","retryOriginal":"Retry original submission","confirmed":"Decision saved.","denied":"The decision was not saved.","notQualified":"This card lets you read the presented version. Approve it in Chat using the reply shown below.","sourceChanged":"The presented source or revision has changed. Obtain a current presentation before deciding.","expired":"This decision view has expired or closed.","comparison":"Changes since previous applicable version","comparisonUnavailable":"No verified previous applicable version is available for comparison.","machineComparison":"Comparison of document bytes with the verified archive; this is not a reviewed account of changes.","documentUnchanged":"The document bytes are unchanged; other decision sources may differ.","documentChanged":"The document bytes differ. Read the presented version and the archived version when assessing the change.","previousDocument":"Read archived previous document","sources":"Details and evidence","run":"Run","gate":"Decision step","revision":"Presented revision","consequence":"A decision applies only to this exact material. The Core confirms the permitted next step after saving.","permission":"Technical tool permission and this decision are separate. A host prompt may still appear.","docUnavailable":"The exact presented document is unavailable. No other version is substituted.","commentRequired":"Enter the requested changes before submitting.","commentTooLarge":"The comment exceeds 8 KiB.","documentTitle":"Presented document","notSaved":"No saved effect is confirmed. Reading and discussion do not decide.","unknownCurrent":"The saved effect is confirmed; the current state is unavailable.","sourceLanguage":"Source language is shown in the presentation.","alreadyDecided":"This material has already been decided. Follow the current Core result.","initialize":"Opening this view does not record a decision.","discussionHint":"Discuss questions and requested changes in Chat. Approve this version here or in Chat with Approval: {gate}.","nextStep":"Next step","nextInformation":"Next step: {step}.","nextChat":"Continue in Chat to start this step.","nextWaiting":"Approval saved. Continuation is waiting for the current AI response to finish; no further click is needed.","continuationMessage":"{gate} approved. Continue with {step}.","nextRequested":"Continuation requested in Chat.","closeUnavailable":"Approval saved and continuation requested. This view could not be fully closed; you can close it.","nextUnavailable":"Continuation could not be confirmed. Check the current Run in Chat before continuing.","chatApprovalHint":"Discuss questions and requested changes in Chat. Approve this version in Chat with Approval: {gate}.","approveWithDeviations":"Approve with deviations","confirmedWithDeviations":"Approved with deviations.","deviationAcceptanceIntro":"Approve QA with deviations","openPreview":"View preview","previewTitle":"Illustrative preview","previewUnavailable":"Preview unavailable. Retry this version or ask for checked standalone access.","previewChanged":"The review material changed. Request a new presentation before deciding.","retryPreview":"Retry preview","previewIllustrative":"Example actions do not approve PRD or send messages.","previewTask":"Review task","previewScenarios":"Scenarios","previewCriteria":"Related criteria","previewQuestions":"Open questions","previewUnsupported":"This host could not display the isolated preview. Use supported access to the same checked version.","previewLoading":"Opening the isolated preview…"},"mcpErrors":{"failure":"AGDF tool failed:","effects":{"not_dispatched":"This attempt did not dispatch an operation.","owner_reported":"The existing domain result remains authoritative for state and effects.","unknown":"Effects are unconfirmed; do not assume rollback."},"actions":{"correct_input":"Correct the named input and retry only the eligible request.","confirm_target":"Supply the confirmed target_source and absolute primary_target; ask for a missing target choice.","refresh_binding":"Read the current state and refresh the binding or presentation; obtain a new approval where required.","obtain_authority":"Obtain the required permission, capability or deliberate human decision; do not bypass it.","inspect_operation":"Inspect operation-status with the original UUID and retain the exact payload before any eligible recovery.","retry_after_prerequisite":"Wait for the stated resource or execution prerequisite; retry only when eligible and effects are known.","repair_runtime":"Use the supported exact-version runtime repair, then recheck before retrying.","stop":"Stop and inspect supported diagnostics. Do not invent a repair, target or replacement operation."},"causes":{"operation_source_invalid":"Check the referenced path, UTF-8 content and current canonical digest. Re-read the source reference; do not invent a path or hash.","presentation_missing":"Read the current binding and prepare its presentation. Obtain the required bound human reply before approval; do not substitute an old presentation.","closeout_not_ready":"Read the current gate and missing prerequisites. Complete required evidence and human decisions before closeout; this attempt cannot complete the Run.","control_layout_unsupported":"Preserve the unsupported data. Select a fresh current target or supported current Run; do not convert, reset or reseal the old store.","run_version_unsupported":"Preserve the unsupported data. Select a fresh current target or supported current Run; do not convert, reset or reseal the old store.","run_missing":"Inspect named source/original UUID. Earlier effect is unconfirmed. Preserve bytes; do not recreate deleted state, wait blindly or replace identity.","document_missing":"Inspect named source/original UUID. Earlier effect is unconfirmed. Preserve bytes; do not recreate deleted state, wait blindly or replace identity.","run_path_invalid":"Inspect named source/original UUID. Earlier effect is unconfirmed. Preserve bytes; do not recreate deleted state, wait blindly or replace identity."}},"doctorEmptyInventory":{"policyDescription":"No active Runs. Status follows allow_no_active_runs={policy}; zero findings. This is delivery policy, not a project-health verdict."}},"de":{"runResolution":{"title":"Liefer-Run auswählen","latest":"Zuletzt aktualisierter aktiver Run","gate":"Aktuelles Gate","updated":"Zuletzt aktualisiert","objective":"Ziel","otherRuns":"Weitere aktive Runs","choosePrompt":"Antworte mit der Run-ID, um fortzufahren, oder beschreibe eine andere Aktion. Die Auswahl bindet einen Run, sie genehmigt kein Gate.","noneTitle":"Kein aktiver Liefer-Run","nonePrompt":"Möchtest du einen neuen Run starten oder etwas anderes tun? Es wurde kein Run angelegt."},"installSetup":{"title":"AGDF-Installation einrichten","choicePrompt":"Lokalen MCP-Server einrichten? (1-3): ","invalidChoice":"Wählen Sie genau 1, 2 oder 3.","emptyChoice":"Keine Auswahl getroffen. Wählen Sie 1, 2 oder 3.","blockedChoice":"Vollständige Einrichtung nicht verfügbar: {reason}","scopeTitle":"MCP-Registrierungsbereich auswählen","scopeChoicePrompt":"MCP-Bereich wählen (1-3): ","invalidScopeChoice":"Wählen Sie genau 1, 2 oder 3.","emptyScopeChoice":"Kein Bereich gewählt. 1, 2 oder 3.","blockedScopeChoice":"Bereich nicht verfügbar: {reason}","labels":{"surface":"Host","version":"AGDF-Version","plugin":"Plugin-Zustand","mcp":"MCP-Zustand","target":"MCP-Ziel","targetSource":"Zielquelle","invocationContext":"Aufruf- und Prioritätskontext","invocationDirectorySource":"Quelle des Aufrufverzeichnisses","scope":"MCP-Bereich","selectedStatus":"Ausgewählte Registrierung","effectiveSource":"Wirksame Konfigurationsquelle","registrationPath":"Native Konfigurationsquelle","pluginConfiguration":"Plugin-Konfiguration","localExecution":"Lokale Ausführung","packageAcquisition":"Paketbezug","removal":"Sichere Entfernung","authorizes":"Erteilt Governance-Befugnis","result":"Ergebnis","setupRequest":"Setup-Auswahl","effectiveState":"Wirksamer Zustand","runtimeChecks":"Automatische Prüfungen","discovery":"Host-Erkennung","restart":"Neustart erforderlich","failure":"Fehler","nextAction":"Nächste Aktion"},"choices":{"full":"Vollständig einrichten","fullDescription":"Plugin installieren, den lokalen AGDF-MCP-Server bereitstellen und für das gezeigte Ziel und den Bereich registrieren.","plugin_only":"Nur Plugin","pluginOnlyDescription":"Plugin installieren und alle MCP-Registrierungen unverändert lassen.","cancel":"Abbrechen","cancelDescription":"Vor Installation oder MCP-Änderungen stoppen.","recommended":"empfohlen"},"scopeChoices":{"project":"Für dieses Projekt einrichten","projectDescription":"AGDF für das gezeigte Projekt registrieren. Diese Projektkonfiguration hat native Priorität vor einem Benutzerstandard.","user":"Benutzerweit einrichten","userDescription":"AGDF einmal als Benutzerstandard des Hosts registrieren. Eine Projektkonfiguration kann ihn übersteuern.","back":"Zurück","backDescription":"Ohne Änderungen zur Setup-Auswahl zurückkehren.","existing":"derzeit konfiguriert"},"values":{"yes":"ja","no":"nein","none":"keine","required":"erforderlich","not_required":"nicht erforderlich","expectedVersion":"erwartet {version}"},"targetSources":{"explicit_dir":"ausdrückliches --dir","interactive_invocation_cwd_proposal":"Vorschlag aus npm-Aufrufverzeichnis","interactive_invocation_cwd_selection":"gewähltes npm-Aufrufverzeichnis","none":"keine"},"invocationDirectorySources":{"explicit_dir":"ausdrückliches --dir","npm_init_cwd":"ursprüngliches npm-Aufrufverzeichnis","process_cwd":"aktuelles Prozessverzeichnis","none":"keine"},"pluginStates":{"observed":"beobachtet","healthy":"gesund","degraded":"beeinträchtigt","not_installed":"nicht installiert","unavailable":"nicht verfügbar","unknown":"unbekannt","not_run":"nicht ausgeführt"},"mcpStates":{"not_requested":"nicht angefordert","not_checked":"nicht geprüft","not_configured":"nicht konfiguriert","configured_pending_restart":"konfiguriert, Neustart ausstehend","configured_unverified":"konfiguriert, Erkennung ungeprüft","discovered_ready":"erkannt und bereit","unchanged":"unverändert","disabled":"deaktiviert","degraded":"beeinträchtigt","failed":"fehlgeschlagen","plugin_managed":"im Plugin enthalten"},"scopes":{"project":"Projekt","user":"Benutzerkonto"},"registrationStates":{"absent":"nicht vorhanden","matched":"passend","foreign":"fremd","owned_mismatch":"AGDF-eigene Versionsabweichung","precedence_conflict":"Konflikt mit höherer Priorität","invalid":"ungültig"},"effectiveSources":{"none":"keine","unknown":"unbekannt","user":"Benutzerkonfiguration","project":"Projektkonfiguration","project_override":"Projektüberschreibung","local":"lokale Projektkonfiguration","shared_project":"gemeinsame Projektkonfiguration","inline":"Inline-Konfiguration","custom":"benutzerdefinierte Konfiguration"},"versionTransitions":{"installed":"installiert","updated":"aktualisiert","unchanged":"unverändert","unknown":"Übergang unbekannt"},"runtimeCheckStates":{"not_run":"nicht ausgeführt","not_checked":"nicht geprüft","cancelled":"abgebrochen","manual":"manuell","decision_required":"Host-Berechtigung ausstehend","enabled":"aktiviert","renewal_required":"erneute Prüfung erforderlich","degraded":"beeinträchtigt","failed":"fehlgeschlagen","unavailable":"nicht verfügbar","receipt_missing":"Auswahlnachweis fehlt","receipt_unowned":"Auswahlnachweis gehört nicht AGDF","receipt_invalid":"Auswahlnachweis ist ungültig","unknown":"unbekannt"},"setupRequests":{"plugin_only":"nur Plugin","full":"vollständige Einrichtung","cancel":"abbrechen"},"results":{"success":"erfolgreich","partial":"teilweise erfolgreich","failed":"fehlgeschlagen","cancelled":"abgebrochen"},"effectiveStates":{"cancelled":"vor Änderungen abgebrochen","plugin_ready_mcp_absent":"Plugin bereit, MCP fehlt","plugin_ready_mcp_unchanged":"Plugin bereit, MCP unverändert","configured_pending_restart":"konfiguriert, Neustart ausstehend","configured_unverified":"konfiguriert, Erkennung ungeprüft","discovered_ready":"erkannt und bereit","partial":"teilweise abgeschlossen","degraded_or_foreign":"MCP beeinträchtigt oder fremd","failed":"fehlgeschlagen","plugin_ready_mcp_in_plugin":"Plugin bereit, MCP im Plugin enthalten","mcp_ready_hook_review_required":"MCP bereit – Hook-Bestätigung ausstehend","mcp_ready_hook_verification_pending":"MCP bereit – Hook-Nachweis ausstehend","control_repair_required":"Reparatur erforderlich","control_unsupported":"Kontrollformat nicht unterstützt"},"discoveryStates":{"not_checked":"nicht geprüft","pending_restart":"Neustart ausstehend","discovered":"erkannt"},"failurePhases":{"input_validation":"Eingabeprüfung","setup_preflight":"Setup-Vorprüfung","setup_selection":"Setup-Auswahl","runtime_check_permission":"Auswahl automatischer Prüfungen","plugin_operation":"Plugin-Operation","plugin_verification":"Plugin-Prüfung","mcp_preflight":"MCP-Vorprüfung","mcp_enable":"MCP-Aktivierung","mcp_disable":"MCP-Deaktivierung","plugin_disable":"Plugin-Deaktivierung","plugin_uninstall":"Plugin-Deinstallation","result_validation":"Ergebnisprüfung","presentation":"Darstellung"},"failureCodes":{"input_invalid":"ungültige Eingabe","setup_preflight_failed":"Setup-Vorprüfung fehlgeschlagen","setup_selection_blocked":"Setup-Auswahl gesperrt","runtime_check_permission_failed":"Prüfauswahl fehlgeschlagen","plugin_operation_failed":"Plugin-Operation fehlgeschlagen","plugin_verification_failed":"Plugin-Prüfung fehlgeschlagen","mcp_preflight_failed":"MCP-Vorprüfung fehlgeschlagen","mcp_enable_failed":"MCP-Aktivierung fehlgeschlagen","mcp_disable_failed":"MCP-Deaktivierung fehlgeschlagen","plugin_disable_failed":"Plugin-Deaktivierung fehlgeschlagen","plugin_uninstall_failed":"Plugin-Deinstallation fehlgeschlagen","result_invalid":"ungültiges Setup-Ergebnis","presentation_failed":"Darstellung fehlgeschlagen"},"actions":{"none":"Keine weitere Aktion erforderlich.","cancelled":"Keine Änderung wurde vorgenommen. Starten Sie das Setup bei Bedarf erneut.","restart_host":"Starten Sie den Host neu und öffnen Sie eine neue Sitzung.","verify_host_discovery":"Öffnen Sie eine neue Host-Sitzung und prüfen Sie die AGDF-MCP-Erkennung.","retry_plugin":"Beheben Sie den Plugin-Fehler und wiederholen Sie denselben Installationsbefehl mit --verbose.","retry_mcp":"Behalten Sie das Plugin, beheben Sie den MCP-Fehler und wiederholen Sie das vollständige Setup.","resolve_mcp_registration":"Klären Sie die kollidierende MCP-Registrierung vor dem vollständigen Setup.","review_runtime_checks":"Prüfen Sie den Zustand automatischer Prüfungen und wiederholen Sie das Setup.","review_codex_hook":"AGDF-Hook unter /hooks prüfen und bestätigen, danach neue Sitzung öffnen. CLI-MCP-Tests benötigen keinen Desktop-Neustart.","enable_codex_hook":"AGDF-Hook unter /hooks aktivieren und anschließend in einer neuen Sitzung prüfen.","verify_codex_hook":"Ausführung des bestätigten AGDF-Hooks in einer neuen Sitzung prüfen. Vertrauen allein ist kein Ausführungsnachweis.","inspect_codex_hook":"AGDF-Hook unter /hooks prüfen und runtime-checks status --surface codex erneut ausführen.","choose_plugin_only_or_cancel":"Wählen Sie nur Plugin oder Abbruch; das vollständige Setup ist gesperrt.","inspect_control":"Kontrollbestand ohne Änderungen prüfen. Nicht unterstützte Daten erhalten und ein frisches aktuelles Ziel verwenden; keine Migration oder Rücksetzung."},"blockReasons":{"none":"keiner","target_required":"ein absolutes MCP-Ziel ist erforderlich","mcp_foreign":"die MCP-Registrierung ist fremd","mcp_precedence_conflict":"eine höherrangige Registrierung kollidiert","mcp_invalid":"die MCP-Registrierung ist ungültig","mcp_preflight_failed":"die MCP-Vorprüfung ist fehlgeschlagen"},"restartReasons":{"plugin_reload":"Plugin neu laden","mcp_discovery":"MCP-Erkennung"},"runtimeConsent":{"title":"AGDF {version} für {host}","appliesTo":"Gilt für diese {host}-Installation Ihres Benutzerkontos.","question":"Soll AGDF Ihren Projektstatus bei Sitzungsbeginn automatisch prüfen?","previousEnabled":"Ihre bisherige Auswahl: automatische Prüfungen angefordert","previousManual":"Ihre bisherige Auswahl: manuelle Prüfungen","permissionAfterInstall":"{host}-Berechtigung: wird nach der Installation geprüft","safeTitle":"Sicheres Verhalten","reads":" Liest nur AGDF-Runtime-Informationen und .agdf/control in diesem Projekt","noProjectChanges":" Ändert keine Projektdateien und verwendet kein Netzwerk","noGovernanceAuthority":" Erteilt niemals eine AGDF-Freigabe","savesChoice":"AGDF speichert Ihre Auswahl. {host} kontrolliert weiterhin die Berechtigung.","chooseAgain":"Sie wählen bei jeder Installation, Aktualisierung und Änderung der Prüfung erneut.","turnOff":"Jederzeit deaktivieren: {revocation}","chooseTitle":"Auswählen","enableChoice":" [1] Ja, automatisch prüfen","manualChoice":" [2] Keine automatischen Prüfungen","manualDescription":" AGDF funktioniert weiterhin. Prüfungen starten Sie bei Bedarf.","detailsChoice":" [D] Technische Details anzeigen","cancelChoice":" [Esc] Installation abbrechen","progress":"AGDF {version} wird für {host} eingerichtet...","loadedSessions":"Hinweis: {count} laufende Claude-Code-Sitzung(en) nutzen noch das alte AGDF. Für {version} neu starten; scheitert das Update, vorher schließen.","linePrompt":"Auswahl (1/2/D/abbrechen): ","lineInvalid":"Wählen Sie 1, 2 oder D oder geben Sie abbrechen ein.","keyPrompt":"Auswahl: ","keyInvalid":"Drücken Sie 1, 2, D oder Esc.","detailsEcho":"Details","decisionEcho":{"enable":"aktivieren","manual":"manuell","cancel":"abbrechen"},"detailsTitle":"Technische Details","detailsInstallationScope":"globale Installation im Benutzerkonto","detailsRuns":"eine lokale Prüfung ohne Argumente bei Sitzungsbeginn","detailsReads":"AGDF-Runtime-Identität und .agdf/control im aktuellen Repository","detailsWrites":"einen AGDF-eigenen Auswahlnachweis","detailsRenewal":"Änderungen an Befehl, Runtime, Quelle, Bereich oder Adapter erfordern eine neue Zustimmung","detailsLabels":{"appliesTo":"Gilt für","runs":"Ausführung","reads":"Liest","saves":"Speichert","permissionControl":"Berechtigungskontrolle","command":"Befehl","renewal":"Neue Zustimmung"},"permissionOwners":{"codex":"native Hook-Vertrauensprüfung von Codex","claude":"Plugin-Aktivierung in Claude Code","copilot":"Hook-Prüfung des GitHub-Copilot-Plugins","opencode":"OpenCode-Plugin und ausdrückliche Berechtigungskonfiguration"}},"controlRepair":{"title":"Kontrollbestand reparieren","resultDescription":"Plugin erfolgreich installiert; Kontrollbestand benötigt Reparatur.","searchDescription":"Originale in Recovery-Journalen und Git suchen. Erst nach Auswahl einer konkreten Reparatur werden Daten geändert.","availableDescription":"Für {count} Runs liegt ein belegbarer Reparaturvorschlag vor.","repairedDescription":"Reparierte Runs: {count}","backupDescription":"Vor der Reparatur werden der aktuelle Zustand und die ausgewählten Originale in einem privaten Reparaturjournal gesichert.","resetDescription":"Bei unversiegelten Runs setzt die Wiederherstellung fehlender Artefakte unbelegte Freigaben zurück. Diese Runs beginnen wieder bei UR.","manualDescription":"Originaldaten oder Korrektur erforderlich","startChoice":"Reparaturassistent starten","skipChoice":"Später","detailsChoice":"Details anzeigen","applyChoice":"Vorgeschlagene Reparaturen anwenden","prompt":"Auswahl (leer = später): ","invalidChoice":"Bitte 1, 2 oder 3 wählen.","kinds":{"manual":"Originaldaten oder Korrektur nötig","self_reference":"belegte Korrektur des Selbstbezugs","run_snapshot":"belegter Originalzustand des Runs","missing_artefacts":"Originalartefakte in Git gefunden"},"reasons":{"AGDF_REPAIR_ORIGINAL_REQUIRED":"Fehlende Originaldatei wiederherstellen","AGDF_REPAIR_REFERENCE_REQUIRED":"Belegte Dateiverweise benötigt","AGDF_RECOVERY_ARTEFACT_MISSING":"Fehlende Originaldatei wiederherstellen"}},"controlCompatibility":{"title":"Kompatibilität des Kontrollbestands","target":"Repository","state":"Kontrollbestand","format":"Unterstütztes Run-Format","historicalCount":"Historische Runs erhalten: {count}","detailsDescription":"Details oder control-maintenance --dir <absolutes-repository> --details zeigt Runs und Diagnosen.","states":{"not_checked":"nicht geprüft","absent":"kein vorhandener Kontrollbestand","current":"kompatibel","repair_required":"Reparatur erforderlich","historical":"historischer Bestand erhalten","unsupported":"nicht unterstützt"}}},"statusCard":{"title":"AGDF-Statuskarte","status":"Status","field":"Statusfeld","value":"Wert","run":"Ausgewählter Run","humanTitle":"Run-Titel","gate":"Aktuelles Gate","requiredDecision":"Erforderliche Entscheidung","blocked":"Blockiert durch","blockerDetails":"Betroffener Punkt","sourceWording":"Originalwortlaut","recovery":"Behebung","prdReadinessItems":"PRD-Bereitschaftspunkte","traceabilityGaps":"Fehlende Zuordnungen","missing":"Fehlende Freigabe","maintenance":"Nachweispflege","outcome":"Ergebnis nach Freigabe","internal":"Interner nächster Schritt","userGate":"Nächstes User-Gate","userAction":"Nutzeraktion erforderlich","nextGate":"Nächstes Gate nach Freigabe","allowedAfter":"Nach Freigabe erlaubt","skill":"Nächster Skill","step":"Nächster Schritt","quality":"Qualitätsausblick","userDecision":"Deine Entscheidung","agentAllowed":"Der Agent darf jetzt","waitingOn":"Wartet auf","userTurn":"Du bist dran","userInputNeeded":"Bitte nenne die fehlenden Angaben.","agentWorking":"Ich arbeite weiter","noReply":"Keine Antwort nötig","summaryRecovery":"Freigabezusammenfassung korrigieren","summaryReason":"Prüfgrund","summaryExpected":"Erwartetes Feld","sourceLanguage":"Quellsprache","languageEnglish":"Englisch","languageGerman":"Deutsch","originalLanguageExcerpts":"Zusammenfassung in gewählter Sprache","lifecycle":"Lieferstatus","allowed":"Jetzt erlaubt","forbidden":"Aktuell verboten","artefacts":"Artefakte","breadcrumb":"Pfad","breadcrumbFulfilled":"✓","breadcrumbCurrent":"●","breadcrumbOpen":"○","breadcrumbSeparator":" · ","sdReadinessItems":"SD-Bereitschaftspunkte","agentNext":"Nächster erlaubter Agentenschritt","qaFollowUp":"QA-Nacharbeit"},"controlSetup":{"title":"AGDF-Kontrollstatus einrichten","field":"Einrichtungsfeld","value":"Wert","status":"Status","target":"Ziel","durableScope":"Dauerhafter Umfang","plannedEffect":"Geplante Wirkung","excludedAuthority":"Nicht autorisiert","nextAction":"Nächste Aktion","replyOptions":"Antworte genau mit","required":"Kontrollstatus muss eingerichtet werden","scopeValue":".agdf/control im ausgewählten Repository","effectValue":"Ein eigenes kanonisches Kontrollgerüst mit leerem Run-Speicher anlegen.","excludedValue":"Diese Karte erzeugt weder automatisch Run noch UR und erteilt keine Gate-Freigabe.","actionValue":"Ein aktiver Delivery-Intake persistiert danach Run und UR ohne zweite Einrichtungsfrage; eigenständiges Init legt nur das Kontrollgerüst an.","replyOptionsValue":"„Einrichtung autorisieren“, um das gezeigte Gerüst anzulegen, oder „Abbrechen“, um ohne Änderungen zu stoppen."},"operationalValues":{"recoverOriginalLayoutMigration":"Den Status von planned_layout.apply/original-UUID prüfen und ausschließlich den ursprünglich bestätigten Vorgang wiederherstellen.","restoreContainedConfiguration":"Eine unterstützte Konfiguration innerhalb des gebundenen Control-Verzeichnisses wiederherstellen.","preserveUnsupportedHistory":"Einen kompatiblen Reader für das gespeicherte Format verwenden; ursprüngliche Historie und Herkunftsnachweise unverändert erhalten.","inspectOriginalHistory":"Ursprüngliche Version und Integritätsnachweise prüfen; fremde Historie nicht automatisch umschreiben, migrieren oder entfernen.","inspectChangedApprovedSources":"veränderte freigegebene Quellen über die zuständige Revision oder Wiederherstellung prüfen","continueFromUnconfirmedApproval":"auf Grundlage einer nicht bestätigten alten Freigabe fortfahren","resolveChangedApprovedMaterial":"Die veränderten freigegebenen Inhalte über die zuständige Revision oder Wiederherstellung klären; daraus keine neue Freigabe ableiten.","reviseCurrentDecidedMaterial":"den aktuellen entschiedenen Stand über die zuständige Dokumenterstellung oder Fehlerbehebung überarbeiten","approveUnchangedDecidedMaterial":"bereits entschiedene unveränderte Inhalte erneut freigeben","invalidateApprovedUpstreamSources":"freigegebene vorgelagerte Quellen ohne unterstützte Revision ungültig machen","reviseDecidedMaterialStep":"Den entschiedenen Stand durch die zuständige Stelle überarbeiten, die geänderte Fassung erfassen und eine neue Vorlage mit bewusster Entscheidung einholen.","explicitVcsHandoff":"einen ausdrücklich angeforderten VCS-Abschluss vorbereiten","repeatCompletedRun":"abgeschlossene Run-Arbeit wiederholen","automaticVcsRelease":"VCS- oder Release-Aktionen automatisch ausführen","completedExplicitHandoff":"Run abgeschlossen; einen VCS-Abschluss nur auf ausdrückliche Anforderung vorbereiten.","endedRunForbidden":"einen beendeten Run fortsetzen oder wieder öffnen","endedSupersededNext":"Run als ersetzt beendet; für weitere Arbeit einen neuen Run starten.","endedAbandonedNext":"Run als aufgegeben beendet; für weitere Arbeit einen neuen Run starten.","inspectInconsistentCompletion":"den widersprüchlichen Abschluss prüfen und an den bestehenden Recovery-Verantwortlichen übergeben","repeatCompletedAutomatically":"abgeschlossene Arbeit automatisch wiederholen","claimCleanCompletion":"einen vollständig geprüften Abschluss behaupten","resolveInconsistentCompletion":"Die widersprüchlichen Abschlussvoraussetzungen des Runs klären, bevor ein vollständiger Abschluss bestätigt wird.","blockedPrdDecisionsOpen":"Erforderliche Produktentscheidungen sind noch offen","blockedSdTraceability":"Die Rückverfolgbarkeit im Solution Design ist unvollständig","blockedTpTraceability":"Die Rückverfolgbarkeit im Task Plan ist unvollständig","blockedControlMissing":"Die dauerhafte AGDF-Kontrolle fehlt","blockedRunMissing":"Ein kanonischer aktiver Run fehlt","blockedRelationshipMissing":"Eine erforderliche Artefaktbeziehung fehlt","blockedRelationshipEvidenceMissing":"Der Nachweis für eine erforderliche Artefaktbeziehung fehlt","blockedRelationshipConflict":"Erforderliche Artefaktbeziehungen sind widersprüchlich oder doppelt erfasst","relationshipCorrected":"Die fehlende Artefaktbeziehung wurde anhand des exakten versiegelten Prüfnachweises wiederhergestellt.","blockedEvidenceDeclared":"Ein erforderlicher Nachweis fehlt","blockedRiskDeclared":"Ein erfasstes Risiko muss geklärt werden","blockedUnknown":"Ein ungeklärter Kontrollbefund muss bearbeitet werden","completeControlStateFields":"die aktuellen Felder des Kontrollstatus vervollständigen","repairControlScaffold":"das AGDF-Kontrollgerüst reparieren","clarifyUserNeed":"den Nutzerbedarf klären","formulateAndPersistUr":"die Nutzeranforderungen formulieren und dauerhaft festhalten","draftOrRefinePrd":"PRD entwerfen oder überarbeiten","resolveListedPrdDecisions":"die aufgeführten PRD-Entscheidungen gemeinsam klären und eine neue Run-Revision festhalten","resolveOpenPrdDecisions":"die offenen PRD-Freigabeentscheidungen gemeinsam klären und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","noPrdBeforeDecisions":"das PRD vorlegen oder freigeben, bevor die erforderlichen Produktentscheidungen geklärt sind","completePrdReadinessItems":"die aufgeführten PRD-Bereitschaftspunkte gemeinsam abschließen und eine neue Run-Revision festhalten","nextPrdReadinessItems":"die offenen PRD-Bereitschaftspunkte gemeinsam abschließen und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","noPrdBeforeReadiness":"das PRD vorlegen oder freigeben, bevor Entscheidungen und Akzeptanzkriterien vollständig sind","completeSdTraceability":"die aufgeführten SD-Zuordnungen vervollständigen und eine neue Run-Revision festhalten","nextSdTraceability":"die aufgeführten SD-Zuordnungen vervollständigen und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","completeTpTraceability":"die aufgeführten TP-Nachweiszuordnungen vervollständigen und eine neue Run-Revision festhalten","nextTpTraceability":"die aufgeführten TP-Nachweiszuordnungen vervollständigen und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","noTraceabilityBeforeApproval":"das Artefakt erst vorlegen oder freigeben, wenn die Nachweiszuordnung vollständig ist","defineScope":"den Umfang festlegen","defineAcceptanceCriteria":"Akzeptanzkriterien festlegen","defineNonGoals":"Nicht-Ziele festlegen","requestExactPrdApproval":"die exakte PRD-Freigabe anfordern","forbidCreateSd":"das Lösungsdesign erstellen","forbidCreateTp":"den Aufgaben- und Testplan erstellen","forbidBrownfieldAnalysisBeforeTp":"die Brownfield-Analyse als Implementierungsvorbereitung durchführen","forbidImplementCode":"Code implementieren","afterPrdApproval":"Das Lösungsdesign entwerfen; die Implementierung bleibt gesperrt.","draftOrRefineSd":"das Lösungsdesign entwerfen oder überarbeiten","defineArchitecture":"die Architektur festlegen","defineOwnership":"Verantwortlichkeiten festlegen","requestExactSdApproval":"die exakte SD-Freigabe anfordern","afterSdApproval":"Den Aufgaben- und Testplan entwerfen; die Implementierung bleibt gesperrt.","draftOrRefineTp":"den Aufgaben- und Testplan entwerfen oder überarbeiten","defineTaskIds":"Aufgaben-IDs festlegen","defineTestEvidence":"Testnachweise festlegen","requestExactTpApproval":"die exakte TP-Freigabe anfordern","afterTpApproval":"Die Brownfield-Analyse zur Implementierungsvorbereitung vor CD+Tests durchführen; für diesen internen Schritt ist keine weitere Nutzerfreigabe erforderlich.","runBrownfieldForApprovedTp":"die Brownfield-Analyse für den freigegebenen TP-Umfang durchführen","verifyOwnersReuseRegression":"bestehende Owner, Wiederverwendungspfade und Regressionsrisiken prüfen","forbidImplementationBeforeBrownfield":"implementieren, bevor die Brownfield-Nachweise den freigegebenen TP-Pfad stützen","nextBrownfieldBeforeCdTests":"Die Brownfield-Analyse für den freigegebenen TP-Umfang vor CD+Tests durchführen.","nextCdTestsBeforeCr":"Den freigegebenen TP-Umfang implementieren, seine Tests ausführen und die CD+Tests-Nachweise vor dem Code Review erfassen.","nextCdTestsAfterTpApproval":"TP freigegeben. Umsetzung, Tests und CD+Tests-Nachweise sind im genehmigten Umfang erlaubt.","unknownRunAction":"Ich kann die nächste Aktion des ausgewählten Runs nicht sicher bestimmen. Bitte kläre, was für diesen Run als Nächstes geschehen soll.","hostEvidenceProvisioningChoice":"AC-006 offenlassen oder eine separate Umfangsänderung für Host-Bereitstellung starten. Dieser TP erlaubt keine Host-Änderungen.","approvalSummaryRecovery":"Es wird keine Freigabe angefragt. Korrigiere die angegebene Zusammenfassungsanforderung auf {language}; erhalte sämtliche Inhalte.","completeMissingApprovalSummary":"Ergänze die vollständige lokalisierte Zusammenfassung im verlinkten Artefakt, erfasse eine neue Revision und erstelle eine neue Freigabepräsentation.","runMandatoryCodeReview":"das verpflichtende Code Review durchführen","recordCodeReviewFindings":"Befunde zu Korrektheit, Regression, Sicherheit und Wartbarkeit erfassen","fixBlockingReviewFindings":"blockierende Review-Befunde beheben","nextCodeReviewBeforeQa":"Das Code Review für den implementierten TP-Umfang durchführen und blockierende Befunde vor QA beheben.","nextReviewsBeforeQaApproval":"TP Review und Clean Implementation Review erfassen, bevor Approval: QA angefordert wird.","recordRequiredReviews":"TP Review und Clean Implementation Review erfassen","nextRerunQaForCurrentEvidence":"QA gegen die aktuelle Evidenz erneut durchführen, bevor Approval: QA angefordert wird.","nextQaGateAndApproval":"Das QA-Gate durchführen, den QA-Bericht dauerhaft festhalten und die exakte Freigabe Approval: QA anfordern","recordEvidence":"Nachweise erfassen","requestExactUrApproval":"die exakte UR-Freigabe anfordern","reviseQaImplementation":"die Implementierung anhand der QA-Befunde überarbeiten","refreshCdTestsAndReviews":"CD+Tests und die verpflichtenden Reviews aktualisieren","rerunQaWithEvidence":"QA mit aktualisierten Nachweisen erneut ausführen","runQaGate":"das QA-Gate durchführen","persistQaReport":"den QA-Bericht dauerhaft festhalten oder überarbeiten","requestExactQaApproval":"die exakte QA-Freigabe anfordern","requestExactUatApproval":"die exakte UAT-Freigabe anfordern","prepareNonOperativeDeliverySummary":"eine nicht-operative Lieferzusammenfassung vorbereiten","runDoctorAgain":"doctor erneut ausführen","recordRunRevision":"Unaufgezeichnete Bytes sichern, vertrauenswürdigen Zustand wiederherstellen und die Änderung beim aktuellen Eigentümer erfassen.","restoreRecordedApprovals":"Die erfassten Approvals-Zeilen wiederherstellen; eine Gate-Freigabe nur nach der exakten Antwort des Nutzers mit run-approve erfassen.","repairRunSeal":"Versiegelte Originalbytes wiederherstellen und Änderung prüfen; Siegel nicht entfernen oder fremde Änderungen übernehmen.","recoverUnsealedRun":"Eine vertrauenswürdig versiegelte Revision wiederherstellen oder den expliziten Legacy-Migrationspfad nutzen; aus dieser Datei keine Freigaben ableiten.","recoverPendingRunStep":"Die explizite unterstützte Wiederherstellung für genau diese offene Operation nutzen; widersprüchliche Bytes unverändert erhalten.","implementApprovedTpTasks":"die freigegebenen TP-Aufgaben implementieren","runApprovedTestPlan":"den freigegebenen Testplan ausführen","recordImplementationTestEvidence":"Implementierungs- und Testnachweise erfassen","createOrMigrateCanonicalRun":"einen kanonischen Run mit expliziter Run-ID erstellen oder migrieren","selectCanonicalRunExplicitly":"einen vorhandenen kanonischen Run explizit auswählen","persistRealUrBeforeApproval":"eine echte UR-Revision dauerhaft festhalten, bevor eine Gate-Freigabe angefordert wird","forbidLaterGateArtefacts":"Artefakte späterer Gates außerhalb des aktuell erlaubten Gates erstellen","forbidPrematureImplementation":"gesperrte Arbeit implementieren, bevor das Gate sie erlaubt","forbidGatedImplementation":"gesperrte Arbeit implementieren","forbidQaPass":"QA als bestanden erklären","forbidQaOrReleaseClaim":"QA- oder Veröffentlichungsbereitschaft behaupten","forbidQaApproval":"die QA-Freigabe anfordern","forbidDeliveryReadiness":"Lieferbereitschaft behaupten","forbidUatApproval":"die UAT-Freigabe anfordern","forbidRelease":"veröffentlichen","forbidDeliveryReadinessBeforeQa":"Lieferbereitschaft vor QA-Freigabe und Berichtsnachweis behaupten","forbidPush":"pushen","forbidOpenPr":"einen Pull Request öffnen","forbidCommitWithoutInstruction":"ohne ausdrückliche Nutzeranweisung und erforderliche Freigabe committen","forbidApprovalWithoutDurableRun":"eine Gate-Freigabe ohne dauerhaften Run und Artefakt anfordern","repairRuntimePackagingBaseline":"Die separat verwaltete Runtime-Packaging-Baseline reparieren, den vollständigen Smoke-Test erneut ausführen und QA aktualisieren.","fillUrControlState":"Den aktuellen UR-Kontrollstatus vervollständigen, den UR-Entwurf dauerhaft festhalten und die exakte Freigabe Approval: UR anfordern.","afterUrApproval":"Brownfield Review und die angemessene Routenwahl als einen internen Vorgang durchführen; jetzt ist keine Nutzeraktion erforderlich.","runBrownfieldReviewAfterG00":"Brownfield Review nach G-00 durchführen","identifyBrownfieldOwnersQuestions":"bestehenden Arbeitsstrang, Owner, SoT, Wiederverwendungsrisiken und offene PRD-/SD-Fragen ermitteln","markBrownfieldReviewDoneOrNotApplicable":"Brownfield Review im ausgewählten RUN_STATE.md als erledigt oder nicht zutreffend markieren","forbidPrdBeforeBrownfieldResolved":"PRD erstellen, bevor Brownfield Review geklärt ist","nextBrownfieldReviewBeforePrd":"Brownfield Review nach G-00 vor dem PRD-Entwurf durchführen oder mit Nachweis als nicht zutreffend markieren.","nextStructuredPrdBeforeSdTp":"PRD entwerfen oder überarbeiten. Erst implementieren, nachdem PRD, SD und TP freigegeben sind.","reviewLinkedArtefactForDecision":"Den verlinkten Entwurf prüfen und entscheiden, ob du ihn freigibst, überarbeiten lässt oder ablehnst.","nextStructuredSlicePrdBeforeApproval":"Den kleinsten durch Brownfield Review begründeten PRD-Umfang entwerfen oder überarbeiten. Erst nach Freigabe der erforderlichen Artefakte implementieren.","nextSdBeforeTp":"Das Lösungsdesign entwerfen oder überarbeiten. Erst implementieren, nachdem SD und TP freigegeben sind.","nextTpBeforeImplementation":"Den Aufgaben- und Testplan entwerfen oder überarbeiten. Erst nach TP-Freigabe implementieren.","regenerateLegacyProjection":"Die explizite Legacy-Projektion neu erzeugen oder entfernen, nachdem die Legacy-Consumer außer Betrieb genommen wurden.","requestQaApproval":"Die exakte Freigabe Approval: QA anfordern.","afterQaApproval":"UAT anfordern, nachdem QA bestanden wurde; die Veröffentlichung bleibt gesperrt.","afterQaDeviationApproval":"UAT nach ausdrücklicher Akzeptanz der vorgelegten QA-Abweichungen anfordern; die native Qualifikation bleibt unverändert.","afterUatApproval":"OR oder den Lieferabschluss erstellen; Versionskontroll- und Veröffentlichungsaktionen benötigen weiterhin eine ausdrückliche Anweisung.","produceOrOrDeliveryCloseout":"OR oder den Lieferabschluss erstellen","prepareVcsHandoffWhenRequested":"bei Bedarf einen Commit-, Push- oder Pull-Request-Handoff vorbereiten","forbidAutomaticVcsAndRelease":"automatisch committen, pushen, einen Pull Request öffnen oder veröffentlichen","produceDeliveryCloseoutOrRequestedHandoff":"Den Lieferabschluss oder angeforderten Handoff erstellen; Versionskontrollaktionen nicht automatisch ausführen.","captureFreshSessionEvidence":"GitHub Copilot neu starten und vor der UAT-Entscheidung Nachweise zur Plugin-Installation, Skill-Erkennung und zum SessionStart einer frischen Session erfassen.","preserveInstalledLoadedBoundary":"Die Unterscheidung zwischen installiertem Zustand und dem Ladeverhalten einer frischen Session beibehalten.","resolveDeliveryFindings":"Blockierende Befunde oder Befunde mit Überarbeitungsbedarf aus der Delivery Map beheben, bevor stärkere Qualitätsaussagen getroffen werden.","reviewDeliveryWarnings":"Befunde mit Warnstufe aus der Delivery Map prüfen, wenn weiter in die Liefersicherheit investiert wird.","noAdditionalQualityFollowUp":"Aus dem aktuellen Kontrollstatus ergibt sich keine weitere Qualitätsmaßnahme.","renewCopilotTargetEvidence":"Eine separate Entscheidung zu automatischen Runtime-Prüfungen einholen, Copilot neu starten und beide frischen Session-Pfade erfassen.","proveCopilotTargetContexts":"Die Unterdrückung ohne Repository und die Gate-Auswahl mit Repository im installierten Copilot belegen.","retestCopilotUnresolvedEarlyReturn":"Copilot neu starten, einen neuen deutschen GeneralChat ohne Repository öffnen und `agdf-qa-gate` aufrufen; den Repository-Pfad danach separat prüfen.","proveCopilotUnresolvedEarlyReturn":"Belegen, dass der geladene Host die Sprache aus der aktuellen Unterhaltung ableitet und die kanonische Karte unverändert übermittelt.","createSelectOrMigrateRun":"Den kanonischen Run erstellen, migrieren oder auswählen und seine UR-Revision vor jeder Freigabe dauerhaft festhalten.","selectIntendedRun":"Den gewünschten Run mit --run <run_id> oder AGDF_RUN_ID auswählen.","selectOrEvaluateActiveRuns":"Den gewünschten Run mit --run <run_id> oder AGDF_RUN_ID auswählen oder alle aktiven Runs mit --all-active unabhängig prüfen.","resolveReportedFinding":"Den unter „Blockiert durch“ genannten Befund beheben und danach gate-check erneut ausführen.","addEvidenceRow":"Mindestens eine Nachweiszeile ergänzen oder ausdrücklich festhalten, dass noch kein Nachweis vorliegt.","addBacklogPointer":"Den aktiven Eintrag ergänzen oder festhalten, dass kein gesteuertes Delivery-Element aktiv ist.","alignVerifiedChangeRowStatus":"Die Zeile im Run-Status und den Status des Records angleichen.","assignPrimarySot":"Mindestens für die Bereiche des nächsten Runs je eine primäre Source of Truth festlegen.","verifiedChangeCaptureCommit":"Vor der Eignungsprüfung die aktuelle vollständige Git-Commit-ID erfassen oder eskalieren.","verifiedChangeCaptureBaseline":"Die Worktree-Baseline erfassen, bevor der Record als geeignet markiert wird.","clarifyContextGraphImpact":"Die Auswirkung auf den Context Graph klären, bevor das Gate weitergeht.","closeExecutedVerifiedChange":"Den ausgeführten Verified Change mit seinem kompakten Record abschließen und den Lieferabschluss anbieten; keine VCS-Aktionen automatisch ausführen.","completeBrownfieldSelection":"Die Brownfield-Auswahl vor der Eignungsprüfung abschließen.","completeMiniCloseoutEvidence":"Ausführungs- und Mini-Closeout-Nachweise vervollständigen, bevor OR als erledigt gilt.","confirmActiveScope":"Den aktiven Umfang aus dauerhaften Artefakten bestätigen oder festhalten, warum Branch- oder Workspace-Nachweise nur unterstützen.","verifiedChangeCorrectDerivedPaths":"Die Liste der abgeleiteten Pfade korrigieren oder eskalieren.","verifiedChangeCorrectSnapshot":"Den historischen Ausführungs-Snapshot korrigieren oder eskalieren.","createOrActivateGovernedRun":"Einen gesteuerten Run erstellen oder aktivieren.","nextRepairVerifiedChangeRecord":"VERIFIED_CHANGE.md erstellen oder reparieren, die Baseline erfassen und vor der Implementierung jede Eignungsprüfung erfüllen; sonst eskalieren.","verifiedChangeDeclareSourcePaths":"Eine begrenzte, kommagetrennte Liste der Quellpfade angeben; andernfalls eskalieren.","nextDraftMinimalUrThenSetup":"Minimale UR entwerfen, Befugnis zum Einrichten oder Verknüpfen einholen und dauerhafte Kontrolle anlegen, bevor eine Gate-Freigabe angefordert wird.","verifiedChangeCleanCandidate":"Eskalieren oder von einem sauberen Kandidatenpfad ausgehen; vorhandene Änderungen nicht übernehmen.","fillMemoryReason":"memory_reason ausfüllen oder memory_target auf none setzen.","fillArtefactChainRow":"Die Zeile im Artefact Chain mit konkretem Nachweis füllen, bevor die Delivery Map als vollständig gilt.","fillNextAllowedAction":"Den nächsten erlaubten Schritt ausfüllen, bevor ein Agent die Delivery-Arbeit fortsetzt.","nextImplementEligibleVerifiedChange":"Nur den Umfang des geeigneten Verified-Change-Records implementieren und danach bestandene Propagations- und Validierungsnachweise erfassen.","keepRunsIndependentlyActionable":"Jeden aktiven Run unabhängig handlungsfähig halten.","keepSingleActiveSot":"Für diesen Bereich genau eine aktive primäre Source of Truth behalten.","backlogOneLinkPerType":"Genau einen Link pro Artefakttyp behalten.","keepSingleArtefactRow":"Dokumentverweise werden aus typisierten Bindungen abgeleitet; gültige Belege statt einer zusätzlichen Tabelle wiederherstellen.","verifiedChangeLinkRecord":"Ein stabiles, repository-relatives VERIFIED_CHANGE.md-Artefakt im ausgewählten Run-Status verlinken.","listCompetingScopes":"Konkurrierende Umfangslinien mit Gate- und Artefaktnachweisen auflisten und danach den aktiven Umfang klären.","verifiedChangeMarkEscalated":"Den Record als eskaliert markieren und am erklärten strukturierten Ziel fortfahren.","verifiedChangeNameOwner":"Einen kanonischen Owner-Pfad benennen; andernfalls eskalieren.","nextPersistApprovedUr":"Das freigegebene UR-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedPrd":"Das freigegebene PRD-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedSd":"Das freigegebene SD-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedTp":"Das freigegebene TP-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedQa":"Den freigegebenen QA-Bericht dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextProceedAsStructuredSlice":"Als structured_slice fortfahren: das erforderliche PRD entwerfen und die exakte Freigabe Approval: PRD anfordern.","nextProceedAsStructuredDelivery":"Als structured_delivery fortfahren: das erforderliche PRD entwerfen und die exakte Freigabe Approval: PRD anfordern.","nextProceedAsQuickTask":"Als Quick Task im Umfang des Brownfield Review fortfahren und Verifikationsnachweise erfassen.","verifiedChangeRecaptureBaseline":"Die Baseline vor der Eignungsprüfung neu erfassen oder eskalieren; keine veraltete oder erfundene Baseline-Identität wiederverwenden.","verifiedChangeRecordAcceptanceCheck":"Eine deterministische Abnahme- oder Konsistenzprüfung erfassen oder eskalieren.","verifiedChangeRecordExecutionScope":"Vollständige Nachweise zum Ausführungsumfang erfassen oder eskalieren.","verifiedChangeRecordValidation":"Bestandene deterministische Validierungsnachweise erfassen oder eskalieren.","verifiedChangeRecordPropagation":"Nachweise einer erfolgreichen Propagation erfassen oder eskalieren.","verifiedChangeRecordEscalationTarget":"Das im Brownfield gewählte strukturierte Eskalationsziel erfassen.","nextRecordModeSliceDecision":"Die Mode/Slice-Entscheidung aus dem Brownfield Review mit Umfangsgrund und Nachweisen erfassen, bevor PRD-Tiefe oder Quick Task gewählt wird.","verifiedChangeRecordChangedPaths":"Die exakt geänderten Pfade erfassen oder eskalieren.","verifiedChangeRecordPropagationCommand":"Den Propagationsbefehl erfassen oder eskalieren.","removeUnsafePathText":"Absolute, verzeichnisüberschreitende, Backslash- oder sonst nicht normalisierte Pfadangaben entfernen.","replaceContextGraphExample":"Das Beispiel entfernen oder durch einen belegten Knoten mit Exit-Kriterium ersetzen.","repairOrRemoveInvalidRun":"Den ungültigen Run-Eintrag reparieren oder entfernen.","nextRequestUatApproval":"Vor der Lieferübergabe die exakte Freigabe Approval: UAT anfordern.","resolveContextGraphLink":"Context-Graph-Aktion erledigen: link.","resolveContextGraphUpdate":"Context-Graph-Aktion erledigen: update.","resolveContextGraphCreate":"Context-Graph-Aktion erledigen: create.","resolveContextGraphResolveDrift":"Context-Graph-Aktion erledigen: resolve_drift.","nextResolveBlockingQa":"Blockierende QA-Befunde lösen oder an den zuständigen Owner leiten, dann die Schritte wiederholen. Approval: QA nicht aus einem Block-Bericht anfordern.","resolvePerRunFindings":"Die Befunde je Run beheben.","nextResolveBrownfieldBlocker":"Die Blockade aus dem Brownfield Review auflösen, bevor ein Lieferweg gewählt wird.","nextResolveQaRevise":"QA-Revise-Befunde beheben, CD+Tests und Reviews aktualisieren und QA erneut ausführen. Approval: QA nicht aus einem Revise-Bericht anfordern.","verifiedChangeRestoreGit":"Den Zugriff auf das Git-Repository wiederherstellen oder den strukturierten Weg nutzen.","restoreQualityContracts":"Die generierten Contracts wiederherstellen oder das JSON-Contract-Schema korrigieren.","initControlWhenNeeded":"npx --yes @agdf/cli@latest init nur ausführen, wenn das Repository dauerhaften AGDF-Kontrollstatus führen soll oder Setup ausdrücklich nötig ist.","repairRunIdentity":"Nicht unterstützte oder unbelegte Daten erhalten; aktuelles Ziel prüfen und einen frischen aktuellen Run ohne Konvertierung verwenden.","verifiedChangeSetStatus":"Einen unterstützten Record-Status setzen oder zum erklärten strukturierten Ziel eskalieren.","setCurrentGate":"current_gate auf das aktuelle Delivery-Gate oder none setzen.","verifiedChangeSetRelatedUr":"related_ur auf den Pfad des dauerhaften UR-Artefakts im ausgewählten Run setzen.","updateUrArtefactRowStatus":"Die UR-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updatePrdArtefactRowStatus":"Die PRD-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updateSdArtefactRowStatus":"Die SD-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updateTpArtefactRowStatus":"Die TP-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updateQaArtefactRowStatus":"Die QA-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","backlogArtefactTypes":"UR, Brownfield, PRD, SD, TP, QA oder OR verwenden.","backlogLinkStyle":"Links im Stil [UR](artefacts/<key>/UR.md) verwenden, getrennt durch einen Mittelpunkt.","backlogScopeTag":"[framework-maintenance] oder [external-delivery] verwenden oder die Markierung in Klammern entfernen.","backlogArtefactTarget":"Ein dokumentrelatives Artefaktziel wie artefacts/<key>/UR.md verwenden.","backlogStatusLabel":"Ein dokumentiertes Status-Label oder einen unterstützten Legacy-Wert in snake_case verwenden.","useSafeArtefactPath":"Einen einfachen repository-relativen Pfad oder genau einen vollständigen Markdown-Code-Span verwenden.","nextUseDeliveryCloseoutOnRequest":"Den Lieferabschluss nur nutzen, wenn eine operative VCS-Übergabe ausdrücklich angefordert wird.","useDistinctArtefacts":"Getrennte Artefakte oder einen lebenszykluskonsistenten kompakten Verified-Change-Record verwenden.","useConsistentReviewAliasStatus":"Für Aliasnamen derselben Artefaktrolle einen einheitlichen Status verwenden.","backlogLayout":"Das kanonische kompakte Layout oder das unterstützte 13-spaltige Legacy-Layout verwenden.","verifiedChangeStructuredOrWorktree":"Den strukturierten Weg nutzen oder den Zugriff auf den Git-Worktree wiederherstellen.","verifiedChangeStructuredForProhibitedImpact":"Den strukturierten Weg nutzen, sobald eine verbotene Auswirkung zutrifft.","forbidAddProhibitedImpacts":"verbotene Auswirkungen hinzufügen","captureBaselinePaths":"Baseline-Pfade erfassen","chooseNextGateDepth":"die nächste erforderliche Gate-Tiefe wählen, bevor PRD entworfen oder implementiert wird","forbidReadinessWithoutEvidence":"QA- oder Veröffentlichungsbereitschaft ohne Nachweis behaupten","forbidQaUatReleaseClaim":"QA-, UAT- oder Veröffentlichungsbereitschaft behaupten","forbidReleaseClaim":"Veröffentlichungsbereitschaft behaupten","forbidValidationReleaseClaim":"Validierungs-, QA-, UAT- oder Veröffentlichungsbereitschaft behaupten","forbidCreatePrd":"die Produktanforderungen erstellen","forbidCreateBrownfieldAnalysis":"die Brownfield-Analyse erstellen","forbidCreateUat":"die Nutzerabnahme erstellen","forbidPrdBeforeSizing":"PRD erstellen, bevor die Prozessgröße entschieden ist","forbidRitualArtefacts":"PRD, SD, TP, QA oder UAT aus reinem Ritual erstellen","forbidSdTpBeforePrdApproval":"SD oder TP vor der PRD-Freigabe erstellen","forbidBroadArtefacts":"umfangreiche PRD-, SD- oder TP-Artefakte aus reinem Ritual erstellen","forbidAnyLaterGateArtefacts":"Artefakte späterer Gates erstellen","refineVerifiedChangeRecord":"den kompakten Verified-Change-Record erstellen oder überarbeiten","decideModeSlice":"entscheiden, ob die freigegebenen UR quick_task, verified_change, structured_slice, structured_delivery oder block sind","draftMinimalUr":"die minimalen Nutzeranforderungen für die gewünschte Änderung in der Antwort entwerfen","draftEscalatedPrd":"das vom erklärten Eskalationsziel geforderte strukturierte PRD entwerfen","forbidScopeExpansion":"den Umfang über die Entscheidung des Brownfield Review hinaus erweitern","forbidImplementCandidate":"Kandidatenänderungen implementieren","implementDeclaredPaths":"nur deklarierte Quell- und abgeleitete Pfade implementieren","implementNarrowUrScope":"den eng freigegebenen UR-Umfang implementieren","forbidImplementViaVerifiedChange":"über Verified Change implementieren","initializeDurableControl":"dauerhafte Kontrolle anlegen und festhalten, bevor eine Gate-Freigabe angefordert wird","linkArtefactFromControl":"das Artefakt im ausgewählten RUN_STATE.md verlinken","obtainSetupAuthority":"ausdrückliche Befugnis zum Anlegen oder Verknüpfen dauerhafter Kontrolle einholen","offerDeliveryCloseout":"den Lieferabschluss auf Anfrage anbieten","persistApprovedUrInStablePath":"das freigegebene UR-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/UR.md festhalten","persistApprovedPrdInStablePath":"das freigegebene PRD-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/PRD.md festhalten","persistApprovedSdInStablePath":"das freigegebene SD-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/SD.md festhalten","persistApprovedTpInStablePath":"das freigegebene TP-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/TP.md festhalten","persistApprovedQaInStablePath":"den freigegebenen QA-Bericht in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/QA_REPORT.md festhalten","proveVerifiedChangeEligibility":"die Fail-closed-Eignung mit doctor und gate-check nachweisen","recordEvidenceAndOrLite":"Nachweise erfassen und mit OR-lite abschließen","recordExecutionAndMiniCloseout":"Ausführungsnachweise und Mini-Closeout erfassen","recordModeSliceFields":"Umfangsgrund, Nachweise und erforderliche nächste Gate-Tiefe im ausgewählten RUN_STATE.md erfassen","recordQaRemediation":"die nächste erlaubte Behebung oder vorgelagerte Entscheidung erfassen","forbidRepeatQuickTask":"die Quick-Task-Ausführung wiederholen","rerunQaAfterBlocker":"QA erst nach Auflösung der Blockade erneut ausführen","resolveModeSliceUncertainty":"Unklarheiten zu Ownership, SoT, Nachweisen, Auswirkung oder Produktrichtung auflösen","retainEscalationEvidence":"die Eskalationsnachweise des Verified Change behalten","routeBlockingQaFindings":"die blockierenden QA-Befunde an ihren zuständigen Owner leiten","runDeclaredValidation":"die deklarierten Propagations- und Validierungsbefehle ausführen","runGateCheckAgain":"gate-check erneut ausführen","runRelevantChecks":"relevante Prüfungen ausführen","forbidTouchUnlistedPaths":"nicht gelistete Pfade verändern","useCloseoutWhenRequested":"den Lieferabschluss nur auf ausdrückliche Anfrage nutzen","useVerifiedChangeMiniCloseout":"den Mini-Closeout des Verified Change nutzen","resolveOrAcceptMissingEvidence":"Den fehlenden Nachweis beschaffen oder ausdrücklich akzeptieren, bevor das Gate weitergeht.","assignRiskMitigationOrOwner":"Minderung oder Verantwortung zuweisen, bevor das Gate weitergeht.","blockedUrRequirements":"UR-Anforderungen müssen geklärt werden","completeUrRequirements":"die UR-Anforderungen klären und eine neue Run-Revision festhalten","nextUrRequirements":"die UR-Anforderungen klären, dann die Revision mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","forbidUnreadyUr":"UR präsentieren oder freigeben, bevor die Anforderungen geklärt sind","completeSdReadinessItems":"die aufgeführten SD-Bereitschaftspunkte gemeinsam klären und eine neue Run-Revision erfassen","forbidSdBeforeReady":"SD präsentieren oder freigeben, bevor die erforderlichen Designentscheidungen geklärt sind","nextSdReadinessItems":"die offenen SD-Bereitschaftspunkte gemeinsam klären und die Revision mit der gemeinsamen Artefaktregistrierung erfassen","blockedSdDecisionsOpen":"erforderliche Designentscheidungen sind offen oder fehlerhaft","sourceRevisionUxNext":"UX-Intent unter der aktuell freigegebenen UR vor abhängigen Quellen erneut prüfen.","sourceRevisionUxAssess":"UX-Intent unter der freigegebenen UR und dem geprüften Analysekontext erneut bewerten","sourceRevisionUxRecord":"Die erneute Analyse vor abhängigen Entwürfen erfassen","sourceRevisionUxForbidden":"Abhängige Quellen vor der erneuten Analyse entwerfen oder freigeben","sourceRevisionAuthoringNext":"Quellenanalysen vor erneuten Freigaben prüfen","sourceRevisionResolveRoute":"Die Analyseroute unter der weiterhin freigegebenen UR klären","sourceRevisionSkipApprovals":"erneute Quellenfreigaben überspringen","nextResolveReviseQa":"Kläre QA-Revise-Befunde beim zuständigen Verantwortlichen vor abhängiger Arbeit. Aus Revise keine Approval: QA anfordern.","collectExactQaEvidence":"den genauen QA-Nachweis über seinen bestehenden Verantwortlichen beschaffen","nextCollectQaEvidence":"Beschaffe den genauen QA-Nachweis beim Verantwortlichen. Bereite die vollständige Beobachtungsfolge vor externen Aktionen vor; danach QA erneut ausführen.","blockedDecisionContent":"Erforderlicher Entscheidungsinhalt fehlt","completeDecisionContent":"Ergänze den aktuellen Entscheidungsinhalt über den zuständigen Owner, erfasse ihn kanonisch und prüfe denselben Run erneut.","correctDecisionContent":"nur erlaubte aktuelle Entscheidungsinhalte über den zuständigen Owner korrigieren","noIncompleteContentApproval":"Freigabe anfordern, bevor der erforderliche Entscheidungsinhalt konkret ist","currentOperationRecovery":"Originalbytes bewahren; die ursprüngliche aktuelle Operation und die dafür vorgesehene Wiederherstellung prüfen.","currentRunRecordEvidence":"Tatsächliche Nachweise über die dafür vorgesehene Funktion des aktuellen Runs erfassen.","currentRunSelectNoConversion":"Einen gültigen aktuellen Run auswählen; nicht unterstützte Steuerungsdaten werden niemals automatisch konvertiert.","currentRunCreateWithUuid":"einen aktuellen Run mit einer Operations-UUID anlegen","currentUrPersistBeforeApproval":"Den aktuellen Run anlegen oder auswählen und seine UR-Revision vor der Freigabeanfrage dauerhaft speichern."},"scopeClassification":{"title":"AGDF-Scope-Klassifizierung","field":"Feld","value":"Wert","classification":"Klassifizierung","mode":{"quick_task":"Quick Task"},"boundary":{"inside":"Trivial-Change-Boundary erfüllt","outside":"Außerhalb der Trivial-Change-Boundary"},"grounds":"UR-Trigger-Evaluation","allowed":"Aktuell erlaubt","forbidden":"Bleibt verboten","escalation":"Eskalationsauslöser","challenge":"Widerspruchspfad"},"taskTargetResolution":{"title":"AGDF-Arbeitsziel","field":"Feld","value":"Wert","state":"Auflösung","resolved":"Aufgelöst","unresolved":"Klärung erforderlich","primaryTarget":"Primäres Ziel","governanceTarget":"Governance-Ziel","evidenceSources":"Evidenzquellen","workingDirectory":"Arbeitsordner","targetChanged":"Ziel gewechselt","yes":"ja","none":"keines","reason":"Grund","allowedValues":"Erlaubte Werte","nextAction":"Nächste Aktion","examplesLabel":"Beispiele","reasonCodes":{"explicit_target":"Explizites Ziel im aktuellen Turn","continued_target":"Bestätigtes Ziel wird fortgesetzt","multiple_plausible_targets":"Mehrere plausible Arbeitsziele","target_content_mismatch":"Änderung passt nicht zum Zielinhalt","target_unavailable":"Benanntes Ziel ist nicht verfügbar","no_reliable_target":"Kein belastbares Arbeitsziel","target_source_invalid":"Ungültige Zielquelle","working_directory_invalid":"Ungültiger Arbeitsordner","continued_target_changed":"Fortsetzungsziel ersetzt","target_path_relative":"Relativer Zielpfad","target_not_in_repository":"Kein verifiziertes Repository","current_repository_root_required":"Repository-Wurzel erforderlich","current_repository_context_mismatch":"Repository-Kontext passt nicht"},"nextActions":{"multiple_plausible_targets":"Ein exaktes Ziel mit vollständigem Pfad, Git-URL oder vorhandener Run-ID auswählen.","target_content_mismatch":"Das gewünschte Ziel mit vollständigem Pfad, Git-URL oder vorhandener Run-ID nennen.","target_unavailable":"Einen korrigierten vollständigen Pfad, eine Git-URL oder vorhandene Run-ID angeben.","no_reliable_target":"Ein exaktes Ziel mit vollständigem Pfad, Git-URL oder vorhandener Run-ID benennen.","target_source_invalid":"Einen erlaubten target_source-Wert und den vollständigen Pfad, die Git-URL oder Run-ID angeben.","examples":"Nenne einen echten Wert, z. B. `/Users/alex/work/project`, `https://github.com/org/project` oder `run-project-20260928`.","working_directory_invalid":"Nenne einen zugänglichen Arbeitsordner mit absolutem Pfad.","continued_target_changed":"Ordne das neue Ziel als explicit_target ein.","target_path_relative":"Nenne den absoluten Pfad des gewünschten Ziels.","target_not_in_repository":"Nenne ein Ziel innerhalb des zu prüfenden Git-Repositorys.","current_repository_root_required":"Nenne für current_repository die verifizierte Repository-Wurzel.","current_repository_context_mismatch":"Verwende current_repository nur mit einem Arbeitsordner innerhalb dieses Repositorys."}},"internalStateLabels":{"verifiedChange":"Kompakte Änderung wird geprüft","verifiedChangeEscalated":"Eskaliert zu structured delivery","contextGraphMaintained":"Projektgedächtnis wird gepflegt","contextGraphOpenGap":"Graph-Lücke offen","multiScopeBlocked":"Mehrdeutiger Scope, Klärung nötig"},"qualityReadiness":{"title":"Quality Readiness","rows":{"plan_coverage":"Planabdeckung","solution_integrity":"Lösungsintegrität","code_quality":"Code-Qualität","qa_decision":"QA-Entscheidung"},"reason":"Grund","reference":"Nachweisbericht","nextAction":"Nächste Aktion","decisionOwner":"Entscheidungsinstanz","decisionOwnerValue":"QA-Gate","unknown":"Nachweis fehlt","fallbackReasons":{"plan_coverage":"Die Planabdeckung muss vor einem QA-Pass überarbeitet werden.","solution_integrity":"Die Lösungsintegrität muss vor einem QA-Pass überarbeitet werden.","code_quality":"Code-Qualitätsbefunde müssen vor einem QA-Pass überarbeitet werden.","qa_decision":"Die QA-Nachweise müssen vor einem QA-Pass überarbeitet werden."}},"gateTitles":{"UR":"Nutzeranforderungen","PRD":"Produktanforderungen","SD":"Lösungsdesign","TP":"Aufgaben- und Testplan","QA":"Qualitätssicherung","UAT":"Nutzerabnahme","Brownfield Review":"Brownfield-Prüfung","Mode/Slice Decision":"Entscheidung zum Lieferumfang","Brownfield Analysis":"Implementierungsvorbereitung","CD+Tests":"Implementierung und Tests","CR":"Code-Review","OR":"Lieferbericht","Verified Change":"Verified Change","Quick Task":"Quick Task","Compact Delivery":"Kompakte Lieferung","Block":"Block"},"gateActionTitles":{"UR":"Nutzeranforderungen prüfen und entscheiden","PRD":"Produktanforderungen prüfen und entscheiden","SD":"Lösungsdesign prüfen und entscheiden","TP":"Aufgaben- und Testplan prüfen und entscheiden","QA":"Qualitätssicherung prüfen und entscheiden","UAT":"Nutzerabnahme prüfen und entscheiden"},"gateRequiredDecisions":{"UR":"Freigabe der Nutzeranforderungen","PRD":"Freigabe der Produktanforderungen","SD":"Freigabe des Lösungsdesigns","TP":"Freigabe des Aufgaben- und Testplans","QA":"Freigabe der Qualitätssicherung","UAT":"Entscheidung über die Nutzerabnahme"},"interaction":{"ready":"Bereit für deine Entscheidung","approveHeading":"Jetzt freigeben","nextHeading":"Danach","decisionInstruction":"Prüfe das verlinkte Artefakt und wähle unten eine Option.","decisionPrompt":"Für {gate} im Run {run_id}: freigeben, Überarbeitung anfordern oder ablehnen.","exactTextRequest":"Zur Freigabe exakt mit `{approval}` antworten; andernfalls Überarbeitung anfordern oder ablehnen.","decisionFollows":"ist die nächste Nutzerentscheidung","presentationFailure":"Die Freigabekarten konnten nicht sicher dargestellt werden.","statusPresentationFailure":"Statuskarte nicht sicher darstellbar.","nonReadyDecision":"Keine Entscheidung angefordert: {reason}.","approveDescription":"Dieses Gate mit dem exakten Freigabewert autorisieren.","reviseLabel":"Überarbeiten","reviseDescription":"Das Gate offen lassen und Änderungen anfordern.","declineLabel":"Ablehnen","declineDescription":"Dieses Gate bewusst ablehnen; die Berechtigung bleibt unverändert.","cancelLabel":"Abbrechen","cancelDescription":"Diese Entscheidung ohne Freigabe oder Ablehnung schließen.","why":{"label":"Warum?","fulfilledPrefix":"Erfüllt:","protectsPrefix":"Schützt vor:"}},"skillDispatch":{"invalidInputDescription":"Ungültige Dispatcher-Eingabe für {field}. Korrigieren und einmal erneut versuchen.","allowedValuesDescription":"Ungültiger Wert für {field}. Erlaubt: {allowed_values}. Korrigieren und einmal erneut versuchen.","recoveries":{"target_evaluation_failed":"Arbeitszielauswertung reparieren und einmal erneut versuchen.","target_presentation_failed":"Arbeitszieldarstellung reparieren und einmal erneut versuchen.","control_evaluation_failed":"Gate-Auswertung reparieren und einmal erneut versuchen.","control_presentation_failed":"Gate-Darstellung reparieren und einmal erneut versuchen.","internal_failure":"Dispatcher reparieren und einmal erneut versuchen.","runtime_contracts_unavailable":"AGDF-Plugin reparieren oder neu installieren: Paketierte Laufzeitverträge konnten nicht geladen werden. Danach einmal erneut versuchen.","runtime_evidence_invalid":"Bereitstellung der Laufzeitnachweise reparieren und einmal erneut versuchen.","output_too_large":"Ausgabegrenze des Dispatchers reparieren und einmal erneut versuchen.","intake_run_collision":"Die Run-ID ist bereits belegt. Den bestehenden Auftrag ausdrücklich zuordnen oder für den neuen Umfang eine unbenutzte ID wählen.","intake_scaffold_required":"Das kanonische Kontrollgerüst prüfen und vor der Run-Erstellung wiederherstellen.","intake_run_id_invalid":"Eine neue Run-ID lautet run-<uuid>. Über MCP den Run mit agdf_run run.create anlegen, dann mit intake_mode resume erneut dispatchen.","run_assignment_inventory_invalid":"Das Run-Inventar ist unvollständig oder ungültig. Die genannten Kontrollbefunde beheben und Intake erneut prüfen; der Fehler begründet keinen neuen Umfang.","prd_authoring_inputs_invalid":"PRD-Erstellung gesperrt: freigegebene UR, Brownfield-Quelle, bereite UX-Eingabe und PRD-Pfad prüfen. Eingaben beim Eigentümer korrigieren und erneut prüfen.","sd_authoring_inputs_invalid":"SD-Erstellung gesperrt: freigegebenes PRD, Brownfield/bereite Analyse und SD-Pfad prüfen. Eingaben beim Eigentümer korrigieren und erneut prüfen.","tp_authoring_inputs_invalid":"TP-Erstellung gesperrt: freigegebenes PRD/SD, Brownfield/bereite Analyse und TP-Pfad prüfen. Eingaben beim Eigentümer korrigieren und erneut prüfen.","AGDF_ARTEFACT_TEMPLATE_UNSUPPORTED":"Authoring gesperrt: kanonisches Template nicht unterstützt. Den Authoring-Owner korrigieren und erneut versuchen.","AGDF_ARTEFACT_TEMPLATE_ROOT_UNAVAILABLE":"Authoring gesperrt: vertrauenswürdiger Plugin-Template-Root fehlt. Passendes AGDF-Plugin neu installieren.","AGDF_ARTEFACT_TEMPLATE_UNAVAILABLE":"Authoring gesperrt: erforderliches Plugin-Template fehlt. Passendes AGDF-Plugin neu installieren.","AGDF_ARTEFACT_TEMPLATE_UNSAFE":"Authoring gesperrt: unsicherer Plugin-Template-Pfad. Passendes Plugin reparieren; kein Fallback."},"sourceInput":{"source":"Quelle","expected":"Erwartetes Feld/Wert","observed":"Gefunden (Originalangabe)","next":"Nächster Schritt","prepare":"Der UX-Verantwortliche darf diese unfreigegebene Analyse vorbereiten oder korrigieren, prüfen und vor erneuter Auswertung kanonisch erfassen.","stop":"Der Quellenverantwortliche muss diese Bedingung vor abhängiger Arbeit klären.","conditions":{"unsafe_destination":"Der Ausgabepfad ist unsicher.","source_unavailable":"Eine erforderliche Quelle ist nicht verfügbar.","unsafe_ux_source":"Die UX-Quelle liegt an einem fremden oder unsicheren Pfad.","ux_source_missing":"Die erforderliche UX-Analyse fehlt.","ux_decision_malformed":"Das genaue UX-Bereitschaftsfeld fehlt oder ist mehrdeutig.","ux_not_ready":"Die UX-Analyse ist nicht bereit.","ux_source_unrecorded":"Die bereite UX-Analyse ist noch nicht kanonisch erfasst."}}},"artefacts":{"notYetCreated":"noch nicht erstellt"},"primary":{"readOnlyOrientationDescription":"Read-only Prüfung – kein neuer AGDF-Run und keine Freigabe erforderlich.","lifecycleResult":{"title":"AGDF-Lifecycle-Ergebnis","statusTitle":"AGDF-Status","result":"Ergebnis","surface":"Oberfläche","scope":"Installationsscope","version":"AGDF-Version","verification":"Verifikation","restart":"Neustart erforderlich","installation":"Installation","repository":"Repository","delivery":"Delivery","next":"Nächste Aktion","yes":"ja","no":"nein","unknown":"unbekannt"},"status":{"open":"offen","blocked":"blockiert","pass":"bestanden","warn":"Prüfung erforderlich","revise":"Überarbeitung erforderlich","in_progress":"in Arbeit","closed":"geschlossen"},"none":"keine","blocked":"Voraussetzungen des aktuellen Gates","quality":"Präsentationsvertrag, Nachweise und Gate-Berechtigung konsistent halten.","lifecycle":{"active":"in Arbeit","completed_closeout_pending":"abgeschlossen — Abschluss offen","completed":"abgeschlossen","blocked":"blockiert","unknown":"Status nicht verfügbar"},"actions":{"UR":"Nutzeranforderungen klären und freigeben.","Brownfield Review":"Bestehende Owner prüfen und den kleinsten sicheren Lieferweg wählen.","Mode/Slice Decision":"Den angemessenen Lieferumfang anhand der Repository-Nachweise festlegen.","PRD":"Produktverhalten definieren und freigeben.","SD":"Lösungsdesign definieren und freigeben.","TP":"Aufgaben- und Testplan definieren und freigeben.","Brownfield Analysis":"Owner, Wiederverwendung und Regressionstests vor der Implementierung prüfen.","CD+Tests":"Den freigegebenen Plan implementieren und Testnachweise sammeln.","CR":"Implementierung prüfen und blockierende Befunde beheben.","QA":"Qualitätsnachweise bewerten und die QA-Entscheidung treffen.","UAT":"Die bewusste Nutzerabnahme entscheiden.","OR":"Den auditierbaren Lieferbericht erstellen."},"afterApproval":{"UR":"Bestehende Owner prüfen und den angemessenen Lieferweg wählen; die Implementierung bleibt gesperrt.","PRD":"Das Lösungsdesign entwerfen; die Implementierung bleibt gesperrt.","SD":"Den Aufgaben- und Testplan entwerfen; die Implementierung bleibt gesperrt.","TP":"Die Brownfield-Analyse vor der Implementierung durchführen; die Implementierung startet nur nach bestandenem Ergebnis.","QA":"Die Nutzerabnahme vorbereiten; die Veröffentlichung bleibt gesperrt.","UAT":"Den Lieferbericht vorbereiten; Versionskontroll- und Veröffentlichungsaktionen benötigen weiterhin eine ausdrückliche Anweisung."},"narration":{"gateSatisfied":"{gate} genehmigt","noAction":"Keine Nutzeraktion erforderlich","gates":{"UR":{"agentNext":"Agent führt Brownfield Review als Nächstes durch"},"PRD":{"agentNext":"Nach deiner PRD-Freigabe entwirft der Agent das Lösungsdesign","userAction":"Sobald der Entwurf vorliegt, prüfst du das Lösungsdesign und entscheidest darüber"},"SD":{"agentNext":"Agent entwirft als Nächstes den Aufgaben- und Testplan"},"TP":{"agentNext":"Agent führt Brownfield-Analyse vor Implementierung durch"},"QA":{"agentNext":"Agent bereitet die Nutzerabnahme vor","userAction":"Nutzerabnahme als Nächstes"},"UAT":{"agentNext":"Agent bereitet den Lieferbericht vor"}}}},"gateRationale":{"UR":"UR klärt, was du willst, warum und für wen — bevor etwas gebaut wird, das niemand brauchte.","PRD":"PRD definiert das Produktverhalten, bevor das Lösungsdesign es zementiert.","SD":"Lösungsdesign legt Ownership, Architektur und Abhängigkeiten fest — bevor Code sie faktisch zementiert.","TP":"Taskplan macht Akzeptanzkriterien und Tests verbindlich, damit QA später messen kann.","QA":"QA bewertet die echten Nachweise, bevor eine Freigabe auf Vermutungen basiert.","UAT":"UAT verlangt eine bewusste Abnahme, bevor der Lauf als geliefert gilt.","Brownfield Review":"Prüft, ob bestehende Systeme, Owners und Konventionen betroffen sind, damit nichts kaputt geht oder doppelt entsteht.","Mode/Slice Decision":"Entscheidet den angemessenen Lieferumfang, damit der Prozess zur Veränderung passt — nicht umgekehrt.","Brownfield Analysis":"Verifiziert Wiederverwendung, Owners und Regressionstests, bevor Code existiert.","CD+Tests":"Implementierung und Tests liefern Nachweise — nicht nur Code.","CR":"Code-Review ist verpflichtend, bevor QA entscheidet.","OR":"Der Lieferbericht macht den Lauf auditierbar — nicht nur behauptet."},"mcpLifecycle":{"title":"AGDF MCP-Lebenszyklus","labels":{"operation":"Vorgang","result":"Ergebnis","capability":"Fähigkeit","surface":"Host","scope":"Bereich","scopeEffect":"Bereichswirkung","target":"Ziel","authorizes":"Autorisiert","runtime":"Laufzeit","registration":"Registrierung","discovery":"Erkennung","permissionEffect":"Prozesszugriff","diagnostics":"Diagnosen","nextAction":"Nächste Aktion","fallback":"Kompatibler Pfad"},"capabilities":{"supported":"unterstützt","manual_compatible":"kompatibler Pfad verfügbar","unavailable":"Host nicht verfügbar","unsupported":"Hostversion nicht unterstützt","unverified":"nicht direkt qualifiziert"},"registrations":{"absent":"nicht vorhanden","matched":"stimmt überein","foreign":"fremder Eintrag","owned_mismatch":"eigener Eintrag weicht ab","precedence_conflict":"Konflikt mit höherer Priorität","invalid":"ungültige Konfiguration"},"discoveries":{"not_checked":"nicht geprüft","pending_restart":"Neustart ausstehend","discovered":"erkannt","not_discovered":"nicht erkannt","unavailable":"nicht verfügbar"},"results":{"not_configured":"nicht konfiguriert","configured_pending_restart":"konfiguriert; Neustart ausstehend","configured_unverified":"konfiguriert; Erkennung ungeprüft","discovered_ready":"erkannt und bereit","unchanged":"unverändert","disabled":"deaktiviert","degraded":"beeinträchtigt","failed":"fehlgeschlagen"},"scopeEffects":{"project":"nur das ausgewählte Projekt","user":"Benutzer über Projekte hinweg"},"permissionEffects":{"inherited_host_user":"Der MCP-Prozess erbt die Rechte des Host-Benutzers."},"diagnostics":{"none":"keine","registration_inspection_failed":"Die ausgewählte Registrierung konnte nicht geprüft werden.","rollback_incomplete":"Das Rollback hat nicht alle angewendeten Lebenszyklusphasen wiederhergestellt.","agdf_mcp_registration_foreign":"Die ausgewählte Registrierung gehört nicht AGDF.","agdf_mcp_registration_precedence_conflict":"Eine Registrierung mit höherer Priorität widerspricht der ausgewählten Quelle.","agdf_mcp_registration_verification_failed":"Das Auslesen der Registrierung entspricht nicht dem beabsichtigten Zustand.","agdf_mcp_disable_verification_failed":"Das Entfernen der Registrierung konnte nicht bestätigt werden.","agdf_mcp_package_acquisition_failed":"Das genaue MCP-Server-Paket konnte nicht bezogen werden.","agdf_mcp_runtime_unowned":"Der Laufzeitpfad enthält Inhalte, die AGDF nicht als eigenen Bestand bestätigen kann.","agdf_mcp_server_manifest_invalid":"Das Paketmanifest des MCP-Servers ist ungültig.","agdf_mcp_dispatcher_manifest_invalid":"Das Paketmanifest des Dispatchers ist ungültig.","agdf_mcp_sdk_manifest_invalid":"Das Paketmanifest des MCP-SDK ist ungültig.","agdf_mcp_server_version_mismatch":"Die bezogene MCP-Laufzeit entspricht nicht den erforderlichen Versionen.","agdf_mcp_server_entrypoint_invalid":"Der Einstiegspunkt des MCP-Servers fehlt oder ist ungültig.","agdf_mcp_server_verification_failed":"Die installierte MCP-Laufzeit hat die genaue Prüfung nicht bestanden.","agdf_mcp_claude_update_rollback_failed":"Claude Code konnte beim Aktualisieren die vorherige Registrierung nicht wiederherstellen.","enable_failed":"Die MCP-Aktivierung ist fehlgeschlagen.","disable_failed":"Die MCP-Deaktivierung ist fehlgeschlagen.","claude_plugin_managed":"Claude Code startet den AGDF-MCP-Server aus dem installierten AGDF-Plugin; eine separate Registrierung wird nicht verwendet.","codex_plugin_managed":"Codex startet den AGDF-MCP-Server aus dem installierten AGDF-Plugin; eine separate Registrierung wird nicht verwendet.","runtime_executables_retained":"Die Registrierung wurde entfernt. Laufzeitdateien bleiben erhalten, solange ihre Nutzung aktiv, historisch oder unbestätigt ist.","agdf_mcp_codex_source_changed":"Die Konfiguration hat sich seit der Vorschau geändert; es wurde nichts überschrieben.","agdf_mcp_codex_rollback_conflict":"Eine fremde Änderung verhindert das sichere Rollback.","agdf_mcp_runtime_reference_changed":"Laufzeitreferenzen wurden gleichzeitig geändert; den Konflikt vor einer Wiederholung klären.","cockpit_transition_pending":"Der Cockpit-Übergang ist eingetragen; Host aktualisieren und Discovery, Rendering und Interaktion vor dem Abschluss prüfen.","cockpit_transition_failed":"Cockpit-Übergang fehlgeschlagen. Den benannten Nachweis-, Besitz- oder Änderungskonflikt vor einem erneuten Versuch prüfen.","cockpit_legacy_retained":"Die bestehende Cockpit-ID bleibt erhalten, bis Ownership, Verbraucherwechsel und bewusste Sitzungsaktualisierung belegt sind. Keine Doppelregistrierung."},"actions":{"use_node_22":"Node.js 22 oder neuer verwenden und erneut versuchen.","install_host":"Einen unterstützten Host installieren und erneut versuchen.","resolve_registration":"Die ausgewählte Registrierung klären und erneut versuchen.","enable_scope":"MCP für diesen Bereich ausdrücklich aktivieren.","restart_host":"Die betroffene Verbindung über die unterstützte Hostfunktion bewusst aktualisieren und Erkennung sowie Laufzeit in der neuen Sitzung prüfen.","version_matched_cli_dispatch":"Den versionsgleichen AGDF-CLI-Skill-Dispatch-Pfad verwenden.","resolve_failure":"Den gemeldeten Lebenszyklusfehler beheben und erneut versuchen.","resolve_precedence":"Die Registrierung mit höherer Priorität klären und erneut versuchen.","disable_effective_scope":"Die verbleibende wirksame MCP-Registrierung ausdrücklich in ihrem Bereich deaktivieren.","inspect_effective_scope":"Die verbleibende wirksame Benutzerregistrierung mit --scope user prüfen.","retry":"Dieselbe ausdrückliche Lebenszyklusaktion erneut versuchen.","none":"Keine weitere Lebenszyklusaktion erforderlich.","use_claude_plugin_mcp":"Das AGDF-Plugin für Claude Code installieren oder aktualisieren; sein MCP-Server startet mit dem Plugin.","use_codex_plugin_mcp":"Das AGDF-Plugin für Codex installieren oder aktualisieren; sein MCP-Server startet mit dem Plugin."},"setup":{"title":"AGDF-Hostkonfiguration","labels":{"source":"Quelle","role":"Rolle","owner":"Owner","configured":"Konfiguration","started":"Start","discovered":"Discovery","app_rendered":"App dargestellt","app_interacted":"Interaktion","runtime":"Laufzeit"},"roles":{"product":"AGDF","cockpit":"AGDF Cockpit","diagnostic":"Diagnose/Test","legacy_or_conflict":"Altbestand/Konflikt"},"states":{"declared":"deklariert","disabled":"deaktiviert","unknown":"unbekannt","unobserved":"nicht beobachtet","unavailable":"nicht verfügbar"},"noticeDescription":"Deklaration ist kein Host-, Sitzungs- oder App-Nachweis. Wirksame Rechte und neue Sitzungen direkt prüfen; gemeinsame App-Daten erhalten."}},"repositoryMaintenance":{"title":"Prüfung des Kontrollbestands","unavailable":"Repository-Prüfung nicht verfügbar","next":"Direkter Runtime-Aufruf:","outcomes":{"not_started":"nur geprüft"}},"activeRunInventory":{"countDescription":"{count} aktive AGDF-Runs gefunden.","noneDescription":"Keine aktiven AGDF-Runs in diesem Projekt.","absentDescription":"Dieses Projekt hat keinen Ordner .agdf/control.","incompleteDescription":"Die Inventur ist unvollständig; die Gesamtzahl aktiver Runs ist unbekannt.","findingsDescription":"Prüfbefunde:"},"sourceRevision":{"title":"Quellenrevision","preview":"Nur vorgeschlagen","reopened":"Revision angewendet","historical":"Nur historische Nachweise","replayed":"Historischer Vorgang wiederholt","recovered":"Wiederherstellung geprüft","recovery_required":"Wiederherstellung erforderlich","rejected":"Revision abgelehnt","not_found":"Vorgang nicht gefunden","target":"Ziel","run":"Run","operation":"Vorgang","revision":"Aktuelle Revision","original":"Ursprüngliche Ergebnisrevision","source":"Geänderte Quelle","retained":"Beibehaltene Freigaben","superseded":"Aufgehobene Freigaben","reason":"Grund","next":"Nächste Aktion","none":"Keine","authority":"Dieses Ergebnis erteilt keine Umsetzungs- oder Gate-Freigabe.","reviewNext":"Vorschlag prüfen; seine genaue Vorschau ausdrücklich anwenden oder abbrechen.","readNext":"Den aktuell gebundenen Run vor der nächsten erlaubten Aktion prüfen.","refuseNext":"Aktuelle Fakten prüfen und einen neuen geprüften Vorschlag vorbereiten.","recoverNext":"Gebundenen offenen Vorgang prüfen und ausdrücklich wiederherstellen.","intent":"Beabsichtigte Änderung","binding":"Vorschaudigest für ausdrückliches Anwenden","sources":"Gebundene Quellinhalte","artefacts":"Artefakte mit neuer Erfassung und Freigabe","evidence":"Schritte mit erneut erforderlichen Nachweisen","work":"Erhaltene Arbeit","retainedWork":"Code und Tests bleiben; Erfüllung gegen den neuen TP prüfen.","analyses":"Anwendbarkeit der Analysen","retain":"Beibehalten","reassess":"Neu prüfen"},"flowEvidence":{"title":"Nachweise zu dieser Fassung","current":"Aktuell anwendbare Nachweise","superseded":"Frühere Nachweise","applicability_unknown":"Anwendbarkeit nicht bestätigt","currentDescription":"Nur eindeutig zugeordnete Berichte gehören zur aktuellen Quellenfassung. Frühere oder unbestätigte Nachweise bestätigen keine aktuellen Voraussetzungen.","emptyDescription":"Keine bestätigte aktuelle Zuordnung verfügbar. Das bedeutet nicht, dass alle erforderlichen Nachweise erfüllt sind.","historyDescription":"Frühere Nachweise bleiben lesbar; sie ersetzen keinen aktuellen Bericht.","unknownDescription":"Der gespeicherte Verweis lässt sich dieser Fassung nicht verlässlich zuordnen. Seine Anwendbarkeit bleibt unbestätigt.","unavailable":"Quelle nicht verfügbar","open":"Registrierte Quelle lesen","next":"Nächster Schritt laut Core","human":"Deine Entscheidung ist erforderlich","agent":"Der Assistent arbeitet weiter","completed":"Freigegebener Umfang abgeschlossen","unconfirmedDescription":"Der Abschluss ist nicht bestätigt. Maßgeblich bleibt die aktuelle Core-Auswertung.","retainedDescription":"Dies ist eine ältere Beobachtung. Vor einer Aussage zur aktuellen Anwendbarkeit neu laden."},"decisionCard":{"title":"Prüfen und entscheiden","connecting":"Verbindung zu dieser Vorlage wird hergestellt …","unavailable":"Diese genaue Vorlage ist nicht verfügbar. Nutze die aktuelle genaue Textvorlage im Chat.","approve":"Freigeben","request_change":"Änderung anfordern","reject":"Ablehnen","openDocument":"Vorgelegtes Dokument lesen","back":"Zur Entscheidung zurück","comment":"Kommentar","commentHelp":"Für eine Änderungsanforderung ist ein Kommentar nötig. Beim Schließen verfällt ein ungesendeter Kommentar. Höchstens 8 KiB.","pending":"Entscheidung wird übermittelt …","uncertain":"Das Ergebnis ist ungewiss. Prüfe den ursprünglichen Vorgang vor einer weiteren Übermittlung.","checkOperation":"Gespeichertes Ergebnis prüfen","retryOriginal":"Ursprüngliche Übermittlung wiederholen","confirmed":"Entscheidung gespeichert.","denied":"Die Entscheidung wurde nicht gespeichert.","notQualified":"Diese Karte zeigt dir die vorgelegte Fassung zum Lesen. Freigeben kannst du sie im Chat mit der unten angegebenen Antwort.","sourceChanged":"Die vorgelegte Quelle oder Revision hat sich geändert. Vor einer Entscheidung ist eine aktuelle Vorlage nötig.","expired":"Diese Entscheidungsansicht ist abgelaufen oder geschlossen.","comparison":"Änderungen gegenüber der vorherigen anwendbaren Fassung","comparisonUnavailable":"Für einen Vergleich liegt keine bestätigte vorherige anwendbare Fassung vor.","machineComparison":"Vergleich der Dokumentbytes mit dem bestätigten Archiv; keine fachliche Änderungsprüfung.","documentUnchanged":"Die Dokumentbytes sind unverändert; andere Entscheidungsquellen können abweichen.","documentChanged":"Die Dokumentbytes unterscheiden sich. Prüfe die vorgelegte und die archivierte Fassung bei der Bewertung.","previousDocument":"Archivierte vorherige Fassung ansehen","sources":"Details und Nachweise","run":"Run","gate":"Entscheidungsschritt","revision":"Vorgelegte Revision","consequence":"Eine Entscheidung gilt nur für dieses genaue Material. Nach dem Speichern bestätigt der Core den erlaubten nächsten Schritt.","permission":"Technische Toolerlaubnis und diese Entscheidung sind getrennt. Der Host kann zusätzlich nachfragen.","docUnavailable":"Das genaue vorgelegte Dokument ist nicht verfügbar. Eine andere Fassung wird nicht stattdessen angezeigt.","commentRequired":"Beschreibe die gewünschte Änderung vor dem Übermitteln.","commentTooLarge":"Der Kommentar überschreitet 8 KiB.","documentTitle":"Vorgelegtes Dokument","notSaved":"Eine Speicherung ist nicht bestätigt. Lesen und Diskussion entscheiden nichts.","unknownCurrent":"Die Speicherung ist bestätigt; der aktuelle Stand ist nicht verfügbar.","sourceLanguage":"Die Quellsprache steht in der Vorlage.","alreadyDecided":"Dieses Material wurde bereits entschieden. Folge dem aktuellen Core-Ergebnis.","initialize":"Das Öffnen dieser Ansicht erfasst keine Entscheidung.","discussionHint":"Fragen und Änderungswünsche kannst du im Chat besprechen. Freigeben kannst du diese Fassung hier oder im Chat mit Approval: {gate}.","nextStep":"Nächster Schritt","nextInformation":"Nächster Schritt: {step}.","nextChat":"Setze den Run im Chat fort, um diesen Schritt zu beginnen.","nextWaiting":"Freigabe gespeichert. Die Fortsetzung wartet auf das Ende der aktuellen KI-Antwort; ein weiterer Klick ist nicht nötig.","continuationMessage":"{gate} freigegeben. Weiter mit {step}.","nextRequested":"Die Fortsetzung wurde im Chat angefordert.","closeUnavailable":"Freigabe gespeichert und Fortsetzung angefordert. Diese Ansicht konnte nicht vollständig beendet werden; du kannst sie schließen.","nextUnavailable":"Die Fortsetzung konnte nicht bestätigt werden. Prüfe vor dem Weiterarbeiten den aktuellen Run im Chat.","chatApprovalHint":"Fragen und Änderungswünsche kannst du im Chat besprechen. Freigeben kannst du diese Fassung im Chat mit Approval: {gate}.","approveWithDeviations":"Mit Abweichungen freigeben","confirmedWithDeviations":"Mit Abweichungen freigegeben.","deviationAcceptanceIntro":"QA mit Abweichungen freigeben","openPreview":"Vorschau ansehen","previewTitle":"Illustrative Vorschau","previewUnavailable":"Vorschau nicht verfügbar. Diese Fassung erneut öffnen oder geprüften Standalone-Zugang anfordern.","previewChanged":"Die Prüfgrundlage hat sich geändert. Vor der Entscheidung eine neue Präsentation anfordern.","retryPreview":"Vorschau erneut öffnen","previewIllustrative":"Beispielaktionen geben kein PRD frei und versenden keine Nachrichten.","previewTask":"Prüfaufgabe","previewScenarios":"Szenarien","previewCriteria":"Zugehörige Kriterien","previewQuestions":"Offene Fragen","previewUnsupported":"Dieser Host konnte die isolierte Vorschau nicht anzeigen. Unterstützten Zugang zu derselben geprüften Version verwenden.","previewLoading":"Die isolierte Vorschau wird geöffnet…"},"mcpErrors":{"failure":"AGDF-Tool fehlgeschlagen:","effects":{"not_dispatched":"Dieser Versuch hat keine Operation gestartet.","owner_reported":"Das fachliche Ergebnis bleibt für Zustand und Wirkung maßgeblich.","unknown":"Die Wirkung ist unbestätigt; kein Rollback annehmen."},"actions":{"correct_input":"Die genannte Eingabe korrigieren und nur die zulässige Anfrage wiederholen.","confirm_target":"Bestätigte target_source und absolutes primary_target angeben; eine fehlende Zielentscheidung erfragen.","refresh_binding":"Aktuellen Stand lesen und Bindung oder Vorlage erneuern; nötige Freigabe neu einholen.","obtain_authority":"Erforderliche Berechtigung, Host-Fähigkeit oder bewusste menschliche Entscheidung einholen; nicht umgehen.","inspect_operation":"Zuerst operation-status mit der ursprünglichen UUID prüfen und den exakten Payload vor zulässiger Wiederaufnahme erhalten.","retry_after_prerequisite":"Die genannte Ressourcen- oder Ausführungsvoraussetzung abwarten; nur bei bekannter Wirkung zulässig wiederholen.","repair_runtime":"Den unterstützten Reparaturweg für eine versionsgleiche Runtime verwenden, danach vor Wiederholung erneut prüfen.","stop":"Stoppen und unterstützte Diagnosen prüfen. Keine Reparatur, kein Ziel und keine Ersatzoperation erfinden."},"causes":{"operation_source_invalid":"Referenzierten path, UTF-8-Inhalt und aktuellen digest prüfen. Quellreferenz erneut lesen; keinen Pfad oder Hash erfinden.","presentation_missing":"Aktuelle Bindung und Präsentation vorbereiten. Gebundene menschliche Antwort vor der Freigabe einholen; keine alte Präsentation einsetzen.","closeout_not_ready":"Aktuelles Gate und fehlende Voraussetzungen lesen. Erforderliche Nachweise und menschliche Entscheidungen vor dem Abschluss erfüllen; jetzt kein Abschluss.","control_layout_unsupported":"Altbestand erhalten. Frisches aktuelles Ziel oder unterstützten Run wählen. Keine Konvertierung oder Rücksetzung.","run_version_unsupported":"Altbestand erhalten. Frisches aktuelles Ziel oder unterstützten Run wählen. Keine Konvertierung oder Rücksetzung.","run_missing":"Quelle/Original-UUID prüfen. Frühere Wirkung unbestätigt. Daten erhalten; gelöschten Zustand nicht neu anlegen, nicht blind warten, Identität erhalten.","document_missing":"Quelle/Original-UUID prüfen. Frühere Wirkung unbestätigt. Daten erhalten; gelöschten Zustand nicht neu anlegen, nicht blind warten, Identität erhalten.","run_path_invalid":"Quelle/Original-UUID prüfen. Frühere Wirkung unbestätigt. Daten erhalten; gelöschten Zustand nicht neu anlegen, nicht blind warten, Identität erhalten."}},"doctorEmptyInventory":{"policyDescription":"Keine aktiven Runs. Status folgt allow_no_active_runs={policy}; null Befunde. Dies ist Lieferrichtlinie, kein Urteil über den Projektzustand."}}}')};function Gw(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.next_operation;return t.available===!0&&t.status===`open`&&typeof t.revision_id==`string`&&/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(t.revision_id)&&(n?.actor===`agent`&&[`preparation`,`implementation`,`closeout`].includes(String(n.effect))||n?.actor===`human`&&n.effect===`decision`&&n.operation_key===`approval.record`)&&typeof n.type==`string`&&/^[a-z_]+$/.test(n.type)&&typeof n.operation_key==`string`&&/^[a-z_]+\.[a-z_]+$/.test(n.operation_key)&&typeof n.gate==`string`&&n.gate.length>0&&n.gate.length<128?t:null}function Kw({view:e,port:t,closeWarning:n=!1}){let r=e.labels,[i,a]=(0,J.useState)(`undecided`),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(!1),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(``),v=(0,J.useRef)(!1),y=(0,J.useRef)(!0),b=(0,J.useRef)(null),ee=(0,J.useRef)(!1),te=(0,J.useRef)(null),ne=(0,J.useRef)(null),x=(0,J.useRef)(!1),[S,re]=(0,J.useState)(null),[C,w]=(0,J.useState)(!1),[ie,ae]=(0,J.useState)(!1),[oe,se]=(0,J.useState)(e.preview&&!t.preview?r.previewUnsupported:``),[ce,le]=(0,J.useState)(0),ue=(0,J.useRef)(null),T=(0,J.useRef)(null),de=(0,J.useRef)(null),fe=()=>y.current&&Date.now()<e.expires_at;(0,J.useEffect)(()=>{c===null?x.current&&(x.current=!1,te.current?.focus()):ne.current?.focus()},[c]),(0,J.useLayoutEffect)(()=>{if(S===null)return;de.current?.focus();let e=e=>{e.source===ue.current?.contentWindow&&e.data?.type===`agdf-preview-ready`&&(clearTimeout(t),ae(!0),se(``)),e.source===ue.current?.contentWindow&&e.data?.type===`agdf-preview-unavailable`&&(clearTimeout(t),ae(!1),se(r.previewUnsupported))};window.addEventListener(`message`,e);let t=setTimeout(()=>se(r.previewUnsupported),1e4);return()=>{window.removeEventListener(`message`,e),clearTimeout(t)}},[S,ce,r.previewUnsupported]),(0,J.useEffect)(()=>{if(y.current=!0,i===`saved`)return()=>{y.current=!1};let t=setTimeout(()=>{y.current&&(a(`expired`),s(r.expired))},Math.max(0,e.expires_at-Date.now()));return()=>{y.current=!1,clearTimeout(t)}},[e,r.expired,i]);let pe=(n,i)=>{if(!fe()){a(`expired`),s(r.expired);return}if(n.view_state===`closed`){a(`expired`),s(r.expired);return}if([`accepted`,`already_applied`].includes(String(n.outcome))&&Zm(n.receipt,e,i)){t.saved?.(),a(`saved`),h(Gw(n.current));let e=n.current;s(r.confirmed+(e?.available===!1?` `+r.unknownCurrent:``));return}if(n.outcome===`rejected`){t.pending?.(!1);let e=String(n.reason),i=[`stale_revision`,`decision_binding_changed`,`presentation_state_changed`,`decision_binding_invalid`,`presentation_version_decided`].includes(e),o=e===`session_expired`;a(o?`expired`:i?`stale`:`undecided`),s(o?r.expired:e===`presentation_version_decided`?r.alreadyDecided:i?r.sourceChanged:r.denied),b.current=null;return}a(`uncertain`),s(r.uncertain)},me=async e=>{if(!ee.current&&fe()){ee.current=!0,b.current=e,a(`pending`),s(r.pending),t.pending?.(!0);try{let n=await t.submit(e);y.current&&pe(n,e)}catch{y.current&&(a(`uncertain`),s(r.uncertain))}finally{ee.current=!1}}},he=()=>{let t=`approve`;!fe()||e.delivery_state&&e.delivery_state!==`ui_primary`||i!==`undecided`||C||oe||e.capability!==`available`||!e.enabled_actions.includes(t)||me({session_id:e.session_id,operation_id:crypto.randomUUID(),presentation_id:e.binding.presentation_id,expected_revision_id:e.binding.expected_revision_id,action:t})},ge=async()=>{let n=b.current;if(n&&fe()&&!ee.current&&!f){p(!0);try{let i=await t.inspect(n.operation_id);if(!y.current)return;if(!fe()){a(`expired`),s(r.expired);return}i.status===`recorded`&&Zm(i.receipt,e,n)?(t.saved?.(),a(`saved`),h(Gw(i.current)),s(r.confirmed)):s(r.uncertain)}catch{y.current&&s(r.uncertain)}finally{y.current&&p(!1)}}},_e=async()=>{if(!u&&e.resource_id){d(!0);try{let e=await t.document();if(!y.current)return;await t.expand(),y.current&&l(e)}catch{y.current&&s(r.docUnavailable)}finally{y.current&&d(!1)}}},ve=async()=>{if(!C&&e.preview&&t.preview&&fe()){w(!0),ae(!1);try{let e=await t.preview();y.current&&fe()&&(le(e=>e+1),re(e),t.expand().catch(()=>{}))}catch(e){if(y.current){let t=/changed|stale/.test(String(e));t&&a(`stale`),se(t?r.previewChanged:r.previewUnavailable)}}finally{y.current&&w(!1)}}},ye=e.capability===`available`&&e.enabled_actions.includes(`approve`),be=i!==`undecided`||C||!!oe,xe=Ww.locales[e.binding.presentation_language]?.gateTitles;(0,J.useEffect)(()=>{i===`saved`&&b.current&&m&&t.next&&!v.current&&fe()&&(v.current=!0,_(r.nextWaiting),t.next(m,b.current).then(()=>{y.current&&_(r.nextRequested)}).catch(()=>{y.current&&_(r.nextUnavailable)}))},[i,m,t,r.nextWaiting,r.nextRequested,r.nextUnavailable]);let Se=e.preview&&(0,$.jsxs)(`button`,{type:`button`,ref:T,disabled:!t.preview||C||i===`stale`||i===`expired`,onClick:()=>void ve(),children:[r.openPreview,` · `,e.preview.version]});return e.delivery_state===`retired`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`p`,{role:`status`,children:r.sourceChanged}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.sources}),(0,$.jsx)(`p`,{children:e.title}),(0,$.jsx)(`code`,{children:e.document_digest})]})]}):S===null?c===null?e.delivery_state===`preview`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`p`,{role:`status`,children:e.binding.presentation_language.startsWith(`de`)?`Vorschau · keine primäre Entscheidungsansicht. Die Auslieferung steht noch aus.`:`Preview · not a primary decision view. Delivery is pending.`}),(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.summary,links:{},onOpen:()=>{}})}),Se]}):e.delivery_state===`ui_primary`&&i===`saved`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`p`,{role:`status`,children:o||r.confirmed}),m&&(0,$.jsx)(`p`,{children:r.nextInformation.replace(`{step}`,xe?.[m.next_operation.gate]??m.next_operation.gate)}),g&&(0,$.jsx)(`p`,{role:`status`,children:g}),(0,$.jsx)(`button`,{type:`button`,ref:te,disabled:!e.resource_id||u,onClick:()=>void _e(),children:r.openDocument}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.sources}),(0,$.jsx)(`p`,{children:e.title}),(0,$.jsx)(`code`,{children:e.document_digest})]}),n&&(0,$.jsx)(`p`,{role:`status`,children:r.closeUnavailable})]}):e.delivery_state===`ui_primary`&&i!==`saved`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.summary,links:{},onOpen:()=>{}})}),!ye&&(0,$.jsx)(`p`,{role:`status`,children:r.notQualified}),(0,$.jsx)(`button`,{type:`button`,disabled:be||!ye,onClick:he,children:r.approve}),Se,(0,$.jsx)(`p`,{role:`status`,children:o||r.notSaved}),i===`uncertain`&&(0,$.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>void ge(),children:r.checkOperation})]}):(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,"aria-label":r.title,children:[(0,$.jsx)(`h1`,{children:e.decision_heading??r.title}),(0,$.jsx)(`p`,{children:e.title}),!ye&&(0,$.jsx)(`p`,{role:`status`,children:r.notQualified}),(0,$.jsx)(`article`,{className:`decision-summary document`,children:(0,$.jsx)(Uw,{content:e.decision_brief||e.summary,links:{},onOpen:()=>{}})}),e.comparison.state===`unavailable`?(0,$.jsx)(`p`,{children:r.comparisonUnavailable}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{children:r.machineComparison}),(0,$.jsx)(`p`,{children:e.comparison.unchanged?r.documentUnchanged:r.documentChanged})]}),i===`undecided`&&(0,$.jsx)(`p`,{children:e.approval_effect&&e.approval_effect_label?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`strong`,{children:[e.approval_effect_label,` `]}),e.approval_effect]}):r.consequence}),(0,$.jsx)(`p`,{children:r.sourceLanguage}),(0,$.jsx)(`button`,{type:`button`,ref:te,disabled:!e.resource_id||u,onClick:()=>void _e(),children:r.openDocument}),e.preview&&(0,$.jsxs)($.Fragment,{children:[Se,(0,$.jsxs)(`p`,{children:[(0,$.jsxs)(`strong`,{children:[r.previewTask,`: `]}),e.preview.task]}),(0,$.jsxs)(`p`,{children:[r.previewScenarios,`: `,e.preview.scenarios.join(` · `)]}),(0,$.jsxs)(`p`,{children:[r.previewCriteria,`: `,e.preview.criterion_ids.join(`, `)]}),!!e.preview.open_questions?.length&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{children:(0,$.jsxs)(`strong`,{children:[r.previewQuestions,`:`]})}),(0,$.jsx)(`ul`,{children:e.preview.open_questions.map((e,t)=>(0,$.jsx)(`li`,{children:e},t))})]}),oe&&(0,$.jsx)(`p`,{role:`status`,children:oe})]}),!e.resource_id&&(0,$.jsx)(`p`,{children:r.docUnavailable}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.sources}),e.decision_brief&&(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.summary,links:{},onOpen:()=>{}})}),(0,$.jsxs)(`dl`,{children:[(0,$.jsx)(`dt`,{children:r.run}),(0,$.jsx)(`dd`,{children:e.binding.run_id}),(0,$.jsx)(`dt`,{children:r.revision}),(0,$.jsx)(`dd`,{children:(0,$.jsx)(`code`,{children:e.binding.expected_revision_id})}),e.binding.material_sources.map(e=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{children:e.type}),(0,$.jsxs)(`dd`,{children:[(0,$.jsx)(`code`,{children:e.path}),(0,$.jsx)(`br`,{}),(0,$.jsx)(`code`,{children:e.digest})]})]},e.type))]}),e.comparison.state===`available`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`p`,{children:[r.revision,`: `,(0,$.jsx)(`code`,{children:e.comparison.previous_revision_id}),(0,$.jsx)(`br`,{}),(0,$.jsx)(`code`,{children:e.comparison.previous_digest})]}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.previousDocument}),(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.comparison.previous_text,links:{},onOpen:()=>{}})})]})]})]}),i===`undecided`&&(0,$.jsx)(`p`,{children:(ye?r.discussionHint:r.chatApprovalHint).replace(`{gate}`,e.binding.gate)}),ye&&i!==`saved`&&(0,$.jsx)(`div`,{className:`decision-actions`,children:(0,$.jsx)(`button`,{type:`button`,disabled:be,onClick:he,children:r.approve})}),i===`saved`&&m&&(0,$.jsx)(`p`,{children:r.nextInformation.replace(`{step}`,xe?.[m.next_operation.gate]??m.next_operation.gate)}),i===`saved`&&m&&!t.next&&(0,$.jsx)(`p`,{children:r.nextChat}),g&&(0,$.jsx)(`p`,{role:`status`,children:g}),n&&(0,$.jsx)(`p`,{role:`status`,children:r.closeUnavailable}),ye&&(0,$.jsx)(`p`,{children:r.permission}),(0,$.jsx)(`p`,{role:`status`,children:o||r.notSaved}),i===`uncertain`&&(0,$.jsxs)(`div`,{className:`decision-actions`,children:[(0,$.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>void ge(),children:r.checkOperation}),(0,$.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>{b.current&&me(b.current)},children:r.retryOriginal})]})]}):(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:()=>{x.current=!0,l(null)},children:r.back}),(0,$.jsxs)(`h1`,{ref:ne,tabIndex:-1,children:[i===`saved`?e.binding.presentation_language.startsWith(`de`)?`Historische Fassung`:`Historical version`:r.documentTitle,` · `,e.gate_title??e.binding.gate]}),(0,$.jsx)(`p`,{children:e.title}),(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:c,links:{},onOpen:()=>{}})})]}):(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`button`,{type:`button`,ref:de,onClick:()=>{re(null),setTimeout(()=>T.current?.focus(),0)},children:r.back}),(0,$.jsxs)(`h1`,{children:[r.previewTitle,` · `,e.preview?.version]}),(0,$.jsx)(`p`,{children:r.previewIllustrative}),!ie&&!oe&&(0,$.jsx)(`p`,{role:`status`,children:r.previewLoading}),oe&&(0,$.jsx)(`p`,{role:`status`,children:oe}),oe&&(0,$.jsx)(`button`,{type:`button`,onClick:()=>{re(null),ve()},children:r.retryPreview}),(0,$.jsx)(`iframe`,{ref:ue,title:r.previewTitle,sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,srcDoc:S,style:{width:`100%`,height:600,border:0}},ce)]})}function qw({bridge:e}){let[t,n]=(0,J.useState)(null),[r,i]=(0,J.useState)(!1),a=(0,J.useRef)(null),o=(0,J.useRef)(null),s=(0,J.useRef)(async()=>{}),[c,l]=(0,J.useState)(!1),u=(0,J.useRef)(null),d=(0,J.useRef)(new Set),f=(0,J.useRef)(new Set);(0,J.useEffect)(()=>{let t=!0,r=new Map,c=t=>{let n=r.get(t.session_id);if(n)return n;let i=e.operation({operation:`close`},void 0,t.read_session_id).then(e=>{let t=e;if((t.state!==`available`||t.data?.closed!==!0)&&t.reason!==`session_expired`)throw Error(`close_unconfirmed`)});return r.set(t.session_id,i),i};s.current=async n=>{if(t&&a.current===n){o.current=n,a.current=null,e.session=``;try{await c(n)}catch{t&&o.current===n&&l(!0)}}};let p,m=(r=!0)=>{if(p)return p;t=!1,u.current?.abort();let i=a.current??o.current;return a.current=null,e.session=``,r&&n(null),p=i?c(i):Promise.resolve(),p},h=()=>{m().catch(()=>{})};window.addEventListener(`pagehide`,h);let g=()=>{let t=e.app.getHostContext();t?.theme&&nm(t.theme),t?.styles?.variables&&rm(t.styles.variables)};return e.app.ontoolresult=r=>{if(!t)return;let i=Xm(r),s=a.current??o.current;if(!(!i||s&&i.target.target_id!==s.target.target_id)){if(s&&s.owner_epoch===i.owner_epoch&&i.generation<=s.generation){i.session_id!==s.session_id&&c(i).catch(()=>{});return}s&&(u.current?.abort(),c(s).catch(()=>{})),o.current=null,l(!1),d.current.clear(),f.current.clear(),a.current=i,e.session=i.read_session_id,n(i),g(),document.documentElement.lang=i.binding.presentation_language}},e.app.onhostcontextchanged=g,e.app.onteardown=async()=>(await m(),{}),e.app.connect(void 0,{timeout:1e4}).then(()=>{t&&(i(!0),g())}).catch(()=>{}),()=>{window.removeEventListener(`pagehide`,h),m(!1).catch(()=>{})}},[e]),(0,J.useEffect)(()=>{if(!t?.delivery_state||t.delivery_state===`retired`||!r)return;let i=!0,s=!1,c=!1,l=!1,u=()=>{i&&o.current?.session_id!==t.session_id&&(i=!1,n(e=>{if(e?.session_id!==t.session_id)return e;let n={...e,delivery_state:`retired`,enabled_actions:[]};return a.current=null,n}),e.operation({operation:`close`},void 0,t.read_session_id).catch(()=>{}))},p=()=>{document.visibilityState!==`visible`&&u()},m=async()=>{if(!(!i||s||!l||d.current.has(t.session_id)||f.current.has(t.session_id)||document.visibilityState!==`visible`)){s=!0;try{let r=new TextEncoder().encode(t.summary),o=`sha256:`+[...new Uint8Array(await crypto.subtle.digest(`SHA-256`,r))].map(e=>e.toString(16).padStart(2,`0`)).join(``);if(o!==t.document_digest){u();return}t.surface_id&&t.delivery_state===`preview`&&!c&&(c=!0,await e.operation({operation:`decision_display`,owner_epoch:t.owner_epoch,nonce:t.display_nonce,surface_id:t.surface_id,document_digest:o,visible:!0},void 0,t.read_session_id));let s=await e.operation({operation:`decision_state`},void 0,t.read_session_id);if(!i||d.current.has(t.session_id)||f.current.has(t.session_id))return;if(s.state!==`available`||s.data?.document_digest!==o){u();return}s.data.delivery_state===`ui_primary`&&n(e=>{if(e?.session_id!==t.session_id||e.delivery_state===`ui_primary`)return e;let n={...e,delivery_state:`ui_primary`,enabled_actions:s.data.enabled_actions??[]};return a.current=n,n})}catch{!d.current.has(t.session_id)&&!f.current.has(t.session_id)&&u()}finally{s=!1}}},h=document.querySelector(`article.document`),g=typeof IntersectionObserver>`u`||!h?null:new IntersectionObserver(e=>{let n=e.find(e=>e.target===h);n&&i&&(l=n.isIntersecting&&n.intersectionRatio>0,!l&&(c||t.delivery_state===`ui_primary`)&&!d.current.has(t.session_id)&&!f.current.has(t.session_id)?u():l&&m())});h&&g?.observe(h);let _=requestAnimationFrame(()=>{m()}),v=setInterval(()=>{m()},1e3);return document.addEventListener(`visibilitychange`,p),()=>{i=!1,g?.disconnect(),cancelAnimationFrame(_),clearInterval(v),document.removeEventListener(`visibilitychange`,p)}},[e,r,t?.session_id,t?.delivery_state]);let p=(0,J.useMemo)(()=>{if(!t)return null;let n=async(n,r)=>{if(a.current!==t||!e.app.getHostCapabilities()?.serverTools)throw Error(`session_invalid`);let i=await e.request(()=>e.app.callServerTool({name:n,arguments:r},{timeout:1e4}));if(a.current!==t)throw Error(`session_invalid`);if(!i.structuredContent)throw Error(`result_unconfirmed`);if(i.isError){let e=i.structuredContent,a=e.binding;if(n!==`agdf_decision_action`||e.schema_version!==`1`||e.authorizes!==!1||![`rejected`,`effect_unknown`,`recovery_required`].includes(String(e.outcome))||![`stale_revision`,`session_expired`,`permission_denied`,`resource_denied`,`host_ui_unsupported`,`app_only_mediation_not_qualified`,`decision_binding_changed`,`decision_binding_invalid`,`presentation_state_changed`,`presentation_version_decided`,`decision_pending`,`decision_result_unknown`,`effect_unknown`,`recovery_required`,`dispatch_timeout`,`dispatch_cancelled`,`generation_connection_lost`,`generation_response_unknown`].includes(String(e.reason))||e.operation_id!==void 0&&e.operation_id!==r.operation_id||a&&(a.target_id!==t.target.target_id||a.run_id!==t.binding.run_id||a.expected_revision_id!==t.binding.expected_revision_id))throw Error(`result_unconfirmed`)}return i.structuredContent};return{saved:()=>{a.current===t&&d.current.add(t.session_id)},pending:e=>{a.current===t&&(e?f.current.add(t.session_id):f.current.delete(t.session_id))},submit:e=>n(`agdf_decision_action`,{...e}),preview:async()=>{if(!t.preview)throw Error(`preview_unavailable`);if(o.current===t){let n,r=``,i=0,a=new Set;do{let s=await e.request(()=>e.app.callServerTool({name:`agdf_inspect`,arguments:{operation:`presentation-preview`,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,primary_target:t.target.display_path,target_source:`explicit_target`,target_id:t.target.target_id,run_id:t.binding.run_id,gate:t.binding.gate,expected_revision_id:t.binding.expected_revision_id,presentation_id:t.binding.presentation_id,...n?{cursor:n}:{}}},{timeout:1e4})),c=s.structuredContent?.report;if(o.current!==t||s.isError||c?.available!==!0||c.target_id!==t.target.target_id||c.run_id!==t.binding.run_id||c.gate!==t.binding.gate||c.revision_id!==t.binding.expected_revision_id||c.presentation_id!==t.binding.presentation_id||c.content_digest!==t.preview.content_digest||c.format!==`isolated_html`||c.byte_start!==i||typeof c.content!=`string`||(r+=c.content,i+=new TextEncoder().encode(c.content).length,i>2097152||c.byte_end!==i))throw Error(`preview_unavailable`);if(c.complete===!0&&c.next_cursor===null&&c.total_bytes===i)return r;if(typeof c.next_cursor!=`string`||a.has(c.next_cursor)||a.size>=64)throw Error(`preview_unavailable`);n=c.next_cursor,a.add(n)}while(n);throw Error(`preview_unavailable`)}if(a.current!==t)throw Error(`session_invalid`);let n=await e.operation({operation:`preview`,snapshot_id:t.snapshot_id,run_id:t.binding.run_id,resource_id:t.preview.resource_id},void 0,t.read_session_id),r=n.data?.preview;if(a.current!==t||n.state!==`available`||typeof r?.content!=`string`||r.content_digest!==t.preview.content_digest||r.version!==t.preview.version||new TextEncoder().encode(r.content).length>2097152)throw Error(n.reason??`preview_unavailable`);return r.content},document:async()=>{if(o.current===t){let n,r=``,i=new Set;do{let a=await e.request(()=>e.app.callServerTool({name:`agdf_inspect`,arguments:{operation:`presentation-document`,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,primary_target:t.target.display_path,target_source:`explicit_target`,target_id:t.target.target_id,run_id:t.binding.run_id,gate:t.binding.gate,expected_revision_id:t.binding.expected_revision_id,presentation_id:t.binding.presentation_id,...n?{cursor:n}:{}}},{timeout:1e4})),s=a.structuredContent?.report;if(o.current!==t||a.isError||!s?.available||s.target_id!==t.target.target_id||s.run_id!==t.binding.run_id||s.gate!==t.binding.gate||s.revision_id!==t.binding.expected_revision_id||s.presentation_id!==t.binding.presentation_id||s.content_digest!==t.document_digest||typeof s.content!=`string`)throw Error(`presented_document_unavailable`);if(r+=s.content,r.length>4194304)throw Error(`resource_limit`);if(s.complete===!0&&s.next_cursor===null)break;if(typeof s.next_cursor!=`string`||!s.next_cursor||i.has(s.next_cursor)||i.size>=128)throw Error(`presented_document_unavailable`);n=s.next_cursor,i.add(n)}while(n);return r}if(a.current!==t)throw Error(`session_invalid`);let n=await e.operation({operation:`document`,snapshot_id:t.snapshot_id,run_id:t.binding.run_id,resource_id:t.resource_id},void 0,t.read_session_id),r=n.data?.document;if(a.current!==t||n.state!==`available`||typeof r?.content!=`string`||`sha256:`+r.content_digest!==t.document_digest)throw Error(`presented_document_unavailable`);return r.content},inspect:async e=>{let r=await n(`agdf_inspect`,{operation:`operation-status`,module:e,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,target_source:`explicit_target`,primary_target:t.target.display_path,run_id:t.binding.run_id,expected_revision_id:t.binding.expected_revision_id});if(r.outcome!==`inspect_result`||typeof r.report!=`object`||!r.report)throw Error(`result_unconfirmed`);return r.report},expand:async()=>{let t=e.app.getHostContext()?.availableDisplayModes??[],n=t.includes(`fullscreen`)?`fullscreen`:t.includes(`pip`)?`pip`:null;if(!n||(await e.request(()=>e.app.requestDisplayMode({mode:n},{timeout:1e4}))).mode!==n)throw Error(`display_mode_unavailable`)},...e.app.getHostCapabilities()?.message?.text&&e.app.getHostCapabilities()?.updateModelContext?{next:async(r,i)=>{let o=await n(`agdf_inspect`,{operation:`operation-contract`,module:`agdf_record/step.record`,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,target_source:`explicit_target`,primary_target:t.target.display_path,run_id:t.binding.run_id,expected_revision_id:r.revision_id}),c=o.report,l=o.outcome===`inspect_result`&&c?.binding?.target_id===t.target.target_id&&c.binding.run_id===t.binding.run_id&&c.binding.expected_revision_id===r.revision_id,d=Gw({...c?.current,available:l,revision_id:r.revision_id});if(!d||[`type`,`operation_key`,`actor`,`effect`,`gate`].some(e=>d.next_operation[e]!==r.next_operation[e])||a.current!==t)throw Error(`continuation_stale`);if(t.expires_at-Date.now()<=0)throw Error(`session_invalid`);let f=new AbortController;u.current=f;try{if(await e.request(()=>e.app.updateModelContext({structuredContent:{agdf_continuation:{schema_version:`1`,authorizes:!1,target:{...t.target},run_id:t.binding.run_id,expected_revision_id:r.revision_id,approved_decision:{operation_id:i.operation_id,gate:t.binding.gate,presentation_id:t.binding.presentation_id,previous_revision_id:t.binding.expected_revision_id,material_version:t.binding.material_version},next_operation:d.next_operation,instruction:`Verify the original receipt and fresh Core state. Redispatch gate-check for this exact target and Run, follow only already permitted work, and present the next human gate or blocker. This context grants no approval; never execute a human next_operation automatically.`}}},{timeout:1e4,signal:f.signal})),a.current!==t||Date.now()>=t.expires_at)throw Error(`continuation_unavailable`);let n=Ww.locales[t.binding.presentation_language]?.gateTitles,o=t.labels.continuationMessage.replace(`{gate}`,n?.[t.binding.gate]??t.binding.gate).replace(`{step}`,n?.[d.next_operation.gate]??d.next_operation.gate);if((await e.app.sendMessage({role:`user`,content:[{type:`text`,text:o}]},{timeout:Math.max(1,t.expires_at-Date.now()),signal:f.signal})).isError)throw Error(`continuation_unavailable`);await s.current(t)}finally{u.current===f&&(u.current=null)}}}:{}}},[e,t]),m=(0,J.useMemo)(()=>t&&!e.app.getHostCapabilities()?.serverTools?{...t,capability:`not_qualified`,enabled_actions:[]}:t,[t,r,e]);return r&&m&&p?(0,$.jsx)(Kw,{view:m,port:p,closeWarning:c},m.session_id):(0,$.jsxs)(`section`,{className:`decision-card`,children:[(0,$.jsx)(`h1`,{children:`AGDF`}),(0,$.jsx)(`p`,{role:`status`,children:t?.labels.connecting??`AGDF · …`})]})}(0,_.createRoot)(document.getElementById(`root`)).render((0,$.jsx)(qw,{bridge:new Hm(`AGDF Gate Decision`)}));</script>
105
+ `))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return MS(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=AC.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function BC(){return{exit:{taskListCheckValueChecked:HC,taskListCheckValueUnchecked:HC,paragraph:UC}}}function VC(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:WC}}}function HC(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function UC(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function WC(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=AC.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function GC(){return[Yx(),yS(),wS(),jC(),BC()]}function KC(e){return{extensions:[Xx(),bS(e),TS(),zC(e),VC()]}}var qC={tokenize:sw,partial:!0},JC={tokenize:cw,partial:!0},YC={tokenize:lw,partial:!0},XC={tokenize:uw,partial:!0},ZC={tokenize:dw,partial:!0},QC={name:`wwwAutolink`,tokenize:aw,previous:fw},$C={name:`protocolAutolink`,tokenize:ow,previous:pw},ew={name:`emailAutolink`,tokenize:iw,previous:mw},tw={};function nw(){return{text:tw}}for(var rw=48;rw<123;)tw[rw]=ew,rw++,rw===58?rw=65:rw===91&&(rw=97);tw[43]=ew,tw[45]=ew,tw[46]=ew,tw[95]=ew,tw[72]=[ew,$C],tw[104]=[ew,$C],tw[87]=[ew,QC],tw[119]=[ew,QC];function iw(e,t,n){let r=this,i,a;return o;function o(t){return!hw(t)||!mw.call(r,r.previous)||gw(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return hw(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(ZC,u,l)(t):t===45||t===95||qg(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&Kg(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function aw(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!fw.call(r,r.previous)||gw(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(qC,e.attempt(JC,e.attempt(YC,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function ow(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&pw.call(r,r.previous)&&!gw(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(Kg(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Yg(t)||$g(t)||t_(t)||e_(t)?n(t):e.attempt(JC,e.attempt(YC,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function sw(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function cw(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(XC,c,s)(t):t===null||$g(t)||t_(t)||t!==45&&e_(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function lw(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(XC,t,a)(o):o===null||$g(o)||t_(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function uw(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||$g(o)||t_(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||$g(e)||t_(e)?t(e):r(e)}function a(e){return Kg(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):Kg(t)?(e.consume(t),o):n(t)}}function dw(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return qg(e)?n(e):t(e)}}function fw(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||$g(e)}function pw(e){return!Kg(e)}function mw(e){return!(e===47||hw(e))}function hw(e){return e===43||e===45||e===46||e===95||qg(e)}function gw(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var _w={tokenize:Tw,partial:!0};function vw(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:Sw,continuation:{tokenize:Cw},exit:ww}},text:{91:{name:`gfmFootnoteCall`,tokenize:xw},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:yw,resolveTo:bw}}}}function yw(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=Gg(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function bw(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function xw(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||$g(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(Gg(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return $g(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function Sw(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||$g(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=Gg(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return $g(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),i_(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function Cw(e,t,n){return e.check(S_,t,e.attempt(_w,t,n))}function ww(e){e.exit(`gfmFootnoteDefinition`)}function Tw(e,t,n){let r=this;return i_(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function Ew(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&Rg(o,o.length,0,h_(s,e.slice(r+1,n),t)),Rg(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),Rg(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=m_(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=m_(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var Dw=class{constructor(){this.map=[],this.index=new Map}add(e,t,n){Ow(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0,this.index.clear()}};function Ow(e,t,n,r){if(n===0&&r.length===0)return;let i=e.index.get(t);if(i){i[1]+=n,i[2].push(...r);return}let a=[t,n,r];e.map.push(a),e.index.set(t,a)}function kw(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function Aw(){return{flow:{null:{name:`table`,tokenize:jw,resolveAll:Mw}}}}function jw(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let{type:e}=r.events[t][1];if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?te:c;return a===te&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):Z(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Q(t)?i_(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||$g(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Q(t)?i_(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):ee(t)}function h(t){return Q(t)?i_(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||Z(t)?b(t):ee(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):ee(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Q(t)?i_(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||Z(n)?!o||i!==a?ee(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):ee(n)}function ee(e){return n(e)}function te(t){return e.enter(`tableRow`),ne(t)}function ne(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),ne):n===null||Z(n)?(e.exit(`tableRow`),t(n)):Q(n)?i_(e,ne,`whitespace`)(n):(e.enter(`data`),x(n))}function x(t){return t===null||t===124||$g(t)?(e.exit(`data`),ne(t)):(e.consume(t),t===92?S:x)}function S(t){return t===92||t===124?(e.consume(t),x):x(t)}}function Mw(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new Dw;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(Pw(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=Nw(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=Nw(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=Nw(f,t,o,i,n,d)):(o[0]=o[1],d=Nw(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&Pw(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=kw(t.events,n))}return e}function Nw(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},Fw(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=Fw(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=Fw(t.events,n[2]),a=Fw(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},Fw(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function Pw(e,t,n,r,i){let a=[],o=Fw(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function Fw(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var Iw={name:`tasklistCheck`,tokenize:Rw};function Lw(){return{text:{91:Iw}}}function Rw(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return $g(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return Z(r)?t(r):Q(r)?e.check({tokenize:zw},t,n)(r):n(r)}}function zw(e,t,n){return i_(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function Bw(e){return Vg([nw(),vw(),Ew(e),Aw(),Lw()])}var Vw={};function Hw(e){let t=this,n=e||Vw,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(Bw(n)),a.push(GC()),o.push(KC(n))}function Uw({content:e,links:t,onOpen:n}){return(0,$.jsx)(Ix,{remarkPlugins:[Hw],skipHtml:!0,components:{a:({href:e,children:r})=>e&&Object.hasOwn(t,e)?(0,$.jsx)(`button`,{className:`text-link`,onClick:()=>n(t[e]),children:r}):(0,$.jsxs)(`span`,{children:[r,e?(0,$.jsxs)(`span`,{className:`muted`,children:[` (`,e,`)`]}):null]}),img:({alt:e})=>(0,$.jsxs)(`span`,{className:`muted`,children:[`[Bild: `,e||`ohne Beschreibung`,`]`]}),input:({checked:e})=>(0,$.jsx)(`span`,{children:e?`☑`:`☐`})},children:e})}var Ww={schemaVersion:1,fallbackLocale:`en`,optionOrder:[`approve`,`revise`,`decline`,`cancel`],lengthBudgets:{label:40,description:160,title:100},locales:JSON.parse('{"en":{"runResolution":{"title":"Choose the delivery run","latest":"Most recently updated active run","gate":"Current gate","updated":"Last updated","objective":"Objective","otherRuns":"Other active runs","choosePrompt":"Reply with the run ID to continue, or describe a different action. This selects a run; it does not approve a gate.","noneTitle":"No active delivery run","nonePrompt":"Would you like to start a new run, or do something else? No run has been created."},"installSetup":{"title":"AGDF installation setup","choicePrompt":"Set up the local MCP server? (1-3): ","invalidChoice":"Choose exactly 1, 2 or 3.","emptyChoice":"No choice was made. Choose 1, 2 or 3.","blockedChoice":"Complete setup is unavailable: {reason}","scopeTitle":"Choose the MCP registration scope","scopeChoicePrompt":"Choose MCP scope (1-3): ","invalidScopeChoice":"Choose exactly 1, 2 or 3.","emptyScopeChoice":"No scope was selected. Choose 1, 2 or 3.","blockedScopeChoice":"This scope is unavailable: {reason}","labels":{"surface":"Host","version":"AGDF version","plugin":"Plugin state","mcp":"MCP state","target":"MCP target","targetSource":"Target source","invocationContext":"Invocation and precedence context","invocationDirectorySource":"Invocation directory source","scope":"MCP scope","selectedStatus":"Selected registration","effectiveSource":"Effective configuration source","registrationPath":"Native configuration source","pluginConfiguration":"Plugin configuration","localExecution":"Local execution","packageAcquisition":"Package acquisition","removal":"Safe removal","authorizes":"Grants governance authority","result":"Result","setupRequest":"Setup choice","effectiveState":"Effective state","runtimeChecks":"Automatic checks","discovery":"Host discovery","restart":"Restart required","failure":"Failure","nextAction":"Next action"},"choices":{"full":"Complete setup","fullDescription":"Install the plugin, prepare the local AGDF MCP server and register it for the shown target and scope.","plugin_only":"Plugin only","pluginOnlyDescription":"Install the plugin and leave every MCP registration unchanged.","cancel":"Cancel","cancelDescription":"Stop before installation or MCP changes.","recommended":"recommended"},"scopeChoices":{"project":"Set up for this project","projectDescription":"Register AGDF for the shown project. This project configuration has native priority over a user default.","user":"Set up for this user","userDescription":"Register AGDF once as the host user default. A project configuration can override it.","back":"Back","backDescription":"Return to the setup choice without making changes.","existing":"currently configured"},"values":{"yes":"yes","no":"no","none":"none","required":"required","not_required":"not required","expectedVersion":"expected {version}"},"targetSources":{"explicit_dir":"explicit --dir","interactive_invocation_cwd_proposal":"original invocation directory proposal","interactive_invocation_cwd_selection":"selected original invocation directory","none":"none"},"invocationDirectorySources":{"explicit_dir":"explicit --dir","npm_init_cwd":"original npm invocation directory","process_cwd":"current process directory","none":"none"},"pluginStates":{"observed":"observed","healthy":"healthy","degraded":"degraded","not_installed":"not installed","unavailable":"unavailable","unknown":"unknown","not_run":"not run"},"mcpStates":{"not_requested":"not requested","not_checked":"not checked","not_configured":"not configured","configured_pending_restart":"configured, restart pending","configured_unverified":"configured, discovery unverified","discovered_ready":"discovered and ready","unchanged":"unchanged","disabled":"disabled","degraded":"degraded","failed":"failed","plugin_managed":"included in the plugin"},"scopes":{"project":"project","user":"user"},"registrationStates":{"absent":"absent","matched":"matched","foreign":"foreign","owned_mismatch":"AGDF-owned version mismatch","precedence_conflict":"higher-priority conflict","invalid":"invalid"},"effectiveSources":{"none":"none","unknown":"unknown","user":"user configuration","project":"project configuration","project_override":"project override","local":"local project configuration","shared_project":"shared project configuration","inline":"inline configuration","custom":"custom configuration"},"versionTransitions":{"installed":"installed","updated":"updated","unchanged":"unchanged","unknown":"transition unknown"},"runtimeCheckStates":{"not_run":"not run","not_checked":"not checked","cancelled":"cancelled","manual":"manual","decision_required":"host permission pending","enabled":"enabled","renewal_required":"review required","degraded":"degraded","failed":"failed","unavailable":"unavailable","receipt_missing":"choice record missing","receipt_unowned":"choice record not owned by AGDF","receipt_invalid":"choice record invalid","unknown":"unknown"},"setupRequests":{"plugin_only":"plugin only","full":"complete setup","cancel":"cancel"},"results":{"success":"success","partial":"partial","failed":"failed","cancelled":"cancelled"},"effectiveStates":{"cancelled":"cancelled before changes","plugin_ready_mcp_absent":"plugin ready, MCP absent","plugin_ready_mcp_unchanged":"plugin ready, MCP unchanged","configured_pending_restart":"configured, restart pending","configured_unverified":"configured, discovery unverified","discovered_ready":"discovered and ready","partial":"partially completed","degraded_or_foreign":"MCP degraded or foreign","failed":"failed","plugin_ready_mcp_in_plugin":"plugin ready, MCP included in the plugin","mcp_ready_hook_review_required":"MCP ready – hook confirmation pending","mcp_ready_hook_verification_pending":"MCP ready – hook verification pending","control_repair_required":"repair required","control_unsupported":"unsupported control format"},"discoveryStates":{"not_checked":"not checked","pending_restart":"pending restart","discovered":"discovered"},"failurePhases":{"input_validation":"input validation","setup_preflight":"setup preflight","setup_selection":"setup selection","runtime_check_permission":"automatic-check choice","plugin_operation":"plugin operation","plugin_verification":"plugin verification","mcp_preflight":"MCP preflight","mcp_enable":"MCP enable","mcp_disable":"MCP disable","plugin_disable":"plugin disable","plugin_uninstall":"plugin uninstall","result_validation":"result validation","presentation":"presentation"},"failureCodes":{"input_invalid":"invalid input","setup_preflight_failed":"setup preflight failed","setup_selection_blocked":"setup choice blocked","runtime_check_permission_failed":"automatic-check choice failed","plugin_operation_failed":"plugin operation failed","plugin_verification_failed":"plugin verification failed","mcp_preflight_failed":"MCP preflight failed","mcp_enable_failed":"MCP enable failed","mcp_disable_failed":"MCP disable failed","plugin_disable_failed":"plugin disable failed","plugin_uninstall_failed":"plugin uninstall failed","result_invalid":"invalid setup result","presentation_failed":"presentation failed"},"actions":{"none":"No further action is required.","cancelled":"No changes were made. Start setup again when ready.","restart_host":"Restart the host and start a fresh session.","verify_host_discovery":"Start a fresh host session and verify AGDF MCP discovery.","retry_plugin":"Resolve the plugin failure, then rerun the same installation command with --verbose.","retry_mcp":"Keep the installed plugin, resolve the MCP failure and retry complete setup.","resolve_mcp_registration":"Resolve the conflicting MCP registration before complete setup.","review_runtime_checks":"Review the automatic-check state and retry setup.","review_codex_hook":"Review and trust the AGDF hook under /hooks, then start a fresh session. CLI MCP tests need no desktop restart.","enable_codex_hook":"Enable the AGDF hook under /hooks, then verify it in a fresh session.","verify_codex_hook":"Verify execution of the trusted AGDF hook in a fresh session. Trust alone is not execution evidence.","inspect_codex_hook":"Inspect the AGDF hook under /hooks and retry runtime-checks status --surface codex.","choose_plugin_only_or_cancel":"Choose plugin only or cancel; complete setup is blocked.","inspect_control":"Inspect the repository control without changes. Preserve unsupported data and use a fresh current target; there is no migration or reset."},"blockReasons":{"none":"none","target_required":"an absolute MCP target is required","mcp_foreign":"the MCP registration is foreign","mcp_precedence_conflict":"a higher-priority registration conflicts","mcp_invalid":"the MCP registration is invalid","mcp_preflight_failed":"the MCP preflight failed"},"restartReasons":{"plugin_reload":"plugin reload","mcp_discovery":"MCP discovery"},"runtimeConsent":{"title":"AGDF {version} for {host}","appliesTo":"Applies to this {host} installation for your user account.","question":"Let AGDF check your project status automatically at session start?","previousEnabled":"Your previous choice: automatic checks requested","previousManual":"Your previous choice: manual checks","permissionAfterInstall":"{host} permission: checked after installation","safeTitle":"Safe by design","reads":" Reads only AGDF runtime information and .agdf/control in this project","noProjectChanges":" Changes no project files and uses no network","noGovernanceAuthority":" Never approves AGDF work","savesChoice":"AGDF saves your choice. {host} remains in control of permission.","chooseAgain":"You choose again for every install or update and whenever the check changes.","turnOff":"Turn it off anytime: {revocation}","chooseTitle":"Choose","enableChoice":" [1] Yes, check automatically","manualChoice":" [2] No automatic checks","manualDescription":" AGDF still works. Checks run when you request them.","detailsChoice":" [D] Show technical details","cancelChoice":" [Esc] Cancel installation","progress":"Setting up AGDF {version} for {host}...","loadedSessions":"Note: {count} running Claude Code session(s) still use the old AGDF. Restart them for {version}; if the update fails, close them first.","linePrompt":"Choice (1/2/D/cancel): ","lineInvalid":"Choose 1, 2 or D, or type cancel.","keyPrompt":"Choice: ","keyInvalid":"Press 1, 2, D or Esc.","detailsEcho":"details","decisionEcho":{"enable":"enable","manual":"manual","cancel":"cancel"},"detailsTitle":"Technical details","detailsInstallationScope":"global user installation","detailsRuns":"one argument-free local session check at session start","detailsReads":"AGDF runtime identity and .agdf/control state in the current repository","detailsWrites":"one AGDF-owned intent receipt","detailsRenewal":"material command, runtime, source, scope or adapter identity change requires renewed consent","detailsLabels":{"appliesTo":"Applies to","runs":"Runs","reads":"Reads","saves":"Saves","permissionControl":"Permission control","command":"Command","renewal":"Renewal"},"permissionOwners":{"codex":"Codex native hook trust","claude":"Claude Code plugin enablement","copilot":"GitHub Copilot plugin hook review","opencode":"OpenCode plugin and explicit permission configuration"}},"controlRepair":{"title":"Repair repository control data","resultDescription":"Plugin successfully installed; repository control data needs repair.","searchDescription":"Search recovery journals and Git for original records. Nothing is changed until you select a concrete repair.","availableDescription":"{count} runs have a verified repair proposal.","repairedDescription":"Repaired runs: {count}","backupDescription":"Before repair, the current record and the selected originals are saved in a private repair journal.","resetDescription":"Restoring missing artefacts in unsealed runs also resets unproven approvals; these runs resume at UR.","manualDescription":"Original data or manual correction required","startChoice":"Start repair assistant","skipChoice":"Later","detailsChoice":"Show details","applyChoice":"Apply the proposed repairs","prompt":"Choice (empty = later): ","invalidChoice":"Choose 1, 2 or 3.","kinds":{"manual":"needs original data or correction","self_reference":"verified self-reference correction","run_snapshot":"verified original run snapshot","missing_artefacts":"original artefacts found in Git"},"reasons":{"AGDF_REPAIR_ORIGINAL_REQUIRED":"Restore the missing original file","AGDF_REPAIR_REFERENCE_REQUIRED":"Verified file references required","AGDF_RECOVERY_ARTEFACT_MISSING":"Restore the missing original file"}},"controlCompatibility":{"title":"Repository control compatibility","target":"Repository","state":"Control state","format":"Supported run format","historicalCount":"Historical runs retained: {count}","detailsDescription":"Use Details or control-maintenance --dir <absolute-repository> --details for run names and diagnostics.","states":{"not_checked":"not checked","absent":"no existing control state","current":"compatible","repair_required":"repair required","historical":"historical record retained","unsupported":"unsupported"}}},"statusCard":{"title":"AGDF status-card","status":"Status","field":"Status field","value":"Value","run":"Selected run","humanTitle":"Run title","gate":"Current gate","requiredDecision":"Required decision","blocked":"Blocked by","blockerDetails":"Affected item","sourceWording":"original wording","recovery":"Recovery action","prdReadinessItems":"PRD readiness items","traceabilityGaps":"Traceability gaps","missing":"Missing approval","maintenance":"Evidence maintenance","outcome":"Outcome after approval","internal":"Internal next step","userGate":"Next user gate","userAction":"User action required","nextGate":"Next gate after approval","allowedAfter":"Allowed after approval","skill":"Next skill","step":"Next step","quality":"Quality outlook","userDecision":"Your decision","agentAllowed":"Agent may work on now","waitingOn":"Waiting for","userTurn":"Your turn","userInputNeeded":"Provide the requested details.","agentWorking":"I am continuing","noReply":"No reply needed","summaryRecovery":"Correct the approval summary","summaryReason":"Validation reason","summaryExpected":"Required field","sourceLanguage":"Source language","languageEnglish":"English","languageGerman":"German","originalLanguageExcerpts":"summary follows the selected language","lifecycle":"Delivery status","allowed":"Allowed now","forbidden":"Forbidden now","artefacts":"Artefacts","breadcrumb":"Path","breadcrumbFulfilled":"✓","breadcrumbCurrent":"●","breadcrumbOpen":"○","breadcrumbSeparator":" · ","sdReadinessItems":"SD readiness items","agentNext":"Next permitted agent action","qaFollowUp":"QA follow-up"},"controlSetup":{"title":"AGDF control setup","field":"Setup field","value":"Value","status":"Status","target":"Target","durableScope":"Durable scope","plannedEffect":"Planned effect","excludedAuthority":"Not authorized","nextAction":"Next action","replyOptions":"Reply exactly with","required":"Control setup required","scopeValue":".agdf/control in the selected repository","effectValue":"Create an owned canonical control scaffold and empty canonical run store.","excludedValue":"This card creates no automatic run or UR and grants no gate approval.","actionValue":"An active delivery intake then persists its reviewed run and UR without another setup prompt; standalone init remains scaffold-only.","replyOptionsValue":"\\"Authorize setup\\" to create the shown scaffold, or \\"Cancel\\" to stop without changes."},"operationalValues":{"recoverOriginalLayoutMigration":"Inspect planned_layout.apply/original-UUID and recover only the original confirmed operation.","restoreContainedConfiguration":"Restore a supported contained configuration.","preserveUnsupportedHistory":"Use a compatible reader supporting the recorded format; preserve original history bytes and provenance.","inspectOriginalHistory":"Inspect the original version and integrity evidence; do not automatically rewrite, migrate or remove unrelated history.","inspectChangedApprovedSources":"inspect the changed approved sources through their existing revision/recovery owner","continueFromUnconfirmedApproval":"continue from an unconfirmed old approval","resolveChangedApprovedMaterial":"Resolve the changed approved material through its existing source/recovery owner; do not infer a fresh approval.","reviseCurrentDecidedMaterial":"revise the current material through its existing authoring or remediation owner","approveUnchangedDecidedMaterial":"approve unchanged decided material","invalidateApprovedUpstreamSources":"invalidate approved upstream sources without supported revision","reviseDecidedMaterialStep":"Revise the decided material through its existing owner, register the changed version and obtain a fresh presentation and deliberate decision.","explicitVcsHandoff":"prepare an explicitly requested VCS handoff","repeatCompletedRun":"repeat completed Run work","automaticVcsRelease":"perform VCS or release actions automatically","completedExplicitHandoff":"Run completed; prepare a VCS handoff only when explicitly requested.","endedRunForbidden":"continue or reopen an ended Run","endedSupersededNext":"Run ended as superseded; start a new run to continue the work.","endedAbandonedNext":"Run ended as abandoned; start a new run to continue the work.","inspectInconsistentCompletion":"inspect the inconsistent completion and route it to its existing recovery owner","repeatCompletedAutomatically":"repeat completed work automatically","claimCleanCompletion":"claim clean completion","resolveInconsistentCompletion":"Resolve the inconsistent completed Run obligations before claiming a clean closeout.","blockedPrdDecisionsOpen":"Required product decisions are unresolved","blockedSdTraceability":"Solution Design traceability is incomplete","blockedTpTraceability":"Task Plan traceability is incomplete","blockedControlMissing":"Durable AGDF control is missing","blockedRunMissing":"A canonical active run is missing","blockedRelationshipMissing":"A required artefact relationship is missing","blockedRelationshipEvidenceMissing":"Evidence for a required artefact relationship is missing","blockedRelationshipConflict":"Required artefact relationships conflict or are duplicated","relationshipCorrected":"The missing artefact relationship was restored from exact sealed reviewed evidence.","blockedEvidenceDeclared":"Required evidence is missing","blockedRiskDeclared":"A declared risk requires resolution","blockedUnknown":"An unresolved control finding needs attention","completeControlStateFields":"complete the current control-state fields","repairControlScaffold":"repair the AGDF control scaffold","clarifyUserNeed":"clarify user need","formulateAndPersistUr":"formulate and persist UR","draftOrRefinePrd":"draft or refine PRD","resolveListedPrdDecisions":"resolve the listed PRD decisions together and record a new run revision","resolveOpenPrdDecisions":"resolve the open PRD approval decisions together, then record the revision through the inspected current recording operation","noPrdBeforeDecisions":"present or approve PRD before required product decisions are resolved","completePrdReadinessItems":"complete the listed PRD readiness items together and record a new run revision","nextPrdReadinessItems":"complete the open PRD readiness items together, then record the revision through the inspected current recording operation","noPrdBeforeReadiness":"present or approve PRD before required decisions and acceptance criteria are ready","completeSdTraceability":"complete the listed SD traceability rows and record a new run revision","nextSdTraceability":"complete the listed SD traceability rows, then record the revision through the inspected current recording operation","completeTpTraceability":"complete the listed TP traceability rows and record a new run revision","nextTpTraceability":"complete the listed TP traceability rows, then record the revision through the inspected current recording operation","noTraceabilityBeforeApproval":"present or approve the current artefact before its traceability is complete","defineScope":"define scope","defineAcceptanceCriteria":"define acceptance criteria","defineNonGoals":"define non-goals","requestExactPrdApproval":"request exact PRD approval","forbidCreateSd":"create SD","forbidCreateTp":"create TP","forbidBrownfieldAnalysisBeforeTp":"run Brownfield Analysis as implementation preparation","forbidImplementCode":"implement code","afterPrdApproval":"Draft Solution Design; implementation remains forbidden.","draftOrRefineSd":"draft or refine Solution Design","defineArchitecture":"define architecture","defineOwnership":"define ownership","requestExactSdApproval":"request exact SD approval","afterSdApproval":"Draft Task/Test Plan; implementation remains forbidden.","draftOrRefineTp":"draft or refine Task/Test Plan","defineTaskIds":"define task IDs","defineTestEvidence":"define test evidence","requestExactTpApproval":"request exact TP approval","afterTpApproval":"Run implementation-prep Brownfield Analysis before CD+Tests; no further user approval is required at this internal step.","runBrownfieldForApprovedTp":"run Brownfield Analysis for the approved TP scope","verifyOwnersReuseRegression":"verify existing owners, reuse paths and regression risks","forbidImplementationBeforeBrownfield":"implement before Brownfield evidence supports the approved TP path","nextBrownfieldBeforeCdTests":"Run Brownfield Analysis for the approved TP scope before CD+Tests.","nextCdTestsBeforeCr":"Implement the approved TP scope, run its tests, and record CD+Tests evidence before CR.","nextCdTestsAfterTpApproval":"TP approved. Implementation, tests and CD+Tests evidence are permitted within the approved scope.","unknownRunAction":"I cannot safely identify the selected run\'s next action. Please clarify the intended next action for this run.","hostEvidenceProvisioningChoice":"Choose whether AC-006 stays open under this TP or a separate host-provisioning scope update starts. Host changes are not authorized by this TP.","approvalSummaryRecovery":"No approval is requested. Correct the named summary requirement in {language}; preserve the complete contents.","completeMissingApprovalSummary":"Add the complete localized summary to the linked artefact, record a new revision, and prepare a fresh approval presentation.","runMandatoryCodeReview":"run mandatory code review","recordCodeReviewFindings":"record correctness, regression, security and maintainability findings","fixBlockingReviewFindings":"fix blocking review findings","nextCodeReviewBeforeQa":"Run Code Review for the implemented TP scope and resolve blocking findings before QA.","nextReviewsBeforeQaApproval":"Record TP Review and Clean Implementation Review before requesting Approval: QA.","recordRequiredReviews":"record TP Review and Clean Implementation Review","nextRerunQaForCurrentEvidence":"Rerun QA against the current evidence before requesting Approval: QA.","nextQaGateAndApproval":"Run the QA gate, persist the QA report, and request exact approval: Approval: QA","recordEvidence":"record evidence","requestExactUrApproval":"request exact UR approval","reviseQaImplementation":"revise the implementation against the QA findings","refreshCdTestsAndReviews":"refresh CD+Tests and mandatory reviews","rerunQaWithEvidence":"rerun QA with refreshed evidence","runQaGate":"run QA gate","persistQaReport":"persist or refine the QA report","requestExactQaApproval":"request exact QA approval","requestExactUatApproval":"request exact UAT approval","prepareNonOperativeDeliverySummary":"prepare non-operative delivery summary","runDoctorAgain":"run doctor again","recordRunRevision":"Preserve unrecorded bytes, restore the trusted sealed state, then stage the intended change through its current recording owner.","restoreRecordedApprovals":"Restore the recorded Approvals rows; record a gate approval only with run-approve after the exact user reply.","repairRunSeal":"Restore trusted sealed bytes and inspect the change; never remove seals or adopt unknown edits.","recoverUnsealedRun":"Restore a trusted sealed revision or use the explicit legacy migration path; do not infer approvals from this file.","recoverPendingRunStep":"Use explicit supported recovery for this exact pending operation; preserve conflicting bytes.","implementApprovedTpTasks":"implement the approved TP tasks","runApprovedTestPlan":"run the approved test plan","recordImplementationTestEvidence":"record implementation and test evidence","createOrMigrateCanonicalRun":"create or migrate a canonical run with an explicit run id","selectCanonicalRunExplicitly":"select an existing canonical run explicitly","persistRealUrBeforeApproval":"persist a real UR revision before requesting gate approval","forbidLaterGateArtefacts":"create later-gate artefacts beyond the current allowed gate","forbidPrematureImplementation":"implement gated work before the gate allows it","forbidGatedImplementation":"implement gated work","forbidQaPass":"claim QA pass","forbidQaOrReleaseClaim":"claim QA or release readiness","forbidQaApproval":"request QA approval","forbidDeliveryReadiness":"claim delivery readiness","forbidUatApproval":"request UAT approval","forbidRelease":"release","forbidDeliveryReadinessBeforeQa":"claim delivery readiness before QA approval and report evidence","forbidPush":"push","forbidOpenPr":"open PR","forbidCommitWithoutInstruction":"commit without explicit user instruction and required approval","forbidApprovalWithoutDurableRun":"request gate approval without a durable run and artefact","repairRuntimePackagingBaseline":"Repair the separately owned runtime-packaging baseline, rerun complete smoke and refresh QA.","fillUrControlState":"Fill the current UR control state, persist the UR draft, and request exact approval: Approval: UR.","afterUrApproval":"Run Brownfield Review and proportional routing as one internal operation; no user action is required now.","runBrownfieldReviewAfterG00":"run Brownfield Review after G-00","identifyBrownfieldOwnersQuestions":"identify existing workstream, owners, SoT, reuse risks and open PRD/SD questions","markBrownfieldReviewDoneOrNotApplicable":"mark Brownfield Review as done or not_applicable in the selected RUN_STATE.md","forbidPrdBeforeBrownfieldResolved":"create PRD before Brownfield Review is resolved","nextBrownfieldReviewBeforePrd":"Run Brownfield Review after G-00 before drafting PRD, or mark Brownfield Review not_applicable with evidence.","nextStructuredPrdBeforeSdTp":"Draft or refine the PRD; do not implement before PRD, SD and TP are approved.","reviewLinkedArtefactForDecision":"Review the linked artefact and choose whether to approve, request revision, or decline it.","nextStructuredSlicePrdBeforeApproval":"Draft or refine the smallest PRD slice justified by Brownfield Review; do not implement before required artefacts are approved.","nextSdBeforeTp":"Draft or refine the Solution Design; do not implement before SD and TP are approved.","nextTpBeforeImplementation":"Draft or refine the Task/Test Plan; do not implement before TP is approved.","regenerateLegacyProjection":"Regenerate the explicit legacy projection or remove it after legacy consumers are retired.","requestQaApproval":"Request exact approval: Approval: QA.","afterQaApproval":"Request UAT when QA has passed; release remains gated.","afterQaDeviationApproval":"Request UAT after the explicitly presented QA deviations are accepted; native qualification remains unchanged.","afterUatApproval":"Produce OR or delivery closeout; VCS and release actions still require explicit instruction.","produceOrOrDeliveryCloseout":"produce OR or delivery closeout","prepareVcsHandoffWhenRequested":"prepare commit, push or PR handoff when requested","forbidAutomaticVcsAndRelease":"commit, push, open PR or release automatically","produceDeliveryCloseoutOrRequestedHandoff":"Produce delivery closeout or requested handoff; do not perform VCS actions automatically.","captureFreshSessionEvidence":"Restart GitHub Copilot and capture fresh-session installed-plugin, skill-discovery and SessionStart evidence before the UAT decision.","preserveInstalledLoadedBoundary":"Preserve the distinction between installed state and fresh-session loaded behavior.","resolveDeliveryFindings":"Resolve blocking or revise-level delivery-map findings before making stronger quality claims.","reviewDeliveryWarnings":"Review warning-level findings when investing further in delivery confidence.","noAdditionalQualityFollowUp":"No additional quality follow-up identified from the current control state.","renewCopilotTargetEvidence":"Obtain a separate runtime-check consent decision, restart Copilot and capture both fresh-session paths.","proveCopilotTargetContexts":"Prove both repo-less suppression and repository-bound gate selection in the installed Copilot host.","retestCopilotUnresolvedEarlyReturn":"Fully restart Copilot, start a new repo-less German GeneralChat and invoke `agdf-qa-gate`; capture the repository-bound path separately afterward.","proveCopilotUnresolvedEarlyReturn":"Prove that the loaded host derives language from the current conversation and transmits the canonical card verbatim.","createSelectOrMigrateRun":"Create, migrate or select the canonical run, then persist its UR revision before requesting approval.","selectIntendedRun":"Pass --run <run_id> or set AGDF_RUN_ID to select the intended run.","selectOrEvaluateActiveRuns":"Pass --run <run_id> or set AGDF_RUN_ID to select the intended run, or use --all-active to evaluate every active run independently.","resolveReportedFinding":"Resolve the finding named under Blocked by, then run gate-check again.","addEvidenceRow":"Add at least one evidence row or explicitly document that no evidence exists yet.","addBacklogPointer":"Add the active item or document that no governed delivery item is active.","alignVerifiedChangeRowStatus":"Align the run-state row and record status.","assignPrimarySot":"Assign one primary source of truth for at least the domains relevant to the next run.","verifiedChangeCaptureCommit":"Capture the current full Git commit id before eligibility or escalate.","verifiedChangeCaptureBaseline":"Capture the worktree baseline before marking the record eligible.","clarifyContextGraphImpact":"Clarify the Context Graph impact before advancing the gate.","closeExecutedVerifiedChange":"Close the executed Verified Change with its compact record and offer delivery closeout; do not perform VCS actions automatically.","completeBrownfieldSelection":"Complete Brownfield Selection before eligibility.","completeMiniCloseoutEvidence":"Complete execution and Mini-Closeout evidence before marking OR done.","confirmActiveScope":"Confirm the active scope from durable artefacts or record why branch/workspace evidence is only supporting evidence.","verifiedChangeCorrectDerivedPaths":"Correct the derived path list or escalate.","verifiedChangeCorrectSnapshot":"Correct the historical execution snapshot or escalate.","createOrActivateGovernedRun":"Create or activate a governed run.","nextRepairVerifiedChangeRecord":"Create or repair VERIFIED_CHANGE.md, capture the baseline and satisfy every eligibility check before implementation; escalate if any condition is unproven.","verifiedChangeDeclareSourcePaths":"Declare a bounded comma-separated source path list; otherwise escalate.","nextDraftMinimalUrThenSetup":"Draft the minimal UR, obtain explicit setup or link authority, then initialize and persist durable control before requesting any gate approval.","verifiedChangeCleanCandidate":"Escalate or start from a clean candidate path; do not adopt pre-existing edits.","fillMemoryReason":"Fill memory_reason or set memory_target to none.","fillArtefactChainRow":"Fill the Artefact Chain row with concrete evidence before treating the delivery map as complete.","fillNextAllowedAction":"Fill the next allowed action before asking an agent to continue delivery work.","nextImplementEligibleVerifiedChange":"Implement only the eligible Verified Change record scope, then record passing propagation and validation evidence.","keepRunsIndependentlyActionable":"Keep every active run independently actionable.","keepSingleActiveSot":"Keep exactly one active primary source of truth for this domain.","backlogOneLinkPerType":"Keep exactly one link per artefact type.","keepSingleArtefactRow":"Current document references derive from typed bindings; restore valid records instead of editing derived tables.","verifiedChangeLinkRecord":"Link a stable repository-relative VERIFIED_CHANGE.md artefact from the selected run state.","listCompetingScopes":"List competing scope lines with gate and artefact evidence, then clarify the active scope.","verifiedChangeMarkEscalated":"Mark the record escalated and continue at the declared structured target.","verifiedChangeNameOwner":"Name one canonical owner path; otherwise escalate.","nextPersistApprovedUr":"Persist the approved UR artefact and link it from the AGDF control state before continuing.","nextPersistApprovedPrd":"Persist the approved PRD artefact and link it from the AGDF control state before continuing.","nextPersistApprovedSd":"Persist the approved SD artefact and link it from the AGDF control state before continuing.","nextPersistApprovedTp":"Persist the approved TP artefact and link it from the AGDF control state before continuing.","nextPersistApprovedQa":"Persist the approved QA report and link it from the AGDF control state before continuing.","nextProceedAsStructuredSlice":"Proceed as structured_slice: draft the required PRD and request exact approval: Approval: PRD.","nextProceedAsStructuredDelivery":"Proceed as structured_delivery: draft the required PRD and request exact approval: Approval: PRD.","nextProceedAsQuickTask":"Proceed as a Quick Task within the Brownfield Review scope and record verification evidence.","verifiedChangeRecaptureBaseline":"Recapture the baseline before eligibility or escalate; do not reuse a stale or fabricated baseline identity.","verifiedChangeRecordAcceptanceCheck":"Record a deterministic acceptance or consistency check, or escalate.","verifiedChangeRecordExecutionScope":"Record complete execution-scope evidence or escalate.","verifiedChangeRecordValidation":"Record passing deterministic validation evidence or escalate.","verifiedChangeRecordPropagation":"Record successful propagation evidence or escalate.","verifiedChangeRecordEscalationTarget":"Record the Brownfield-selected structured escalation target.","nextRecordModeSliceDecision":"Record the Mode/Slice Decision from Brownfield Review with scope reason and evidence before choosing PRD depth or Quick Task execution.","verifiedChangeRecordChangedPaths":"Record the exact changed paths or escalate.","verifiedChangeRecordPropagationCommand":"Record the propagation command or escalate.","removeUnsafePathText":"Remove absolute, traversal, unsupported-backslash or otherwise non-normalized path text.","replaceContextGraphExample":"Remove the example or replace it with an evidenced node that has an exit criterion.","repairOrRemoveInvalidRun":"Repair or remove the invalid run entry.","nextRequestUatApproval":"Request exact approval: Approval: UAT before delivery handoff.","resolveContextGraphLink":"Resolve Context Graph action: link.","resolveContextGraphUpdate":"Resolve Context Graph action: update.","resolveContextGraphCreate":"Resolve Context Graph action: create.","resolveContextGraphResolveDrift":"Resolve Context Graph action: resolve_drift.","nextResolveBlockingQa":"Resolve or route the blocking QA findings via their authoritative owner, then rerun the required steps. Do not request Approval: QA from a block report.","resolvePerRunFindings":"Resolve per-run findings.","nextResolveBrownfieldBlocker":"Resolve the Brownfield Review blocker before choosing a delivery path.","nextResolveQaRevise":"Resolve the QA revise findings, refresh CD+Tests and reviews, then rerun QA. Do not request Approval: QA from a revise report.","verifiedChangeRestoreGit":"Restore Git repository access or use the structured path.","restoreQualityContracts":"Restore the generated contracts or fix the JSON contract schema.","initControlWhenNeeded":"Run npx --yes @agdf/cli@latest init only when the repository should own durable AGDF control state or deterministic setup is explicitly needed.","repairRunIdentity":"Preserve unsupported or unproven data; inspect the current target and use a fresh current Run without conversion.","verifiedChangeSetStatus":"Set a supported record status or escalate to the declared structured target.","setCurrentGate":"Set current_gate to the current delivery gate or none.","verifiedChangeSetRelatedUr":"Set related_ur to the selected run\'s durable UR artefact path.","updateUrArtefactRowStatus":"Update the UR artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updatePrdArtefactRowStatus":"Update the PRD artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updateSdArtefactRowStatus":"Update the SD artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updateTpArtefactRowStatus":"Update the TP artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","updateQaArtefactRowStatus":"Update the QA artefact row in the selected RUN_STATE.md to use the gate-specific durable status vocabulary.","backlogArtefactTypes":"Use UR, Brownfield, PRD, SD, TP, QA or OR.","backlogLinkStyle":"Use [UR](artefacts/<key>/UR.md) style links separated by a middle dot.","backlogScopeTag":"Use [framework-maintenance] or [external-delivery], or remove the bracketed tag.","backlogArtefactTarget":"Use a document-relative artefact target such as artefacts/<key>/UR.md.","backlogStatusLabel":"Use a documented human status label or a supported legacy snake_case value.","useSafeArtefactPath":"Use a plain repository-relative path or one complete Markdown code span.","nextUseDeliveryCloseoutOnRequest":"Use delivery closeout only when an operative VCS handoff is explicitly requested.","useDistinctArtefacts":"Use distinct artefacts or a lifecycle-consistent Verified Change compact record.","useConsistentReviewAliasStatus":"Use one consistent status for aliases of the same artefact role.","backlogLayout":"Use the canonical compact layout or the supported legacy 13-column layout.","verifiedChangeStructuredOrWorktree":"Use the structured path or restore Git worktree access.","verifiedChangeStructuredForProhibitedImpact":"Use the structured path when any prohibited impact applies.","forbidAddProhibitedImpacts":"add prohibited impacts","captureBaselinePaths":"capture baseline paths","chooseNextGateDepth":"choose the next required gate depth before drafting PRD or implementing","forbidReadinessWithoutEvidence":"claim QA or release readiness without evidence","forbidQaUatReleaseClaim":"claim QA, UAT or release readiness","forbidReleaseClaim":"claim release readiness","forbidValidationReleaseClaim":"claim validation, QA, UAT or release readiness","forbidCreatePrd":"create PRD","forbidCreateBrownfieldAnalysis":"create Brownfield Analysis","forbidCreateUat":"create UAT","forbidPrdBeforeSizing":"create PRD before process size is decided","forbidRitualArtefacts":"create PRD, SD, TP, QA or UAT by ritual","forbidSdTpBeforePrdApproval":"create SD or TP before PRD approval","forbidBroadArtefacts":"create broad PRD/SD/TP artefacts by ritual","forbidAnyLaterGateArtefacts":"create later-gate artefacts","refineVerifiedChangeRecord":"create or refine the compact Verified Change record","decideModeSlice":"decide whether the approved UR is quick_task, verified_change, structured_slice, structured_delivery or block","draftMinimalUr":"draft the minimal UR for the requested change in the response","draftEscalatedPrd":"draft the structured PRD required by the declared escalation target","forbidScopeExpansion":"expand scope beyond the Brownfield Review decision","forbidImplementCandidate":"implement candidate changes","implementDeclaredPaths":"implement only declared source and derived paths","implementNarrowUrScope":"implement the narrow approved UR scope","forbidImplementViaVerifiedChange":"implement through Verified Change","initializeDurableControl":"initialize and persist durable control before requesting a gate approval","linkArtefactFromControl":"link the artefact from the selected RUN_STATE.md","obtainSetupAuthority":"obtain explicit authority to initialize or link durable control","offerDeliveryCloseout":"offer delivery closeout when requested","persistApprovedUrInStablePath":"persist the approved UR artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/UR.md","persistApprovedPrdInStablePath":"persist the approved PRD artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/PRD.md","persistApprovedSdInStablePath":"persist the approved SD artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/SD.md","persistApprovedTpInStablePath":"persist the approved TP artefact in a stable artefact path such as .agdf/control/runs/<run_id>/documents/TP.md","persistApprovedQaInStablePath":"persist the approved QA report in a stable artefact path such as .agdf/control/runs/<run_id>/documents/QA_REPORT.md","proveVerifiedChangeEligibility":"prove fail-closed eligibility with doctor and gate-check","recordEvidenceAndOrLite":"record evidence and close with OR-lite","recordExecutionAndMiniCloseout":"record execution evidence and mini-closeout","recordModeSliceFields":"record scope reason, evidence and required next gate depth in the selected RUN_STATE.md","recordQaRemediation":"record the next permitted remediation or upstream decision","forbidRepeatQuickTask":"repeat Quick Task execution","rerunQaAfterBlocker":"rerun QA only after the blocker is resolved","resolveModeSliceUncertainty":"resolve ownership, SoT, evidence, impact or product-direction uncertainty","retainEscalationEvidence":"retain the Verified Change escalation evidence","routeBlockingQaFindings":"route the blocking QA findings to their authoritative owner","runDeclaredValidation":"run declared propagation and validation commands","runGateCheckAgain":"run gate-check again","runRelevantChecks":"run relevant checks","forbidTouchUnlistedPaths":"touch unlisted paths","useCloseoutWhenRequested":"use delivery closeout when explicitly requested","useVerifiedChangeMiniCloseout":"use the Verified Change mini-closeout","resolveOrAcceptMissingEvidence":"Resolve or explicitly accept the missing evidence before advancing the gate.","assignRiskMitigationOrOwner":"Assign mitigation or ownership before advancing the gate.","blockedUrRequirements":"UR requirements need clarification","completeUrRequirements":"complete the UR requirement clarification and record a new run revision","nextUrRequirements":"complete the UR requirement clarification, then record the revision through the inspected current recording operation","forbidUnreadyUr":"present or approve UR before requirement clarification is complete","completeSdReadinessItems":"complete the listed SD readiness items together and record a new run revision","forbidSdBeforeReady":"present or approve SD before required design decisions are ready","nextSdReadinessItems":"complete the open SD readiness items together, then record the revision with the shared artefact writer","blockedSdDecisionsOpen":"required design decisions are unresolved or malformed","sourceRevisionUxNext":"Reassess UX intent under the current approved UR before dependent source authoring.","sourceRevisionUxAssess":"reassess UX intent under the current approved UR and reviewed analytical context","sourceRevisionUxRecord":"record the renewed analysis before dependent authoring","sourceRevisionUxForbidden":"draft or approve a dependent source before analytical reassessment","sourceRevisionAuthoringNext":"reassess source analyses before renewing approvals","sourceRevisionResolveRoute":"resolve the analytical route under the retained approved UR","sourceRevisionSkipApprovals":"skip renewed source approvals","nextResolveReviseQa":"Resolve or route the QA revise findings through their authoritative owner before dependent work. Do not request Approval: QA from a revise report.","collectExactQaEvidence":"collect the exact QA evidence obligation through its existing owner","nextCollectQaEvidence":"Collect the exact QA evidence obligation through its existing owner. Prepare a complete observation sequence before necessary external action, then rerun QA.","blockedDecisionContent":"Required decision content is incomplete","completeDecisionContent":"Complete the current decision content through its existing owner, record it canonically, then recheck this exact Run.","correctDecisionContent":"correct only permitted current decision content through its existing owner","noIncompleteContentApproval":"request approval before required decision content is concrete","currentOperationRecovery":"Preserve the original bytes; inspect the original current operation and its supported recovery owner.","currentRunRecordEvidence":"Record actual evidence through the current Run evidence owner.","currentRunSelectNoConversion":"Select a valid current Run; unsupported control is never converted automatically.","currentRunCreateWithUuid":"create a current Run with an operation UUID","currentUrPersistBeforeApproval":"Create or select the current Run, then persist its UR revision before requesting approval.","blockedPrdReadiness":"PRD criteria or required sources are incomplete","blockedApprovalSummary":"The required approval summary is incomplete","completeApprovalSummary":"complete the current artefact approval summary and record a new run revision","forbidApprovalBeforeSummaryReady":"present or approve the current artefact before its required approval summary is ready","nextApprovalSummary":"complete the current artefact approval summary, then record the revision through the inspected current recording operation"},"scopeClassification":{"title":"AGDF scope classification","field":"Field","value":"Value","classification":"Classification","mode":{"quick_task":"Quick Task"},"boundary":{"inside":"Trivial change boundary satisfied","outside":"Outside trivial change boundary"},"grounds":"UR trigger evaluation","allowed":"Currently allowed","forbidden":"Remains forbidden","escalation":"Escalation triggers","challenge":"Challenge path"},"taskTargetResolution":{"title":"AGDF task target","field":"Field","value":"Value","state":"Resolution","resolved":"Resolved","unresolved":"Clarification required","primaryTarget":"Primary target","governanceTarget":"Governance target","evidenceSources":"Evidence sources","workingDirectory":"Working directory","targetChanged":"Target changed","yes":"yes","none":"none","reason":"Reason","allowedValues":"Allowed values","nextAction":"Next action","examplesLabel":"Examples","reasonCodes":{"explicit_target":"Explicit current-turn target","continued_target":"Confirmed target continued","multiple_plausible_targets":"Multiple plausible work targets","target_content_mismatch":"Requested change mismatches target","target_unavailable":"Named target is unavailable","no_reliable_target":"No reliable work target","target_source_invalid":"Invalid target source","working_directory_invalid":"Invalid working directory","continued_target_changed":"Continued target replaced","target_path_relative":"Relative target path","target_not_in_repository":"No verified repository","current_repository_root_required":"Repository root required","current_repository_context_mismatch":"Repository context mismatch"},"nextActions":{"multiple_plausible_targets":"Choose one exact target by full path, Git URL or existing run ID.","target_content_mismatch":"Name the intended target by full path, Git URL or existing run ID.","target_unavailable":"Give a corrected full path, Git URL or existing run ID.","no_reliable_target":"Name one exact target by full path, Git URL or existing run ID.","target_source_invalid":"Use a supported target_source and provide a full path, Git URL or existing run ID.","examples":"Use a real value, e.g. `/Users/alex/work/project`, `https://github.com/org/project`, or `run-project-20260928`.","working_directory_invalid":"Provide an accessible absolute working directory.","continued_target_changed":"Classify the replacement as explicit_target.","target_path_relative":"Provide the absolute path of the requested target.","target_not_in_repository":"Provide a target inside the Git repository to inspect.","current_repository_root_required":"Provide the verified repository root for current_repository.","current_repository_context_mismatch":"Use current_repository only with a working directory inside that repository."}},"internalStateLabels":{"verifiedChange":"Compact change under review","verifiedChangeEscalated":"Escalated to structured delivery","contextGraphMaintained":"Project memory maintained","contextGraphOpenGap":"Graph gap open","multiScopeBlocked":"Ambiguous scope, clarification needed"},"qualityReadiness":{"title":"Quality Readiness","rows":{"plan_coverage":"Plan coverage","solution_integrity":"Solution integrity","code_quality":"Code quality","qa_decision":"QA decision"},"reason":"Reason","reference":"Evidence report","nextAction":"Next action","decisionOwner":"Decision owner","decisionOwnerValue":"QA Gate","unknown":"evidence missing","fallbackReasons":{"plan_coverage":"Plan coverage requires revision before QA can pass.","solution_integrity":"Solution integrity requires revision before QA can pass.","code_quality":"Code quality findings require revision before QA can pass.","qa_decision":"QA evidence requires revision before the gate can pass."}},"gateTitles":{"UR":"User requirements","PRD":"Product requirements","SD":"Solution design","TP":"Task and test plan","QA":"Quality assurance","UAT":"User acceptance","Brownfield Review":"Brownfield review","Mode/Slice Decision":"Delivery scope decision","Brownfield Analysis":"Implementation preparation","CD+Tests":"Implementation and tests","CR":"Code review","OR":"Delivery report","Verified Change":"Verified change","Quick Task":"Quick task","Compact Delivery":"Compact Delivery","Block":"Block"},"gateActionTitles":{"UR":"Review and decide on user requirements","PRD":"Review and decide on product requirements","SD":"Review and decide on solution design","TP":"Review and decide on task and test plan","QA":"Review and decide on quality assurance","UAT":"Review and decide on user acceptance"},"gateRequiredDecisions":{"UR":"User Requirements approval","PRD":"Product Requirements approval","SD":"Solution Design approval","TP":"Task and Test Plan approval","QA":"Quality Assurance approval","UAT":"User Acceptance decision"},"interaction":{"ready":"Ready for your decision","approveHeading":"Approve now","nextHeading":"Next","decisionInstruction":"Review the linked artefact; choose an option below.","decisionPrompt":"Choose approve, request revision or decline for {gate} in run {run_id}.","exactTextRequest":"To approve, reply exactly with `{approval}`; otherwise request revision or decline.","decisionFollows":"will be the next user decision","presentationFailure":"Approval cards could not be rendered safely.","statusPresentationFailure":"Status card could not render safely.","nonReadyDecision":"No decision requested: {reason}.","approveDescription":"Approve this gate with the exact authorization value.","reviseLabel":"Revise","reviseDescription":"Keep the gate open and request changes.","declineLabel":"Decline","declineDescription":"Reject this gate deliberately; authority remains unchanged.","cancelLabel":"Cancel","cancelDescription":"Close this decision without approving or declining it.","why":{"label":"Why?","fulfilledPrefix":"Fulfilled:","protectsPrefix":"Protects against:"}},"skillDispatch":{"invalidInputDescription":"Invalid dispatcher input for {field}. Correct it and retry once.","allowedValuesDescription":"Invalid value for {field}. Allowed: {allowed_values}. Correct it and retry once.","recoveries":{"target_evaluation_failed":"Repair task-target evaluation and retry once.","target_presentation_failed":"Repair task-target presentation and retry once.","control_evaluation_failed":"Repair gate evaluation and retry once.","control_presentation_failed":"Repair gate presentation and retry once.","internal_failure":"Repair the dispatcher and retry once.","runtime_contracts_unavailable":"Repair or reinstall the AGDF plugin: packaged runtime contracts could not be loaded. Then retry once.","runtime_evidence_invalid":"Repair the runtime evidence provider and retry once.","output_too_large":"Repair the dispatcher output bound and retry once.","intake_run_collision":"The run id already exists. Bind an explicit continuation or choose an unused id for the new scope.","intake_scaffold_required":"Inspect and restore the canonical control scaffold before creating the run.","intake_run_id_invalid":"A new run id must be run-<uuid>. Over MCP create the run with agdf_run run.create, then redispatch with intake_mode resume.","run_assignment_inventory_invalid":"Run inventory is incomplete or invalid. Resolve the listed control findings and retry intake; this failure does not establish a new scope.","prd_authoring_inputs_invalid":"PRD authoring blocked: check approved UR, Brownfield source, required ready UX input and contained PRD path. Repair inputs with their owner, then retry.","sd_authoring_inputs_invalid":"SD authoring blocked: check approved PRD, Brownfield/ready analysis and contained SD path. Repair inputs with their owner, then retry.","tp_authoring_inputs_invalid":"TP authoring blocked: check approved PRD/SD, Brownfield/ready analysis and contained TP path. Repair inputs with their owner, then retry.","AGDF_ARTEFACT_TEMPLATE_UNSUPPORTED":"Authoring blocked: unsupported canonical template. Repair the authoring owner and retry once.","AGDF_ARTEFACT_TEMPLATE_ROOT_UNAVAILABLE":"Authoring blocked: trusted plugin template root missing. Reinstall the matched AGDF plugin and retry once.","AGDF_ARTEFACT_TEMPLATE_UNAVAILABLE":"Authoring blocked: required plugin template missing. Reinstall the matched AGDF plugin and retry once.","AGDF_ARTEFACT_TEMPLATE_UNSAFE":"Authoring blocked: unsafe plugin template path. Repair or reinstall the matched plugin; no fallback."},"sourceInput":{"source":"Source","expected":"Expected field/value","observed":"Observed (original wording)","next":"Next action","prepare":"The UX owner may prepare or correct this unapproved analysis, validate it and record it canonically before fresh evaluation.","stop":"The source owner must resolve this condition before dependent work.","conditions":{"unsafe_destination":"The output path is unsafe.","source_unavailable":"A required source is unavailable.","unsafe_ux_source":"The UX source belongs to another path or is unsafe.","ux_source_missing":"The required UX analysis is missing.","ux_decision_malformed":"The UX readiness field is absent or ambiguous.","ux_not_ready":"The UX analysis is not ready.","ux_source_unrecorded":"The ready UX analysis is not canonically recorded."}}},"artefacts":{"notYetCreated":"not yet created"},"primary":{"readOnlyOrientationDescription":"Read-only check — no new AGDF run and no approval required.","lifecycleResult":{"title":"AGDF lifecycle result","statusTitle":"AGDF status","result":"Result","surface":"Surface","scope":"Installation scope","version":"AGDF version","verification":"Verification","restart":"Restart required","installation":"Installation","repository":"Repository","delivery":"Delivery","next":"Next action","yes":"yes","no":"no","unknown":"unknown"},"status":{"open":"open","blocked":"blocked","pass":"passed","warn":"attention needed","revise":"revision needed","in_progress":"in progress","closed":"closed"},"none":"none","blocked":"current gate prerequisites","quality":"Keep the presentation contract, evidence and gate authority aligned.","lifecycle":{"active":"in progress","completed_closeout_pending":"completed — delivery closeout pending","completed":"completed","blocked":"blocked","unknown":"status not available"},"actions":{"UR":"Clarify and approve the user requirements.","Brownfield Review":"Review existing owners and choose the smallest safe delivery path.","Mode/Slice Decision":"Decide the proportionate delivery scope from repository evidence.","PRD":"Define and approve the product behavior.","SD":"Define and approve the solution design.","TP":"Define and approve the task and test plan.","Brownfield Analysis":"Verify owners, reuse and regression coverage before implementation.","CD+Tests":"Implement the approved plan and collect test evidence.","CR":"Review the implementation and resolve blocking findings.","QA":"Evaluate quality evidence and make the QA decision.","UAT":"Make the deliberate user-acceptance decision.","OR":"Prepare the auditable delivery report."},"afterApproval":{"UR":"Review existing owners and choose the proportionate delivery path; implementation remains blocked.","PRD":"Draft the solution design; implementation remains blocked.","SD":"Draft the task and test plan; implementation remains blocked.","TP":"Run pre-implementation Brownfield Analysis; implementation starts only if it passes.","QA":"Prepare the user-acceptance decision; release remains blocked.","UAT":"Prepare the delivery report; version-control and release actions still require explicit instruction."},"narration":{"gateSatisfied":"{gate} approved","noAction":"No user action required now","gates":{"UR":{"agentNext":"Agent runs Brownfield Review next"},"PRD":{"agentNext":"After your PRD approval, the agent drafts the Solution Design","userAction":"Once the draft is ready, you will review and decide on the Solution Design"},"SD":{"agentNext":"Agent drafts the Task and Test Plan next"},"TP":{"agentNext":"Agent runs pre-implementation Brownfield Analysis next"},"QA":{"agentNext":"Agent prepares the user-acceptance decision","userAction":"user acceptance decision next"},"UAT":{"agentNext":"Agent prepares the delivery report"}}}},"gateRationale":{"UR":"UR clarifies what you want, why and for whom — before anything gets built that nobody needed.","PRD":"PRD defines product behavior before the solution design locks it in.","SD":"Solution design fixes ownership, architecture and dependencies — before code makes them permanent.","TP":"Task plan makes acceptance criteria and tests binding, so QA can measure later.","QA":"QA evaluates real evidence before a release relies on assumptions.","UAT":"UAT requires deliberate acceptance before the run counts as delivered.","Brownfield Review":"Checks whether existing systems, owners and conventions are affected, so nothing breaks or duplicates.","Mode/Slice Decision":"Decides the proportionate delivery scope, so the process fits the change — not the other way around.","Brownfield Analysis":"Verifies reuse paths, owners and regression risk before code exists.","CD+Tests":"Implementation and tests produce evidence — not just code.","CR":"Code review is mandatory before QA decides.","OR":"The delivery report makes the run auditable — not just claimed."},"mcpLifecycle":{"title":"AGDF MCP lifecycle","labels":{"operation":"Operation","result":"Result","capability":"Capability","surface":"Surface","scope":"Scope","scopeEffect":"Scope effect","target":"Target","authorizes":"Authorizes","runtime":"Runtime","registration":"Registration","discovery":"Discovery","permissionEffect":"Process access","diagnostics":"Diagnostics","nextAction":"Next action","fallback":"Compatible path"},"capabilities":{"supported":"supported","manual_compatible":"compatible path available","unavailable":"host unavailable","unsupported":"host version unsupported","unverified":"not directly qualified"},"registrations":{"absent":"absent","matched":"matched","foreign":"foreign entry","owned_mismatch":"owned entry differs","precedence_conflict":"higher-priority conflict","invalid":"invalid configuration"},"discoveries":{"not_checked":"not checked","pending_restart":"restart pending","discovered":"discovered","not_discovered":"not discovered","unavailable":"unavailable"},"results":{"not_configured":"not configured","configured_pending_restart":"configured; restart pending","configured_unverified":"configured; discovery unverified","discovered_ready":"discovered and ready","unchanged":"unchanged","disabled":"disabled","degraded":"degraded","failed":"failed"},"scopeEffects":{"project":"selected project only","user":"current user across projects"},"permissionEffects":{"inherited_host_user":"The MCP process inherits the host user permissions."},"diagnostics":{"none":"none","registration_inspection_failed":"The selected registration could not be inspected.","rollback_incomplete":"Rollback did not restore every applied lifecycle phase.","agdf_mcp_registration_foreign":"The selected registration is not owned by AGDF.","agdf_mcp_registration_precedence_conflict":"A higher-priority registration conflicts with the selected source.","agdf_mcp_registration_verification_failed":"Registration read-back did not match the intended state.","agdf_mcp_disable_verification_failed":"Registration removal could not be verified.","agdf_mcp_package_acquisition_failed":"The exact MCP server package could not be acquired.","agdf_mcp_runtime_unowned":"The runtime location contains content that AGDF cannot verify as owned.","agdf_mcp_server_manifest_invalid":"The MCP server package manifest is invalid.","agdf_mcp_dispatcher_manifest_invalid":"The dispatcher package manifest is invalid.","agdf_mcp_sdk_manifest_invalid":"The MCP SDK package manifest is invalid.","agdf_mcp_server_version_mismatch":"The acquired MCP runtime does not match the required versions.","agdf_mcp_server_entrypoint_invalid":"The MCP server entrypoint is missing or invalid.","agdf_mcp_server_verification_failed":"The installed MCP runtime failed exact verification.","agdf_mcp_claude_update_rollback_failed":"Claude Code could not restore the previous registration during update.","enable_failed":"MCP enablement failed.","disable_failed":"MCP disablement failed.","claude_plugin_managed":"Claude Code starts the AGDF MCP server from the installed AGDF plugin; no separate registration is used.","codex_plugin_managed":"Codex starts the AGDF MCP server from the installed AGDF plugin; no separate registration is used.","runtime_executables_retained":"The registration was removed. Executable files are retained while their use is active, historical or unconfirmed.","agdf_mcp_codex_source_changed":"Configuration changed after preview; nothing was overwritten.","agdf_mcp_codex_rollback_conflict":"A foreign change prevents safe rollback.","agdf_mcp_runtime_reference_changed":"Runtime references changed concurrently; resolve the conflict before retrying.","cockpit_transition_pending":"The Cockpit registration transition is written; refresh the host and verify discovery, rendering and interaction before completion.","cockpit_transition_failed":"Cockpit transition failed. Inspect the named evidence, ownership or concurrent-change conflict before retrying.","cockpit_legacy_retained":"The existing Cockpit ID is retained until ownership, consumer transition and deliberate session refresh are proven. No duplicate registration."},"actions":{"use_node_22":"Use Node.js 22 or later and retry.","install_host":"Install a supported host and retry.","resolve_registration":"Resolve the selected registration and retry.","enable_scope":"Run MCP enable explicitly for this scope.","restart_host":"Deliberately refresh the affected connection through the supported host action and verify discovery and runtime in the new session.","version_matched_cli_dispatch":"Use the version-matched AGDF CLI skill-dispatch path.","resolve_failure":"Resolve the reported lifecycle failure and retry.","resolve_precedence":"Resolve the higher-priority registration and retry.","disable_effective_scope":"Disable the remaining effective MCP registration explicitly in its scope.","inspect_effective_scope":"Inspect the remaining effective user registration with --scope user.","retry":"Retry the same explicit lifecycle action.","none":"No further lifecycle action is required.","use_claude_plugin_mcp":"Install or update the AGDF plugin for Claude Code; its MCP server starts with the plugin.","use_codex_plugin_mcp":"Install or update the AGDF plugin for Codex; its MCP server starts with the plugin."},"setup":{"title":"AGDF host setup","labels":{"source":"Source","role":"Role","owner":"Owner","configured":"Configuration","started":"Start","discovered":"Discovery","app_rendered":"App rendered","app_interacted":"Interaction","runtime":"Runtime"},"roles":{"product":"AGDF","cockpit":"AGDF Cockpit","diagnostic":"Diagnostic/test","legacy_or_conflict":"Legacy/conflict"},"states":{"declared":"declared","disabled":"disabled","unknown":"unknown","unobserved":"unobserved","unavailable":"unavailable"},"noticeDescription":"Declarations do not prove host, session or App state. Verify effective permissions and refreshed sessions directly; retain shared App data."}},"repositoryMaintenance":{"title":"Repository control inspection","unavailable":"Repository inspection unavailable","next":"Direct runtime command:","outcomes":{"not_started":"inspection only"}},"activeRunInventory":{"countDescription":"{count} active AGDF runs found.","noneDescription":"No active AGDF runs in this project.","absentDescription":"This project has no .agdf/control directory.","incompleteDescription":"The inventory is incomplete; the total number of active runs is unknown.","findingsDescription":"Inspection findings:"},"sourceRevision":{"title":"Source revision","preview":"Proposed only","reopened":"Revision applied","historical":"Historical evidence only","replayed":"Historical operation replay","recovered":"Recovery verified","recovery_required":"Recovery required","rejected":"Revision refused","not_found":"Operation not found","target":"Target","run":"Run","operation":"Operation","revision":"Current revision","original":"Original resulting revision","source":"Changed source","retained":"Retained approvals","superseded":"Superseded approvals","reason":"Reason","next":"Next action","none":"None","authority":"This result grants no implementation or gate approval.","reviewNext":"Review this proposal; apply its exact preview explicitly or cancel.","readNext":"Inspect the current bound run before taking its next permitted action.","refuseNext":"Inspect current facts and prepare a fresh reviewed proposal.","recoverNext":"Inspect the bound pending operation; recover it explicitly.","intent":"Intended change","binding":"Preview digest for explicit apply","sources":"Bound source contents","artefacts":"Artifacts requiring fresh recording and approval","evidence":"Steps requiring renewed evidence","work":"Retained work","retainedWork":"Code and tests remain; check fulfillment against the renewed TP.","analyses":"Analytical applicability","retain":"Retain","reassess":"Reassess"},"flowEvidence":{"title":"Evidence for this version","current":"Applicable current evidence","superseded":"Earlier evidence","applicability_unknown":"Applicability unconfirmed","currentDescription":"Only positively matched reports belong to the current source version. Earlier or unconfirmed evidence does not confirm current readiness.","emptyDescription":"No confirmed current association is available. This does not mean that all required evidence is fulfilled.","historyDescription":"Earlier evidence remains inspectable; it does not replace a current report.","unknownDescription":"The saved reference cannot be reliably assigned to this version. Its applicability remains unconfirmed.","unavailable":"Source unavailable","open":"Read registered source","next":"Next step according to the Core","human":"Your decision is required","agent":"The assistant continues","completed":"Approved scope completed","unconfirmedDescription":"Completion is unconfirmed. Follow the current Core result.","retainedDescription":"This is a retained observation. Reload before relying on its current applicability."},"decisionCard":{"title":"Review and decide","connecting":"Connecting to this presentation …","unavailable":"This exact presentation is unavailable. Use the current exact text presentation in chat.","approve":"Approve","request_change":"Request changes","reject":"Reject","openDocument":"Read presented document","back":"Return to decision","comment":"Comment","commentHelp":"A comment is required when requesting changes. Closing the view discards an unsent comment. Maximum 8 KiB.","pending":"Submitting decision …","uncertain":"The result is uncertain. Check the original operation before another submission.","checkOperation":"Check saved result","retryOriginal":"Retry original submission","confirmed":"Decision saved.","denied":"The decision was not saved.","notQualified":"This card lets you read the presented version. Approve it in Chat using the reply shown below.","sourceChanged":"The presented source or revision has changed. Obtain a current presentation before deciding.","expired":"This decision view has expired or closed.","comparison":"Changes since previous applicable version","comparisonUnavailable":"No verified previous applicable version is available for comparison.","machineComparison":"Comparison of document bytes with the verified archive; this is not a reviewed account of changes.","documentUnchanged":"The document bytes are unchanged; other decision sources may differ.","documentChanged":"The document bytes differ. Read the presented version and the archived version when assessing the change.","previousDocument":"Read archived previous document","sources":"Details and evidence","run":"Run","gate":"Decision step","revision":"Presented revision","consequence":"A decision applies only to this exact material. The Core confirms the permitted next step after saving.","permission":"Technical tool permission and this decision are separate. A host prompt may still appear.","docUnavailable":"The exact presented document is unavailable. No other version is substituted.","commentRequired":"Enter the requested changes before submitting.","commentTooLarge":"The comment exceeds 8 KiB.","documentTitle":"Presented document","notSaved":"No saved effect is confirmed. Reading and discussion do not decide.","unknownCurrent":"The saved effect is confirmed; the current state is unavailable.","sourceLanguage":"Source language is shown in the presentation.","alreadyDecided":"This material has already been decided. Follow the current Core result.","initialize":"Opening this view does not record a decision.","discussionHint":"Discuss questions and requested changes in Chat. Approve this version here or in Chat with Approval: {gate}.","nextStep":"Next step","nextInformation":"Next step: {step}.","nextChat":"Continue in Chat to start this step.","nextWaiting":"Approval saved. Continuation is waiting for the current AI response to finish; no further click is needed.","continuationMessage":"{gate} approved. Continue with {step}.","nextRequested":"Continuation requested in Chat.","closeUnavailable":"Approval saved and continuation requested. This view could not be fully closed; you can close it.","nextUnavailable":"Continuation could not be confirmed. Check the current Run in Chat before continuing.","chatApprovalHint":"Discuss questions and requested changes in Chat. Approve this version in Chat with Approval: {gate}.","approveWithDeviations":"Approve with deviations","confirmedWithDeviations":"Approved with deviations.","deviationAcceptanceIntro":"Approve QA with deviations","openPreview":"View preview","previewTitle":"Illustrative preview","previewUnavailable":"Preview unavailable. Retry this version or ask for checked standalone access.","previewChanged":"The review material changed. Request a new presentation before deciding.","retryPreview":"Retry preview","previewIllustrative":"Example actions do not approve PRD or send messages.","previewTask":"Review task","previewScenarios":"Scenarios","previewCriteria":"Related criteria","previewQuestions":"Open questions","previewUnsupported":"This host could not display the isolated preview. Use supported access to the same checked version.","previewLoading":"Opening the isolated preview…"},"mcpErrors":{"failure":"AGDF tool failed:","effects":{"not_dispatched":"This attempt did not dispatch an operation.","owner_reported":"The existing domain result remains authoritative for state and effects.","unknown":"Effects are unconfirmed; do not assume rollback."},"actions":{"correct_input":"Correct the named input and retry only the eligible request.","confirm_target":"Supply the confirmed target_source and absolute primary_target; ask for a missing target choice.","refresh_binding":"Read the current state and refresh the binding or presentation; obtain a new approval where required.","obtain_authority":"Obtain the required permission, capability or deliberate human decision; do not bypass it.","inspect_operation":"Inspect operation-status with the original UUID and retain the exact payload before any eligible recovery.","retry_after_prerequisite":"Wait for the stated resource or execution prerequisite; retry only when eligible and effects are known.","repair_runtime":"Use the supported exact-version runtime repair, then recheck before retrying.","stop":"Stop and inspect supported diagnostics. Do not invent a repair, target or replacement operation."},"causes":{"prepared_call_unknown":"Reference unavailable, not proven expired. Nothing dispatched. Observe/recover the saved original UUID and request; retain its target, revision and inputs.","prepared_call_store_unavailable":"Private call store unavailable; nothing dispatched. Retain the original request and UUID. Repair storage or use explicit original-request recovery.","operation_source_invalid":"Check the referenced path, UTF-8 content and current canonical digest. Re-read the source reference; do not invent a path or hash.","presentation_missing":"Read the current binding and prepare its presentation. Obtain the required bound human reply before approval; do not substitute an old presentation.","closeout_not_ready":"Read the current gate and missing prerequisites. Complete required evidence and human decisions before closeout; this attempt cannot complete the Run.","control_layout_unsupported":"Preserve the unsupported data. Select a fresh current target or supported current Run; do not convert, reset or reseal the old store.","run_version_unsupported":"Preserve the unsupported data. Select a fresh current target or supported current Run; do not convert, reset or reseal the old store.","run_missing":"Inspect named source/original UUID. Earlier effect is unconfirmed. Preserve bytes; do not recreate deleted state, wait blindly or replace identity.","document_missing":"Inspect named source/original UUID. Earlier effect is unconfirmed. Preserve bytes; do not recreate deleted state, wait blindly or replace identity.","run_path_invalid":"Inspect named source/original UUID. Earlier effect is unconfirmed. Preserve bytes; do not recreate deleted state, wait blindly or replace identity."}},"doctorEmptyInventory":{"policyDescription":"No active Runs. Status follows allow_no_active_runs={policy}; zero findings. This is delivery policy, not a project-health verdict."},"companion":{"title":"AGDF Companion","notices":{"waitingApproval":"Waiting for approval: {gate}","waitingDecision":"Waiting for a decision: {gate}","blocked":"Blocked: {gate} – {decision}"},"decisions":{"revise":"revision needed","block":"blocked","blocked":"blocked","decline":"declined"},"origin":{"session":"Changed in this session","selected":"Selected by you","named":"Named in the chat"},"fields":{"nextStep":"Next step","objective":"Objective","lastRead":"As of {time}","openRuns":"{count} open runs","moreRuns":"+ {count} more","position":"{position} of {count} open runs","events":"Events","material":"Material"},"actions":{"retry":"Read again","stillOn":"Stop motion","stillOff":"Start motion","noticeOff":"Notices off","noticeOn":"Notices on","soundOn":"Sound on","soundOff":"Sound off","expand":"More","collapse":"Less","previous":"Previous run","next":"Next run","about":"About","closeAbout":"Close","backToChat":"Back to chat run"},"about":{"text":"Shows the state of your AGDF runs beside the chat. Read-only: approvals stay in the chat.","version":"AGDF plugin {version}"},"command":{"description":"Switch the AGDF Companion on or off","enabled":"AGDF Companion switched on.","disabled":"AGDF Companion switched off.","waiting":"AGDF Companion is switched on and waits for space: {reason}"},"languageNames":{"en":"English","de":"Englisch"},"states":{"laeuft":"working","baut":"building","wartet":"waiting for approval","blockiert":"blocked","fertig":"done","bereit":"idle"},"statusStates":{"laeuft":"working","baut":"building","wartet":"waiting","blockiert":"blocked","fertig":"done","bereit":"idle","unreadable":"unreadable"},"reasons":{"turnActive":"Claude is working on this turn","done":"Run completed","blocked":"{gate}: {decision}","waitingApproval":"Approval pending: {gate}","waitingDecision":"Decision pending: {gate}","working":"Next: {gate}","building":"In progress: {gate}","ended":"Run ended","idle":"No run shown","unreadable":"Run not readable: {reason}"},"unreadable":{"missing":"run state file missing or not readable","too_large":"run state file too large","run_version_unsupported":"run recorded in an older format","run_state_invalid":"run state invalid","control_layout_unsupported":"control folder layout not supported","control_invalid":"control folder configuration invalid","read_failed":"control folder could not be read","unavailable":"run view could not be obtained","exit":"run view command ended with an error","malformed":"run view returned an unexpected result","resource_denied":"access to the control folder was denied","source_changed":"control folder changed while reading","timeout":"reading the control folder took too long","resource_limit":"control folder exceeds a read limit"},"messages":{"reading":"Reading run state …","noControl":"No AGDF control folder in “{folder}”.","noControlHint":"Checked project folder: {path}","noOpenRuns":"No open runs in this project.","noRunAssigned":"No run assigned","noRunAssignedHint":"No run changed in this session. Choose an open run to show it here.","unreadable":"Run state not readable: {reason}","stale":"Read failed at {time}; showing the state from {readAt}.","unreadableRuns":"{count} runs not readable: {reasons}","runViewUnavailable":"Run view unavailable: {reason}","eventsUnavailable":"Events unavailable; the run state is still read.","drift":"{document} changed after recording (recorded {recorded}, now {current}). Re-record it from the current file or restore the file."},"events":{"approval_requested":"Approval requested for {gate}","approval_recorded":"Approval recorded for {gate}","write_rejected":"Call rejected ({reason})","effect_unknown":"Effect unknown – check the operation status","recovery_required":"Recovery required","run_completed":"Run completed","material_staged":"Material staged ({gate})","document_recorded":"{gate} recorded","drift":"{document} changed after recording","ofRun":"{text} · {run}"},"review":{"summary":"{slot}: {bytes} bytes, {digest}","match":"matches its source file","mismatch":"differs from its source file","not_determinable":"source not determinable – please check the preview","unavailable":"facts unavailable","truncated":"preview truncated"}}},"de":{"runResolution":{"title":"Liefer-Run auswählen","latest":"Zuletzt aktualisierter aktiver Run","gate":"Aktuelles Gate","updated":"Zuletzt aktualisiert","objective":"Ziel","otherRuns":"Weitere aktive Runs","choosePrompt":"Antworte mit der Run-ID, um fortzufahren, oder beschreibe eine andere Aktion. Die Auswahl bindet einen Run, sie genehmigt kein Gate.","noneTitle":"Kein aktiver Liefer-Run","nonePrompt":"Möchtest du einen neuen Run starten oder etwas anderes tun? Es wurde kein Run angelegt."},"installSetup":{"title":"AGDF-Installation einrichten","choicePrompt":"Lokalen MCP-Server einrichten? (1-3): ","invalidChoice":"Wählen Sie genau 1, 2 oder 3.","emptyChoice":"Keine Auswahl getroffen. Wählen Sie 1, 2 oder 3.","blockedChoice":"Vollständige Einrichtung nicht verfügbar: {reason}","scopeTitle":"MCP-Registrierungsbereich auswählen","scopeChoicePrompt":"MCP-Bereich wählen (1-3): ","invalidScopeChoice":"Wählen Sie genau 1, 2 oder 3.","emptyScopeChoice":"Kein Bereich gewählt. 1, 2 oder 3.","blockedScopeChoice":"Bereich nicht verfügbar: {reason}","labels":{"surface":"Host","version":"AGDF-Version","plugin":"Plugin-Zustand","mcp":"MCP-Zustand","target":"MCP-Ziel","targetSource":"Zielquelle","invocationContext":"Aufruf- und Prioritätskontext","invocationDirectorySource":"Quelle des Aufrufverzeichnisses","scope":"MCP-Bereich","selectedStatus":"Ausgewählte Registrierung","effectiveSource":"Wirksame Konfigurationsquelle","registrationPath":"Native Konfigurationsquelle","pluginConfiguration":"Plugin-Konfiguration","localExecution":"Lokale Ausführung","packageAcquisition":"Paketbezug","removal":"Sichere Entfernung","authorizes":"Erteilt Governance-Befugnis","result":"Ergebnis","setupRequest":"Setup-Auswahl","effectiveState":"Wirksamer Zustand","runtimeChecks":"Automatische Prüfungen","discovery":"Host-Erkennung","restart":"Neustart erforderlich","failure":"Fehler","nextAction":"Nächste Aktion"},"choices":{"full":"Vollständig einrichten","fullDescription":"Plugin installieren, den lokalen AGDF-MCP-Server bereitstellen und für das gezeigte Ziel und den Bereich registrieren.","plugin_only":"Nur Plugin","pluginOnlyDescription":"Plugin installieren und alle MCP-Registrierungen unverändert lassen.","cancel":"Abbrechen","cancelDescription":"Vor Installation oder MCP-Änderungen stoppen.","recommended":"empfohlen"},"scopeChoices":{"project":"Für dieses Projekt einrichten","projectDescription":"AGDF für das gezeigte Projekt registrieren. Diese Projektkonfiguration hat native Priorität vor einem Benutzerstandard.","user":"Benutzerweit einrichten","userDescription":"AGDF einmal als Benutzerstandard des Hosts registrieren. Eine Projektkonfiguration kann ihn übersteuern.","back":"Zurück","backDescription":"Ohne Änderungen zur Setup-Auswahl zurückkehren.","existing":"derzeit konfiguriert"},"values":{"yes":"ja","no":"nein","none":"keine","required":"erforderlich","not_required":"nicht erforderlich","expectedVersion":"erwartet {version}"},"targetSources":{"explicit_dir":"ausdrückliches --dir","interactive_invocation_cwd_proposal":"Vorschlag aus npm-Aufrufverzeichnis","interactive_invocation_cwd_selection":"gewähltes npm-Aufrufverzeichnis","none":"keine"},"invocationDirectorySources":{"explicit_dir":"ausdrückliches --dir","npm_init_cwd":"ursprüngliches npm-Aufrufverzeichnis","process_cwd":"aktuelles Prozessverzeichnis","none":"keine"},"pluginStates":{"observed":"beobachtet","healthy":"gesund","degraded":"beeinträchtigt","not_installed":"nicht installiert","unavailable":"nicht verfügbar","unknown":"unbekannt","not_run":"nicht ausgeführt"},"mcpStates":{"not_requested":"nicht angefordert","not_checked":"nicht geprüft","not_configured":"nicht konfiguriert","configured_pending_restart":"konfiguriert, Neustart ausstehend","configured_unverified":"konfiguriert, Erkennung ungeprüft","discovered_ready":"erkannt und bereit","unchanged":"unverändert","disabled":"deaktiviert","degraded":"beeinträchtigt","failed":"fehlgeschlagen","plugin_managed":"im Plugin enthalten"},"scopes":{"project":"Projekt","user":"Benutzerkonto"},"registrationStates":{"absent":"nicht vorhanden","matched":"passend","foreign":"fremd","owned_mismatch":"AGDF-eigene Versionsabweichung","precedence_conflict":"Konflikt mit höherer Priorität","invalid":"ungültig"},"effectiveSources":{"none":"keine","unknown":"unbekannt","user":"Benutzerkonfiguration","project":"Projektkonfiguration","project_override":"Projektüberschreibung","local":"lokale Projektkonfiguration","shared_project":"gemeinsame Projektkonfiguration","inline":"Inline-Konfiguration","custom":"benutzerdefinierte Konfiguration"},"versionTransitions":{"installed":"installiert","updated":"aktualisiert","unchanged":"unverändert","unknown":"Übergang unbekannt"},"runtimeCheckStates":{"not_run":"nicht ausgeführt","not_checked":"nicht geprüft","cancelled":"abgebrochen","manual":"manuell","decision_required":"Host-Berechtigung ausstehend","enabled":"aktiviert","renewal_required":"erneute Prüfung erforderlich","degraded":"beeinträchtigt","failed":"fehlgeschlagen","unavailable":"nicht verfügbar","receipt_missing":"Auswahlnachweis fehlt","receipt_unowned":"Auswahlnachweis gehört nicht AGDF","receipt_invalid":"Auswahlnachweis ist ungültig","unknown":"unbekannt"},"setupRequests":{"plugin_only":"nur Plugin","full":"vollständige Einrichtung","cancel":"abbrechen"},"results":{"success":"erfolgreich","partial":"teilweise erfolgreich","failed":"fehlgeschlagen","cancelled":"abgebrochen"},"effectiveStates":{"cancelled":"vor Änderungen abgebrochen","plugin_ready_mcp_absent":"Plugin bereit, MCP fehlt","plugin_ready_mcp_unchanged":"Plugin bereit, MCP unverändert","configured_pending_restart":"konfiguriert, Neustart ausstehend","configured_unverified":"konfiguriert, Erkennung ungeprüft","discovered_ready":"erkannt und bereit","partial":"teilweise abgeschlossen","degraded_or_foreign":"MCP beeinträchtigt oder fremd","failed":"fehlgeschlagen","plugin_ready_mcp_in_plugin":"Plugin bereit, MCP im Plugin enthalten","mcp_ready_hook_review_required":"MCP bereit – Hook-Bestätigung ausstehend","mcp_ready_hook_verification_pending":"MCP bereit – Hook-Nachweis ausstehend","control_repair_required":"Reparatur erforderlich","control_unsupported":"Kontrollformat nicht unterstützt"},"discoveryStates":{"not_checked":"nicht geprüft","pending_restart":"Neustart ausstehend","discovered":"erkannt"},"failurePhases":{"input_validation":"Eingabeprüfung","setup_preflight":"Setup-Vorprüfung","setup_selection":"Setup-Auswahl","runtime_check_permission":"Auswahl automatischer Prüfungen","plugin_operation":"Plugin-Operation","plugin_verification":"Plugin-Prüfung","mcp_preflight":"MCP-Vorprüfung","mcp_enable":"MCP-Aktivierung","mcp_disable":"MCP-Deaktivierung","plugin_disable":"Plugin-Deaktivierung","plugin_uninstall":"Plugin-Deinstallation","result_validation":"Ergebnisprüfung","presentation":"Darstellung"},"failureCodes":{"input_invalid":"ungültige Eingabe","setup_preflight_failed":"Setup-Vorprüfung fehlgeschlagen","setup_selection_blocked":"Setup-Auswahl gesperrt","runtime_check_permission_failed":"Prüfauswahl fehlgeschlagen","plugin_operation_failed":"Plugin-Operation fehlgeschlagen","plugin_verification_failed":"Plugin-Prüfung fehlgeschlagen","mcp_preflight_failed":"MCP-Vorprüfung fehlgeschlagen","mcp_enable_failed":"MCP-Aktivierung fehlgeschlagen","mcp_disable_failed":"MCP-Deaktivierung fehlgeschlagen","plugin_disable_failed":"Plugin-Deaktivierung fehlgeschlagen","plugin_uninstall_failed":"Plugin-Deinstallation fehlgeschlagen","result_invalid":"ungültiges Setup-Ergebnis","presentation_failed":"Darstellung fehlgeschlagen"},"actions":{"none":"Keine weitere Aktion erforderlich.","cancelled":"Keine Änderung wurde vorgenommen. Starten Sie das Setup bei Bedarf erneut.","restart_host":"Starten Sie den Host neu und öffnen Sie eine neue Sitzung.","verify_host_discovery":"Öffnen Sie eine neue Host-Sitzung und prüfen Sie die AGDF-MCP-Erkennung.","retry_plugin":"Beheben Sie den Plugin-Fehler und wiederholen Sie denselben Installationsbefehl mit --verbose.","retry_mcp":"Behalten Sie das Plugin, beheben Sie den MCP-Fehler und wiederholen Sie das vollständige Setup.","resolve_mcp_registration":"Klären Sie die kollidierende MCP-Registrierung vor dem vollständigen Setup.","review_runtime_checks":"Prüfen Sie den Zustand automatischer Prüfungen und wiederholen Sie das Setup.","review_codex_hook":"AGDF-Hook unter /hooks prüfen und bestätigen, danach neue Sitzung öffnen. CLI-MCP-Tests benötigen keinen Desktop-Neustart.","enable_codex_hook":"AGDF-Hook unter /hooks aktivieren und anschließend in einer neuen Sitzung prüfen.","verify_codex_hook":"Ausführung des bestätigten AGDF-Hooks in einer neuen Sitzung prüfen. Vertrauen allein ist kein Ausführungsnachweis.","inspect_codex_hook":"AGDF-Hook unter /hooks prüfen und runtime-checks status --surface codex erneut ausführen.","choose_plugin_only_or_cancel":"Wählen Sie nur Plugin oder Abbruch; das vollständige Setup ist gesperrt.","inspect_control":"Kontrollbestand ohne Änderungen prüfen. Nicht unterstützte Daten erhalten und ein frisches aktuelles Ziel verwenden; keine Migration oder Rücksetzung."},"blockReasons":{"none":"keiner","target_required":"ein absolutes MCP-Ziel ist erforderlich","mcp_foreign":"die MCP-Registrierung ist fremd","mcp_precedence_conflict":"eine höherrangige Registrierung kollidiert","mcp_invalid":"die MCP-Registrierung ist ungültig","mcp_preflight_failed":"die MCP-Vorprüfung ist fehlgeschlagen"},"restartReasons":{"plugin_reload":"Plugin neu laden","mcp_discovery":"MCP-Erkennung"},"runtimeConsent":{"title":"AGDF {version} für {host}","appliesTo":"Gilt für diese {host}-Installation Ihres Benutzerkontos.","question":"Soll AGDF Ihren Projektstatus bei Sitzungsbeginn automatisch prüfen?","previousEnabled":"Ihre bisherige Auswahl: automatische Prüfungen angefordert","previousManual":"Ihre bisherige Auswahl: manuelle Prüfungen","permissionAfterInstall":"{host}-Berechtigung: wird nach der Installation geprüft","safeTitle":"Sicheres Verhalten","reads":" Liest nur AGDF-Runtime-Informationen und .agdf/control in diesem Projekt","noProjectChanges":" Ändert keine Projektdateien und verwendet kein Netzwerk","noGovernanceAuthority":" Erteilt niemals eine AGDF-Freigabe","savesChoice":"AGDF speichert Ihre Auswahl. {host} kontrolliert weiterhin die Berechtigung.","chooseAgain":"Sie wählen bei jeder Installation, Aktualisierung und Änderung der Prüfung erneut.","turnOff":"Jederzeit deaktivieren: {revocation}","chooseTitle":"Auswählen","enableChoice":" [1] Ja, automatisch prüfen","manualChoice":" [2] Keine automatischen Prüfungen","manualDescription":" AGDF funktioniert weiterhin. Prüfungen starten Sie bei Bedarf.","detailsChoice":" [D] Technische Details anzeigen","cancelChoice":" [Esc] Installation abbrechen","progress":"AGDF {version} wird für {host} eingerichtet...","loadedSessions":"Hinweis: {count} laufende Claude-Code-Sitzung(en) nutzen noch das alte AGDF. Für {version} neu starten; scheitert das Update, vorher schließen.","linePrompt":"Auswahl (1/2/D/abbrechen): ","lineInvalid":"Wählen Sie 1, 2 oder D oder geben Sie abbrechen ein.","keyPrompt":"Auswahl: ","keyInvalid":"Drücken Sie 1, 2, D oder Esc.","detailsEcho":"Details","decisionEcho":{"enable":"aktivieren","manual":"manuell","cancel":"abbrechen"},"detailsTitle":"Technische Details","detailsInstallationScope":"globale Installation im Benutzerkonto","detailsRuns":"eine lokale Prüfung ohne Argumente bei Sitzungsbeginn","detailsReads":"AGDF-Runtime-Identität und .agdf/control im aktuellen Repository","detailsWrites":"einen AGDF-eigenen Auswahlnachweis","detailsRenewal":"Änderungen an Befehl, Runtime, Quelle, Bereich oder Adapter erfordern eine neue Zustimmung","detailsLabels":{"appliesTo":"Gilt für","runs":"Ausführung","reads":"Liest","saves":"Speichert","permissionControl":"Berechtigungskontrolle","command":"Befehl","renewal":"Neue Zustimmung"},"permissionOwners":{"codex":"native Hook-Vertrauensprüfung von Codex","claude":"Plugin-Aktivierung in Claude Code","copilot":"Hook-Prüfung des GitHub-Copilot-Plugins","opencode":"OpenCode-Plugin und ausdrückliche Berechtigungskonfiguration"}},"controlRepair":{"title":"Kontrollbestand reparieren","resultDescription":"Plugin erfolgreich installiert; Kontrollbestand benötigt Reparatur.","searchDescription":"Originale in Recovery-Journalen und Git suchen. Erst nach Auswahl einer konkreten Reparatur werden Daten geändert.","availableDescription":"Für {count} Runs liegt ein belegbarer Reparaturvorschlag vor.","repairedDescription":"Reparierte Runs: {count}","backupDescription":"Vor der Reparatur werden der aktuelle Zustand und die ausgewählten Originale in einem privaten Reparaturjournal gesichert.","resetDescription":"Bei unversiegelten Runs setzt die Wiederherstellung fehlender Artefakte unbelegte Freigaben zurück. Diese Runs beginnen wieder bei UR.","manualDescription":"Originaldaten oder Korrektur erforderlich","startChoice":"Reparaturassistent starten","skipChoice":"Später","detailsChoice":"Details anzeigen","applyChoice":"Vorgeschlagene Reparaturen anwenden","prompt":"Auswahl (leer = später): ","invalidChoice":"Bitte 1, 2 oder 3 wählen.","kinds":{"manual":"Originaldaten oder Korrektur nötig","self_reference":"belegte Korrektur des Selbstbezugs","run_snapshot":"belegter Originalzustand des Runs","missing_artefacts":"Originalartefakte in Git gefunden"},"reasons":{"AGDF_REPAIR_ORIGINAL_REQUIRED":"Fehlende Originaldatei wiederherstellen","AGDF_REPAIR_REFERENCE_REQUIRED":"Belegte Dateiverweise benötigt","AGDF_RECOVERY_ARTEFACT_MISSING":"Fehlende Originaldatei wiederherstellen"}},"controlCompatibility":{"title":"Kompatibilität des Kontrollbestands","target":"Repository","state":"Kontrollbestand","format":"Unterstütztes Run-Format","historicalCount":"Historische Runs erhalten: {count}","detailsDescription":"Details oder control-maintenance --dir <absolutes-repository> --details zeigt Runs und Diagnosen.","states":{"not_checked":"nicht geprüft","absent":"kein vorhandener Kontrollbestand","current":"kompatibel","repair_required":"Reparatur erforderlich","historical":"historischer Bestand erhalten","unsupported":"nicht unterstützt"}}},"statusCard":{"title":"AGDF-Statuskarte","status":"Status","field":"Statusfeld","value":"Wert","run":"Ausgewählter Run","humanTitle":"Run-Titel","gate":"Aktuelles Gate","requiredDecision":"Erforderliche Entscheidung","blocked":"Blockiert durch","blockerDetails":"Betroffener Punkt","sourceWording":"Originalwortlaut","recovery":"Behebung","prdReadinessItems":"PRD-Bereitschaftspunkte","traceabilityGaps":"Fehlende Zuordnungen","missing":"Fehlende Freigabe","maintenance":"Nachweispflege","outcome":"Ergebnis nach Freigabe","internal":"Interner nächster Schritt","userGate":"Nächstes User-Gate","userAction":"Nutzeraktion erforderlich","nextGate":"Nächstes Gate nach Freigabe","allowedAfter":"Nach Freigabe erlaubt","skill":"Nächster Skill","step":"Nächster Schritt","quality":"Qualitätsausblick","userDecision":"Deine Entscheidung","agentAllowed":"Der Agent darf jetzt","waitingOn":"Wartet auf","userTurn":"Du bist dran","userInputNeeded":"Bitte nenne die fehlenden Angaben.","agentWorking":"Ich arbeite weiter","noReply":"Keine Antwort nötig","summaryRecovery":"Freigabezusammenfassung korrigieren","summaryReason":"Prüfgrund","summaryExpected":"Erwartetes Feld","sourceLanguage":"Quellsprache","languageEnglish":"Englisch","languageGerman":"Deutsch","originalLanguageExcerpts":"Zusammenfassung in gewählter Sprache","lifecycle":"Lieferstatus","allowed":"Jetzt erlaubt","forbidden":"Aktuell verboten","artefacts":"Artefakte","breadcrumb":"Pfad","breadcrumbFulfilled":"✓","breadcrumbCurrent":"●","breadcrumbOpen":"○","breadcrumbSeparator":" · ","sdReadinessItems":"SD-Bereitschaftspunkte","agentNext":"Nächster erlaubter Agentenschritt","qaFollowUp":"QA-Nacharbeit"},"controlSetup":{"title":"AGDF-Kontrollstatus einrichten","field":"Einrichtungsfeld","value":"Wert","status":"Status","target":"Ziel","durableScope":"Dauerhafter Umfang","plannedEffect":"Geplante Wirkung","excludedAuthority":"Nicht autorisiert","nextAction":"Nächste Aktion","replyOptions":"Antworte genau mit","required":"Kontrollstatus muss eingerichtet werden","scopeValue":".agdf/control im ausgewählten Repository","effectValue":"Ein eigenes kanonisches Kontrollgerüst mit leerem Run-Speicher anlegen.","excludedValue":"Diese Karte erzeugt weder automatisch Run noch UR und erteilt keine Gate-Freigabe.","actionValue":"Ein aktiver Delivery-Intake persistiert danach Run und UR ohne zweite Einrichtungsfrage; eigenständiges Init legt nur das Kontrollgerüst an.","replyOptionsValue":"„Einrichtung autorisieren“, um das gezeigte Gerüst anzulegen, oder „Abbrechen“, um ohne Änderungen zu stoppen."},"operationalValues":{"recoverOriginalLayoutMigration":"Den Status von planned_layout.apply/original-UUID prüfen und ausschließlich den ursprünglich bestätigten Vorgang wiederherstellen.","restoreContainedConfiguration":"Eine unterstützte Konfiguration innerhalb des gebundenen Control-Verzeichnisses wiederherstellen.","preserveUnsupportedHistory":"Einen kompatiblen Reader für das gespeicherte Format verwenden; ursprüngliche Historie und Herkunftsnachweise unverändert erhalten.","inspectOriginalHistory":"Ursprüngliche Version und Integritätsnachweise prüfen; fremde Historie nicht automatisch umschreiben, migrieren oder entfernen.","inspectChangedApprovedSources":"veränderte freigegebene Quellen über die zuständige Revision oder Wiederherstellung prüfen","continueFromUnconfirmedApproval":"auf Grundlage einer nicht bestätigten alten Freigabe fortfahren","resolveChangedApprovedMaterial":"Die veränderten freigegebenen Inhalte über die zuständige Revision oder Wiederherstellung klären; daraus keine neue Freigabe ableiten.","reviseCurrentDecidedMaterial":"den aktuellen entschiedenen Stand über die zuständige Dokumenterstellung oder Fehlerbehebung überarbeiten","approveUnchangedDecidedMaterial":"bereits entschiedene unveränderte Inhalte erneut freigeben","invalidateApprovedUpstreamSources":"freigegebene vorgelagerte Quellen ohne unterstützte Revision ungültig machen","reviseDecidedMaterialStep":"Den entschiedenen Stand durch die zuständige Stelle überarbeiten, die geänderte Fassung erfassen und eine neue Vorlage mit bewusster Entscheidung einholen.","explicitVcsHandoff":"einen ausdrücklich angeforderten VCS-Abschluss vorbereiten","repeatCompletedRun":"abgeschlossene Run-Arbeit wiederholen","automaticVcsRelease":"VCS- oder Release-Aktionen automatisch ausführen","completedExplicitHandoff":"Run abgeschlossen; einen VCS-Abschluss nur auf ausdrückliche Anforderung vorbereiten.","endedRunForbidden":"einen beendeten Run fortsetzen oder wieder öffnen","endedSupersededNext":"Run als ersetzt beendet; für weitere Arbeit einen neuen Run starten.","endedAbandonedNext":"Run als aufgegeben beendet; für weitere Arbeit einen neuen Run starten.","inspectInconsistentCompletion":"den widersprüchlichen Abschluss prüfen und an den bestehenden Recovery-Verantwortlichen übergeben","repeatCompletedAutomatically":"abgeschlossene Arbeit automatisch wiederholen","claimCleanCompletion":"einen vollständig geprüften Abschluss behaupten","resolveInconsistentCompletion":"Die widersprüchlichen Abschlussvoraussetzungen des Runs klären, bevor ein vollständiger Abschluss bestätigt wird.","blockedPrdDecisionsOpen":"Erforderliche Produktentscheidungen sind noch offen","blockedSdTraceability":"Die Rückverfolgbarkeit im Solution Design ist unvollständig","blockedTpTraceability":"Die Rückverfolgbarkeit im Task Plan ist unvollständig","blockedControlMissing":"Die dauerhafte AGDF-Kontrolle fehlt","blockedRunMissing":"Ein kanonischer aktiver Run fehlt","blockedRelationshipMissing":"Eine erforderliche Artefaktbeziehung fehlt","blockedRelationshipEvidenceMissing":"Der Nachweis für eine erforderliche Artefaktbeziehung fehlt","blockedRelationshipConflict":"Erforderliche Artefaktbeziehungen sind widersprüchlich oder doppelt erfasst","relationshipCorrected":"Die fehlende Artefaktbeziehung wurde anhand des exakten versiegelten Prüfnachweises wiederhergestellt.","blockedEvidenceDeclared":"Ein erforderlicher Nachweis fehlt","blockedRiskDeclared":"Ein erfasstes Risiko muss geklärt werden","blockedUnknown":"Ein ungeklärter Kontrollbefund muss bearbeitet werden","completeControlStateFields":"die aktuellen Felder des Kontrollstatus vervollständigen","repairControlScaffold":"das AGDF-Kontrollgerüst reparieren","clarifyUserNeed":"den Nutzerbedarf klären","formulateAndPersistUr":"die Nutzeranforderungen formulieren und dauerhaft festhalten","draftOrRefinePrd":"PRD entwerfen oder überarbeiten","resolveListedPrdDecisions":"die aufgeführten PRD-Entscheidungen gemeinsam klären und eine neue Run-Revision festhalten","resolveOpenPrdDecisions":"die offenen PRD-Freigabeentscheidungen gemeinsam klären und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","noPrdBeforeDecisions":"das PRD vorlegen oder freigeben, bevor die erforderlichen Produktentscheidungen geklärt sind","completePrdReadinessItems":"die aufgeführten PRD-Bereitschaftspunkte gemeinsam abschließen und eine neue Run-Revision festhalten","nextPrdReadinessItems":"die offenen PRD-Bereitschaftspunkte gemeinsam abschließen und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","noPrdBeforeReadiness":"das PRD vorlegen oder freigeben, bevor Entscheidungen und Akzeptanzkriterien vollständig sind","completeSdTraceability":"die aufgeführten SD-Zuordnungen vervollständigen und eine neue Run-Revision festhalten","nextSdTraceability":"die aufgeführten SD-Zuordnungen vervollständigen und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","completeTpTraceability":"die aufgeführten TP-Nachweiszuordnungen vervollständigen und eine neue Run-Revision festhalten","nextTpTraceability":"die aufgeführten TP-Nachweiszuordnungen vervollständigen und die Revision dann mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","noTraceabilityBeforeApproval":"das Artefakt erst vorlegen oder freigeben, wenn die Nachweiszuordnung vollständig ist","defineScope":"den Umfang festlegen","defineAcceptanceCriteria":"Akzeptanzkriterien festlegen","defineNonGoals":"Nicht-Ziele festlegen","requestExactPrdApproval":"die exakte PRD-Freigabe anfordern","forbidCreateSd":"das Lösungsdesign erstellen","forbidCreateTp":"den Aufgaben- und Testplan erstellen","forbidBrownfieldAnalysisBeforeTp":"die Brownfield-Analyse als Implementierungsvorbereitung durchführen","forbidImplementCode":"Code implementieren","afterPrdApproval":"Das Lösungsdesign entwerfen; die Implementierung bleibt gesperrt.","draftOrRefineSd":"das Lösungsdesign entwerfen oder überarbeiten","defineArchitecture":"die Architektur festlegen","defineOwnership":"Verantwortlichkeiten festlegen","requestExactSdApproval":"die exakte SD-Freigabe anfordern","afterSdApproval":"Den Aufgaben- und Testplan entwerfen; die Implementierung bleibt gesperrt.","draftOrRefineTp":"den Aufgaben- und Testplan entwerfen oder überarbeiten","defineTaskIds":"Aufgaben-IDs festlegen","defineTestEvidence":"Testnachweise festlegen","requestExactTpApproval":"die exakte TP-Freigabe anfordern","afterTpApproval":"Die Brownfield-Analyse zur Implementierungsvorbereitung vor CD+Tests durchführen; für diesen internen Schritt ist keine weitere Nutzerfreigabe erforderlich.","runBrownfieldForApprovedTp":"die Brownfield-Analyse für den freigegebenen TP-Umfang durchführen","verifyOwnersReuseRegression":"bestehende Owner, Wiederverwendungspfade und Regressionsrisiken prüfen","forbidImplementationBeforeBrownfield":"implementieren, bevor die Brownfield-Nachweise den freigegebenen TP-Pfad stützen","nextBrownfieldBeforeCdTests":"Die Brownfield-Analyse für den freigegebenen TP-Umfang vor CD+Tests durchführen.","nextCdTestsBeforeCr":"Den freigegebenen TP-Umfang implementieren, seine Tests ausführen und die CD+Tests-Nachweise vor dem Code Review erfassen.","nextCdTestsAfterTpApproval":"TP freigegeben. Umsetzung, Tests und CD+Tests-Nachweise sind im genehmigten Umfang erlaubt.","unknownRunAction":"Ich kann die nächste Aktion des ausgewählten Runs nicht sicher bestimmen. Bitte kläre, was für diesen Run als Nächstes geschehen soll.","hostEvidenceProvisioningChoice":"AC-006 offenlassen oder eine separate Umfangsänderung für Host-Bereitstellung starten. Dieser TP erlaubt keine Host-Änderungen.","approvalSummaryRecovery":"Es wird keine Freigabe angefragt. Korrigiere die angegebene Zusammenfassungsanforderung auf {language}; erhalte sämtliche Inhalte.","completeMissingApprovalSummary":"Ergänze die vollständige lokalisierte Zusammenfassung im verlinkten Artefakt, erfasse eine neue Revision und erstelle eine neue Freigabepräsentation.","runMandatoryCodeReview":"das verpflichtende Code Review durchführen","recordCodeReviewFindings":"Befunde zu Korrektheit, Regression, Sicherheit und Wartbarkeit erfassen","fixBlockingReviewFindings":"blockierende Review-Befunde beheben","nextCodeReviewBeforeQa":"Das Code Review für den implementierten TP-Umfang durchführen und blockierende Befunde vor QA beheben.","nextReviewsBeforeQaApproval":"TP Review und Clean Implementation Review erfassen, bevor Approval: QA angefordert wird.","recordRequiredReviews":"TP Review und Clean Implementation Review erfassen","nextRerunQaForCurrentEvidence":"QA gegen die aktuelle Evidenz erneut durchführen, bevor Approval: QA angefordert wird.","nextQaGateAndApproval":"Das QA-Gate durchführen, den QA-Bericht dauerhaft festhalten und die exakte Freigabe Approval: QA anfordern","recordEvidence":"Nachweise erfassen","requestExactUrApproval":"die exakte UR-Freigabe anfordern","reviseQaImplementation":"die Implementierung anhand der QA-Befunde überarbeiten","refreshCdTestsAndReviews":"CD+Tests und die verpflichtenden Reviews aktualisieren","rerunQaWithEvidence":"QA mit aktualisierten Nachweisen erneut ausführen","runQaGate":"das QA-Gate durchführen","persistQaReport":"den QA-Bericht dauerhaft festhalten oder überarbeiten","requestExactQaApproval":"die exakte QA-Freigabe anfordern","requestExactUatApproval":"die exakte UAT-Freigabe anfordern","prepareNonOperativeDeliverySummary":"eine nicht-operative Lieferzusammenfassung vorbereiten","runDoctorAgain":"doctor erneut ausführen","recordRunRevision":"Unaufgezeichnete Bytes sichern, vertrauenswürdigen Zustand wiederherstellen und die Änderung beim aktuellen Eigentümer erfassen.","restoreRecordedApprovals":"Die erfassten Approvals-Zeilen wiederherstellen; eine Gate-Freigabe nur nach der exakten Antwort des Nutzers mit run-approve erfassen.","repairRunSeal":"Versiegelte Originalbytes wiederherstellen und Änderung prüfen; Siegel nicht entfernen oder fremde Änderungen übernehmen.","recoverUnsealedRun":"Eine vertrauenswürdig versiegelte Revision wiederherstellen oder den expliziten Legacy-Migrationspfad nutzen; aus dieser Datei keine Freigaben ableiten.","recoverPendingRunStep":"Die explizite unterstützte Wiederherstellung für genau diese offene Operation nutzen; widersprüchliche Bytes unverändert erhalten.","implementApprovedTpTasks":"die freigegebenen TP-Aufgaben implementieren","runApprovedTestPlan":"den freigegebenen Testplan ausführen","recordImplementationTestEvidence":"Implementierungs- und Testnachweise erfassen","createOrMigrateCanonicalRun":"einen kanonischen Run mit expliziter Run-ID erstellen oder migrieren","selectCanonicalRunExplicitly":"einen vorhandenen kanonischen Run explizit auswählen","persistRealUrBeforeApproval":"eine echte UR-Revision dauerhaft festhalten, bevor eine Gate-Freigabe angefordert wird","forbidLaterGateArtefacts":"Artefakte späterer Gates außerhalb des aktuell erlaubten Gates erstellen","forbidPrematureImplementation":"gesperrte Arbeit implementieren, bevor das Gate sie erlaubt","forbidGatedImplementation":"gesperrte Arbeit implementieren","forbidQaPass":"QA als bestanden erklären","forbidQaOrReleaseClaim":"QA- oder Veröffentlichungsbereitschaft behaupten","forbidQaApproval":"die QA-Freigabe anfordern","forbidDeliveryReadiness":"Lieferbereitschaft behaupten","forbidUatApproval":"die UAT-Freigabe anfordern","forbidRelease":"veröffentlichen","forbidDeliveryReadinessBeforeQa":"Lieferbereitschaft vor QA-Freigabe und Berichtsnachweis behaupten","forbidPush":"pushen","forbidOpenPr":"einen Pull Request öffnen","forbidCommitWithoutInstruction":"ohne ausdrückliche Nutzeranweisung und erforderliche Freigabe committen","forbidApprovalWithoutDurableRun":"eine Gate-Freigabe ohne dauerhaften Run und Artefakt anfordern","repairRuntimePackagingBaseline":"Die separat verwaltete Runtime-Packaging-Baseline reparieren, den vollständigen Smoke-Test erneut ausführen und QA aktualisieren.","fillUrControlState":"Den aktuellen UR-Kontrollstatus vervollständigen, den UR-Entwurf dauerhaft festhalten und die exakte Freigabe Approval: UR anfordern.","afterUrApproval":"Brownfield Review und die angemessene Routenwahl als einen internen Vorgang durchführen; jetzt ist keine Nutzeraktion erforderlich.","runBrownfieldReviewAfterG00":"Brownfield Review nach G-00 durchführen","identifyBrownfieldOwnersQuestions":"bestehenden Arbeitsstrang, Owner, SoT, Wiederverwendungsrisiken und offene PRD-/SD-Fragen ermitteln","markBrownfieldReviewDoneOrNotApplicable":"Brownfield Review im ausgewählten RUN_STATE.md als erledigt oder nicht zutreffend markieren","forbidPrdBeforeBrownfieldResolved":"PRD erstellen, bevor Brownfield Review geklärt ist","nextBrownfieldReviewBeforePrd":"Brownfield Review nach G-00 vor dem PRD-Entwurf durchführen oder mit Nachweis als nicht zutreffend markieren.","nextStructuredPrdBeforeSdTp":"PRD entwerfen oder überarbeiten. Erst implementieren, nachdem PRD, SD und TP freigegeben sind.","reviewLinkedArtefactForDecision":"Den verlinkten Entwurf prüfen und entscheiden, ob du ihn freigibst, überarbeiten lässt oder ablehnst.","nextStructuredSlicePrdBeforeApproval":"Den kleinsten durch Brownfield Review begründeten PRD-Umfang entwerfen oder überarbeiten. Erst nach Freigabe der erforderlichen Artefakte implementieren.","nextSdBeforeTp":"Das Lösungsdesign entwerfen oder überarbeiten. Erst implementieren, nachdem SD und TP freigegeben sind.","nextTpBeforeImplementation":"Den Aufgaben- und Testplan entwerfen oder überarbeiten. Erst nach TP-Freigabe implementieren.","regenerateLegacyProjection":"Die explizite Legacy-Projektion neu erzeugen oder entfernen, nachdem die Legacy-Consumer außer Betrieb genommen wurden.","requestQaApproval":"Die exakte Freigabe Approval: QA anfordern.","afterQaApproval":"UAT anfordern, nachdem QA bestanden wurde; die Veröffentlichung bleibt gesperrt.","afterQaDeviationApproval":"UAT nach ausdrücklicher Akzeptanz der vorgelegten QA-Abweichungen anfordern; die native Qualifikation bleibt unverändert.","afterUatApproval":"OR oder den Lieferabschluss erstellen; Versionskontroll- und Veröffentlichungsaktionen benötigen weiterhin eine ausdrückliche Anweisung.","produceOrOrDeliveryCloseout":"OR oder den Lieferabschluss erstellen","prepareVcsHandoffWhenRequested":"bei Bedarf einen Commit-, Push- oder Pull-Request-Handoff vorbereiten","forbidAutomaticVcsAndRelease":"automatisch committen, pushen, einen Pull Request öffnen oder veröffentlichen","produceDeliveryCloseoutOrRequestedHandoff":"Den Lieferabschluss oder angeforderten Handoff erstellen; Versionskontrollaktionen nicht automatisch ausführen.","captureFreshSessionEvidence":"GitHub Copilot neu starten und vor der UAT-Entscheidung Nachweise zur Plugin-Installation, Skill-Erkennung und zum SessionStart einer frischen Session erfassen.","preserveInstalledLoadedBoundary":"Die Unterscheidung zwischen installiertem Zustand und dem Ladeverhalten einer frischen Session beibehalten.","resolveDeliveryFindings":"Blockierende Befunde oder Befunde mit Überarbeitungsbedarf aus der Delivery Map beheben, bevor stärkere Qualitätsaussagen getroffen werden.","reviewDeliveryWarnings":"Befunde mit Warnstufe aus der Delivery Map prüfen, wenn weiter in die Liefersicherheit investiert wird.","noAdditionalQualityFollowUp":"Aus dem aktuellen Kontrollstatus ergibt sich keine weitere Qualitätsmaßnahme.","renewCopilotTargetEvidence":"Eine separate Entscheidung zu automatischen Runtime-Prüfungen einholen, Copilot neu starten und beide frischen Session-Pfade erfassen.","proveCopilotTargetContexts":"Die Unterdrückung ohne Repository und die Gate-Auswahl mit Repository im installierten Copilot belegen.","retestCopilotUnresolvedEarlyReturn":"Copilot neu starten, einen neuen deutschen GeneralChat ohne Repository öffnen und `agdf-qa-gate` aufrufen; den Repository-Pfad danach separat prüfen.","proveCopilotUnresolvedEarlyReturn":"Belegen, dass der geladene Host die Sprache aus der aktuellen Unterhaltung ableitet und die kanonische Karte unverändert übermittelt.","createSelectOrMigrateRun":"Den kanonischen Run erstellen, migrieren oder auswählen und seine UR-Revision vor jeder Freigabe dauerhaft festhalten.","selectIntendedRun":"Den gewünschten Run mit --run <run_id> oder AGDF_RUN_ID auswählen.","selectOrEvaluateActiveRuns":"Den gewünschten Run mit --run <run_id> oder AGDF_RUN_ID auswählen oder alle aktiven Runs mit --all-active unabhängig prüfen.","resolveReportedFinding":"Den unter „Blockiert durch“ genannten Befund beheben und danach gate-check erneut ausführen.","addEvidenceRow":"Mindestens eine Nachweiszeile ergänzen oder ausdrücklich festhalten, dass noch kein Nachweis vorliegt.","addBacklogPointer":"Den aktiven Eintrag ergänzen oder festhalten, dass kein gesteuertes Delivery-Element aktiv ist.","alignVerifiedChangeRowStatus":"Die Zeile im Run-Status und den Status des Records angleichen.","assignPrimarySot":"Mindestens für die Bereiche des nächsten Runs je eine primäre Source of Truth festlegen.","verifiedChangeCaptureCommit":"Vor der Eignungsprüfung die aktuelle vollständige Git-Commit-ID erfassen oder eskalieren.","verifiedChangeCaptureBaseline":"Die Worktree-Baseline erfassen, bevor der Record als geeignet markiert wird.","clarifyContextGraphImpact":"Die Auswirkung auf den Context Graph klären, bevor das Gate weitergeht.","closeExecutedVerifiedChange":"Den ausgeführten Verified Change mit seinem kompakten Record abschließen und den Lieferabschluss anbieten; keine VCS-Aktionen automatisch ausführen.","completeBrownfieldSelection":"Die Brownfield-Auswahl vor der Eignungsprüfung abschließen.","completeMiniCloseoutEvidence":"Ausführungs- und Mini-Closeout-Nachweise vervollständigen, bevor OR als erledigt gilt.","confirmActiveScope":"Den aktiven Umfang aus dauerhaften Artefakten bestätigen oder festhalten, warum Branch- oder Workspace-Nachweise nur unterstützen.","verifiedChangeCorrectDerivedPaths":"Die Liste der abgeleiteten Pfade korrigieren oder eskalieren.","verifiedChangeCorrectSnapshot":"Den historischen Ausführungs-Snapshot korrigieren oder eskalieren.","createOrActivateGovernedRun":"Einen gesteuerten Run erstellen oder aktivieren.","nextRepairVerifiedChangeRecord":"VERIFIED_CHANGE.md erstellen oder reparieren, die Baseline erfassen und vor der Implementierung jede Eignungsprüfung erfüllen; sonst eskalieren.","verifiedChangeDeclareSourcePaths":"Eine begrenzte, kommagetrennte Liste der Quellpfade angeben; andernfalls eskalieren.","nextDraftMinimalUrThenSetup":"Minimale UR entwerfen, Befugnis zum Einrichten oder Verknüpfen einholen und dauerhafte Kontrolle anlegen, bevor eine Gate-Freigabe angefordert wird.","verifiedChangeCleanCandidate":"Eskalieren oder von einem sauberen Kandidatenpfad ausgehen; vorhandene Änderungen nicht übernehmen.","fillMemoryReason":"memory_reason ausfüllen oder memory_target auf none setzen.","fillArtefactChainRow":"Die Zeile im Artefact Chain mit konkretem Nachweis füllen, bevor die Delivery Map als vollständig gilt.","fillNextAllowedAction":"Den nächsten erlaubten Schritt ausfüllen, bevor ein Agent die Delivery-Arbeit fortsetzt.","nextImplementEligibleVerifiedChange":"Nur den Umfang des geeigneten Verified-Change-Records implementieren und danach bestandene Propagations- und Validierungsnachweise erfassen.","keepRunsIndependentlyActionable":"Jeden aktiven Run unabhängig handlungsfähig halten.","keepSingleActiveSot":"Für diesen Bereich genau eine aktive primäre Source of Truth behalten.","backlogOneLinkPerType":"Genau einen Link pro Artefakttyp behalten.","keepSingleArtefactRow":"Dokumentverweise werden aus typisierten Bindungen abgeleitet; gültige Belege statt einer zusätzlichen Tabelle wiederherstellen.","verifiedChangeLinkRecord":"Ein stabiles, repository-relatives VERIFIED_CHANGE.md-Artefakt im ausgewählten Run-Status verlinken.","listCompetingScopes":"Konkurrierende Umfangslinien mit Gate- und Artefaktnachweisen auflisten und danach den aktiven Umfang klären.","verifiedChangeMarkEscalated":"Den Record als eskaliert markieren und am erklärten strukturierten Ziel fortfahren.","verifiedChangeNameOwner":"Einen kanonischen Owner-Pfad benennen; andernfalls eskalieren.","nextPersistApprovedUr":"Das freigegebene UR-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedPrd":"Das freigegebene PRD-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedSd":"Das freigegebene SD-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedTp":"Das freigegebene TP-Artefakt dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextPersistApprovedQa":"Den freigegebenen QA-Bericht dauerhaft festhalten und vor dem Fortfahren im AGDF-Kontrollstatus verlinken.","nextProceedAsStructuredSlice":"Als structured_slice fortfahren: das erforderliche PRD entwerfen und die exakte Freigabe Approval: PRD anfordern.","nextProceedAsStructuredDelivery":"Als structured_delivery fortfahren: das erforderliche PRD entwerfen und die exakte Freigabe Approval: PRD anfordern.","nextProceedAsQuickTask":"Als Quick Task im Umfang des Brownfield Review fortfahren und Verifikationsnachweise erfassen.","verifiedChangeRecaptureBaseline":"Die Baseline vor der Eignungsprüfung neu erfassen oder eskalieren; keine veraltete oder erfundene Baseline-Identität wiederverwenden.","verifiedChangeRecordAcceptanceCheck":"Eine deterministische Abnahme- oder Konsistenzprüfung erfassen oder eskalieren.","verifiedChangeRecordExecutionScope":"Vollständige Nachweise zum Ausführungsumfang erfassen oder eskalieren.","verifiedChangeRecordValidation":"Bestandene deterministische Validierungsnachweise erfassen oder eskalieren.","verifiedChangeRecordPropagation":"Nachweise einer erfolgreichen Propagation erfassen oder eskalieren.","verifiedChangeRecordEscalationTarget":"Das im Brownfield gewählte strukturierte Eskalationsziel erfassen.","nextRecordModeSliceDecision":"Die Mode/Slice-Entscheidung aus dem Brownfield Review mit Umfangsgrund und Nachweisen erfassen, bevor PRD-Tiefe oder Quick Task gewählt wird.","verifiedChangeRecordChangedPaths":"Die exakt geänderten Pfade erfassen oder eskalieren.","verifiedChangeRecordPropagationCommand":"Den Propagationsbefehl erfassen oder eskalieren.","removeUnsafePathText":"Absolute, verzeichnisüberschreitende, Backslash- oder sonst nicht normalisierte Pfadangaben entfernen.","replaceContextGraphExample":"Das Beispiel entfernen oder durch einen belegten Knoten mit Exit-Kriterium ersetzen.","repairOrRemoveInvalidRun":"Den ungültigen Run-Eintrag reparieren oder entfernen.","nextRequestUatApproval":"Vor der Lieferübergabe die exakte Freigabe Approval: UAT anfordern.","resolveContextGraphLink":"Context-Graph-Aktion erledigen: link.","resolveContextGraphUpdate":"Context-Graph-Aktion erledigen: update.","resolveContextGraphCreate":"Context-Graph-Aktion erledigen: create.","resolveContextGraphResolveDrift":"Context-Graph-Aktion erledigen: resolve_drift.","nextResolveBlockingQa":"Blockierende QA-Befunde lösen oder an den zuständigen Owner leiten, dann die Schritte wiederholen. Approval: QA nicht aus einem Block-Bericht anfordern.","resolvePerRunFindings":"Die Befunde je Run beheben.","nextResolveBrownfieldBlocker":"Die Blockade aus dem Brownfield Review auflösen, bevor ein Lieferweg gewählt wird.","nextResolveQaRevise":"QA-Revise-Befunde beheben, CD+Tests und Reviews aktualisieren und QA erneut ausführen. Approval: QA nicht aus einem Revise-Bericht anfordern.","verifiedChangeRestoreGit":"Den Zugriff auf das Git-Repository wiederherstellen oder den strukturierten Weg nutzen.","restoreQualityContracts":"Die generierten Contracts wiederherstellen oder das JSON-Contract-Schema korrigieren.","initControlWhenNeeded":"npx --yes @agdf/cli@latest init nur ausführen, wenn das Repository dauerhaften AGDF-Kontrollstatus führen soll oder Setup ausdrücklich nötig ist.","repairRunIdentity":"Nicht unterstützte oder unbelegte Daten erhalten; aktuelles Ziel prüfen und einen frischen aktuellen Run ohne Konvertierung verwenden.","verifiedChangeSetStatus":"Einen unterstützten Record-Status setzen oder zum erklärten strukturierten Ziel eskalieren.","setCurrentGate":"current_gate auf das aktuelle Delivery-Gate oder none setzen.","verifiedChangeSetRelatedUr":"related_ur auf den Pfad des dauerhaften UR-Artefakts im ausgewählten Run setzen.","updateUrArtefactRowStatus":"Die UR-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updatePrdArtefactRowStatus":"Die PRD-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updateSdArtefactRowStatus":"Die SD-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updateTpArtefactRowStatus":"Die TP-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","updateQaArtefactRowStatus":"Die QA-Artefaktzeile im ausgewählten RUN_STATE.md auf das gate-spezifische dauerhafte Statusvokabular umstellen.","backlogArtefactTypes":"UR, Brownfield, PRD, SD, TP, QA oder OR verwenden.","backlogLinkStyle":"Links im Stil [UR](artefacts/<key>/UR.md) verwenden, getrennt durch einen Mittelpunkt.","backlogScopeTag":"[framework-maintenance] oder [external-delivery] verwenden oder die Markierung in Klammern entfernen.","backlogArtefactTarget":"Ein dokumentrelatives Artefaktziel wie artefacts/<key>/UR.md verwenden.","backlogStatusLabel":"Ein dokumentiertes Status-Label oder einen unterstützten Legacy-Wert in snake_case verwenden.","useSafeArtefactPath":"Einen einfachen repository-relativen Pfad oder genau einen vollständigen Markdown-Code-Span verwenden.","nextUseDeliveryCloseoutOnRequest":"Den Lieferabschluss nur nutzen, wenn eine operative VCS-Übergabe ausdrücklich angefordert wird.","useDistinctArtefacts":"Getrennte Artefakte oder einen lebenszykluskonsistenten kompakten Verified-Change-Record verwenden.","useConsistentReviewAliasStatus":"Für Aliasnamen derselben Artefaktrolle einen einheitlichen Status verwenden.","backlogLayout":"Das kanonische kompakte Layout oder das unterstützte 13-spaltige Legacy-Layout verwenden.","verifiedChangeStructuredOrWorktree":"Den strukturierten Weg nutzen oder den Zugriff auf den Git-Worktree wiederherstellen.","verifiedChangeStructuredForProhibitedImpact":"Den strukturierten Weg nutzen, sobald eine verbotene Auswirkung zutrifft.","forbidAddProhibitedImpacts":"verbotene Auswirkungen hinzufügen","captureBaselinePaths":"Baseline-Pfade erfassen","chooseNextGateDepth":"die nächste erforderliche Gate-Tiefe wählen, bevor PRD entworfen oder implementiert wird","forbidReadinessWithoutEvidence":"QA- oder Veröffentlichungsbereitschaft ohne Nachweis behaupten","forbidQaUatReleaseClaim":"QA-, UAT- oder Veröffentlichungsbereitschaft behaupten","forbidReleaseClaim":"Veröffentlichungsbereitschaft behaupten","forbidValidationReleaseClaim":"Validierungs-, QA-, UAT- oder Veröffentlichungsbereitschaft behaupten","forbidCreatePrd":"die Produktanforderungen erstellen","forbidCreateBrownfieldAnalysis":"die Brownfield-Analyse erstellen","forbidCreateUat":"die Nutzerabnahme erstellen","forbidPrdBeforeSizing":"PRD erstellen, bevor die Prozessgröße entschieden ist","forbidRitualArtefacts":"PRD, SD, TP, QA oder UAT aus reinem Ritual erstellen","forbidSdTpBeforePrdApproval":"SD oder TP vor der PRD-Freigabe erstellen","forbidBroadArtefacts":"umfangreiche PRD-, SD- oder TP-Artefakte aus reinem Ritual erstellen","forbidAnyLaterGateArtefacts":"Artefakte späterer Gates erstellen","refineVerifiedChangeRecord":"den kompakten Verified-Change-Record erstellen oder überarbeiten","decideModeSlice":"entscheiden, ob die freigegebenen UR quick_task, verified_change, structured_slice, structured_delivery oder block sind","draftMinimalUr":"die minimalen Nutzeranforderungen für die gewünschte Änderung in der Antwort entwerfen","draftEscalatedPrd":"das vom erklärten Eskalationsziel geforderte strukturierte PRD entwerfen","forbidScopeExpansion":"den Umfang über die Entscheidung des Brownfield Review hinaus erweitern","forbidImplementCandidate":"Kandidatenänderungen implementieren","implementDeclaredPaths":"nur deklarierte Quell- und abgeleitete Pfade implementieren","implementNarrowUrScope":"den eng freigegebenen UR-Umfang implementieren","forbidImplementViaVerifiedChange":"über Verified Change implementieren","initializeDurableControl":"dauerhafte Kontrolle anlegen und festhalten, bevor eine Gate-Freigabe angefordert wird","linkArtefactFromControl":"das Artefakt im ausgewählten RUN_STATE.md verlinken","obtainSetupAuthority":"ausdrückliche Befugnis zum Anlegen oder Verknüpfen dauerhafter Kontrolle einholen","offerDeliveryCloseout":"den Lieferabschluss auf Anfrage anbieten","persistApprovedUrInStablePath":"das freigegebene UR-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/UR.md festhalten","persistApprovedPrdInStablePath":"das freigegebene PRD-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/PRD.md festhalten","persistApprovedSdInStablePath":"das freigegebene SD-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/SD.md festhalten","persistApprovedTpInStablePath":"das freigegebene TP-Artefakt in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/TP.md festhalten","persistApprovedQaInStablePath":"den freigegebenen QA-Bericht in einem stabilen Pfad wie .agdf/control/runs/<run_id>/documents/QA_REPORT.md festhalten","proveVerifiedChangeEligibility":"die Fail-closed-Eignung mit doctor und gate-check nachweisen","recordEvidenceAndOrLite":"Nachweise erfassen und mit OR-lite abschließen","recordExecutionAndMiniCloseout":"Ausführungsnachweise und Mini-Closeout erfassen","recordModeSliceFields":"Umfangsgrund, Nachweise und erforderliche nächste Gate-Tiefe im ausgewählten RUN_STATE.md erfassen","recordQaRemediation":"die nächste erlaubte Behebung oder vorgelagerte Entscheidung erfassen","forbidRepeatQuickTask":"die Quick-Task-Ausführung wiederholen","rerunQaAfterBlocker":"QA erst nach Auflösung der Blockade erneut ausführen","resolveModeSliceUncertainty":"Unklarheiten zu Ownership, SoT, Nachweisen, Auswirkung oder Produktrichtung auflösen","retainEscalationEvidence":"die Eskalationsnachweise des Verified Change behalten","routeBlockingQaFindings":"die blockierenden QA-Befunde an ihren zuständigen Owner leiten","runDeclaredValidation":"die deklarierten Propagations- und Validierungsbefehle ausführen","runGateCheckAgain":"gate-check erneut ausführen","runRelevantChecks":"relevante Prüfungen ausführen","forbidTouchUnlistedPaths":"nicht gelistete Pfade verändern","useCloseoutWhenRequested":"den Lieferabschluss nur auf ausdrückliche Anfrage nutzen","useVerifiedChangeMiniCloseout":"den Mini-Closeout des Verified Change nutzen","resolveOrAcceptMissingEvidence":"Den fehlenden Nachweis beschaffen oder ausdrücklich akzeptieren, bevor das Gate weitergeht.","assignRiskMitigationOrOwner":"Minderung oder Verantwortung zuweisen, bevor das Gate weitergeht.","blockedUrRequirements":"UR-Anforderungen müssen geklärt werden","completeUrRequirements":"die UR-Anforderungen klären und eine neue Run-Revision festhalten","nextUrRequirements":"die UR-Anforderungen klären, dann die Revision mit der angezeigten aktuellen Aufzeichnungsoperation festhalten","forbidUnreadyUr":"UR präsentieren oder freigeben, bevor die Anforderungen geklärt sind","completeSdReadinessItems":"die aufgeführten SD-Bereitschaftspunkte gemeinsam klären und eine neue Run-Revision erfassen","forbidSdBeforeReady":"SD präsentieren oder freigeben, bevor die erforderlichen Designentscheidungen geklärt sind","nextSdReadinessItems":"die offenen SD-Bereitschaftspunkte gemeinsam klären und die Revision mit der gemeinsamen Artefaktregistrierung erfassen","blockedSdDecisionsOpen":"erforderliche Designentscheidungen sind offen oder fehlerhaft","sourceRevisionUxNext":"UX-Intent unter der aktuell freigegebenen UR vor abhängigen Quellen erneut prüfen.","sourceRevisionUxAssess":"UX-Intent unter der freigegebenen UR und dem geprüften Analysekontext erneut bewerten","sourceRevisionUxRecord":"Die erneute Analyse vor abhängigen Entwürfen erfassen","sourceRevisionUxForbidden":"Abhängige Quellen vor der erneuten Analyse entwerfen oder freigeben","sourceRevisionAuthoringNext":"Quellenanalysen vor erneuten Freigaben prüfen","sourceRevisionResolveRoute":"Die Analyseroute unter der weiterhin freigegebenen UR klären","sourceRevisionSkipApprovals":"erneute Quellenfreigaben überspringen","nextResolveReviseQa":"Kläre QA-Revise-Befunde beim zuständigen Verantwortlichen vor abhängiger Arbeit. Aus Revise keine Approval: QA anfordern.","collectExactQaEvidence":"den genauen QA-Nachweis über seinen bestehenden Verantwortlichen beschaffen","nextCollectQaEvidence":"Beschaffe den genauen QA-Nachweis beim Verantwortlichen. Bereite die vollständige Beobachtungsfolge vor externen Aktionen vor; danach QA erneut ausführen.","blockedDecisionContent":"Erforderlicher Entscheidungsinhalt fehlt","completeDecisionContent":"Ergänze den aktuellen Entscheidungsinhalt über den zuständigen Owner, erfasse ihn kanonisch und prüfe denselben Run erneut.","correctDecisionContent":"nur erlaubte aktuelle Entscheidungsinhalte über den zuständigen Owner korrigieren","noIncompleteContentApproval":"Freigabe anfordern, bevor der erforderliche Entscheidungsinhalt konkret ist","currentOperationRecovery":"Originalbytes bewahren; die ursprüngliche aktuelle Operation und die dafür vorgesehene Wiederherstellung prüfen.","currentRunRecordEvidence":"Tatsächliche Nachweise über die dafür vorgesehene Funktion des aktuellen Runs erfassen.","currentRunSelectNoConversion":"Einen gültigen aktuellen Run auswählen; nicht unterstützte Steuerungsdaten werden niemals automatisch konvertiert.","currentRunCreateWithUuid":"einen aktuellen Run mit einer Operations-UUID anlegen","currentUrPersistBeforeApproval":"Den aktuellen Run anlegen oder auswählen und seine UR-Revision vor der Freigabeanfrage dauerhaft speichern.","blockedPrdReadiness":"Die PRD-Kriterien oder erforderlichen Quellen sind noch unvollständig","blockedApprovalSummary":"Die erforderliche Freigabezusammenfassung ist unvollständig","completeApprovalSummary":"die Freigabezusammenfassung des aktuellen Artefakts vervollständigen und eine neue Run-Revision erfassen","forbidApprovalBeforeSummaryReady":"das aktuelle Artefakt präsentieren oder freigeben, bevor seine erforderliche Freigabezusammenfassung vollständig ist","nextApprovalSummary":"die Freigabezusammenfassung des aktuellen Artefakts vervollständigen und die Revision dann über den geprüften aktuellen Erfassungsvorgang erfassen"},"scopeClassification":{"title":"AGDF-Scope-Klassifizierung","field":"Feld","value":"Wert","classification":"Klassifizierung","mode":{"quick_task":"Quick Task"},"boundary":{"inside":"Trivial-Change-Boundary erfüllt","outside":"Außerhalb der Trivial-Change-Boundary"},"grounds":"UR-Trigger-Evaluation","allowed":"Aktuell erlaubt","forbidden":"Bleibt verboten","escalation":"Eskalationsauslöser","challenge":"Widerspruchspfad"},"taskTargetResolution":{"title":"AGDF-Arbeitsziel","field":"Feld","value":"Wert","state":"Auflösung","resolved":"Aufgelöst","unresolved":"Klärung erforderlich","primaryTarget":"Primäres Ziel","governanceTarget":"Governance-Ziel","evidenceSources":"Evidenzquellen","workingDirectory":"Arbeitsordner","targetChanged":"Ziel gewechselt","yes":"ja","none":"keines","reason":"Grund","allowedValues":"Erlaubte Werte","nextAction":"Nächste Aktion","examplesLabel":"Beispiele","reasonCodes":{"explicit_target":"Explizites Ziel im aktuellen Turn","continued_target":"Bestätigtes Ziel wird fortgesetzt","multiple_plausible_targets":"Mehrere plausible Arbeitsziele","target_content_mismatch":"Änderung passt nicht zum Zielinhalt","target_unavailable":"Benanntes Ziel ist nicht verfügbar","no_reliable_target":"Kein belastbares Arbeitsziel","target_source_invalid":"Ungültige Zielquelle","working_directory_invalid":"Ungültiger Arbeitsordner","continued_target_changed":"Fortsetzungsziel ersetzt","target_path_relative":"Relativer Zielpfad","target_not_in_repository":"Kein verifiziertes Repository","current_repository_root_required":"Repository-Wurzel erforderlich","current_repository_context_mismatch":"Repository-Kontext passt nicht"},"nextActions":{"multiple_plausible_targets":"Ein exaktes Ziel mit vollständigem Pfad, Git-URL oder vorhandener Run-ID auswählen.","target_content_mismatch":"Das gewünschte Ziel mit vollständigem Pfad, Git-URL oder vorhandener Run-ID nennen.","target_unavailable":"Einen korrigierten vollständigen Pfad, eine Git-URL oder vorhandene Run-ID angeben.","no_reliable_target":"Ein exaktes Ziel mit vollständigem Pfad, Git-URL oder vorhandener Run-ID benennen.","target_source_invalid":"Einen erlaubten target_source-Wert und den vollständigen Pfad, die Git-URL oder Run-ID angeben.","examples":"Nenne einen echten Wert, z. B. `/Users/alex/work/project`, `https://github.com/org/project` oder `run-project-20260928`.","working_directory_invalid":"Nenne einen zugänglichen Arbeitsordner mit absolutem Pfad.","continued_target_changed":"Ordne das neue Ziel als explicit_target ein.","target_path_relative":"Nenne den absoluten Pfad des gewünschten Ziels.","target_not_in_repository":"Nenne ein Ziel innerhalb des zu prüfenden Git-Repositorys.","current_repository_root_required":"Nenne für current_repository die verifizierte Repository-Wurzel.","current_repository_context_mismatch":"Verwende current_repository nur mit einem Arbeitsordner innerhalb dieses Repositorys."}},"internalStateLabels":{"verifiedChange":"Kompakte Änderung wird geprüft","verifiedChangeEscalated":"Eskaliert zu structured delivery","contextGraphMaintained":"Projektgedächtnis wird gepflegt","contextGraphOpenGap":"Graph-Lücke offen","multiScopeBlocked":"Mehrdeutiger Scope, Klärung nötig"},"qualityReadiness":{"title":"Quality Readiness","rows":{"plan_coverage":"Planabdeckung","solution_integrity":"Lösungsintegrität","code_quality":"Code-Qualität","qa_decision":"QA-Entscheidung"},"reason":"Grund","reference":"Nachweisbericht","nextAction":"Nächste Aktion","decisionOwner":"Entscheidungsinstanz","decisionOwnerValue":"QA-Gate","unknown":"Nachweis fehlt","fallbackReasons":{"plan_coverage":"Die Planabdeckung muss vor einem QA-Pass überarbeitet werden.","solution_integrity":"Die Lösungsintegrität muss vor einem QA-Pass überarbeitet werden.","code_quality":"Code-Qualitätsbefunde müssen vor einem QA-Pass überarbeitet werden.","qa_decision":"Die QA-Nachweise müssen vor einem QA-Pass überarbeitet werden."}},"gateTitles":{"UR":"Nutzeranforderungen","PRD":"Produktanforderungen","SD":"Lösungsdesign","TP":"Aufgaben- und Testplan","QA":"Qualitätssicherung","UAT":"Nutzerabnahme","Brownfield Review":"Brownfield-Prüfung","Mode/Slice Decision":"Entscheidung zum Lieferumfang","Brownfield Analysis":"Implementierungsvorbereitung","CD+Tests":"Implementierung und Tests","CR":"Code-Review","OR":"Lieferbericht","Verified Change":"Verified Change","Quick Task":"Quick Task","Compact Delivery":"Kompakte Lieferung","Block":"Block"},"gateActionTitles":{"UR":"Nutzeranforderungen prüfen und entscheiden","PRD":"Produktanforderungen prüfen und entscheiden","SD":"Lösungsdesign prüfen und entscheiden","TP":"Aufgaben- und Testplan prüfen und entscheiden","QA":"Qualitätssicherung prüfen und entscheiden","UAT":"Nutzerabnahme prüfen und entscheiden"},"gateRequiredDecisions":{"UR":"Freigabe der Nutzeranforderungen","PRD":"Freigabe der Produktanforderungen","SD":"Freigabe des Lösungsdesigns","TP":"Freigabe des Aufgaben- und Testplans","QA":"Freigabe der Qualitätssicherung","UAT":"Entscheidung über die Nutzerabnahme"},"interaction":{"ready":"Bereit für deine Entscheidung","approveHeading":"Jetzt freigeben","nextHeading":"Danach","decisionInstruction":"Prüfe das verlinkte Artefakt und wähle unten eine Option.","decisionPrompt":"Für {gate} im Run {run_id}: freigeben, Überarbeitung anfordern oder ablehnen.","exactTextRequest":"Zur Freigabe exakt mit `{approval}` antworten; andernfalls Überarbeitung anfordern oder ablehnen.","decisionFollows":"ist die nächste Nutzerentscheidung","presentationFailure":"Die Freigabekarten konnten nicht sicher dargestellt werden.","statusPresentationFailure":"Statuskarte nicht sicher darstellbar.","nonReadyDecision":"Keine Entscheidung angefordert: {reason}.","approveDescription":"Dieses Gate mit dem exakten Freigabewert autorisieren.","reviseLabel":"Überarbeiten","reviseDescription":"Das Gate offen lassen und Änderungen anfordern.","declineLabel":"Ablehnen","declineDescription":"Dieses Gate bewusst ablehnen; die Berechtigung bleibt unverändert.","cancelLabel":"Abbrechen","cancelDescription":"Diese Entscheidung ohne Freigabe oder Ablehnung schließen.","why":{"label":"Warum?","fulfilledPrefix":"Erfüllt:","protectsPrefix":"Schützt vor:"}},"skillDispatch":{"invalidInputDescription":"Ungültige Dispatcher-Eingabe für {field}. Korrigieren und einmal erneut versuchen.","allowedValuesDescription":"Ungültiger Wert für {field}. Erlaubt: {allowed_values}. Korrigieren und einmal erneut versuchen.","recoveries":{"target_evaluation_failed":"Arbeitszielauswertung reparieren und einmal erneut versuchen.","target_presentation_failed":"Arbeitszieldarstellung reparieren und einmal erneut versuchen.","control_evaluation_failed":"Gate-Auswertung reparieren und einmal erneut versuchen.","control_presentation_failed":"Gate-Darstellung reparieren und einmal erneut versuchen.","internal_failure":"Dispatcher reparieren und einmal erneut versuchen.","runtime_contracts_unavailable":"AGDF-Plugin reparieren oder neu installieren: Paketierte Laufzeitverträge konnten nicht geladen werden. Danach einmal erneut versuchen.","runtime_evidence_invalid":"Bereitstellung der Laufzeitnachweise reparieren und einmal erneut versuchen.","output_too_large":"Ausgabegrenze des Dispatchers reparieren und einmal erneut versuchen.","intake_run_collision":"Die Run-ID ist bereits belegt. Den bestehenden Auftrag ausdrücklich zuordnen oder für den neuen Umfang eine unbenutzte ID wählen.","intake_scaffold_required":"Das kanonische Kontrollgerüst prüfen und vor der Run-Erstellung wiederherstellen.","intake_run_id_invalid":"Eine neue Run-ID lautet run-<uuid>. Über MCP den Run mit agdf_run run.create anlegen, dann mit intake_mode resume erneut dispatchen.","run_assignment_inventory_invalid":"Das Run-Inventar ist unvollständig oder ungültig. Die genannten Kontrollbefunde beheben und Intake erneut prüfen; der Fehler begründet keinen neuen Umfang.","prd_authoring_inputs_invalid":"PRD-Erstellung gesperrt: freigegebene UR, Brownfield-Quelle, bereite UX-Eingabe und PRD-Pfad prüfen. Eingaben beim Eigentümer korrigieren und erneut prüfen.","sd_authoring_inputs_invalid":"SD-Erstellung gesperrt: freigegebenes PRD, Brownfield/bereite Analyse und SD-Pfad prüfen. Eingaben beim Eigentümer korrigieren und erneut prüfen.","tp_authoring_inputs_invalid":"TP-Erstellung gesperrt: freigegebenes PRD/SD, Brownfield/bereite Analyse und TP-Pfad prüfen. Eingaben beim Eigentümer korrigieren und erneut prüfen.","AGDF_ARTEFACT_TEMPLATE_UNSUPPORTED":"Authoring gesperrt: kanonisches Template nicht unterstützt. Den Authoring-Owner korrigieren und erneut versuchen.","AGDF_ARTEFACT_TEMPLATE_ROOT_UNAVAILABLE":"Authoring gesperrt: vertrauenswürdiger Plugin-Template-Root fehlt. Passendes AGDF-Plugin neu installieren.","AGDF_ARTEFACT_TEMPLATE_UNAVAILABLE":"Authoring gesperrt: erforderliches Plugin-Template fehlt. Passendes AGDF-Plugin neu installieren.","AGDF_ARTEFACT_TEMPLATE_UNSAFE":"Authoring gesperrt: unsicherer Plugin-Template-Pfad. Passendes Plugin reparieren; kein Fallback."},"sourceInput":{"source":"Quelle","expected":"Erwartetes Feld/Wert","observed":"Gefunden (Originalangabe)","next":"Nächster Schritt","prepare":"Der UX-Verantwortliche darf diese unfreigegebene Analyse vorbereiten oder korrigieren, prüfen und vor erneuter Auswertung kanonisch erfassen.","stop":"Der Quellenverantwortliche muss diese Bedingung vor abhängiger Arbeit klären.","conditions":{"unsafe_destination":"Der Ausgabepfad ist unsicher.","source_unavailable":"Eine erforderliche Quelle ist nicht verfügbar.","unsafe_ux_source":"Die UX-Quelle liegt an einem fremden oder unsicheren Pfad.","ux_source_missing":"Die erforderliche UX-Analyse fehlt.","ux_decision_malformed":"Das genaue UX-Bereitschaftsfeld fehlt oder ist mehrdeutig.","ux_not_ready":"Die UX-Analyse ist nicht bereit.","ux_source_unrecorded":"Die bereite UX-Analyse ist noch nicht kanonisch erfasst."}}},"artefacts":{"notYetCreated":"noch nicht erstellt"},"primary":{"readOnlyOrientationDescription":"Read-only Prüfung – kein neuer AGDF-Run und keine Freigabe erforderlich.","lifecycleResult":{"title":"AGDF-Lifecycle-Ergebnis","statusTitle":"AGDF-Status","result":"Ergebnis","surface":"Oberfläche","scope":"Installationsscope","version":"AGDF-Version","verification":"Verifikation","restart":"Neustart erforderlich","installation":"Installation","repository":"Repository","delivery":"Delivery","next":"Nächste Aktion","yes":"ja","no":"nein","unknown":"unbekannt"},"status":{"open":"offen","blocked":"blockiert","pass":"bestanden","warn":"Prüfung erforderlich","revise":"Überarbeitung erforderlich","in_progress":"in Arbeit","closed":"geschlossen"},"none":"keine","blocked":"Voraussetzungen des aktuellen Gates","quality":"Präsentationsvertrag, Nachweise und Gate-Berechtigung konsistent halten.","lifecycle":{"active":"in Arbeit","completed_closeout_pending":"abgeschlossen — Abschluss offen","completed":"abgeschlossen","blocked":"blockiert","unknown":"Status nicht verfügbar"},"actions":{"UR":"Nutzeranforderungen klären und freigeben.","Brownfield Review":"Bestehende Owner prüfen und den kleinsten sicheren Lieferweg wählen.","Mode/Slice Decision":"Den angemessenen Lieferumfang anhand der Repository-Nachweise festlegen.","PRD":"Produktverhalten definieren und freigeben.","SD":"Lösungsdesign definieren und freigeben.","TP":"Aufgaben- und Testplan definieren und freigeben.","Brownfield Analysis":"Owner, Wiederverwendung und Regressionstests vor der Implementierung prüfen.","CD+Tests":"Den freigegebenen Plan implementieren und Testnachweise sammeln.","CR":"Implementierung prüfen und blockierende Befunde beheben.","QA":"Qualitätsnachweise bewerten und die QA-Entscheidung treffen.","UAT":"Die bewusste Nutzerabnahme entscheiden.","OR":"Den auditierbaren Lieferbericht erstellen."},"afterApproval":{"UR":"Bestehende Owner prüfen und den angemessenen Lieferweg wählen; die Implementierung bleibt gesperrt.","PRD":"Das Lösungsdesign entwerfen; die Implementierung bleibt gesperrt.","SD":"Den Aufgaben- und Testplan entwerfen; die Implementierung bleibt gesperrt.","TP":"Die Brownfield-Analyse vor der Implementierung durchführen; die Implementierung startet nur nach bestandenem Ergebnis.","QA":"Die Nutzerabnahme vorbereiten; die Veröffentlichung bleibt gesperrt.","UAT":"Den Lieferbericht vorbereiten; Versionskontroll- und Veröffentlichungsaktionen benötigen weiterhin eine ausdrückliche Anweisung."},"narration":{"gateSatisfied":"{gate} genehmigt","noAction":"Keine Nutzeraktion erforderlich","gates":{"UR":{"agentNext":"Agent führt Brownfield Review als Nächstes durch"},"PRD":{"agentNext":"Nach deiner PRD-Freigabe entwirft der Agent das Lösungsdesign","userAction":"Sobald der Entwurf vorliegt, prüfst du das Lösungsdesign und entscheidest darüber"},"SD":{"agentNext":"Agent entwirft als Nächstes den Aufgaben- und Testplan"},"TP":{"agentNext":"Agent führt Brownfield-Analyse vor Implementierung durch"},"QA":{"agentNext":"Agent bereitet die Nutzerabnahme vor","userAction":"Nutzerabnahme als Nächstes"},"UAT":{"agentNext":"Agent bereitet den Lieferbericht vor"}}}},"gateRationale":{"UR":"UR klärt, was du willst, warum und für wen — bevor etwas gebaut wird, das niemand brauchte.","PRD":"PRD definiert das Produktverhalten, bevor das Lösungsdesign es zementiert.","SD":"Lösungsdesign legt Ownership, Architektur und Abhängigkeiten fest — bevor Code sie faktisch zementiert.","TP":"Taskplan macht Akzeptanzkriterien und Tests verbindlich, damit QA später messen kann.","QA":"QA bewertet die echten Nachweise, bevor eine Freigabe auf Vermutungen basiert.","UAT":"UAT verlangt eine bewusste Abnahme, bevor der Lauf als geliefert gilt.","Brownfield Review":"Prüft, ob bestehende Systeme, Owners und Konventionen betroffen sind, damit nichts kaputt geht oder doppelt entsteht.","Mode/Slice Decision":"Entscheidet den angemessenen Lieferumfang, damit der Prozess zur Veränderung passt — nicht umgekehrt.","Brownfield Analysis":"Verifiziert Wiederverwendung, Owners und Regressionstests, bevor Code existiert.","CD+Tests":"Implementierung und Tests liefern Nachweise — nicht nur Code.","CR":"Code-Review ist verpflichtend, bevor QA entscheidet.","OR":"Der Lieferbericht macht den Lauf auditierbar — nicht nur behauptet."},"mcpLifecycle":{"title":"AGDF MCP-Lebenszyklus","labels":{"operation":"Vorgang","result":"Ergebnis","capability":"Fähigkeit","surface":"Host","scope":"Bereich","scopeEffect":"Bereichswirkung","target":"Ziel","authorizes":"Autorisiert","runtime":"Laufzeit","registration":"Registrierung","discovery":"Erkennung","permissionEffect":"Prozesszugriff","diagnostics":"Diagnosen","nextAction":"Nächste Aktion","fallback":"Kompatibler Pfad"},"capabilities":{"supported":"unterstützt","manual_compatible":"kompatibler Pfad verfügbar","unavailable":"Host nicht verfügbar","unsupported":"Hostversion nicht unterstützt","unverified":"nicht direkt qualifiziert"},"registrations":{"absent":"nicht vorhanden","matched":"stimmt überein","foreign":"fremder Eintrag","owned_mismatch":"eigener Eintrag weicht ab","precedence_conflict":"Konflikt mit höherer Priorität","invalid":"ungültige Konfiguration"},"discoveries":{"not_checked":"nicht geprüft","pending_restart":"Neustart ausstehend","discovered":"erkannt","not_discovered":"nicht erkannt","unavailable":"nicht verfügbar"},"results":{"not_configured":"nicht konfiguriert","configured_pending_restart":"konfiguriert; Neustart ausstehend","configured_unverified":"konfiguriert; Erkennung ungeprüft","discovered_ready":"erkannt und bereit","unchanged":"unverändert","disabled":"deaktiviert","degraded":"beeinträchtigt","failed":"fehlgeschlagen"},"scopeEffects":{"project":"nur das ausgewählte Projekt","user":"Benutzer über Projekte hinweg"},"permissionEffects":{"inherited_host_user":"Der MCP-Prozess erbt die Rechte des Host-Benutzers."},"diagnostics":{"none":"keine","registration_inspection_failed":"Die ausgewählte Registrierung konnte nicht geprüft werden.","rollback_incomplete":"Das Rollback hat nicht alle angewendeten Lebenszyklusphasen wiederhergestellt.","agdf_mcp_registration_foreign":"Die ausgewählte Registrierung gehört nicht AGDF.","agdf_mcp_registration_precedence_conflict":"Eine Registrierung mit höherer Priorität widerspricht der ausgewählten Quelle.","agdf_mcp_registration_verification_failed":"Das Auslesen der Registrierung entspricht nicht dem beabsichtigten Zustand.","agdf_mcp_disable_verification_failed":"Das Entfernen der Registrierung konnte nicht bestätigt werden.","agdf_mcp_package_acquisition_failed":"Das genaue MCP-Server-Paket konnte nicht bezogen werden.","agdf_mcp_runtime_unowned":"Der Laufzeitpfad enthält Inhalte, die AGDF nicht als eigenen Bestand bestätigen kann.","agdf_mcp_server_manifest_invalid":"Das Paketmanifest des MCP-Servers ist ungültig.","agdf_mcp_dispatcher_manifest_invalid":"Das Paketmanifest des Dispatchers ist ungültig.","agdf_mcp_sdk_manifest_invalid":"Das Paketmanifest des MCP-SDK ist ungültig.","agdf_mcp_server_version_mismatch":"Die bezogene MCP-Laufzeit entspricht nicht den erforderlichen Versionen.","agdf_mcp_server_entrypoint_invalid":"Der Einstiegspunkt des MCP-Servers fehlt oder ist ungültig.","agdf_mcp_server_verification_failed":"Die installierte MCP-Laufzeit hat die genaue Prüfung nicht bestanden.","agdf_mcp_claude_update_rollback_failed":"Claude Code konnte beim Aktualisieren die vorherige Registrierung nicht wiederherstellen.","enable_failed":"Die MCP-Aktivierung ist fehlgeschlagen.","disable_failed":"Die MCP-Deaktivierung ist fehlgeschlagen.","claude_plugin_managed":"Claude Code startet den AGDF-MCP-Server aus dem installierten AGDF-Plugin; eine separate Registrierung wird nicht verwendet.","codex_plugin_managed":"Codex startet den AGDF-MCP-Server aus dem installierten AGDF-Plugin; eine separate Registrierung wird nicht verwendet.","runtime_executables_retained":"Die Registrierung wurde entfernt. Laufzeitdateien bleiben erhalten, solange ihre Nutzung aktiv, historisch oder unbestätigt ist.","agdf_mcp_codex_source_changed":"Die Konfiguration hat sich seit der Vorschau geändert; es wurde nichts überschrieben.","agdf_mcp_codex_rollback_conflict":"Eine fremde Änderung verhindert das sichere Rollback.","agdf_mcp_runtime_reference_changed":"Laufzeitreferenzen wurden gleichzeitig geändert; den Konflikt vor einer Wiederholung klären.","cockpit_transition_pending":"Der Cockpit-Übergang ist eingetragen; Host aktualisieren und Discovery, Rendering und Interaktion vor dem Abschluss prüfen.","cockpit_transition_failed":"Cockpit-Übergang fehlgeschlagen. Den benannten Nachweis-, Besitz- oder Änderungskonflikt vor einem erneuten Versuch prüfen.","cockpit_legacy_retained":"Die bestehende Cockpit-ID bleibt erhalten, bis Ownership, Verbraucherwechsel und bewusste Sitzungsaktualisierung belegt sind. Keine Doppelregistrierung."},"actions":{"use_node_22":"Node.js 22 oder neuer verwenden und erneut versuchen.","install_host":"Einen unterstützten Host installieren und erneut versuchen.","resolve_registration":"Die ausgewählte Registrierung klären und erneut versuchen.","enable_scope":"MCP für diesen Bereich ausdrücklich aktivieren.","restart_host":"Die betroffene Verbindung über die unterstützte Hostfunktion bewusst aktualisieren und Erkennung sowie Laufzeit in der neuen Sitzung prüfen.","version_matched_cli_dispatch":"Den versionsgleichen AGDF-CLI-Skill-Dispatch-Pfad verwenden.","resolve_failure":"Den gemeldeten Lebenszyklusfehler beheben und erneut versuchen.","resolve_precedence":"Die Registrierung mit höherer Priorität klären und erneut versuchen.","disable_effective_scope":"Die verbleibende wirksame MCP-Registrierung ausdrücklich in ihrem Bereich deaktivieren.","inspect_effective_scope":"Die verbleibende wirksame Benutzerregistrierung mit --scope user prüfen.","retry":"Dieselbe ausdrückliche Lebenszyklusaktion erneut versuchen.","none":"Keine weitere Lebenszyklusaktion erforderlich.","use_claude_plugin_mcp":"Das AGDF-Plugin für Claude Code installieren oder aktualisieren; sein MCP-Server startet mit dem Plugin.","use_codex_plugin_mcp":"Das AGDF-Plugin für Codex installieren oder aktualisieren; sein MCP-Server startet mit dem Plugin."},"setup":{"title":"AGDF-Hostkonfiguration","labels":{"source":"Quelle","role":"Rolle","owner":"Owner","configured":"Konfiguration","started":"Start","discovered":"Discovery","app_rendered":"App dargestellt","app_interacted":"Interaktion","runtime":"Laufzeit"},"roles":{"product":"AGDF","cockpit":"AGDF Cockpit","diagnostic":"Diagnose/Test","legacy_or_conflict":"Altbestand/Konflikt"},"states":{"declared":"deklariert","disabled":"deaktiviert","unknown":"unbekannt","unobserved":"nicht beobachtet","unavailable":"nicht verfügbar"},"noticeDescription":"Deklaration ist kein Host-, Sitzungs- oder App-Nachweis. Wirksame Rechte und neue Sitzungen direkt prüfen; gemeinsame App-Daten erhalten."}},"repositoryMaintenance":{"title":"Prüfung des Kontrollbestands","unavailable":"Repository-Prüfung nicht verfügbar","next":"Direkter Runtime-Aufruf:","outcomes":{"not_started":"nur geprüft"}},"activeRunInventory":{"countDescription":"{count} aktive AGDF-Runs gefunden.","noneDescription":"Keine aktiven AGDF-Runs in diesem Projekt.","absentDescription":"Dieses Projekt hat keinen Ordner .agdf/control.","incompleteDescription":"Die Inventur ist unvollständig; die Gesamtzahl aktiver Runs ist unbekannt.","findingsDescription":"Prüfbefunde:"},"sourceRevision":{"title":"Quellenrevision","preview":"Nur vorgeschlagen","reopened":"Revision angewendet","historical":"Nur historische Nachweise","replayed":"Historischer Vorgang wiederholt","recovered":"Wiederherstellung geprüft","recovery_required":"Wiederherstellung erforderlich","rejected":"Revision abgelehnt","not_found":"Vorgang nicht gefunden","target":"Ziel","run":"Run","operation":"Vorgang","revision":"Aktuelle Revision","original":"Ursprüngliche Ergebnisrevision","source":"Geänderte Quelle","retained":"Beibehaltene Freigaben","superseded":"Aufgehobene Freigaben","reason":"Grund","next":"Nächste Aktion","none":"Keine","authority":"Dieses Ergebnis erteilt keine Umsetzungs- oder Gate-Freigabe.","reviewNext":"Vorschlag prüfen; seine genaue Vorschau ausdrücklich anwenden oder abbrechen.","readNext":"Den aktuell gebundenen Run vor der nächsten erlaubten Aktion prüfen.","refuseNext":"Aktuelle Fakten prüfen und einen neuen geprüften Vorschlag vorbereiten.","recoverNext":"Gebundenen offenen Vorgang prüfen und ausdrücklich wiederherstellen.","intent":"Beabsichtigte Änderung","binding":"Vorschaudigest für ausdrückliches Anwenden","sources":"Gebundene Quellinhalte","artefacts":"Artefakte mit neuer Erfassung und Freigabe","evidence":"Schritte mit erneut erforderlichen Nachweisen","work":"Erhaltene Arbeit","retainedWork":"Code und Tests bleiben; Erfüllung gegen den neuen TP prüfen.","analyses":"Anwendbarkeit der Analysen","retain":"Beibehalten","reassess":"Neu prüfen"},"flowEvidence":{"title":"Nachweise zu dieser Fassung","current":"Aktuell anwendbare Nachweise","superseded":"Frühere Nachweise","applicability_unknown":"Anwendbarkeit nicht bestätigt","currentDescription":"Nur eindeutig zugeordnete Berichte gehören zur aktuellen Quellenfassung. Frühere oder unbestätigte Nachweise bestätigen keine aktuellen Voraussetzungen.","emptyDescription":"Keine bestätigte aktuelle Zuordnung verfügbar. Das bedeutet nicht, dass alle erforderlichen Nachweise erfüllt sind.","historyDescription":"Frühere Nachweise bleiben lesbar; sie ersetzen keinen aktuellen Bericht.","unknownDescription":"Der gespeicherte Verweis lässt sich dieser Fassung nicht verlässlich zuordnen. Seine Anwendbarkeit bleibt unbestätigt.","unavailable":"Quelle nicht verfügbar","open":"Registrierte Quelle lesen","next":"Nächster Schritt laut Core","human":"Deine Entscheidung ist erforderlich","agent":"Der Assistent arbeitet weiter","completed":"Freigegebener Umfang abgeschlossen","unconfirmedDescription":"Der Abschluss ist nicht bestätigt. Maßgeblich bleibt die aktuelle Core-Auswertung.","retainedDescription":"Dies ist eine ältere Beobachtung. Vor einer Aussage zur aktuellen Anwendbarkeit neu laden."},"decisionCard":{"title":"Prüfen und entscheiden","connecting":"Verbindung zu dieser Vorlage wird hergestellt …","unavailable":"Diese genaue Vorlage ist nicht verfügbar. Nutze die aktuelle genaue Textvorlage im Chat.","approve":"Freigeben","request_change":"Änderung anfordern","reject":"Ablehnen","openDocument":"Vorgelegtes Dokument lesen","back":"Zur Entscheidung zurück","comment":"Kommentar","commentHelp":"Für eine Änderungsanforderung ist ein Kommentar nötig. Beim Schließen verfällt ein ungesendeter Kommentar. Höchstens 8 KiB.","pending":"Entscheidung wird übermittelt …","uncertain":"Das Ergebnis ist ungewiss. Prüfe den ursprünglichen Vorgang vor einer weiteren Übermittlung.","checkOperation":"Gespeichertes Ergebnis prüfen","retryOriginal":"Ursprüngliche Übermittlung wiederholen","confirmed":"Entscheidung gespeichert.","denied":"Die Entscheidung wurde nicht gespeichert.","notQualified":"Diese Karte zeigt dir die vorgelegte Fassung zum Lesen. Freigeben kannst du sie im Chat mit der unten angegebenen Antwort.","sourceChanged":"Die vorgelegte Quelle oder Revision hat sich geändert. Vor einer Entscheidung ist eine aktuelle Vorlage nötig.","expired":"Diese Entscheidungsansicht ist abgelaufen oder geschlossen.","comparison":"Änderungen gegenüber der vorherigen anwendbaren Fassung","comparisonUnavailable":"Für einen Vergleich liegt keine bestätigte vorherige anwendbare Fassung vor.","machineComparison":"Vergleich der Dokumentbytes mit dem bestätigten Archiv; keine fachliche Änderungsprüfung.","documentUnchanged":"Die Dokumentbytes sind unverändert; andere Entscheidungsquellen können abweichen.","documentChanged":"Die Dokumentbytes unterscheiden sich. Prüfe die vorgelegte und die archivierte Fassung bei der Bewertung.","previousDocument":"Archivierte vorherige Fassung ansehen","sources":"Details und Nachweise","run":"Run","gate":"Entscheidungsschritt","revision":"Vorgelegte Revision","consequence":"Eine Entscheidung gilt nur für dieses genaue Material. Nach dem Speichern bestätigt der Core den erlaubten nächsten Schritt.","permission":"Technische Toolerlaubnis und diese Entscheidung sind getrennt. Der Host kann zusätzlich nachfragen.","docUnavailable":"Das genaue vorgelegte Dokument ist nicht verfügbar. Eine andere Fassung wird nicht stattdessen angezeigt.","commentRequired":"Beschreibe die gewünschte Änderung vor dem Übermitteln.","commentTooLarge":"Der Kommentar überschreitet 8 KiB.","documentTitle":"Vorgelegtes Dokument","notSaved":"Eine Speicherung ist nicht bestätigt. Lesen und Diskussion entscheiden nichts.","unknownCurrent":"Die Speicherung ist bestätigt; der aktuelle Stand ist nicht verfügbar.","sourceLanguage":"Die Quellsprache steht in der Vorlage.","alreadyDecided":"Dieses Material wurde bereits entschieden. Folge dem aktuellen Core-Ergebnis.","initialize":"Das Öffnen dieser Ansicht erfasst keine Entscheidung.","discussionHint":"Fragen und Änderungswünsche kannst du im Chat besprechen. Freigeben kannst du diese Fassung hier oder im Chat mit Approval: {gate}.","nextStep":"Nächster Schritt","nextInformation":"Nächster Schritt: {step}.","nextChat":"Setze den Run im Chat fort, um diesen Schritt zu beginnen.","nextWaiting":"Freigabe gespeichert. Die Fortsetzung wartet auf das Ende der aktuellen KI-Antwort; ein weiterer Klick ist nicht nötig.","continuationMessage":"{gate} freigegeben. Weiter mit {step}.","nextRequested":"Die Fortsetzung wurde im Chat angefordert.","closeUnavailable":"Freigabe gespeichert und Fortsetzung angefordert. Diese Ansicht konnte nicht vollständig beendet werden; du kannst sie schließen.","nextUnavailable":"Die Fortsetzung konnte nicht bestätigt werden. Prüfe vor dem Weiterarbeiten den aktuellen Run im Chat.","chatApprovalHint":"Fragen und Änderungswünsche kannst du im Chat besprechen. Freigeben kannst du diese Fassung im Chat mit Approval: {gate}.","approveWithDeviations":"Mit Abweichungen freigeben","confirmedWithDeviations":"Mit Abweichungen freigegeben.","deviationAcceptanceIntro":"QA mit Abweichungen freigeben","openPreview":"Vorschau ansehen","previewTitle":"Illustrative Vorschau","previewUnavailable":"Vorschau nicht verfügbar. Diese Fassung erneut öffnen oder geprüften Standalone-Zugang anfordern.","previewChanged":"Die Prüfgrundlage hat sich geändert. Vor der Entscheidung eine neue Präsentation anfordern.","retryPreview":"Vorschau erneut öffnen","previewIllustrative":"Beispielaktionen geben kein PRD frei und versenden keine Nachrichten.","previewTask":"Prüfaufgabe","previewScenarios":"Szenarien","previewCriteria":"Zugehörige Kriterien","previewQuestions":"Offene Fragen","previewUnsupported":"Dieser Host konnte die isolierte Vorschau nicht anzeigen. Unterstützten Zugang zu derselben geprüften Version verwenden.","previewLoading":"Die isolierte Vorschau wird geöffnet…"},"mcpErrors":{"failure":"AGDF-Tool fehlgeschlagen:","effects":{"not_dispatched":"Dieser Versuch hat keine Operation gestartet.","owner_reported":"Das fachliche Ergebnis bleibt für Zustand und Wirkung maßgeblich.","unknown":"Die Wirkung ist unbestätigt; kein Rollback annehmen."},"actions":{"correct_input":"Die genannte Eingabe korrigieren und nur die zulässige Anfrage wiederholen.","confirm_target":"Bestätigte target_source und absolutes primary_target angeben; eine fehlende Zielentscheidung erfragen.","refresh_binding":"Aktuellen Stand lesen und Bindung oder Vorlage erneuern; nötige Freigabe neu einholen.","obtain_authority":"Erforderliche Berechtigung, Host-Fähigkeit oder bewusste menschliche Entscheidung einholen; nicht umgehen.","inspect_operation":"Zuerst operation-status mit der ursprünglichen UUID prüfen und den exakten Payload vor zulässiger Wiederaufnahme erhalten.","retry_after_prerequisite":"Die genannte Ressourcen- oder Ausführungsvoraussetzung abwarten; nur bei bekannter Wirkung zulässig wiederholen.","repair_runtime":"Den unterstützten Reparaturweg für eine versionsgleiche Runtime verwenden, danach vor Wiederholung erneut prüfen.","stop":"Stoppen und unterstützte Diagnosen prüfen. Keine Reparatur, kein Ziel und keine Ersatzoperation erfinden."},"causes":{"prepared_call_unknown":"Verweis nicht verfügbar, Ablauf unbelegt. Nichts ausgeführt. Originalanfrage und UUID prüfen/wiederaufnehmen; Ziel, Revision und Eingaben erhalten.","prepared_call_store_unavailable":"Privater Aufrufspeicher nicht verfügbar; nichts ausgeführt. Originalanfrage und UUID erhalten. Speicher reparieren oder Originalanfrage-Wiederaufnahme nutzen.","operation_source_invalid":"Referenzierten path, UTF-8-Inhalt und aktuellen digest prüfen. Quellreferenz erneut lesen; keinen Pfad oder Hash erfinden.","presentation_missing":"Aktuelle Bindung und Präsentation vorbereiten. Gebundene menschliche Antwort vor der Freigabe einholen; keine alte Präsentation einsetzen.","closeout_not_ready":"Aktuelles Gate und fehlende Voraussetzungen lesen. Erforderliche Nachweise und menschliche Entscheidungen vor dem Abschluss erfüllen; jetzt kein Abschluss.","control_layout_unsupported":"Altbestand erhalten. Frisches aktuelles Ziel oder unterstützten Run wählen. Keine Konvertierung oder Rücksetzung.","run_version_unsupported":"Altbestand erhalten. Frisches aktuelles Ziel oder unterstützten Run wählen. Keine Konvertierung oder Rücksetzung.","run_missing":"Quelle/Original-UUID prüfen. Frühere Wirkung unbestätigt. Daten erhalten; gelöschten Zustand nicht neu anlegen, nicht blind warten, Identität erhalten.","document_missing":"Quelle/Original-UUID prüfen. Frühere Wirkung unbestätigt. Daten erhalten; gelöschten Zustand nicht neu anlegen, nicht blind warten, Identität erhalten.","run_path_invalid":"Quelle/Original-UUID prüfen. Frühere Wirkung unbestätigt. Daten erhalten; gelöschten Zustand nicht neu anlegen, nicht blind warten, Identität erhalten."}},"doctorEmptyInventory":{"policyDescription":"Keine aktiven Runs. Status folgt allow_no_active_runs={policy}; null Befunde. Dies ist Lieferrichtlinie, kein Urteil über den Projektzustand."},"companion":{"title":"AGDF Companion","notices":{"waitingApproval":"Wartet auf Freigabe: {gate}","waitingDecision":"Wartet auf Entscheidung: {gate}","blocked":"Blockiert: {gate} – {decision}"},"decisions":{"revise":"Überarbeitung nötig","block":"blockiert","blocked":"blockiert","decline":"abgelehnt"},"origin":{"session":"In dieser Sitzung geändert","selected":"Von dir ausgewählt","named":"Im Chat genannt"},"fields":{"nextStep":"Nächster Schritt","objective":"Ziel","lastRead":"Stand {time}","openRuns":"{count} offene Runs","moreRuns":"+ {count} weitere","position":"{position} von {count} offenen Runs","events":"Ereignisse","material":"Material"},"actions":{"retry":"Neu lesen","stillOn":"Bewegung aus","stillOff":"Bewegung an","noticeOff":"Meldung aus","noticeOn":"Meldung an","soundOn":"Ton an","soundOff":"Ton aus","expand":"Mehr","collapse":"Weniger","previous":"Vorheriger Run","next":"Nächster Run","about":"About","closeAbout":"Schließen","backToChat":"Zurück zum Chat-Run"},"about":{"text":"Zeigt den Zustand deiner AGDF-Runs neben dem Chat. Nur lesend: Freigaben bleiben im Chat.","version":"AGDF-Plugin {version}"},"command":{"description":"AGDF Companion ein- oder ausschalten","enabled":"AGDF Companion eingeschaltet.","disabled":"AGDF Companion ausgeschaltet.","waiting":"AGDF Companion ist eingeschaltet und wartet auf Platz: {reason}"},"languageNames":{"en":"German","de":"Deutsch"},"states":{"laeuft":"läuft","baut":"baut","wartet":"wartet auf Freigabe","blockiert":"blockiert","fertig":"fertig","bereit":"bereit"},"statusStates":{"laeuft":"läuft","baut":"baut","wartet":"wartet","blockiert":"blockiert","fertig":"fertig","bereit":"bereit","unreadable":"nicht lesbar"},"reasons":{"turnActive":"Claude arbeitet gerade an diesem Turn","done":"Run abgeschlossen","blocked":"{gate}: {decision}","waitingApproval":"Freigabe ausstehend: {gate}","waitingDecision":"Entscheidung ausstehend: {gate}","working":"Als Nächstes: {gate}","building":"In Arbeit: {gate}","ended":"Run beendet","idle":"Kein Run angezeigt","unreadable":"Run nicht lesbar: {reason}"},"unreadable":{"missing":"Run-Datei fehlt oder ist nicht lesbar","too_large":"Run-Datei ist zu groß","run_version_unsupported":"Run in einem älteren Format erfasst","run_state_invalid":"Run-Zustand ungültig","control_layout_unsupported":"Aufbau des Kontrollordners nicht unterstützt","control_invalid":"Konfiguration des Kontrollordners ungültig","read_failed":"Kontrollordner konnte nicht gelesen werden","unavailable":"Run-Ansicht konnte nicht abgerufen werden","exit":"Run-Ansicht-Befehl endete mit einem Fehler","malformed":"Run-Ansicht lieferte ein unerwartetes Ergebnis","resource_denied":"Zugriff auf den Kontrollordner verweigert","source_changed":"Kontrollordner hat sich beim Lesen geändert","timeout":"Lesen des Kontrollordners dauerte zu lange","resource_limit":"Kontrollordner überschreitet eine Lesegrenze"},"messages":{"reading":"Run-Status wird gelesen …","noControl":"Kein AGDF-Kontrollordner in „{folder}“.","noControlHint":"Geprüfter Projektordner: {path}","noOpenRuns":"Keine offenen Runs in diesem Projekt.","noRunAssigned":"Kein Run zugeordnet","noRunAssignedHint":"In dieser Sitzung hat sich kein Run geändert. Wähle einen offenen Run, um ihn hier zu zeigen.","unreadable":"Run-Status nicht lesbar: {reason}","stale":"Lesen um {time} fehlgeschlagen; angezeigt wird der Stand von {readAt}.","unreadableRuns":"{count} Runs nicht lesbar: {reasons}","runViewUnavailable":"Run-Ansicht nicht verfügbar: {reason}","eventsUnavailable":"Ereignisse nicht verfügbar; der Run-Status wird weiter gelesen.","drift":"{document} wurde nach der Erfassung geändert (erfasst {recorded}, jetzt {current}). Aus der aktuellen Datei neu erfassen oder die Datei wiederherstellen."},"events":{"approval_requested":"Freigabe angefragt für {gate}","approval_recorded":"Freigabe erfasst für {gate}","write_rejected":"Aufruf abgelehnt ({reason})","effect_unknown":"Wirkung unbekannt – Vorgangsstatus prüfen","recovery_required":"Wiederherstellung nötig","run_completed":"Run abgeschlossen","material_staged":"Material übertragen ({gate})","document_recorded":"{gate} erfasst","drift":"{document} nach der Erfassung geändert","ofRun":"{text} · {run}"},"review":{"summary":"{slot}: {bytes} Bytes, {digest}","match":"passt zur Quelldatei","mismatch":"weicht von der Quelldatei ab","not_determinable":"Quelle nicht bestimmbar – bitte die Vorschau prüfen","unavailable":"Angaben nicht verfügbar","truncated":"Vorschau gekürzt"}}}}')};function Gw(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.next_operation;return t.available===!0&&t.status===`open`&&typeof t.revision_id==`string`&&/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(t.revision_id)&&(n?.actor===`agent`&&[`preparation`,`implementation`,`closeout`].includes(String(n.effect))||n?.actor===`human`&&n.effect===`decision`&&n.operation_key===`approval.record`)&&typeof n.type==`string`&&/^[a-z_]+$/.test(n.type)&&typeof n.operation_key==`string`&&/^[a-z_]+\.[a-z_]+$/.test(n.operation_key)&&typeof n.gate==`string`&&n.gate.length>0&&n.gate.length<128?t:null}function Kw({view:e,port:t,closeWarning:n=!1}){let r=e.labels,[i,a]=(0,J.useState)(`undecided`),[o,s]=(0,J.useState)(``),[c,l]=(0,J.useState)(null),[u,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(!1),[m,h]=(0,J.useState)(null),[g,_]=(0,J.useState)(``),v=(0,J.useRef)(!1),y=(0,J.useRef)(!0),b=(0,J.useRef)(null),ee=(0,J.useRef)(!1),te=(0,J.useRef)(null),ne=(0,J.useRef)(null),x=(0,J.useRef)(!1),[S,re]=(0,J.useState)(null),[C,w]=(0,J.useState)(!1),[ie,ae]=(0,J.useState)(!1),[oe,se]=(0,J.useState)(e.preview&&!t.preview?r.previewUnsupported:``),[ce,le]=(0,J.useState)(0),ue=(0,J.useRef)(null),T=(0,J.useRef)(null),de=(0,J.useRef)(null),fe=()=>y.current&&Date.now()<e.expires_at;(0,J.useEffect)(()=>{c===null?x.current&&(x.current=!1,te.current?.focus()):ne.current?.focus()},[c]),(0,J.useLayoutEffect)(()=>{if(S===null)return;de.current?.focus();let e=e=>{e.source===ue.current?.contentWindow&&e.data?.type===`agdf-preview-ready`&&(clearTimeout(t),ae(!0),se(``)),e.source===ue.current?.contentWindow&&e.data?.type===`agdf-preview-unavailable`&&(clearTimeout(t),ae(!1),se(r.previewUnsupported))};window.addEventListener(`message`,e);let t=setTimeout(()=>se(r.previewUnsupported),1e4);return()=>{window.removeEventListener(`message`,e),clearTimeout(t)}},[S,ce,r.previewUnsupported]),(0,J.useEffect)(()=>{if(y.current=!0,i===`saved`)return()=>{y.current=!1};let t=setTimeout(()=>{y.current&&(a(`expired`),s(r.expired))},Math.max(0,e.expires_at-Date.now()));return()=>{y.current=!1,clearTimeout(t)}},[e,r.expired,i]);let pe=(n,i)=>{if(!fe()){a(`expired`),s(r.expired);return}if(n.view_state===`closed`){a(`expired`),s(r.expired);return}if([`accepted`,`already_applied`].includes(String(n.outcome))&&Zm(n.receipt,e,i)){t.saved?.(),a(`saved`),h(Gw(n.current));let e=n.current;s(r.confirmed+(e?.available===!1?` `+r.unknownCurrent:``));return}if(n.outcome===`rejected`){t.pending?.(!1);let e=String(n.reason),i=[`stale_revision`,`decision_binding_changed`,`presentation_state_changed`,`decision_binding_invalid`,`presentation_version_decided`].includes(e),o=e===`session_expired`;a(o?`expired`:i?`stale`:`undecided`),s(o?r.expired:e===`presentation_version_decided`?r.alreadyDecided:i?r.sourceChanged:r.denied),b.current=null;return}a(`uncertain`),s(r.uncertain)},me=async e=>{if(!ee.current&&fe()){ee.current=!0,b.current=e,a(`pending`),s(r.pending),t.pending?.(!0);try{let n=await t.submit(e);y.current&&pe(n,e)}catch{y.current&&(a(`uncertain`),s(r.uncertain))}finally{ee.current=!1}}},he=()=>{let t=`approve`;!fe()||e.delivery_state&&e.delivery_state!==`ui_primary`||i!==`undecided`||C||oe||e.capability!==`available`||!e.enabled_actions.includes(t)||me({session_id:e.session_id,operation_id:crypto.randomUUID(),presentation_id:e.binding.presentation_id,expected_revision_id:e.binding.expected_revision_id,action:t})},ge=async()=>{let n=b.current;if(n&&fe()&&!ee.current&&!f){p(!0);try{let i=await t.inspect(n.operation_id);if(!y.current)return;if(!fe()){a(`expired`),s(r.expired);return}i.status===`recorded`&&Zm(i.receipt,e,n)?(t.saved?.(),a(`saved`),h(Gw(i.current)),s(r.confirmed)):s(r.uncertain)}catch{y.current&&s(r.uncertain)}finally{y.current&&p(!1)}}},_e=async()=>{if(!u&&e.resource_id){d(!0);try{let e=await t.document();if(!y.current)return;await t.expand(),y.current&&l(e)}catch{y.current&&s(r.docUnavailable)}finally{y.current&&d(!1)}}},ve=async()=>{if(!C&&e.preview&&t.preview&&fe()){w(!0),ae(!1);try{let e=await t.preview();y.current&&fe()&&(le(e=>e+1),re(e),t.expand().catch(()=>{}))}catch(e){if(y.current){let t=/changed|stale/.test(String(e));t&&a(`stale`),se(t?r.previewChanged:r.previewUnavailable)}}finally{y.current&&w(!1)}}},ye=e.capability===`available`&&e.enabled_actions.includes(`approve`),be=i!==`undecided`||C||!!oe,xe=Ww.locales[e.binding.presentation_language]?.gateTitles;(0,J.useEffect)(()=>{i===`saved`&&b.current&&m&&t.next&&!v.current&&fe()&&(v.current=!0,_(r.nextWaiting),t.next(m,b.current).then(()=>{y.current&&_(r.nextRequested)}).catch(()=>{y.current&&_(r.nextUnavailable)}))},[i,m,t,r.nextWaiting,r.nextRequested,r.nextUnavailable]);let Se=e.preview&&(0,$.jsxs)(`button`,{type:`button`,ref:T,disabled:!t.preview||C||i===`stale`||i===`expired`,onClick:()=>void ve(),children:[r.openPreview,` · `,e.preview.version]});return e.delivery_state===`retired`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`p`,{role:`status`,children:r.sourceChanged}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.sources}),(0,$.jsx)(`p`,{children:e.title}),(0,$.jsx)(`code`,{children:e.document_digest})]})]}):S===null?c===null?e.delivery_state===`preview`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`p`,{role:`status`,children:e.binding.presentation_language.startsWith(`de`)?`Vorschau · keine primäre Entscheidungsansicht. Die Auslieferung steht noch aus.`:`Preview · not a primary decision view. Delivery is pending.`}),(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.summary,links:{},onOpen:()=>{}})}),Se]}):e.delivery_state===`ui_primary`&&i===`saved`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`p`,{role:`status`,children:o||r.confirmed}),m&&(0,$.jsx)(`p`,{children:r.nextInformation.replace(`{step}`,xe?.[m.next_operation.gate]??m.next_operation.gate)}),g&&(0,$.jsx)(`p`,{role:`status`,children:g}),(0,$.jsx)(`button`,{type:`button`,ref:te,disabled:!e.resource_id||u,onClick:()=>void _e(),children:r.openDocument}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.sources}),(0,$.jsx)(`p`,{children:e.title}),(0,$.jsx)(`code`,{children:e.document_digest})]}),n&&(0,$.jsx)(`p`,{role:`status`,children:r.closeUnavailable})]}):e.delivery_state===`ui_primary`&&i!==`saved`?(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.summary,links:{},onOpen:()=>{}})}),!ye&&(0,$.jsx)(`p`,{role:`status`,children:r.notQualified}),(0,$.jsx)(`button`,{type:`button`,disabled:be||!ye,onClick:he,children:r.approve}),Se,(0,$.jsx)(`p`,{role:`status`,children:o||r.notSaved}),i===`uncertain`&&(0,$.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>void ge(),children:r.checkOperation})]}):(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,"aria-label":r.title,children:[(0,$.jsx)(`h1`,{children:e.decision_heading??r.title}),(0,$.jsx)(`p`,{children:e.title}),!ye&&(0,$.jsx)(`p`,{role:`status`,children:r.notQualified}),(0,$.jsx)(`article`,{className:`decision-summary document`,children:(0,$.jsx)(Uw,{content:e.decision_brief||e.summary,links:{},onOpen:()=>{}})}),e.comparison.state===`unavailable`?(0,$.jsx)(`p`,{children:r.comparisonUnavailable}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{children:r.machineComparison}),(0,$.jsx)(`p`,{children:e.comparison.unchanged?r.documentUnchanged:r.documentChanged})]}),i===`undecided`&&(0,$.jsx)(`p`,{children:e.approval_effect&&e.approval_effect_label?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`strong`,{children:[e.approval_effect_label,` `]}),e.approval_effect]}):r.consequence}),(0,$.jsx)(`p`,{children:r.sourceLanguage}),(0,$.jsx)(`button`,{type:`button`,ref:te,disabled:!e.resource_id||u,onClick:()=>void _e(),children:r.openDocument}),e.preview&&(0,$.jsxs)($.Fragment,{children:[Se,(0,$.jsxs)(`p`,{children:[(0,$.jsxs)(`strong`,{children:[r.previewTask,`: `]}),e.preview.task]}),(0,$.jsxs)(`p`,{children:[r.previewScenarios,`: `,e.preview.scenarios.join(` · `)]}),(0,$.jsxs)(`p`,{children:[r.previewCriteria,`: `,e.preview.criterion_ids.join(`, `)]}),!!e.preview.open_questions?.length&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`p`,{children:(0,$.jsxs)(`strong`,{children:[r.previewQuestions,`:`]})}),(0,$.jsx)(`ul`,{children:e.preview.open_questions.map((e,t)=>(0,$.jsx)(`li`,{children:e},t))})]}),oe&&(0,$.jsx)(`p`,{role:`status`,children:oe})]}),!e.resource_id&&(0,$.jsx)(`p`,{children:r.docUnavailable}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.sources}),e.decision_brief&&(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.summary,links:{},onOpen:()=>{}})}),(0,$.jsxs)(`dl`,{children:[(0,$.jsx)(`dt`,{children:r.run}),(0,$.jsx)(`dd`,{children:e.binding.run_id}),(0,$.jsx)(`dt`,{children:r.revision}),(0,$.jsx)(`dd`,{children:(0,$.jsx)(`code`,{children:e.binding.expected_revision_id})}),e.binding.material_sources.map(e=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{children:e.type}),(0,$.jsxs)(`dd`,{children:[(0,$.jsx)(`code`,{children:e.path}),(0,$.jsx)(`br`,{}),(0,$.jsx)(`code`,{children:e.digest})]})]},e.type))]}),e.comparison.state===`available`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`p`,{children:[r.revision,`: `,(0,$.jsx)(`code`,{children:e.comparison.previous_revision_id}),(0,$.jsx)(`br`,{}),(0,$.jsx)(`code`,{children:e.comparison.previous_digest})]}),(0,$.jsxs)(`details`,{children:[(0,$.jsx)(`summary`,{children:r.previousDocument}),(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:e.comparison.previous_text,links:{},onOpen:()=>{}})})]})]})]}),i===`undecided`&&(0,$.jsx)(`p`,{children:(ye?r.discussionHint:r.chatApprovalHint).replace(`{gate}`,e.binding.gate)}),ye&&i!==`saved`&&(0,$.jsx)(`div`,{className:`decision-actions`,children:(0,$.jsx)(`button`,{type:`button`,disabled:be,onClick:he,children:r.approve})}),i===`saved`&&m&&(0,$.jsx)(`p`,{children:r.nextInformation.replace(`{step}`,xe?.[m.next_operation.gate]??m.next_operation.gate)}),i===`saved`&&m&&!t.next&&(0,$.jsx)(`p`,{children:r.nextChat}),g&&(0,$.jsx)(`p`,{role:`status`,children:g}),n&&(0,$.jsx)(`p`,{role:`status`,children:r.closeUnavailable}),ye&&(0,$.jsx)(`p`,{children:r.permission}),(0,$.jsx)(`p`,{role:`status`,children:o||r.notSaved}),i===`uncertain`&&(0,$.jsxs)(`div`,{className:`decision-actions`,children:[(0,$.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>void ge(),children:r.checkOperation}),(0,$.jsx)(`button`,{type:`button`,disabled:f,onClick:()=>{b.current&&me(b.current)},children:r.retryOriginal})]})]}):(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:()=>{x.current=!0,l(null)},children:r.back}),(0,$.jsxs)(`h1`,{ref:ne,tabIndex:-1,children:[i===`saved`?e.binding.presentation_language.startsWith(`de`)?`Historische Fassung`:`Historical version`:r.documentTitle,` · `,e.gate_title??e.binding.gate]}),(0,$.jsx)(`p`,{children:e.title}),(0,$.jsx)(`article`,{className:`document`,children:(0,$.jsx)(Uw,{content:c,links:{},onOpen:()=>{}})})]}):(0,$.jsxs)(`section`,{className:`decision-card agdf-surface mcp-entry`,children:[(0,$.jsx)(`button`,{type:`button`,ref:de,onClick:()=>{re(null),setTimeout(()=>T.current?.focus(),0)},children:r.back}),(0,$.jsxs)(`h1`,{children:[r.previewTitle,` · `,e.preview?.version]}),(0,$.jsx)(`p`,{children:r.previewIllustrative}),!ie&&!oe&&(0,$.jsx)(`p`,{role:`status`,children:r.previewLoading}),oe&&(0,$.jsx)(`p`,{role:`status`,children:oe}),oe&&(0,$.jsx)(`button`,{type:`button`,onClick:()=>{re(null),ve()},children:r.retryPreview}),(0,$.jsx)(`iframe`,{ref:ue,title:r.previewTitle,sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,srcDoc:S,style:{width:`100%`,height:600,border:0}},ce)]})}function qw({bridge:e}){let[t,n]=(0,J.useState)(null),[r,i]=(0,J.useState)(!1),a=(0,J.useRef)(null),o=(0,J.useRef)(null),s=(0,J.useRef)(async()=>{}),[c,l]=(0,J.useState)(!1),u=(0,J.useRef)(null),d=(0,J.useRef)(new Set),f=(0,J.useRef)(new Set);(0,J.useEffect)(()=>{let t=!0,r=new Map,c=t=>{let n=r.get(t.session_id);if(n)return n;let i=e.operation({operation:`close`},void 0,t.read_session_id).then(e=>{let t=e;if((t.state!==`available`||t.data?.closed!==!0)&&t.reason!==`session_expired`)throw Error(`close_unconfirmed`)});return r.set(t.session_id,i),i};s.current=async n=>{if(t&&a.current===n){o.current=n,a.current=null,e.session=``;try{await c(n)}catch{t&&o.current===n&&l(!0)}}};let p,m=(r=!0)=>{if(p)return p;t=!1,u.current?.abort();let i=a.current??o.current;return a.current=null,e.session=``,r&&n(null),p=i?c(i):Promise.resolve(),p},h=()=>{m().catch(()=>{})};window.addEventListener(`pagehide`,h);let g=()=>{let t=e.app.getHostContext();t?.theme&&nm(t.theme),t?.styles?.variables&&rm(t.styles.variables)};return e.app.ontoolresult=r=>{if(!t)return;let i=Xm(r),s=a.current??o.current;if(!(!i||s&&i.target.target_id!==s.target.target_id)){if(s&&s.owner_epoch===i.owner_epoch&&i.generation<=s.generation){i.session_id!==s.session_id&&c(i).catch(()=>{});return}s&&(u.current?.abort(),c(s).catch(()=>{})),o.current=null,l(!1),d.current.clear(),f.current.clear(),a.current=i,e.session=i.read_session_id,n(i),g(),document.documentElement.lang=i.binding.presentation_language}},e.app.onhostcontextchanged=g,e.app.onteardown=async()=>(await m(),{}),e.app.connect(void 0,{timeout:1e4}).then(()=>{t&&(i(!0),g())}).catch(()=>{}),()=>{window.removeEventListener(`pagehide`,h),m(!1).catch(()=>{})}},[e]),(0,J.useEffect)(()=>{if(!t?.delivery_state||t.delivery_state===`retired`||!r)return;let i=!0,s=!1,c=!1,l=!1,u=()=>{i&&o.current?.session_id!==t.session_id&&(i=!1,n(e=>{if(e?.session_id!==t.session_id)return e;let n={...e,delivery_state:`retired`,enabled_actions:[]};return a.current=null,n}),e.operation({operation:`close`},void 0,t.read_session_id).catch(()=>{}))},p=()=>{document.visibilityState!==`visible`&&u()},m=async()=>{if(!(!i||s||!l||d.current.has(t.session_id)||f.current.has(t.session_id)||document.visibilityState!==`visible`)){s=!0;try{let r=new TextEncoder().encode(t.summary),o=`sha256:`+[...new Uint8Array(await crypto.subtle.digest(`SHA-256`,r))].map(e=>e.toString(16).padStart(2,`0`)).join(``);if(o!==t.document_digest){u();return}t.surface_id&&t.delivery_state===`preview`&&!c&&(c=!0,await e.operation({operation:`decision_display`,owner_epoch:t.owner_epoch,nonce:t.display_nonce,surface_id:t.surface_id,document_digest:o,visible:!0},void 0,t.read_session_id));let s=await e.operation({operation:`decision_state`},void 0,t.read_session_id);if(!i||d.current.has(t.session_id)||f.current.has(t.session_id))return;if(s.state!==`available`||s.data?.document_digest!==o){u();return}s.data.delivery_state===`ui_primary`&&n(e=>{if(e?.session_id!==t.session_id||e.delivery_state===`ui_primary`)return e;let n={...e,delivery_state:`ui_primary`,enabled_actions:s.data.enabled_actions??[]};return a.current=n,n})}catch{!d.current.has(t.session_id)&&!f.current.has(t.session_id)&&u()}finally{s=!1}}},h=document.querySelector(`article.document`),g=typeof IntersectionObserver>`u`||!h?null:new IntersectionObserver(e=>{let n=e.find(e=>e.target===h);n&&i&&(l=n.isIntersecting&&n.intersectionRatio>0,!l&&(c||t.delivery_state===`ui_primary`)&&!d.current.has(t.session_id)&&!f.current.has(t.session_id)?u():l&&m())});h&&g?.observe(h);let _=requestAnimationFrame(()=>{m()}),v=setInterval(()=>{m()},1e3);return document.addEventListener(`visibilitychange`,p),()=>{i=!1,g?.disconnect(),cancelAnimationFrame(_),clearInterval(v),document.removeEventListener(`visibilitychange`,p)}},[e,r,t?.session_id,t?.delivery_state]);let p=(0,J.useMemo)(()=>{if(!t)return null;let n=async(n,r)=>{if(a.current!==t||!e.app.getHostCapabilities()?.serverTools)throw Error(`session_invalid`);let i=await e.request(()=>e.app.callServerTool({name:n,arguments:r},{timeout:1e4}));if(a.current!==t)throw Error(`session_invalid`);if(!i.structuredContent)throw Error(`result_unconfirmed`);if(i.isError){let e=i.structuredContent,a=e.binding;if(n!==`agdf_decision_action`||e.schema_version!==`1`||e.authorizes!==!1||![`rejected`,`effect_unknown`,`recovery_required`].includes(String(e.outcome))||![`stale_revision`,`session_expired`,`permission_denied`,`resource_denied`,`host_ui_unsupported`,`app_only_mediation_not_qualified`,`decision_binding_changed`,`decision_binding_invalid`,`presentation_state_changed`,`presentation_version_decided`,`decision_pending`,`decision_result_unknown`,`effect_unknown`,`recovery_required`,`dispatch_timeout`,`dispatch_cancelled`,`generation_connection_lost`,`generation_response_unknown`].includes(String(e.reason))||e.operation_id!==void 0&&e.operation_id!==r.operation_id||a&&(a.target_id!==t.target.target_id||a.run_id!==t.binding.run_id||a.expected_revision_id!==t.binding.expected_revision_id))throw Error(`result_unconfirmed`)}return i.structuredContent};return{saved:()=>{a.current===t&&d.current.add(t.session_id)},pending:e=>{a.current===t&&(e?f.current.add(t.session_id):f.current.delete(t.session_id))},submit:e=>n(`agdf_decision_action`,{...e}),preview:async()=>{if(!t.preview)throw Error(`preview_unavailable`);if(o.current===t){let n,r=``,i=0,a=new Set;do{let s=await e.request(()=>e.app.callServerTool({name:`agdf_inspect`,arguments:{operation:`presentation-preview`,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,primary_target:t.target.display_path,target_source:`explicit_target`,target_id:t.target.target_id,run_id:t.binding.run_id,gate:t.binding.gate,expected_revision_id:t.binding.expected_revision_id,presentation_id:t.binding.presentation_id,...n?{cursor:n}:{}}},{timeout:1e4})),c=s.structuredContent?.report;if(o.current!==t||s.isError||c?.available!==!0||c.target_id!==t.target.target_id||c.run_id!==t.binding.run_id||c.gate!==t.binding.gate||c.revision_id!==t.binding.expected_revision_id||c.presentation_id!==t.binding.presentation_id||c.content_digest!==t.preview.content_digest||c.format!==`isolated_html`||c.byte_start!==i||typeof c.content!=`string`||(r+=c.content,i+=new TextEncoder().encode(c.content).length,i>2097152||c.byte_end!==i))throw Error(`preview_unavailable`);if(c.complete===!0&&c.next_cursor===null&&c.total_bytes===i)return r;if(typeof c.next_cursor!=`string`||a.has(c.next_cursor)||a.size>=64)throw Error(`preview_unavailable`);n=c.next_cursor,a.add(n)}while(n);throw Error(`preview_unavailable`)}if(a.current!==t)throw Error(`session_invalid`);let n=await e.operation({operation:`preview`,snapshot_id:t.snapshot_id,run_id:t.binding.run_id,resource_id:t.preview.resource_id},void 0,t.read_session_id),r=n.data?.preview;if(a.current!==t||n.state!==`available`||typeof r?.content!=`string`||r.content_digest!==t.preview.content_digest||r.version!==t.preview.version||new TextEncoder().encode(r.content).length>2097152)throw Error(n.reason??`preview_unavailable`);return r.content},document:async()=>{if(o.current===t){let n,r=``,i=new Set;do{let a=await e.request(()=>e.app.callServerTool({name:`agdf_inspect`,arguments:{operation:`presentation-document`,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,primary_target:t.target.display_path,target_source:`explicit_target`,target_id:t.target.target_id,run_id:t.binding.run_id,gate:t.binding.gate,expected_revision_id:t.binding.expected_revision_id,presentation_id:t.binding.presentation_id,...n?{cursor:n}:{}}},{timeout:1e4})),s=a.structuredContent?.report;if(o.current!==t||a.isError||!s?.available||s.target_id!==t.target.target_id||s.run_id!==t.binding.run_id||s.gate!==t.binding.gate||s.revision_id!==t.binding.expected_revision_id||s.presentation_id!==t.binding.presentation_id||s.content_digest!==t.document_digest||typeof s.content!=`string`)throw Error(`presented_document_unavailable`);if(r+=s.content,r.length>4194304)throw Error(`resource_limit`);if(s.complete===!0&&s.next_cursor===null)break;if(typeof s.next_cursor!=`string`||!s.next_cursor||i.has(s.next_cursor)||i.size>=128)throw Error(`presented_document_unavailable`);n=s.next_cursor,i.add(n)}while(n);return r}if(a.current!==t)throw Error(`session_invalid`);let n=await e.operation({operation:`document`,snapshot_id:t.snapshot_id,run_id:t.binding.run_id,resource_id:t.resource_id},void 0,t.read_session_id),r=n.data?.document;if(a.current!==t||n.state!==`available`||typeof r?.content!=`string`||`sha256:`+r.content_digest!==t.document_digest)throw Error(`presented_document_unavailable`);return r.content},inspect:async e=>{let r=await n(`agdf_inspect`,{operation:`operation-status`,module:e,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,target_source:`explicit_target`,primary_target:t.target.display_path,run_id:t.binding.run_id,expected_revision_id:t.binding.expected_revision_id});if(r.outcome!==`inspect_result`||typeof r.report!=`object`||!r.report)throw Error(`result_unconfirmed`);return r.report},expand:async()=>{let t=e.app.getHostContext()?.availableDisplayModes??[],n=t.includes(`fullscreen`)?`fullscreen`:t.includes(`pip`)?`pip`:null;if(!n||(await e.request(()=>e.app.requestDisplayMode({mode:n},{timeout:1e4}))).mode!==n)throw Error(`display_mode_unavailable`)},...e.app.getHostCapabilities()?.message?.text&&e.app.getHostCapabilities()?.updateModelContext?{next:async(r,i)=>{let o=await n(`agdf_inspect`,{operation:`operation-contract`,module:`agdf_record/step.record`,presentation_language:t.binding.presentation_language,working_directory:t.target.display_path,target_source:`explicit_target`,primary_target:t.target.display_path,run_id:t.binding.run_id,expected_revision_id:r.revision_id}),c=o.report,l=o.outcome===`inspect_result`&&c?.binding?.target_id===t.target.target_id&&c.binding.run_id===t.binding.run_id&&c.binding.expected_revision_id===r.revision_id,d=Gw({...c?.current,available:l,revision_id:r.revision_id});if(!d||[`type`,`operation_key`,`actor`,`effect`,`gate`].some(e=>d.next_operation[e]!==r.next_operation[e])||a.current!==t)throw Error(`continuation_stale`);if(t.expires_at-Date.now()<=0)throw Error(`session_invalid`);let f=new AbortController;u.current=f;try{if(await e.request(()=>e.app.updateModelContext({structuredContent:{agdf_continuation:{schema_version:`1`,authorizes:!1,target:{...t.target},run_id:t.binding.run_id,expected_revision_id:r.revision_id,approved_decision:{operation_id:i.operation_id,gate:t.binding.gate,presentation_id:t.binding.presentation_id,previous_revision_id:t.binding.expected_revision_id,material_version:t.binding.material_version},next_operation:d.next_operation,instruction:`Verify the original receipt and fresh Core state. Redispatch gate-check for this exact target and Run, follow only already permitted work, and present the next human gate or blocker. This context grants no approval; never execute a human next_operation automatically.`}}},{timeout:1e4,signal:f.signal})),a.current!==t||Date.now()>=t.expires_at)throw Error(`continuation_unavailable`);let n=Ww.locales[t.binding.presentation_language]?.gateTitles,o=t.labels.continuationMessage.replace(`{gate}`,n?.[t.binding.gate]??t.binding.gate).replace(`{step}`,n?.[d.next_operation.gate]??d.next_operation.gate);if((await e.app.sendMessage({role:`user`,content:[{type:`text`,text:o}]},{timeout:Math.max(1,t.expires_at-Date.now()),signal:f.signal})).isError)throw Error(`continuation_unavailable`);await s.current(t)}finally{u.current===f&&(u.current=null)}}}:{}}},[e,t]),m=(0,J.useMemo)(()=>t&&!e.app.getHostCapabilities()?.serverTools?{...t,capability:`not_qualified`,enabled_actions:[]}:t,[t,r,e]);return r&&m&&p?(0,$.jsx)(Kw,{view:m,port:p,closeWarning:c},m.session_id):(0,$.jsxs)(`section`,{className:`decision-card`,children:[(0,$.jsx)(`h1`,{children:`AGDF`}),(0,$.jsx)(`p`,{role:`status`,children:t?.labels.connecting??`AGDF · …`})]})}(0,_.createRoot)(document.getElementById(`root`)).render((0,$.jsx)(qw,{bridge:new Hm(`AGDF Gate Decision`)}));</script>
106
106
  <style>*{box-sizing:border-box}body{margin:0}.shell,.mcp-entry,.browser-card-layout{font-family:var(--agdf-font-sans);font-synthesis:none;font-size:var(--agdf-text-base);line-height:var(--agdf-leading-normal);font-feature-settings:"cv02", "cv03", "cv04", "cv11";-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55}h1,h2,h3,button,summary,input,select,textarea{scroll-margin-block-start:calc(var(--cockpit-header-height,96px) + var(--agdf-space-3))}h1,h2,h3{font-weight:var(--agdf-weight-bold)}h1{font-size:var(--agdf-text-3xl);line-height:var(--agdf-text-leading-3xl);letter-spacing:var(--agdf-tracking-tight);margin:var(--agdf-space-2) 0}h2{font-size:var(--agdf-text-xl);line-height:var(--agdf-text-leading-xl);letter-spacing:var(--agdf-tracking-tight);margin:0 0 var(--agdf-space-4)}h3{font-size:var(--agdf-text-base);line-height:var(--agdf-text-leading-base);margin:var(--agdf-space-6) 0 var(--agdf-space-2)}p{line-height:var(--agdf-leading-relaxed)}code,pre{font-family:var(--agdf-font-mono);font-size:var(--agdf-text-xs);overflow-wrap:anywhere}small{font-size:var(--agdf-text-xs);line-height:var(--agdf-leading-relaxed);display:block}.shell{min-height:100vh;display:flex}.rail{width:235px;padding:var(--agdf-space-8) var(--agdf-space-5);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:var(--agdf-space-3);font-weight:var(--agdf-weight-bold);font-size:var(--agdf-text-xl);display:flex}.brand small{font-size:var(--agdf-text-xs);font-weight:var(--agdf-weight-normal)}.brand-mark{object-fit:contain;width:36px;height:36px}.rail-label{font-size:var(--agdf-text-xs);text-transform:uppercase;letter-spacing:var(--agdf-tracking-eyebrow);margin:var(--agdf-space-12) var(--agdf-space-2) var(--agdf-space-3)}.nav-item{gap:var(--agdf-space-3);text-align:left;font-size:var(--agdf-text-sm);border:0;display:flex}.rail-footer{padding:var(--agdf-space-5) var(--agdf-space-2) 0;font-size:var(--agdf-text-sm);margin-top:auto}.rail-footer small{margin-top:var(--agdf-space-2)}.live-dot{border-radius:var(--agdf-radius-full);background:var(--agdf-color-agdf-400);width:7px;height:7px;margin-right:var(--agdf-space-2);display:inline-block}.workspace{width:calc(100% - 235px);min-width:0;margin-left:235px;container-type:inline-size}main{max-width:1450px;padding:var(--agdf-space-8) var(--agdf-space-10);margin:auto}.read-only{padding:var(--agdf-space-1) var(--agdf-space-3);font-size:var(--agdf-text-xs);font-weight:var(--agdf-weight-semibold)}.page-title{justify-content:space-between;gap:var(--agdf-space-5);margin-bottom:var(--agdf-space-6);align-items:center;display:flex}.page-title>div:first-child{min-width:0}.page-title h1{overflow-wrap:anywhere}.page-title h1:focus-visible{text-decoration:underline;-webkit-text-decoration-color:var(--agdf-focus-color);text-decoration-color:var(--agdf-focus-color);text-decoration-thickness:var(--agdf-focus-width);text-underline-offset:var(--agdf-focus-offset);outline:none}.page-title p{font-size:var(--agdf-text-sm);margin:0}.eyebrow{font-family:var(--agdf-font-mono);font-size:var(--agdf-text-xs);font-weight:var(--agdf-weight-bold);letter-spacing:var(--agdf-tracking-eyebrow);text-transform:uppercase}.actions{gap:var(--agdf-space-2);font-size:var(--agdf-text-sm);display:flex}.provenance{gap:var(--agdf-space-5);padding:var(--agdf-space-1) 0 var(--agdf-space-5);margin-bottom:var(--agdf-space-6);border-bottom:1px solid;grid-template-columns:2fr 1fr 1.3fr;display:grid}.provenance span{font-size:var(--agdf-text-xs);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--agdf-space-2);display:block}.provenance time,.provenance code{font-size:var(--agdf-text-xs)}.provenance code{display:block}.metrics{gap:var(--agdf-space-4);margin:var(--agdf-space-6) 0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metrics div{padding:var(--agdf-space-5);border:1px solid;min-width:0}.metrics strong{font-family:var(--agdf-font-mono);font-size:var(--agdf-text-2xl);font-weight:var(--agdf-weight-bold);margin-bottom:var(--agdf-space-2);display:block}.metrics span{font-size:var(--agdf-text-xs)}.panel{padding:var(--agdf-space-6);margin:var(--agdf-space-5) 0;border:1px solid;min-width:0}.section-toolbar{justify-content:space-between;align-items:center;gap:var(--agdf-space-5);margin-bottom:var(--agdf-space-5);display:flex}.section-toolbar h2{margin:var(--agdf-space-2) 0}.search{font-size:var(--agdf-text-sm);font-weight:var(--agdf-weight-medium)}.search input{padding:var(--agdf-space-2) var(--agdf-space-3);margin-top:var(--agdf-space-2);border-radius:var(--agdf-radius-lg);width:235px;font-size:var(--agdf-text-sm);border:1px solid;display:block}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:var(--agdf-text-sm);line-height:var(--agdf-leading-normal)}th{padding:var(--agdf-space-3) var(--agdf-space-2);text-align:left;font-size:var(--agdf-text-xs);font-weight:var(--agdf-weight-semibold);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid}td{padding:var(--agdf-space-5) var(--agdf-space-2);vertical-align:top;border-bottom:1px solid}.run-link{font-size:var(--agdf-text-base);line-height:var(--agdf-leading-snug);text-align:left;font-weight:var(--agdf-weight-semibold);overflow-wrap:anywhere;background:0 0;border:0;padding:0}.run-link:hover{background:0 0;text-decoration:underline}td small{max-width:550px;margin-top:var(--agdf-space-1)}.badge{padding:var(--agdf-space-1) var(--agdf-space-2);font-size:var(--agdf-text-xs);white-space:nowrap;display:inline-block}.status{font-size:var(--agdf-text-sm)}.notice{padding:var(--agdf-space-4);margin:var(--agdf-space-4) 0;font-size:var(--agdf-text-sm);border:1px solid}.notice p{margin:var(--agdf-space-2) 0 0}.notice strong{font-size:inherit}.stale-label{font-size:var(--agdf-text-sm);padding-left:var(--agdf-space-3);border-left:3px solid}.previous-content{opacity:.55;pointer-events:none}.reading-feedback,.retry{font-size:var(--agdf-text-sm)}.context-line{gap:var(--agdf-space-4);font-size:var(--agdf-text-sm);flex-wrap:wrap;align-items:center;display:flex}.objective{font-size:var(--agdf-text-base);white-space:pre-wrap;max-width:78ch}.work-step{padding:var(--agdf-space-6);overflow-wrap:anywhere;min-width:0;container-type:inline-size}.work-step--compact{padding:var(--agdf-space-4)}.work-step-heading{gap:var(--agdf-space-1);display:grid}.work-step-eyebrow{font-size:var(--agdf-text-xs);line-height:var(--agdf-text-leading-xs);color:var(--cockpit-muted)}.work-step h2{font-size:var(--agdf-text-xl);margin:0}.work-step-saved{margin:var(--agdf-space-2) 0 var(--agdf-space-4);color:var(--cockpit-muted);font-size:var(--agdf-text-sm)}.work-step-prerequisites{margin-bottom:var(--agdf-space-4)}.work-step-prerequisites[data-assessment=blocked] h3{color:var(--cockpit-risk)}.work-step-prerequisites[data-assessment=open] h3{color:var(--cockpit-accent)}.work-step-primary{margin-top:var(--agdf-space-3);min-height:44px;font-size:var(--agdf-text-sm);line-height:var(--agdf-text-leading-sm)}.work-step .compact-actions{margin-top:var(--agdf-space-2)}.work-step-facts{gap:var(--agdf-space-1);display:grid}.work-step-facts dt{color:var(--cockpit-muted)}.work-step-facts dd{margin:0 0 var(--agdf-space-3)}.work-step-original summary{font-size:var(--agdf-text-xs);color:var(--cockpit-muted);font-weight:var(--agdf-weight-normal)}.work-step-status{gap:var(--agdf-space-3);margin-top:var(--agdf-space-2);font-size:var(--agdf-text-xs);color:var(--cockpit-muted);flex-wrap:wrap;display:flex}.work-step-action{margin:var(--agdf-space-2) 0 var(--agdf-space-4);max-width:78ch;font-size:var(--agdf-text-sm);line-height:var(--agdf-text-leading-sm)}.work-step-support{border-top:1px solid var(--cockpit-line);padding-top:var(--agdf-space-2);grid-template-columns:minmax(0,1fr);display:grid}.work-step-support>details{padding-block:var(--agdf-space-1)}.work-step-prerequisites,.work-step-proof{min-width:0}.work-step h3{font-size:var(--agdf-text-sm);line-height:var(--agdf-text-leading-sm);margin:0}.work-step-prerequisites>p{margin:var(--agdf-space-2) 0}.work-step-beginning{gap:var(--agdf-space-1);font-size:var(--agdf-text-sm);display:grid}.work-step-beginning strong{font-weight:var(--agdf-weight-semibold)}.work-step-beginning span{font-size:var(--agdf-text-xs);line-height:var(--agdf-text-leading-xs);color:var(--cockpit-muted)}.work-step-blocked{color:var(--cockpit-risk);font-size:var(--agdf-text-sm)}.work-step-approvals>summary{font-size:var(--agdf-text-sm);font-weight:var(--agdf-weight-semibold)}.work-step-evidence{border-bottom:0}.work-step-evidence summary{font-size:var(--agdf-text-sm);font-weight:var(--agdf-weight-semibold)}.work-step-empty{font-size:var(--agdf-text-sm);color:var(--cockpit-muted);margin:var(--agdf-space-2) 0}.run-goal{margin-top:var(--agdf-space-3)}.workspace--summary .page-title{margin-bottom:var(--agdf-space-3)}.workspace--summary .data-observation{font-size:var(--agdf-text-xs);margin-bottom:var(--agdf-space-3)}.work-step ul{padding-left:var(--agdf-space-5);margin:var(--agdf-space-3) 0}.work-step li+li{margin-top:var(--agdf-space-4)}.work-step li p{margin:var(--agdf-space-2) 0;font-size:var(--agdf-text-sm)}.work-step-label{font-weight:var(--agdf-weight-medium)}.work-step-sources{flex-direction:column;align-items:flex-start;display:flex}.work-step-sources button+button{font-size:var(--agdf-text-xs);font-weight:var(--agdf-weight-normal)}.work-step .text-link,.work-step summary,.row-evidence{text-align:left;min-height:44px}.work-step summary{padding-block:var(--agdf-space-2)}.work-step pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--agdf-text-xs)}.run-documents{margin-top:var(--agdf-space-4)}.run-documents h3{margin-bottom:var(--agdf-space-3)}.run-documents-columns{display:none}.work-step ul.run-documents-list{margin:0;padding:0;list-style:none}.work-step .run-document-row{gap:var(--agdf-space-2);padding-block:var(--agdf-space-3);border-bottom:1px solid var(--cockpit-line);grid-template-columns:minmax(0,1fr);margin:0;display:grid}.run-document-name,.run-document-action{overflow-wrap:anywhere;min-width:0}.run-document-name>strong,.run-document-state,.run-document-reference{display:block}.run-document-state,.run-document-reference{font-size:var(--agdf-text-sm);color:var(--cockpit-muted)}.run-document-state{margin-top:var(--agdf-space-1)}.run-document-state[data-document-state=approved],.run-document-state[data-document-state=draft_checked]{color:var(--agdf-link-color)}.run-document-action .text-link{white-space:normal;overflow-wrap:anywhere;max-width:100%;min-height:44px}.document-state-context{margin-block:var(--agdf-space-3)}@container (width>=600px){.run-documents-columns,.work-step .run-document-row{column-gap:var(--agdf-space-4);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;display:grid}.run-documents-columns{font-size:var(--agdf-text-sm);font-weight:var(--agdf-weight-semibold);padding-block:var(--agdf-space-2);border-bottom:1px solid var(--cockpit-line)}}.row-step{margin:var(--agdf-space-2) 0;font-size:var(--agdf-text-sm);display:block}.detail-columns{gap:var(--agdf-space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.status-fields{gap:var(--agdf-space-3);font-size:var(--agdf-text-sm);line-height:var(--agdf-leading-relaxed);grid-template-columns:140px minmax(0,1fr);display:grid}.status-fields dt,.status-fields dd{overflow-wrap:anywhere;min-width:0}.status-fields dd{margin:0}.source-text{font-size:var(--agdf-text-sm);white-space:pre-wrap}.muted{font-size:var(--agdf-text-sm)}.approval-list{padding:0;list-style:none}.approval-list li{padding:var(--agdf-space-3) 0;font-size:var(--agdf-text-sm);border-bottom:1px solid;grid-template-columns:50px minmax(0,1fr);display:grid}.approval-list small{overflow-wrap:anywhere;margin-top:var(--agdf-space-2);grid-column:1/-1}.resources{gap:var(--agdf-space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.resources button{text-align:left;min-width:0;padding:var(--agdf-space-4) var(--agdf-space-10) var(--agdf-space-4) var(--agdf-space-4);position:relative}.resources strong{font-size:var(--agdf-text-sm);font-weight:var(--agdf-weight-semibold)}.resources small{overflow-wrap:anywhere;font-weight:var(--agdf-weight-normal)}.resources button>span[aria-hidden]{right:var(--agdf-space-4);top:var(--agdf-space-4);position:absolute}.resources button>span:not([aria-hidden]){font-size:var(--agdf-text-sm);line-height:var(--agdf-text-leading-sm);font-weight:var(--agdf-weight-normal);margin:var(--agdf-space-2) 0;display:block}details{padding:var(--agdf-space-3) 0;font-size:var(--agdf-text-sm);border-bottom:1px solid}summary{cursor:pointer;overflow-wrap:anywhere}.document-meta{align-items:center;gap:var(--agdf-space-3);font-size:var(--agdf-text-sm);margin-top:var(--agdf-space-6);flex-wrap:wrap;display:flex}.document-meta code{overflow-wrap:anywhere}.document{padding:var(--agdf-space-8);margin-top:var(--agdf-space-5);line-height:var(--agdf-leading-loose);font-size:var(--agdf-text-base);overflow-wrap:anywhere;border:1px solid}.document>:first-child{margin-top:0}.document h1{font-size:var(--agdf-text-2xl);line-height:var(--agdf-text-leading-2xl)}.document h2{font-size:var(--agdf-text-xl);margin-top:var(--agdf-space-8)}.document h3{font-size:var(--agdf-text-lg);line-height:var(--agdf-text-leading-lg)}.document p,.document li,.document blockquote{max-width:78ch;line-height:inherit}.document table{margin:var(--agdf-space-5) 0;display:block;overflow:auto}.document pre,.panel pre{white-space:pre-wrap;padding:var(--agdf-space-4);font-size:var(--agdf-text-xs);overflow:auto}.document code{padding:2px var(--agdf-space-1);border-radius:var(--agdf-radius-lg)}.text-link{font-family:inherit;font-size:inherit;line-height:inherit;background:0 0;border:0;padding:0}.text-link:hover{background:0 0}.document blockquote{padding-left:var(--agdf-space-5);border-left:3px solid}footer{padding:var(--agdf-space-6) 0 var(--agdf-space-2);font-size:var(--agdf-text-xs)}.backlog-switch{gap:var(--agdf-space-3);margin:0 0 var(--agdf-space-5);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.backlog-switch button{min-width:0;min-height:88px;padding:var(--agdf-space-4);text-align:left;align-items:flex-start;gap:var(--agdf-space-1);border:1px solid var(--cockpit-line);background:var(--cockpit-bg);color:var(--cockpit-muted);flex-direction:column;display:flex}.backlog-switch button[aria-pressed=true]{color:var(--cockpit-accent);background:var(--cockpit-accent-bg);border-color:var(--cockpit-accent);box-shadow:inset 0 -3px 0 var(--cockpit-accent)}.backlog-switch button:hover{border-color:var(--cockpit-accent);color:var(--cockpit-accent)}.backlog-area-label{font-size:var(--agdf-text-sm)}.backlog-switch strong{font-family:var(--agdf-font-mono);font-size:var(--agdf-text-xl);overflow-wrap:anywhere}.backlog-switch small{font-weight:var(--agdf-weight-normal);color:var(--cockpit-risk)}.backlog-search{margin-bottom:var(--agdf-space-5);display:block}.backlog-search input{width:100%}.backlog-tools{gap:var(--agdf-space-3);min-width:0;display:grid}.backlog-tools .backlog-switch,.backlog-tools .backlog-search{margin-bottom:0}.backlog-tools .backlog-switch button{align-items:center;gap:var(--agdf-space-2);min-height:44px;padding:var(--agdf-space-3);flex-flow:wrap}.workspace--overview{flex-direction:column;height:100dvh;display:flex}.workspace--overview>.cockpit-brand-header{flex-shrink:0}.workspace--overview>main{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow-y:auto}.workspace--overview>main>:not(.reading-results){flex-shrink:0}.workspace--overview .page-title{margin-bottom:var(--agdf-space-4)}.workspace--overview .reading-results{flex:1;min-height:min-content;display:flex}.workspace--overview .backlog-overview{min-width:0;min-height:min-content;margin-block:var(--agdf-space-3);flex:1;grid-template-rows:auto minmax(120px,1fr);display:grid}.backlog-controls{min-width:0}.backlog-title-announcement{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.backlog-heading h2,.backlog-heading p{margin-block:var(--agdf-space-2)}#backlog-list{contain:size;overscroll-behavior-y:contain;scrollbar-gutter:stable;min-height:0;overflow-y:auto}#backlog-list :is(h2,h3,button,summary,input){scroll-margin-block-start:var(--agdf-space-2)}@container (width>=720px){.backlog-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}}.backlog-notice>summary{color:var(--cockpit-risk);min-height:44px;font-weight:var(--agdf-weight-semibold);align-content:center;display:list-item}.backlog-notice>summary span{font-weight:var(--agdf-weight-normal)}.backlog-notice{padding-block:var(--agdf-space-2)}.undertaking-list{min-width:0;margin:0;padding:0;list-style:none}.undertaking-list>li{padding:var(--agdf-space-5) 0;border-top:1px solid var(--cockpit-line);overflow-wrap:anywhere}.undertaking-list h3{margin:0 0 var(--agdf-space-2)}.undertaking-list .run-link{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;min-height:44px}.undertaking-list .row-step,.row-phase,.row-limitation,.work-summary{overflow-wrap:anywhere;white-space:pre-wrap;display:block}.undertaking-list .row-source{border-bottom:0;padding-bottom:0}.undertaking-list summary{min-height:44px;padding-block:var(--agdf-space-2)}.undertaking-list dl{margin:var(--agdf-space-2) 0}.undertaking-list dt{color:var(--cockpit-muted);font-size:var(--agdf-text-xs)}.undertaking-list dd{margin:0 0 var(--agdf-space-3)}@container (width>=1000px){.backlog-overview .undertaking-list{column-gap:var(--agdf-space-8);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}}@container (width<=420px){.backlog-switch{gap:var(--agdf-space-2)}.backlog-switch button{padding:var(--agdf-space-3) var(--agdf-space-2)}.backlog-switch strong{font-size:var(--agdf-text-sm)}}.run-objective{margin:var(--agdf-space-2) 0;font-size:var(--agdf-text-sm);line-height:var(--agdf-leading-relaxed);white-space:pre-line;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.run-identity{margin-top:var(--agdf-space-2)}.attention-list{padding-left:var(--agdf-space-5);line-height:var(--agdf-leading-relaxed);margin:0}.attention-list li+li{margin-top:var(--agdf-space-2)}.row-source{margin-top:var(--agdf-space-3);font-size:var(--agdf-text-xs);border:0;padding:0}.control-details{margin:var(--agdf-space-5) 0}.control-details>summary{font-weight:var(--agdf-weight-semibold)}.control-details .detail-columns{margin-top:var(--agdf-space-4)}.undertaking-summary h3{margin-top:var(--agdf-space-5)}.document-context{margin-bottom:var(--agdf-space-5)}.document-context h2{margin-bottom:var(--agdf-space-2)}.document-summary p{margin-block:var(--agdf-space-2);max-width:78ch}.document-summary-origin,.document-status-note{font-size:var(--agdf-text-xs);line-height:var(--agdf-leading-relaxed);max-width:90ch}.document-control{gap:var(--agdf-space-3);margin-block:var(--agdf-space-4);display:grid}.document-control>div{gap:var(--agdf-space-1);display:grid}.document-control dt,.document-source-fields dt{color:var(--cockpit-muted);font-size:var(--agdf-text-xs)}.document-control dd,.document-source-fields dd{overflow-wrap:anywhere;margin:0}.document-control dd{font-size:var(--agdf-text-sm);font-weight:var(--agdf-weight-semibold)}.document-source-fields{gap:var(--agdf-space-2);display:grid}.document-provenance,.document-original{min-width:0}.document-reading{width:100%;max-width:80ch;padding:var(--agdf-space-6);overflow-wrap:anywhere;min-width:0;margin-inline:auto}.workspace--document .breadcrumbs,.workspace--document main>footer{max-width:80ch;margin-inline:auto}.document-reading .document-summary p,.document-reading .document-summary-origin,.document-reading .document-status-note{max-width:none}.document-reading .document,.compact-document .document{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.document-reading .context-panel{margin:var(--agdf-space-4) 0 0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.document-reading .context-toggle{min-height:44px;box-shadow:none;color:var(--agdf-link-color);font-weight:var(--agdf-weight-semibold);text-align:left;background:0 0;border:0;border-radius:0;padding-inline:0}.document-reading .context-toggle:hover{color:var(--agdf-link-hover);text-decoration:underline}@media (width<=639px){.document-reading{padding:var(--agdf-space-4)}}.page-title--document{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.document-close{width:44px;height:44px;padding:var(--agdf-space-3);background:0 0;border-color:#0000;justify-content:center;align-items:center;display:inline-flex}.breadcrumbs{margin-bottom:var(--agdf-space-4);font-size:var(--agdf-text-sm)}.breadcrumbs ol{align-items:baseline;gap:var(--agdf-space-2) var(--agdf-space-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:baseline;gap:var(--agdf-space-3);overflow-wrap:anywhere;min-width:0;display:inline-flex}.breadcrumbs li+li:before{content:"›"}.breadcrumbs button{padding:var(--agdf-space-1) 0;text-align:left;overflow-wrap:anywhere;background:0 0;border:0}.breadcrumbs button:hover{text-decoration:underline}.view-switch{isolation:isolate;padding:var(--agdf-space-1);border-radius:var(--agdf-radius-xl);border:1px solid;flex:none;grid-template-columns:repeat(2,minmax(0,1fr));display:none;position:relative}.view-switch:before{content:"";z-index:-1;inset:var(--agdf-space-1) auto var(--agdf-space-1) var(--agdf-space-1);width:calc((100% - 2 * var(--agdf-space-1)) / 2);border:1px solid var(--cockpit-line);border-radius:var(--agdf-radius-lg);background:var(--cockpit-bg);pointer-events:none;transition:transform .18s;position:absolute;transform:translate(0)}.view-switch[data-mode=details]:before{transform:translate(100%)}.view-switch button{font-size:var(--agdf-text-sm);padding:var(--agdf-space-2) var(--agdf-space-3);background:0 0;border:1px solid #0000;min-height:44px;position:relative}.data-observation{align-items:baseline;gap:var(--agdf-space-3);margin-bottom:var(--agdf-space-5);border-bottom:1px solid;display:flex}.data-observation .provenance-details{border:0;flex:1;min-width:0}.data-observation .provenance{margin:var(--agdf-space-3) 0 0;padding-bottom:var(--agdf-space-2);border:0}.refresh-control{align-items:center;gap:var(--agdf-space-2);min-width:44px;min-height:44px;padding:var(--agdf-space-2);font-size:var(--agdf-text-sm);background:0 0;border-color:#0000;flex:none;display:inline-flex}.context-panel{margin-block:var(--agdf-space-6);padding:var(--agdf-space-4);border-radius:var(--agdf-radius-2xl);border:1px solid}.context-toggle{font-weight:var(--agdf-weight-semibold)}.context-references{padding:0;list-style:none}.context-references>li{padding-block:var(--agdf-space-3);border-bottom:1px solid}.context-reference-heading{align-items:center;gap:var(--agdf-space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.context-reference-heading label{align-items:center;gap:var(--agdf-space-2);display:inline-flex}.context-reference-heading strong{overflow-wrap:anywhere;min-width:0}.context-actions{gap:var(--agdf-space-3);flex-wrap:wrap;display:flex}.context-panel code,.context-panel small{overflow-wrap:anywhere}.context-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:24rem;overflow:auto}@container (width>=720px){.view-switch{display:inline-grid}}@media (width<=1050px){.rail{width:190px}.workspace{width:calc(100% - 190px);margin-left:190px}main{padding:var(--agdf-space-6)}.detail-columns{grid-template-columns:minmax(0,1fr)}.provenance{grid-template-columns:1fr 1fr}.provenance div:first-child{grid-column:1/-1}}@media (width<=700px){.shell{display:block}.rail{width:100%;padding:var(--agdf-space-4) var(--agdf-space-5);align-items:center;gap:var(--agdf-space-5);flex-direction:row;position:static}.brand{font-size:var(--agdf-text-lg)}.brand-mark{width:30px;height:30px}.rail-label,.rail-footer{display:none}.nav-item{margin-left:auto}.workspace{width:100%;margin:0}main{padding:var(--agdf-space-6) var(--agdf-space-4)}.page-title{align-items:flex-start;gap:var(--agdf-space-4);flex-direction:column}h1{font-size:var(--agdf-text-2xl);line-height:var(--agdf-text-leading-2xl)}.metrics{gap:var(--agdf-space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.metrics div,.panel{padding:var(--agdf-space-4)}.provenance{grid-template-columns:minmax(0,1fr)}.provenance div:first-child{grid-column:auto}.section-toolbar{flex-direction:column;align-items:flex-start}.search,.search input{width:100%}.resources{grid-template-columns:minmax(0,1fr)}.document{padding:var(--agdf-space-5) var(--agdf-space-4)}.status-fields{grid-template-columns:110px minmax(0,1fr)}.document-meta{flex-direction:column;align-items:flex-start}}@media (width<=400px){.data-observation{flex-wrap:wrap}.data-observation .provenance-details{flex-basis:100%}}.compact-cockpit .backlog-overview{padding:var(--agdf-space-3)}.compact-cockpit #backlog-list{contain:none;max-height:50vh;overflow-y:auto}.undertaking{min-width:0}.undertaking :is(p,code,details){overflow-wrap:anywhere}@media (width<=700px){.rail{gap:var(--agdf-space-3)}.rail .brand{flex:1;min-width:0}.rail .nav-item{overflow-wrap:anywhere;flex:1;min-width:0;margin-left:0}}.archive-detail{min-width:0;overflow:auto}.archive-detail select{width:100%;max-width:100%;min-height:44px;margin-block:var(--agdf-space-3);display:block}.archive-detail code,.archive-detail pre{overflow-wrap:anywhere}:root{--agdf-color-neutral-50:#fcfcfc;--agdf-color-neutral-100:#f6f6f6;--agdf-color-neutral-200:#eff0f0;--agdf-color-neutral-300:#e8e8e8;--agdf-color-neutral-400:#d9d9d9;--agdf-color-neutral-600:#66686a;--agdf-color-neutral-800:#3c3e40;--agdf-color-agdf-50:#f0fdfa;--agdf-color-agdf-100:#ccfbf1;--agdf-color-agdf-200:#99f6e4;--agdf-color-agdf-300:#5eead4;--agdf-color-agdf-400:#2dd4bf;--agdf-color-agdf-500:#14b8a6;--agdf-color-agdf-600:#0d9488;--agdf-color-agdf-700:#0f766e;--agdf-color-agdf-800:#115e59;--agdf-color-agdf-900:#134e4a;--agdf-color-agdf-950:#042f2e;--agdf-color-dark-50:#f8fafc;--agdf-color-dark-100:#f1f5f9;--agdf-color-dark-200:#e2e8f0;--agdf-color-dark-300:#cbd5e1;--agdf-color-dark-400:#94a3b8;--agdf-color-dark-500:#64748b;--agdf-color-dark-600:#475569;--agdf-color-dark-700:#334155;--agdf-color-dark-800:#1e293b;--agdf-color-dark-900:#0f172a;--agdf-color-dark-950:#020617;--agdf-color-risk-50:#fffbeb;--agdf-color-risk-200:#fde68a;--agdf-color-risk-700:#92400e;--agdf-color-risk-950:#451a03;--agdf-font-sans:Inter, system-ui, sans-serif;--agdf-font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace;--agdf-radius-lg:8px;--agdf-radius-xl:12px;--agdf-radius-2xl:16px;--agdf-radius-full:9999px;--agdf-text-xs:.75rem;--agdf-text-sm:.875rem;--agdf-text-base:1rem;--agdf-text-lg:1.125rem;--agdf-text-xl:1.25rem;--agdf-text-2xl:1.5rem;--agdf-text-3xl:1.875rem;--agdf-text-4xl:2.25rem;--agdf-text-leading-xs:1rem;--agdf-text-leading-sm:1.25rem;--agdf-text-leading-base:1.5rem;--agdf-text-leading-lg:1.75rem;--agdf-text-leading-xl:1.75rem;--agdf-text-leading-2xl:2rem;--agdf-text-leading-3xl:2.25rem;--agdf-text-leading-4xl:2.5rem;--agdf-leading-tight:1.25;--agdf-leading-snug:1.375;--agdf-leading-normal:1.5;--agdf-leading-relaxed:1.625;--agdf-leading-loose:1.75;--agdf-weight-normal:400;--agdf-weight-medium:500;--agdf-weight-semibold:600;--agdf-weight-bold:700;--agdf-tracking-tight:-.025em;--agdf-tracking-eyebrow:.16em;--agdf-space-1:.25rem;--agdf-space-2:.5rem;--agdf-space-3:.75rem;--agdf-space-4:1rem;--agdf-space-5:1.25rem;--agdf-space-6:1.5rem;--agdf-space-8:2rem;--agdf-space-10:2.5rem;--agdf-space-12:3rem;--agdf-focus-width:3px;--agdf-focus-offset:3px;--agdf-focus-color:#5eead4}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(data:font/woff2;base64,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)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(data:font/woff2;base64,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)format("woff2")}:root{--agdf-canvas-bg:var(--agdf-color-dark-100);--agdf-surface-bg:#fff;--agdf-surface-border:var(--agdf-color-dark-300);--agdf-surface-shadow:0 1px 0 #fffc inset, 0 12px 32px -24px #02061738;--agdf-control-bg:var(--agdf-surface-bg);--agdf-control-border:var(--agdf-surface-border);--agdf-control-accent:var(--agdf-color-agdf-700);--agdf-control-shadow:var(--agdf-surface-shadow);--agdf-link-color:var(--agdf-color-agdf-700);--agdf-link-hover:var(--agdf-color-agdf-800)}:root.dark,:root[data-theme=dark]{--agdf-canvas-bg:var(--agdf-color-dark-950);--agdf-surface-bg:var(--agdf-color-dark-900);--agdf-surface-border:var(--agdf-color-dark-600);--agdf-surface-shadow:0 1px 0 #94a3b80f inset, 0 18px 48px -28px #020617e0;--agdf-control-bg:var(--agdf-surface-bg);--agdf-control-border:var(--agdf-surface-border);--agdf-control-accent:var(--agdf-color-agdf-400);--agdf-control-shadow:var(--agdf-surface-shadow);--agdf-link-color:var(--agdf-color-agdf-300);--agdf-link-hover:var(--agdf-color-agdf-100)}.surface,.agdf-surface{border:1px solid var(--agdf-surface-border);border-radius:var(--agdf-radius-2xl);background:var(--agdf-surface-bg);box-shadow:var(--agdf-surface-shadow)}.surface.controlled-card,.agdf-surface.agdf-controlled-surface{border-color:var(--agdf-control-border);border-inline-start:3px solid var(--agdf-control-accent);background:var(--agdf-control-bg);box-shadow:var(--agdf-control-shadow)}.text-link{align-items:center;gap:var(--agdf-space-2);font-weight:var(--agdf-weight-semibold);color:var(--agdf-link-color);text-decoration:none;display:inline-flex}.text-link:hover{color:var(--agdf-link-hover);text-decoration:underline}:root{--agdf-action-color:var(--agdf-color-dark-900);--agdf-action-border:var(--agdf-color-dark-200);--agdf-action-hover-color:var(--agdf-color-agdf-700);--agdf-action-hover-border:var(--agdf-color-agdf-700)}:root.dark,:root[data-theme=dark]{--agdf-action-color:var(--agdf-color-dark-100);--agdf-action-border:var(--agdf-color-dark-700);--agdf-action-hover-color:var(--agdf-color-agdf-200);--agdf-action-hover-border:var(--agdf-color-agdf-500)}.btn-primary,.btn-ghost,.btn-nav{justify-content:center;align-items:center;display:inline-flex}.btn-primary,.btn-ghost,.btn-nav,:where(.shell,.mcp-entry,.browser-card-layout) button{border-radius:var(--agdf-radius-lg);font-weight:var(--agdf-weight-semibold);line-height:var(--agdf-leading-normal);transition:color .15s,background-color .15s,border-color .15s}.btn-ghost,:where(.shell,.mcp-entry,.browser-card-layout) button{padding:var(--agdf-space-3) var(--agdf-space-6);border:1px solid var(--agdf-action-border);color:var(--agdf-action-color);background:0 0}.btn-ghost:hover,:where(.shell,.mcp-entry,.browser-card-layout) button:hover{border-color:var(--agdf-action-hover-border);color:var(--agdf-action-hover-color);background:0 0}.btn-primary,:where(.shell,.mcp-entry,.browser-card-layout) button.primary{padding:var(--agdf-space-3) var(--agdf-space-6);background:var(--agdf-color-agdf-700);color:#fff;border:0}.btn-primary:hover,:where(.shell,.mcp-entry,.browser-card-layout) button.primary:hover{background:var(--agdf-color-agdf-800);color:#fff}.btn-nav{padding:var(--agdf-space-2) var(--agdf-space-4);border:1px solid color-mix(in srgb, var(--agdf-color-agdf-600) 60%, transparent);background:color-mix(in srgb, var(--agdf-color-agdf-950) 60%, transparent);color:var(--agdf-color-agdf-100)}.btn-nav:hover{border-color:var(--agdf-color-agdf-400)}:root{--cockpit-canvas:var(--agdf-canvas-bg);--cockpit-bg:var(--agdf-surface-bg);--cockpit-soft:var(--agdf-color-neutral-100);--cockpit-line:var(--agdf-color-neutral-300);--cockpit-text:var(--agdf-color-neutral-800);--cockpit-muted:var(--agdf-color-neutral-600);--cockpit-heading:var(--cockpit-text);--cockpit-accent:var(--agdf-color-agdf-700);--cockpit-accent-bg:var(--agdf-color-agdf-50);--cockpit-accent-line:var(--agdf-color-agdf-200);--cockpit-risk:var(--agdf-color-risk-700);--cockpit-risk-bg:var(--agdf-color-risk-50);--cockpit-risk-line:var(--agdf-color-risk-200);font-family:var(--agdf-font-sans);color:var(--cockpit-text);background:var(--cockpit-canvas)}:root:not([data-theme=dark]){--agdf-canvas-bg:var(--agdf-color-neutral-50);--agdf-surface-bg:var(--agdf-color-neutral-50);--agdf-surface-border:var(--agdf-color-neutral-300);--agdf-surface-shadow:none;--agdf-control-bg:var(--agdf-color-neutral-100);--agdf-control-border:var(--agdf-color-neutral-100);--agdf-control-accent:var(--agdf-color-neutral-100);--agdf-control-shadow:none;--agdf-action-color:var(--cockpit-text);--agdf-action-border:var(--cockpit-line);--cockpit-header-visual-opacity:.14;--cockpit-document-visual-opacity:.08}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--cockpit-canvas:var(--agdf-canvas-bg);--cockpit-bg:var(--agdf-color-dark-900);--cockpit-soft:var(--agdf-color-dark-800);--cockpit-line:var(--agdf-color-dark-700);--cockpit-text:var(--agdf-color-dark-100);--cockpit-muted:var(--agdf-color-dark-400);--cockpit-heading:var(--cockpit-accent);--cockpit-accent:var(--agdf-color-agdf-200);--cockpit-accent-bg:var(--agdf-color-agdf-950);--cockpit-accent-line:var(--agdf-color-agdf-800);--cockpit-risk:var(--agdf-color-risk-200);--cockpit-risk-bg:var(--agdf-color-risk-950);--cockpit-risk-line:var(--agdf-color-risk-700)}:root:not([data-theme=dark]) .agdf-surface.agdf-controlled-surface{border-inline-start-width:1px}:root:not([data-theme=dark]) .rail{background:var(--cockpit-soft);color:var(--cockpit-text)}:root:not([data-theme=dark]) :is(.rail-label,.rail-footer,.rail-footer small,.brand small){color:var(--cockpit-muted)}:root:not([data-theme=dark]) .nav-item{background:var(--agdf-color-neutral-200);color:var(--cockpit-text)}:root:not([data-theme=dark]) .nav-item:hover{background:var(--agdf-color-neutral-300)}:root:not([data-theme=dark]) .backlog-switch button{background:var(--cockpit-soft);border-color:#0000}:root:not([data-theme=dark]) .backlog-switch button[aria-pressed=true]{color:var(--cockpit-text);background:var(--agdf-color-neutral-200);box-shadow:none}:root:not([data-theme=dark]) .backlog-switch button:hover{background:var(--agdf-color-neutral-200)}button,input,select,textarea{color:inherit}button:disabled{cursor:not-allowed}:focus-visible{outline:var(--agdf-focus-width) solid var(--agdf-focus-color);outline-offset:var(--agdf-focus-offset)}header,.metrics div{background:var(--cockpit-bg);border-color:var(--cockpit-line)}.metrics div{border-radius:var(--agdf-radius-xl)}.rail{background:var(--agdf-color-dark-950);color:var(--agdf-color-dark-100)}.rail-label,.rail-footer small,.brand small{color:var(--agdf-color-dark-400)}.rail-footer{color:var(--agdf-color-dark-200)}.nav-item{background:var(--agdf-color-dark-800);color:var(--agdf-color-dark-100)}.nav-item:hover{background:var(--agdf-color-dark-700)}.read-only,.badge{color:var(--cockpit-accent);background:var(--cockpit-accent-bg);border:1px solid var(--cockpit-accent-line);border-radius:var(--agdf-radius-full)}.run-link,summary,.eyebrow{color:var(--cockpit-heading)}.reading-feedback,.breadcrumbs button{color:var(--cockpit-accent)}.notice{color:var(--cockpit-risk);background:var(--cockpit-risk-bg);border-color:var(--cockpit-risk-line);border-radius:var(--agdf-radius-lg)}.provenance,td,details,.approval-list li,.data-observation,.context-references>li{border-color:var(--cockpit-line)}th,.search input,.document pre,.panel pre,.document code{background:var(--cockpit-soft);color:var(--cockpit-text);border-color:var(--cockpit-line)}header,small,.muted,.source-text,.status-fields dt,.provenance span,.metrics span,.page-title p,.search,.status,.run-objective,.resources button>span,.document-close,.breadcrumbs li+li:before,.breadcrumbs [aria-current],.refresh-control,.context-unavailable,footer{color:var(--cockpit-muted)}.status.warning,.stale-label{color:var(--cockpit-risk)}.stale-label{border-color:var(--cockpit-risk-line)}.document blockquote{color:var(--cockpit-muted);border-color:var(--cockpit-accent-line)}.view-switch{background:var(--cockpit-soft);border-color:var(--cockpit-line)}.view-switch button{color:var(--cockpit-muted)}.view-switch button[aria-pressed=true]{color:var(--cockpit-text)}.view-switch button:hover{background:0 0;border-color:#0000}.cockpit-icon{vertical-align:middle;flex:none;width:18px;height:18px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}}.mcp-connecting{padding:var(--agdf-space-4);max-width:560px}.mcp-connecting h1{font-size:var(--agdf-text-xl);margin:0 0 var(--agdf-space-2)}.mcp-connecting p{font-size:var(--agdf-text-sm)}:root{background:0 0}.mcp-entry{min-width:0;color:var(--cockpit-text);background:var(--cockpit-canvas);container-type:inline-size}.compact-cockpit{width:100%;min-width:0;padding:var(--agdf-space-4);font-size:var(--agdf-text-sm);line-height:var(--agdf-leading-normal);margin:0}.compact-controls{gap:var(--agdf-space-3);margin-top:var(--agdf-space-3);display:grid}.compact-counts{gap:var(--agdf-space-2) var(--agdf-space-4);color:var(--cockpit-muted);font-size:var(--agdf-text-xs);flex-wrap:wrap;display:flex}.compact-counts strong{font:var(--agdf-weight-semibold) var(--agdf-text-base) var(--agdf-font-mono);color:var(--cockpit-accent)}.compact-goal{margin:var(--agdf-space-2) 0 var(--agdf-space-3);color:var(--cockpit-muted);font-size:var(--agdf-text-sm);white-space:pre-line;overflow-wrap:anywhere}.compact-identity{font-size:var(--agdf-text-xs)}.compact-document{margin-top:var(--agdf-space-4)}.compact-search{font-size:var(--agdf-text-xs);font-weight:var(--agdf-weight-semibold)}.compact-search input{width:100%;min-width:0;margin-top:var(--agdf-space-2);padding:var(--agdf-space-3);border:1px solid var(--cockpit-line);border-radius:var(--agdf-radius-lg);background:var(--cockpit-bg);font-size:var(--agdf-text-sm);display:block}.compact-search-result{color:var(--cockpit-muted);font-size:var(--agdf-text-xs);margin:0}.compact-run,.compact-overview{margin-top:var(--agdf-space-4)}.compact-run-summary,.compact-run-followup{min-width:0}.compact-overview p{margin:0 0 var(--agdf-space-3);max-width:65ch}.compact-run h2{margin:0 0 var(--agdf-space-2);font-size:var(--agdf-text-xl);line-height:var(--agdf-text-leading-xl);letter-spacing:var(--agdf-tracking-tight);overflow-wrap:anywhere}.compact-run-id{color:var(--cockpit-muted);font-size:var(--agdf-text-xs);overflow-wrap:anywhere;display:block}.compact-muted{color:var(--cockpit-muted)}.compact-repository{overflow-wrap:anywhere}.compact-run-followup{margin-top:var(--agdf-space-4)}.compact-inventory{font-size:var(--agdf-text-xs);margin-top:var(--agdf-space-3);padding:var(--agdf-space-3);border:1px solid var(--cockpit-risk-line);border-radius:var(--agdf-radius-lg);background:var(--cockpit-risk-bg)}.compact-inventory summary{color:var(--cockpit-risk)}.compact-inventory ul{padding-left:var(--agdf-space-5)}.compact-inventory li+li{margin-top:var(--agdf-space-3)}.compact-inventory code,.compact-inventory button{overflow-wrap:anywhere}.compact-actions{gap:var(--agdf-space-2);flex-wrap:wrap;display:flex}.compact-actions button{justify-content:center;align-items:center;gap:var(--agdf-space-2);font-size:var(--agdf-text-sm);line-height:var(--agdf-text-leading-sm);min-height:44px;display:inline-flex}.compact-footnote{justify-content:space-between;gap:var(--agdf-space-2);border-top:1px solid var(--cockpit-line);margin-top:var(--agdf-space-3);padding-top:var(--agdf-space-3);color:var(--cockpit-muted);font-size:var(--agdf-text-xs);flex-wrap:wrap;display:flex}.compact-cockpit .notice{margin:var(--agdf-space-3) 0;padding:var(--agdf-space-3)}.host-probe{margin:var(--agdf-space-4);padding:var(--agdf-space-3);border:1px solid var(--cockpit-line);border-radius:var(--agdf-radius-xl)}.host-probe pre{white-space:pre-wrap;word-break:break-word;max-width:100%;overflow:auto}.mcp-entry .rail{display:none}.mcp-entry .workspace{width:100%;margin-left:0}.mcp-entry .workspace>main{padding:var(--agdf-space-6) var(--agdf-space-5)}@container (width>=640px){.mcp-entry .detail-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@container (width<=639px){.mcp-entry .detail-columns{grid-template-columns:minmax(0,1fr)}}@media (width<=380px){.compact-cockpit{padding:var(--agdf-space-4)}}.compact-controls>h2{font-size:var(--agdf-text-base);margin:0}.compact-controls .undertaking-list{margin-top:0}.compact-controls>p{margin:0}.compact-search-hint{font-size:var(--agdf-text-xs)}.compact-controls .undertaking-list>li{padding-block:var(--agdf-space-3)}.compact-controls .undertaking-list h3{margin-bottom:0}.compact-controls .row-source{margin-block:var(--agdf-space-1) 0;padding:0}.compact-controls .row-source>summary{font-size:var(--agdf-text-xs)}.compact-controls .undertaking-list{max-height:none;overflow:visible}.draft-check{min-width:0;margin-block:1rem}.draft-check :is(code,pre,dd,p,li){overflow-wrap:anywhere;white-space:pre-wrap}.draft-check dd{margin-inline-start:0}.draft-check pre{max-width:100%}.draft-check [aria-disabled=true]{opacity:.7;cursor:progress}.decision-card{overflow-wrap:anywhere;max-width:72rem;margin:0 auto;padding:clamp(1rem,3vw,2rem)}.decision-summary{max-width:100%}.decision-summary.document{box-shadow:none;background:0 0;border:0;padding:0}.decision-actions{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.decision-comment{gap:.5rem;margin-top:1rem;display:grid}.decision-comment textarea{resize:vertical;width:100%;min-height:6rem;font:inherit;padding:.75rem}.decision-card button:focus-visible,.decision-card textarea:focus-visible{outline:3px solid var(--agdf-accent,#0c7975);outline-offset:3px}.mcp-entry[data-terminal=true]{height:auto;min-height:0;display:flow-root}.mcp-terminal{padding:var(--agdf-space-4);min-height:0;margin:0;display:flow-root}.mcp-terminal h1{font-size:var(--agdf-text-xl);margin:0 0 var(--agdf-space-2)}.mcp-terminal p{margin:0}
107
107
  /*$vite$:1*/</style>
108
108
  </head><body><div id="root"></div></body></html>