@autodevjapan/godd-mcp-alpha 3.7.0 → 3.9.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/README.md +18 -0
- package/assets/native/godd-native-aarch64-apple-darwin +0 -0
- package/assets/native/godd-native-aarch64-apple-darwin.sha256 +1 -1
- package/assets/native/godd-native-x86_64-apple-darwin +0 -0
- package/assets/native/godd-native-x86_64-apple-darwin.sha256 +1 -1
- package/assets/native/godd-native-x86_64-pc-windows-msvc.exe +0 -0
- package/assets/native/godd-native-x86_64-pc-windows-msvc.exe.sha256 +1 -1
- package/assets/native/godd-native-x86_64-unknown-linux-musl +0 -0
- package/assets/native/godd-native-x86_64-unknown-linux-musl.sha256 +1 -1
- package/dist/compile-cache-runtime.cjs +6 -6
- package/dist/godd.cjs +177 -177
- package/native-assets.json +12 -12
- package/package.json +2 -2
- package/scripts/native-assets.js +5 -5
package/README.md
CHANGED
|
@@ -46,6 +46,12 @@ At server startup, GoDD checks whether the Docker daemon responds. On Windows an
|
|
|
46
46
|
|
|
47
47
|
**Breaking Registry change (#2986):** responses must declare a content generation. `CLIENT_GENERATION_MISSING` means the server migration is incomplete; ask the Registry operator to finish it. `CLIENT_GENERATION_MALFORMED` means the generation metadata is invalid; `CLIENT_GENERATION_SPLIT` means a response mixes generations. These errors stop delivery. `GENERATION_DIGEST_ABSENT` is a separate, nonfatal diagnostic for delivery from the last-known-good cache. Failed MCP prompt requests now return a protocol error, and are not counted as usage.
|
|
48
48
|
|
|
49
|
+
### Optional compatibility reporting with anonymous aggregates
|
|
50
|
+
|
|
51
|
+
**Explicit participation only:** the public route, policy and operational-log disclosure are verified. Delivery is available only after the reporting-enabled native artifacts and their packaged four-target gate are verified and promoted. Older prepared binaries keep delivery disabled.
|
|
52
|
+
|
|
53
|
+
Reporting is off unless you set `GODD_NATIVE_HANDSHAKE_REPORTING=railway-aggregate-v2` after reading the [privacy policy](https://getgodd.dev/legal/privacy). The [version 2 reporting policy](https://native-handshake-diagnostics-production.up.railway.app/legal/native-handshake-reporting-v2) discloses Railway operational logging of IP, User-Agent, URL and request metadata; the transport is not anonymous. Old anonymous-v1 consent is not reused. On a startup compatibility rejection, GoDD sends only its reason code, the stable npm version, and the OS family to a fixed HTTPS endpoint, once, with at most 1.5 seconds waiting for the reporting subprocess, plus binary preparation and cleanup. No license, identity, path, digest, or command is sent. The server keeps daily counts for 30 UTC days; production collection requires verified dedicated ingress and disclosure. Counts are reports from volunteers, not user counts or a rejection rate. Unset the variable and restart GoDD to withdraw consent. Individual reports cannot be identified for deletion. Reporting failures never change startup behavior.
|
|
54
|
+
|
|
49
55
|
### Everything else
|
|
50
56
|
|
|
51
57
|
The full tool list, CLI reference, and troubleshooting live on the **[documentation site](https://www.getgodd.dev/en/docs)**.
|
|
@@ -109,6 +115,12 @@ MCP サーバー起動時に Docker daemon の応答を確認します。Windows
|
|
|
109
115
|
|
|
110
116
|
**Registry の破壊的変更(#2986):** 応答の配信世代情報が必須になります。`CLIENT_GENERATION_MISSING` が出た場合は Registry 管理者にサーバー移行の完了を依頼してください。`CLIENT_GENERATION_MALFORMED` は世代情報の不正、`CLIENT_GENERATION_SPLIT` は応答内の世代混在を示し、いずれも配信を停止します。`GENERATION_DIGEST_ABSENT` は last-known-good キャッシュから配信した場合の非fatal診断です。失敗した MCP プロンプト要求はプロトコルエラーとなり、usage に計上しません。
|
|
111
117
|
|
|
118
|
+
### 起動時の互換検査を任意で報告し匿名集計する
|
|
119
|
+
|
|
120
|
+
**利用者自身の明示同意で参加します。** 公開経路と追加ポリシー、運用ログの告知を検証しました。送信可能なnative配布物と同じ候補パッケージの4環境検査を終えてmanifestを昇格した版で提供します。旧版の停止中バイナリは送信しません。
|
|
121
|
+
|
|
122
|
+
送信は初期状態で無効です。[プライバシーポリシー](https://getgodd.dev/legal/privacy)を読み、`GODD_NATIVE_HANDSHAKE_REPORTING=railway-aggregate-v2` を設定した利用者だけが参加します。互換検査が拒否した場合、理由コード・npmの正式製品版・OSの種類だけを固定HTTPS宛先へ1回送ります。報告用の子プロセスを待つ時間は最大1.5秒です。配布バイナリの再検証と後片付けの時間は別にかかります。ライセンス・識別子・パス・digest・コマンドは送信しません。サーバーは日別の件数を30 UTC日保存します。[追加ポリシー第2版](https://native-handshake-diagnostics-production.up.railway.app/legal/native-handshake-reporting-v2)のとおり、RailwayはIP・User-Agent・URL等を運用ログに記録します。通信経路全体が匿名とは説明しません。旧anonymous-v1の同意は流用しません。件数は任意参加者の報告回数で、利用者数や拒否率ではありません。撤回は変数を削除してGoDDを再起動してください。識別子がないため個別報告の検索・削除はできません。報告失敗は起動結果に影響しません。
|
|
123
|
+
|
|
112
124
|
### その他
|
|
113
125
|
|
|
114
126
|
ツール一覧・CLI リファレンス・トラブルシューティングは **[ドキュメントサイト](https://www.getgodd.dev/docs)** にまとまっています。
|
|
@@ -170,6 +182,12 @@ Node.js 22+ · MCP-клиент (Cursor / Claude Code / Codex / Kimi CLI / Antig
|
|
|
170
182
|
|
|
171
183
|
**Несовместимое изменение Registry (#2986):** ответ должен содержать данные о поколении контента. При `CLIENT_GENERATION_MISSING` попросите оператора Registry завершить миграцию. `CLIENT_GENERATION_MALFORMED` означает некорректные данные, `CLIENT_GENERATION_SPLIT` — смешанные поколения; доставка останавливается. `GENERATION_DIGEST_ABSENT` — отдельная нефатальная диагностика доставки из последнего проверенного кеша. Неудачные MCP-запросы промптов возвращают ошибку протокола и не учитываются как использование.
|
|
172
184
|
|
|
185
|
+
### Добровольные отчёты о совместимости с анонимными агрегатами
|
|
186
|
+
|
|
187
|
+
**Только добровольное участие:** публичный маршрут, дополнительная политика и раскрытие служебных журналов проверены. Отправка доступна после проверки и продвижения нативных артефактов с включённой отправкой и одного пакета на четырёх платформах. Старые подготовленные бинарные файлы не отправляют данные.
|
|
188
|
+
|
|
189
|
+
Отправка выключена, пока вы не прочтёте [политику конфиденциальности](https://getgodd.dev/legal/privacy) и не зададите `GODD_NATIVE_HANDSHAKE_REPORTING=railway-aggregate-v2`. При отказе проверки запуска GoDD один раз отправляет только код причины, стабильную версию npm и семейство ОС на фиксированный HTTPS-адрес. Ожидание процесса отправки — не более 1,5 секунды; подготовка и очистка проверенного бинарного файла требуют дополнительного времени. Лицензия, идентификаторы, пути, хеши и команды не передаются. Сервер хранит дневные счётчики 30 дней UTC. [Дополнительная политика версии 2](https://native-handshake-diagnostics-production.up.railway.app/legal/native-handshake-reporting-v2) раскрывает запись IP, User-Agent, URL и метаданных в служебные журналы Railway; транспорт не является анонимным. Старое согласие anonymous-v1 не используется. Это число добровольных отчётов, а не пользователей или доля отказов. Для отзыва согласия удалите переменную и перезапустите GoDD. Найти и удалить отдельный отчёт невозможно без идентификаторов. Ошибка отправки не меняет результат запуска.
|
|
190
|
+
|
|
173
191
|
### Остальное
|
|
174
192
|
|
|
175
193
|
Полный список инструментов, справочник CLI и устранение неполадок — на **[сайте документации](https://www.getgodd.dev/ru/docs)**.
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
09f6dcf51e34a620cbec1cf6a3b3ebbcee59c86e16787fe4a219cbadac1bde61
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
646f6338fd06496c5d3c7073ed750da14dbd88168512fbfd188418be78be42f3
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
011e5e5f16903d8d992e2198af3e1af3f54a7c40703c67f16d41a5dfb1da5dd5
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
213c68747ce35ed7a0d0b6cb81de09b65c6dbf00c9b7f6053c73b5b16c8fadba
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var B=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var De=Object.prototype.hasOwnProperty;var ve=(t,e)=>{for(var r in e)B(t,r,{get:e[r],enumerable:!0})},Ie=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ne(e))!De.call(t,o)&&o!==r&&B(t,o,{get:()=>e[o],enumerable:!(n=Te(e,o))||n.enumerable});return t};var we=t=>Ie(B({},"__esModule",{value:!0}),t);var at={};ve(at,{CompileCacheRejectedError:()=>v,CompileCacheRuntime:()=>oe,CompileCacheRuntimeError:()=>p,createNdjsonCompileCacheEvaluator:()=>be,spawnCompileCacheEvaluator:()=>it});module.exports=we(at);var Oe=require("node:child_process");var U={schemaVersion:3,releaseTag:"godd-native-v0.2.62",expectedVersion:"godd-native 0.2.62",sourceCommit:"a195304e49d662922237ad495b6cd4bf27ff773d",capabilities:["autonomy","cobol-evidence","codec-capability","compile-cache","content-generation","gateway-operations","mcp-stdio","operate","peer-summary","plan-audit","research"],handshakeProtocol:{supportedProtocolMajors:[1],minimumProtocolMinorByMajor:{"1":1}},capabilityCatalogDigest:"7fd64d8c567f76c32bb18711a8a0aa616df842da10d0e5ca4685a878fd68fb3d",routedCommands:["autonomy","codec-capability","compile-cache","content-generation","dataset-coverage","evidence-cobol","gateway-operations","godd-a-dir","learn-skill","managed-gitignore","operate","peer-summary","plan-audit","realtime-admission","realtime-admission-dev","research","shard-partition","test-evidence"],routedCommandEntryDigests:{autonomy:"9968e855a0dfbb8c861b41a9ef77c07b6bef6021e2b519098882a66c533df17f","codec-capability":"c42a0a334e7744fd47c040c2e5c09dff624eee02fbea1cd01a721f35b57520bd","compile-cache":"cd4949c86b20fa19a8ca83646424e2f2ab15a2b652c343c8b443b697c6fdc539","content-generation":"e4c5e1731fa9f3439e62a19a1d4c9cb21efdc28162731e51116a194cf6bf4b4f","dataset-coverage":"31be076baa2b47e7851adbd42d0885d3a6f902b56133ea3384991772df66a88b","evidence-cobol":"086ee7120c4db890b9e2de627fc00b2c843939b07e014553f2549ad219203f8b","gateway-operations":"97218eff67bfb58c600ee4988b3e1dcf7071fe15f0a9acdcf94fdb885e1d1a2f","godd-a-dir":"7810bf4642150849d45f6031cb4bfe7e8834c4000356d77e3f7d2f0e8f9dd1aa","learn-skill":"e8cb2f1bf1fe59cfa4ed2cee070ff753c8f2595e91f9eadf2f43d64812793f43","managed-gitignore":"487b7167c4f4d7691b105e550c1e06c71113a434258c4f8525b90a86f75db73e",operate:"2f619fe4b46c760b966bc1890f0380b048958fc70d27c79e3df38df79405170a","peer-summary":"b0f612e5b5c5f90c9a97486a5bdac22999dd21a609ccbf2e5431351a52c2d3c3","plan-audit":"9bc81d0ac70c62917cbd0d8c6b9723428c4a170e8fb48165e1fa64ced768a28c","realtime-admission":"200468566f677d5b82d1ef2d9ce76855bba5a40998a512a1539bb9dcadcd81c8","realtime-admission-dev":"cab9e64721cb7f9442797744a193a12d2aa3a5d4a71234f60173b291c19ed0a6",research:"a2b9cc8a7cf3499891f4d7fa4f4b603df2d28baf77a02397bd718224e7cfefad","shard-partition":"0f90efb80a81187e9031a3cf7779c238959ac706bf7742affe6e4a562da5d645","test-evidence":"12814a80813f56bf013729b8f01e520e94adbfc6561c607acfa952a9a56bf764"},baselineBytes:46080500,maximumAssetBytes:5e7,maximumTarballBytes:25e6,maximumUnpackedBytes:55e6,targets:{"darwin-arm64":{artifact:"godd-native-aarch64-apple-darwin",targetTriple:"aarch64-apple-darwin",bytes:9808176,sha256:"09f6dcf51e34a620cbec1cf6a3b3ebbcee59c86e16787fe4a219cbadac1bde61"},"darwin-x64":{artifact:"godd-native-x86_64-apple-darwin",targetTriple:"x86_64-apple-darwin",bytes:10883728,sha256:"646f6338fd06496c5d3c7073ed750da14dbd88168512fbfd188418be78be42f3"},"linux-x64":{artifact:"godd-native-x86_64-unknown-linux-musl",targetTriple:"x86_64-unknown-linux-musl",bytes:11958064,sha256:"213c68747ce35ed7a0d0b6cb81de09b65c6dbf00c9b7f6053c73b5b16c8fadba"},"win32-x64":{artifact:"godd-native-x86_64-pc-windows-msvc.exe",targetTriple:"x86_64-pc-windows-msvc",bytes:13430272,sha256:"011e5e5f16903d8d992e2198af3e1af3f54a7c40703c67f16d41a5dfb1da5dd5"}}};var j="3.9.0";var ee=require("node:crypto"),h=require("node:fs"),T=require("node:path"),pe=require("node:os"),me=require("node:child_process");var W=require("node:child_process");var V="advisory";var Pe=Object.freeze(["handshake","show","--json"]),Le=5e3,K=65536,Me=64,J=Object.freeze({1:1}),N=/^[0-9a-f]{64}$/,ce=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,ke=/^(?:<default>|[a-z0-9]+(?:-[a-z0-9]+)*|--[a-z0-9]+(?:-[a-z0-9]+)*|-[a-z0-9])$/,Y=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)*$/,$=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function q(){return"c88a5de8fb1de32498ac497544554cb11c4c44b4c44cf7b9c135567a4ba1bc86"}var He=Symbol("AdmittedLaunch"),F=Symbol("AuthorizedNativeLaunch");function R(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function M(t,e){return Object.keys(t).length===e.length&&e.every(n=>Object.hasOwn(t,n))}function k(t,e){return e.every(r=>Object.hasOwn(t,r))}function ie(t,e){if(!Array.isArray(t)||t.length===0)return!1;let r;for(let n of t){if(typeof n!="string"||!e.test(n)||r!==void 0&&r>=n)return!1;r=n}return!0}function xe(t){if(!Array.isArray(t)||t.length===0)return!1;let e=0;for(let r of t){if(!le(r)||r===0||r<=e)return!1;e=r}return!0}function ae(t){return typeof t=="string"&&t.length>0&&!/[\u0000-\u001f\u007f]/.test(t)}function le(t){return typeof t=="number"&&Number.isSafeInteger(t)&&t>=0}function G(t){return le(t)&&t<=65535}function Ue(t){if(!R(t)||Object.keys(t).length===0)return!1;for(let e of Object.values(t))if(!R(e)||typeof e.targetTriple!="string"||!$.test(e.targetTriple))return!1;return!0}function Ge(t,e){let r=Array.from(t,a=>a.codePointAt(0)),n=Array.from(e,a=>a.codePointAt(0)),o=Math.min(r.length,n.length);for(let a=0;a<o;a+=1)if(r[a]!==n[a])return r[a]-n[a];return r.length-n.length}function X(t,e,r,n){if(!R(t)||t.schemaVersion!==3)return null;let o=t.handshakeProtocol;if(!R(o)||!M(o,["supportedProtocolMajors","minimumProtocolMinorByMajor"]))return null;let a=o.supportedProtocolMajors,i=o.minimumProtocolMinorByMajor;if(!xe(a)||a.some(f=>!G(f))||a.some(f=>!Object.hasOwn(J,f))||!R(i))return null;let c=a.map(String),s=Object.keys(i);if(s.length!==c.length||s.some(f=>!c.includes(f)))return null;let _={};for(let f of a){let g=i[String(f)];if(!G(g))return null;_[f]=g}let u=t.capabilities,l=t.routedCommands,d=t.routedCommandEntryDigests;if(!ie(u,ce)||!ie(l,/^[a-z0-9]+(?:-[a-z0-9]+)*$/)||l.includes("<default>")||!R(d))return null;let E=Object.keys(d);if(E.length!==l.length||E.some(f=>!l.includes(f)))return null;let m={};for(let f of l){let g=d[f];if(typeof g!="string"||!N.test(g))return null;m[f]=g}if(typeof t.capabilityCatalogDigest!="string"||!N.test(t.capabilityCatalogDigest)||!N.test(n.manifestDigest??"")||!Y.test(n.packageVersion))return null;let O=t.targets;if(!Ue(O))return null;let b=O[`${e}-${r}`];return!b||typeof b.targetTriple!="string"||!$.test(b.targetTriple)?null:{supportedProtocolMajors:[...a],minimumProtocolMinorByMajor:_,expectedCapabilityIds:[...u],expectedTargetTriple:b.targetTriple,routedCommandNames:[...l],expectedRoutedCommandEntryDigests:m,expectedCapabilityCatalogDigest:t.capabilityCatalogDigest,packageVersion:n.packageVersion,manifestDigest:n.manifestDigest}}function Be(t){let e=0,r=()=>{if(t[e]!=='"')return null;let o=e;for(e+=1;e<t.length&&t[e]!=='"';){if(t.charCodeAt(e)<32)return null;if(t[e]==="\\"){e+=1;let i=t[e];if(i==='"'||i==="\\"||i==="b"||i==="f"||i==="n"||i==="r"||i==="t"){e+=1;continue}if(i!=="u")return null;let c=t.slice(e+1,e+5);if(!/^[0-9a-f]{4}$/.test(c))return null;let s=Number.parseInt(c,16);if(s>31||[8,9,10,12,13].includes(s))return null;e+=5;continue}e+=1}if(e>=t.length)return null;e+=1;try{return JSON.parse(t.slice(o,e))}catch{return null}},n=(o=0)=>{if(o>Me)return!1;let a=t[e];if(a==='"')return r()!==null;if(a==="{"){if(e+=1,t[e]==="}")return e+=1,!0;let c;for(;e<t.length;){let s=r();if(s===null||c!==void 0&&Ge(c,s)>=0||t[e]!==":"||(c=s,e+=1,!n(o+1)))return!1;if(t[e]==="}")return e+=1,!0;if(t[e]!==",")return!1;e+=1}return!1}if(a==="["){if(e+=1,t[e]==="]")return e+=1,!0;for(;e<t.length;){if(!n(o+1))return!1;if(t[e]==="]")return e+=1,!0;if(t[e]!==",")return!1;e+=1}return!1}if(a==="t"&&t.slice(e,e+4)==="true")return e+=4,!0;if(a==="f"&&t.slice(e,e+5)==="false")return e+=5,!0;if(a==="n"&&t.slice(e,e+4)==="null")return e+=4,!0;let i=e;if(t[e]==="-"&&(e+=1),t[e]==="0"){if(e+=1,/[0-9]/.test(t[e]??""))return!1}else{if(!/[1-9]/.test(t[e]??""))return!1;for(e+=1;/[0-9]/.test(t[e]??"");)e+=1}return e>i&&t.slice(i,e)!=="-0"&&!/[.eE]/.test(t[e]??"")};return n()?e===t.length:!1}function z(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function se(t,e){let r;for(let n of t){if(!e.test(n)||r!==void 0&&r>=n)return!1;r=n}return!0}function je(t){return!R(t)||!k(t,["major","minor"])||!G(t.major)||!G(t.minor)?null:{major:t.major,minor:t.minor}}function Ve(t){if(t.length>=3&&t[0]===239&&t[1]===187&&t[2]===191)return{status:"malformed"};let e;try{e=new TextDecoder("utf-8",{fatal:!0}).decode(t)}catch{return{status:"malformed"}}if(!e.endsWith(`
|
|
2
2
|
`)||e.endsWith(`
|
|
3
3
|
|
|
4
|
-
`)||e.includes("\r"))return{status:"malformed"};let
|
|
5
|
-
`}var ue=U.targets;function me(t,e,n){try{let r=ue[`${e}-${n}`];return!r||(0,C.statSync)(t).size!==r.bytes?!1:(0,ee.createHash)("sha256").update((0,C.readFileSync)(t)).digest("hex")===r.sha256}catch{return!1}}function pe(t,e,n,r=ue){let o;try{let a=r[`${e}-${n}`];if(!a)return null;let i=(0,C.readFileSync)(t);if(i.length!==a.bytes||(0,ee.createHash)("sha256").update(i).digest("hex")!==a.sha256)return null;o=(0,C.mkdtempSync)((0,D.join)((0,de.tmpdir)(),"godd-native-"));let l=(0,D.join)(o,`godd-native${(0,D.extname)(t)}`);return(0,C.writeFileSync)(l,i,{mode:448}),{path:l,cleanup:()=>{try{(0,C.rmSync)(o,{recursive:!0,force:!0})}catch{}}}}catch{if(o)try{(0,C.rmSync)(o,{recursive:!0,force:!0})}catch{}return null}}var fe=require("node:crypto"),Ke=/^sha256:[0-9a-f]{64}$/u,ze=1024,We=Object.freeze({owner:"nextjs-server",clock:"monotonic-milliseconds",trigger:"timer-and-after-lifecycle-event"});function h(t,e,n,r=0){return Object.freeze({action:t,disposition:e,max_retries:r,on_retry_exhausted:r===1?"REJECT":null,reason:n})}var I=Object.freeze({CACHE_HIT:h("USE_CACHED_MODULE","CONTINUE",null),CACHE_MISS_COMPILED:h("PUBLISH_COMPILED_MODULE","CONTINUE",null),SINGLE_FLIGHT_JOINED:h("WAIT_FOR_SINGLE_FLIGHT","CONTINUE",null),TOO_LARGE_FOR_CACHE:h("COMPILE_WITHOUT_CACHE","CONTINUE","ENTRY_LIMIT_EXCEEDED"),BUDGET_OVERFLOW:h("REJECT_CACHE_OPERATION","REJECT","ARITHMETIC_OVERFLOW"),BUDGET_UNRECLAIMABLE:h("RETRY_AFTER_RECONCILE","RETRY","RECLAIMABLE_ENTRIES_INSUFFICIENT",1),BUDGET_EVICTED_LRU:h("DROP_OPAQUE_HANDLE","CONTINUE","LRU_PRESSURE_EVICTION"),SUPERSEDED_BY_NEW_SOURCE:h("DROP_OPAQUE_HANDLE","CONTINUE","SOURCE_GENERATION_SUPERSEDED"),DECK_TOMBSTONED:h("DROP_OPAQUE_HANDLE","CONTINUE","DECK_LIFECYCLE_ENDED"),STALE_GENERATION_REJECTED:h("DISCARD_COMPILED_MODULE","CONTINUE","GENERATION_FENCE_CHANGED"),PREVIEW_LEASE_EXPIRED:h("DROP_OPAQUE_HANDLE","CONTINUE","PREVIEW_LEASE_ENDED"),AGE_EXPIRED:h("DROP_OPAQUE_HANDLE","CONTINUE","MAXIMUM_AGE_EXCEEDED"),IDLE_EXPIRED:h("DROP_OPAQUE_HANDLE","CONTINUE","MAXIMUM_IDLE_EXCEEDED"),RESERVATION_EXPIRED:h("DISCARD_COMPILED_MODULE","CONTINUE","RESERVATION_DEADLINE_EXCEEDED"),COMPILE_FAILED_ROLLED_BACK:h("RELEASE_FAILED_COMPILE","CONTINUE","COMPILE_DID_NOT_COMPLETE"),RECONCILE_CLOCK_REGRESSION:h("REJECT_CACHE_OPERATION","REJECT","RECONCILE_CLOCK_REGRESSED")});function w(t,e){if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(`${e} must be an object`);return t}function S(t,e,n){let r=Object.keys(t).sort(),o=[...e].sort();if(r.length!==o.length||r.some((a,i)=>a!==o[i]))throw new TypeError(`${n} has an invalid field set`)}function N(t){return typeof t=="number"&&Number.isSafeInteger(t)&&t>=0}function H(t){return N(t)&&t>0}function x(t){return typeof t=="string"&&Ke.test(t)}function _e(t){return t==="unversioned"||x(t)}function te(t){return typeof t=="string"&&t.length>0&&Buffer.byteLength(t,"utf8")<=ze&&!new RegExp("\\p{Cc}","u").test(t)}function Je(t){let e=w(t,"compile cache manifest");if(S(e,["workspace_id","deck_id","deck_generation","slide_filename","canonical_source_digest","mdx_policy_generation","compiler_generation","runtime_abi"],"compile cache manifest"),!te(e.workspace_id)||!te(e.deck_id)||!te(e.slide_filename)||!H(e.deck_generation)||!x(e.canonical_source_digest)||!_e(e.mdx_policy_generation)||!x(e.compiler_generation)||e.runtime_abi!=="amaroad")throw new TypeError("compile cache manifest is invalid");return e}function Ye(t){let e=w(t,"compile cache register request");if(S(e,["schema_version","operation","manifest","source_bytes","declared_max_compiled_bytes","now_ms"],"compile cache register request"),Je(e.manifest),e.schema_version!==1||e.operation!=="register"||!N(e.source_bytes)||!H(e.declared_max_compiled_bytes)||!N(e.now_ms))throw new TypeError("compile cache register request is invalid");return e}function Ee(t){let e=w(t,"compile cache project input");S(e,["schema_version","manifest","canonical_source","declared_max_compiled_bytes","now_ms"],"compile cache project input");let n=w(e.manifest,"compile cache project manifest");if(S(n,["workspace_id","deck_id","deck_generation","slide_filename","mdx_policy_generation","compiler_generation","runtime_abi"],"compile cache project manifest"),typeof e.canonical_source!="string")throw new TypeError("compile cache canonical source is invalid");let r=Buffer.byteLength(e.canonical_source,"utf8"),o={schema_version:1,operation:"register",manifest:{...n,canonical_source_digest:`sha256:${(0,fe.createHash)("sha256").update(e.canonical_source,"utf8").digest("hex")}`},source_bytes:r,declared_max_compiled_bytes:e.declared_max_compiled_bytes,now_ms:e.now_ms};return Ye(o)}function he(t){let e=w(t,"compile cache time budget");if(S(e,["age_ms","idle_ms","reservation_ttl_ms"],"compile cache time budget"),!H(e.age_ms)||!H(e.idle_ms)||!H(e.reservation_ttl_ms))throw new TypeError("compile cache time budget is invalid");return Object.freeze({...We,interval_ms:Math.min(e.age_ms,e.idle_ms,e.reservation_ttl_ms)})}function $e(t){if(typeof t!="string"||!Object.hasOwn(I,t))throw new TypeError("compile cache receipt outcome is unsupported");let e=t;return[e,I[e]]}function qe(t){let e=w(t,"compile cache receipt");S(e,["schema_version","canonical_source_digest","deck_generation","mdx_policy_generation","compiler_generation","key_bytes","source_bytes","compiled_bytes","compiled_bytes_measured","outcome","reason"],"compile cache receipt");let[,n]=$e(e.outcome);if(e.schema_version!==1||!x(e.canonical_source_digest)||!N(e.deck_generation)||!_e(e.mdx_policy_generation)||!x(e.compiler_generation)||!N(e.key_bytes)||!N(e.source_bytes)||!N(e.compiled_bytes)||typeof e.compiled_bytes_measured!="boolean")throw new TypeError("compile cache receipt is invalid");if(e.reason!==n.reason)throw new TypeError("compile cache receipt reason does not match outcome");return e}function ye(t){let e=qe(t);return Object.freeze({action:I[e.outcome].action,disposition:I[e.outcome].disposition,max_retries:I[e.outcome].max_retries,on_retry_exhausted:I[e.outcome].on_retry_exhausted,outcome:e.outcome})}var u=class extends Error{code;handshakeReasonCode;constructor(e,n){super(e),this.name="CompileCacheRuntimeError",this.code=e,this.handshakeReasonCode=n??null}},v=class extends Error{outcome;action;disposition;retriesExhausted;constructor(e,n,r,o){super(e),this.name="CompileCacheRejectedError",this.outcome=e,this.action=n,this.disposition=r,this.retriesExhausted=o}},P=class{outcome;action;constructor(e,n){this.outcome=e,this.action=n}},Re="";function Xe(t){return[t.workspace_id,t.deck_id,String(t.deck_generation),t.slide_filename,t.canonical_source_digest,t.mdx_policy_generation,t.compiler_generation,t.runtime_abi].join(Re)}function Ce(t){return[t.canonical_source_digest,String(t.deck_generation),t.mdx_policy_generation,t.compiler_generation].join(Re)}var ne=class{#s;#y;#c;#u;#m;#o=new Map;#i=new Map;#n=new Map;#p;#r=null;#l=!1;#f=0;#_=null;#d=!1;constructor(e){this.#s=e.evaluator,this.#y=e.budget,this.#c=e.compile,this.#u=e.now,this.#m=e.onReconcileError??(()=>{}),this.#p=he({age_ms:e.budget.age_ms,idle_ms:e.budget.idle_ms,reservation_ttl_ms:e.budget.reservation_ttl_ms})}get reconcilePolicy(){return this.#p}get retainedModuleCount(){return this.#o.size}get reconcileTimerStarted(){return this.#r!==null}startReconcileTimer(){if(this.#r!==null)throw new u("RECONCILE_TIMER_ALREADY_OWNED");this.#r=setInterval(()=>{this.#l||(this.#l=!0,this.reconcile().catch(e=>{this.#m(e)}).finally(()=>{this.#l=!1}))},this.#p.interval_ms),this.#r.unref?.()}stopReconcileTimer(){if(this.#r===null)throw new u("RECONCILE_TIMER_NOT_OWNED");clearInterval(this.#r),this.#r=null,this.#l=!1}async close(){this.#r!==null&&this.stopReconcileTimer(),this.#d=!0,this.#o.clear(),this.#i.clear(),this.#n.clear(),await this.#s.close()}async compile(e){await this.#h();let n=await this.#C(e,!1);if(!(n instanceof P))return n;await this.reconcile();let r=await this.#C(e,!0);if(r instanceof P)throw new v(r.outcome,r.action,"RETRY",!0);return r}async reconcile(){await this.#h();let e=await this.#a({schema_version:1,command:"reconcile",now_ms:this.#u()}),n=e.action==="REJECTED",r=this.#t(e.receipts,n);if(n)throw r===null?new u("EVALUATOR_PROTOCOL"):new v(r.outcome,r.action,r.disposition,!1);return e.receipts}async onDeckRemoved(e,n){await this.#E({schema_version:1,command:"tombstone_deck",workspace_id:e,deck_id:n})}async onPreviewLeaseExpired(e,n){await this.#E({schema_version:1,command:"expire_preview_lease",workspace_id:e,deck_id:n})}async onGenerationUpdated(e){await this.#E({schema_version:1,command:"fence_generations",...e})}async#E(e){await this.#h();let n=await this.#a(e);this.#t(n.receipts,!1),await this.reconcile()}async#C(e,n){let r=Ee({schema_version:1,manifest:e.manifest,canonical_source:e.canonical_source,declared_max_compiled_bytes:e.declared_max_compiled_bytes,now_ms:this.#u()}),{operation:o,...a}=r,i=await this.#a({command:o,...a}),l=Xe(r.manifest),s=Ce(r.manifest);switch(i.action){case"HIT":return this.#O(e,i,l,s,n);case"JOINED":return this.#b(i,l,n);case"COMPILE_REQUESTED":return this.#A(e,i,l,s,n);case"REJECTED":return this.#T(e,i,n);default:try{this.#t(i.receipts,!1)}finally{await this.#e(i.lease)}throw new u("EVALUATOR_PROTOCOL")}}async#O(e,n,r,o,a){try{let i=this.#g(n,"USE_CACHED_MODULE"),l=this.#o.get(r),s=!0;if(l===void 0){let f=this.#f,m=await this.#c(e);l=m.module,s=!1;let c=n.receipts[n.receipts.length-1];if(m.compiled_bytes!==c.compiled_bytes||this.#f!==f)return{module:l,outcome:i.outcome,action:i.action,served_from_cache:!1,retained:!1,retried:a};this.#R(r,o,l)}return{module:l,outcome:i.outcome,action:i.action,served_from_cache:s,retained:!0,retried:a}}finally{await this.#e(n.lease)}}async#b(e,n,r){try{let o=this.#g(e,"WAIT_FOR_SINGLE_FLIGHT"),a=this.#n.get(n);if(a===void 0)throw new u("SINGLE_FLIGHT_MISSING");let i=await a;return{module:i.module,outcome:o.outcome,action:o.action,served_from_cache:!0,retained:i.retained,retried:r}}finally{await this.#e(e.lease)}}async#A(e,n,r,o,a){try{this.#t(n.receipts,!1)}catch(p){throw await this.#e(n.lease),p}if(n.compile_owner!==!0||n.lease===null)throw await this.#e(n.lease),new u("EVALUATOR_PROTOCOL");let i=n.lease,l,s,f=new Promise((p,O)=>{l=p,s=O});f.catch(()=>{}),this.#n.set(r,f);let m;try{m=await this.#c(e)}catch(p){s?.(p);try{let O=await this.#a({schema_version:1,command:"rollback",lease:i});this.#t(O.receipts,!1)}catch{}throw this.#n.delete(r),p}let c;try{c=await this.#a({schema_version:1,command:"commit",lease:i,compiled_bytes:m.compiled_bytes})}catch(p){throw s?.(p),await this.#e(i),this.#n.delete(r),p}let d;try{d=this.#t(c.receipts,!0)}catch(p){throw s?.(p),this.#n.delete(r),await this.#e(i),p}if(this.#n.delete(r),c.action==="NOOP"||d===null){let p=new u("COMMIT_NOT_ACCEPTED");throw s?.(p),await this.#e(i),p}if(d.action==="PUBLISH_COMPILED_MODULE")return this.#R(r,o,m.module),l?.({module:m.module,retained:!0}),await this.#e(i),{module:m.module,outcome:d.outcome,action:d.action,served_from_cache:!1,retained:!0,retried:a};if(d.action==="COMPILE_WITHOUT_CACHE")return l?.({module:m.module,retained:!1}),await this.#e(i),{module:m.module,outcome:d.outcome,action:d.action,served_from_cache:!1,retained:!1,retried:a};let E=new v(d.outcome,d.action,d.disposition,!1);if(s?.(E),await this.#e(i),d.disposition==="RETRY")return new P(d.outcome,d.action);throw E}async#T(e,n,r){let o=this.#t(n.receipts,!0);if(o===null)throw new u("EVALUATOR_PROTOCOL");if(o.disposition==="RETRY")return new P(o.outcome,o.action);if(o.action==="COMPILE_WITHOUT_CACHE")return{module:(await this.#c(e)).module,outcome:o.outcome,action:o.action,served_from_cache:!1,retained:!1,retried:r};throw new v(o.outcome,o.action,o.disposition,!1)}#t(e,n){let r=null;for(let o=0;o<e.length;o+=1){let a=ye(e[o]);o===e.length-1&&(r=a),e[o].compiled_bytes_measured&&(a.action==="DROP_OPAQUE_HANDLE"||a.action==="DISCARD_COMPILED_MODULE"||a.action==="RELEASE_FAILED_COMPILE")&&(this.#f+=1,this.#D(Ce(e[o])))}return n?r:null}#g(e,n){let r=this.#t(e.receipts,!0);if(r===null||r.action!==n)throw new u("EVALUATOR_PROTOCOL");return r}#R(e,n,r){this.#o.set(e,r);let o=this.#i.get(n);if(o===void 0){this.#i.set(n,new Set([e]));return}o.add(e)}#D(e){let n=this.#i.get(e);if(n!==void 0){for(let r of n)this.#o.delete(r);this.#i.delete(e)}}async#e(e){if(e!==null)try{let n=await this.#a({schema_version:1,command:"release",lease:e});this.#t(n.receipts,!1)}catch(n){this.#m(n)}}async#h(){if(this.#d)throw new u("EVALUATOR_CLOSED");this.#_??=(async()=>{if((await this.#s.send({schema_version:1,command:"configure",budget:this.#y})).action!=="CONFIGURED")throw new u("EVALUATOR_PROTOCOL")})().catch(e=>{throw this.#_=null,e}),await this.#_}async#a(e){if(this.#d)throw new u("EVALUATOR_CLOSED");try{return await this.#s.send(e)}catch(n){throw n instanceof u&&n.code==="EVALUATOR_CLOSED"&&(this.#d=!0,this.#o.clear(),this.#i.clear(),this.#n.clear()),n}}};function Qe(t){if(t===null||typeof t!="object"||Array.isArray(t))throw new u("EVALUATOR_PROTOCOL");let e=t;if(e.schema_version!==1||typeof e.action!="string")throw new u("EVALUATOR_PROTOCOL");if(!Array.isArray(e.receipts))throw new u("EVALUATOR_PROTOCOL");if(e.lease!==null&&(!Number.isSafeInteger(e.lease)||e.lease<1))throw new u("EVALUATOR_PROTOCOL");return t}function Oe(t){let e=[],n="",r=null;t.readable.setEncoding?.("utf8"),t.readable.on("data",a=>{n+=typeof a=="string"?a:a.toString("utf8");let i=n.indexOf(`
|
|
6
|
-
`);for(;i>=0;){let
|
|
7
|
-
`),
|
|
8
|
-
`)}catch(
|
|
4
|
+
`)||e.includes("\r"))return{status:"malformed"};let r=e.slice(0,-1);if(!Be(r))return{status:"malformed"};let n;try{n=JSON.parse(r)}catch{return{status:"malformed"}}if(!R(n))return{status:"malformed"};let o=je(n.protocol_version);if(!o)return{status:"malformed"};if(o.major!==1)return{status:"valid",protocolVersion:o};let a=["build","capability_catalog_digest","capability_ids","protocol_version","surface_entries","surface_fingerprint","target"],i=["build","capability_catalog_digest","capability_ids","protocol_version","routed_commands","surface_entries","surface_fingerprint","surface_projection_digest","target"],c=J[o.major],s=c!==void 0&&o.minor>c,_=o.minor>=1?i:a;if(!(s?k(n,_):M(n,_)))return{status:"malformed"};let l=n.protocol_version;if(!R(l)||!(s?k(l,["major","minor"]):M(l,["major","minor"])))return{status:"malformed"};let d=n.build,E=n.target,m=n.surface_entries,O=n.capability_ids,b=n.routed_commands;return typeof n.surface_fingerprint=="string"&&N.test(n.surface_fingerprint)&&typeof n.capability_catalog_digest=="string"&&N.test(n.capability_catalog_digest)&&z(O)&&se(O,ce)&&R(m)&&Object.keys(m).length>0&&Object.entries(m).every(([g,L])=>ke.test(g)&&typeof L=="string"&&N.test(L))&&Object.hasOwn(m,"<default>")&&R(E)&&(s?k(E,["arch","os","target_triple"]):M(E,["arch","os","target_triple"]))&&typeof E.target_triple=="string"&&$.test(E.target_triple)&&ae(E.os)&&ae(E.arch)&&R(d)&&(s?k(d,["crate_version"]):M(d,["crate_version"]))&&typeof d.crate_version=="string"&&Y.test(d.crate_version)?o.minor>=1&&(!z(b)||!se(b,/^[a-z0-9]+(?:-[a-z0-9]+)*$/)||typeof n.surface_projection_digest!="string"||!N.test(n.surface_projection_digest))?{status:"malformed"}:o.minor>=1&&z(b)&&!b.every(g=>Object.hasOwn(m,g))?{status:"malformed"}:{status:"valid",document:n,protocolVersion:o}:{status:"malformed"}}function Ke(t){return Object.fromEntries(Object.entries(t).filter(([e])=>!/^GODD_/i.test(e)))}function de(t){return t?t.code:void 0}function Fe(t){let e=de(t);return e==="ENOBUFS"||e==="ERR_CHILD_PROCESS_STDIO_MAXBUFFER"}function ue(t,e,r,n,o,a,i=[]){let c=e?.packageVersion??t.packageVersion,s=e?.manifestDigest??t.manifestDigest??"";return{packageVersion:Y.test(c)?c:"",manifestDigest:N.test(s)?s:"",observedProtocolVersion:a??o?.protocol_version??null,observedSurfaceFingerprint:o?.surface_fingerprint??null,observedCapabilityCatalogDigest:o?.capability_catalog_digest??null,reasonCode:n,advisories:i,digestVerifiedPath:r}}function C(t,e,r,n,o,a){return{verdict:{kind:"Rejected",receipt:ue(t,e,r,n,o,a)},admittedLaunch:null}}function ze(t,e,r,n,o=W.spawnSync,a=process.env){if(!e)return C(r,null,n,"HSHAKE_EXPECTATION_ABSENT");let i;try{i=o(t,Pe,{encoding:null,timeout:Le,killSignal:"SIGKILL",maxBuffer:K,windowsHide:!0,stdio:["ignore","pipe","pipe"],env:Ke(a)})}catch{return C(r,e,n,"HSHAKE_PROBE_SPAWN_FAILED")}if(de(i.error)==="ETIMEDOUT")return C(r,e,n,"HSHAKE_PROBE_TIMEOUT");let s=i.stdout??Buffer.alloc(0),_=i.stderr??Buffer.alloc(0);if(Fe(i.error)){let A=_.length>0&&s.length<=K?"HSHAKE_DOCUMENT_MALFORMED":"HSHAKE_DOCUMENT_OVERSIZE";return C(r,e,n,A)}if(i.error)return C(r,e,n,"HSHAKE_PROBE_SPAWN_FAILED");if(i.status!==0||s.length===0)return C(r,e,n,"HSHAKE_DOCUMENT_ABSENT");if(s.length>K)return C(r,e,n,"HSHAKE_DOCUMENT_OVERSIZE");if(_.length>0)return C(r,e,n,"HSHAKE_DOCUMENT_MALFORMED");let u=Ve(s);if(u.status!=="valid"||!u.protocolVersion)return C(r,e,n,"HSHAKE_DOCUMENT_MALFORMED");let l=u.protocolVersion;if(!e.supportedProtocolMajors.includes(l.major))return C(r,e,n,"HSHAKE_PROTOCOL_MAJOR_UNSUPPORTED",void 0,l);let d=u.document;if(!d)return C(r,e,n,"HSHAKE_DOCUMENT_MALFORMED",void 0,l);let E=e.minimumProtocolMinorByMajor[l.major];if(E===void 0||l.minor<E)return C(r,e,n,"HSHAKE_PROTOCOL_MINOR_TOO_OLD",d,l);if(d.target.target_triple!==e.expectedTargetTriple)return C(r,e,n,"HSHAKE_TARGET_MISMATCH",d,l);let m=new Set(d.capability_ids);if(!e.expectedCapabilityIds.every(A=>m.has(A)))return C(r,e,n,"HSHAKE_CAPABILITY_MISSING",d,l);let O=new Set(d.routed_commands??[]);if(e.routedCommandNames.some(A=>!O.has(A)||d.surface_entries[A]!==e.expectedRoutedCommandEntryDigests[A]))return C(r,e,n,n?"HSHAKE_MANIFEST_SELF_INCONSISTENT":"HSHAKE_SURFACE_PROJECTION_MISMATCH",d,l);let f=[];d.capability_catalog_digest!==e.expectedCapabilityCatalogDigest&&f.push("HSHAKE_CAPABILITY_SURPLUS");let g=new Set(e.routedCommandNames);Object.keys(d.surface_entries).some(A=>A!=="<default>"&&!g.has(A))&&f.push("HSHAKE_SURFACE_SURPLUS");let L=J[l.major];return L!==void 0&&l.minor>L&&f.push("HSHAKE_PROTOCOL_MINOR_AHEAD"),{verdict:{kind:"Admitted",receipt:ue(r,e,n,"HSHAKE_ADMITTED",d,l,f)},admittedLaunch:{[He]:!0,binaryPath:t}}}function Q(t,e,r,n,o=W.spawnSync,a=process.env){if(V==="off")return{kind:"Allowed",launch:{[F]:!0,binaryPath:t},advisoryReceipt:null};let i=ze(t,e,r,n,o,a);return i.admittedLaunch?{kind:"Allowed",launch:{[F]:!0,binaryPath:i.admittedLaunch.binaryPath},advisoryReceipt:null}:V==="advisory"?{kind:"Allowed",launch:{[F]:!0,binaryPath:t},advisoryReceipt:i.verdict.receipt}:{kind:"Blocked",receipt:i.verdict.receipt}}function Z(t){return`[GoDD MCP \u03B1] Native handshake advisory: ${JSON.stringify(t)}
|
|
5
|
+
`}var te=U.targets;function Je(t,e){return te[`${t}-${e}`]?.artifact??null}function Ye(t){if(t.overridePath)return t.overridePath;let e=Je(t.platform,t.arch);if(!e||!t.entryPath)return null;let r=t.realpath?t.realpath(t.entryPath):(0,h.existsSync)(t.entryPath)?(0,h.realpathSync)(t.entryPath):t.entryPath,n=(0,T.resolve)((0,T.dirname)(r),"..");return(0,T.join)(n,"assets","native",e)}function _e(t,e,r){try{let n=te[`${e}-${r}`];return!n||(0,h.statSync)(t).size!==n.bytes?!1:(0,ee.createHash)("sha256").update((0,h.readFileSync)(t)).digest("hex")===n.sha256}catch{return!1}}function fe(t,e,r,n){let o=t.kind==="Blocked"?t.receipt:t.advisoryReceipt;if(o)try{if(r){r(o,e);return}if(!!0||process.env.GODD_NATIVE_HANDSHAKE_REPORTING!=="railway-aggregate-v2")return;let a=n?.path??Ye({platform:process.platform,arch:process.arch,entryPath:process.argv[1]});if(!a)return;let i=re(a,e,n?.arch??process.arch);if(!i)return;try{(0,me.spawnSync)(i.path,["anonymous-handshake-report"],{input:JSON.stringify(o),env:{...process.platform==="win32"&&process.env.SystemRoot?{SystemRoot:process.env.SystemRoot}:{},GODD_NATIVE_HANDSHAKE_REPORTING:"railway-aggregate-v2"},timeout:1500,windowsHide:!0,shell:!1,stdio:["pipe","ignore","ignore"]})}finally{i.cleanup()}}catch{}}function re(t,e,r,n=te){let o;try{let a=n[`${e}-${r}`];if(!a)return null;let i=(0,h.readFileSync)(t);if(i.length!==a.bytes||(0,ee.createHash)("sha256").update(i).digest("hex")!==a.sha256)return null;o=(0,h.mkdtempSync)((0,T.join)((0,pe.tmpdir)(),"godd-native-"));let c=(0,T.join)(o,`godd-native${(0,T.extname)(t)}`);return(0,h.writeFileSync)(c,i,{mode:448}),{path:c,cleanup:()=>{try{(0,h.rmSync)(o,{recursive:!0,force:!0})}catch{}}}}catch{if(o)try{(0,h.rmSync)(o,{recursive:!0,force:!0})}catch{}return null}}var Ee=require("node:crypto"),$e=/^sha256:[0-9a-f]{64}$/u,qe=1024,Xe=Object.freeze({owner:"nextjs-server",clock:"monotonic-milliseconds",trigger:"timer-and-after-lifecycle-event"});function y(t,e,r,n=0){return Object.freeze({action:t,disposition:e,max_retries:n,on_retry_exhausted:n===1?"REJECT":null,reason:r})}var I=Object.freeze({CACHE_HIT:y("USE_CACHED_MODULE","CONTINUE",null),CACHE_MISS_COMPILED:y("PUBLISH_COMPILED_MODULE","CONTINUE",null),SINGLE_FLIGHT_JOINED:y("WAIT_FOR_SINGLE_FLIGHT","CONTINUE",null),TOO_LARGE_FOR_CACHE:y("COMPILE_WITHOUT_CACHE","CONTINUE","ENTRY_LIMIT_EXCEEDED"),BUDGET_OVERFLOW:y("REJECT_CACHE_OPERATION","REJECT","ARITHMETIC_OVERFLOW"),BUDGET_UNRECLAIMABLE:y("RETRY_AFTER_RECONCILE","RETRY","RECLAIMABLE_ENTRIES_INSUFFICIENT",1),BUDGET_EVICTED_LRU:y("DROP_OPAQUE_HANDLE","CONTINUE","LRU_PRESSURE_EVICTION"),SUPERSEDED_BY_NEW_SOURCE:y("DROP_OPAQUE_HANDLE","CONTINUE","SOURCE_GENERATION_SUPERSEDED"),DECK_TOMBSTONED:y("DROP_OPAQUE_HANDLE","CONTINUE","DECK_LIFECYCLE_ENDED"),STALE_GENERATION_REJECTED:y("DISCARD_COMPILED_MODULE","CONTINUE","GENERATION_FENCE_CHANGED"),PREVIEW_LEASE_EXPIRED:y("DROP_OPAQUE_HANDLE","CONTINUE","PREVIEW_LEASE_ENDED"),AGE_EXPIRED:y("DROP_OPAQUE_HANDLE","CONTINUE","MAXIMUM_AGE_EXCEEDED"),IDLE_EXPIRED:y("DROP_OPAQUE_HANDLE","CONTINUE","MAXIMUM_IDLE_EXCEEDED"),RESERVATION_EXPIRED:y("DISCARD_COMPILED_MODULE","CONTINUE","RESERVATION_DEADLINE_EXCEEDED"),COMPILE_FAILED_ROLLED_BACK:y("RELEASE_FAILED_COMPILE","CONTINUE","COMPILE_DID_NOT_COMPLETE"),RECONCILE_CLOCK_REGRESSION:y("REJECT_CACHE_OPERATION","REJECT","RECONCILE_CLOCK_REGRESSED")});function w(t,e){if(t===null||typeof t!="object"||Array.isArray(t))throw new TypeError(`${e} must be an object`);return t}function S(t,e,r){let n=Object.keys(t).sort(),o=[...e].sort();if(n.length!==o.length||n.some((a,i)=>a!==o[i]))throw new TypeError(`${r} has an invalid field set`)}function D(t){return typeof t=="number"&&Number.isSafeInteger(t)&&t>=0}function H(t){return D(t)&&t>0}function x(t){return typeof t=="string"&&$e.test(t)}function he(t){return t==="unversioned"||x(t)}function ne(t){return typeof t=="string"&&t.length>0&&Buffer.byteLength(t,"utf8")<=qe&&!new RegExp("\\p{Cc}","u").test(t)}function Qe(t){let e=w(t,"compile cache manifest");if(S(e,["workspace_id","deck_id","deck_generation","slide_filename","canonical_source_digest","mdx_policy_generation","compiler_generation","runtime_abi"],"compile cache manifest"),!ne(e.workspace_id)||!ne(e.deck_id)||!ne(e.slide_filename)||!H(e.deck_generation)||!x(e.canonical_source_digest)||!he(e.mdx_policy_generation)||!x(e.compiler_generation)||e.runtime_abi!=="amaroad")throw new TypeError("compile cache manifest is invalid");return e}function Ze(t){let e=w(t,"compile cache register request");if(S(e,["schema_version","operation","manifest","source_bytes","declared_max_compiled_bytes","now_ms"],"compile cache register request"),Qe(e.manifest),e.schema_version!==1||e.operation!=="register"||!D(e.source_bytes)||!H(e.declared_max_compiled_bytes)||!D(e.now_ms))throw new TypeError("compile cache register request is invalid");return e}function ye(t){let e=w(t,"compile cache project input");S(e,["schema_version","manifest","canonical_source","declared_max_compiled_bytes","now_ms"],"compile cache project input");let r=w(e.manifest,"compile cache project manifest");if(S(r,["workspace_id","deck_id","deck_generation","slide_filename","mdx_policy_generation","compiler_generation","runtime_abi"],"compile cache project manifest"),typeof e.canonical_source!="string")throw new TypeError("compile cache canonical source is invalid");let n=Buffer.byteLength(e.canonical_source,"utf8"),o={schema_version:1,operation:"register",manifest:{...r,canonical_source_digest:`sha256:${(0,Ee.createHash)("sha256").update(e.canonical_source,"utf8").digest("hex")}`},source_bytes:n,declared_max_compiled_bytes:e.declared_max_compiled_bytes,now_ms:e.now_ms};return Ze(o)}function Ce(t){let e=w(t,"compile cache time budget");if(S(e,["age_ms","idle_ms","reservation_ttl_ms"],"compile cache time budget"),!H(e.age_ms)||!H(e.idle_ms)||!H(e.reservation_ttl_ms))throw new TypeError("compile cache time budget is invalid");return Object.freeze({...Xe,interval_ms:Math.min(e.age_ms,e.idle_ms,e.reservation_ttl_ms)})}function et(t){if(typeof t!="string"||!Object.hasOwn(I,t))throw new TypeError("compile cache receipt outcome is unsupported");let e=t;return[e,I[e]]}function tt(t){let e=w(t,"compile cache receipt");S(e,["schema_version","canonical_source_digest","deck_generation","mdx_policy_generation","compiler_generation","key_bytes","source_bytes","compiled_bytes","compiled_bytes_measured","outcome","reason"],"compile cache receipt");let[,r]=et(e.outcome);if(e.schema_version!==1||!x(e.canonical_source_digest)||!D(e.deck_generation)||!he(e.mdx_policy_generation)||!x(e.compiler_generation)||!D(e.key_bytes)||!D(e.source_bytes)||!D(e.compiled_bytes)||typeof e.compiled_bytes_measured!="boolean")throw new TypeError("compile cache receipt is invalid");if(e.reason!==r.reason)throw new TypeError("compile cache receipt reason does not match outcome");return e}function ge(t){let e=tt(t);return Object.freeze({action:I[e.outcome].action,disposition:I[e.outcome].disposition,max_retries:I[e.outcome].max_retries,on_retry_exhausted:I[e.outcome].on_retry_exhausted,outcome:e.outcome})}var p=class extends Error{code;handshakeReasonCode;constructor(e,r){super(e),this.name="CompileCacheRuntimeError",this.code=e,this.handshakeReasonCode=r??null}},v=class extends Error{outcome;action;disposition;retriesExhausted;constructor(e,r,n,o){super(e),this.name="CompileCacheRejectedError",this.outcome=e,this.action=r,this.disposition=n,this.retriesExhausted=o}},P=class{outcome;action;constructor(e,r){this.outcome=e,this.action=r}},Ae="";function rt(t){return[t.workspace_id,t.deck_id,String(t.deck_generation),t.slide_filename,t.canonical_source_digest,t.mdx_policy_generation,t.compiler_generation,t.runtime_abi].join(Ae)}function Re(t){return[t.canonical_source_digest,String(t.deck_generation),t.mdx_policy_generation,t.compiler_generation].join(Ae)}var oe=class{#s;#y;#c;#u;#p;#o=new Map;#i=new Map;#r=new Map;#m;#n=null;#l=!1;#_=0;#f=null;#d=!1;constructor(e){this.#s=e.evaluator,this.#y=e.budget,this.#c=e.compile,this.#u=e.now,this.#p=e.onReconcileError??(()=>{}),this.#m=Ce({age_ms:e.budget.age_ms,idle_ms:e.budget.idle_ms,reservation_ttl_ms:e.budget.reservation_ttl_ms})}get reconcilePolicy(){return this.#m}get retainedModuleCount(){return this.#o.size}get reconcileTimerStarted(){return this.#n!==null}startReconcileTimer(){if(this.#n!==null)throw new p("RECONCILE_TIMER_ALREADY_OWNED");this.#n=setInterval(()=>{this.#l||(this.#l=!0,this.reconcile().catch(e=>{this.#p(e)}).finally(()=>{this.#l=!1}))},this.#m.interval_ms),this.#n.unref?.()}stopReconcileTimer(){if(this.#n===null)throw new p("RECONCILE_TIMER_NOT_OWNED");clearInterval(this.#n),this.#n=null,this.#l=!1}async close(){this.#n!==null&&this.stopReconcileTimer(),this.#d=!0,this.#o.clear(),this.#i.clear(),this.#r.clear(),await this.#s.close()}async compile(e){await this.#h();let r=await this.#C(e,!1);if(!(r instanceof P))return r;await this.reconcile();let n=await this.#C(e,!0);if(n instanceof P)throw new v(n.outcome,n.action,"RETRY",!0);return n}async reconcile(){await this.#h();let e=await this.#a({schema_version:1,command:"reconcile",now_ms:this.#u()}),r=e.action==="REJECTED",n=this.#t(e.receipts,r);if(r)throw n===null?new p("EVALUATOR_PROTOCOL"):new v(n.outcome,n.action,n.disposition,!1);return e.receipts}async onDeckRemoved(e,r){await this.#E({schema_version:1,command:"tombstone_deck",workspace_id:e,deck_id:r})}async onPreviewLeaseExpired(e,r){await this.#E({schema_version:1,command:"expire_preview_lease",workspace_id:e,deck_id:r})}async onGenerationUpdated(e){await this.#E({schema_version:1,command:"fence_generations",...e})}async#E(e){await this.#h();let r=await this.#a(e);this.#t(r.receipts,!1),await this.reconcile()}async#C(e,r){let n=ye({schema_version:1,manifest:e.manifest,canonical_source:e.canonical_source,declared_max_compiled_bytes:e.declared_max_compiled_bytes,now_ms:this.#u()}),{operation:o,...a}=n,i=await this.#a({command:o,...a}),c=rt(n.manifest),s=Re(n.manifest);switch(i.action){case"HIT":return this.#O(e,i,c,s,r);case"JOINED":return this.#A(i,c,r);case"COMPILE_REQUESTED":return this.#b(e,i,c,s,r);case"REJECTED":return this.#T(e,i,r);default:try{this.#t(i.receipts,!1)}finally{await this.#e(i.lease)}throw new p("EVALUATOR_PROTOCOL")}}async#O(e,r,n,o,a){try{let i=this.#g(r,"USE_CACHED_MODULE"),c=this.#o.get(n),s=!0;if(c===void 0){let _=this.#_,u=await this.#c(e);c=u.module,s=!1;let l=r.receipts[r.receipts.length-1];if(u.compiled_bytes!==l.compiled_bytes||this.#_!==_)return{module:c,outcome:i.outcome,action:i.action,served_from_cache:!1,retained:!1,retried:a};this.#R(n,o,c)}return{module:c,outcome:i.outcome,action:i.action,served_from_cache:s,retained:!0,retried:a}}finally{await this.#e(r.lease)}}async#A(e,r,n){try{let o=this.#g(e,"WAIT_FOR_SINGLE_FLIGHT"),a=this.#r.get(r);if(a===void 0)throw new p("SINGLE_FLIGHT_MISSING");let i=await a;return{module:i.module,outcome:o.outcome,action:o.action,served_from_cache:!0,retained:i.retained,retried:n}}finally{await this.#e(e.lease)}}async#b(e,r,n,o,a){try{this.#t(r.receipts,!1)}catch(m){throw await this.#e(r.lease),m}if(r.compile_owner!==!0||r.lease===null)throw await this.#e(r.lease),new p("EVALUATOR_PROTOCOL");let i=r.lease,c,s,_=new Promise((m,O)=>{c=m,s=O});_.catch(()=>{}),this.#r.set(n,_);let u;try{u=await this.#c(e)}catch(m){s?.(m);try{let O=await this.#a({schema_version:1,command:"rollback",lease:i});this.#t(O.receipts,!1)}catch{}throw this.#r.delete(n),m}let l;try{l=await this.#a({schema_version:1,command:"commit",lease:i,compiled_bytes:u.compiled_bytes})}catch(m){throw s?.(m),await this.#e(i),this.#r.delete(n),m}let d;try{d=this.#t(l.receipts,!0)}catch(m){throw s?.(m),this.#r.delete(n),await this.#e(i),m}if(this.#r.delete(n),l.action==="NOOP"||d===null){let m=new p("COMMIT_NOT_ACCEPTED");throw s?.(m),await this.#e(i),m}if(d.action==="PUBLISH_COMPILED_MODULE")return this.#R(n,o,u.module),c?.({module:u.module,retained:!0}),await this.#e(i),{module:u.module,outcome:d.outcome,action:d.action,served_from_cache:!1,retained:!0,retried:a};if(d.action==="COMPILE_WITHOUT_CACHE")return c?.({module:u.module,retained:!1}),await this.#e(i),{module:u.module,outcome:d.outcome,action:d.action,served_from_cache:!1,retained:!1,retried:a};let E=new v(d.outcome,d.action,d.disposition,!1);if(s?.(E),await this.#e(i),d.disposition==="RETRY")return new P(d.outcome,d.action);throw E}async#T(e,r,n){let o=this.#t(r.receipts,!0);if(o===null)throw new p("EVALUATOR_PROTOCOL");if(o.disposition==="RETRY")return new P(o.outcome,o.action);if(o.action==="COMPILE_WITHOUT_CACHE")return{module:(await this.#c(e)).module,outcome:o.outcome,action:o.action,served_from_cache:!1,retained:!1,retried:n};throw new v(o.outcome,o.action,o.disposition,!1)}#t(e,r){let n=null;for(let o=0;o<e.length;o+=1){let a=ge(e[o]);o===e.length-1&&(n=a),e[o].compiled_bytes_measured&&(a.action==="DROP_OPAQUE_HANDLE"||a.action==="DISCARD_COMPILED_MODULE"||a.action==="RELEASE_FAILED_COMPILE")&&(this.#_+=1,this.#N(Re(e[o])))}return r?n:null}#g(e,r){let n=this.#t(e.receipts,!0);if(n===null||n.action!==r)throw new p("EVALUATOR_PROTOCOL");return n}#R(e,r,n){this.#o.set(e,n);let o=this.#i.get(r);if(o===void 0){this.#i.set(r,new Set([e]));return}o.add(e)}#N(e){let r=this.#i.get(e);if(r!==void 0){for(let n of r)this.#o.delete(n);this.#i.delete(e)}}async#e(e){if(e!==null)try{let r=await this.#a({schema_version:1,command:"release",lease:e});this.#t(r.receipts,!1)}catch(r){this.#p(r)}}async#h(){if(this.#d)throw new p("EVALUATOR_CLOSED");this.#f??=(async()=>{if((await this.#s.send({schema_version:1,command:"configure",budget:this.#y})).action!=="CONFIGURED")throw new p("EVALUATOR_PROTOCOL")})().catch(e=>{throw this.#f=null,e}),await this.#f}async#a(e){if(this.#d)throw new p("EVALUATOR_CLOSED");try{return await this.#s.send(e)}catch(r){throw r instanceof p&&r.code==="EVALUATOR_CLOSED"&&(this.#d=!0,this.#o.clear(),this.#i.clear(),this.#r.clear()),r}}};function nt(t){if(t===null||typeof t!="object"||Array.isArray(t))throw new p("EVALUATOR_PROTOCOL");let e=t;if(e.schema_version!==1||typeof e.action!="string")throw new p("EVALUATOR_PROTOCOL");if(!Array.isArray(e.receipts))throw new p("EVALUATOR_PROTOCOL");if(e.lease!==null&&(!Number.isSafeInteger(e.lease)||e.lease<1))throw new p("EVALUATOR_PROTOCOL");return t}function be(t){let e=[],r="",n=null;t.readable.setEncoding?.("utf8"),t.readable.on("data",a=>{r+=typeof a=="string"?a:a.toString("utf8");let i=r.indexOf(`
|
|
6
|
+
`);for(;i>=0;){let c=r.slice(0,i).replace(/\r$/u,"");if(r=r.slice(i+1),i=r.indexOf(`
|
|
7
|
+
`),c.length===0)continue;let s=e.shift();if(s===void 0){n=new p("EVALUATOR_PROTOCOL");continue}try{s.resolve(nt(JSON.parse(c)))}catch(_){s.reject(_)}}});let o=a=>{n=a;for(let i of e.splice(0,e.length))i.reject(a)};return t.readable.on("end",()=>{o(new p("EVALUATOR_CLOSED"))}),t.readable.on("close",()=>{o(new p("EVALUATOR_CLOSED"))}),t.readable.on("error",()=>{o(new p("EVALUATOR_PROTOCOL"))}),{async send(a){if(n!==null)throw n;return new Promise((i,c)=>{let s={resolve:i,reject:c};e.push(s);try{t.writable.write(`${JSON.stringify(a)}
|
|
8
|
+
`)}catch(_){let u=e.indexOf(s);u>=0&&e.splice(u,1),c(_)}})},async close(){o(new p("EVALUATOR_CLOSED")),await t.close()}}}function ot(t,e,r){try{return(0,Oe.spawn)(t.binaryPath,[...e],{stdio:["pipe","pipe","ignore"],windowsHide:!0})}catch(n){throw r(),n}}function it(t){if(t.args!==void 0&&(!Array.isArray(t.args)||t.args.length!==2||t.args[0]!=="compile-cache"||t.args[1]!=="session"))throw new p("EVALUATOR_PROTOCOL");let e=q(),r={packageVersion:j,...e===void 0?{}:{manifestDigest:e}},n=X(U,process.platform,process.arch,r),o=process.platform,a=process.arch,i=!1;try{i=_e(t.command,o,a)}catch{i=!1}if(!i)throw new p("NATIVE_INTEGRITY_REJECTED");let c=re(t.command,o,a);if(!c)throw new p("NATIVE_INTEGRITY_REJECTED");let s=!1,_=()=>{s||(s=!0,c.cleanup())},u;try{u=Q(c.path,n,r,!0)}catch(E){throw _(),E}if(fe(u,o,void 0,{path:c.path,arch:a}),u.kind==="Blocked")throw _(),new p("NATIVE_HANDSHAKE_REJECTED",u.receipt.reasonCode);u.advisoryReceipt&&process.stderr.write(Z(u.advisoryReceipt));let l=ot(u.launch,t.args??["compile-cache","session"],_);if(l.once("close",_),l.once("error",_),l.stdin===null||l.stdout===null)throw l.stdin?.destroy(),l.stdout?.destroy(),l.kill(),_(),new p("EVALUATOR_PROTOCOL");let d=()=>{l.stdout?.destroy()};return l.on("error",d),l.stdin.on("error",d),be({writable:l.stdin,readable:l.stdout,close:()=>{l.stdin?.end(),l.kill()}})}0&&(module.exports={CompileCacheRejectedError,CompileCacheRuntime,CompileCacheRuntimeError,createNdjsonCompileCacheEvaluator,spawnCompileCacheEvaluator});
|