@intutic/clawde 2.2.0 → 2.4.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 +5 -3
- package/dist/client.d.ts +26 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +104 -15
- package/dist/client.js.map +1 -1
- package/dist/control-plane.d.ts +314 -13
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +665 -20
- package/dist/control-plane.js.map +1 -1
- package/dist/errors.d.ts +13 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +15 -3
- package/dist/errors.js.map +1 -1
- package/dist/evidence.d.ts +22 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +114 -0
- package/dist/evidence.js.map +1 -0
- package/dist/git-context.d.ts +27 -0
- package/dist/git-context.d.ts.map +1 -0
- package/dist/git-context.js +114 -0
- package/dist/git-context.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/integrity.d.ts +23 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +89 -0
- package/dist/integrity.js.map +1 -0
- package/dist/refusals.d.ts +39 -15
- package/dist/refusals.d.ts.map +1 -1
- package/dist/refusals.js +69 -16
- package/dist/refusals.js.map +1 -1
- package/dist/toon.d.ts +22 -0
- package/dist/toon.d.ts.map +1 -0
- package/dist/toon.js +115 -0
- package/dist/toon.js.map +1 -0
- package/dist/types.d.ts +1182 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/upstream.d.ts +8 -0
- package/dist/upstream.d.ts.map +1 -0
- package/dist/upstream.js +17 -0
- package/dist/upstream.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,qCAAgD;AAChD,iCAA2C;AAmI3C,oGAAoG;AACpG,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAErF,2EAA2E;AAC3E,MAAM,gBAAgB,GAAmC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;AAEjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAa,kBAAkB;IACrB,MAAM,CAAQ;IACd,OAAO,CAAQ;IAEvB,YAAY,OAAkC;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,OAAO;YACV,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,wBAAwB,CAAA;IACxF,CAAC;IAEO,KAAK,CAAC,IAAI,CAChB,MAAc,EACd,IAAY,EACZ,OAA4D,EAAE;QAE9D,sEAAsE;QACtE,MAAM,OAAO,GAA2B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;QAC/F,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAA;QAC3E,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC3C,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aACrF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,8BAAqB,CAAC,oCAAoC,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QACrG,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,IAAI,GAAG,IAAI,EACX,UAAoB,EAAE,EACtB,IAAe;QAEf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAA;QAC1D,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,yBAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAM,CAAA;IACvE,CAAC;IAED,sFAAsF;IAC9E,KAAK,CAAC,QAAQ,CAAC,IAAY;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAA;YAC1D,MAAM,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;IAChD,CAAC;IAGD,0BAA0B;IACnB,KAAK,CAAC,MAAM;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;IAC/C,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,SAAS,CAAC,MAAuB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACvE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,uBAAuB,CAAC,MAAc;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mCAAmC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,uBAAuB,CAAC,cAAsB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+BAA+B,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IACjG,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,SAAS,CAAC,MAAuB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;IAED,oCAAoC;IAC7B,KAAK,CAAC,SAAS,CAAC,KAAa;QAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAmB,KAAK,EAAE,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC1G,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,qCAAqC;IAC9B,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,IAAY;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,2CAA2C;IACpC,KAAK,CAAC,kBAAkB,CAAC,MAAc;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,EACL,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,aAAa,CACzD,CAAA;QACD,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,4CAA4C;IACrC,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,IAAY;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,4BAA4B;IACrB,KAAK,CAAC,eAAe,CAAC,MAA6B;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,2BAA2B;IACpB,KAAK,CAAC,YAAY;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAsB,KAAK,EAAE,kBAAkB,CAAC,CAAA;QAC9E,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,sCAAsC;IAC/B,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACxF,CAAC;IAED,uCAAuC;IAChC,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,MAAe;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/F,CAAC;IAED,mHAAmH;IAC5G,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACxF,CAAC;IAED,wCAAwC;IACjC,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,MAA2B;QAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAClG,CAAC;IAED,yEAAyE;IAClE,KAAK,CAAC,sBAAsB,CAAC,SAAwB;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,8EAA8E;IACvE,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,SAAwB;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;IAClG,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;IACpE,CAAC;IAED,iFAAiF;IAC1E,KAAK,CAAC,oBAAoB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAA;IAC1D,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,uBAAuB,CAAC,QAAiC;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAA;IACpE,CAAC;IAED,iDAAiD;IAC1C,KAAK,CAAC,uBAAuB;QAClC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,EACL,wCAAwC,CACzC,CAAA;QACD,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,qBAAqB,CAChC,QAAgB,EAChB,MAA8B;QAE9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9G,CAAC;IAED,8DAA8D;IACvD,KAAK,CAAC,uBAAuB,CAAC,QAAgB;QACnD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxG,CAAC;IAED,kEAAkE;IAC3D,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC7G,CAAC;IAED,8CAA8C;IAE9C,sHAAsH;IAC/G,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;IACnD,CAAC;IAED,mFAAmF;IAC5E,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACtD,CAAC;IAED,iFAAiF;IAC1E,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IACrD,CAAC;IAED,wGAAwG;IACjG,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACvD,CAAC;IAED,oFAAoF;IAC7E,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,IAAY;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACpG,CAAC;IAED,qFAAqF;IAC9E,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,IAAY;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IACrG,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,MAA4C;QAC7F,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACxF,CAAC;IAED,uDAAuD;IAEvD,sCAAsC;IAC/B,KAAK,CAAC,qBAAqB;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgC,KAAK,EAAE,6BAA6B,CAAC,CAAA;QACnG,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;IACxB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAAC,IAA2B;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAA;IAClE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,OAA+B;QACjF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+BAA+B,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACnF,CAAC;IAED,iDAAiD;IAC1C,KAAK,CAAC,sBAAsB,CAAC,MAAc;QAChD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,+BAA+B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,uHAAuH;IAChH,KAAK,CAAC,4BAA4B,CAAC,MAAc;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,+BAA+B,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAC1F,CAAC;IAED,uCAAuC;IAEvC,+FAA+F;IACxF,KAAK,CAAC,oBAAoB;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAA;IACzD,CAAC;IAED,mDAAmD;IAC5C,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,0GAA0G;IACnG,KAAK,CAAC,eAAe;QAC1B,OAAO,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAA;IACpD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,qBAAqB,CAAC,WAAiC;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,EAAE,WAAW,CAAC,CAAA;IACvE,CAAC;IAED,kGAAkG;IAC3F,KAAK,CAAC,qBAAqB,CAAC,aAAqB,EAAE,OAA8B;QACtF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,GAAG,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACxF,CAAC;IAED,yJAAyJ;IAClJ,KAAK,CAAC,qBAAqB,CAAC,aAAqB;QACtD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,kFAAkF;IAC3E,KAAK,CAAC,2BAA2B,CAAC,aAAqB;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,6BAA6B,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC/F,CAAC;IAED,kCAAkC;IAClC,EAAE;IACF,2EAA2E;IAC3E,yDAAyD;IAEzD,gCAAgC;IACzB,KAAK,CAAC,cAAc,CAAC,UAAwB,EAAE;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,gDAAgD;IACzC,KAAK,CAAC,YAAY,CAAC,UAAwB,EAAE;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,iCAAiC;IAC1B,KAAK,CAAC,cAAc,CAAC,UAAwB,EAAE;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,gCAAgC;IACzB,KAAK,CAAC,cAAc,CAAC,UAAwB,EAAE;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,sCAAsC;IAC/B,KAAK,CAAC,mBAAmB,CAAC,UAAwB,EAAE;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,8BAA8B,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC;IAED,wGAAwG;IACjG,KAAK,CAAC,uBAAuB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAA;IACpE,CAAC;IAED,6CAA6C;IAC7C,EAAE;IACF,qEAAqE;IAErE,oCAAoC;IAC7B,KAAK,CAAC,mBAAmB;QAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA6B,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAA;IAClG,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,oBAAoB;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAA;IACnD,CAAC;IAED,sCAAsC;IAC/B,KAAK,CAAC,sBAAsB,CAAC,UAA4B,EAAE;QAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,8BAA8B,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,wCAAwC;IACjC,KAAK,CAAC,uBAAuB,CAAC,UAA4B,EAAE;QACjE,OAAO,IAAI,CAAC,QAAQ,CAAC,gCAAgC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,mCAAmC;IAC5B,KAAK,CAAC,mBAAmB,CAAC,UAAiC,EAAE;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,2BAA2B,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,2HAA2H;IACpH,KAAK,CAAC,wBAAwB,CAAC,UAA8B,EAAE;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,gCAAgC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;IAED,oFAAoF;IAC7E,KAAK,CAAC,6BAA6B,CAAC,UAA4B,EAAE;QACvE,OAAO,IAAI,CAAC,QAAQ,CAAC,8BAA8B,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACrF,CAAC;IAED,mDAAmD;IAC5C,KAAK,CAAC,8BAA8B,CAAC,UAA4B,EAAE;QACxE,OAAO,IAAI,CAAC,QAAQ,CAAC,gCAAgC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACvF,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAI,IAAY;QACpC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAiB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;IACrE,CAAC;IAED,4CAA4C;IAE5C,0HAA0H;IACnH,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iCAAiC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IAC1F,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,yBAAyB,CAAC,WAAmB,EAAE,MAAsB;QAChF,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,GAAG,CAAC,CAAA;QACvH,OAAO,IAAI,CAAC,QAAQ,CAAC,iCAAiC,GAAG,CAAC,WAAW,CAAC,YAAY,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;IACrH,CAAC;IAED,yGAAyG;IAClG,KAAK,CAAC,eAAe,CAAC,UAAkC,EAAE;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iCAAiC,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC7I,CAAC;IAED,uIAAuI;IAChI,KAAK,CAAC,gBAAgB,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,kCAAkC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yCAAyC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IACzF,CAAC;IAED,+CAA+C;IAE/C,oHAAoH;IAC7G,KAAK,CAAC,eAAe;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kCAAkC,CAAC,CAAA;IAChE,CAAC;IAED,kGAAkG;IAC3F,KAAK,CAAC,gBAAgB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAA;IACnE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,yBAAyB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAA;IAC3E,CAAC;IAED,mDAAmD;IAEnD,0GAA0G;IACnG,KAAK,CAAC,iBAAiB;QAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAA6B,KAAK,EAAE,oBAAoB,CAAC,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjF,CAAC;IAED,8BAA8B;IACvB,KAAK,CAAC,eAAe,CAAC,MAAyB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,gDAAgD;IACzC,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAChF,CAAC;IAED,8CAA8C;IACvC,KAAK,CAAC,mBAAmB;QAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA0C,KAAK,EAAE,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAA;IACxH,CAAC;IAED,8FAA8F;IACvF,KAAK,CAAC,iBAAiB,CAAC,KAAa;QAC1C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAqC,KAAK,EAAE,GAAG,UAAU,cAAc,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC1H,CAAC;IAED,gHAAgH;IACzG,KAAK,CAAC,qBAAqB,CAAC,KAAa,EAAE,UAA0B,EAAE;QAC5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoC,MAAM,EAAE,GAAG,UAAU,cAAc,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE;YACzH,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;SACzB,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,8HAA8H;IACvH,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA8B,KAAK,EAAE,GAAG,UAAU,YAAY,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;IACvH,CAAC;IAED,uGAAuG;IAChG,KAAK,CAAC,oBAAoB,CAAC,IAAY;QAC5C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAkC,KAAK,EAAE,GAAG,UAAU,UAAU,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IACzH,CAAC;IAED,iHAAiH;IAC1G,KAAK,CAAC,kBAAkB,CAAC,IAAyB;QACvD,MAAM,IAAI,GAAG,GAAG,UAAU,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAA;QAC7F,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA2B,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAC3E,CAAC;IAED,sGAAsG;IAC/F,KAAK,CAAC,uBAAuB,CAAC,UAA6B,EAAE;QAClE,MAAM,IAAI,GAAG,GAAG,UAAU,cAAc,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAA;QACnF,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAmC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;IACvF,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,cAAc,CAAC,UAA4B,EAAE;QACxD,MAAM,IAAI,GAAG,GAAG,UAAU,cAAc,KAAK,CAAC;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,EAAE,CAAA;QACJ,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAsC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAA;IAChG,CAAC;IAED,4DAA4D;IACrD,KAAK,CAAC,YAAY,CAAC,WAAmB;QAC3C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAiC,KAAK,EAAE,GAAG,UAAU,eAAe,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9H,CAAC;IAED,gIAAgI;IACzH,KAAK,CAAC,qBAAqB,CAAC,WAAmB;QACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoC,KAAK,EAAE,GAAG,UAAU,eAAe,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAClI,OAAO,GAAG,CAAC,SAAS,CAAA;IACtB,CAAC;IAED,sHAAsH;IAC/G,KAAK,CAAC,sBAAsB,CAAC,WAAmB;QACrD,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,UAA0B,EAAE;QAC7E,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,KAAK,IAAI,EAAE,CAAC,CAAA;IAC1H,CAAC;IAED,wEAAwE;IACjE,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,MAAc;QAC9D,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACpE,CAAC;IAED,8FAA8F;IACvF,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC9C,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,qGAAqG;IAC9F,KAAK,CAAC,kBAAkB,CAAC,WAAmB;QACjD,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,SAAiC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,UAAU,aAAa,EAAE,SAAS,CAAC,CAAA;IACpE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,OAAgC;QAChF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,UAAU,eAAe,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACrF,CAAC;IAED,iHAAiH;IAC1G,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,UAAU,eAAe,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,sGAAsG;IAC/F,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC9C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA8B,MAAM,EAAE,GAAG,UAAU,eAAe,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IACpI,CAAC;IAED,mHAAmH;IAC5G,KAAK,CAAC,sBAAsB;QACjC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAsC,KAAK,EAAE,GAAG,UAAU,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAA;IACpH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,MAAc,EAAE,IAA6B;QAClG,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,UAAU,eAAe,GAAG,CAAC,WAAW,CAAC,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,CAAA;IAC7F,CAAC;IAED,4EAA4E;IAE5E,sFAAsF;IAC/E,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,UAAyB,EAAE;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAChI,CAAC;IAED,qFAAqF;IAC9E,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,UAAyB,EAAE;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC/H,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,UAA+B,EAAE;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;QACxH,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAoB,MAAM,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1F,CAAC;IAED,mCAAmC;IAC5B,KAAK,CAAC,UAAU,CAAC,SAAiB;QACvC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAoB,KAAK,EAAE,iBAAiB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/F,CAAC;IAED,wBAAwB;IACjB,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAwB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IACxF,CAAC;IAED,oFAAoF;IAC7E,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,UAAkC,EAAE;QAClF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QACrF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC/E,CAAC;IAED,yCAAyC;IAClC,KAAK,CAAC,WAAW,CAAC,SAAiB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACrE,CAAC;IAED,mHAAmH;IAC5G,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,UAAgC,EAAE;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC3H,CAAC;IAED,4GAA4G;IACrG,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,UAAgC,EAAE;QAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC1H,CAAC;IAED,wCAAwC;IAExC,8DAA8D;IACvD,KAAK,CAAC,YAAY,CAAC,UAA0B,EAAE;QACpD,MAAM,IAAI,GAAG,mBAAmB,KAAK,CAAC;YACpC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACzD,WAAW,EAAE,OAAO,CAAC,UAAU;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,EAAE,CAAA;QACJ,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA2B,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;IACnF,CAAC;IAED,mGAAmG;IAC5F,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,OAAuB,EAAE,UAA6B,EAAE;QACxG,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACxH,CAAC;IAED,gGAAgG;IACzF,KAAK,CAAC,eAAe;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAA;IACtD,CAAC;IAED,gDAAgD;IACzC,KAAK,CAAC,qBAAqB,CAAC,UAAqC,EAAE;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wCAAwC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;IAC7H,CAAC;IAED,qDAAqD;IACrD,EAAE;IACF,4EAA4E;IAE5E,8FAA8F;IACvF,KAAK,CAAC,aAAa,CAAC,UAA2B,EAAE;QACtD,MAAM,IAAI,GAAG,oBAAoB,KAAK,CAAC;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,EAAE,CAAA;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,wCAAwC;IACjC,KAAK,CAAC,WAAW,CAAC,UAAkB;QACzC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAqB,KAAK,EAAE,qBAAqB,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IACrG,CAAC;IAED,oCAAoC;IAEpC,yCAAyC;IAClC,KAAK,CAAC,UAAU,CAAC,UAAwB,EAAE;QAChD,MAAM,IAAI,GAAG,iBAAiB,KAAK,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,EAAE,CAAA;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,QAAQ,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,gDAAgD;IAEhD,4DAA4D;IACrD,KAAK,CAAC,kBAAkB,CAAC,UAAkC,EAAE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,oFAAoF;IAC7E,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,2BAA2B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACtE,CAAC;IAED,kGAAkG;IAC3F,KAAK,CAAC,sBAAsB,CAAC,MAAc;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACrF,CAAC;IAED,2FAA2F;IACpF,KAAK,CAAC,iBAAiB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/E,CAAC;IAED,mFAAmF;IAC5E,KAAK,CAAC,uBAAuB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,gCAAgC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IACtF,CAAC;IAED,gEAAgE;IAEhE,2BAA2B;IACpB,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAoC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;IAC1G,CAAC;IAED,6CAA6C;IACtC,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACzE,CAAC;IAED,8CAA8C;IACvC,KAAK,CAAC,aAAa,CAAC,QAAgB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC1E,CAAC;IAED,+CAA+C;IACxC,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,OAAe;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IACxF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,sBAAsB,CAAC,WAAmB;QACrD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAsB,KAAK,EAAE,2BAA2B,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAChH,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,8BAAqB,CAAC,+BAA+B,KAAK,aAAa,MAAM,4BAA4B,CAAC,CAAA;QACtH,CAAC;QACD,OAAO,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,yBAAyB,CACpC,WAAmB,EACnB,IAAgB,EAChB,YAAoB,EACpB,UAA+B,EAAE;QAEjC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAA;QACpH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2BAA2B,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC9G,CAAC;IAED,kHAAkH;IAC3G,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,UAA6B,EAAE;QACzE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAClI,CAAC;IAED,gCAAgC;IAEhC,uBAAuB;IAChB,KAAK,CAAC,QAAQ,CAAC,UAA8B,EAAE;QACpD,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAA2B,KAAK,EAAE,eAAe,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IAC5H,CAAC;IAED,8BAA8B;IACvB,KAAK,CAAC,MAAM,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,sFAAsF;IAC/E,KAAK,CAAC,SAAS,CAAC,GAAa;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED,iFAAiF;IAC1E,KAAK,CAAC,WAAW;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;IACpD,CAAC;IAED,6GAA6G;IACtG,KAAK,CAAC,YAAY,CAAC,GAAgB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAA;IAChE,CAAC;IAED,4HAA4H;IACrH,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,8BAA8B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC7E,CAAC;IAED,oDAAoD;IAEpD;;;;OAIG;IACI,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,aAAuB,EAAE,UAA4B,EAAE;QACpG,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAC3H,CAAC;IAED,oFAAoF;IAC7E,KAAK,CAAC,mBAAmB,CAAC,OAAe;QAC9C,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAqC,KAAK,EAAE,2BAA2B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/H,CAAC;IAED,wHAAwH;IACjH,KAAK,CAAC,WAAW,CAAC,MAAyB;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,iIAAiI;IAC1H,KAAK,CAAC,uBAAuB,CAAC,cAAsB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,yCAAyC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;CACF;AAj4BD,gDAi4BC;AAED,MAAM,UAAU,GAAG,2BAA2B,CAAA;AAE9C,MAAM,GAAG,GAAG,kBAAkB,CAAA;AAE9B,uFAAuF;AACvF,SAAS,KAAK,CAAC,MAAmD;IAChE,MAAM,CAAC,GAAG,IAAI,eAAe,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IACtB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,OAAqB;IACxC,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAS,cAAc,CAAC,OAAyB,EAAE,GAAG,GAAG,KAAK;IAC5D,OAAO,KAAK,CAAC;QACX,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,CAAC,EAAE,OAAO,CAAC,MAAM;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAChC,CAAC,CAAA;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,OAAO,CAAC,IAA6B;IAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAA;AACpF,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc,EAAE,IAAY;IACrF,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAA;YACrD,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,OAAO,IAAI,8BAAqB,CAAC,iBAAiB,MAAM,IAAI,IAAI,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;YACnG,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,8BAAqB,CAAC,iBAAiB,MAAM,IAAI,IAAI,YAAY,MAAM,MAAM,IAAI,EAAE,CAAC,CAAA;AACjG,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -16,13 +16,23 @@ export declare class ClawdeVerdictError extends ClawdeError {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* The proxy refused the request: a policy block, a reask, a loop run held for
|
|
19
|
-
* review, a spend cap
|
|
20
|
-
*
|
|
19
|
+
* review, a spend cap, a DLP block, or a tool call the model made that the
|
|
20
|
+
* proxy withheld. Never retried — the same request would be refused again.
|
|
21
|
+
* `code` is the proxy's refusal code, `message` its reason, and `ruleId` the
|
|
22
|
+
* rule that decided, when the proxy names one (every refusal it answers with
|
|
23
|
+
* a 200 does).
|
|
21
24
|
*/
|
|
22
25
|
export declare class ClawdeBlockedError extends ClawdeVerdictError {
|
|
23
26
|
verdict: RefusalVerdict;
|
|
24
27
|
readonly code: string;
|
|
25
28
|
readonly status: number;
|
|
26
|
-
|
|
29
|
+
readonly ruleId: string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Seconds until the refusal stops applying, from the proxy's `Retry-After`:
|
|
32
|
+
* set on `RATE_LIMITED` (the next minute) and `BUDGET_EXCEEDED` (the
|
|
33
|
+
* budget's reset). Undefined for a refusal that retrying will not change.
|
|
34
|
+
*/
|
|
35
|
+
readonly retryAfterSeconds: number | undefined;
|
|
36
|
+
constructor(verdict: RefusalVerdict, code: string, status: number, message: string, ruleId?: string, retryAfterSeconds?: number);
|
|
27
37
|
}
|
|
28
38
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,uGAAuG;AACvG,qBAAa,qBAAsB,SAAQ,WAAW;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,OAAO,EAAE,MAAM;CAI5B;AAED,2HAA2H;AAC3H,qBAAa,kBAAmB,SAAQ,WAAW;IAC1C,OAAO,EAAE,MAAM,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK7C;AAED
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,uGAAuG;AACvG,qBAAa,qBAAsB,SAAQ,WAAW;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,yBAA0B,SAAQ,WAAW;gBAC5C,OAAO,EAAE,MAAM;CAI5B;AAED,2HAA2H;AAC3H,qBAAa,kBAAmB,SAAQ,WAAW;IAC1C,OAAO,EAAE,MAAM,CAAA;gBAEV,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK7C;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,kBAAkB;IACzC,OAAO,EAAE,cAAc,CAAA;IACtC,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAA;IAC9B,SAAgB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C;;;;OAIG;IACH,SAAgB,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAA;gBAEzC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM;CAQhI"}
|
package/dist/errors.js
CHANGED
|
@@ -35,17 +35,29 @@ class ClawdeVerdictError extends ClawdeError {
|
|
|
35
35
|
exports.ClawdeVerdictError = ClawdeVerdictError;
|
|
36
36
|
/**
|
|
37
37
|
* The proxy refused the request: a policy block, a reask, a loop run held for
|
|
38
|
-
* review, a spend cap
|
|
39
|
-
*
|
|
38
|
+
* review, a spend cap, a DLP block, or a tool call the model made that the
|
|
39
|
+
* proxy withheld. Never retried — the same request would be refused again.
|
|
40
|
+
* `code` is the proxy's refusal code, `message` its reason, and `ruleId` the
|
|
41
|
+
* rule that decided, when the proxy names one (every refusal it answers with
|
|
42
|
+
* a 200 does).
|
|
40
43
|
*/
|
|
41
44
|
class ClawdeBlockedError extends ClawdeVerdictError {
|
|
42
45
|
code;
|
|
43
46
|
status;
|
|
44
|
-
|
|
47
|
+
ruleId;
|
|
48
|
+
/**
|
|
49
|
+
* Seconds until the refusal stops applying, from the proxy's `Retry-After`:
|
|
50
|
+
* set on `RATE_LIMITED` (the next minute) and `BUDGET_EXCEEDED` (the
|
|
51
|
+
* budget's reset). Undefined for a refusal that retrying will not change.
|
|
52
|
+
*/
|
|
53
|
+
retryAfterSeconds;
|
|
54
|
+
constructor(verdict, code, status, message, ruleId, retryAfterSeconds) {
|
|
45
55
|
super(verdict, message);
|
|
46
56
|
this.name = 'ClawdeBlockedError';
|
|
47
57
|
this.code = code;
|
|
48
58
|
this.status = status;
|
|
59
|
+
this.ruleId = ruleId;
|
|
60
|
+
this.retryAfterSeconds = retryAfterSeconds;
|
|
49
61
|
}
|
|
50
62
|
}
|
|
51
63
|
exports.ClawdeBlockedError = ClawdeBlockedError;
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF;AALD,kCAKC;AAED,uGAAuG;AACvG,MAAa,qBAAsB,SAAQ,WAAW;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF;AALD,sDAKC;AAED,MAAa,yBAA0B,SAAQ,WAAW;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AALD,8DAKC;AAED,2HAA2H;AAC3H,MAAa,kBAAmB,SAAQ,WAAW;IAC1C,OAAO,CAAQ;IAEtB,YAAY,OAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF;AARD,gDAQC;AAED
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,aAAa,CAAA;IAC3B,CAAC;CACF;AALD,kCAKC;AAED,uGAAuG;AACvG,MAAa,qBAAsB,SAAQ,WAAW;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF;AALD,sDAKC;AAED,MAAa,yBAA0B,SAAQ,WAAW;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACzC,CAAC;CACF;AALD,8DAKC;AAED,2HAA2H;AAC3H,MAAa,kBAAmB,SAAQ,WAAW;IAC1C,OAAO,CAAQ;IAEtB,YAAY,OAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF;AARD,gDAQC;AAED;;;;;;;GAOG;AACH,MAAa,kBAAmB,SAAQ,kBAAkB;IAExC,IAAI,CAAQ;IACZ,MAAM,CAAQ;IACd,MAAM,CAAoB;IAC1C;;;;OAIG;IACa,iBAAiB,CAAoB;IAErD,YAAY,OAAuB,EAAE,IAAY,EAAE,MAAc,EAAE,OAAe,EAAE,MAAe,EAAE,iBAA0B;QAC7H,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;CACF;AApBD,gDAoBC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { EvidenceArchive, EvidenceVerification, SigningJwks } from './types';
|
|
2
|
+
/** The domain the control plane signs evidence archives under. */
|
|
3
|
+
export declare const EVIDENCE_SIGNING_DOMAIN = "intutic-soc2-evidence-v1";
|
|
4
|
+
/**
|
|
5
|
+
* Object keys sorted recursively, arrays in order: the preimage the control
|
|
6
|
+
* plane hashes, because the archive round-trips through storage that does not
|
|
7
|
+
* keep key order.
|
|
8
|
+
*/
|
|
9
|
+
export declare function canonicalJson(value: unknown): string;
|
|
10
|
+
/**
|
|
11
|
+
* Checks an evidence archive the way it was sealed: the manifest's hashes,
|
|
12
|
+
* then the signature over the archive hash against the published key its
|
|
13
|
+
* `keyId` names (`jwks`, from `ControlPlaneClient.getSigningKeys()` or a saved
|
|
14
|
+
* copy; null when it could not be had).
|
|
15
|
+
*
|
|
16
|
+
* `verified` is true only for an archive whose hashes match and whose
|
|
17
|
+
* signature a published key accepts. An unsigned archive, or one whose key is
|
|
18
|
+
* not published, is not verified even when its hashes match: nothing then
|
|
19
|
+
* shows who produced it.
|
|
20
|
+
*/
|
|
21
|
+
export declare function verifyEvidenceArchive(archive: EvidenceArchive, jwks: SigningJwks | null): EvidenceVerification;
|
|
22
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAqD,oBAAoB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEpI,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,6BAA6B,CAAA;AAEjE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOpD;AAuCD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,oBAAoB,CA4B9G"}
|
package/dist/evidence.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVIDENCE_SIGNING_DOMAIN = void 0;
|
|
4
|
+
exports.canonicalJson = canonicalJson;
|
|
5
|
+
exports.verifyEvidenceArchive = verifyEvidenceArchive;
|
|
6
|
+
/**
|
|
7
|
+
* Offline verification of a compliance evidence archive: the check
|
|
8
|
+
* `intutic compliance verify` makes, with nothing but the archive and the
|
|
9
|
+
* control plane's published key set, so the answer does not depend on
|
|
10
|
+
* trusting the server that produced the archive.
|
|
11
|
+
*
|
|
12
|
+
* The rules are the sealer's (`soc2EvidenceService.ts` in the control plane):
|
|
13
|
+
* a sha256 manifest over canonical JSON, and an Ed25519 signature over
|
|
14
|
+
* `intutic-soc2-evidence-v1\n<archiveSha256>`, present only when the
|
|
15
|
+
* deployment had a signing key. The CLI's `commands/compliance.ts` applies the
|
|
16
|
+
* same rules; the tests hold both to the archive the control plane's own code
|
|
17
|
+
* sealed (`tools/cli/src/commands/__fixtures__/evidence-archive.json`).
|
|
18
|
+
*
|
|
19
|
+
* @module
|
|
20
|
+
*/
|
|
21
|
+
const crypto_1 = require("crypto");
|
|
22
|
+
/** The domain the control plane signs evidence archives under. */
|
|
23
|
+
exports.EVIDENCE_SIGNING_DOMAIN = 'intutic-soc2-evidence-v1';
|
|
24
|
+
/**
|
|
25
|
+
* Object keys sorted recursively, arrays in order: the preimage the control
|
|
26
|
+
* plane hashes, because the archive round-trips through storage that does not
|
|
27
|
+
* keep key order.
|
|
28
|
+
*/
|
|
29
|
+
function canonicalJson(value) {
|
|
30
|
+
if (value === null || typeof value !== 'object')
|
|
31
|
+
return JSON.stringify(value);
|
|
32
|
+
if (Array.isArray(value))
|
|
33
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
34
|
+
const entries = Object.entries(value)
|
|
35
|
+
.filter(([, v]) => v !== undefined)
|
|
36
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
37
|
+
return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${canonicalJson(v)}`).join(',')}}`;
|
|
38
|
+
}
|
|
39
|
+
const sha256Hex = (data) => (0, crypto_1.createHash)('sha256').update(data).digest('hex');
|
|
40
|
+
/** What one manifest entry hashes, or null when the archive has nothing under that name. */
|
|
41
|
+
function sectionContent(archive, name) {
|
|
42
|
+
const category = archive.categories?.find((c) => c.category === name);
|
|
43
|
+
if (category)
|
|
44
|
+
return canonicalJson(category);
|
|
45
|
+
const m = /^framework:([^:]+)(?::(csv|pdf))?$/.exec(name);
|
|
46
|
+
const framework = m ? archive.frameworks?.find((f) => f.coverage?.frameworkId === m[1]) : undefined;
|
|
47
|
+
if (!m || !framework)
|
|
48
|
+
return null;
|
|
49
|
+
// The CSV as its UTF-8 bytes and the PDF decoded, so a file saved out of
|
|
50
|
+
// the archive checks with `sha256sum` alone.
|
|
51
|
+
if (m[2] === 'csv')
|
|
52
|
+
return framework.csv ?? null;
|
|
53
|
+
if (m[2] === 'pdf')
|
|
54
|
+
return framework.pdf === undefined ? null : Buffer.from(framework.pdf, 'base64');
|
|
55
|
+
return canonicalJson(framework);
|
|
56
|
+
}
|
|
57
|
+
function signatureState(sig, archiveSha256, jwks) {
|
|
58
|
+
// A signature made under another domain (another kind of export) or
|
|
59
|
+
// algorithm is not this archive's signature, whatever its bytes.
|
|
60
|
+
if (sig.preimageDomain !== exports.EVIDENCE_SIGNING_DOMAIN || sig.algorithm !== 'Ed25519')
|
|
61
|
+
return 'invalid';
|
|
62
|
+
if (!jwks)
|
|
63
|
+
return 'keys_unavailable';
|
|
64
|
+
const jwk = jwks.keys.find((k) => k['kid'] === sig.keyId);
|
|
65
|
+
if (!jwk)
|
|
66
|
+
return 'unverifiable';
|
|
67
|
+
try {
|
|
68
|
+
const ok = (0, crypto_1.verify)(null, Buffer.from(`${exports.EVIDENCE_SIGNING_DOMAIN}\n${archiveSha256}`, 'utf8'), (0, crypto_1.createPublicKey)({ key: jwk, format: 'jwk' }), Buffer.from(sig.value, 'base64'));
|
|
69
|
+
return ok ? 'valid' : 'invalid';
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// A published key this runtime cannot load is one we do not effectively hold.
|
|
73
|
+
return 'unverifiable';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Checks an evidence archive the way it was sealed: the manifest's hashes,
|
|
78
|
+
* then the signature over the archive hash against the published key its
|
|
79
|
+
* `keyId` names (`jwks`, from `ControlPlaneClient.getSigningKeys()` or a saved
|
|
80
|
+
* copy; null when it could not be had).
|
|
81
|
+
*
|
|
82
|
+
* `verified` is true only for an archive whose hashes match and whose
|
|
83
|
+
* signature a published key accepts. An unsigned archive, or one whose key is
|
|
84
|
+
* not published, is not verified even when its hashes match: nothing then
|
|
85
|
+
* shows who produced it.
|
|
86
|
+
*/
|
|
87
|
+
function verifyEvidenceArchive(archive, jwks) {
|
|
88
|
+
const rest = { ...archive };
|
|
89
|
+
delete rest['manifest'];
|
|
90
|
+
delete rest['signature'];
|
|
91
|
+
const archiveSha256 = sha256Hex(canonicalJson(rest));
|
|
92
|
+
const manifest = archive.manifest ?? {};
|
|
93
|
+
const archiveHashMatches = archiveSha256 === manifest.archiveSha256;
|
|
94
|
+
const sections = Object.entries(manifest.sections ?? {});
|
|
95
|
+
const sectionMismatches = sections
|
|
96
|
+
.filter(([name, recorded]) => {
|
|
97
|
+
const content = sectionContent(archive, name);
|
|
98
|
+
return content === null || sha256Hex(content) !== recorded;
|
|
99
|
+
})
|
|
100
|
+
.map(([name]) => name);
|
|
101
|
+
const sig = archive.signature ?? null;
|
|
102
|
+
const signature = sig ? signatureState(sig, manifest.archiveSha256 ?? '', jwks) : 'unsigned';
|
|
103
|
+
return {
|
|
104
|
+
archiveSha256,
|
|
105
|
+
archiveHashMatches,
|
|
106
|
+
sectionMismatches,
|
|
107
|
+
sectionsChecked: sections.length,
|
|
108
|
+
signature,
|
|
109
|
+
signingKeyId: sig?.keyId ?? null,
|
|
110
|
+
unsignedReason: sig ? null : (manifest.unsignedReason ?? null),
|
|
111
|
+
verified: archiveHashMatches && sectionMismatches.length === 0 && signature === 'valid',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface GitContext {
|
|
2
|
+
/** The `origin` remote as `host/path`, never with credentials. */
|
|
3
|
+
repoUrl?: string;
|
|
4
|
+
branchName?: string;
|
|
5
|
+
commitHash?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A remote reduced to `host/path`: lower-cased host, no scheme, user, password,
|
|
9
|
+
* port, query, fragment or `.git` suffix; null for anything that is not a
|
|
10
|
+
* network remote. A copy of `normalizeGitRemote` in `@intutic/shared-types`
|
|
11
|
+
* (this package has no dependencies), held to the same vectors in
|
|
12
|
+
* `packages/shared-types/fixtures/git-remote-vectors.json`. Normalised here,
|
|
13
|
+
* before it leaves the machine: a CI checkout's remote embeds a token.
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizeGitRemote(remote: string): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* The git context of `cwd`, best effort: a directory that is not a
|
|
18
|
+
* repository, or a machine without git, gives an empty object.
|
|
19
|
+
*
|
|
20
|
+
* A detached HEAD names no branch. That is how CI checks out a pull request,
|
|
21
|
+
* so the branch then comes from `GITHUB_HEAD_REF` (GitHub Actions' pull
|
|
22
|
+
* request head branch), else `fallbackBranch` (`resolveContext().gitBranch`).
|
|
23
|
+
* Values the control plane's session route would refuse are left out rather
|
|
24
|
+
* than failing the registration.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveGitContext(cwd: string, fallbackBranch?: string): Promise<GitContext>;
|
|
27
|
+
//# sourceMappingURL=git-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-context.d.ts","sourceRoot":"","sources":["../src/git-context.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAKD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4BhE;AA0BD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAcjG"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeGitRemote = normalizeGitRemote;
|
|
4
|
+
exports.resolveGitContext = resolveGitContext;
|
|
5
|
+
/**
|
|
6
|
+
* The repository, branch and HEAD commit a process runs in: what cost per
|
|
7
|
+
* branch, per commit and per pull request is attributed by.
|
|
8
|
+
*
|
|
9
|
+
* The control plane copies a session's git context onto every trace it
|
|
10
|
+
* records under that session (`POST /api/v1/sessions` takes `repoUrl`,
|
|
11
|
+
* `branchName` and `commitHash`, the same fields the sync daemon reports), so
|
|
12
|
+
* this is what `ClawdeClient` registers its session with. Without it, SDK
|
|
13
|
+
* traffic is filed under "No git context".
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
const child_process_1 = require("child_process");
|
|
18
|
+
/** Schemes git can fetch over the network. `file:` and local paths are not repositories anyone else can name. */
|
|
19
|
+
const NETWORK_SCHEMES = new Set(['http:', 'https:', 'ssh:', 'git:', 'git+ssh:', 'ssh+git:']);
|
|
20
|
+
/**
|
|
21
|
+
* A remote reduced to `host/path`: lower-cased host, no scheme, user, password,
|
|
22
|
+
* port, query, fragment or `.git` suffix; null for anything that is not a
|
|
23
|
+
* network remote. A copy of `normalizeGitRemote` in `@intutic/shared-types`
|
|
24
|
+
* (this package has no dependencies), held to the same vectors in
|
|
25
|
+
* `packages/shared-types/fixtures/git-remote-vectors.json`. Normalised here,
|
|
26
|
+
* before it leaves the machine: a CI checkout's remote embeds a token.
|
|
27
|
+
*/
|
|
28
|
+
function normalizeGitRemote(remote) {
|
|
29
|
+
const raw = remote.trim();
|
|
30
|
+
if (!raw || raw.includes('\\') || /^[a-zA-Z]:\//.test(raw))
|
|
31
|
+
return null;
|
|
32
|
+
let host;
|
|
33
|
+
let path;
|
|
34
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(raw)) {
|
|
35
|
+
let url;
|
|
36
|
+
try {
|
|
37
|
+
url = new URL(raw);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
if (!NETWORK_SCHEMES.has(url.protocol))
|
|
43
|
+
return null;
|
|
44
|
+
host = url.hostname;
|
|
45
|
+
path = url.pathname;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// scp-like: [user[:password]@]host:path. A colon after the first slash
|
|
49
|
+
// makes it a local path, which is how git itself tells them apart.
|
|
50
|
+
const scp = /^(?:[^@/]+@)?([^:/\s]+):([^\s]+)$/.exec(raw);
|
|
51
|
+
if (!scp)
|
|
52
|
+
return null;
|
|
53
|
+
host = scp[1];
|
|
54
|
+
path = cutAtQueryOrFragment(scp[2]);
|
|
55
|
+
}
|
|
56
|
+
path = trimSlashes(trimSlashes(path).replace(/\.git$/, ''));
|
|
57
|
+
if (!host || !path)
|
|
58
|
+
return null;
|
|
59
|
+
return `${host.toLowerCase()}/${path}`;
|
|
60
|
+
}
|
|
61
|
+
// String scans rather than regexes: a remote is input the developer controls,
|
|
62
|
+
// and `[?#].*$` / `\/+$` backtrack quadratically on long runs.
|
|
63
|
+
function cutAtQueryOrFragment(s) {
|
|
64
|
+
for (let i = 0; i < s.length; i++)
|
|
65
|
+
if (s[i] === '?' || s[i] === '#')
|
|
66
|
+
return s.slice(0, i);
|
|
67
|
+
return s;
|
|
68
|
+
}
|
|
69
|
+
function trimSlashes(s) {
|
|
70
|
+
let start = 0;
|
|
71
|
+
let end = s.length;
|
|
72
|
+
while (start < end && s[start] === '/')
|
|
73
|
+
start++;
|
|
74
|
+
while (end > start && s[end - 1] === '/')
|
|
75
|
+
end--;
|
|
76
|
+
return s.slice(start, end);
|
|
77
|
+
}
|
|
78
|
+
function git(cwd, ...args) {
|
|
79
|
+
return new Promise((resolve) => {
|
|
80
|
+
(0, child_process_1.execFile)('git', args, { cwd, timeout: 3_000 }, (err, stdout) => {
|
|
81
|
+
const out = err ? '' : String(stdout).trim();
|
|
82
|
+
resolve(out.length > 0 ? out : undefined);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The git context of `cwd`, best effort: a directory that is not a
|
|
88
|
+
* repository, or a machine without git, gives an empty object.
|
|
89
|
+
*
|
|
90
|
+
* A detached HEAD names no branch. That is how CI checks out a pull request,
|
|
91
|
+
* so the branch then comes from `GITHUB_HEAD_REF` (GitHub Actions' pull
|
|
92
|
+
* request head branch), else `fallbackBranch` (`resolveContext().gitBranch`).
|
|
93
|
+
* Values the control plane's session route would refuse are left out rather
|
|
94
|
+
* than failing the registration.
|
|
95
|
+
*/
|
|
96
|
+
async function resolveGitContext(cwd, fallbackBranch) {
|
|
97
|
+
const [remote, head, commit] = await Promise.all([
|
|
98
|
+
git(cwd, 'remote', 'get-url', 'origin'),
|
|
99
|
+
git(cwd, 'rev-parse', '--abbrev-ref', 'HEAD'),
|
|
100
|
+
git(cwd, 'rev-parse', 'HEAD'),
|
|
101
|
+
]);
|
|
102
|
+
const repoUrl = remote ? normalizeGitRemote(remote) : null;
|
|
103
|
+
const branchName = (head !== 'HEAD' ? head : undefined) || process.env.GITHUB_HEAD_REF || fallbackBranch;
|
|
104
|
+
const context = {};
|
|
105
|
+
if (repoUrl && repoUrl.length <= 512)
|
|
106
|
+
context.repoUrl = repoUrl;
|
|
107
|
+
if (branchName && branchName.length <= 256)
|
|
108
|
+
context.branchName = branchName;
|
|
109
|
+
// A SHA-1 object id; a SHA-256 repository's 64-character id does not fit the column.
|
|
110
|
+
if (commit && /^[0-9a-f]{40}$/.test(commit))
|
|
111
|
+
context.commitHash = commit;
|
|
112
|
+
return context;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=git-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-context.js","sourceRoot":"","sources":["../src/git-context.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export { ClawdeClient } from './client';
|
|
2
2
|
export { ControlPlaneClient } from './control-plane';
|
|
3
|
+
export { verifyEvidenceArchive } from './evidence';
|
|
4
|
+
export { verifyIntegrityRoot } from './integrity';
|
|
3
5
|
export * from './types';
|
|
4
6
|
export * from './errors';
|
|
7
|
+
export { PROXY_REFUSALS, REFUSAL_HEADER, REFUSAL_RULE_HEADER, STREAM_REFUSAL_MARKER, streamRefusal, type ProxyRefusal, } from './refusals';
|
|
8
|
+
export { UPSTREAM_ATTEMPTS_HEADER, UPSTREAM_FALLBACK_HEADER } from './upstream';
|
|
5
9
|
export { resolveContext } from './context-resolver';
|
|
6
10
|
export { normalizeRequest, normalizeResponse } from './schema-enforcer';
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,13 +14,26 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.normalizeResponse = exports.normalizeRequest = exports.resolveContext = exports.ControlPlaneClient = exports.ClawdeClient = void 0;
|
|
17
|
+
exports.normalizeResponse = exports.normalizeRequest = exports.resolveContext = exports.UPSTREAM_FALLBACK_HEADER = exports.UPSTREAM_ATTEMPTS_HEADER = exports.streamRefusal = exports.STREAM_REFUSAL_MARKER = exports.REFUSAL_RULE_HEADER = exports.REFUSAL_HEADER = exports.PROXY_REFUSALS = exports.verifyIntegrityRoot = exports.verifyEvidenceArchive = exports.ControlPlaneClient = exports.ClawdeClient = void 0;
|
|
18
18
|
var client_1 = require("./client");
|
|
19
19
|
Object.defineProperty(exports, "ClawdeClient", { enumerable: true, get: function () { return client_1.ClawdeClient; } });
|
|
20
20
|
var control_plane_1 = require("./control-plane");
|
|
21
21
|
Object.defineProperty(exports, "ControlPlaneClient", { enumerable: true, get: function () { return control_plane_1.ControlPlaneClient; } });
|
|
22
|
+
var evidence_1 = require("./evidence");
|
|
23
|
+
Object.defineProperty(exports, "verifyEvidenceArchive", { enumerable: true, get: function () { return evidence_1.verifyEvidenceArchive; } });
|
|
24
|
+
var integrity_1 = require("./integrity");
|
|
25
|
+
Object.defineProperty(exports, "verifyIntegrityRoot", { enumerable: true, get: function () { return integrity_1.verifyIntegrityRoot; } });
|
|
22
26
|
__exportStar(require("./types"), exports);
|
|
23
27
|
__exportStar(require("./errors"), exports);
|
|
28
|
+
var refusals_1 = require("./refusals");
|
|
29
|
+
Object.defineProperty(exports, "PROXY_REFUSALS", { enumerable: true, get: function () { return refusals_1.PROXY_REFUSALS; } });
|
|
30
|
+
Object.defineProperty(exports, "REFUSAL_HEADER", { enumerable: true, get: function () { return refusals_1.REFUSAL_HEADER; } });
|
|
31
|
+
Object.defineProperty(exports, "REFUSAL_RULE_HEADER", { enumerable: true, get: function () { return refusals_1.REFUSAL_RULE_HEADER; } });
|
|
32
|
+
Object.defineProperty(exports, "STREAM_REFUSAL_MARKER", { enumerable: true, get: function () { return refusals_1.STREAM_REFUSAL_MARKER; } });
|
|
33
|
+
Object.defineProperty(exports, "streamRefusal", { enumerable: true, get: function () { return refusals_1.streamRefusal; } });
|
|
34
|
+
var upstream_1 = require("./upstream");
|
|
35
|
+
Object.defineProperty(exports, "UPSTREAM_ATTEMPTS_HEADER", { enumerable: true, get: function () { return upstream_1.UPSTREAM_ATTEMPTS_HEADER; } });
|
|
36
|
+
Object.defineProperty(exports, "UPSTREAM_FALLBACK_HEADER", { enumerable: true, get: function () { return upstream_1.UPSTREAM_FALLBACK_HEADER; } });
|
|
24
37
|
var context_resolver_1 = require("./context-resolver");
|
|
25
38
|
Object.defineProperty(exports, "resolveContext", { enumerable: true, get: function () { return context_resolver_1.resolveContext; } });
|
|
26
39
|
var schema_enforcer_1 = require("./schema-enforcer");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AACrB,iDAAoD;AAA3C,mHAAA,kBAAkB,OAAA;AAC3B,0CAAuB;AACvB,2CAAwB;AACxB,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,qDAAuE;AAA9D,mHAAA,gBAAgB,OAAA;AAAE,oHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAuC;AAA9B,sGAAA,YAAY,OAAA;AACrB,iDAAoD;AAA3C,mHAAA,kBAAkB,OAAA;AAC3B,uCAAkD;AAAzC,iHAAA,qBAAqB,OAAA;AAC9B,yCAAiD;AAAxC,gHAAA,mBAAmB,OAAA;AAC5B,0CAAuB;AACvB,2CAAwB;AACxB,uCAOmB;AANjB,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA;AACd,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,yGAAA,aAAa,OAAA;AAGf,uCAA+E;AAAtE,oHAAA,wBAAwB,OAAA;AAAE,oHAAA,wBAAwB,OAAA;AAC3D,uDAAmD;AAA1C,kHAAA,cAAc,OAAA;AACvB,qDAAuE;AAA9D,mHAAA,gBAAgB,OAAA;AAAE,oHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { IntegrityRootSignatureState, SignedIntegrityRoot, SigningJwks } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The exact bytes the control plane signed for this root, under the version
|
|
4
|
+
* the root records. Fields joined by U+001F: domain, workspace, loop run (empty
|
|
5
|
+
* for none), leaf schema version, merkle root; from v2 on, a presence tag and
|
|
6
|
+
* the predecessor, so "no predecessor" is not the same bytes as any value.
|
|
7
|
+
*/
|
|
8
|
+
export declare function integrityRootPreimage(root: SignedIntegrityRoot): string;
|
|
9
|
+
/**
|
|
10
|
+
* Checks a sealed root's signature against the published key the root itself
|
|
11
|
+
* names (`jwks`, from `ControlPlaneClient.getSigningKeys()` or a saved copy;
|
|
12
|
+
* null when it could not be had). Pass the `root` of
|
|
13
|
+
* `ControlPlaneClient.getIntegrityRoot()`.
|
|
14
|
+
*
|
|
15
|
+
* Only `invalid` says the root was changed: a published key rejected it.
|
|
16
|
+
* `unverifiable` (the key is not published, or the root names an algorithm or
|
|
17
|
+
* preimage version this build cannot check) and `keys_unavailable` are no
|
|
18
|
+
* verdict, and `unsigned` is a deployment that had no signing key. The key is
|
|
19
|
+
* chosen by `signing_key_id` and never by trying others: a root that verifies
|
|
20
|
+
* under some other key is not the same claim.
|
|
21
|
+
*/
|
|
22
|
+
export declare function verifyIntegrityRoot(root: SignedIntegrityRoot, jwks: SigningJwks | null): IntegrityRootSignatureState;
|
|
23
|
+
//# sourceMappingURL=integrity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integrity.d.ts","sourceRoot":"","sources":["../src/integrity.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAgB5F;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAevE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,2BAA2B,CAmBpH"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.integrityRootPreimage = integrityRootPreimage;
|
|
4
|
+
exports.verifyIntegrityRoot = verifyIntegrityRoot;
|
|
5
|
+
/**
|
|
6
|
+
* Offline verification of a sealed trace root's signature: the check
|
|
7
|
+
* `intutic integrity verify` makes, with nothing but the root and the control
|
|
8
|
+
* plane's published key set, so the answer does not depend on trusting the
|
|
9
|
+
* server that sealed it.
|
|
10
|
+
*
|
|
11
|
+
* The rules are the signer's (`rootSigner.ts` in the control plane) and the
|
|
12
|
+
* CLI's (`commands/integrity.ts`): an Ed25519 signature over a
|
|
13
|
+
* domain-separated preimage of the root's scope, rebuilt here rather than
|
|
14
|
+
* handed over, under the preimage version the root records. The tests hold
|
|
15
|
+
* this, the CLI and the Python SDK to roots the control plane's own signer
|
|
16
|
+
* sealed (`tools/cli/src/commands/__fixtures__/integrity-roots.json`).
|
|
17
|
+
*
|
|
18
|
+
* @module
|
|
19
|
+
*/
|
|
20
|
+
const crypto_1 = require("crypto");
|
|
21
|
+
/**
|
|
22
|
+
* Domain tag per preimage version, as the signer writes them. Also the list of
|
|
23
|
+
* versions this build can rebuild: a root naming any other is unverifiable.
|
|
24
|
+
*/
|
|
25
|
+
const SIGN_DOMAIN = {
|
|
26
|
+
1: 'intutic.merkle-root.v1',
|
|
27
|
+
2: 'intutic.merkle-root.v2',
|
|
28
|
+
};
|
|
29
|
+
/** The version a root was sealed under; absent means 1 (a control plane older than the column). */
|
|
30
|
+
function preimageVersionOf(root) {
|
|
31
|
+
return root.signing_preimage_version ?? 1;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The exact bytes the control plane signed for this root, under the version
|
|
35
|
+
* the root records. Fields joined by U+001F: domain, workspace, loop run (empty
|
|
36
|
+
* for none), leaf schema version, merkle root; from v2 on, a presence tag and
|
|
37
|
+
* the predecessor, so "no predecessor" is not the same bytes as any value.
|
|
38
|
+
*/
|
|
39
|
+
function integrityRootPreimage(root) {
|
|
40
|
+
const version = preimageVersionOf(root);
|
|
41
|
+
const domain = SIGN_DOMAIN[version];
|
|
42
|
+
if (domain === undefined) {
|
|
43
|
+
// Guessing an encoding would produce bytes that were never signed, and the
|
|
44
|
+
// key would then say "forged".
|
|
45
|
+
throw new RangeError(`unknown signing preimage version ${version}`);
|
|
46
|
+
}
|
|
47
|
+
const fields = [domain, root.workspace_id, root.loop_run_id ?? '', String(root.leaf_schema_version), root.merkle_root];
|
|
48
|
+
if (version >= 2) {
|
|
49
|
+
// A previous_root the server omitted is the same claim as an explicit null.
|
|
50
|
+
const previous = root.previous_root ?? null;
|
|
51
|
+
fields.push(previous === null ? '0' : '1', previous ?? '');
|
|
52
|
+
}
|
|
53
|
+
return fields.join('\x1f');
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Checks a sealed root's signature against the published key the root itself
|
|
57
|
+
* names (`jwks`, from `ControlPlaneClient.getSigningKeys()` or a saved copy;
|
|
58
|
+
* null when it could not be had). Pass the `root` of
|
|
59
|
+
* `ControlPlaneClient.getIntegrityRoot()`.
|
|
60
|
+
*
|
|
61
|
+
* Only `invalid` says the root was changed: a published key rejected it.
|
|
62
|
+
* `unverifiable` (the key is not published, or the root names an algorithm or
|
|
63
|
+
* preimage version this build cannot check) and `keys_unavailable` are no
|
|
64
|
+
* verdict, and `unsigned` is a deployment that had no signing key. The key is
|
|
65
|
+
* chosen by `signing_key_id` and never by trying others: a root that verifies
|
|
66
|
+
* under some other key is not the same claim.
|
|
67
|
+
*/
|
|
68
|
+
function verifyIntegrityRoot(root, jwks) {
|
|
69
|
+
if (!root.signature || !root.signing_key_id)
|
|
70
|
+
return 'unsigned';
|
|
71
|
+
if (!jwks)
|
|
72
|
+
return 'keys_unavailable';
|
|
73
|
+
const jwk = jwks.keys.find((k) => k['kid'] === root.signing_key_id);
|
|
74
|
+
if (!jwk)
|
|
75
|
+
return 'unverifiable';
|
|
76
|
+
if (root.signature_alg !== 'EdDSA')
|
|
77
|
+
return 'unverifiable';
|
|
78
|
+
if (SIGN_DOMAIN[preimageVersionOf(root)] === undefined)
|
|
79
|
+
return 'unverifiable';
|
|
80
|
+
try {
|
|
81
|
+
const ok = (0, crypto_1.verify)(null, Buffer.from(integrityRootPreimage(root), 'utf8'), (0, crypto_1.createPublicKey)({ key: jwk, format: 'jwk' }), Buffer.from(root.signature, 'base64'));
|
|
82
|
+
return ok ? 'valid' : 'invalid';
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// A published key this runtime cannot load is one we do not effectively hold.
|
|
86
|
+
return 'unverifiable';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=integrity.js.map
|