@aviaratech/ai-delivery 0.3.4 → 0.3.5
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 +87 -19
- package/dist/agent.d.ts +2 -0
- package/dist/agent.js +1 -0
- package/dist/agent.js.map +1 -1
- package/dist/cli.js +43 -2
- package/dist/cli.js.map +1 -1
- package/dist/dispatch.js +18 -0
- package/dist/dispatch.js.map +1 -1
- package/dist/github/client.d.ts +1 -0
- package/dist/github/client.js +4 -1
- package/dist/github/client.js.map +1 -1
- package/dist/github/commandIdentityPolicy.js +2 -0
- package/dist/github/commandIdentityPolicy.js.map +1 -1
- package/dist/issue.js +2 -0
- package/dist/issue.js.map +1 -1
- package/dist/lifecycle.test.js +423 -28
- package/dist/lifecycle.test.js.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/tools.d.ts +32 -0
- package/dist/mcp/tools.js +39 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/pr.d.ts +3 -3
- package/dist/pr.js +10 -6
- package/dist/pr.js.map +1 -1
- package/dist/review.test.js +163 -0
- package/dist/review.test.js.map +1 -1
- package/dist/services/deliveryAdmission.d.ts +13 -2
- package/dist/services/deliveryAdmission.js +41 -2
- package/dist/services/deliveryAdmission.js.map +1 -1
- package/dist/setup.d.ts +58 -0
- package/dist/setup.js +415 -0
- package/dist/setup.js.map +1 -0
- package/dist/setup.test.d.ts +1 -0
- package/dist/setup.test.js +744 -0
- package/dist/setup.test.js.map +1 -0
- package/dist/verification.d.ts +5 -0
- package/dist/verification.js +72 -3
- package/dist/verification.js.map +1 -1
- package/package.json +1 -1
- package/plugins/ai-delivery/.claude-plugin/plugin.json +1 -1
- package/plugins/ai-delivery/README.md +1 -1
- package/plugins/ai-delivery/skills/worktree-lifecycle/SKILL.md +3 -0
package/dist/issue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../src/issue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../src/issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAsB,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,qCAAqC,EACrC,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,qBAAqB,EAErB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAA6B,MAAM,qCAAqC,CAAC;AACxG,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAWvE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAKzC;IACC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,IAAI,EACJ,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAC7E,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC;QAChD,MAAM;QACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,MAAM,oBAAoB,GAAiC;QACzD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;QAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,QAAQ,EAAE,iCAAiC,CAAC,MAAM,CAAC;QACnD,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5G,CAAC;AAED,SAAS,MAAM,CAAC,KAAoC;IAClD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC;IAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpH,MAAM,IAAI,aAAa,CAAC,+DAA+D,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC;AAcD,MAAM,OAAO,yBAA0B,SAAQ,aAAa;IAE/C;IADX,YACW,OAAuD,EAChE,KAAc;QAEd,KAAK,CACH,UAAU,OAAO,CAAC,MAAM,sDAAsD,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAC/I,CAAC;QALO,YAAO,GAAP,OAAO,CAAgD;IAMlE,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAwB,EACxB,KAAuB;IAMvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACjG,MAAM,IAAI,aAAa,CAAC,oCAAoC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpG,MAAM,IAAI,aAAa,CAAC,wCAAwC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,gCAAgC,CAAC;QACrD,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;QAC/B,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChG,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC,CAAC;IACH,KAAK,MAAM,OAAO,IAAI,IAAI,GAAG,CAC3B,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CACjH,EAAE,CAAC;QACF,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;KACpE,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACxC,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC5D,MAAM,gCAAgC,CAAC;gBACrC,WAAW;gBACX,QAAQ,EAAE;oBACR,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/D,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;iBACtE;gBACD,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,qCAAqC,CAAC,MAAM,CAAC;aACxD,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACvC,MAAM,kBAAkB,CAAC;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW;gBACX,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACvC,MAAM,gCAAgC,CAAC;gBACrC,WAAW,EAAE,KAAK,CAAC,iBAAiB;gBACpC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,qCAAqC,CAAC,MAAM,CAAC;aACxD,CAAC,CAAC;QACL,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YACpC,MAAM,gBAAgB,CAAC;gBACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;gBAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW;gBACX,IAAI;gBACJ,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,MAAM,sBAAsB,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YACjC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YAC/B,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,QAAQ,EAAE,iCAAiC,CAAC,MAAM,CAAC;YACnD,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;SACnE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,yBAAyB,CACjC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAC9E,KAAK,CACN,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;QAC3C,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;KACxF,CAAC;AACJ,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAwB,EACxB,KAAuB;IAEvB,4BAA4B,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1C,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACzF,MAAM,IAAI,aAAa,CAAC,oCAAoC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,aAAa,CAAC,sCAAsC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,aAAa,CAAC,wCAAwC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI;SACL,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;YACtB,OAAO,CAAC,YAAY;YACpB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;YACpD,KAAK,CAAC,iBAAiB;YACvB,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;SAC3B,CAAC,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;gBAAE,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAC/B,MAAM,gCAAgC,CAAC;YACrC,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/B,YAAY,EAAE,KAAK,CAAC,WAAW;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;KAC7D,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC5D,MAAM,gCAAgC,CAAC;YACrC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE;gBACR,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC/D,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;aACtE;YACD,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,qCAAqC,CAAC,MAAM,CAAC;SACxD,CAAC,CAAC;IACL,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;QACvC,MAAM,kBAAkB,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,iBAAiB,KAAK,IAAI;QAC3E,MAAM,gCAAgC,CAAC;YACrC,WAAW,EAAE,KAAK,CAAC,iBAAiB;YACpC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,qCAAqC,CAAC,MAAM,CAAC;SACxD,CAAC,CAAC;IACL,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAC/B,MAAM,gBAAgB,CAAC;YACrB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,yGAAyG;AACzG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAwB,EAAE,KAAuB;IACxF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjH,MAAM,sBAAsB,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;QAChC,WAAW,EAAE,KAAK,CAAC,OAAO;QAC1B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY;QACvC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,QAAQ,EAAE,iCAAiC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KACvD,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAkBD,SAAS,iBAAiB,CAAC,QAAgB,EAAE,WAAmB;IAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,WAAW,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,WAAmB;IACnE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC;QAAE,MAAM,IAAI,aAAa,CAAC,gCAAgC,CAAC,CAAC;IACtH,IAAI,QAAiB,CAAC;IACtB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;IACnG,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,QAAmC,CAAC;IACvE,IACE,OAAO,CAAC,aAAa,KAAK,0BAA0B;QACpD,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;QACnC,OAAO,UAAU,KAAK,QAAQ;QAC9B,UAAU,KAAK,WAAW,CAAC,OAAO,CAAC;QACnC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;QACjC,OAAO,CAAC,KAAK,KAAK,IAAI;QACrB,OAAO,CAAC,KAAiC,CAAC,WAAW,KAAK,WAAW,EACtE,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,8CAA8C,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC,KAA6B,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAwB,EAAE,WAAmB;IAC3E,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtH,IAAI,cAAc,IAAI,KAAK;QAAE,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;IAClG,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,gCAAgC,CAAC;YAC/B,WAAW;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,qCAAqC,CAAC,MAAM,CAAC;SACxD,CAAC;QACF,6BAA6B,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC9E,qBAAqB,CAAC;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,KAAK,CAAC,OAAO;YAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;YAC/B,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,QAAQ,EAAE,iCAAiC,CAAC,MAAM,CAAC;SACpD,CAAC;KACH,CAAC,CAAC;IACH,MAAM,IAAI,GAAc;QACtB,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAChH,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,WAAW;QACX,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI;QACnC,iBAAiB,EAAE,aAAa,CAAC,YAAY;QAC7C,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrE,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC3E,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,KAAK,CAAC,QAAQ;QACnB,QAAQ,EAAE,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI;KACtE,CAAC;IACF,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,0BAAmC;KACnD,CAAC;IACF,8BAA8B,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;QAC3E,GAAG,OAAO;QACV,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC;KACjC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAwB,EAAE,WAAmB;IACpF,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3G,IAAI,cAAc,IAAI,KAAK;QAAE,MAAM,IAAI,aAAa,CAAC,2CAA2C,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;QAC9F,GAAG,OAAO,CAAC,IAAI;QACf,YAAY,EAAE,WAAW;QACzB,QAAQ,EAAE,GAAG;KACd,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAwB,EAAE,WAAmB;IAC5E,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjH,OAAO,sBAAsB,CAAC;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAwB,EACxB,WAAmB;IAEnB,MAAM,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClH,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ;QACjC,MAAM,IAAI,aAAa,CAAC,UAAU,WAAW,0CAA0C,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS,CAAC,KAAK;QAClB,MAAM,IAAI,aAAa,CACrB,UAAU,WAAW,kBAAkB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;IACJ,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ;QAC9C,WAAW;QACX,QAAQ,EAAE,OAAO,CAAC,IAAI;KACvB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3G,MAAM,sBAAsB,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;QAChC,WAAW,EAAE,KAAK,CAAC,OAAO;QAC1B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY;QACvC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,QAAQ,EAAE,iCAAiC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3D,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC"}
|
package/dist/lifecycle.test.js
CHANGED
|
@@ -13,7 +13,7 @@ import { AI_DELIVERY_MCP_TOOLS } from './mcp/tools.js';
|
|
|
13
13
|
import { createAiDeliveryMcpServer } from './mcp/index.js';
|
|
14
14
|
import { loadDeliveryConfig, parseDeliveryConfig } from './config/deliveryConfig.js';
|
|
15
15
|
import { digestValue } from './delivery/index.js';
|
|
16
|
-
import { executeTool, resumedIssueUpdate, startTrackedIssue } from './dispatch.js';
|
|
16
|
+
import { contextFor, executeTool, resumedIssueUpdate, startTrackedIssue } from './dispatch.js';
|
|
17
17
|
import { defaultBaseRef, gitCommonDir } from './git.js';
|
|
18
18
|
import * as githubClient from './github/client.js';
|
|
19
19
|
import * as atomicJson from './utils/atomicJson.js';
|
|
@@ -329,7 +329,7 @@ export default {
|
|
|
329
329
|
mkdirSync(dirname(path), { recursive: true });
|
|
330
330
|
}
|
|
331
331
|
writeFileSync(runtimeEntryPath, 'synthetic CLI bytes\n');
|
|
332
|
-
writeFileSync(packagePath, JSON.stringify({ name: '@aviaratech/ai-delivery', version: '0.1.0' }));
|
|
332
|
+
writeFileSync(packagePath, JSON.stringify({ name: '@aviaratech/ai-delivery', version: '0.1.0', bin: { 'ai-delivery': './dist/cli.js' } }));
|
|
333
333
|
writeFileSync(mcpLauncherPath, 'synthetic MCP launcher bytes\n');
|
|
334
334
|
writeFileSync(pluginManifestPath, JSON.stringify({ name: 'ai-delivery', packageVersion: '0.1.0', deliveryCapabilityVersion: 2 }));
|
|
335
335
|
const content = {
|
|
@@ -351,7 +351,8 @@ export default {
|
|
|
351
351
|
};
|
|
352
352
|
const admissionPath = join(root, '.git', 'ai-delivery', 'runtime-admission.json');
|
|
353
353
|
mkdirSync(dirname(admissionPath), { recursive: true });
|
|
354
|
-
|
|
354
|
+
if (!options.omitRuntimeAdmission)
|
|
355
|
+
writeFileSync(admissionPath, JSON.stringify({ ...content, admissionId: digestValue(content) }), { mode: 0o600 });
|
|
355
356
|
return { root, counter, secondCounter, failSecond, runtimeEntryPath };
|
|
356
357
|
}
|
|
357
358
|
catch (error) {
|
|
@@ -1879,6 +1880,37 @@ test('filesystem output from a sampled detached child crosses its declared root
|
|
|
1879
1880
|
rmSync(root, { recursive: true, force: true });
|
|
1880
1881
|
}
|
|
1881
1882
|
});
|
|
1883
|
+
test('contained npm bin aliases are counted once and target growth still enforces the output bound', async () => {
|
|
1884
|
+
const outside = realpathSync(mkdtempSync(join(tmpdir(), 'ai-delivery-contained-alias-')));
|
|
1885
|
+
const target = join(outside, 'output', 'actual');
|
|
1886
|
+
const { root } = await fixture({
|
|
1887
|
+
firstStageScript: `require('fs').appendFileSync(${JSON.stringify(target)},'x'.repeat(512));`,
|
|
1888
|
+
});
|
|
1889
|
+
try {
|
|
1890
|
+
mkdirSync(dirname(target));
|
|
1891
|
+
writeFileSync(target, 'baseline');
|
|
1892
|
+
symlinkSync('./actual', join(dirname(target), 'alias'));
|
|
1893
|
+
const row = await prepareIssueWorktree({
|
|
1894
|
+
baseRef: 'main',
|
|
1895
|
+
identity: 'synthetic-author',
|
|
1896
|
+
issueNumber: 17,
|
|
1897
|
+
repoRoot: root,
|
|
1898
|
+
});
|
|
1899
|
+
const bounds = {
|
|
1900
|
+
maxAggregateRssBytes: 1_000_000_000,
|
|
1901
|
+
minFreeDiskBytes: 1,
|
|
1902
|
+
maxNewOutputBytes: 600,
|
|
1903
|
+
outputRoots: [dirname(target)],
|
|
1904
|
+
};
|
|
1905
|
+
const run = await verifyIssue({ issueNumber: 17, repoRoot: row.path, resourceBounds: bounds });
|
|
1906
|
+
assert.equal(run.resources?.maxSampledNewOutputBytes, 512);
|
|
1907
|
+
await assert.rejects(verifyIssue({ issueNumber: 17, repoRoot: row.path, resourceBounds: { ...bounds, maxNewOutputBytes: 100 } }), /filesystem output.*exceeded/u);
|
|
1908
|
+
}
|
|
1909
|
+
finally {
|
|
1910
|
+
rmSync(root, { recursive: true, force: true });
|
|
1911
|
+
rmSync(outside, { recursive: true, force: true });
|
|
1912
|
+
}
|
|
1913
|
+
});
|
|
1882
1914
|
test('a symbolic link in declared output roots fails before publishing sampled output evidence', async () => {
|
|
1883
1915
|
const { root } = await fixture();
|
|
1884
1916
|
const outside = mkdtempSync(join(tmpdir(), 'ai-delivery-output-link-'));
|
|
@@ -2525,8 +2557,228 @@ test('scratch start derives safe names and reports the requested worktree', asyn
|
|
|
2525
2557
|
rmSync(root, { recursive: true, force: true });
|
|
2526
2558
|
}
|
|
2527
2559
|
});
|
|
2560
|
+
test.each(['direct-develop', 'direct-start', 'develop', 'existing-start', 'new-start', 'scratch', 'standalone'])('development access preflight rejects absent reviewer credentials before %s preparation', async (entry) => {
|
|
2561
|
+
const { root, runtimeEntryPath } = await fixture();
|
|
2562
|
+
const admissionPath = join(root, '.git', 'ai-delivery', 'runtime-admission.json');
|
|
2563
|
+
const admissionBefore = readFileSync(admissionPath, 'utf8');
|
|
2564
|
+
const syntheticClients = githubClient.createDeliveryGitHubClients;
|
|
2565
|
+
const actual = await vi.importActual('./github/client.js');
|
|
2566
|
+
const mocked = vi
|
|
2567
|
+
.spyOn(githubClient, 'createDeliveryGitHubClients')
|
|
2568
|
+
.mockImplementation((input) => input.role === 'reviewer' ? actual.createDeliveryGitHubClients({ ...input, env: {} }) : syntheticClients(input));
|
|
2569
|
+
const execution = { repoRoot: root, runtimeEntryPath, identity: 'synthetic-author' };
|
|
2570
|
+
const tracking = {
|
|
2571
|
+
title: 'Synthetic change',
|
|
2572
|
+
body: '## Outcome\nDeliver a verified change.\n\n## Scope\n- `artifact.txt`\n\n## Acceptance Criteria\n- [ ] Change is verified\n- [ ] Review is recorded\n\n## Verification\nRun `node --version`.',
|
|
2573
|
+
points: 2,
|
|
2574
|
+
develop: true,
|
|
2575
|
+
};
|
|
2576
|
+
try {
|
|
2577
|
+
const run = async () => {
|
|
2578
|
+
if (entry === 'direct-develop' || entry === 'direct-start') {
|
|
2579
|
+
const context = await contextFor(execution, 'develop');
|
|
2580
|
+
return entry === 'direct-develop' ? developIssue(context, 17) : startTrackedIssue(context, tracking);
|
|
2581
|
+
}
|
|
2582
|
+
if (entry === 'develop')
|
|
2583
|
+
return executeTool('issue_develop', { issueNumber: 17 }, execution);
|
|
2584
|
+
if (entry === 'existing-start')
|
|
2585
|
+
return executeTool('issue_start', { issueNumber: 17 }, execution);
|
|
2586
|
+
if (entry === 'new-start')
|
|
2587
|
+
return executeTool('issue_start', tracking, execution);
|
|
2588
|
+
if (entry === 'scratch')
|
|
2589
|
+
return executeTool('issue_start', { scratch: true, request: 'Inspect parser' }, execution);
|
|
2590
|
+
return executeTool('issue_worktree_create', { name: 'scratch-access', branch: 'scratch/access' }, execution);
|
|
2591
|
+
};
|
|
2592
|
+
await assert.rejects(run(), /Missing GitHub App credentials for reviewer role/u);
|
|
2593
|
+
assert.equal(existsSync(join(root, '.worktrees')), false);
|
|
2594
|
+
assert.equal(existsSync(join(root, '.issue-cli', 'worktrees.json')), false);
|
|
2595
|
+
assert.equal(readFileSync(admissionPath, 'utf8'), admissionBefore);
|
|
2596
|
+
}
|
|
2597
|
+
finally {
|
|
2598
|
+
mocked.mockRestore();
|
|
2599
|
+
rmSync(root, { recursive: true, force: true });
|
|
2600
|
+
}
|
|
2601
|
+
});
|
|
2602
|
+
test.each(['author-source', 'author-readback', 'same-actor', 'reviewer-repository'])('development access preflight rejects a mismatched %s route before issue reads or writes', async (failure) => {
|
|
2603
|
+
const { root, runtimeEntryPath } = await fixture({ personalAuthor: true });
|
|
2604
|
+
const syntheticClients = githubClient.createDeliveryGitHubClients;
|
|
2605
|
+
const mocked = vi.spyOn(githubClient, 'createDeliveryGitHubClients').mockImplementation(async (input) => {
|
|
2606
|
+
const clients = await syntheticClients(input);
|
|
2607
|
+
if (input.role === 'author' && failure === 'author-source')
|
|
2608
|
+
return { ...clients, authSource: 'app' };
|
|
2609
|
+
if (input.role === 'author' && failure === 'author-readback')
|
|
2610
|
+
return { ...clients, authenticatedAuthor: async () => ({ actorLogin: '', credentialIdentity: '' }) };
|
|
2611
|
+
if (input.role === 'reviewer' && failure === 'same-actor')
|
|
2612
|
+
return { ...clients, appActorLogin: async () => 'host-user' };
|
|
2613
|
+
if (input.role === 'reviewer' && failure === 'reviewer-repository')
|
|
2614
|
+
Object.assign(clients.rest.repos, { get: async () => ({ data: { full_name: 'example/other' } }) });
|
|
2615
|
+
return clients;
|
|
2616
|
+
});
|
|
2617
|
+
try {
|
|
2618
|
+
const context = await contextFor({ repoRoot: root, runtimeEntryPath, identity: 'host-author' }, 'develop');
|
|
2619
|
+
await assert.rejects(developIssue(context, 17), {
|
|
2620
|
+
'author-source': /requires the configured author credential/u,
|
|
2621
|
+
'author-readback': /Author GitHub identity readback is incomplete/u,
|
|
2622
|
+
'same-actor': /same GitHub actor/u,
|
|
2623
|
+
'reviewer-repository': /repository readback disagrees/u,
|
|
2624
|
+
}[failure]);
|
|
2625
|
+
assert.equal(existsSync(join(root, '.worktrees')), false);
|
|
2626
|
+
assert.equal(existsSync(join(root, '.git', 'ai-delivery', 'issue-info')), false);
|
|
2627
|
+
}
|
|
2628
|
+
finally {
|
|
2629
|
+
mocked.mockRestore();
|
|
2630
|
+
rmSync(root, { recursive: true, force: true });
|
|
2631
|
+
}
|
|
2632
|
+
});
|
|
2633
|
+
test('development access preflight permits the configured host author and independent App with unreadable rules', async () => {
|
|
2634
|
+
const { root, runtimeEntryPath } = await fixture({ personalAuthor: true });
|
|
2635
|
+
const admissionPath = join(root, '.git', 'ai-delivery', 'runtime-admission.json');
|
|
2636
|
+
const admissionBefore = readFileSync(admissionPath, 'utf8');
|
|
2637
|
+
try {
|
|
2638
|
+
const row = (await executeTool('issue_worktree_create', { name: 'scratch-host', branch: 'scratch/host' }, { repoRoot: root, runtimeEntryPath, identity: 'host-author' }));
|
|
2639
|
+
assert.equal(row.identity, 'host-author');
|
|
2640
|
+
assert.equal(row.path, join(root, '.worktrees', 'scratch-host'));
|
|
2641
|
+
assert.equal(existsSync(row.path), true);
|
|
2642
|
+
assert.equal(readFileSync(admissionPath, 'utf8'), admissionBefore);
|
|
2643
|
+
}
|
|
2644
|
+
finally {
|
|
2645
|
+
rmSync(root, { recursive: true, force: true });
|
|
2646
|
+
}
|
|
2647
|
+
});
|
|
2648
|
+
test.each([
|
|
2649
|
+
'direct-develop',
|
|
2650
|
+
'direct-start',
|
|
2651
|
+
'develop',
|
|
2652
|
+
'existing-start',
|
|
2653
|
+
'new-start',
|
|
2654
|
+
'scratch',
|
|
2655
|
+
'standalone',
|
|
2656
|
+
'config-resolve',
|
|
2657
|
+
])('development access preflight preserves the explicit personal override for %s', async (entry) => {
|
|
2658
|
+
const { root, runtimeEntryPath } = await fixture();
|
|
2659
|
+
const admissionPath = join(root, '.git', 'ai-delivery', 'runtime-admission.json');
|
|
2660
|
+
const admissionBefore = readFileSync(admissionPath, 'utf8');
|
|
2661
|
+
const factory = githubClient.createDeliveryGitHubClients;
|
|
2662
|
+
const actual = await vi.importActual('./github/client.js');
|
|
2663
|
+
const downstream = new Error('Reached the downstream issue API with the selected author');
|
|
2664
|
+
const selected = vi.spyOn(githubClient, 'createDeliveryGitHubClients').mockImplementation(async (input) => {
|
|
2665
|
+
const clients = await factory(input);
|
|
2666
|
+
if (input.role !== 'author' || input.personalAuth === undefined)
|
|
2667
|
+
return clients;
|
|
2668
|
+
const personal = await actual.createDeliveryGitHubClients({
|
|
2669
|
+
...input,
|
|
2670
|
+
env: { GH_TOKEN: 'synthetic-development-token' },
|
|
2671
|
+
});
|
|
2672
|
+
Object.assign(clients.rest.issues, {
|
|
2673
|
+
get: async () => {
|
|
2674
|
+
throw downstream;
|
|
2675
|
+
},
|
|
2676
|
+
create: async () => {
|
|
2677
|
+
throw downstream;
|
|
2678
|
+
},
|
|
2679
|
+
});
|
|
2680
|
+
Object.assign(clients.rest, { request: async () => Promise.reject(new Error('Rules unavailable')) });
|
|
2681
|
+
return {
|
|
2682
|
+
...personal,
|
|
2683
|
+
graphql: clients.graphql,
|
|
2684
|
+
rest: clients.rest,
|
|
2685
|
+
authenticatedAuthor: async () => ({ actorLogin: 'host-user', credentialIdentity: 'user:37' }),
|
|
2686
|
+
};
|
|
2687
|
+
});
|
|
2688
|
+
const execution = { repoRoot: root, runtimeEntryPath, identity: 'personal', personalAuth: true };
|
|
2689
|
+
const tracking = {
|
|
2690
|
+
title: 'Synthetic change',
|
|
2691
|
+
body: '## Outcome\nDeliver a verified change.\n\n## Scope\n- `artifact.txt`\n\n## Acceptance Criteria\n- [ ] Change is verified\n- [ ] Review is recorded\n\n## Verification\nRun `node --version`.',
|
|
2692
|
+
points: 2,
|
|
2693
|
+
develop: true,
|
|
2694
|
+
};
|
|
2695
|
+
try {
|
|
2696
|
+
if (entry === 'config-resolve') {
|
|
2697
|
+
// The prescribed CLI read must inspect this development selection without admission.
|
|
2698
|
+
rmSync(admissionPath);
|
|
2699
|
+
const originalArgv = process.argv;
|
|
2700
|
+
const originalExitCode = process.exitCode;
|
|
2701
|
+
let stdout = '';
|
|
2702
|
+
let stderr = '';
|
|
2703
|
+
let completed = () => { };
|
|
2704
|
+
const output = new Promise((resolve) => {
|
|
2705
|
+
completed = resolve;
|
|
2706
|
+
});
|
|
2707
|
+
const out = vi.spyOn(process.stdout, 'write').mockImplementation((value) => {
|
|
2708
|
+
stdout += String(value);
|
|
2709
|
+
completed();
|
|
2710
|
+
return true;
|
|
2711
|
+
});
|
|
2712
|
+
const err = vi.spyOn(process.stderr, 'write').mockImplementation((value) => {
|
|
2713
|
+
stderr += String(value);
|
|
2714
|
+
completed();
|
|
2715
|
+
return true;
|
|
2716
|
+
});
|
|
2717
|
+
try {
|
|
2718
|
+
process.argv = [
|
|
2719
|
+
process.execPath,
|
|
2720
|
+
'ai-delivery',
|
|
2721
|
+
'--repo-root',
|
|
2722
|
+
root,
|
|
2723
|
+
'--identity',
|
|
2724
|
+
'personal',
|
|
2725
|
+
'--personal-auth',
|
|
2726
|
+
'config:resolve',
|
|
2727
|
+
];
|
|
2728
|
+
await import('./cli.js');
|
|
2729
|
+
await output;
|
|
2730
|
+
assert.equal(stderr, '');
|
|
2731
|
+
const resolved = JSON.parse(stdout);
|
|
2732
|
+
assert.equal(resolved.reviewRoute.author.identity, 'personal');
|
|
2733
|
+
assert.equal(resolved.reviewRoute.author.authSource, 'personal');
|
|
2734
|
+
assert.equal(resolved.reviewRoute.author.actorLogin, 'host-user');
|
|
2735
|
+
assert.equal(resolved.reviewRoute.approvalEligibility, 'unknown');
|
|
2736
|
+
assert.equal(resolved.reviewRoute.rules.visibility, 'unknown');
|
|
2737
|
+
assert.equal(existsSync(admissionPath), false);
|
|
2738
|
+
assert.equal(existsSync(join(root, '.worktrees')), false);
|
|
2739
|
+
}
|
|
2740
|
+
finally {
|
|
2741
|
+
out.mockRestore();
|
|
2742
|
+
err.mockRestore();
|
|
2743
|
+
process.argv = originalArgv;
|
|
2744
|
+
process.exitCode = originalExitCode;
|
|
2745
|
+
}
|
|
2746
|
+
}
|
|
2747
|
+
else if (entry === 'scratch' || entry === 'standalone') {
|
|
2748
|
+
const row = (entry === 'scratch'
|
|
2749
|
+
? await executeTool('issue_start', { scratch: true, request: 'Inspect parser' }, execution)
|
|
2750
|
+
: await executeTool('issue_worktree_create', { name: 'scratch-override', branch: 'scratch/override' }, execution));
|
|
2751
|
+
if (entry === 'standalone')
|
|
2752
|
+
assert.equal(row.identity, 'personal');
|
|
2753
|
+
assert.equal(existsSync(entry === 'scratch' ? row.worktreePath : row.path), true);
|
|
2754
|
+
}
|
|
2755
|
+
else {
|
|
2756
|
+
const run = async () => {
|
|
2757
|
+
if (entry === 'direct-develop' || entry === 'direct-start') {
|
|
2758
|
+
const context = await contextFor(execution, 'develop');
|
|
2759
|
+
return entry === 'direct-develop' ? developIssue(context, 17) : startTrackedIssue(context, tracking);
|
|
2760
|
+
}
|
|
2761
|
+
if (entry === 'develop')
|
|
2762
|
+
return executeTool('issue_develop', { issueNumber: 17 }, execution);
|
|
2763
|
+
if (entry === 'existing-start')
|
|
2764
|
+
return executeTool('issue_start', { issueNumber: 17 }, execution);
|
|
2765
|
+
return executeTool('issue_start', tracking, execution);
|
|
2766
|
+
};
|
|
2767
|
+
await assert.rejects(run(), (error) => error === downstream);
|
|
2768
|
+
assert.equal(existsSync(join(root, '.worktrees')), false);
|
|
2769
|
+
}
|
|
2770
|
+
if (entry !== 'config-resolve')
|
|
2771
|
+
assert.equal(readFileSync(admissionPath, 'utf8'), admissionBefore);
|
|
2772
|
+
}
|
|
2773
|
+
finally {
|
|
2774
|
+
selected.mockRestore();
|
|
2775
|
+
rmSync(root, { recursive: true, force: true });
|
|
2776
|
+
}
|
|
2777
|
+
});
|
|
2528
2778
|
test('MCP exposes one implementation surface for native lifecycle commands', () => {
|
|
2529
2779
|
assert.deepEqual(AI_DELIVERY_MCP_TOOLS.map((tool) => tool.name), [
|
|
2780
|
+
'runtime_stage',
|
|
2781
|
+
'runtime_admit',
|
|
2530
2782
|
'issue_create',
|
|
2531
2783
|
'issue_start',
|
|
2532
2784
|
'issue_update',
|
|
@@ -2585,7 +2837,11 @@ test('MCP request rejects unsupported legacy options before lifecycle dispatch',
|
|
|
2585
2837
|
}
|
|
2586
2838
|
});
|
|
2587
2839
|
async function syntheticLifecycle(routing) {
|
|
2588
|
-
const {
|
|
2840
|
+
const created = await fixture({ ...routing, omitRuntimeAdmission: routing.producerOnboarding === true });
|
|
2841
|
+
const root = created.root;
|
|
2842
|
+
let runtimeEntryPath = created.runtimeEntryPath;
|
|
2843
|
+
const originalPath = process.env.PATH;
|
|
2844
|
+
let restoreTransport;
|
|
2589
2845
|
const remoteName = routing.remote;
|
|
2590
2846
|
assert.equal(defaultBaseRef(root, remoteName), `refs/remotes/${remoteName}/main`);
|
|
2591
2847
|
const remote = join(root, '.git', 'remote.git');
|
|
@@ -2948,6 +3204,65 @@ async function syntheticLifecycle(routing) {
|
|
|
2948
3204
|
};
|
|
2949
3205
|
let restoreDispatchClient;
|
|
2950
3206
|
try {
|
|
3207
|
+
if (routing.producerOnboarding) {
|
|
3208
|
+
assert.equal(existsSync(join(root, 'AGENTS.md')), false);
|
|
3209
|
+
const archiveBase = join(root, '.git', 'producer-fixture');
|
|
3210
|
+
const packageSource = join(archiveBase, 'package');
|
|
3211
|
+
mkdirSync(archiveBase);
|
|
3212
|
+
cpSync(dirname(dirname(created.runtimeEntryPath)), packageSource, { recursive: true });
|
|
3213
|
+
cpSync(join(root, '.git/synthetic-runtime/plugin'), join(packageSource, 'plugins/ai-delivery'), {
|
|
3214
|
+
recursive: true,
|
|
3215
|
+
});
|
|
3216
|
+
const archive = join(archiveBase, 'reviewed.tgz');
|
|
3217
|
+
execFileSync('tar', ['-czf', archive, '-C', archiveBase, 'package']);
|
|
3218
|
+
const shimDir = join(archiveBase, 'bin');
|
|
3219
|
+
mkdirSync(shimDir);
|
|
3220
|
+
const npmShim = join(shimDir, 'npm');
|
|
3221
|
+
// Only installer and GitHub transports are synthetic; the public producer and validator are real.
|
|
3222
|
+
writeFileSync(npmShim, `#!${process.execPath}\nconst fs=require('fs'),path=require('path');const args=process.argv.slice(2);if(args[0]!=='install'||!['--omit=dev','--ignore-scripts','--no-audit','--no-fund'].every(x=>args.includes(x)))process.exit(91);const target=path.join(args[args.indexOf('--prefix')+1],'node_modules/@aviaratech/ai-delivery');fs.mkdirSync(path.dirname(target),{recursive:true});fs.cpSync(${JSON.stringify(packageSource)},target,{recursive:true});\n`);
|
|
3223
|
+
chmodSync(npmShim, 0o700);
|
|
3224
|
+
process.env.PATH = `${shimDir}:${originalPath ?? ''}`;
|
|
3225
|
+
const server = createAiDeliveryMcpServer({ repoRoot: root, identity: 'synthetic-author' });
|
|
3226
|
+
const client = new Client({ name: 'unrelated-public-onboarding', version: '1.0.0' });
|
|
3227
|
+
const [ct, st] = InMemoryTransport.createLinkedPair();
|
|
3228
|
+
await server.connect(st);
|
|
3229
|
+
await client.connect(ct);
|
|
3230
|
+
const setup = {
|
|
3231
|
+
expectedSourceCommit: baseSha,
|
|
3232
|
+
expectedConfigDigest: configuration.configDigest,
|
|
3233
|
+
runtimeDirectory: join(root, '.git', 'public-runtime-stage'),
|
|
3234
|
+
};
|
|
3235
|
+
try {
|
|
3236
|
+
const stageResponse = await client.callTool({
|
|
3237
|
+
name: 'runtime_stage',
|
|
3238
|
+
arguments: {
|
|
3239
|
+
...setup,
|
|
3240
|
+
authority: 'runtime:stage',
|
|
3241
|
+
archivePath: archive,
|
|
3242
|
+
expectedArchiveSha256: sha256(archive),
|
|
3243
|
+
packageVersion: '0.1.0',
|
|
3244
|
+
},
|
|
3245
|
+
});
|
|
3246
|
+
assert.equal(stageResponse.isError, undefined);
|
|
3247
|
+
const stage = JSON.parse(stageResponse.content[0].text);
|
|
3248
|
+
const admitted = await client.callTool({
|
|
3249
|
+
name: 'runtime_admit',
|
|
3250
|
+
arguments: {
|
|
3251
|
+
...setup,
|
|
3252
|
+
authority: 'runtime:admit',
|
|
3253
|
+
stageId: stage.stageId,
|
|
3254
|
+
expectedPriorAdmissionSha256: null,
|
|
3255
|
+
},
|
|
3256
|
+
});
|
|
3257
|
+
assert.equal(admitted.isError, undefined);
|
|
3258
|
+
runtimeEntryPath = stage.admission.cliPath;
|
|
3259
|
+
}
|
|
3260
|
+
finally {
|
|
3261
|
+
await client.close();
|
|
3262
|
+
await server.close();
|
|
3263
|
+
}
|
|
3264
|
+
await assertDeliveryRuntimeAdmitted({ repoRoot: root, runtimeEntryPath });
|
|
3265
|
+
}
|
|
2951
3266
|
await assert.rejects(startTrackedIssue(context, { request: 'Unready task', develop: true }), /New issue is not ready/u);
|
|
2952
3267
|
assert.equal(calls.filter((call) => call === 'issue:create').length, 0);
|
|
2953
3268
|
const unsized = await createIssue(context, { title: 'Synthetic child', parentIssueNumber: 11 });
|
|
@@ -3019,30 +3334,66 @@ async function syntheticLifecycle(routing) {
|
|
|
3019
3334
|
headSha = git(row.path, 'rev-parse', 'HEAD');
|
|
3020
3335
|
const run = await verifyIssue({ issueNumber, repoRoot: row.path });
|
|
3021
3336
|
await assert.rejects(publishPr(context, { issueNumber, body: 'Closes #17' }), /Delivery Impact/);
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3337
|
+
if (routing.producerOnboarding) {
|
|
3338
|
+
const realGit = execFileSync('/usr/bin/which', ['git'], {
|
|
3339
|
+
encoding: 'utf8',
|
|
3340
|
+
env: { ...process.env, PATH: originalPath },
|
|
3341
|
+
}).trim();
|
|
3342
|
+
const shimDir = join(root, '.git/producer-fixture/bin');
|
|
3343
|
+
git(root, 'config', '--unset', `url.${remote}.insteadOf`);
|
|
3344
|
+
const gitShim = join(shimDir, 'git');
|
|
3345
|
+
writeFileSync(gitShim, `#!/bin/sh
|
|
3346
|
+
if [ "$1" = -c ] && [ "$2" = credential.helper= ]; then
|
|
3347
|
+
[ "$AI_DELIVERY_GIT_TOKEN" = synthetic-selected-author-token ] || exit 92
|
|
3348
|
+
shift 2
|
|
3349
|
+
operation="$1"; shift
|
|
3350
|
+
[ "$1" = https://github.com/example/widget.git ] || exit 93
|
|
3351
|
+
shift
|
|
3352
|
+
exec "${realGit}" -c credential.helper= "$operation" "${remote}" "$@"
|
|
3353
|
+
fi
|
|
3354
|
+
if [ "$1" = push ] && [ "$2" = -q ] && [ "$3" = "${remoteName}" ]; then
|
|
3355
|
+
shift 3
|
|
3356
|
+
exec "${realGit}" push -q "${remote}" "$@"
|
|
3357
|
+
fi
|
|
3358
|
+
exec "${realGit}" "$@"
|
|
3359
|
+
`);
|
|
3360
|
+
chmodSync(gitShim, 0o700);
|
|
3361
|
+
const transport = vi.spyOn(githubClient, 'withAuthorGitToken').mockImplementation(async (clients, callback) => {
|
|
3362
|
+
assert.equal(clients.role, 'author');
|
|
3363
|
+
return callback('synthetic-selected-author-token');
|
|
3364
|
+
});
|
|
3365
|
+
restoreTransport = () => transport.mockRestore();
|
|
3366
|
+
const published = await publishPr(context, { issueNumber });
|
|
3367
|
+
assert.equal(published.prNumber, prNumber);
|
|
3368
|
+
assert.equal(published.reviewRoute?.author.actorLogin, 'synthetic-author[bot]');
|
|
3369
|
+
assert.equal(published.reviewRoute?.approvalEligibility, 'unknown');
|
|
3370
|
+
}
|
|
3371
|
+
else {
|
|
3372
|
+
await assert.rejects(publishPr(context, { issueNumber }), /Git push requires the selected author credential token/);
|
|
3373
|
+
// The public push requires a real author App installation token. Bind a synthetic
|
|
3374
|
+
// publication at that external boundary so the remaining public phases run offline.
|
|
3375
|
+
git(row.path, 'push', '-q', remoteName, `${headSha}:refs/heads/issue/17`);
|
|
3376
|
+
const publishEvidence = await createIssuePhaseEvidence({ issueNumber, phase: 'publish', repoRoot: row.path });
|
|
3377
|
+
const publicationContent = {
|
|
3378
|
+
baseSha,
|
|
3379
|
+
evidenceId: publishEvidence.evidenceId,
|
|
3380
|
+
headSha,
|
|
3381
|
+
issueNumber,
|
|
3382
|
+
prNumber,
|
|
3383
|
+
schemaVersion: 'ai-delivery.publication@1',
|
|
3384
|
+
};
|
|
3385
|
+
const publicationPath = join(gitCommonDir(row.path), 'ai-delivery', 'publications', String(issueNumber), `${headSha}.json`);
|
|
3386
|
+
mkdirSync(dirname(publicationPath), { recursive: true });
|
|
3387
|
+
writeFileSync(publicationPath, JSON.stringify({ ...publicationContent, publicationId: digestValue(publicationContent) }), { mode: 0o600 });
|
|
3388
|
+
await updateIssueWorktreeDelivery({
|
|
3389
|
+
branch: row.branch,
|
|
3390
|
+
issueNumber,
|
|
3391
|
+
path: row.path,
|
|
3392
|
+
prNumber,
|
|
3393
|
+
projectRoot: root,
|
|
3394
|
+
status: 'pr-published',
|
|
3395
|
+
});
|
|
3396
|
+
}
|
|
3046
3397
|
assert.equal((await listPrs(context)).pullRequests[0]?.number, prNumber);
|
|
3047
3398
|
assert.equal((await prInfo(context, { prNumber })).authorLogin, 'synthetic-author[bot]');
|
|
3048
3399
|
assert.equal((await prChecks(context, prNumber)).combinedStatus, 'success');
|
|
@@ -3188,6 +3539,8 @@ async function syntheticLifecycle(routing) {
|
|
|
3188
3539
|
assert.equal(calls.filter((call) => call === 'issue:create').length, beforeTracking + 1);
|
|
3189
3540
|
}
|
|
3190
3541
|
finally {
|
|
3542
|
+
restoreTransport?.();
|
|
3543
|
+
process.env.PATH = originalPath;
|
|
3191
3544
|
restoreDispatchClient?.();
|
|
3192
3545
|
rmSync(root, { recursive: true, force: true });
|
|
3193
3546
|
}
|
|
@@ -3197,4 +3550,46 @@ test.each([
|
|
|
3197
3550
|
{ remote: 'upstream', divergentOrigin: false },
|
|
3198
3551
|
{ remote: 'upstream', divergentOrigin: true },
|
|
3199
3552
|
])('synthetic lifecycle finishes with remote $remote and divergent origin $divergentOrigin', syntheticLifecycle, 15_000);
|
|
3553
|
+
test('an unrelated consumer uses public MCP setup through verified configured-author publication, counted review readback, merge and cleanup', async () => {
|
|
3554
|
+
await syntheticLifecycle({ remote: 'origin', divergentOrigin: false, producerOnboarding: true });
|
|
3555
|
+
}, 15_000);
|
|
3556
|
+
test.each(['escape', 'broken', 'cycle'])('output observation rejects %s aliases without running policy commands', async (kind) => {
|
|
3557
|
+
const { root, counter } = await fixture();
|
|
3558
|
+
const base = realpathSync(mkdtempSync(join(tmpdir(), 'ai-delivery-output-alias-')));
|
|
3559
|
+
try {
|
|
3560
|
+
const output = join(base, 'output');
|
|
3561
|
+
mkdirSync(output);
|
|
3562
|
+
if (kind === 'escape') {
|
|
3563
|
+
writeFileSync(join(base, 'outside'), 'outside');
|
|
3564
|
+
symlinkSync('../outside', join(output, 'alias'));
|
|
3565
|
+
}
|
|
3566
|
+
if (kind === 'broken')
|
|
3567
|
+
symlinkSync('./absent', join(output, 'alias'));
|
|
3568
|
+
if (kind === 'cycle') {
|
|
3569
|
+
symlinkSync('./other', join(output, 'alias'));
|
|
3570
|
+
symlinkSync('./alias', join(output, 'other'));
|
|
3571
|
+
}
|
|
3572
|
+
const row = await prepareIssueWorktree({
|
|
3573
|
+
baseRef: 'main',
|
|
3574
|
+
identity: 'synthetic-author',
|
|
3575
|
+
issueNumber: 17,
|
|
3576
|
+
repoRoot: root,
|
|
3577
|
+
});
|
|
3578
|
+
await assert.rejects(verifyIssue({
|
|
3579
|
+
issueNumber: 17,
|
|
3580
|
+
repoRoot: row.path,
|
|
3581
|
+
resourceBounds: {
|
|
3582
|
+
maxAggregateRssBytes: 1_000_000_000,
|
|
3583
|
+
minFreeDiskBytes: 1,
|
|
3584
|
+
maxNewOutputBytes: 1024,
|
|
3585
|
+
outputRoots: [output],
|
|
3586
|
+
},
|
|
3587
|
+
}), /escaping|broken|cyclic/u);
|
|
3588
|
+
assert.equal(existsSync(counter), false);
|
|
3589
|
+
}
|
|
3590
|
+
finally {
|
|
3591
|
+
rmSync(root, { recursive: true, force: true });
|
|
3592
|
+
rmSync(base, { recursive: true, force: true });
|
|
3593
|
+
}
|
|
3594
|
+
});
|
|
3200
3595
|
//# sourceMappingURL=lifecycle.test.js.map
|