@agent-native/core 0.49.19 → 0.49.21
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/dist/cli/pr-visual-recap-workflow.d.ts +1 -1
- package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
- package/dist/cli/pr-visual-recap-workflow.js +1 -1
- package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
- package/dist/cli/recap.d.ts +5 -2
- package/dist/cli/recap.d.ts.map +1 -1
- package/dist/cli/recap.js +107 -51
- package/dist/cli/recap.js.map +1 -1
- package/dist/client/blocks/library/annotation-rail.d.ts +17 -0
- package/dist/client/blocks/library/annotation-rail.d.ts.map +1 -1
- package/dist/client/blocks/library/annotation-rail.js +23 -10
- package/dist/client/blocks/library/annotation-rail.js.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.d.ts.map +1 -1
- package/dist/client/blocks/library/wireframe-kit.js +4 -0
- package/dist/client/blocks/library/wireframe-kit.js.map +1 -1
- package/dist/client/db-admin/DevDatabaseLink.d.ts +4 -9
- package/dist/client/db-admin/DevDatabaseLink.d.ts.map +1 -1
- package/dist/client/db-admin/DevDatabaseLink.js +5 -19
- package/dist/client/db-admin/DevDatabaseLink.js.map +1 -1
- package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
- package/dist/client/resources/ResourcesPanel.js +16 -3
- package/dist/client/resources/ResourcesPanel.js.map +1 -1
- package/dist/local-artifacts/index.d.ts +37 -0
- package/dist/local-artifacts/index.d.ts.map +1 -1
- package/dist/local-artifacts/index.js +380 -0
- package/dist/local-artifacts/index.js.map +1 -1
- package/dist/resources/handlers.d.ts.map +1 -1
- package/dist/resources/handlers.js +20 -6
- package/dist/resources/handlers.js.map +1 -1
- package/dist/resources/metadata.d.ts.map +1 -1
- package/dist/resources/metadata.js +5 -1
- package/dist/resources/metadata.js.map +1 -1
- package/dist/resources/store.d.ts +4 -0
- package/dist/resources/store.d.ts.map +1 -1
- package/dist/resources/store.js +143 -6
- package/dist/resources/store.js.map +1 -1
- package/dist/scripts/resources/delete.d.ts.map +1 -1
- package/dist/scripts/resources/delete.js +9 -3
- package/dist/scripts/resources/delete.js.map +1 -1
- package/dist/scripts/resources/write.d.ts.map +1 -1
- package/dist/scripts/resources/write.js +9 -3
- package/dist/scripts/resources/write.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +6 -5
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/styles/blocks.css +11 -0
- package/package.json +1 -1
package/dist/cli/recap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../../src/cli/recap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAsDH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../../src/cli/recap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAsDH,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAUzC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,+DAA+D;AAC/D,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,mBAAmB,CAsBrB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,MAAM,CAwCR;AAKD,4EAA4E;AAC5E,wBAAgB,wCAAwC,CACtD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,mBAAmB,CA2BrB;AAID,KAAK,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAI5C,eAAO,MAAM,wBAAwB,gFAI3B,CAAC;AAEX,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAOzE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE,CAKhE;AAuJD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAClD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,cAAc,CAsCjB;AAkQD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAEvE,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,mBAAmB,CAKrB;AAQD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,mBAAuC,GAC5C,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,GACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CA0BxB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAChC,OAAO,CAST;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAM,EACtC,IAAI,GAAE,mBAAuC,GAC5C,OAAO,CAeT;AAUD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAgC,GACzC,MAAM,CAyBR;AA2CD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,MAAM,CA8DR;AASD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAoBT;AAoCD,wBAAgB,0BAA0B,CACxC,KAAK,GAAE;IACL,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,MAAM,CAqBR;AAMD,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAE1C,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,wDACe,CAAC;AAyBxD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAKnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2CxD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvD;AA4HD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAwBR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED,KAAK,eAAe,GAAG;IACrB,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAyKzE;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAyF/B;AAkHD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAgBA;AAED,KAAK,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAkEvD,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAsB,EAC3B,IAAI,GAAE,oBAA6B,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKlC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;gFAC4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CA+HT;AAcD,KAAK,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACxC,CAAC;AAiCF,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAoBhC;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAuCD;AAoCD,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CA0H7E;AA2FD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BnB;AAED,iFAAiF;AACjF,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,uBAAuB,CAAC;CACzC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+CzB;AAYD,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,OAAO,YAAY,EAAE,WAAW,CAAA;CAAE,CAAC;AAwBvE,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,oBAAoB,CAAA;CAAO,GAC7C,MAAM,CAcR;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;AACtC,kEAAkE;AAClE,gBAAgB,GAAE,MAAM,OAAO,CAAC,gBAAgB,CAA2B,GAC1E,OAAO,CAAC,IAAI,CAAC,CAiNf;AA0ED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,EAAE,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAChC,wCAAwC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uDAAuD;IACvD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gFAAgF;IAChF,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kEAAkE;IAClE,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAiBD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACrC,OAAO,CAiBT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG;IACxD,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CA4FA;AAgLD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAQR;AAOD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBxE;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,GAAE;IACL,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GACL,MAAM,CA0BR;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,MAAM,CAUT;AAED,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,IAAI,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,EAAE,OAAO,CAAC;IACd,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,GAC5B,iBAAiB,CAqDnB;AAgLD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmBnE;AA2BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAajE;AA2LD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD5D"}
|
package/dist/cli/recap.js
CHANGED
|
@@ -84,6 +84,7 @@ export const PR_VISUAL_RECAP_SETUP = [
|
|
|
84
84
|
" OPENAI_API_KEY (secret) + VISUAL_RECAP_AGENT=codex (variable) — use Codex instead of Claude",
|
|
85
85
|
" VISUAL_RECAP_MODEL / VISUAL_RECAP_REASONING (variables) — pin the model (e.g. gpt-5.5) and reasoning depth (none|minimal|low|medium|high|xhigh; Codex only)",
|
|
86
86
|
" VISUAL_RECAP_SKILL_SOURCE=repo (variable) — pin CI to the repo-local visual-recap skill instead of latest bundled guidance",
|
|
87
|
+
" VISUAL_RECAP_SECRET_SCAN=off|high-confidence|strict (variable) — default high-confidence; strict restores generic TOKEN/SECRET assignment suppression",
|
|
87
88
|
" PLAN_RECAP_APP_URL (secret) — only when self-hosting the plan app (defaults to https://plan.agent-native.com)",
|
|
88
89
|
];
|
|
89
90
|
/** Write .github/workflows/pr-visual-recap.yml into a repo. */
|
|
@@ -159,6 +160,7 @@ export function buildReusableCallerWorkflow(options = {}) {
|
|
|
159
160
|
` model: ${modelValue}\n` +
|
|
160
161
|
` reasoning: \${{ vars.VISUAL_RECAP_REASONING || '' }}\n` +
|
|
161
162
|
` skill-source: \${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}\n` +
|
|
163
|
+
` secret-scan: \${{ vars.VISUAL_RECAP_SECRET_SCAN || 'high-confidence' }}\n` +
|
|
162
164
|
` # cli-version: "latest" # pin to a specific @agent-native/core version\n` +
|
|
163
165
|
``);
|
|
164
166
|
}
|
|
@@ -571,29 +573,52 @@ function runDoctor(args) {
|
|
|
571
573
|
/* Secret scan — defense-in-depth before any LLM sees the diff */
|
|
572
574
|
/* -------------------------------------------------------------------------- */
|
|
573
575
|
/**
|
|
574
|
-
* If the diff contains
|
|
575
|
-
*
|
|
576
|
-
*
|
|
577
|
-
*
|
|
576
|
+
* If the diff contains a high-confidence secret shape, we refuse to build a
|
|
577
|
+
* recap at all (rather than risk echoing it into a published plan). The default
|
|
578
|
+
* deliberately avoids generic TOKEN/SECRET assignment names because code often
|
|
579
|
+
* contains harmless variable references like `var.webhook_token`.
|
|
578
580
|
*/
|
|
579
|
-
const
|
|
581
|
+
const HIGH_CONFIDENCE_SECRET_PATTERNS = [
|
|
580
582
|
// Common provider key prefixes.
|
|
581
|
-
/\
|
|
583
|
+
/\bsk-(?:proj-)?[A-Za-z0-9_-]{24,}\b/,
|
|
584
|
+
/\b(?:sk|rk)_live_[A-Za-z0-9]{16,}\b/,
|
|
585
|
+
/\bSG\.[A-Za-z0-9_-]{16,}\.[A-Za-z0-9_-]{16,}\b/,
|
|
586
|
+
/\bGOCSPX-[A-Za-z0-9_-]{20,}\b/,
|
|
587
|
+
/\bbpk-[A-Za-z0-9_-]{16,}\b/,
|
|
582
588
|
/\bghp_[A-Za-z0-9]{20,}\b/,
|
|
583
589
|
/\bgithub_pat_[A-Za-z0-9_]{20,}\b/,
|
|
584
590
|
/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/,
|
|
585
591
|
/\bAKIA[0-9A-Z]{16}\b/,
|
|
586
592
|
/\bAIza[0-9A-Za-z_-]{20,}\b/,
|
|
587
593
|
// Bearer / Authorization header values with an actual token.
|
|
588
|
-
/authorization\s*[:=]\s*['"]?bearer\s+[A-Za-z0-9._-]{
|
|
594
|
+
/authorization\s*[:=]\s*['"]?bearer\s+[A-Za-z0-9._-]{20,}/i,
|
|
589
595
|
// Private key blocks.
|
|
590
596
|
/-----BEGIN (?:RSA |EC |OPENSSH |DSA |PGP )?PRIVATE KEY-----/,
|
|
591
|
-
|
|
592
|
-
|
|
597
|
+
];
|
|
598
|
+
const STRICT_SECRET_PATTERNS = [
|
|
599
|
+
...HIGH_CONFIDENCE_SECRET_PATTERNS,
|
|
600
|
+
// Strict mode only: `KEY=...`, `TOKEN=...`, `SECRET=...`, `PASSWORD=...`
|
|
601
|
+
// assigned a real-looking value. This is intentionally not the default; it
|
|
602
|
+
// has produced too many false positives on variable names and CLI flags.
|
|
593
603
|
/\b[A-Z0-9_]*(?:SECRET|TOKEN|PASSWORD|API_KEY|PRIVATE_KEY|ACCESS_KEY)[A-Z0-9_]*\s*[:=]\s*['"]?(?!.*(?:your|example|placeholder|changeme|xxxx|\*\*\*|<|\$\{|process\.env|env\.|REDACTED))[A-Za-z0-9/_+=.-]{16,}/i,
|
|
594
604
|
];
|
|
595
|
-
export function
|
|
596
|
-
|
|
605
|
+
export function normalizeRecapSecretScanMode(value) {
|
|
606
|
+
const mode = (value || "high-confidence").trim().toLowerCase();
|
|
607
|
+
if (mode === "off" || mode === "false" || mode === "disabled")
|
|
608
|
+
return "off";
|
|
609
|
+
if (mode === "strict")
|
|
610
|
+
return "strict";
|
|
611
|
+
return "high-confidence";
|
|
612
|
+
}
|
|
613
|
+
function secretPatternsForMode(mode) {
|
|
614
|
+
if (mode === "off")
|
|
615
|
+
return [];
|
|
616
|
+
if (mode === "strict")
|
|
617
|
+
return STRICT_SECRET_PATTERNS;
|
|
618
|
+
return HIGH_CONFIDENCE_SECRET_PATTERNS;
|
|
619
|
+
}
|
|
620
|
+
export function lineLooksSecret(line, mode = "high-confidence") {
|
|
621
|
+
return secretPatternsForMode(mode).some((re) => re.test(line));
|
|
597
622
|
}
|
|
598
623
|
/**
|
|
599
624
|
* Parse a `.github/recap-scan-allowlist` file into a list of matchers.
|
|
@@ -651,14 +676,16 @@ export function lineMatchesAllowlist(line, allowlist) {
|
|
|
651
676
|
}
|
|
652
677
|
return false;
|
|
653
678
|
}
|
|
654
|
-
export function diffContainsSecret(diffText, allowlist = []) {
|
|
679
|
+
export function diffContainsSecret(diffText, allowlist = [], mode = "high-confidence") {
|
|
680
|
+
if (mode === "off")
|
|
681
|
+
return false;
|
|
655
682
|
for (const line of diffText.split("\n")) {
|
|
656
683
|
if (line.startsWith("+") ||
|
|
657
684
|
line.startsWith("-") ||
|
|
658
685
|
line.startsWith(" ") ||
|
|
659
686
|
line.startsWith("+++") ||
|
|
660
687
|
line.startsWith("---")) {
|
|
661
|
-
if (lineLooksSecret(line) && !lineMatchesAllowlist(line, allowlist))
|
|
688
|
+
if (lineLooksSecret(line, mode) && !lineMatchesAllowlist(line, allowlist))
|
|
662
689
|
return true;
|
|
663
690
|
}
|
|
664
691
|
}
|
|
@@ -1129,6 +1156,15 @@ export function buildRecapCodexMcpConfig(appUrl) {
|
|
|
1129
1156
|
'bearer_token_env_var = "PLAN_RECAP_TOKEN"\n' +
|
|
1130
1157
|
'http_headers = { "X-Agent-Native-MCP-Client" = "agent-native-pr-visual-recap", "X-Agent-Native-MCP-Full-Catalog" = "1" }\n');
|
|
1131
1158
|
}
|
|
1159
|
+
/**
|
|
1160
|
+
* Per-attempt timeout for the non-mutating MCP smoke probe. Short enough that
|
|
1161
|
+
* the workflow's 3-attempt retry loop can recover from a cold-start hang within
|
|
1162
|
+
* the job budget, long enough not to flake on a warm-but-slow response. The
|
|
1163
|
+
* plan app is serverless and intermittently 404s / stalls during a cold start
|
|
1164
|
+
* or mid-deploy; without a bound, undici's multi-minute default header/body
|
|
1165
|
+
* timeout would burn the whole job on a single stuck attempt.
|
|
1166
|
+
*/
|
|
1167
|
+
const RECAP_MCP_SMOKE_TIMEOUT_MS = 15_000;
|
|
1132
1168
|
function recapMcpUrl(appUrl) {
|
|
1133
1169
|
return appUrl.replace(/\/$/, "") + "/_agent-native/mcp";
|
|
1134
1170
|
}
|
|
@@ -1191,6 +1227,10 @@ async function postRecapMcpRpc(input) {
|
|
|
1191
1227
|
method: input.method,
|
|
1192
1228
|
params: input.params ?? {},
|
|
1193
1229
|
}),
|
|
1230
|
+
// Bound each attempt so a cold-start hang fails fast and the workflow's
|
|
1231
|
+
// smoke retry loop can re-probe a (by-then warm) endpoint, instead of
|
|
1232
|
+
// blocking on undici's multi-minute default timeout.
|
|
1233
|
+
signal: AbortSignal.timeout(RECAP_MCP_SMOKE_TIMEOUT_MS),
|
|
1194
1234
|
});
|
|
1195
1235
|
const raw = await response.text().catch((err) => String(err));
|
|
1196
1236
|
if (!response.ok) {
|
|
@@ -1572,6 +1612,7 @@ export function buildRecapPrompt(input) {
|
|
|
1572
1612
|
: ""}${prSourceUrl
|
|
1573
1613
|
? `, and also passing \`sourceUrl: "${prSourceUrl}"\` so the hosted recap page can link back to the PR`
|
|
1574
1614
|
: ""}.`);
|
|
1615
|
+
lines.push("If `create-visual-recap` returns validation feedback about empty or invalid wireframes, make one immediate correction pass in this same process: revise the named WireframeBlock/Artboard MDX so each frame has real visible product text/controls, then call `create-visual-recap` again. Do not write `recap-url.txt` until the tool succeeds.");
|
|
1575
1616
|
lines.push(`2. Write the plan URL to a file named \`recap-url.txt\` at the repo root, containing exactly one line: \`${appUrl}/recaps/<the returned plan id>\`. This file is the workflow's only hand-off — do not print anything else as the deliverable.`);
|
|
1576
1617
|
lines.push(`3. (Fallback only — skip if step 1 succeeded) If \`create-visual-recap\` does not accept a \`visibility\` parameter (older server), call the **set-resource-visibility** tool with \`{ resourceType: "plan", resourceId: <the returned plan id>, visibility: "org" }\` after publishing.`);
|
|
1577
1618
|
}
|
|
@@ -1703,7 +1744,7 @@ export function buildCommentBody(env = process.env) {
|
|
|
1703
1744
|
// transient failure does not orphan the plan.
|
|
1704
1745
|
const prevPlanId = (env.PREV_PLAN_ID || "").trim() || null;
|
|
1705
1746
|
if (env.SUPPRESSED === "true") {
|
|
1706
|
-
let reason = "
|
|
1747
|
+
let reason = "high-confidence secret in diff";
|
|
1707
1748
|
try {
|
|
1708
1749
|
const parsed = JSON.parse(env.SUPPRESSED_JSON || "{}");
|
|
1709
1750
|
if (parsed && typeof parsed.reason === "string")
|
|
@@ -1721,9 +1762,9 @@ export function buildCommentBody(env = process.env) {
|
|
|
1721
1762
|
lines.push("", `<!-- plan-id: ${prevPlanId} -->`);
|
|
1722
1763
|
return lines.join("\n");
|
|
1723
1764
|
}
|
|
1724
|
-
// Tiny diffs aren't worth a recap.
|
|
1725
|
-
//
|
|
1726
|
-
// links do not linger on no-op changes.
|
|
1765
|
+
// Tiny diffs aren't worth a recap. The workflow upserts this state as a sticky
|
|
1766
|
+
// comment (created or updated) so the too-small outcome is explained and stale
|
|
1767
|
+
// recap links do not linger on no-op changes.
|
|
1727
1768
|
if (env.DIFF_TINY === "true") {
|
|
1728
1769
|
lines.push("### Visual recap — skipped (diff too small)");
|
|
1729
1770
|
lines.push("");
|
|
@@ -1782,21 +1823,17 @@ export function buildCommentBody(env = process.env) {
|
|
|
1782
1823
|
const fallbackImageUrl = lightImageUrl || darkImageUrl;
|
|
1783
1824
|
lines.push(`Here's a [visual recap](${safeUrl}) of what changed:`);
|
|
1784
1825
|
lines.push("");
|
|
1785
|
-
|
|
1786
|
-
lines.push("");
|
|
1787
|
-
if (lightImageUrl && darkImageUrl) {
|
|
1826
|
+
if (fallbackImageUrl) {
|
|
1788
1827
|
lines.push(`<a href="${safeUrl}">`);
|
|
1789
1828
|
lines.push(`<picture>`);
|
|
1790
|
-
|
|
1791
|
-
|
|
1829
|
+
if (lightImageUrl && darkImageUrl) {
|
|
1830
|
+
lines.push(` <source media="(prefers-color-scheme: dark)" srcset="${darkImageUrl}">`);
|
|
1831
|
+
}
|
|
1832
|
+
lines.push(` <img alt="Visual recap" src="${fallbackImageUrl}">`);
|
|
1792
1833
|
lines.push(`</picture>`);
|
|
1793
1834
|
lines.push(`</a>`);
|
|
1794
1835
|
lines.push("");
|
|
1795
1836
|
}
|
|
1796
|
-
else if (fallbackImageUrl) {
|
|
1797
|
-
lines.push(`[](${safeUrl})`);
|
|
1798
|
-
lines.push("");
|
|
1799
|
-
}
|
|
1800
1837
|
lines.push(`**[Open the full interactive recap](${safeUrl})**`);
|
|
1801
1838
|
if (env.DIFF_HUGE === "true") {
|
|
1802
1839
|
lines.push("");
|
|
@@ -1811,15 +1848,19 @@ export function buildCommentBody(env = process.env) {
|
|
|
1811
1848
|
function runScan(args) {
|
|
1812
1849
|
const diffPath = stringArg(args, "diff");
|
|
1813
1850
|
const diffText = fs.readFileSync(path.resolve(diffPath), "utf8");
|
|
1851
|
+
const mode = normalizeRecapSecretScanMode(optionalArg(args, "mode") ?? process.env.VISUAL_RECAP_SECRET_SCAN);
|
|
1814
1852
|
// Load the optional consumer-repo allowlist to suppress known false positives.
|
|
1815
1853
|
const allowlistPath = optionalArg(args, "allowlist") ??
|
|
1816
1854
|
path.join(process.cwd(), ".github", "recap-scan-allowlist");
|
|
1817
1855
|
const allowlist = parseRecapScanAllowlist(allowlistPath);
|
|
1818
|
-
if (diffContainsSecret(diffText, allowlist)) {
|
|
1819
|
-
|
|
1856
|
+
if (diffContainsSecret(diffText, allowlist, mode)) {
|
|
1857
|
+
const reason = mode === "strict"
|
|
1858
|
+
? "strict secret-pattern match in diff"
|
|
1859
|
+
: "high-confidence secret in diff";
|
|
1860
|
+
process.stdout.write(`${JSON.stringify({ suppressed: true, reason, mode })}\n`);
|
|
1820
1861
|
}
|
|
1821
1862
|
else {
|
|
1822
|
-
process.stdout.write(`${JSON.stringify({ suppressed: false })}\n`);
|
|
1863
|
+
process.stdout.write(`${JSON.stringify({ suppressed: false, mode })}\n`);
|
|
1823
1864
|
}
|
|
1824
1865
|
}
|
|
1825
1866
|
function runBuildPrompt(args) {
|
|
@@ -2296,11 +2337,17 @@ export function evaluateRecapGate(input) {
|
|
|
2296
2337
|
reasons.push("no pull_request payload");
|
|
2297
2338
|
if (pr && pr.draft)
|
|
2298
2339
|
reasons.push("draft PR");
|
|
2299
|
-
// Fork PRs
|
|
2300
|
-
//
|
|
2340
|
+
// Fork PRs only receive repo secrets when the org/repo opts into GitHub's
|
|
2341
|
+
// "Send secrets to workflows from pull requests" setting (common in private
|
|
2342
|
+
// orgs that use forks heavily). The real gate is therefore secret
|
|
2343
|
+
// availability, not fork-ness: run on forks that have the publish token, and
|
|
2344
|
+
// skip — with an actionable hint — those that don't. The recap never executes
|
|
2345
|
+
// PR-head code and adds a prompt-injection note for fork diffs, so a trusted
|
|
2346
|
+
// same-org fork is no riskier than a same-org branch PR.
|
|
2301
2347
|
const headRepo = pr && pr.head && pr.head.repo && pr.head.repo.full_name;
|
|
2302
|
-
|
|
2303
|
-
|
|
2348
|
+
const isFork = Boolean(pr && headRepo && headRepo !== input.repository);
|
|
2349
|
+
if (isFork && !input.hasPlan) {
|
|
2350
|
+
reasons.push(`fork PR (${headRepo}) without secret access — enable "Send secrets to workflows from pull requests" (and write tokens) in the repo/org Actions settings to run recaps on forks`);
|
|
2304
2351
|
}
|
|
2305
2352
|
// Skip noisy automated authors.
|
|
2306
2353
|
const login = ((pr && pr.user && pr.user.login) || "").toLowerCase();
|
|
@@ -2315,8 +2362,9 @@ export function evaluateRecapGate(input) {
|
|
|
2315
2362
|
if (pr && pr.user && pr.user.type === "Bot")
|
|
2316
2363
|
reasons.push("bot author (type=Bot)");
|
|
2317
2364
|
// Publish secret must be configured — otherwise this is a no-op so the
|
|
2318
|
-
// workflow can be merged before secrets exist.
|
|
2319
|
-
|
|
2365
|
+
// workflow can be merged before secrets exist. Forks get the fork-specific
|
|
2366
|
+
// hint above instead of this generic one.
|
|
2367
|
+
if (!isFork && !input.hasPlan)
|
|
2320
2368
|
reasons.push("PLAN_RECAP_TOKEN not configured");
|
|
2321
2369
|
// The chosen backend's API key must be present. Normalize the agent value once
|
|
2322
2370
|
// here and validate it: an unknown or mis-cased value (e.g. "Claude", "gpt")
|
|
@@ -2465,9 +2513,8 @@ async function runGate() {
|
|
|
2465
2513
|
console.log(run
|
|
2466
2514
|
? `Visual recap will run (${decision.agent}).`
|
|
2467
2515
|
: `Visual recap skipped: ${reasons.join("; ")}`);
|
|
2468
|
-
// When gate skips, refresh
|
|
2469
|
-
//
|
|
2470
|
-
// exists (no spam for repos where the recap has never run).
|
|
2516
|
+
// When gate skips, post or refresh a sticky comment with a short skip line so
|
|
2517
|
+
// users are not left guessing whether the recap job ran.
|
|
2471
2518
|
if (!run) {
|
|
2472
2519
|
const ghToken = process.env.GH_TOKEN || process.env.GITHUB_TOKEN || "";
|
|
2473
2520
|
const prNumber = process.env.PR_NUMBER ||
|
|
@@ -2487,17 +2534,14 @@ async function runGate() {
|
|
|
2487
2534
|
repo,
|
|
2488
2535
|
issue: prNumber,
|
|
2489
2536
|
});
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
updateOnly: true,
|
|
2499
|
-
});
|
|
2500
|
-
}
|
|
2537
|
+
const updatedBody = appendGateSkipLine(existing?.body ?? buildGateSkipCommentBody(), skipLine);
|
|
2538
|
+
await upsertComment({
|
|
2539
|
+
token: ghToken,
|
|
2540
|
+
owner,
|
|
2541
|
+
repo,
|
|
2542
|
+
issue: prNumber,
|
|
2543
|
+
body: updatedBody,
|
|
2544
|
+
});
|
|
2501
2545
|
}
|
|
2502
2546
|
catch {
|
|
2503
2547
|
// Best-effort — never fail the gate step over a comment update.
|
|
@@ -2516,6 +2560,13 @@ export function buildGateSkipLine(reason, headShort) {
|
|
|
2516
2560
|
const shaRef = headShort ? `\`${headShort}\`` : "latest push";
|
|
2517
2561
|
return `_Recap skipped for ${shaRef}: ${reason}._`;
|
|
2518
2562
|
}
|
|
2563
|
+
export function buildGateSkipCommentBody() {
|
|
2564
|
+
return [
|
|
2565
|
+
"### Visual recap — skipped",
|
|
2566
|
+
"",
|
|
2567
|
+
"The visual recap job did not run for this pull request. This is informational only and does **not** block the PR.",
|
|
2568
|
+
].join("\n");
|
|
2569
|
+
}
|
|
2519
2570
|
/**
|
|
2520
2571
|
* Append (or replace the last gate-skip line in) a sticky comment body.
|
|
2521
2572
|
* Idempotent: calling it twice with different skip lines replaces the old one.
|
|
@@ -2651,7 +2702,7 @@ export function recapCheckOutcome(input) {
|
|
|
2651
2702
|
text = "";
|
|
2652
2703
|
}
|
|
2653
2704
|
else if (input.suppressed) {
|
|
2654
|
-
let reason = "
|
|
2705
|
+
let reason = "high-confidence secret in diff";
|
|
2655
2706
|
try {
|
|
2656
2707
|
const parsed = JSON.parse(input.suppressedJson || "{}");
|
|
2657
2708
|
if (parsed && typeof parsed.reason === "string")
|
|
@@ -3014,7 +3065,7 @@ Usage:
|
|
|
3014
3065
|
npx @agent-native/core@latest recap collect-diff --base <baseSha> --head <headSha> [--out recap.diff] [--stat recap.stat]
|
|
3015
3066
|
npx @agent-native/core@latest recap mcp-config --agent claude|codex --app-url <url> [--out <path>]
|
|
3016
3067
|
npx @agent-native/core@latest recap mcp-smoke [--app-url <url>] [--token <planToken>]
|
|
3017
|
-
npx @agent-native/core@latest recap scan --diff <path>
|
|
3068
|
+
npx @agent-native/core@latest recap scan --diff <path> [--mode off|high-confidence|strict]
|
|
3018
3069
|
npx @agent-native/core@latest recap build-prompt --pr <n> [--repo owner/name] [--head <sha>] [--app-url <url>] [--diff <path>] [--stat <path>] [--prev-plan-id <id>] [--huge] [--local-files] [--local-dir <folder>] [--skill-source auto|latest|repo] [--out <path>]
|
|
3019
3070
|
npx @agent-native/core@latest recap shot --url <planUrl> [--token <planToken>] [--app-url <url>] [--out recap.png] [--theme light|dark]
|
|
3020
3071
|
npx @agent-native/core@latest recap usage --plan-url <planUrl> --result-file <path> --app-url <url> --token <planToken> [--agent claude|codex] [--model <id>]
|
|
@@ -3047,6 +3098,11 @@ Usage:
|
|
|
3047
3098
|
Read the captured Claude/Codex result file and write a sanitized one-line
|
|
3048
3099
|
summary to stdout and $GITHUB_OUTPUT (summary). Used only when no plan URL
|
|
3049
3100
|
was produced, so PR comments/checks explain the actual failure.
|
|
3101
|
+
npx @agent-native/core@latest recap scan
|
|
3102
|
+
Default mode is high-confidence. It suppresses only obvious credential
|
|
3103
|
+
shapes such as private key blocks and known provider token prefixes. Set
|
|
3104
|
+
VISUAL_RECAP_SECRET_SCAN=strict, or pass --mode strict, to restore generic
|
|
3105
|
+
TOKEN/SECRET assignment suppression; set off to disable this preflight.
|
|
3050
3106
|
npx @agent-native/core@latest recap mcp-smoke
|
|
3051
3107
|
Non-mutating Plan MCP JSON-RPC smoke test. Calls initialize + tools/list
|
|
3052
3108
|
against PLAN_RECAP_APP_URL / PLAN_RECAP_TOKEN and requires get-plan-blocks,
|